Връзка с поддръжката

Отговаряме по имейл, обикновено до два дни.

Google reCAPTCHA проверява това изпращане срещу злоупотреби; данни се изпращат към Google. Скриптът се зарежда само когато този формуляр бъде отворен.

← Всички публикации

Проверката на надписите мереше в пунктове, а не в пиксели

Проверка, написана на 27 август, отчете 196 надписа в диаграми като твърде широки за картинката, в която стоят. Прегледът им отне един ден. 103 от 196-те се оказаха артефакт на самата проверка и тя беше поправена същата седмица.

надписи, отчетени като твърде широки за диаграмата си според първия доклад 196 поправено мерене и препратки 93 преместена геометрия 38 поправено правило за ръба 3 съкратени четири надписа 0 5 093 надписа, измерени в 77 публикации на единадесет езика 103 от 196-те никога не са били твърде широки — твърде широка беше проверката

Пунктовете не са пиксели

Проверката измерва надписа с GD спрямо истински файл на шрифт:

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

13 е размерът на шрифта от стиловия файл, в пиксели. imagettfbbox() приема размера в пунктове. Проверката мереше 13pt, което е 17,3px, и всеки надпис излизаше 96/72 — с една трета — по-широк.

Начинът да бъдем сигурни беше да попитаме нещо, което наистина рисува текст. Headless Chromium може да зареди истинската диаграма и да отчете getComputedTextLength() за всеки надпис. При 13 двете се разминаваха с една трета. При 13 * 72 / 96, тоест 9,75, те съвпадат с точност до половин процент: 219 срещу 219 пиксела за един надпис, 561 срещу 559 за по-дълъг.

Шрифтът беше правилен от самото начало

Проверката мери спрямо DejaVu Sans и коментарът над нея се извиняваше за това: DejaVu е по-широк от това, което виждат повечето читатели, затова прагът беше поставен на 92 процента, за да остане резерв.

При измерване изборът се оказва точно правилен, но по друга причина от посочената в коментара. От шрифтовете, до които реално може да стигне списъкът с шрифтове на този сайт, DejaVu е най-широкият. Едно и също изречение: DejaVu 219 пиксела, Liberation 194, Cantarell 193, FreeSans 188. Читател на Windows или на Mac получава повече място, никога по-малко. Измерването не е песимистично, то е най-лошият случай, а точно това трябва да мери една проверка.

Какво остана след аритметиката

93 доклада оцеляха след поправеното измерване. После 33 от тях се оказаха правило, а не грешка: проверката пазеше отстъп от десет единици от ръба на картинката и го третираше като твърда граница, така че надпис с година на три единици от ръба се броеше за отрязан. Нищо не беше отрязано. Сега границата е самият ръб, а въпросът за теснотата е работа на прага от 95 процента.

Останалото беше истинско: надписи, които минават под ленти, колони, твърде тесни за изречение на руски, надпис, легнал върху съседа си. Те бяха поправени чрез преместване на геометрията, което е евтино — геометрията е еднаква във всичките единадесет езикови реда, така че една буквална замяна поправя единадесет. Четири надписа наистина бяха по-дълги от цялата картинка, всеки на по един език, и те бяха съкратени.

Какво важи по принцип

Проверка, която греши в една посока, създава работа, затова си струва да се проверява проверяващият. Две трети от деня отидоха за диаграми, които бяха наред — а същото преминаване поправи онези, които не бяха, защото грешните доклади стояха до истинските.

Въпросът не се реши с по-внимателно четене на кода. Реши се, като измерването беше измерено спрямо нещо независимо, което рисува истински текст — и това отне десет минути. Сега проверката задава размер 13 * 72 / 96 и оттогава работи на тази основа.

Реклама