<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss"
        xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
        xmlns:media="http://search.yahoo.com/mrss/"><channel>
<title>Entropic Thoughts</title>
<atom:link href="https://entropicthoughts.com/feed.xml" rel="self" type="application/rss+xml" />
<link>https://entropicthoughts.com/</link>
<description><![CDATA[]]></description>
<language>en</language>
<pubDate>Tue, 12 May 2026 08:47:55 +0200</pubDate>
<lastBuildDate>Tue, 12 May 2026 08:47:55 +0200</lastBuildDate>
<generator>Emacs 30.2 Org-mode 10.0-pre</generator>
<webMaster>a@xkqr.org (kqr)</webMaster>
<image>
<url>https://entropicthoughts.com/image/favicon/favicon-48x48.png</url>
<title>Entropic Thoughts</title>
<link>https://entropicthoughts.com/</link>
</image>

<item>
<title>Regatta Starting Stations – Chi-squared Continued</title>
<link>https://entropicthoughts.com/regatta-starting-stations</link>
<author>a@xkqr.org (kqr)</author>
<guid isPermaLink="false">https://entropicthoughts.com/regatta-starting-stations</guid>
<pubDate>Tue, 12 May 2026 00:00:00 +0200</pubDate>
<category><![CDATA[statistics]]></category>
<description><![CDATA[
<div id="orgacc09ff" class="figure">
<p>
</p>
</div>


<p>
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 – <i>Berkshire</i> or <i>Buckinghamshire</i> – at random. From there, it is a
straight shot up the river, with the lane from each starting station being
seemingly identical.
</p>



<p>
I didn&rsquo;t know any of this, but a reader reached out some time ago because they
had noticed something odd about this, and they wanted to borrow me as a sounding
board. Here&rsquo;s the odd thing: the team that starts from the Berkshire station has
won 53.5 % of the 7555 races in the historic data this reader looked at. This is
highly unexpected. <i>If</i> teams are assigned at random, <i>and</i> the starting
stations are practically equal, then the starting station of the winning team
should be a coin flip.
</p>



<p>
If we flip 7555 coins, we would never have as many as 53.5 % come up heads.
</p>


<p><a href="https://entropicthoughts.com/regatta-starting-stations">(Continue reading the full article on the web.)</a></p>
]]></description>
</item>
<item>
<title>Article previews in RSS</title>
<link>https://entropicthoughts.com/article-previews-in-rss</link>
<author>a@xkqr.org (kqr)</author>
<guid isPermaLink="false">https://entropicthoughts.com/article-previews-in-rss</guid>
<pubDate>Thu, 07 May 2026 00:00:00 +0200</pubDate>
<category><![CDATA[meta]]></category>
<category><![CDATA[emacs]]></category>
<description><![CDATA[
<div id="org23119c6" class="figure">
<p>
</p>
</div>


<p>
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&rsquo;ve always put it off because it has sounded difficult to
accomplish technically.
</p>



<p>
The way the RSS feed for this site is generated is in two steps:
</p>



<ol class="org-ol">
<li>First a little loop in Emacs Lisp runs through the first few items of a
sorted and filtered list of files belonging to this project. This loop
constructs an org-element syntax tree for the RSS feed, and renders it out
to a temporary file as an Org mode file.</li>
<li>Then the regular Org exporting framework takes over and exports that file as
an RSS file using the ox-rss backend.</li>
</ol>


<p><a href="https://entropicthoughts.com/article-previews-in-rss">(Continue reading the full article on the web.)</a></p>
]]></description>
</item>
<item>
<title>Fizz Buzz Through Monoids</title>
<link>https://entropicthoughts.com/fizzbuzz-through-monoids</link>
<author>a@xkqr.org (kqr)</author>
<guid isPermaLink="false">https://entropicthoughts.com/fizzbuzz-through-monoids</guid>
<pubDate>Tue, 05 May 2026 00:00:00 +0200</pubDate>
<category><![CDATA[haskell]]></category>
<category><![CDATA[programming]]></category>
<description><![CDATA[
<div id="orgdcc8b1c" class="figure">
<p>
</p>
</div>


<p>
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:
</p>



<label class="input">In[1]:</label><div class="org-src-container">
<pre class="src src-haskell"><code>module Main where

import Control.Monad (guard)
import Data.Foldable (for_)
import Data.Maybe (fromMaybe)

fizzbuzz i =
  fromMaybe (show i) . mconcat $
    [ "fizz" &lt;$ guard (rem i 3 == 0)
    , "buzz" &lt;$ guard (rem i 5 == 0)
    ]

main =
  for_ [1..100] $
    putStrLn . fizzbuzz
</code></pre>
</div>



<p>
The great thing about this implementation is that when we get the natural
change in requirements – that we are supposed to print &ldquo;zork&rdquo; for multiples of
seven – we can accommodate that change <i>by simply adding the line that does so</i>:
</p>


<p><a href="https://entropicthoughts.com/fizzbuzz-through-monoids">(Continue reading the full article on the web.)</a></p>
]]></description>
</item>
<item>
<title>Understanding systems</title>
<link>https://entropicthoughts.com/understanding-systems</link>
<author>a@xkqr.org (kqr)</author>
<guid isPermaLink="false">https://entropicthoughts.com/understanding-systems</guid>
<pubDate>Tue, 28 Apr 2026 00:00:00 +0200</pubDate>
<category><![CDATA[learning]]></category>
<category><![CDATA[life]]></category>
<description><![CDATA[
<div id="orgbd96919" class="figure">
<p>
</p>
</div>


<p>
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&rsquo;s how I&rsquo;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.
</p>



<p>
The main thrust of the lost article (as I remember it) was that effective tutors
are highly empathetic to the level of motivation of their student, and they
quickly adjust the lesson to that. That&rsquo;s it. That&rsquo;s the main thing good tutors
do differently. If motivation decreases, they switch to lighter content, or even
transition into non-lesson conversation. If motivation increases, they ramp up
the difficulty of the lesson. Tutoring is, say, 80 % motivation management.
</p>



<p>
Okay, but that undersells it a little. Lesson difficulty is not fixed for any
topic; it depends on the student. Annoyingly, it even depends on the student&rsquo;s
level of motivation! The tutor must somehow know what is going to be difficult
and what is going to be easy for their student, in every specific situation.
</p>


<p><a href="https://entropicthoughts.com/understanding-systems">(Continue reading the full article on the web.)</a></p>
]]></description>
</item>
<item>
<title>Spaced Repetition: Beginner Guide/FAQ</title>
<link>https://entropicthoughts.com/spaced-repetition-beginner-guide-faq</link>
<author>a@xkqr.org (kqr)</author>
<guid isPermaLink="false">https://entropicthoughts.com/spaced-repetition-beginner-guide-faq</guid>
<pubDate>Tue, 21 Apr 2026 00:00:00 +0200</pubDate>
<category><![CDATA[life]]></category>
<category><![CDATA[learning]]></category>
<description><![CDATA[
<div id="orgc9a0738" class="figure">
<p>
</p>
</div>


<p>
Spaced repetition is best introduced in the words of Gwern: it is
</p>



<blockquote>
<p>
a mechanical golem that will never forget, and never let us forget whatever we
chose to.
</p>
</blockquote>



<p>
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 anyone, at a cost of only teens of minutes a day. More people ought to use
it, but some do not because they harbour misunderstandings about it. Today,
we&rsquo;ll clear some of these up.
</p>


<p><a href="https://entropicthoughts.com/spaced-repetition-beginner-guide-faq">(Continue reading the full article on the web.)</a></p>
]]></description>
</item>
<item>
<title>Object Oriented Programming in Ada</title>
<link>https://entropicthoughts.com/object-oriented-programming-in-ada</link>
<author>a@xkqr.org (kqr)</author>
<guid isPermaLink="false">https://entropicthoughts.com/object-oriented-programming-in-ada</guid>
<pubDate>Tue, 14 Apr 2026 00:00:00 +0200</pubDate>
<category><![CDATA[ada]]></category>
<description><![CDATA[
<div id="orgb46cff0" class="figure">
<p>
</p>
</div>


<p>
Ada is <i>incredibly</i> 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 <i>object-oriented programming</i>.
</p>



<p>
I never truly understood object-oriented programming until I learned Ada, which
breaks down object-oriented programming into separate features, like
</p>



<ul class="org-ul">
<li>encapsulation,</li>
<li>reuse,</li>
<li>inheritance,</li>
<li>abstract interfaces,</li>
<li>type extension, and</li>
<li>dynamic dispatch.</li>
</ul>


<p><a href="https://entropicthoughts.com/object-oriented-programming-in-ada">(Continue reading the full article on the web.)</a></p>
]]></description>
</item>
<item>
<title>Readership maths skills</title>
<link>https://entropicthoughts.com/readership-math-skills</link>
<author>a@xkqr.org (kqr)</author>
<guid isPermaLink="false">https://entropicthoughts.com/readership-math-skills</guid>
<pubDate>Tue, 07 Apr 2026 00:00:00 +0200</pubDate>
<category><![CDATA[maths]]></category>
<category><![CDATA[meta]]></category>
<description><![CDATA[
<div id="orgbd2c9af" class="figure">
<p>
</p>
</div>


<p>
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:
</p>



<ol class="org-ol">
<li>How advanced maths have you formally studied?</li>
<li>How advanced maths are you still comfortable using?</li>
<li>How advanced maths do you know well enough to teach someone else?</li>
</ol>


<p><a href="https://entropicthoughts.com/readership-math-skills">(Continue reading the full article on the web.)</a></p>
]]></description>
</item>
<item>
<title>The MVC Mistake</title>
<link>https://entropicthoughts.com/mvc-mistake</link>
<author>a@xkqr.org (kqr)</author>
<guid isPermaLink="false">https://entropicthoughts.com/mvc-mistake</guid>
<pubDate>Tue, 31 Mar 2026 00:00:00 +0200</pubDate>
<category><![CDATA[programming]]></category>
<description><![CDATA[
<div id="org5b6dae1" class="figure">
<p>
</p>
</div>


<p>
Creating abstractions should not be left to beginners. Richard Gabriel says puts
it well::
</p>



<blockquote>
<p>
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 hallmark of
the well-designed abstractions.
</p>
</blockquote>



<p>
This is one of my favourite quotes on abstraction, because &ldquo;anticipating all
purposes and forgetting all purposes&rdquo; so aptly summarises how a good abstraction
is made. I was reminded of this when I read the first sentence of issue 34 of
Frontend at Scale, where it is phrased as &ldquo;how to care about anything without
caring about everything&rdquo;.
</p>


<p><a href="https://entropicthoughts.com/mvc-mistake">(Continue reading the full article on the web.)</a></p>
]]></description>
</item>
<item>
<title>Lines of code are useful</title>
<link>https://entropicthoughts.com/lines-of-code</link>
<author>a@xkqr.org (kqr)</author>
<guid isPermaLink="false">https://entropicthoughts.com/lines-of-code</guid>
<pubDate>Tue, 24 Mar 2026 00:00:00 +0100</pubDate>
<category><![CDATA[programming]]></category>
<description><![CDATA[
<div id="org50b94f1" class="figure">
<p>
</p>
</div>


<p>
The internet is full of people dismissing <i>lines of code</i> as a measurement.
People say things like
</p>



<blockquote>
<p>
Lines of code written has been firmly established over the decades as a largely
meaningless metric.
</p>
</blockquote>



<p>
and
</p>


<p><a href="https://entropicthoughts.com/lines-of-code">(Continue reading the full article on the web.)</a></p>
]]></description>
</item>
<item>
<title>Esqueleto Tutorial</title>
<link>https://entropicthoughts.com/esqueleto-tutorial</link>
<author>a@xkqr.org (kqr)</author>
<guid isPermaLink="false">https://entropicthoughts.com/esqueleto-tutorial</guid>
<pubDate>Tue, 17 Mar 2026 00:00:00 +0100</pubDate>
<category><![CDATA[sql]]></category>
<category><![CDATA[haskell]]></category>
<description><![CDATA[
<div id="org0a300b9" class="figure">
<p>
</p>
</div>


<p>
When interacting with databases in Haskell, we use a library called <i>Persistent</i>
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 <i>very</i> basic.
</p>



<p>
Once operations become more complicated, we turn to <i>Esqueleto</i>, a lower-level
library which reuses <i>Persistent</i> data mappings but let us write nearly raw
SQL queries. The main difference between raw SQL and Esqueleto is that
Esqueleto is type safe, meaning the compiler will complain if we write invalid
Esqueleto queries. If we accidentally try to cram a <code>varchar</code> column into an
<code>UTCTime</code> field in a Haskell object, the <i>compiler</i> will let us know. Not the
pager going off at 3 AM.
</p>



<p>
Another strength of Esqueleto is that it is, in a sense, plain Haskell code.
This is also its drawback. I have long struggled with learning to write
Esqueleto fluently. Some colleagues suggested that maybe the problem is I don&rsquo;t
practice writing it enough. So I picked up an arbitrary SQL tutorial I found on
the web, and followed it but writing Esqueleto instead.
</p>


<p><a href="https://entropicthoughts.com/esqueleto-tutorial">(Continue reading the full article on the web.)</a></p>
]]></description>
</item>
<item>
<title>Are LLMs not getting better?</title>
<link>https://entropicthoughts.com/no-swe-bench-improvement</link>
<author>a@xkqr.org (kqr)</author>
<guid isPermaLink="false">https://entropicthoughts.com/no-swe-bench-improvement</guid>
<pubDate>Thu, 12 Mar 2026 00:00:00 +0100</pubDate>
<category><![CDATA[ai]]></category>
<description><![CDATA[
<div id="org844ed68" class="figure">
<p>
</p>
</div>


<p>
I was reading the METR article on how LLM code passes test much more often
than it is of mergeable quality. They look at the performance of LLMs doing
programming when the success criterion is &ldquo;passes all tests&rdquo; and compare it to
when the success criterion is &ldquo;would get approved by the maintainer&rdquo;.
Unsurprisingly, LLM performance is much worse under the more stringent success
criterion. Their 50 % success horizon moves from 50 minutes down to 8 minutes.
</p>



<p>
As part of this they have included figures such as this one:
</p>




<div id="org9591e8e" class="figure">
<p>
</p>
</div>


<p><a href="https://entropicthoughts.com/no-swe-bench-improvement">(Continue reading the full article on the web.)</a></p>
]]></description>
</item>
<item>
<title>Rebasing in Magit</title>
<link>https://entropicthoughts.com/rebasing-in-magit</link>
<author>a@xkqr.org (kqr)</author>
<guid isPermaLink="false">https://entropicthoughts.com/rebasing-in-magit</guid>
<pubDate>Tue, 10 Mar 2026 00:00:00 +0100</pubDate>
<category><![CDATA[emacs]]></category>
<category><![CDATA[programming]]></category>
<description><![CDATA[
<div id="org9a7e130" class="figure">
<p>
</p>
</div>


<p>
I read Ian Whitlock&rsquo;s article on why he can&rsquo;t quit Magit and it inspired me to
share more about Magit from my perspective. This article will focus on rebasing.
</p>



<p>
Here I have opened the git log, by first opening Magit (which I
have bound to the <code>F3</code> key), and then pressing <code>lL</code>. The first <code>l</code> is the prefix
key for dealing with the git log, and the second <code>L</code> is to to view the log for
all local branches (and the remote branches they track.)
</p>




<div id="org7960927" class="figure">
<p>
</p>
</div>


<p><a href="https://entropicthoughts.com/rebasing-in-magit">(Continue reading the full article on the web.)</a></p>
]]></description>
</item>
<item>
<title>Teaching Children to Bicycle</title>
<link>https://entropicthoughts.com/teaching-children-to-bicycle</link>
<author>a@xkqr.org (kqr)</author>
<guid isPermaLink="false">https://entropicthoughts.com/teaching-children-to-bicycle</guid>
<pubDate>Tue, 03 Mar 2026 00:00:00 +0100</pubDate>
<category><![CDATA[life]]></category>
<description><![CDATA[
<div id="org03bb341" class="figure">
<p>
</p>
</div>


<p>
Teaching an adult to ride a bike is easy. This is how:
</p>



<ol class="org-ol">
<li>You hand them a smaller bike so they can comfortably reach the ground.</li>
<li>You instruct them to not focus on going in any particular direction, but
instead always steer into the fall.</li>
</ol>



<p>
That&rsquo;s it. That&rsquo;s the whole trick to cycling. 99 % of the time, the handlebars
are only there to keep the bike under your body. 1 % of the time you use the
handlebars to upset the balance to initiate a turn.
</p>


<p><a href="https://entropicthoughts.com/teaching-children-to-bicycle">(Continue reading the full article on the web.)</a></p>
]]></description>
</item>
<item>
<title>Flake Checks in Shell</title>
<link>https://entropicthoughts.com/flake-checks-in-shell</link>
<author>a@xkqr.org (kqr)</author>
<guid isPermaLink="false">https://entropicthoughts.com/flake-checks-in-shell</guid>
<pubDate>Tue, 24 Feb 2026 00:00:00 +0100</pubDate>
<category><![CDATA[nixos]]></category>
<category><![CDATA[unix]]></category>
<description><![CDATA[
<div id="org1527832" class="figure">
<p>
</p>
</div>


<p>
TL;DR: To use a shell script as a Nix flake check, turn it into a derivation
with <code>runCommand</code>. It must
</p>



<ul class="org-ul">
<li>Create a file named as suggested in the environment variable <code>$out</code>.</li>
<li>Print the desired &ldquo;how to fix&rdquo; information to <code>stdout</code>.</li>
<li>Exit with status code 1 if the check failed, otherwise 0.</li>
</ul>



<p>
These three steps are not strictly documented anywhere, but are all needed for a
shell script to work as a good flake check.
</p>


<p><a href="https://entropicthoughts.com/flake-checks-in-shell">(Continue reading the full article on the web.)</a></p>
]]></description>
</item>
<item>
<title>Learning KeyBee</title>
<link>https://entropicthoughts.com/learning-keybee</link>
<author>a@xkqr.org (kqr)</author>
<guid isPermaLink="false">https://entropicthoughts.com/learning-keybee</guid>
<pubDate>Tue, 17 Feb 2026 00:00:00 +0100</pubDate>
<category><![CDATA[handheld]]></category>
<category><![CDATA[life]]></category>
<description><![CDATA[
<div id="orgfc3ec16" class="figure">
<p>
</p>
</div>


<p>
The problem with Qwerty keyboards on small touchscreen devices is that they are
designed for ten-finger typing, and we typically only use two thumbs to
type. Surely there
must be ways input can be optimised for two thumbs beyond the Qwerty
keyboard.
</p>



<p>
<i>Obviously</i>, one of the best alternatives would be treating the touchscreen as a
proper iambic morse code key. Unfortunately, no good implementation of that
concept exists for Android. Of the choices that are available, the one that speaks to me the
most is KeyBee.
</p>



<p>
At this point, I have used KeyBee for less than a human gestation
period and I can&rsquo;t imagine going
back to Qwerty. Learning a new input method is a couple of weeks of painful
frustration, followed by another couple of weeks of slow going, but then after
that everything goes automatically and you wonder why you didn&rsquo;t do it before.
</p>


<p><a href="https://entropicthoughts.com/learning-keybee">(Continue reading the full article on the web.)</a></p>
]]></description>
</item>
<item>
<title>Wilks' Tolerance Intervals</title>
<link>https://entropicthoughts.com/wilks-tolerance-intervals</link>
<author>a@xkqr.org (kqr)</author>
<guid isPermaLink="false">https://entropicthoughts.com/wilks-tolerance-intervals</guid>
<pubDate>Tue, 10 Feb 2026 00:00:00 +0100</pubDate>
<category><![CDATA[statistics]]></category>
<category><![CDATA[life]]></category>
<description><![CDATA[
<div id="orgc9bb44d" class="figure">
<p>
</p>
</div>


<p>
Imagine we want to figure out what round-trip times we can expect between Sweden
and New Zealand. We ping a server belonging to the University of Waikato from
Stockholm, and record the following round-trip times in milliseconds.
</p>



<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">


<colgroup>
<col  class="org-right" />

<col  class="org-right" />

<col  class="org-right" />

<col  class="org-right" />

<col  class="org-right" />

<col  class="org-right" />

<col  class="org-right" />
</colgroup>
<tbody>
<tr>
<td class="org-right">290</td>
<td class="org-right">388</td>
<td class="org-right">299</td>
<td class="org-right">290</td>
<td class="org-right">462</td>
<td class="org-right">292</td>
<td class="org-right">291</td>
</tr>

<tr>
<td class="org-right">293</td>
<td class="org-right">293</td>
<td class="org-right">308</td>
<td class="org-right">292</td>
<td class="org-right">292</td>
<td class="org-right">290</td>
<td class="org-right">294</td>
</tr>

<tr>
<td class="org-right">292</td>
<td class="org-right">333</td>
<td class="org-right">348</td>
<td class="org-right">292</td>
<td class="org-right">292</td>
<td class="org-right">293</td>
<td class="org-right">293</td>
</tr>

<tr>
<td class="org-right">292</td>
<td class="org-right">460</td>
<td class="org-right">408</td>
<td class="org-right">290</td>
<td class="org-right">350</td>
<td class="org-right">475</td>
<td class="org-right">290</td>
</tr>
</tbody>
</table>



<p>
We want to tell our friend about our experience, but we don&rsquo;t want to send over
this entire table. A decent way to summarise a distribution is by a <i>tolerance
interval</i>, which means the central portion in which some fraction of the values
end up. For our case, we might pick the fraction 90 %, meaning only 5 % of the
data will be smaller, and 5 % will be greater than the interval.
</p>


<p><a href="https://entropicthoughts.com/wilks-tolerance-intervals">(Continue reading the full article on the web.)</a></p>
]]></description>
</item>
<item>
<title>Laws of Succession</title>
<link>https://entropicthoughts.com/laws-of-succession</link>
<author>a@xkqr.org (kqr)</author>
<guid isPermaLink="false">https://entropicthoughts.com/laws-of-succession</guid>
<pubDate>Tue, 03 Feb 2026 00:00:00 +0100</pubDate>
<category><![CDATA[statistics]]></category>
<category><![CDATA[life]]></category>
<category><![CDATA[forecasting]]></category>
<description><![CDATA[
<div id="orgb0b2af3" class="figure">
<p>
</p>
</div>


<p>
Rajiv Prabhakar presents us with a hypothetical:
</p>



<blockquote>
<p>
You and your friend are walking by a magic store and find a trick coin. You toss
it 14 times and end up with 10 heads. Your friend thinks at least one of the
next two tosses will end up tails, and is willing to offer you $10 in an
even-money bet on it. Should you take him up?
</p>
</blockquote>



<p>
This is a fancy way of asking,
</p>


<p><a href="https://entropicthoughts.com/laws-of-succession">(Continue reading the full article on the web.)</a></p>
]]></description>
</item>
<item>
<title>Solving Systems of Equations Faster</title>
<link>https://entropicthoughts.com/solving-systems-of-equations-faster</link>
<author>a@xkqr.org (kqr)</author>
<guid isPermaLink="false">https://entropicthoughts.com/solving-systems-of-equations-faster</guid>
<pubDate>Thu, 29 Jan 2026 00:00:00 +0100</pubDate>
<category><![CDATA[maths]]></category>
<description><![CDATA[
<div id="org57f669f" class="figure">
<p>
</p>
</div>


<p>
Here&rsquo;s an example of a system of equations I came across.
</p>



<p>
\[\left\{\begin{array}{l} & 4x & - & 3y & = & -17 \\ - & 2x & + & y & = & 7 \end{array} \right.\]
</p>



<p>
There&rsquo;s a fast way to solve this, which is to take two of the lower equation and
add to the upper equation. This makes the \(x\)&rsquo;s cancel out and removes some of
the \(y\)&rsquo;s, leaving us with
</p>


<p><a href="https://entropicthoughts.com/solving-systems-of-equations-faster">(Continue reading the full article on the web.)</a></p>
]]></description>
</item>
<item>
<title>Survival Analysis of the Supreme Court</title>
<link>https://entropicthoughts.com/survival-analysis-of-the-supreme-court</link>
<author>a@xkqr.org (kqr)</author>
<guid isPermaLink="false">https://entropicthoughts.com/survival-analysis-of-the-supreme-court</guid>
<pubDate>Tue, 27 Jan 2026 00:00:00 +0100</pubDate>
<category><![CDATA[forecasting]]></category>
<description><![CDATA[
<div id="orgf0e13de" class="figure">
<p>
</p>
</div>


<p>
The 2026 ACX prediction contest asks whether any justice of the Supreme Court
(SCOTUS) will leave during the year. Well, actually it asks whether one of two
things will happen:
</p>



<ul class="org-ul">
<li>Congress enacts a bill that changes the number of seats in the SCOTUS; or</li>
<li>a sitting justice officially leaves office.</li>
</ul>



<p>
The first condition seems extremely unlikely. All actual changes to the size of
the SCOTUS happened in the years 1801–1869. At the time, representatives of
the SCOTUS had to regularly travel across the US. Asking six people to cover
all that country when horseback was the most efficient mode of transport was
unrealistic so the SCOTUS was gradually expanded when the size of the US
expanded.
</p>


<p><a href="https://entropicthoughts.com/survival-analysis-of-the-supreme-court">(Continue reading the full article on the web.)</a></p>
]]></description>
</item>
<item>
<title>Nvidia Stock Crash Prediction</title>
<link>https://entropicthoughts.com/nvidia-stock-crash-prediction</link>
<author>a@xkqr.org (kqr)</author>
<guid isPermaLink="false">https://entropicthoughts.com/nvidia-stock-crash-prediction</guid>
<pubDate>Tue, 20 Jan 2026 00:00:00 +0100</pubDate>
<category><![CDATA[economy]]></category>
<category><![CDATA[forecasting]]></category>
<description><![CDATA[
<div id="orgbf72f5e" class="figure">
<p>
</p>
</div>


<p>
One of the questions of the 2026 ACX prediction contest is whether Nvidia&rsquo;s
stock price will close below $100 on any day in 2026. At the time of writing, it
trades at $184 and a bit, so going down to $100 would be a near halving of the
stock value of the highest valued company in the world.
</p>



<p>
It&rsquo;s an interesting question, and it&rsquo;s worth spending some time on it.
</p>



<p>
If you just want the answer, my best prediction is that the probability is
around 10 %. I didn&rsquo;t expect to get such a high answer, but read on to see how
we can find out.
</p>


<p><a href="https://entropicthoughts.com/nvidia-stock-crash-prediction">(Continue reading the full article on the web.)</a></p>
]]></description>
</item>
<item>
<title>ACX 2025 Prediction Contest Retrospective</title>
<link>https://entropicthoughts.com/acx-2025-prediction-contest-retrospective</link>
<author>a@xkqr.org (kqr)</author>
<guid isPermaLink="false">https://entropicthoughts.com/acx-2025-prediction-contest-retrospective</guid>
<pubDate>Thu, 15 Jan 2026 00:00:00 +0100</pubDate>
<category><![CDATA[forecasting]]></category>
<description><![CDATA[
<div id="org38213a4" class="figure">
<p>
</p>
</div>


<p>
The last few questions of the ACX 2025 prediction contest just resolved. This
means we can take stock of what went right and what went wrong.
</p>



<p>
My preferred metric of forecasting performance is the
average blind Brier score, since this is what&rsquo;s popularly used as a reference
for comparison across forecasting contexts. In the ACX 2025 contest, I
achieved a Brier score of 0.21 – the same as in the 2024 edition!
</p>



<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">


<colgroup>
<col  class="org-left" />

<col  class="org-right" />

<col  class="org-right" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Tournament</th>
<th scope="col" class="org-right">Brier score</th>
<th scope="col" class="org-right">Placement</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">2023 Q3</td>
<td class="org-right">0.17</td>
<td class="org-right">#31 / 842</td>
</tr>

<tr>
<td class="org-left">2023 Q4</td>
<td class="org-right">0.14</td>
<td class="org-right">#2 / 838</td>
</tr>

<tr>
<td class="org-left">ACX 2024</td>
<td class="org-right">0.21</td>
<td class="org-right">#138 / 2087</td>
</tr>

<tr>
<td class="org-left">2024 Q1</td>
<td class="org-right">0.28</td>
<td class="org-right">#552 / 709</td>
</tr>

<tr>
<td class="org-left">2024 Q2</td>
<td class="org-right">0.20</td>
<td class="org-right">#17  / 1002</td>
</tr>

<tr>
<td class="org-left">2024 Q3</td>
<td class="org-right">0.15</td>
<td class="org-right">#16  / 760</td>
</tr>

<tr>
<td class="org-left">2024 Q4</td>
<td class="org-right">0.23</td>
<td class="org-right">#17  / 378</td>
</tr>

<tr>
<td class="org-left">Vox 2025</td>
<td class="org-right">0.12</td>
<td class="org-right">#39 / 2983</td>
</tr>

<tr>
<td class="org-left">ACX 2025</td>
<td class="org-right">0.21</td>
<td class="org-right">#218 / 4557</td>
</tr>
</tbody>
</table>


<p><a href="https://entropicthoughts.com/acx-2025-prediction-contest-retrospective">(Continue reading the full article on the web.)</a></p>
]]></description>
</item>
<item>
<title>You Need A Kitchen Slide Rule</title>
<link>https://entropicthoughts.com/kitchen-slide-rule</link>
<author>a@xkqr.org (kqr)</author>
<guid isPermaLink="false">https://entropicthoughts.com/kitchen-slide-rule</guid>
<pubDate>Tue, 13 Jan 2026 00:00:00 +0100</pubDate>
<category><![CDATA[life]]></category>
<description><![CDATA[<p>
Kitchen work is all about proportions: sometimes the recipe is for four servings
but you need six; maybe the recipe calls for 80 g of butter but you only have
57 g, so you have to adjust the other ingredients to match.
</p>




<div id="org36d01de" class="figure">
<p>
</p>
</div>




<p>
We could use an electronic calculator to figure out the rescaled amounts, but a
slide rule makes it so much easier. The picture above was taken while following
a recipe that called for 2 tsp of baking powder, and I wanted to make as large a
batch as I could given the remaining 3.3 tsp of baking powder I had – a
proportion of 2:3.3. You can see the slide rule is set to a proportion of 2:3.3
because – if you open the image in a new tab to make it larger – the number 2 on
the C scale (on the bottom of the sliding middle part) is above 3.3 on the D
scale just below.
</p>



<p>
But wait, the number 1 on the C scale is also just above 1.65 on the D scale.
And 14 (or, if you will, 1.4, since with slide rules we ignore decimal points)
on the C scale is above 23.1 on the D scale. Indeed. It&rsquo;s set to those
proportions too, because they are the same proportion. This is what makes the
slide rule so powerful.
</p>


<p><a href="https://entropicthoughts.com/kitchen-slide-rule">(Continue reading the full article on the web.)</a></p>
]]></description>
</item>
<item>
<title>Disaster Costs, 1900–2024</title>
<link>https://entropicthoughts.com/disaster-costs-1900-to-2024</link>
<author>a@xkqr.org (kqr)</author>
<guid isPermaLink="false">https://entropicthoughts.com/disaster-costs-1900-to-2024</guid>
<pubDate>Tue, 06 Jan 2026 00:00:00 +0100</pubDate>
<category><![CDATA[statistics]]></category>
<description><![CDATA[
<div id="org777f040" class="figure">
<p>
</p>
</div>


<p>
Here are the costliest <i>natural</i> disasters per year, since 1900. This covers
only single events; it does not count longer-running processes like multi-year
droughts.
</p>


<p><a href="https://entropicthoughts.com/disaster-costs-1900-to-2024">(Continue reading the full article on the web.)</a></p>
]]></description>
</item>
<item>
<title>Updated LLM Benchmark (Gemini 3 Flash)</title>
<link>https://entropicthoughts.com/updated-llm-benchmark</link>
<author>a@xkqr.org (kqr)</author>
<guid isPermaLink="false">https://entropicthoughts.com/updated-llm-benchmark</guid>
<pubDate>Tue, 30 Dec 2025 00:00:00 +0100</pubDate>
<category><![CDATA[ai]]></category>
<description><![CDATA[
<div id="org3f8adcf" class="figure">
<p>
</p>
</div>


<p>
I evaluate LLMs by how well they play text adventures. The last update I made
was when Haiku 4.5 was released. Now that Google has released a preview of
Gemini 3 Flash, I had to run the benchmark again. I had expected it to blow the
other models out of the water, which it did … almost.
</p>



<p>
The following plot illustrates the distribution of the relative scores achieved
by each tested model.
</p>


<p><a href="https://entropicthoughts.com/updated-llm-benchmark">(Continue reading the full article on the web.)</a></p>
]]></description>
</item>
<item>
<title>Go in 9×9 is Awesome</title>
<link>https://entropicthoughts.com/go-in-9x9-is-awesome</link>
<author>a@xkqr.org (kqr)</author>
<guid isPermaLink="false">https://entropicthoughts.com/go-in-9x9-is-awesome</guid>
<pubDate>Mon, 22 Dec 2025 00:00:00 +0100</pubDate>
<category><![CDATA[games]]></category>
<description><![CDATA[
<div id="org83a5f90" class="figure">
<p>
</p>
</div>


<p>
As readers of the premium newsletter know, I have been playing some more go
recently. In particular, thanks to the release of the book <i>Mastering Mini Go</i>,
I have discovered how exciting go on a 9×9 board is. I feel like this
faster-paced, smaller game has taught me a lot, because it is so rich in
feedback. This comes from it being very unforgiving. Small-ish mistakes quickly
lose the game, and that becomes clear just a few moves later.
</p>



<p>
Here are some things which 9×9 go has made me realise:
</p>



<ul class="org-ul">
<li>The relaxed win requirement (called <i>komi</i>) White gets to compensate for
Black&rsquo;s first-move advantage is bigger than I thought. Black needs to really
apply pressure to have a chance of winning, while White can focus more on
playing a solid defense.</li>

<li>Having the ability to freely decide where to play the next move (called
<i>sente</i> or <i>initiative</i>) is important. Being able to take the next big point
on the board after a local exchange is like getting another first-move
advantage partway into the game.</li>

<li>Retaining the initiative requires knowing when groups are settled, and not
playing additional moves just to be sure. Sometimes it even requires knowing
when a group is unsettled, but there is still a more important intersection to
play on elsewhere on the board.</li>

<li>Attacks and invasions are different things: attacks exploit weaknesses in the
opponent&rsquo;s groups to get free moves on the outside, while invasions create groups inside the opponent&rsquo;s territory
that either survive, or at least create new weaknesses that can later be
attacked.</li>

<li>Invasions live by having at least two directions to run when attacked (called
<i>miai</i>). Invasions that don&rsquo;t live can still be useful: the threat of rescuing
an invasion can create the potential for attacking moves on the outside of the
opponent&rsquo;s invaded territory.</li>

<li>Weaknesses (called <i>aji</i>) in defensive structures can be severe. A single
cutting point or one group with a few liberties might be no big deal. But when
there are many bunched up, the opponent might find the one move (called
<i>tesuji</i>) that starts a sequence that breaks open a wall and throws in
question territory thought to be well-defended.</li>

<li>To invade successfully, one needs a sense of when a space is too small <i>and</i>
with insufficient aji to make an invasion possible. The amount of aji
determines how small is too small, but it&rsquo;s a complex, context-dependent
tradeoff.</li>
</ul>


<p><a href="https://entropicthoughts.com/go-in-9x9-is-awesome">(Continue reading the full article on the web.)</a></p>
]]></description>
</item>
</channel>
</rss>
