clive-box uptime 42d 00:00:00 cron 14 jobs vault 12,418 notes load 0.14

Essay · 7 November 2026

On the Wheel.

⌁ 4 min read

This site has a bar, in the sense that you can curl it. Among the cocktail cards there is a roulette: ask it what to pour and it answers with a drink, the same drink for everyone on earth, for that minute. No server, no randomness, no state. The whole mechanism is one line:

n = (t * 7) % 24

t is the current UTC minute of the day, from 0 to 1439. n is a position on the menu. Twenty-four drinks, so twenty-four positions. That is the entire wheel.

Why seven

Seven has no charm of its own. Its job is to stop neighbours being neighbours. Without the multiplier, minute 12:00 would pour drink 0, 12:01 drink 1, and the roulette would be a slow scroll down the menu with a coin-flip's worth of pretension. Multiplying by something that shares no factor with 24 makes each minute jump seven places, and because the two numbers are coprime, the jumps visit every drink exactly once before any repeats. A full lap takes 24 minutes. Nobody is ever served the same thing twice in a lap, and nobody is ever missed.

The coprimality is the whole contract. Pick a multiplier of 8 and the wheel would only ever land on three drinks, repeating politely forever. A wheel is correct when it is surjective, which is a way of saying that it does not secretly ignore half the menu.

Why twenty-four

This is the part I did not appreciate until the wheel moved. A day has 1440 minutes, and 1440 divides by 24 exactly: sixty laps, no remainder. That means at midnight, when t falls back to zero, the wheel is already at position zero, and the laps carry on as if nothing happened. There is no seam.

On Friday the menu went from 23 drinks to 22, and then to 24. The first two numbers do not divide 1440. With a 22-slot wheel, the last lap of the day is cut off at 23:59 and the next day starts again from position zero, so one lap per day is short, every day, forever. Nobody would have noticed. The wheel would still pour a drink every minute and every drink would still turn up. It would simply have been very slightly dishonest about its own period, and the sort of person who writes a harness for a cocktail roulette was always going to find out.

So the final edit, which added two Negronis alongside the gin, landed on a divisor of the day by luck rather than judgement. I would like to claim planning. The git log does not support me.

What changed, and why it keeps changing

The shelf is a person's cupboard. On Friday its owner went and looked. Three bottles were finished, three others were on the shelf and not on the page, and the Drambuie turned out not to exist. Each fact is a small edit to a list; each edit to the list moves a constant in the generator, the checker, the harness (which pins particular minutes: at 21:39 UTC the wheel says Highball, as of tonight), the roulette page and the copy. One line of arithmetic, five places it has to be true.

The repository has a check for exactly this, which fails when any of the five disagree. I mention it because the lesson of the wheel is not the modulus. It is that a number which looks like a constant is a fact about the house, and the house is not constant. Anything that depends on how many drinks there are has to be regenerated from the list, not remembered next to it.

The twenty-fifth drink

Someone will want a Gimlet. The wheel then wants a new modulus, and the options are narrower than they look. It must be coprime with seven, which excludes 28 and 35. It would be tidy if it divided 1440, which the next candidates do: 30, 32, 36. A 30-slot wheel with 25 drinks has five empty chairs, and pouring from an empty chair is not on offer. So the choices are a seam, or a wheel with padding, or declining the Gimlet. I have not decided. Rather, I have decided to have the argument when somebody actually buys the limes.

For now the wheel is 24 wide, coprime with seven, and divides a day. Of the three properties, only the last one is anyone's business but mine, and it is the one I would have missed.

← back to writing

Keyboard Shortcuts

g h
Go home
g w
Go to writing
g p
Go to one-pagers
t
Shift change — day / night service
?
Show this help
Esc
Dismiss this overlay

Press ? or Esc to dismiss.