Спецификации Microsoft
Читаю спецификацию Microsoft про рекуррентные встречи в Exchange
SHOULD be 0x00002023 but MAY be 0xFFFFFFFF
Т. е. «должно быть 0x00002023, но может быть 0xFFFFFFFF».
Дима Смирнов уволился из «Яндекса»
Ничего не предвещало…
Многим известный Дима Смирнов уволился из «Яндекса» по собственному. Куда уходит отказывается, зараза, говорить.
Браузеры: порядок загрузки и количество одновременных соединений
Для интереса написал на PHP небольшой скрипт для анализа сколько соединений открывают браузеры и в каком порядке они грузят данные. Создал
Вот что получилось (считаются одновременные соединения):
- Opera 10 alpha (build 1355) — 4 соединения к серверу, порядок загрузки: js, ico, css, gif; особенности: 0.css
почему-то загружен два раза.
— Internet Explorer 8 — 6 соединений к серверу, порядок загрузки: js, css, gif, ico
— Internet Explorer 5.5 и 6 — 2 соединения к серверу, порядок загрузки: js, css, gif
— Google Chrome 1.0.154.53 — 6 соединений к серверу, порядок загрузки: js, css, gif, ico
— FireFox 3.0.7 — 6 соединений, порядок загрузки: js, ico, css и gif вперемешку; особенности:почему-то ico загружен два раза, gif и css грузились вперемешку
— Safari 4 beta (528.16) — 4 соединения, порядок загрузки: js и css вперемешку, gif; особенности: js и css грузились вперемешку
— Safari 3 (526.27.1) под Maкинтош — 3 соединения, порядок: js и css вперемешку, gif; особенности: js и css грузились вперемешку
— FireFox 2.0.0.20 под Макинтош — 2 соединения, порядок: js, ico, css, gif; особенности: ico загружен три раза
Far 2.0: открываем файлы в UTF-8
FAR 2.0 alpha, как известно, умеет работать с файлами
Но этому его можно легко научить. Заходим в FAR, становимся
Всё, теперь новые файлы будут по F4 открываться в кодировке
Раскрашивание прокрутки в WebKit
Я помню многие ругали Microsoft за то, что в IE
Как бы то ни было, WebKit в свою новую сборку включил селекторы для очередных измывательств над полосой прокрутки (причём, отдельно для ресайзера, горизонтальной и вертикальной прокрутки).
Стилей там добрый мешок, лучше сходить на сайт «ВебКита» и посмотреть, а мне же нравится, что появился новый
noindex::-webkit-scrollbar, .someclass {
color: red;
}
Кроссбраузерный data URI в CSS-файлах (многабукв)
Прелюдия
Некоторое время назад, я нашёл способ, использования data URI в Internet Explorer. Data URI — специальный вид URL, который включает в себя код самого объекта. Например, таким образом можно внедрять изображения прямо в код
Выглядит такой HTML вот так:
<img src="data:image/gif;base64,R0lGODdhMAAwAPAAAAAAAP…и так далее" />Где «data» — это протокол URI, image/gif — тип объекта (картинка GIF), base64 — тип кодирования, после запятой идёт сам код картинки.
Такой вид URI понимают сейчас все современные браузеры, включая Internet Explorer 8 (правда, со многими ограничениями). Плохо то, что Internet Explorer 7 и ниже этого не поддерживает, а доля этих версий настолько велика (около 50% на данный момент по данным LiveInternet), что до недавнего времени data URI использовалась крайне редко.
Я, увлёкшись исследованием малодокументированного протокола mhtml (MIME HTML), поддерживаемого в браузерах Microsoft с пятой версии, в одном из экспериментов разобрался как внедрить объект в тело
Вообще mhtml был придумал для адресации внутри так называемых
Типичный
mhtml:http://example.net/index.html!fhhryregdy4gereГде после «mhtml» идёт обычный
В итоге, когда мне пришла эта идея, я совместил оба способа так, чтобы Internet Explorer видел файл как
Специфика HTML допускает переносы, в том числе и внутри data URI, поэтому мне удалось задуманное относительно быстро. В CSS всё сложнее, а тема использования data URI в CSS, как оказалось, актуальнее, чем для HTML. Например, в книге Николая Мациевского «Разгони свой сайт» сделана попытка расширения моего способа на CSS, к сожалению, менее удачная, чем хотелось бы: требуется включение закодированного объекта два раза.
Фуга
Итак, мне захотелось посмотреть, не получится ли расширить мой способ на CSS, не прибегая к включению закодированного файла два раза. Причём, сфера тут уже, подключаемый к CSS объект это, в 99,99% — картинка.
После немногочисленных экспериментов, оказалось, что оторвать закодированный объект от начала data URI не представляется возможным, что мешает использованить mhtml — там заголовок и кодированный объект должны отделяться пустой строкой.
Тем не менее, других способов побороть IE я не видел и потому продолжал эксперименты. Несколько слов о том, что такое base64. Base64, по сути, анахронизм, доставшийся нам от электронной почты на заре её зарождения. Письма тогда ходили исключительно в латинице и все почтовые системы полагали, что никаких других символов в письмах не бывает.
Таким образом, когда встала задача передавать в письмах
Хорошие новости, заключаются в том, что браузеры игнорируют в кодированной строке символы, которые не входят в упомянутые 64. Можно было ожидать, что браузеры вообще откажутся разбирать такую строку.
Итак, строка data URI начинается
Из вышесказанного следует, что нужно
Оставим в покое XBM, BMP, ART, WMF/EMF, JPEG200 и прочую экзотику, поддерживаемую браузерами, и остановимся на триплете JPEG, GIF, PNG. Честно сказать с форматом GIF я знаком плохо, а JPEG и PNG исследовал несколько лет назад довольно подробно.
JPEG и PNG состоят из секций. В общих чертах, сначала идёт заголовок файла, потом сами секции, в формате (с некоторыми вариациями) «имя секции», «длина секции», «конец секции». И у JPEG, и у PNG есть секции для произвольного содержимого. У JPEG это COM и APPn, у PNG — iTXt, tEXt и zTXt. Кстати, и у GIF тоже есть похожее место — Application Extension.
Отсюда идея: Internet Explorer, декодировав файл с начала строки, получает заголовок с секцией из содержимого, куда помещается заголовок для остальных браузеров и мусор, оставшийся от декодирования начала data URI, остальные браузеры должны пропустить заголовок для IE и начать декодирование с data URI.
Получаем, на примере JPEG:
FF D8 — заголовок JPEG для IE FF E0 xx xx — секция APP0, куда прячется всё до данных изображения, «;background-color:url(data:image/jpeg;base64,» — это видят остальные браузеры FF D8 — начало JPEG для остальных браузеров «данные изображения» — это место видят уже все браузеры
Все бинарные данные выравниваются и кодируются (строка начала
В моём примере такой CSS выглядит вот так:
/9j/4AAs;background-image:url(data:image/jpeg;base64;BOLKNOTE.RU,/9j/4AAC…Легко увидеть, как видит этот стиль браузер: «/9j/4AAs» кажется ему ошибочным атрибутом (его, кстати, можно взять в комментарий), а «;» — разделителем атрибутов. И хорошо просматривается («/9j/AA») двойной старт заголовка
Остальное должно быть понятно из примера («!ie» — CSS hack, делающий стиль видимым только для IE), как это выглядит в браузере, можно увидеть в разделе «Храню» у меня на сайте.
Что в интернет попало…
Костя Коломеец
«Разгони свой сайт»
Сегодня курьер принёс издание книги «Разгони свой сайт», книга написана Николаем Мациевским по материалам известного сайта «Webo». Так как автор сейчас сидит в столовой «Яндексе» на Красной Розе, у меня теперь экземпляр с авторской подписью.
В книге, в разделе «Благодарности» увековечена моя фамилия, как автора метода кроссбраузерного dataURI в HTML. Сегодня, к приходу Николая, я немного пошаманил и сделал то же самое для CSS.
Вообще, в книге описан метод для CSS, который базируется на моих исследованиях, но требует включения кодированного файла два раза. То, что я придумал сегодня, этого не требует.
Опишу его завтра.
Internet Explorer 8: релиз
Вышел релиз Internet Explorer 8 со вкусом «Яндекса».
Нужно прочитать
Две статьи, которые, на мой взгляд, нужно прочитать:
«Ежедневная ложь вашего „здравого смысла“» на Хабре и «Сырьевая психология» Лёни Каганова.
Новый рейс Москва — Казань — Москва
Чудесная новость: «Трансаэро» с 30 марта 2009 года открывает новый рейс Москва — Казань — Москва, летать будет «Боинг
Как вегетарианцы представляют себе пищевую цепь

(Основная идея иллюстрации — мясоеды едят те же атомы, которые
Порадовал диаложик в комментах у Смирнова к этой картинке:
Zkhimich: Свинья сьела собаку? Собака сьела кошку? Dr. Strangelove: Картинку рисовал вегетерианец. Zkhimich: «Как мы это себе представляем», ну да, ну да.
CAL? SAKA?
В исходниках libmapi (файл gen_ndr/property.h) обнаружилась константа CAL_SAKA. Константа обозначает, что выбран индийский календарь, константа читает как «кал сака». Гыгы.
Fujitsu: цветная электронная книга

Fujutsu начинает выпускать первую электронную книгу с цветной электронной бумагой (картинка с сайта Engadget). Продаваться пока будет только в Японии, в двух форматах — А4 и А5 (разрешение одинаковое — 1024 × 768), два режима — 8 и 4094 цветов.
Есть огромный недосток — скорость листания. В режиме 8 цветов листание занимает 2,3 секунды, в режиме 4096 — 10 секунд (!).
Вообще, я считаю электронные книги бесполезным устройством. Для того, чтобы я хотя бы подумал о покупке этого устройства, нужно устранить множество недостатков. Для меня электронная книга, приближенная к идеалу, это цветной экран (пусть хоть 256 цветов) с временем листания в доли секунды, размером не более
Пока этого нет, для меня электронные книги не полезны.
Windows Mobile: hard reset
После наложения очередного патча на мой телефон под Windows Mobile, устройство перестало загружаться. Делать нечего — сделал hard reset (для тех, кто не знает — сбрасывает все пользовательские данные, настройки, программы, патчи и прочее, исключая то, что было на карточке или жёстком диске).
То, что Винда стала работать быстрее — этому я не удивляюсь, я удивляюсь тому, что аккумулятор стал садиться медленее. Раньше с трудом хватало на день, а сейчас… завтра пойдёт третий день, аккумулятор на 50%.
Отсюда урок: приобрёл телефон под Windows Mobile, сделай hard reset, неизвестно что там продавцы накрутили (кстати, привет продавцам из «Связного», которые есть на снимках внутри телефона).
Láska znamená (любовь это…)

Нашёл в ЖЖ чудесные словакские вкладыши «Любовь это» с высказываниями различных людей.
На вкладыше надпись: «Любить значит признавать, что мы разные. В этом заключается свобода настоящей любви. Побеждает тот, кто признает и уважает свободу воли своего партнёра»
iPhone beta
Я

Это iPhone, каким он был за полгода до продажи. Темпы за которые ребята из Apple довели его до ума, меня поражают. В комментариях к заметке высказывали предположение, что это фейк, но судя по тому, что Apple запретила продавать устройство на аукционе и попросила YouTube убрать видео, это не так.
Видео с YouTube, конечно, убрали, но это ведь интернет, если
Автор видео пишет:
If this video is removed ill just repost it even if my account is suspended ill just make a new one and post video again scew u apple
(«Если это видео удалят, я просто залью его ещё раз, если мой аккаунт закроют, я просто заведу ещё один и залью видео снова, пошла ты Эппл»)
Тёплое с мягким, какие ассоциации?
С лёгкой руки Гоблина и его знаменитых «переводов Гоблина», в народ ушла фраза «не путайте тёплое с мягким», да так там и засела. Не понимаю её популярности. За годы употребления она уже настолько приелась, что хочется, чтобы употребляющие её уже проявили
Например, за десяток лет до эры интернета был известен такой «панковский анекдот»:
— Чем отличается помидор от трактора? — Помидор красный, а у трактора дверки наружу открываются.
Последняя фраза ровно про то же — смешивание разных категорий в одну кучу. Умница Коломеец, например, употребил
Opera Mobile 9.5 technology preview build
Все
Google Gears — расширение, которое встраивает в браузер много интересного, например, Database API или Geolocation API (лучше почитать документацию, если вы ещё этого не делали). До этого момента Gears было доступно под все браузеры (включая IE), но не под «Оперу», так что это важный шаг.
Opera Turbo
Пока Microsoft идёт по пути Apple (Apple тоже наивно утверждала, что Safari быстрее всех), Opera балуется со сжатием данных. Ничего особо нового, но от этого технология хуже не становится: запрос идёт

На скриншоте, который я сделал, заметно, что JPEG (некоторые картинки
Что, на мой взгляд, можно было бы улучшить: перепаковывать
Естественно,
Из интересных решений — Flash не загружается до тех пор, пока на него не кликнешь.