Tony Finch's blog
fibre broadband anticlimax
How can something that “just works” be so annoying?
situation
We live in Cambridge off a little road...
7 hours ago
How can something that “just works” be so annoying?
situation
We live in Cambridge off a little road down a drive in shared
ownership between us and our neighbouring houses. All the utilities
are buried under this drive, including the phone line.
anticipation
Over the last few...
Tony Finch's blog
Counting the days, revisited
Many years ago I wrote about how to convert Gregorian dates to Julian
Day numbers or similar counts...
9th Aug 2026
Many years ago I wrote about how to convert Gregorian dates to Julian
Day numbers or similar counts such as rata die as used
in Calendrical Calculations. This algorithm is the core of
C’s mktime() function that converts a broken-down date-time
into linear time_t.
I recently...
Tony Finch's blog
poached eggs
A few weeks ago I was enjoying a couple of boiled eggs
(in the shell, with plenty of salt and...
14th Mar 2026
A few weeks ago I was enjoying a couple of boiled eggs
(in the shell, with plenty of salt and pepper, and buttery fingers of
toast to dunk into the runny yolk)
and pondering how fiddly it is to cut off one end of the shell after
boiling compared to eating a poached egg. And I was...
Tony Finch's blog
One page of async Rust
I’m writing a simulation, or rather, I’m procrastinating, and this
blog post is the result of me...
17th Feb 2026
I’m writing a simulation, or rather, I’m procrastinating, and this
blog post is the result of me going off on a side-track from the main
quest.
The simulation involves a bunch of tasks that go through a series of
steps with delays in between, and each step can affect some...
Tony Finch's blog
hybrid quota-linear rate limiter
A while back I wrote about the linear rate limit algorithms leaky
bucket and GCRA. Since then I have...
13th Jan 2026
A while back I wrote about the linear rate limit algorithms leaky
bucket and GCRA. Since then I have been vexed by how common
it is to implement rate limiting using complicated and wasteful
algorithms (for example).
But linear (and exponential) rate limiters have a...
Tony Finch's blog
doubly dual shuffles
Here’s a pearlescent winter holiday gift for you!
There are four variants of the algorithm for...
25th Dec 2025
Here’s a pearlescent winter holiday gift for you!
There are four variants of the algorithm for shuffling an array,
arising from two independent choices:
whether to swap elements in the higher or lower parts of the array
whether the boundary between the parts moves upwards or...
Tony Finch's blog
how to draw a tetrapod
Concrete tetrapods are used to dissipate wave energy in
coastal defences.
There’s a bit of a craze...
24th Oct 2025
Concrete tetrapods are used to dissipate wave energy in
coastal defences.
There’s a bit of a craze for making tetrapod-shaped things: recently
I’ve seen people making a plush tetrapod and a tetrapod
lamp. So I thought it might be fun to model one.
I found a nice way to describe...
Tony Finch's blog
first-class merges and cover letters
Although it looks really good, I have not yet tried the Jujutsu (jj)
version control system,...
11th Sep 2025
Although it looks really good, I have not yet tried the Jujutsu (jj)
version control system, mainly
because it’s not yet clearly superior to Magit.
But I have been following jj discussions with great interest.
One of the things that jj has not yet tackled is how to do better...
Tony Finch's blog
p-fast trie: lexically ordered hash map
Here’s a sketch of an idea that might or might not be a good idea.
Dunno if it’s similar to...
4th Aug 2025
Here’s a sketch of an idea that might or might not be a good idea.
Dunno if it’s similar to something already described in the literature
– if you know of something, please let me know via the links in the
footer!
The gist is to throw away the tree and interior pointers from...
Tony Finch's blog
clamp / median / range
Here are a few tangentially-related ideas vaguely near the theme of
comparison operators.
comparison...
2nd Jul 2025
Here are a few tangentially-related ideas vaguely near the theme of
comparison operators.
comparison style
clamp style
clamp is median
clamp in range
range style
style clash?
comparison style
Some languages such as BCPL, Icon, Python have chained comparison
operators, like
if...