Contactați asistența

Răspundem prin e-mail, de obicei în două zile.

Google reCAPTCHA verifică această trimitere împotriva abuzurilor; date sunt trimise către Google. Scriptul se încarcă doar când acest formular este deschis.

← Toate articolele

O escapare în plus în opt diagrame

O vreme, opt articole de pe acest blog au afișat cele șapte caractere — în mijlocul unei propoziții, în interiorul diagramelor. Nu o linie de pauză. Textul literal. Între timp a fost reparat în toate limbile.

81 de rânduri, 91 de apariții. În textul propriu-zis al acelorași opt articole: niciuna.

rânduri de diagramă care au afișat entitatea în locul liniei de pauză unsprezece limbi numărare fără cookie middot, mdash exportul datelor ca CSV sau JSON mdash contor prin tag manager mdash un contor pe o pagină HTTPS mdash un contor într-un profil chomikuj mdash o adresă URL lungă a doborât contorul mdash de ce lista de excludere nu este stocată ca hash mdash cache-ul care trăiește în memorie mdash 81 de rânduri în 8 articole, 91 de apariții — și niciuna în textul propriu-zis verificarea lățimii le-a văzut ca prea late, niciodată ca greșite

O escapare în plus

Diagramele sunt SVG inline, scrise în corpul articolului. O etichetă care vrea o linie de pauză conține —, iar browserul o transformă în linie de pauză, exact cum face într-un paragraf.

Ce era stocat însă era —. Browserul a transformat conștiincios asta în cele cinci caractere care formează o entitate și le-a desenat. Textul propriu-zis nu a fost afectat, pentru că nu a trecut niciodată prin ce a adăugat escaparea în plus; doar etichetele au trecut, și doar în articolele ale căror etichete au fost construite atunci.

Cauza este mică și banală. Partea care merită notată este de ce a stat la vedere atât de mult timp și ce i-a pus capăt.

Verificarea a văzut-o și a spus altceva

Există o verificare care măsoară dacă o etichetă de diagramă încape în imaginea ei. Raporta aceste etichete de zile întregi — ca prea late.

Și chiar erau. O etichetă care desenează șapte caractere în loc de unul este cu circa patruzeci și cinci de pixeli mai lată decât trebuia, deci măsurătoarea era corectă și raportul era corect. Concluzia pe care ar fi tras-o cititorul raportului nu era. Cifra spunea că geometria este prea strânsă. Adevărul era că textul nu era ceea ce părea.

Aceasta este forma problemei. O verificare răspunde la întrebarea care i-a fost pusă și nu poate raporta că întrebarea era cea greșită. Nimic nu a fost măsurat greșit aici; măsurătoarea privea pur și simplu o altă problemă decât cea care părea.

Ce a găsit-o

Randarea unei diagrame și privirea ei. Chromium headless, o captură de ecran, zece secunde. Entitatea era pe al treilea rând al imaginii, cu litere de aceeași mărime ca tot restul.

Reparația a fost o migrare care a înlocuit &amp; cu & pentru o listă fixă de nume de entități, iar blocurile <svg class="dg"> au fost singurul loc atins, astfel încât un ampersand gândit ca ampersand să rămână ampersand. Tot ce era în afara acelei liste a fost raportat și lăsat neatins, în loc să fie ghicit. Toate cele 81 de rânduri au fost corectate în toate limbile; singurele apariții rămase în blog sunt cele citate intenționat în acest articol.

Ce se poate generaliza

Fiecare verificare automată din acest proiect măsoară ceva numeric, pentru că numerele sunt ce poate compara un program. Niciuna nu poate vedea că o imagine a devenit fără sens, că o casetă este goală sau că un cuvânt este scris în litere acolo unde ar trebui să fie un simbol.

Așa că regula care a rezultat este scurtă: după orice modificare a unei diagrame, randați una și priviți-o, în limba care are nevoie de cel mai mult loc. Până acum a prins două lucruri pe care nicio măsurătoare nu le-ar fi putut prinde — acesta și o casetă goală rămasă în urmă când o legendă a fost mutată din ea.

Publicitate