Hoe lang een foute zin overleeft
Over de inhoud en de controle ervan
In dit artikel
Op 14 augustus kwam er een zin op de over-pagina die zei dat we met opzet geen bouncepercentage en geen tijd op de pagina meten, omdat beide een sessie zouden vragen die over paginaweergaven gevolgd wordt, en dat zou een toestemmingsbanner op de insluitende site vragen.
Op 27 augustus leverden we tijd op de pagina uit. De zin bleef staan.
Dertien dagen waar, achtentwintig uur onwaar
De datums zijn exact omdat de repository ze kent. De zin komt om 22:41 op 14 augustus. Tijd op de pagina, in zes klassen, komt om 17:53 op 27 augustus — en vanaf die minuut is de tweede helft van de zin onwaar. Hij wordt om 21:57 op 28 augustus verbeterd.
Hij was dus dertien dagen waar en achtentwintig uur onwaar, wat als een goede verhouding klinkt tot de volgende waarneming: niets in die achtentwintig uur zou er een eind aan gemaakt hebben. Geen test zakte. Geen controle vuurde. De pagina tekende, de voorziening werkte, en de twee spraken elkaar geruisloos tegen in elf talen.
Waarom geen enkele controle het had kunnen vangen
Elke automatische controle in dit project vergelijkt twee dingen die allebei in het systeem zitten: een regelaantal tegen elf, een bijschriftbreedte tegen de ruimte die het heeft, een lijst tabellen tegen het schema. Een bewering op een pagina is met niets te vergelijken. Het is proza over de wereld, en de wereld was in dit geval een tabel die in een heel ander deel van de code was aangemaakt.
Een controle die de over-tekst afgrept op namen van voorzieningen en die opzoekt, is voorstelbaar. Hij zou lang en broos zijn, en hij zou de interessante gevallen nog steeds missen, want de zin noemde geen tabel. Hij noemde een reden: dit zou een toestemmingsbanner vragen. Die reden was stilletjes opgehouden te gelden.
Wat er een eind aan maakte
Een vraag. Iemand vroeg of we een bouncepercentage tonen, en het eerlijke antwoord vroeg erom de zin ernaast te lezen, en toen viel hij om.
Dat is hetzelfde mechanisme dat eerder deze maand vier andere beweringen van deze pagina haalde, en het is geen mechanisme, het is geluk. Het enige dat de kans verbetert, is de bewering zo smal schrijven dat ze na te kijken blijft: niet «we meten X niet, omdat Y», maar «X staat niet op deze pagina» — een zin die de pagina beschrijft waarop hij staat in plaats van de redenen erachter.
Wat in het algemeen geldt
Code rot luidruchtig. Proza over code rot geruisloos, en het rot meestal op het moment dat de code beter wordt.
Er moesten dertien plaatsen bewerkt worden om één zin te herstellen: elf taalversies van één interfacetekst, en twee alinea's met de hand geschreven HTML. Dat getal is het weten waard voordat je de volgende uitleg schrijft, want het is de prijs van elke bewering die verder reikt dan de pagina waarop ze staat.