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:

2024

  1. 19 Blogs Worth Binging

  2. Secure Backups of Important Files to Insecure Locations

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

  4. Colorful Generative Art With Chaotic Iterated Function Systems

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

2023

  1. Processing Markdown in Jekyll Post Titles

  2. Columba livia domestica

2022

  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

2021

  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

2020

  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

2019

  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

2018

  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

2017

  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

2016

  1. Displaying the Time Elapsed Since Publishing a Jekyll Post

  2. Deploying Jekyll Using Git and Bundler