Hur länge en felaktig mening överlever
Den 14 augusti hamnade en mening på om-sidan som sa att vi medvetet inte mäter avvisningsfrekvens eller tid på sidan, eftersom båda skulle kräva att en session följs över flera sidvisningar, och det skulle i sin tur kräva en samtyckesruta på den webbplats där räknaren är inbäddad.
Den 27 augusti släppte vi tid på sidan. Meningen stod kvar.
Tretton dagar sann, tjugoåtta timmar falsk
Datumen är exakta eftersom kodförrådet känner till dem. Meningen kommer till kl. 22:41 den 14 augusti. Vistelsetiden, i sex intervall, kommer till kl. 17:53 den 27 augusti — och från den minuten är meningens andra halva falsk. Den rättas kl. 21:57 den 28 augusti.
Den var alltså rätt i tretton dagar och fel i tjugoåtta timmar, vilket låter som en bra kvot fram till nästa iakttagelse: ingenting under de tjugoåtta timmarna skulle ha satt stopp för dem. Inget test slog fel. Ingen kontroll larmade. Sidan visades, funktionen fungerade, och de två motsade varandra i tysthet på elva språk.
Varför ingen kontroll kunde ha upptäckt det
Varje automatisk kontroll i det här projektet jämför två saker som båda finns i systemet: ett antal rader mot elva, en etiketts bredd mot det utrymme den har, en lista över tabeller mot schemat. Ett påstående på en sida går inte att jämföra med någonting. Det är prosa om världen, och världen var i det här fallet en tabell som hade skapats i en helt annan del av kodbasen.
En kontroll som söker igenom om-texten efter funktionsnamn och slår upp dem går att tänka sig. Den skulle bli lång och ömtålig, och den skulle ändå missa de intressanta fallen, eftersom meningen inte nämnde någon tabell. Den nämnde ett skäl: det här skulle kräva en samtyckesruta. Det skälet hade i tysthet upphört att gälla.
Vad som satte stopp för det
En fråga. Någon undrade om vi visar en avvisningsfrekvens, och det ärliga svaret krävde att man läste meningen bredvid, och det var då den föll.
Det är samma mekanism som tog bort fyra andra påståenden från den här sidan tidigare i månaden, och det är ingen mekanism, det är tur. Det enda som förbättrar oddsen är att formulera påståendet så snävt att det förblir kontrollerbart: inte ”vi mäter inte X, eftersom Y”, utan ”X finns inte på den här sidan” — en mening som beskriver sidan den står på snarare än skälen bakom den.
Det som går att generalisera
Kod ruttnar högljutt. Prosa om kod ruttnar tyst, och oftast ruttnar den i samma ögonblick som koden blir bättre.
Tretton ställen fick ändras för att rätta en enda mening: elva språkversioner av en gränssnittssträng och två stycken handskriven HTML. Den siffran är värd att känna till innan nästa förklaring skrivs, eftersom den är priset för varje påstående som sträcker sig bortom sidan det står på.