My best writing
Check out some of my favorite things I’ve written
- A random failure: Problems upgrading Ansible and Python. The story of a data loss issue I caused at work and what I learned from it.
- Hack: saving QMK firmware source to the keyboard. A cool hack I did that saves the source code for a QMK configuration in the firmware itself.
- Lability tutorial. I used an excellent open source Windows lab automation package called Lability. It was really a joy to use, but I struggled at first to learn it. I wrote this tutorial as a way to teach myself, and hopefully help others. It’s one of my favorite writing projects. I’m really proud of it, and I even link to it on my résumé.
All posts
If you have a feed reader, you can subscribe to my feed . (Learn more about web feeds.) You can also browse my posts by tag.
Every post I've written here, most recent on top.
-
git back
A useful custom git subcommand
-
Convert SSH ed25519 key to Onion Service key
-
Python stdout/stderr: print in real time and save for later
-
A shrine to privacy
-
Fun with iframes
-
Archiving Tweets to HTML
-
Running Wiki.js on Fly.io with Litestream backups
-
Dark Mode
-
New project pages
-
Cistercian numerals are good for dates
-
Site design updates
-
A failed experiment: Python Pillow and a Cistercian font
-
hugo-theme-cistercian
-
Interpersonal: A connection to the IndieWeb
-
Through the Looking Glass
-
Slippery Slopes and Bright Lines
Device-side CSAM scanning is a retreat to a strategically weaker position for end-user privacy contra nonconsensual search by law enforcement.
-
I do Pilates in bed
-
set -eu is the lesser of two evils, if you have to write shell at all
-
Formulae Technica
-
Hugo: Injecting an external file into a page with syntax highlighting
-
Hugo Redirects and Partial Functions
-
How I write shell scripts
-
RSS styles
-
Inline FontAwesome SVGs in Hugo
-
Hardened 1Password emergency kit
-
Let's Encrypt DNS challenges for appliances behind a firewall
-
Secret control panels
-
Biblemunger 2.0
-
Fortunate
-
Interviewed by ZSA, the makers of the ErgoDox-EZ
-
Count like a Cistercian
-
keymap.click 1.0
-
keymap.click development preview
-
deskmx: Never unplug your headphones again
-
An Ansible filter is a pure function
-
sparkles emoji dot ico
-
A random failure: Problems upgrading Ansible and Python
The story of a data loss bug I caused at work, how I fixed it, and some surprising behavior in Python and Ansible.
-
Hack: saving QMK firmware source to the keyboard
-
Windows, IKEv2, and error 13801
-
Python, argparse, and custom actions and types
-
CherryPy: Override the base URL behind a reverse proxy
-
LockableSqliteConnection
-
Python bullshit I'm proud of
-
CherryPy: Cookies with HTTP basic authentication
-
Announcing Caryatid
-
Creating a Linux livecd
-
Mozilla, SSL, and NSS
-
Deploying SSL certificates
-
Windows, symlinks, and pain
-
DEFCON19 lanyard and PDP-8 assembly, part 2
-
DEFCON19 lanyard and PDP-8 assembly, part 1
-
DEFCON19 - In my day, you just walked into a bank with a gun and got money