Bradford Morgan White: tutorial
20090719 Building your own Slackware Distribution ⇢
Ubuntu, Debian, Fedora, and SuSE have system for making respins. Slackware's package manager has an easy to use makepkg script, and the installer is wickedly easy to customize to meet your needs. So, let's go through making a Slackware-based distribution.
20101015 Manual Backups with dd ⇢
There are several different ways to make backups of data for any operating system. In the "glory days" of UNIX people would usually write a cron job that would create a Tape ARchive of their system and write that TAR to a tape drive. Well, those days are
20110106 An Introduction to Mutt ⇢
It seems as though every time someone sees me at my desk reading my mail, they ask what it is I am doing. I tell them I am reading my mail, and they're shocked. They see me pull up image attachments, and office and all this, and they think I am some kind
20110420 An Introduction to VIm ⇢
A long time ago, in a college far far away, some nerds were playing with UNIX. At that time, UNIX shipped with ed. Some rather clever programmers made a replacement for ed called em. Em became en. En became ex. Ex is Vi. Why is this important? Understandi
20110822 An Introduction to Find ⇢
Learning find can seem daunting at first, but it is worth learning. There is no single more useful search tool for UNIX like systems. You could almost consider find a very primitive scripting language in itself as find can find the files you request and t
20111020 An Introduction to Slackware Linux ⇢
People often look at Slackware with a certain amount of trepidation. It appears complicated, difficult, or tedious. If you ever felt like trying Slackware but didn't because of those fears, this is an article for you. I am going to cover installation ste
20120613 An Introduction to C, I ⇢
C is a computer programming language that was designed for the purpose of implementing system software. Today, it is still used for that task but is also used for implementing application software. C is insanely widely used. C is the bedrock of UNIX, Linu
20120616 An Introduction to C, II ⇢
Last time, we got into the absolute basics. This time, let's cover something more useful. A variable is like a letter in algebra. You can make it something other than what it appears to be, and this can be quite useful. Unlike algebra, a variable can be A
20120626 An Introduction to C, III ⇢
So, in this installment, let's talk about loops. So far, all you have had is sequences. Programs only consist of sequence, loop, selection, and data. Looking at it this way, you're nearly ready to call yourself a programmer. So, don't get discouraged. A l
20160705 An Introduction to C, IV ⇢
Programs are a lot more useful if users can interact with them. It is equally useful to be able to perform specific operations depending upon what input is gained from said users. That's the topic for this entry. There are several methods that can be used
20120710 An Introduction to C, V ⇢
As you might imagine, a large series of conditional statements could get really tedious. Imagine a series of 20 if statements... and imagine typing that out. Very quickly, it would become very annoying. For this reason, C has the switch-break. switch
20120728 An Introduction to C, VI ⇢
Now for something odd. a = (x > 3 ? 2 : 10); The above means: "if x is greater than 3 then a is equal to 2, otherwise a is equal to 10. Written in a form with which you are already familiar, the above is exactly equivalent to the following: if (x
20120815 An Introduction to C, VII ⇢
So far, I have thrown a lot of information at you very quickly. Let's recap with completely useless programs. The character variable type uses 8 bits of memory (one byte). This type is declared with the 'char' keyword. While the character type is used to
20120830 An Introduction to C, VIII ⇢
So far, we have already covered the use of the character data type, but what happens when you want to print more than one character to screen? This was strings are for. A string is a series of characters terminated as with a null character. That is, a str
20120910 An Introduction to C, IX ⇢
In the last post, I briefly introduced arrays and strings. Let's look a little more closely. #include #include int main(void) { char name1[5] = "Ford"; char name2[4] = "Jim"; char name3[8] = ""; if
20130122 An Introduction to C, X ⇢
It's time for a cake walk. Here's an array of integers. int values[10]; int i; for (i = 0;i < 10;i++) { values[i] = 2 * (i + 2); printf("The value at i %d is %d\n", i, values[i]); } That's it. Floats and other data types work p
20150610 An Introduction to C, XI ⇢
Some time has passed since I last did anything with my C tutorial. This is largely due to work and having several different projects going at any one time (learning Chinese, developing a hobby OS, a gaming community, etc...). However, I felt that I ought
20150705 An Introduction to C, XII ⇢
So, in this part of the C Intro, I would like to say a bit about memory management. VARIABLES In C, there are really only two ways that you can allocate memory. The first and most common way is by declaring a variable. The second way is to explicitly
20150823 An Introduction to C, XIII ⇢
We've covered a lot of ground with C so far. The big problem here is that we've not yet covered one of the most common tasks on a UNIX system. We have not covered files. So, let's look at files. For file I/O in C, you need a file pointer. We declare a fi
20190215 Linux Kernel 4.19 ⇢
For those individuals using Linux distributions that ship with older kernels, they may find themselves needing a newer kernel for hardware support, and not having a package available. Never fear. In this document, I will be using 4.19.21, but you will wan
20200504 Setup WordPress Yourself ⇢
This article assumes the reader has some basic familiarity with the Linux operating system, and it assumes that either Linux or Windows with WSL is in use on the reader's computer. These days, everything is online. If you want to create your own site, a
20201028 Slackware Current ⇢
Slackware Current usage isn't really explained anywhere, but it's somewhat necessary if you have hardware with which Slackware 14.2 doesn't work. Given that most hardware made within the last year or two isn't going to work much on 14.2, I will attempt to
20201104 Multi-account Mutt ⇢
Mutt is a mail user agent. It's an old one. It doesn't have a GUI. The configuration of Mutt is the thing that normall turns people off about it. This is completely understandable. If you are not radically familiar with email in general, many of the optio
20211004 Scalable on Bare Metal? ⇢
So, how do you actually setup a web service that isn't bound by the performance of single machine? Like... how do you really do it? Not with docker, not with the cloud, not with automation. How do you actually setup a webserver? It starts with knowing wha
20220312 Setting up a blog at home ⇢
So, you have a Raspberry Pi or an extra computer, and you're thinking you'd like to setup a blog on it. Then you realize, that your broadband connection may not have a static IP address. It's okay. You can do it all. It is important to note that while you
20220414 Hosting @ 127.0.0.1 with Argo Tunnels ⇢
I have in the past covered both setting up and hosting WordPress on your own, and I have covered hosting from home. Now, let's do something a little more interesting. Hosting at home can be a less than pleasing experience. You may need a DynDNS service. Y
20221105 Vaultwarden on an RPi ⇢
So, there are plenty of reasons to self-host your password manager, and very few reasons not to do so. In my own case, there were essentially zero reasons not to run my own password manager as I had the hardware available, and I have a domain over at Clou
20230310 An Introduction to Linux ⇢
In the 1990s, Linux was available on store shelves in big boxes. These were complete with thick manuals covering a wide variety of the software included in a given Linux distribution. After the dot com bust, this practice largely stopped. Many Linux distr
20231025 Kernel 6.5 ⇢
It will come as little surprise to long time readers of either of my sites that I use Slackware. Currently, I am running Slackware64 15, and I have been on and off since its release. I recently decided to try the PF kernel with version 6.5 and it seems to
20231203 How to Block LLM bots ⇢
With all of the various LLMs and LLM-using-services springing up all over the web without any regard at all to copyright, morality, or consent, I wanted to find a way of blocking these things from using any of my content. Normally, we would use `robots.tx
20231205 Running an LLM locally ⇢
So, if you want to run an LLM locally for whatever reason, it's not too hard to do. Essentially, you first need to grab Llama.cpp, compile it, then grab a model (and possibly convert it), and then run it. Before starting, make sure you have a C/C++ compil
20240820 A Notepad in a Browser Tab ⇢
For some reason, I've always really enjoyed having a tiny non-persistent scratchpad in a browser tab. Just seems useful. This is despite having a clipboard tool, text editors, and a bunch of other tools available in KDE at all times. This is an easy thing
20240923 Linux Kernel 6.11, Huge Config ⇢
In Slackware Current, the team has removed the huge kernel. That's fine, but I have not given up on that style of kernel. If you want to recreate that config for yourself, here's how. Create a root shell session and change directory to /usr/src. Then,
20251108 Zero to Hosted, Part 1 ⇢
Getting a website online isn't difficult, and it doesn't require much. What you need: - a computer - a Linux/UNIX operating system - a webserver - HTML files - a language if you want interaction To get going, on say a Raspberry Pi running Raspbian, you ca
20251126 Zero to Hosted, Part 2 ⇢
In Part 1, we looked at just getting a site up on a local network. How do you get the site online? First, you need a domain name. There are plenty of registrars from who
20251127 Zero to Hosted, Part 3 ⇢
So, by now, if you've followed Part 1 and Part 2, you should have a website that is
⇠ back
© MMIX - MMXXVI,
Bradford Morgan White
Licentiam Absurdum