Tom Adler’s blog

ссылка о цифровом видео

В блоге Mark Pilgrim появилась неоконченная пока что серия статей о кодировании видео. С одной стороны, написано достаточно просто, с другой — вполне подробно. Поэтому, если вас интересовало, что такое .avi, divx и h264, но вы так и не узнали этого, рекомендую почитать «A gentle introduction to video encoding».

идеальный openid

со всех сторон хорош openid, кроме одной. Она же — самый большой его недостаток. Проистекает этот минус из новизны технологии: пользователи привыкли писать в формочку логин и пароль, а понять, и уж тем более принять новое для них тяжкий труд. Для всех по разным причинам.

с этим пора бы уже бороться, но даже исследования ситуации были проведены только совсем недавно яхой и гуглом. Впрочем, может оказаться так, что мы, веб-разработчики, сможем миновать эту проблему по короткому пути. Конечно, решением окажется очередная технология. All hail Holy Science!

я уже немного писал о технологии Directed Identity:

если вы уже залогинены на гугле, на новом сервисе вам даже не нужно указывать свой емейл — достаточно кликнуть «использовать гугл/яндекс для входа»

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

итак, что видит неопытный пользователь, оказавшись на этой странице? Надписи «вход через Google» и «вход через Yandex», ещё и с фавиконами. Конечно, я нерепрезентативен, и не могу в полной мере представить, что творится в его голове, но подозреваю (и очень надеюсь :), что такая новизна вызовет в его голове максимум лёгкую заминку. И он радостно кликнет кнопку, и магия openid начнёт свою работу.

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

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

<form method="post" action="/login/openid">
    <input type="hidden" name="openid_identifier" 
        value="https://www.google.com/accounts/o8/id" />
    <input type="submit" value="Login via Google" />
</form>

вы просто один раз заполняете значение openid, и вашим пользователям больше не придётся об этом думать. Так сделайте же это прямо сейчас! : )

,

a farewell to verdana

в «типографских раскладках» есть куча unicode goodies, которыми очень приятно пользоваться. Но моя радость была неполна. Дело в том, что я собирался забыть, как о страшном сне, вид слов «стОит», «стоИт», и прочих с «ударением для бедных». Своё место по праву должен был занять юникодный символ ударения U+0301 COMBINING ACUTE ACCENT.

если вставить этот символ после буквы, он будет отрисован над ней. Так было бы, не вмешайся в дело Вердана! Это заслуженный, многими любимый шрифт, но у него есть особенность. Не знаю, почему, но знак ударения он рисует над следующим символом, а не над предыдущим. Особенно трагичный результат получается, если автор хочет поставить ударение на первую из двух гласных, как раз как в слове «стоит».

а вердану любят очень многие веб-разработчики. Поэтому на куче сайтов весь смысл использовать U+0301 теряется. Конечно, некоторые страницы можно доработать, например, в моём жж вердана отключена, но это капля в море. Поэтому в конце концов я решил откопать топор войны приём «это проблема мира, а не моя». И первое, с чего я начал — грохнул вердану из системы:

sudo rm /usr/share/fonts/truetype/msttcorefonts/Verdana*

пока что хуже стало только в Prizm, где у меня запущен RTM, потому что размер шрифта в призме не настраивается. В остальных местах у меня крупные шрифты, и разницы особо не заметно. Хотя с непривычки стало немного пикантнее ; )

подозрительный чужой код

когда-то давно веб-разработчики захотели дать своим пользователям немножко свободы. Пусть, мол, они используют html для оформления своих текстов на нашем сайте. Некоторые плохие люди решили злоупотребить своей свободой, и так появился XSS. Разработчики пробовали от него защищаться, написали кучу библиотек, но их число, помноженное на число особенностей разных браузеров, достаточно велико, чтобы xss-дырки появлялись регулярно.

теперь веб-разработчики хотят большего. Теперь пользователям дадут в руки не только html, но и javascript. А это уже полный караул в плане безопасности. Нет, есть практически непробиваемый кроссдоменный барьер, но куча ифреймов на странице — это как-то неаккуратненько™, да и работает медленно.

проблемы возникают из-за того, что яваскрипт (да и любой другой язык, наверное) изначально не проектировался под разграничение полномочий исполняемого кода. Но, к счастью, он очень гибок, и теоретически можно попробовать пропатчить его прямо в браузере. Я пока знаю только об одной попытке добиться этого — Caja (читается «каха»).

«закахолить» (cajole) можно не всякий код, там много разных не очень приятных ограничений, но зато получившийся на выходе результат можно спокойно включать на свой сайт. По крайней мере, нам так говорят. Яваскрипт ведь реально очень гибкий, и куча его особенностей, помноженная на особенности браузеров и варианты caja-библиотек, скорее всего опять приведут нас к множественным уязвимостям.

тем не менее, команда разработчиков Yahoo решилась на это пойти. Я не разбирался в подробностях, но знаю, что их яваскриптеры с Дугласом Крокфордом во главе — параноики. А сейчас они используют Caja для сотен миллионов своих юзеров. Может и получится, посмотрим…

,

youtube минус flash

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

есть уже много юзерскриптов, которые заменяют флешовый видеоплеер обычным системным (например, mplayer), но я не могу найти среди них такого, который работает в опере и не только на самом сайте ютюба. Основная проблема в том, что для скачивания видео нужен ключ, который есть только там, а делать кроссдоменные запросы запрещает безопасность. К счастью, гугл одной рукой отбирает, а другой даёт нам AppEngine, который идеально подходит для задач такого рода ; )

поэтому предлагаю yet another userscript для ютюб-видео. Заодно можно добавить в адблок правило http://*youtube.com/v/*, чтобы флеш даже не инициализировался лишний раз. Как обычно, всё это AS IS, за глюки автор ответственности не несёт : )