Tom Adler’s blog

маленький плюс html 5 здесь и сейчас

недавно я обнаружил приятную особенность Opera Mobile, имеющую отношение именно к новомодным семантическим тегам. Заметил я её прямо на этом блоге. Дело в том, что занимающий где-то треть страницы блок навигации обёрнут в nav, находящийся прямо в body. Опера обнаруживает это, и делает вполне справедливый вывод: посетителю интересно в первую очередь содержание, а не навигация. Поэтому она сразу масштабирует страницу так, чтобы показать именно содержание. Заметьте: безо всяких там meta name="viewport"! Конечно, при этом сохраняется возможность прокрутить страницу вправо и увидеть-таки навигацию.

проще всего увидеть это, запустив эмулятор Opera Mobile, уменьшив его горизонтальный размер, например, до 500px, и зайдя в этот блог.

можно представить, как при посещении новостного сайта всякие шапки и левые-правые меню будут уходить за пределы окна, и видна будет только сама статья. Я, пожалуй, уже хочу это в десктопной версии оперы : )

,

отладка user javascript

кажется, Опера снова первая ; )

насколько я знаю, ни в одном другом браузере ещё нельзя отлаживать пользовательские скрипты полноценным отладчиком, а не alert'ами. А в Opera Dragonfly уже можно. Виват! : )

правильные имена полей для формы оплаты кредиткой

с удивлением обнаружил RFC 3106, которая среди прочего предлагает унифицировать имена полей в формах, в которые мы вводим данные кредитных карт. Нечто похожее существует в спеке openid: поле для идентификатора в ней просят всегда называть "openid_identifier". А здесь имена типа "Ecom_Payment_Card_Number".

подозреваю, что из браузеров это пока поддерживает только хром. Думаю, что доля веб-программистов, знающих об этом, и действительно называющих поля таким образом, ещё меньше.

интересно, как всё-таки нужно знакомиться со стандартами, чтобы не упускать такие интересные вещи? Неужели просто читать все RFC подряд, начиная с самых свежих?

двуязычная русско-английская проверка правописания в ubuntu

я в очередной раз решил пободаться с проверкой орфографии в системе. Вернее, в опере и пиджине, больше я нигде много текста не пишу. Коротко:

  1. удалить aspell, myspell, ispell со словарями (но не библиотеками, от которых могут зависеть многие другие программы) — что-то из этого может ставиться по умолчанию, и загромождать список словарей
  2. поставить libhunspell
  3. скачать «Орфографический словарь для myspell-hunspell: английский+русский (с ё)»
  4. переименовать словарь в enru.zip и положить его в $HOME/.opera/dictionaries
  5. перезапустить оперу, в многострочном поле ввода в контекстном меню выбрать Dictionaries → «English-Русский (с ё)»
  6. создать папку $HOME/.config/enchant/myspell, в которую распаковать словарь (в новой убунте ещё и переименовать из enru. в используемую локаль, например, en_US.)
  7. перезапустить пиджин (и гажим)

если подробнее, то разных спеллчекеров в линуксе уже штук восемь. Кто-то справедливо решил, что так жить нельзя, и сделал для них общую обёртку Enchant. Именно её использует GtkSpell, которой пользуются Pidgin и Gajim. Но Pidgin ещё не умеет выбирать словарь по умолчанию, поэтому должен остаться только один словарь — двуязычный. Именно поэтому удаляются aspell, ispell и myspell (и другие установленные спеллчекеры) вместе со своими словарями. libhunspell, наверное, нужен для того, чтобы Enchant мог прочитать формат этого словаря.

история самого словаря тоже довольно любопытная : ) Началось всё с Александра Лебедева. Его словарь был использован в качестве основы для словаря OpenOffice. А уже из него был изготовлен двуязычный (бинарный?) словарь.

а раньше склеивать словари приходилось вручную

квоты на количество данных в localStorage

сейчас большинство браузеров уже поддерживают localStorage, и можно довольно смело его использовать для хранения данных на клиенте. Но каков размер этого хранилища? Спецификация говорит про «случайно выбранное ограничение в 5 мегабайт». Но не всё так просто.

большинство приложений будет хранить не байты, а символы. Абсолютное большинство символов даже в utf-8 занимает два байта. Некоторые реализации используют utf-16, которая использует два байта даже для ascii-символов.

каждый производитель браузеров принял своё решение. Chrome ограничивает размер базы именно пятью мегабайтами. Firefox позволяет хранить около 5 миллионов символов. Explorer — чуть меньше 5 миллионов. И только Opera уже сейчас при достижении предела просто предлагает пользователю выделить побольше места для приложения — вплоть до всего диска!

скорее всего, эти ограничения будут меняться со временем. Чтобы в любой момент можно было легко проверить актуальные ограничения, я сделал тест квоты на количество данных в localStorage.

,