Contatta l'assistenza

Rispondiamo per e-mail, di solito entro due giorni.

Per prevenire abusi, Google reCAPTCHA verifica questo invio; alcuni dati vengono trasmessi a Google. Lo script viene caricato solo quando apri questo modulo.

← Tutti gli articoli

Il nostro controllo misurava il 32 per cento in più

Un controllo scritto il 27 agosto ha segnalato 196 etichette dei diagrammi come troppo larghe per l’immagine in cui stanno. Ripararle è costato un giorno. 103 non sono mai state troppo larghe.

etichette segnalate come troppo larghe prima segnalazione 196 misura ed entità corrette 93 geometria spostata 38 regola del bordo corretta 3 quattro etichette accorciate 0 5.093 etichette misurate in 77 articoli e undici lingue 103 delle 196 non sono mai state larghe — lo era il controllo

I punti non sono pixel

Il controllo misura un’etichetta con GD contro un vero file di carattere:

$bb = imagettfbbox(13, 0, $font, $text);

13 è la dimensione del testo del foglio di stile, in pixel. imagettfbbox() prende la sua dimensione in punti. Misurava quindi 13pt, cioè 17,3px, e ogni etichetta usciva 96/72 — un terzo — troppo larga.

La certezza è arrivata chiedendo a qualcosa che disegna testo davvero. Un Chromium senza finestra può caricare il diagramma vero e riferire per ogni etichetta getComputedTextLength(). A 13 i due divergevano di un terzo. A 13 * 72 / 96, cioè 9,75, coincidono entro mezzo per cento: 219 contro 219 pixel per un’etichetta, 561 contro 559 per una più lunga.

Il carattere era giusto fin dall’inizio

Il controllo misura contro DejaVu Sans, e il commento sopra se ne scusava: DejaVu è più largo di quello che vede la maggior parte dei lettori, quindi la soglia era al 92 per cento.

Misurata, la scelta risulta esattamente giusta, ma per un motivo diverso da quello dichiarato. Fra i caratteri che la pila di questo sito può raggiungere, DejaVu è il più largo. La stessa frase: DejaVu 219 pixel, Liberation 194, Cantarell 193, FreeSans 188. Chi legge su Windows o su un Mac ha più spazio, mai meno. La misura non è prudente, è il caso peggiore, ed è quello che un controllo deve misurare.

Che cosa restava dopo il conto

93 segnalazioni sono sopravvissute alla misura corretta. Di queste, 33 si sono rivelate una regola e non un difetto: il controllo teneva dieci unità di margine dal bordo dell’immagine e lo trattava come limite rigido, così un anno posato a tre unità dal bordo contava come tagliato. Non era tagliato niente. Il limite ora è il bordo stesso, e la questione della strettezza spetta alla soglia del 95 per cento.

Quel che restava era reale: etichette che finivano sotto le barre, colonne troppo strette per una frase russa, una didascalia di traverso sul riquadro vicino. Riparato spostando geometria, che costa poco: la geometria è identica in tutte e undici le righe di lingua, quindi una sostituzione letterale ne ripara undici. Quattro etichette erano davvero più lunghe dell’intera immagine, in una lingua ciascuna, e quelle sono state accorciate.

Che cosa si generalizza

Un controllo sbagliato in una sola direzione è peggio di nessun controllo, perché produce lavoro. Due terzi di una giornata se ne sono andati in diagrammi che stavano bene, e l’unico motivo per cui il resto è stato riparato è che le segnalazioni false stavano accanto a quelle vere.

A decidere non è stato leggere il codice con più attenzione. È stato misurare la misura contro qualcosa di indipendente che disegna testo vero — ed è costato dieci minuti, dopo una settimana di fiducia nel controllo.

Pubblicità