Skip to main content

Posts

2024

Self-hosting a Cooklang Server via systemd
·977 words·5 mins
Hosting your own cooklang server is (mostly) easy with the help of systemd and some intermediate-level service configuration.
The Gallery and the Toolbox
·900 words·5 mins
Note-taking can present an overwhelming abundance of possibility. Developing explicit mental models of your notes can grant clarity when organizing your knowledge.
Too Many Games 2024 Retrospective
·1516 words·8 mins
In which I drive to Philadelphia and try to play a bunch of games.
How to find that one volume you're pretty sure you didn't lose
·430 words·3 mins
Docker volumes can be opaque, so I wrote a small bash script to help you troubleshoot.
Stamping Builds with Bazel
·667 words·4 mins
Versioning is a critical part of delivering software to users. With bazel, you can derive per-build values and inject them anywhere in your build process.
Non-mechanical Tabletop Gaming Fundamentals
·639 words·3 mins
A non-exhaustive list of tips and rules that elevate my tabletop gaming.
Pragmatic Projections: A Primer
·932 words·5 mins
Projections are abstract, but abstractions are a powerful tool for helping us model the world.

2023

The Joy of Versioning
·545 words·3 mins
Investing in tooling makes adhering to good practices almost easy enough to be joyful.
Beautiful Builds with Bazel
·2681 words·13 mins
bzlmod makes bazel extremely appealing and isn’t hard to grasp for anyone already familiar with go modules. My frustration with make for complex builds led me to bazel.
Validating YAML frontmatter with JSONSchema
·735 words·4 mins
As a collection of Markdown documents grows organically, maintaining consistency is important. JSONSchema offers a way to automatically ensure frontmatter stays up to spec.