Vol. II · No. 259
Established 2025

smallweb

Wednesday, September 16, 2026
174 writers in the library
Tech · 1 shelves
Tech

Entropic Thoughts.

Software engineering, systems thinking, and technical analysis.

Recent essays

30 of 61

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. (Continue reading the full article on the web.)

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…

The stock market returns 4 %

People assume all sorts of wild stock market returns when they make their financial calculations. Here are some numbers that show up on web searches: 6 % 8.4 % 10 % 10.1 % 11.3 % 11.5 % 13.6 % 16 % These are all correctly computed under their respective assump…

Pythagorean Addition

TL;DR: Instead of labouriously computing \(c = \sqrt{a^2 + b^2}\), we can mentally calculate using the alpha-max plus beta-min algorithm, by estimating \[\hat{c} = \mathrm{max}\left(a, 0.9a + 0.5b \right)\] and this will be very close to the actual \(c\). This…

Regatta Starting Stations – Chi-squared Continued

In the Henley Royal Regatta two teams at a time propel their boats up a river and compete to be first to go a distance. Teams get assigned to their starting stations – Berkshire or Buckinghamshire – at random. From there, it is a straight shot up the river, wi…

Article previews in RSS

Since about three years past time immemorial, the RSS feed for this site has been very anaemic. It had article titles and dates, and that was it. Many readers have requested that I include the full article in the feed, or at least a preview, but I’ve always pu…

Fizz Buzz Through Monoids

Some decade ago I read a good implementation of fizzbuzz. What set it apart was its excellent modularity. The original article is no longer on the web, but this is my reconstruction: In[1]: module Main where import Control.Monad (guard) import Data.Foldable (f…

Understanding systems

Some time ago I read an article on what makes a good tutor. It explicated many of the things I do when tutoring, so obviously I thought it was a great article. When I had a side gig as a private tutor, I covered mostly maths and physics, so that’s how I’ll fra…

Spaced Repetition: Beginner Guide/FAQ

Spaced repetition is best introduced in the words of Gwern: it is a mechanical golem that will never forget, and never let us forget whatever we chose to. If this was a medical treatment or lessons from a personal coach, it would be priced so that only high-ra…

Object Oriented Programming in Ada

Ada is incredibly well designed. One way this shows is that it takes the big, monolithic features of other languages and breaks them down into their constituent parts, so we can choose which portions of those features we want. The example I often reach for to…

Readership maths skills

Many of you get notified of new articles via RSS, and some of you stay tuned through the email newsletter. The email subscribers have, in the past three weeks, answered a survey on their understanding of maths topics. I asked three questions of increasing diff…

The MVC Mistake

Creating abstractions should not be left to beginners. Richard Gabriel says puts it well:: Abstractions must be carefully and expertly designed, especially when reuse or compression is intended. However, because abstractions are designed in a particular contex…

Lines of code are useful

The internet is full of people dismissing lines of code as a measurement. People say things like Lines of code written has been firmly established over the decades as a largely meaningless metric. and (Continue reading the full article on the web.)

Esqueleto Tutorial

When interacting with databases in Haskell, we use a library called Persistent to create mappings between database content and Haskell data types. This library can also query for records and update them, as long as the operations involved are very basic. Once…