Genererade 495 resultatsidor på tre språk från en skrivskyddad SQLite‑export, med sidadressen angiven som data så att en rättad mening inte längre flyttade sidan och bröt länken.
Arbetet utfört: augusti 2026
495 resultatsidor, genererade från en skrivskyddad export
Situation. Företagets portföljinnehåll skrivs i en separat databas — samma som producerar CV:t — och webbplatsen måste publicera det som sidor, på tre språk, utan att de två kopiorna glider isär. Det naiva angreppssättet, att skriva sidorna för hand och hålla dem i takt, faller vid den första rättelsen.
Uppgift. Webbplatsen måste generera sitt innehåll från databasen som indata till bygget, med sidadresser som överlever att meningarna på sidorna skrivs om.
Handling. En exportör läser databasen i skrivskyddat läge och skriver en sida per resultat och språk — 495 sidor — plus de taxonomi- och tjänstedata som mallarna behöver. Den använder bara standardbiblioteket, så webbplatsens bygge har inget beroende av generatorns miljö, och eftersom utdata checkas in kan webbplatsen byggas fristående. Det enskilt mest betydelsefulla beslutet i den gäller adresser. Webbplatsen härledde tidigare en sidas URL från de inledande orden i dess engelska påstående, så en rättad mening flyttade sidan i tysthet och bröt varje länk till den — en webbplats vars argument för sig själv är att den rättar saker fick betala med en död länk varje gång den gjorde det. Adressen skrivs nu som data: en rad per adress och resultat, där den första är aktuell och varje senare är en avvecklad adress som webbplatsen publicerar som en omdirigering. Två andra fällor från samma arbete finns dokumenterade. En jämförelse av en period mot en textkolumn matchade i tysthet alla trettiotvå rader på grund av hur databasen tilldelar typaffinitet i en jämförelse. Och språklistan är nu den enda axel som skrivslingan, datafilerna och databasfrågorna alla härleds från, så att lägga till ett fjärde språk är en enda post i en mappning snarare än en sökning.
Resultat. Fyrahundranittiofem sidor genereras från en källa, att rätta ett påstående kostar ingenting och de adresser som webbplatsen någonsin har publicerat fortsätter att svara. Exportören äger också exakt ett presentationsbeslut — hur tjänsterna grupperas i tematiska avsnitt — och det är avsiktligt: allt annat den skriver tillhör databasen, och en grupprubrik som saknar ett språk får exporten att fallera i stället för att engelska renderas ovanpå översatt innehåll.
Läs vidare: Skrev tester för själva kontrollerna efter att ha konstaterat att en kontroll som bara matas med felfri indata en dag rapporterar felfritt för att den inte läste något — lade in en avsiktlig felstavning för att bekräfta att stavningskontrollen hittar den och hämtade ett id‑intervall från databasen i stället för från ett tal i testet. Eller ta en titt på hela portföljen.
En del av en längre historik — och den finns i sin helhet här.
Varje post är skriven på samma sätt: situationen, uppgiften, vad vi gjorde och vad som förändrades.