Feed Atlas
OPML directory + server-side RSS reader

entropicthoughts.com

SiteRSSBlogs
Back

Latest posts

  • A curmudgeon tries a language server
    Aug 24, 2026a@xkqr.org (kqr)

    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, I either add tracer prints to the code and restart the program, or I restart the program in a debugger. If I hit an exception that crashes m

  • Snakes and Ladders
    Aug 17, 2026a@xkqr.org (kqr)

    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 player forward, or back, or give them an extra toss or whatever. The theme is typically related to whatever the promoter wants to promote, b

  • A noob learns FFT
    Aug 10, 2026a@xkqr.org (kqr)

    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, recorded at a sample rate of 100 Hz. (Continue reading the full article on the web.)

  • Purely functional digital circuit simulator (SICP 3.3)
    Aug 04, 2026a@xkqr.org (kqr)

    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 the process of simulating a digital circuit. The reason this is interesting is the solution in SICP uses hidden mutable state and mess

  • Digital circuit simulator in Haskell (SICP 3.3)
    Jul 26, 2026a@xkqr.org (kqr)

    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 installations of this series, we looked at ways of implementing generic functions. In the first one, by tagging values and dispatching ope

  • Kuiper Q-Q plot: are these the same?
    Jul 20, 2026a@xkqr.org (kqr)

    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
    Jul 13, 2026a@xkqr.org (kqr)

    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 distribution of these scores for the population in my country. (Continue reading the full article on the web.)

  • A full body MRI earns you a year of smoking
    Jul 06, 2026a@xkqr.org (kqr)

    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)
    Jun 29, 2026a@xkqr.org (kqr)

    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. The authors of SICP weren’t convinced that’s the best approach, so they move on to data-directed programming. We’ll

  • Tagged data in Haskell (SICP 2.4.2)
    Jun 22, 2026a@xkqr.org (kqr)

    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 representations of data through tagging. This article is written in Haskell throughout, but at the start it will look a lot like the Li

  • GLM 5.2 playing text adventures
    Jun 17, 2026a@xkqr.org (kqr)

    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 Flash, and see where things land. This uses the same setup as the previous benchmark: each LLM gets a few attempts at playing the game, wi

  • Lean, not backpressure
    Jun 15, 2026a@xkqr.org (kqr)

    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 and need to slow down. The suggestions presented by Costa are mostly about signaling to the upstream process that it needs to do thing

  • LLMs and almost good code
    Jun 08, 2026a@xkqr.org (kqr)

    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 immediate problem. This may have consequences for maintenance in the long term. The background to this discovery was that I needed to do s

  • Is the Monaco Grand Prix decided at qualifying?
    Jun 01, 2026a@xkqr.org (kqr)

    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 track with few opportunities for overtakes. But … really? Is that an off-the-cuff remark or an accurate statistical prediction of

  • 90 % of the t distribution
    May 25, 2026a@xkqr.org (kqr)

    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 to keep him a secret weapon, so they made him publish his results under the fake name Student. One thing Gosset realised is that it is

  • The stock market returns 4 %
    May 20, 2026a@xkqr.org (kqr)

    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 assumptions, but they are very misleading because whatever those assumptions were, they’re not relevant for most

  • Pythagorean Addition
    May 18, 2026a@xkqr.org (kqr)

    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 is useful for adding up sources of variance, or figuring out radiuses, or other such things. (Continue reading the full artic

  • Regatta Starting Stations – Chi-squared Continued
    May 11, 2026a@xkqr.org (kqr)

    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, with the lane from each starting station being seemingly identical. I didn’t know any of this, but a reader reached out some time ago bec

  • Article previews in RSS
    May 06, 2026a@xkqr.org (kqr)

    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 put it off because it has sounded difficult to accomplish technically. The way the RSS feed for this site is generated is in two steps:

  • Fizz Buzz Through Monoids
    May 04, 2026a@xkqr.org (kqr)

    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 (for_) import Data.Maybe (fromMaybe) fizzbuzz i = fromMaybe (show i) . mconcat $ [ "fizz" <$ guard (rem i 3 == 0) , "buzz" <$

  • Understanding systems
    Apr 27, 2026a@xkqr.org (kqr)

    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 frame things in this article. The same thing applies to other fields too, but it might be harder the further away from maths they are. The

  • Spaced Repetition: Beginner Guide/FAQ
    Apr 20, 2026a@xkqr.org (kqr)

    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-ranking politicians, CEOs of big companies, and Silicon Valley programmers could afford it. But spaced repetition is available to

  • Object Oriented Programming in Ada
    Apr 13, 2026a@xkqr.org (kqr)

    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 explain this is object-oriented programming. I never truly understood object-oriented programming until I learned Ada, which breaks dow

  • Readership maths skills
    Apr 06, 2026a@xkqr.org (kqr)

    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 difficulty: How advanced maths have you formally studied? How advanced maths are you still comfortable using? How advanced maths do you kno

  • The MVC Mistake
    Mar 30, 2026a@xkqr.org (kqr)

    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 context and for a particular purpose, it is hard to design them while anticipating all purposes and forgetting all purposes, which is the ha