Июнь, 2010

В Fortunator я решил попробовать HTML5. Я о нём мало что знал и боялся, что результат не будет работать на многих браузерах, но решил изучить вопрос. Как оказалось, поддержка HTML5 вполне повсеместна (по крайней мере, незнакомые фичи ничего не ломают) и уже есть рекомендации использовать некоторые конструкции HTML5 (начиная с доктайпа) всегда, что уже даже делает Google. Я же решил использовать по максимуму всё, что можно, учитывая минималистичность разметки и функциональности сайта и отсутствие нужды поддерживать какие-либо браузеры (впрочем, в Chromium, FF и Opera я всё равно не увидел проблем).

Что было использовано:

Из замеченных выгод, впрочем, только атрибуты полей: autofocus работает понятно как, required не даёт отправить форму, если поле не заполнено (в Opera оно при этом страшно мигает красным, плюс выводится сообщение, что надо ввести значение), а у поиска в Chromium появилась прозрачная кнопка очистки содержимого.

This is going into Mstone-X until we have a UI design that satisfies our other Chrome constraints (not prompting, etc), and it’s not something that is currently on our list. We do understand it’s a commonly requested feature however so it is possible we’ll consider it in the next 6-12 months.

Комментарий неплохо показывает отношение к пожелалкам, причём для Linux-версии (специфичные фичи либо фичи, которые есть только в вендоверсии) всё ещё плачевнее из-за недостатка девелоперов.

Наконец-то написан и открыт цитатник ALT Linux, пока что только с цитатами с IRC-канала (aka пакет fortunes-ALT-irc) и без голосования, зато с поиском и экспортом.

Самым сложным и интересным был импорт старых цитат. Хотелось хоть как-то близко к реальности выставить время добавления, тем более что некоторая информация об этом есть: для последних нескольких лет — дата коммита пачки из нескольких цитат в git (погрешность — пожалуй, в большинстве случаев меньше недели), для более ранних — дата сборки очередной версии пакета, видимая тоже как дата коммита, но с гораздо большей погрешностью (не берусь оценить навскидку, скорее всего не меньше полугода для самых ранних цитат каждого коммита). Задача осложена тем, что поверх уже закоммиченных цитат могли коммититься изменения форматирования и т.д., поэтому в лучшем случае blame для разных строк одной цитаты может показать разные даты, в худшем — одну неправильную. К счастью, у blame есть ключ -w, отключающий сравнение пробельных символов, а в случае разных дат можно брать самую раннюю. Дальше была проблема разбора данных blame из кода. Обёртка из GitPython то ли не работает вообще, то ли что, но нужного я от неё добиться не смог. Я несколько раз метался между использованием/исправлением/изменением этой обёртки и ручным разбором машинночитаемого вывода blame, но в итоге всё-таки вернулся к первоначальной идее парсинга обычного вывода blame в лоб регексами (да, это ужасно, и всё было бы вообще замечательно и даже без регексов, если бы не столбец с именем автора, содержащий неэскейпнутую произвольную строку с пробелами, отключаемый только вместе со столбцом даты). Получившиеся даты, конечно, неточны, но лучше вряд ли получится.