Sildikontroll mõõtis punkte, mitte piksleid
Sisust ja selle ülevaatamisest
Selles artiklis
27. augustil kirjutatud kontroll teatas 196 diagrammisildist, mis on oma pildi jaoks liiga laiad. Nende läbitöötamine võttis päeva. 196-st 103 osutusid kontrolli enda artefaktiks ja kontroll parandati samal nädalal.
Punktid ei ole pikslid
Kontroll mõõdab silti GD-ga päris fondifaili vastu:
$bb = imagettfbbox(13, 0, $font, $text);
13 on stiililehe fondisuurus pikslites. imagettfbbox() võtab suuruse punktides. See mõõtis 13pt, mis on 17,3px, ja iga silt tuli 96/72 – kolmandiku – võrra liiga lai.
Kindlaks tegemiseks tuli küsida midagi, mis tegelikult teksti joonistab. Headless Chromium suudab päris diagrammi laadida ja teatada getComputedTextLength() iga sildi kohta. Suuruse 13 puhul lahknesid need kaks kolmandiku võrra. Suuruse 13 * 72 / 96puhul, mis on 9,75, langevad nad kokku poole protsendi täpsusega: ühe sildi puhul 219 vs 219 pikslit, pikema puhul 561 vs 559.
Font oli kogu aeg õige
Kontroll mõõdab DejaVu Sansi vastu ja selle kohal olev kommentaar vabandas selle pärast: DejaVu on laiem kui see, mida enamik lugejaid näeb, nii et lävi seati 92 protsendile, et jätta ruumi.
Mõõdetuna osutub valik täpselt õigeks, kuid teisel põhjusel kui kommentaar andis. Fontidest, milleni selle saidi fondivirn tegelikult ulatub, on DejaVu kõige laiem. Sama lause: DejaVu 219 pikslit, Liberation 194, Cantarell 193, FreeSans 188. Windowsi või Maci lugeja saab rohkem ruumi, mitte kunagi vähem. Mõõtmine ei ole pessimistlik, see on halvim juhtum, ja just seda peabki kontroll mõõtma.
Mis jäi pärast aritmeetikat
Parandatud mõõtmise järel jäi alles 93 teadet. Siis selgus, et 33 neist olid reegel, mitte viga: kontroll hoidis pildi servast kümne ühiku varu ja kohtles seda kõva piirina, nii et kolme ühiku kaugusel servast asuv aastasilt loeti äralõigatuks. Midagi ei olnud ära lõigatud. Piir on nüüd serv ise ja kitsikuse küsimus kuulub 95 protsendi lävele.
See, mis jäi, oli päris: sildid, mis jooksid ribade alla, veerud, mis olid vene lause jaoks liiga kitsad, pealkiri, mis ulatus naabri peale. Need parandati geomeetriat liigutades, mis on odav – geomeetria on kõigis üheteistkümnes keelereas identne, nii et üks sõnasõnaline asendus parandab üksteist. Neli silti olid ühes keeles tõesti pikemad kui terve pilt ja need lühendati.
Mida üldistada
Kontroll, mis eksib ühes suunas, tekitab tööd, mistõttu tasub kontrollijat kontrollida. Kaks kolmandikku päevast kulus diagrammidele, mis olid korras – ja sama läbimine parandas need, mis ei olnud, sest valed teated asusid päris teadete kõrval.
Selle otsustas mitte koodi hoolikam lugemine. See oli mõõtmise mõõtmine millegi sõltumatuga, mis joonistab päris teksti – ja see võttis kümme minutit. Kontroll mõõdab nüüd suuruses 13 * 72 / 96 ja on sellest ajast nii töötanud.