Ο έλεγχος ετικετών μετρούσε στιγμές, όχι pixel
Ένας έλεγχος που γράφτηκε στις 27 Αυγούστου ανέφερε 196 ετικέτες διαγραμμάτων ως πολύ φαρδιές για την εικόνα στην οποία βρίσκονται. Η επεξεργασία τους πήρε μία μέρα. Οι 103 από τις 196 αποδείχθηκαν προϊόν του ίδιου του ελέγχου, και ο έλεγχος διορθώθηκε την ίδια εβδομάδα.
Οι στιγμές δεν είναι pixel
Ο έλεγχος μετρά μια ετικέτα με το GD πάνω σε ένα πραγματικό αρχείο γραμματοσειράς:
$bb = imagettfbbox(13, 0, $font, $text);
Το 13 είναι το μέγεθος γραμματοσειράς από το φύλλο στυλ, σε pixel. Η imagettfbbox() όμως δέχεται το μέγεθος σε τυπογραφικές στιγμές. Μετρούσε λοιπόν 13pt, δηλαδή 17,3px, και κάθε ετικέτα έβγαινε κατά 96/72 — ένα τρίτο — πιο φαρδιά.
Ο τρόπος για να είμαστε σίγουροι ήταν να ρωτήσουμε κάτι που σχεδιάζει πραγματικά κείμενο. Ένας headless Chromium μπορεί να φορτώσει το πραγματικό διάγραμμα και να αναφέρει την τιμή getComputedTextLength() για κάθε ετικέτα. Στο 13 οι δύο διέφεραν κατά ένα τρίτο. Στο 13 * 72 / 96, δηλαδή 9,75, συμφωνούν με απόκλιση κάτω από μισό τοις εκατό: 219 έναντι 219 pixel για μια ετικέτα, 561 έναντι 559 για μια μεγαλύτερη.
Η γραμματοσειρά ήταν σωστή από την αρχή
Ο έλεγχος μετρά με τη DejaVu Sans, και το σχόλιο από πάνω ζητούσε συγγνώμη γι' αυτό: η DejaVu είναι φαρδύτερη από ό,τι βλέπουν οι περισσότεροι αναγνώστες, γι' αυτό το όριο είχε οριστεί στο 92 τοις εκατό, ώστε να υπάρχει περιθώριο.
Όταν μετρήθηκε, η επιλογή αποδείχθηκε ακριβώς σωστή, αλλά για άλλον λόγο από αυτόν που έδινε το σχόλιο. Από τις γραμματοσειρές στις οποίες μπορεί πράγματι να καταλήξει η σειρά γραμματοσειρών αυτού του ιστότοπου, η DejaVu είναι η φαρδύτερη. Η ίδια πρόταση: DejaVu 219 pixel, Liberation 194, Cantarell 193, FreeSans 188. Ένας αναγνώστης σε Windows ή σε Mac έχει περισσότερο χώρο, ποτέ λιγότερο. Η μέτρηση δεν είναι απαισιόδοξη, είναι η χειρότερη περίπτωση, και αυτό ακριβώς πρέπει να μετρά ένας έλεγχος.
Τι έμεινε μετά την αριθμητική
93 αναφορές άντεξαν τη διορθωμένη μέτρηση. Έπειτα 33 από αυτές αποδείχθηκαν συνέπεια ενός κανόνα και όχι σφάλμα: ο έλεγχος κρατούσε ένα περιθώριο δέκα μονάδων από την άκρη της εικόνας και το αντιμετώπιζε ως απαράβατο σύνορο, οπότε μια ετικέτα έτους τρεις μονάδες από την άκρη μετρούσε ως κομμένη. Τίποτα δεν ήταν κομμένο. Σύνορο είναι πλέον η ίδια η άκρη, και το ζήτημα του πόσο σφιχτά χωράει μια ετικέτα το καλύπτει το όριο του 95 τοις εκατό.
Ό,τι απέμεινε ήταν πραγματικό: ετικέτες που περνούσαν κάτω από ράβδους, στήλες πολύ στενές για μια ρωσική πρόταση, μια λεζάντα πάνω στη γειτονική της. Αυτά διορθώθηκαν με μετακίνηση της γεωμετρίας, κάτι φθηνό — η γεωμετρία είναι ίδια και στις έντεκα γλωσσικές γραμμές, οπότε μία κατά λέξη αντικατάσταση διορθώνει έντεκα. Τέσσερις ετικέτες ήταν πράγματι μεγαλύτερες από ολόκληρη την εικόνα, η καθεμία σε μία γλώσσα, και αυτές συντομεύτηκαν.
Τι γενικεύεται
Ένας έλεγχος που σφάλλει προς μία κατεύθυνση παράγει δουλειά, γι' αυτό αξίζει να ελέγχεται και ο ίδιος ο ελεγκτής. Τα δύο τρίτα μιας μέρας πήγαν σε διαγράμματα που ήταν μια χαρά — και το ίδιο πέρασμα διόρθωσε όσα δεν ήταν, επειδή οι λανθασμένες αναφορές βρίσκονταν δίπλα στις πραγματικές.
Αυτό που έκρινε το ζήτημα δεν ήταν μια πιο προσεκτική ανάγνωση του κώδικα. Ήταν η μέτρηση της μέτρησης απέναντι σε κάτι ανεξάρτητο που σχεδιάζει πραγματικό κείμενο — και αυτό πήρε δέκα λεπτά. Ο έλεγχος ορίζει πλέον το μέγεθος σε 13 * 72 / 96 και λειτουργεί σε αυτή τη βάση από τότε.