A Late Night Snack


A recipe. Step 1: Hunger Around 8:30 to 9 PM, develop a hankering for a snack. Why the cravings? Who can say. Perhaps you had a small dinner. Maybe you just did some exercise. Whatever the case, you need something carby and delicious. Step 2: Toast All good late night snacks involve toast. Or so they tell you. Prepare this in whatever way you find appealing, but tonight this job falls to Carl, your carbon steel pan.…
Read more ⟶

Keeping humans in the loop


When designing complex technical systems, you should ask yourself, “how does the human operator fit into the picture”. Duct Tape and Baling Wire There’s a sort of in-joke that exists in programming that all software is broken. Bugs abound, and errors are constant. By all rights, the complex ball of mud that we’ve created today should not exist, it should come crashing down all around us. However, the world does not come crashing down.…
Read more ⟶

Some thoughts on Stoneblock 3


At the beginning of the year, when work slows down and I take some vacation, I tend to get an overwhelming desire to play Minecraft. Usually I install whatever the hot new Feed The Beast modpack is that year, and this year I chose Stoneblock 3. I got pretty far this year: I made ~20 polonium pellets before realizing that I would have to play for several more hours to get my fission reactor setup to a respectable place.…
Read more ⟶

Some opinions about socio-technical systems (December 2022)


Since this blog is my personal corner of the internet, I figured it was time to start filling it with my hot takes. Here, I’m going to list a scattered bunch of opinions I have, mostly about team interactions but I suspect we’ll touch on architecture choices as well. My main reason for writing this is because I suspect that I am wrong about several of these opinions, and I’d welcome feedback on them at quail@cursedquail.…
Read more ⟶

My Chili Recipe


I’ve had a few friends ask me for my chili recipe recently. Instead of spewing a bunch of thoughts at them about how I make it, I decided to write it down so that I could share it with people. The Night Before: Soaking the Beans I like to use dried beans. They’re hella cheap & easy to buy in bulk. I’d recommend getting anywhere between 12 and 14 ounces of kidney beans.…
Read more ⟶

My Framework + NixOS Setup


I recently purchased a Framework laptop, and decided to install NixOS on it. I’ve been using Nix the package manager for some time now, and I’ve been enjoying it. I’ve also installed NixOS on the server that runs my mastodon, and it frankly ROCKS. Installing NixOS on this laptop has been… less enjoyable. To be clear, I don’t blame either framework or NixOS for any of the issues. Even for linux, I’m running a very very niche setup.…
Read more ⟶

Kafka: Ideas about Events & Commands


I’ve been thinking about patterns for handling events & commands when you’re communicating with an event broker like kafka. I suppose I shouldn’t lock myself into a specific technology, but kafka imposes certain constraints that I think are worth exploring. For this, I’ll assume a baseline level of knowledge in kafka that you can get from watching these videos The scenario To give the discussion some context, I’m going to make up a fake scenario to ground things.…
Read more ⟶

The Simplest Possible Database


Introduction Recently, I’ve spent a lot of time thinking about different designs for databases. I’ve decided to repurpose my relatable database as something that is far lower-level than a SQL interpreter, which was the original goal. Instead, it should be a small primitive that abstractions can be built on top of. That begs the question though: What should that abstraction look like? What is the essence of a database? That is what I want to answer today.…
Read more ⟶

Application File Formats


On Application File Formats So a few weeks ago, I was talking to a friend of mine. They were talking about the D&D campaign they were starting in a few weeks, and all the pain they had to go through to DM. Keeping track of all the NPCs, generating encounters, choosing loot, etc. They wanted to build a small desktop app that could handle all of these concerns, allowing them to focus on worldbuilding and storytelling.…
Read more ⟶

A Very Relatable Database


Note A lot of the things recommended in this article are pretty bad ideas, if you know anything about databases. If you want to get some better ideas, send me an email & we can chat about other databases. If you don’t really care about how to store data on a disk, then a library like sled.rs might be for you. The problem I like to find ways to fill up my free time over winter breaks.…
Read more ⟶