Full Width [alt+shift+f] Shortcuts [alt+shift+k]
Sign Up [alt+shift+s] Log In [alt+shift+l]

Tony Finch's blog

Sort By

Recent [alt+2]
fibre broadband anticlimax How can something that “just works” be so annoying? situation We live in Cambridge off a little road...
a week ago
-2

fibre broadband anticlimax

from Tony Finch's blog [alt+shift+b] in programming

a week 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...
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
1

Counting the days, revisited

from Tony Finch's blog [alt+shift+b] in programming

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...
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
1

poached eggs

from Tony Finch's blog [alt+shift+b] in programming

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...
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
1

One page of async Rust

from Tony Finch's blog [alt+shift+b] in programming

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...
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
1

hybrid quota-linear rate limiter

from Tony Finch's blog [alt+shift+b] in programming

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...
doubly dual shuffles Here’s a pearlescent winter holiday gift for you! There are four variants of the algorithm for...
25th Dec 2025
1

doubly dual shuffles

from Tony Finch's blog [alt+shift+b] in programming

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...
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
24

how to draw a tetrapod

from Tony Finch's blog [alt+shift+b] in programming

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...
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
42

first-class merges and cover letters

from Tony Finch's blog [alt+shift+b] in programming

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...
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
38

p-fast trie: lexically ordered hash map

from Tony Finch's blog [alt+shift+b] in programming

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...
clamp / median / range Here are a few tangentially-related ideas vaguely near the theme of comparison operators. comparison...
2nd Jul 2025
48

clamp / median / range

from Tony Finch's blog [alt+shift+b] in programming

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...
📚 BoredReading

You seem to be enjoying this.

Join free to unlock everything.

Create free account

Already have an account? Sign in