New computer checklist

Monday, Jan 9, 2023

Here’s a small outline of how I validate used computers as “usable” and “in working condition”. My hope is these steps help computer users spot “lemons” - machines that shouldn’t be depended on because they don’t work all the time. Basics Before stress testing or examining SMART data, consider the following checklist: Turn it on and ensure you can access the firmware settings/BIOS. F2 and Delete seem like the most common keys.

Continue reading…

#lang tinybasic

Wednesday, Jul 27, 2022

For the Lang Party Summer 2022, I wrote a BASIC interpreter. It took a bit of mental gymnastics and learning on my part. In this post I hope to share some of the experience in implementing this interpreter. For the curious, the code lives on GitHub. Figure 1: A TinyBASIC session in Cool Retro Term Try it out! Want to try it out? Run raco pkg install --auto tinybasic to install it.

Continue reading…

NixOS Migration

Wednesday, Jun 8, 2022

Recently I have begun migrating my workstation and laptop from Gentoo to NixOS. There are a great deal of tradeoffs between the two operating systems. Before going into the details, consider where I’m coming from and why I moved away from Gentoo below. Why was I running Gentoo on workstations?? This is my heuristic for a good operating system: The Distro must provide facility to modify system packages and maintain their modifications in sync with the upstream distro.

Continue reading…

Auto-rip Music CDs

Monday, Feb 7, 2022

Awhile back I found a stack of audio CDs I wished to digitize. It’s a bit of work to do the following steps quickly and while doing other more cerebral work: Open the disc tray Insert the disc Wait a few seconds for the disc to be detected by the OS Kick off abcde to rip the CD. Repeat ad infinitum. The solution is to streamline the workflow: Open the disc tray (first time only) Insert the disc Wait until abcde is finished and ejects the CD, repeat from step #2.

Continue reading…

Migrating from Emacs 26 to Emacs 27 on Gentoo

Sunday, Nov 28, 2021

Figure 1: Behold! Emacs 27! When upgrading to Emacs 27 there were quite a few weird things I had to address. My Emacs is installed via Gentoo Portage. The USE flags I have set (to enable/disable features at build time) essentially configure my Emacs to be like Lucid Emacs builds. Here’s the USE flags: Xaw3d acl alsa athena cairo dbus dynamic-loading gif gmp gui imagemagick inotify jpeg lcms libxml2 png source ssl svg threads tiff toolkit-scroll-bars xft xpm zlib -aqua -games -gconf -gfile -gpm -gsettings -gtk -gzip-el -harfbuzz -json -kerberos -livecd -m17n-lib -mailutils -motif -selinux -sound -systemd -wide-int -xwidgets Make note that cairo support is enabled.

Continue reading…

Using an old Supermicro IPMI to configure broken networking

Monday, Aug 9, 2021

The goal of this post is to demonstrate the usefulness of IPMI even in hobbyist or personal use. Anything that means less touching physical machines to power cycle them, or fix network misconfigurations, can save a lot of time. I had broken my NAS’s networking by adding a bridge and attaching the existing ethernet device to it. I forgot to configure the ethernet device to not try to fetch an IP address (via DHCP), but instead only fetch an IP address on the bridge itself.

Continue reading…

No need to reinstall your OS

Thursday, Jul 8, 2021

A fantastic “feature” of Linux, BSD, and even Windows 10 is you don’t really need to reinstall to migrate an installation to a new computer. A common misunderstanding is if you get a new PC, you must use the new OS install, or install a new copy of your OS. If you’re intending on replacing an existing PC (and disposing of or re-purposing the old one), there is probably no need to reinstall your OS and deal with user data migration.

Continue reading…