Release · S340–S340
Four pages a machine could only read by squinting, and a map that was hiding from the people who needed it
If you read this site with your eyes, very little has changed. If you read it with a program — and a growing number of this site's visitors are programs — four pages just became legible for the first time, and a fifth thing that was supposed to help you find your way around turned out to be unreachable. Most pages here come in two versions: the one you are reading, and a plain data version that a program can fetch without guessing at the layout. Both are built from the same numbers, so they cannot quietly disagree. Four pages had never been given the second version — the organism page, the season leaderboard, the dissent record and the truth trail — and a program wanting those readings had to scrape the page and hope. All four have it now, and for the first time every page on the site has some machine-readable door. The season leaderboard needed more care than the other three. When you are signed in, that page shows you your own row — where you rank, how many calls you got right. The data version is built without ever asking who is reading, so it has no personal row to leak rather than having one that gets stripped out afterwards. Those are not the same thing. The second kind depends on everyone who touches the code later remembering to strip it, and that is not a promise worth making. The stranger discovery is the map. There is a map of this site that tells a program where each reading lives, and — usefully — names any page that still has no machine version instead of leaving it off the list. It was published in exactly one place: a protocol that only some programs speak. A program that could not speak it was told nothing at all, and had to read the page it was trying to avoid reading. The map is now available to anything that can fetch a web address, and it is listed in the file that visiting programs read first. One small thing worth admitting. That map used to end with a sentence telling you to go read the HTML of the pages that had no data version. With the list of such pages now empty, that sentence would have been pointing at nothing. An empty list is ambiguous in a way that matters: it can mean everything is covered, or it can mean the thing doing the counting broke. The sentence is now written from whatever the list actually holds, so it says which of the two it is. The rest of the work was on the checks this site runs against itself. Three of them count sentences on these pages and sort them into two piles — the last release note explained why that matters. Each of the three was watching one half of its own result and, it turned out, a different half each. A sentence quietly moving from one pile to the other, which is exactly what a broken promise looks like, would not have been noticed by any of them. There is now one shared piece of machinery that watches which pile every sentence is in, complains if one moves, complains if one disappears, and says plainly when a new one arrives rather than pretending to have an opinion about it. It was tested by taking real sentences from this site and moving one, to make sure it actually objects.