Vol. II · No. 318
Established 2025

smallweb

Saturday, November 14, 2026
174 writers in the library
Tech · 1 shelves
Tech

Entropic Thoughts.

Software engineering, systems thinking, and technical analysis.

Recent essays

30 of 73

Claude Code token cost explorer

I am experimenting with involving subagents more in my LLM coding agent workflow. I discovered that subagents make it more difficult to diagnose token usage in Claude Code, because the regular /context command only breaks down context usage for the main conver…

Runs scored in World Baseball Classic

In the Spring 2026 edition of the Metaculus Cup one question concerned the number of runs in the knockout stage of the World Baseball Classic (WBC) in 2026. The community predicted a mean of just under 70 runs, with a spread of 60–80. My prediction was 60 runs…

Extremely brief history of PDP computers

I don’t know why I started to put this together. These machines fascinate me, because so much of early computing/hacker type culture happened on them. I started writing a table, but realised a timeline would be more intuitive. In this graph, the price is for a…

MTL-style circuit simulator

After the first attempt at making a very side-effectful circuit simulator, and then an ambitious attempt at making it pure, I was reminded of a middle ground, using a pattern common in production Haskell code. It is called MTL-style effects, and it is a specif…

Script dependencies with Nix

In the theme of NixOS enabling fearlessness, here’s a way I use Nix on other Linux distributions to sleep better at night: managing dependencies of simple scripts. This way of using Nix is for everyone, not just those willing to try NixOS. We’ll look at it fir…

NixOS is making me less afraid

Something funny happened a little while ago: I read about FreshRSS, and it sounded nice, so I installed it on a server and started using it. That would not have happened a year ago, but then again, a year ago I didn’t have any NixOS servers. For the past few y…

The geometric model of maintenance

James Shore posits that each person-month spent writing code results in 10 days of maintenance in the first year, then 5 days every year after that. Naïvely interpreted, this is a threshold-based model for induced maintenance, and its interesting because it’s…

Swemak: Colemak for Swedish

I have written before about my Swedish Colemak hack, but I never explained what makes it so good. This is a better image what it looks like: If you’re struggling to find the difference against normal Colemak, look at the cluster of five keys next to the return…

Predicting Peace

I have long struggled with predicting when peace will occur. Actually, I’m struggling with predicting anything relating to war, but let’s focus on when peace arrives for now. There are two such questions in the current ACX 2026 competition: Will there be a cea…

Donating to open source

I have decided to start donating a small amount of my fun money to open source projects. After some research, the initial set of recipients are Magit Perl 5 Core Maintenance Fund XMonad (Continue reading the full article on the web.)

Shrinking a Fedora virtual disk

I have a weird setup for my laptop. In summary, I have been irrationally scared of running Fedora on bare, dual-GPU metal, so I run it in a virtual machine with Hyper-V on Windows as a hypervisor. The idea was to let Windows manage GPUs and power management st…

Cheaper LLM labelling

I have a small project where I needed to label commits as either “maintenance” or “new development”. The obvious way to do it is with a cheap but relatively capable LLM, like GPT 5.6 Luna. I tested it on a small set of commits and manually verified its labelli…

Tag index for Org mode blog

Since people keep asking how this blog is made, and I don’t want to share the awful, terrible code that it is taped together with, I’ve decided to start explaining parts of it piecewise. Generally, any time something breaks and I have to fix it, I write down w…

Better AI code comment detector

When I trained the previous AI comment classifier, I used partially personal private data to do it, and built it on a somewhat shaky foundation, so I couldn’t share the code or data. I rebuilt it on public data and a better foundation! First off, you might wan…

Claude comment detection

Here’s a comment I read in the code I was working on. Walk the entire collection to locate flagged clusters. Skip it altogether when the cached, dirty-tracked flag count says there are none (the usual case): nothing needs marking, so the walk is pure waste. Wh…

A curmudgeon tries a language server

I write code roughly the same way I did ten years ago: I make edits in my text editor, I switch over to a terminal window and I run a command to compile and execute the code. I look at the result, then switch back to my editor. If I am unsure of what happens,…

Snakes and Ladders

It is common for promotional pamphlets aimed at children to contain a themed variant of snakes and ladders. This is the “game” where the players toss a die, move as many places as the die says, and then some spots on the board have an event that send the playe…

A noob learns FFT

I have never done any time–frequency transformations. I understand the general idea, but I have never worked with the details. Today I had a reason to use it, but that means learning the basics first. The following is three seconds of a single 5 Hz sine wave,…

Purely functional digital circuit simulator (SICP 3.3)

I have a copy of SICP, or as it is also known, The Wizard Book. This book is widely praised, but I can’t take the time to work my way through all of it. Instead, I’m going to occasionally jump into the parts of it that look interesting. Since last week, are in…

Digital circuit simulator in Haskell (SICP 3.3)

I have a copy of SICP, or as it is also known, The Wizard Book. This book is widely praised, but I can’t take the time to work my way through all of it. Instead, I’m going to occasionally jump into the parts of it that look interesting. In the previous two ins…

Kuiper Q-Q plot: are these the same?

When we tried to get an intuition for the differences in distribution functions, we learned that children subjected to a treatment had greater variation in their score than the reference group. However, we couldn’t tell if this difference was large enough to b…

Intuition for distribution differences

Imagine every person in a country is assigned some sort of score, and a higher score is better. I can’t share the specifics around the score I’m investigating right now, but on the population level it is collected by a government agency. Here’s the distributio…

A full body MRI earns you a year of smoking

Alternative titles: … earns you a high-risk pregnancy … earns you an ascent of Matterhorn … earns you 10,000 km on a motorcycle … earns you two BASE jumps … earns you a day on the frontline in Ukraine (Continue reading the full article on the web.)

Data-directed programming in Haskell (SICP 2.4.3)

I have a copy of SICP, or as it is also known, The Wizard Book. This book is widely praised, but I can’t take the time to work my way through all of it. Instead, I’m going to occasionally jump into the parts of it that look interesting. Last week, we looked at…

Tagged data in Haskell (SICP 2.4.2)

I have a copy of SICP, or as it is also known, The Wizard Book. This book is widely praised, but I can’t take the time to work my way through all of it. However, sometimes I jump into parts of it that look interesting. Today, we’ll see how to support multiple…

GLM 5.2 playing text adventures

I’ve heard some buzz around the new GLM 5.2 open-weights model. They say it’s very capable! I won’t run a full comparison benchmark, but I have some credits sloshing around on OpenRouter so I figured I might compare GLM 5.2 to the similarly-priced Gemini 3 Fla…

Lean, not backpressure

Lucas Costa has written a good article on how to build systems that can handle code-generating robots. Unfortunately, when calling it backpressure, he used the wrong metaphor. Backpressure is about signaling to upstream processes that they are running too fast…

LLMs and almost good code

TL;DR: My new prior is that top-of-the-line LLMs working on easy tasks generate code that is maybe 10 % more complicated than necessary. I also think we accept this complexity too easily, because it comes from code that is right here, right now, solving an imm…

Is the Monaco Grand Prix decided at qualifying?

A Formula One driver triggered my fact-checkitis. They claimed that Winning the Monaco Grand Prix in Monte Carlo is determined nine out of ten times by which position one starts in. That makes intuitive sense, because the Monte Carlo track is a narrow street t…

90 % of the t distribution

William Sealy Gosset was great. He improved beer at Guinness by using the statistics that existed at the time. Not happy with that, he invented new statistics to brew even better beer. The things he invented are used all over the place now, but Guinness wanted…