URI:
       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.