Jedno wyjście za dużo w ośmiu diagramach
Przez pewien czas osiem wpisów tego bloga pokazywało w środku zdania siedem znaków —, i to w diagramach. Nie myślnik. Sam tekst. Od tego czasu jest to naprawione we wszystkich językach.
81 wierszy, 91 wystąpień. W tekście tych samych ośmiu wpisów: ani jedno.
Jedno maskowanie za dużo
Diagramy to osadzone SVG, wpisane w treść artykułu. Podpis, który chce myślnika, niesie —, a przeglądarka robi z tego myślnik, dokładnie tak jak w akapicie.
Zapisane było jednak —. Przeglądarka posłusznie zrobiła z tego znaki, które literują encję, i je narysowała. Tekst został nietknięty, bo nigdy nie przeszedł przez to, co dodawało dodatkowe maskowanie; przechodziły tylko podpisy, i tylko w tych wpisach, których podpisy powstały wtedy.
Przyczyna jest drobna i nudna. Warte zapisania jest to, dlaczego stała na widoku tak długo i co ją zakończyło.
Kontrola go widziała i mówiła co innego
Jest kontrola, która mierzy, czy podpis diagramu mieści się w swoim obrazku. Zgłaszała te podpisy od dni — jako za szerokie.
Czym rzeczywiście były. Podpis rysujący siedem znaków zamiast jednego jest jakieś czterdzieści pięć pikseli szerszy niż powinien, więc pomiar się zgadzał i zgłoszenie się zgadzało. Nie zgadzał się wniosek, jaki czytelnik takiego zgłoszenia wyciąga. Liczba mówiła, że geometria jest za ciasna. Prawda była taka, że tekst nie był tym, na co wyglądał.
Taki jest kształt tej sprawy. Kontrola odpowiada na pytanie, które dostała, i nie potrafi zgłosić, że pytanie było złe. Nic tu nie zostało źle zmierzone; pomiar dotyczył po prostu innego problemu niż ten, na który wyglądał.
Co go znalazło
Wyrenderowanie jednego diagramu i spojrzenie na niego. Chromium bez okna, jeden zrzut ekranu, dziesięć sekund. Encja stała w trzecim wierszu obrazka, literami tej samej wielkości co wszystko inne.
Naprawą była migracja zamieniająca & na &, dla ustalonej listy nazw encji i wyłącznie wewnątrz bloków <svg class="dg">, żeby ampersand mający być ampersandem nim pozostał. Cokolwiek spoza listy było zgłaszane i zostawiane w spokoju, a nie zgadywane. Wszystkie 81 wierszy poprawiono w każdym języku; w blogu zostały tylko te wystąpienia, które ten wpis cytuje celowo.
Co się uogólnia
Każda automatyczna kontrola w tym projekcie mierzy coś liczbowego, bo liczby są tym, co program potrafi porównać. Żadna nie widzi, że obrazek zamienił się w bezsens, że pole stoi puste albo że słowo jest rozpisane tam, gdzie należy się znak.
Reguła, która z tego wyszła, jest krótka: po każdej zmianie w diagramie wyrenderować jeden i na niego spojrzeć, w języku, który potrzebuje najwięcej miejsca. Złapała już dwie rzeczy, których żaden pomiar złapać nie mógł — ten przypadek i puste pole, które zostało po wyciągnięciu z niego podpisu.