Welcome! This is a blog about programming and adjacent topics that interest me. You’re cordially invited to subscribe to the feed. Here’s everything I’ve ever published on here:


  1. Determining Which Country a Location is in without an API (…but with MariaDB)

  2. Case-insensitive Search Term Highlighting With JavaScript

  3. 19 Blogs Worth Binging

  4. Secure Backups of Important Files to Insecure Locations

  5. Something Wrong With Your venv? Just Reset It!

  6. Colorful Generative Art With Chaotic Iterated Function Systems

  7. Popping up a Notification When a macOS App Stops Running


  1. Processing Markdown in Jekyll Post Titles

  2. Columba livia domestica


  1. Moving a Swinsian Library to a New Location (or Computer) Without Losing Playlists or Resetting Play Counts and Other Metadata

  2. UJI – Creating Generative Art With a Parametric, Iterative Line-Drawing Routine

  3. Infinite Bash History (& More)

  4. Adjusting a Mac's System Volume on the Command Line

  5. Pandemic Birds


  1. An Ode to Archive.org

  2. Simulating Rule 30 With Recursive SQL and Window Functions

  3. A Guide to Scattering a Document All Over Your Desk, But Not Really

  4. A Selection of FFmpeg Invocations That Have Proven Handy in Various Situations

  5. Controlling the Settings in Chrome's Print Dialogue With CSS


  1. Quick and Dirty Redirect of a Jekyll Blog to Its New Domain

  2. Drawing the Sierpiński Triangle With Recursive SQL and SVG

  3. Displaying an Accurate Reading Time Estimate in Jekyll


  1. Using Shortcuts to Delete All Photos Not Located in a Specific Album on iOS

  2. Removing Large Files From a Git Repository's History


  1. Isomorphisms Between Integers and Some Composite Types in Haskell

  2. Recreating the Starfield Screensaver in JavaScript

  3. Representing, Multiplying, and Transposing (Sparse) Matrices in SQL


  1. Approximating π Using the Monte Carlo Method in Postgres

  2. How to Write a Spelling Corrector (in Haskell)

  3. Converting Numbers to Strings in C11


  1. Displaying the Time Elapsed Since Publishing a Jekyll Post

  2. Deploying Jekyll Using Git and Bundler