OLD COMPUTER CHALLENGE
       
       Happily, I am making friends on IRC. And these friendships are leading
       to new ideas about computers like software minimalism, suckless
       software, and /the old computer challenge/, which is the subject of
       this writing here.
       
       The Old Computer Challenge is exactly what it sounds like: a challenge
       to make use of an old computer. The suggested duration is 7 days and
       the computer should be limited to a single core and use no more than
       512 MB of memory.
       
       
       Preparation
       ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
       Machine of choice
       ----------------------------------------------------------------------
       A few years back I inherited a Lenovo ThinkCentre built in or around
       2008. I'll use this machine for the challenge along with a 24" LCD
       monitor. The machine has a 2Ghz Core 2 Duo CPU and 972MiB of
       RAM. Obviously this is in excess of what the /Old Computer Challenge/
       suggests. I'll crimp the specs during the 7 day challenge period. But
       I'll run the machine as-is during my preparations. Even now, packages
       take quite a bit of time to download and install. I'm hoping I can
       cover ground quickly as I setup my machine so that when the challenge
       starts I'll be better able to see what it's like to use a slower, less
       powerful machine on my day-to-day computing activities.
       
 (IMG) Lenovo ThinkCentre on a worn wooden desk
       
       
       OpenBSD
       ----------------------------------------------------------------------
       Since learning about OpenBSD I've been meaning to try it. Being a lean
       distribution, I figured it would be perfect for this challenge. So on
       a boring weekend afternoon I installed the distro via a USB stick. The
       installation process was easy and painless, aside from one small
       hiccup: I couldn't figure out how to install the file sets from the
       image I'd `dd''d onto a USB stick. So I had to install them from a
       HTTP mirror instead. Showing some forethought, OpenBSD included a
       mirror list within the installation procedure.
       
 (IMG) OpenBSD installation is complete!
       
       I've never used a BSD derivative in a big way. In fact, I haven't used
       much more than Ubuntu in all my Linux and UNIX-like experience! For
       the fun of it I decided I'd dive right into OpenBSD without first
       intentionally consulting a tutorial, manual, or help guide. I'd see
       how far I could get using whatever knowledge I already
       possessed. Surprisingly, I covered quite a bit of ground. I learned to
       use `su' to install packages using `pkg_add'. I setup `sshd' by using
       `ed' to edit `/etc/ssh/sshd_config' and then `kill -HUP `cat
       \/var/run/sshd.pid`''d the daemon to effect the changes. I `scp
       id_rsa* scarlett@192.168.2.33:/home/scarlett/id_rsa*''d over my public
       and private keys so I could access my server. I setup `mutt' by
       following examples I found inside
       `/usr/local/share/examples/mutt/*'. And somewhere along the way I
       learned about `man -k <keyword>' as a means of searching installed
       manuals. I couldn't find `urxvt' at first, but then IanJ on IRC
       pointed out that `pkg_info -Q rxvt' can be used to find candidates for
       installation.
       
       Getting `i3' setup was a bit trickier. First I installed the package
       with `pkg_add i3'. Then I set about figuring out how to replace
       `fvmw', the default window manager on OpenBSD. First I looked at
       `rc.conf', thinking that the file, being the "startup" script, would
       include something about windows managers. Finding nothing, I moved
       onto `login.conf'. I read through that file and gathered it had more
       to do with login accounts. Following a note at the top of the file, I
       headed to `man login.conf'. When that still didn't seem to lead
       anywhere towards windows managers I traced back my steps to my
       account's home folder. `ls -la'-ing my home folder, I gleaned the many
       `.X*' files therein. I `less''d through them all. Next, I somehow (I
       don't remember the path of thinking) ended up looking at the manpage
       for `xinitrc'. I then peeked into `/etc/X11/xinit/xinitrc' to see what
       commands the default setup for a user session invoked. Following the
       instructions in the manpage for `xinitrc', I created a `.xinitrc' in
       my home folder and added a line to invoke `i3'. I logged out and back
       in but it didn't work! So I went back to `/etc/X11' to see what other
       clues I could find. My thinking was that the `.xinitrc' file I'd
       created wasn't being invoked by X during a new user session. I skimmed
       through X11's `/etc' files and looked both for occurrences of `fvmw'
       and any mention of `xinit'-ism. I noticed that `xenodm/xsession'
       included commands to setup new user sessions. The file included a
       control block to check if a `~/.Xsession' file exists (if it didn't, a
       default set of instructions would be supplied). It seemed like this
       file might be what I'm missing. So I `mv .xinitrc .Xsession''d my init
       file and then restarted my user session. To my delight `i3' fired up
       right away! Yay!
       
       And with that, I have most of my quality of life features setup on the
       new machine. There's going to be lots tinkering, no doubt (I don't
       quite have Urxvt setup well, nor the plumber that makes using it a
       delight). But to me that's all stuff that I can work on during the
       /Old Computer Challenge/. I'm now past the initial anxiety of using a
       new distribution. My feet feel firm on the ground! I'll continue to
       tinker but will probably leave the next part of this article for my
       sanctioned /OCC/ experience.
       
       
       The Challenge
       ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
       It's July 15 and the challenge is over! So how'd it go? Well... Not as
       well as I had hoped. For one: I'm not writing this followup on my old
       computer. I wish I were. Instead, I'm back on my laptop from 2017, a
       machine that has collected a bloated suite of programs, hacks, config
       files, and non-default customization over the 5 years of its life with
       me. Turns out that leaving my sanctuary of complexity for a clean
       slate isn't easy.
       
       I initially thought that the challenge of the old computer challenge
       would be the /old computer/. But for me the challenge was getting a
       bare install built up into a usable state. My laptop has what I'd call
       "a house of cards" inside the home folder. Unfortunately, I didn't
       think twice or even realize that what I'd built and configured there
       would ever hold me back. I thought I'd a machine well suited to my
       habits and needs. But for every bit of customization I've added a byte
       of complexity. And so while the computing environment on my laptop is
       well sculpted, it's difficult to understand, replicate, or migrate
       elsewhere. I'm dependent on the complexity I've created. I'm hindered
       by it, too. Moving my computing entirely to the old machine proved
       more difficult than I'd imagined.
       
       So no, I didn't succeed at the challenge. I didn't get as far away
       from my main machine as I was hoping. But at least the first day was
       an astounding success. How could it not be? I had been fooling around
       on bug (the old machine) a week prior to the challenge. But as real
       challenge set in I soon discovered that it was
       difficult--impossible?--to live exclusively on that old machine. I
       couldn't access my notes. I couldn't play music or watch TV. I
       couldn't even get at my address book and find a phone number when I
       needed help retrieving a lost phone. So eventually I caved, which I'm
       not proud to admit. But it's not without consequence. The challenge
       highlighted the flaws in my approach to computing. To reiterate: it
       wasn't the speed of the old computer that bogged me down. I had become
       led astray by the complexity of my choices, and my own inability to
       provide a simple, reproducible deployment of my home environment.
       
       
       Lesson: Make it easy to move configs between machines
       ----------------------------------------------------------------------
       Before this challenge I'd given no thought to the preservation,
       maintenance, and mobility of my non-default program
       configurations. Yet many of these configurations are necessary to
       being able to smoothly run my life. For instance: `mutt' (email)
       requires IMAP information, `tin' (news) needs account information,
       `urxvt' (terminal) requires `.Xresources' configuration, `emacs' (text
       editor) needs about 10,000 lines of non-default customizations to
       startup modes like my knowledge repository. It's all good to invest
       time into building these configs provided there's a way to quickly
       copy the code onto a new machine. I don't have that, short of firing
       off an `rsync' between here and there. This is a big lesson for me:
       make it easy to move defaults between machines.
       
       
       Lesson: Don't build behemoths
       ----------------------------------------------------------------------
       I am reliant on a single laptop for 95% of my computing and
       entertainment. Crucially, my laptop contains three things I access on
       a daily basis:
       - my personal knowledge repository (a bunch of notes on life and
         computing written in `org-mode' syntax and indexed with `org-roam').
       - my media files (photos, videos, and music).
       - my emacs configuration.
       Sans notes, I started writing things down on paper. Sans media files,
       I started using my record player. Sans emacs config, I started using
       `ed'. While there's a certain romance to going back in time, none of
       these were adequate substitutions for the "real thing". Eventually I
       learned to mount my laptop's file-system using `sshfs' so at least I
       could crudely modify and explore my notes using `ed'. These were all
       rudimentary salves to a larger problem: everything I do is located on
       and bound to one computer.
       
       
       Outcome: Explore the operating system
       ----------------------------------------------------------------------
       Positively, moving to another operating system encouraged me to
       explore in ways I hadn't on my existing computer. I'm proud that I
       figured out how to setup `i3' by crawling through `/etc/X11' files,
       consulting the man pages, and seeking the occasional hint from IRC.
       
       
       Conclusion
       ----------------------------------------------------------------------
       My concluding thoughts are simple: I need to simplify my computer
       life. I want to get whittle down my enormous stack of crap until I
       have something simple, predictable, and reproducable.