Canvas в IE9
Вроде как из блога AMD утекли сведения о том, что IE9 будет поддерживать Canvas:
The <canvas> element will be accelerated on the GPU via Direct2D and will enable hardware accelerated rendering contexts for application development, improving visual display, reducing CPU usage, and improving power usage. … AMD is working with multiple teams at Microsoft to ensure that technologies such as IE and Silverlight continue to move the PC platform forward.
Хотя в AMD чуть позднее поспешили откреститься от этого:
Got a little ahead of myself; Microsoft did not announce they were supporting <canvas>. However, they did say that all of Internet Explorer 9’s graphics, text, and rendering will be hardware accelerated. Given the embraced HTML5 across DOM, CSS3, SVG, and XHTML, it will be fun to watch this space closely as the IE9 Preview gets updated in the weeks to come.
Посмотрим.
Тег video и IE
Интересно, когда консорциум W3 отвернулся от тега OBJECT? Помнится, даже IFRAME старательно пытались заменить на OBJECT, а сейчас
Тем не менее, API ActiveX Windows Media Player хорошо документирован и работать с ним очень просто. Я в последнее время мало программирую на JavaScript и вчера вечером, чтобы освежить знания, попробовал сделал плеер, похожий на VideoJS, но только для IE — с тегом OBJECT и применением VML.

Сегодня утром решил не останавливатся на достигнутом и за завтраком начал делать другую
P.S. Некоторые вещи там сделаны неоптимально, так что я бы очень рекомендовал несколько подчистить код, если
P.P.S. Кнопочки и progress bar нарисованы через VML.
HTML5 и IE9
Ничего неожиданного — ребята из freeciv сделали набор из 444 тестов, которые проверяют поддержку браузером различных мест стандартов HTML5/CSS3 (Canvas, WebSockets, HTML5 Video/Audio, Getlocation API, Storage, Workers

Internet Explorer 9 Preview 2 не прошёл ни один из этих тестов. Это ожидаемо; о том, что Microsoft выбрала
Добавлено 5 июня 2010: в комментариях говорят, что эти тесты — фейк. Например, «Опера» пока не поддерживает GeoAPI.
Android WebKit, iPhone Safari и порядок загрузки ресурсов
Попробовал посмотреть как браузер «Андроида» (основан на WebKit) загружает ресурсы со страницы. Вот что получилось. Количество одновременных соединений к одному домену — 4, все CSS загрузились последовательно, в одном соединении, JS тоже по порядку, но в разных (!). Картинки (логично) подгрузились параллельно.
iPhone Safari открыл 11 (!) соединений (всего я загружал 29 ресурсов), причём параллельно грузились и JS, и CSS. Число одновременных соединений посчитать трудно,
Добавлено позже: в комментариях подсказали, что iPhone Safari не использует favicon.
CSS hack для Safari 2, 3, 4 и Chrome (Chromium) 1, 2, 3, 4, 5 и 6
Если
<head>
<style type="text/css">
/* содержимое этого стиля увидит только WebKit-браузер */
body:not([x|x]) div {
background: red;
width: 100%;
height: 100%;
}
</style>
<body><div></div></body>Хочется узнать для каких версий браузеров он действует. Можно в почту написать: imbolk@gmail.com
P.S. Должна быть красная страница с белой рамкой.
P.P.S.
P.P.P.S. Для Konqueror 3.5 и выше этот CSS hack тоже работает. То есть это, скорее всего, особенность ещё
P.P.P.P.S. В комментариях проверили Safari 2 и Chrome 4, CSS hack работает.
P.P.P.P.P.S. Проверил под Chrome 1.0.154.59, работает.
P.P.P.P.P.P.S В комментариях проверили Chromium 6.0.424.0 (48800), CSS hack работает.
Петра (Иордания)
Петра (от греческого «πέτρα» — «камень») — древний город в Иордании, сейчас уже необитаемый. Построен примерно в 1200 году до нашей эры, входит в фонд всемирного наследния Юнеско. Город очень давно заброшен и до недавнего времени там жили бедуины,
Добраться до Петры можно на автобусе, доехав до туристического центра, оттуда — пешком или на лошадях. Мы решили прокатиться на лошадях, тем более, что в стоимость экскурсии входит купон на поездку. Не понимаю почему остальные не последовали нашему примеру — лошади красивые, холёные.
Вход в Петру проходит через довольно длинное ущелье, по краям которого


Благодаря такому входу, город было очень тяжело захватить, хотя, в итоге, его
Вход был богато украшен фигурами, от которых сейчас остались только фрагменты, а так же многочисленными нишами, очень похожими на букву «П» (может, поэтому город назвали «Петрой»?). Считается, что это изображение божества, которому поклонялись строители города.





Конечно, украшенное ущелье это не всё на что можно посмотреть в Петре, идти довольно долго, но через некоторое время вы будете вознаграждены, когда между скал неожиданно появляется красивейшее и сохранившееся лучше всех первое здание. Оно сейчас стало узнаваемым символом, часто встречается на фотографиях, магнитиках и прочей сувенирки.
И это полностью заслуженно, защищенное от ветров и прямых солнечных лучей, здание, которому несколько тысяч лет, сохранилось в почти идеальном состоянии. Здание это целиком высечено в скале, «дорожки» по бокам — места крепления строительных лесов, на которых стояли камнетёсы. Забавно, что третья слева колонна была восстановлена уже в наше время. Конечно, её старались восстановить как можно лучше, но ровной она всё равно не получилась. А в 1200 году камнетёсы с этим справились.
Интересны некоторые подробности. Четыре фигуры на самом верхнем ярусе связывают с четырьмя временами года, 12 зубчиков под вазой в центре — 12 месяцев, ниже в центре есть 30 ниш (30 дней в месяце), ещё ниже — 365 зубчиков (365 дней в году). Под вазой видны следы от пуль, во вторую мировую войну фашисты (как нам рассказал экскурсовод) пытались её разбить, думали, что там спрятаны сокровища.


По всему городу таких зданий великое множество, от примерно таких же по роскоши (но хуже сохранившихся), до простых ниш. Что же это такое? Считается, что это… дома для мёртвых. При жизни каждый строил себе такой посмертный «дом», в который потом клали его тело. Внутри таких зданий ничего интересного — несколько ниш, очень похожих на те, что делали для умерших в Палестине. Естественно, чем богаче был человек, тем роскошнее он себе строил здание. Наверху некоторых зданий видны небольших лестницы, у них есть оккультный смысл — по ним душа уходила в небо.






Внутри территории Петры кроме этих зданий почти ничего и нет. Большие пустые площади, как считается торговые (сейчас на них занимаются тем же), есть небольшой амфитеатр, но он более поздней постройки, когда город был завоёван. А где же жили горожане? Считается, что в так называемой Малой Петре. Идти туда около часа, мы поехали туда на мулах.



Малая Петра выглядит поскромнее, туристов водят туда редко (мы попали туда потому, что у нас набралась необычно маленькая группа) и чаще всего там проводят дни рождения олигархов (в том числе и российских) и тому подобные вещи.



Зато там обнаружен единственный сохранившийся кусочек оригинальной мозаики, которая


На моей памяти, это самая лучшая экскурсия, в которой я только побывал. И, судя по отзывам остальных, лучше, чем пирамиды в Каире, смотреть на которые мы не поехали. Если будете в Иордании, крайне рекомендую посмотреть на Петру.
P.S. Кстати, посетители сайта увидят больше фотографий, чем читатели
P.P.S. Забыл сказать, галерея работает только в современных браузерах. Это означает, что в Internet Explorer она не будет работать, даже
В интернет через «Андроид»
Последние мои три телефона (до Nexus One) — Nokia 6230 (не смартфон), Nokia N73 (Symbian OS 9.1) и HTC X7500 (Windows Mobile 6.1).
Со времени приобретения Nexus One я впервые столько выхожу в интернет с телефона, причём я ничего не делаю, телефон меня сам переманивает. Он просто спросил у меня пароль GMail и я стал читать почту, потому что игнорировать её нельзя — вверху есть уведомления, потом я стал редактировать контакты через GMail, потом поставил виджет Twitter, а теперь ещё и клиент для Google Reader.
Это не говоря уже о браузере, он очень удобный и с «многотыком». Вчера у меня впервые активизировался GTalk, который, оказывается всегда включается, как только я вхожу в WiFi, просто до этого мне никто в него не писал.
Ах да, у меня ещё настроены два
Ребята, это действительно удобный телефон и удобная ОС!
Android: игра Doodle Jump
Забавная игрушка под «Андроид» — Doodle Jump, спасибо elfarda за ссылку!

Версию под «Андроид» 1.x можно найти на «Народ.Диске», там же есть версия под 2.x. Инструкция, по сути, на скриншоте. Для удобства есть

В «Маркете» игрушка
Картинки в комментариях на моём сайте
Я тут сделал на выходных, помимо кучи малозаметных улучшений, ещё одну хорошую (как мне кажется) вещь — картинки в комментариях. Пишу «как мне кажется», а не «однозначно», потому что это мне скучно делать как у всех. Я делаю, либо чтобы провести эксперимент, либо чтобы
Итак, вставляются картинки только из сервиса «Яндекс.Фотки». Инструкция: идёте в любой альбом, тыкаете там в публичную фотку, берёте URL, который получился, указываете его в заметке, отправляете комментарий. Всё.

В это время мой сервер просматривает урлы вашего комментария, находит три первых, похожих на урлы «Яндекс.Фоток» (отсюда ограничение — вставляются так только три первых картинки, остальные будут простыми урлами), идёт с ними в API фоток, берёт из присланного обратно XML урл картинки, выставляет формат «не более 500 пискелей в любую сторону» и вставляет полученное как картинку.
Есть способ обойти ограничение, закрою позже, если
Принимаются советы, например, не много ли это — 500 пикселей, может сделать меньше? Доступные размеры есть на сайте документации API «Яндекс.Фоток».
P.S. Расскажу сразу почему «Яндекс.Фотки», а не любой другой сервис? Причин несколько — наличие API, которое доступно (в нужном мне функционале) без регистрации и авторизации.
Второе — неограниченный размер хранимых изображений на сервисе.
Третье — сервис закроется не раньше, чем закроется «Яндекс», то есть это маловероятное событие.
Четвёртое — кража домена исключается, взлом крайне маловероятен, значит с сервиса мне придут данные, которым я могу доверять. Это тоже важно.
К сожалению, есть недостаток — картинки могут заливать только зарегистрированные пользователи. Но если вы знаете другой сервис, где выполняются все четыре условия, скажите мне, я подключу и его.
P.P.S. Это топик добра, в нём можно тестировать как работает вставка этого добра на страницу.
Nginx и WSGI
Тем временем в версии 0.8.40 появился модуль ngx_http_uwsgi_module от Roberto De Ioris.
iPhone 4
Про iPhone 4 я промолчу, за меня всё скажет цитата с «Хабра»:
Autorun: Признаюсь, он превзошел все мои ожидания, даже в плане дизайна (несмотря на утекшие фото, которые меня немного расстроили), они существенно подняли эргономичность корпуса. Я молчу про все плюшки.
Bruce: Ваши комментарии в прошлом :) «Не не не, если это будет правда, то все, Джобсу пора на пенсию.» «так что даже в этом случае такой дизайн я уверен не пройдет.»
Исходя из этого мне иногда кажется, что Джобс продал душу Сатане.
Аппаратное ускорение в пятом «Сафари»

На «Хабре» сравнили вышедший вчера Safari 5 и Internet Explorer 9 Preview 2. Оба браузера обладают аппаратным ускорением (на скриншоте — результаты теста «Flying Images»).
Видно крайне низкий показатель FPS у «Сафари». Странно, но под «Мак» таких проблем нет, похоже под Windows аппаратное ускорение неполное, если оно вообще там есть.
У меня на машине «Сафари» 5 показывает в том же тесте 1…2 fps, тогда как «Опера» 10.60a — около 35. Заметьте, у «Оперы» аппаратное ускорение не заявлено.
Регулятор громкости в плеере для IE
Я недавно делал плеер для Internet Explorer по функциональности похожий на VideoJS. Как я уже упоминал, там ни одной картинки — всё VML. Регулятор громкости и кнопочки —
Попробую описать как сделан регулятор громкости, но писать буду под стандартные браузеры, так что код будет несколько отличаться.

На рисунке мы видим прямоугольник со скруглёнными углами, это сумеет сделать даже моя бабуля (в IE для этой цели я использовал VML):
#video_volume {
width: 34px;
height: 20px;
font: 14px Arial;
color: white;
background: gray;
-webkit-border-radius: 0.5em;
-moz-border-radius: 0.5em;
-khtml-border-radius: 0.5em;
border-radius: 0.5em;
}У нас получается пустой скруглённый прямоугольник. Теперь надо нарисовать уменьшающиеся прямоугольники. Как? Первая идея, которой я и воспользовался — вложить теги внутрь друг друга и сделать
<span>❚<span>❚<span>❚<span>❚<span>❚</span></span></span></span></span>В стиле прописываем абсолютную позицию
#video_volume span {
position: absolute;
margin-top: 1px;
}Получилась этакая рекурсия стилей. Уже близко к тому, что хочется получить.

Теперь надо снизу обрезать лишнее. В IE я просто ограничил размеры и выставил
#video_volume div {
clip: rect(auto, auto, 14px, auto);
position: absolute; /* crop работает только у абсолютно позиционированных элементов */
/* кстати, ребята из W3C, почему вы забыли про crop? почему только прямоугольник, зачем position? */
}Почти то что нужно, но повёрнуто в другую сторону:

Что делать? Всё просто, это текст, значит, его можно просто развернуть в другую сторону, указав ему direction, правда при указании direction элементы регулятора прилипают к правому краю, для того, что это исправить, укажем отступ справа.
Теперь осталось обрамить это ещё одним родительским контейнером, так как указав абсолютную позицию всех элементов мы вывели их из потока. Родительский контейнер позволит регулятору занять своё место в потоке.

Получился такой код:
<head>
<style type="text/css">
#video_volume, #video_volume div {
width: 34px;
height: 20px;
font: 14px Arial;
color: white;
background: gray;
padding-right: 5px;
-webkit-border-radius: 0.5em;
-moz-border-radius: 0.5em;
-khtml-border-radius: 0.5em;
border-radius: 0.5em;
}
#video_volume div {
clip: rect(auto, auto, 14px, auto);
position: absolute;
direction: rtl;
}
#video_volume span {
position: absolute;
margin-top: 1px;
}
</style>
</head>
<body>
<div id="video_volume">
<div>
<span>❚<span>❚<span>❚<span>❚<span>❚</span></span></span></span></span>
</div>
</div>
</body>Кстати, «Опере» rtl правильно не работает (по крайней мере в моей 10.60 alpha), нужно расставлять margin, но я этого делать не буду.
Москва → Казань → Москва
PHP-FPM будет входить в состав PHP 5.3.x
Отличная новость
Если вы не знакомы с этим патчем, то перечислю основные отличиями
А так же возможность задавать заговолок ответа при фатальных ошибках PHP, поддержка возможности nginx 0.5.9+ передавать большие
В общем, исключительно полезный патч. Жаль, что в ветку PHP 5.2.X его
На ветку 5.3.X вряд ли пока переходит много народу. Я попробовал мигрировать пару проектов, неудачно. Один завис
Scalar type hinting в PHP 5.4.X или 6.X
Ну и раз уж я решил перед сном пописáть о PHP, то продолжу. Ещё новость из мира PHP — в PHP будет scalar type hinting. Илья Альшанетский добился включения своего патча в код.
Сейчас type hinting в PHP есть, я могу указать явно, что параметр будет объектом определённого класса или массивом:
function test1(MyClass $var) {}
function test2(array $var) {}Скоро можно будет указать, что передаваемый аргумент должен быть скаляром. Жаль только, что появилась только возможность указать определённый тип. Если «object» указать можно, то «scalar», к сожалению, нет. Это странно. Придётся указывать явно:
function test3(string $var) {}Что поможет снизить количество ошибок в отдельных случаях, но как быть, если мне такая жёсткость ни к чему, если я хочу оставить возможность преобразования типов, там где это сделано хорошо (преобразование типа «array» в «string» в PHP сделано бессмысленно, посмотрите на Perl, там это имеет смысл)? Да и как мне указать, что мне всё равно — придёт int или float? Видимо, только явным приведением типа при вызове, а про возврат значения по ссылке, в этом случае, придётся забыть.
В отдельных случаях, хотелось бы, чтобы передав объект в такой типизированный параметр, у объекта дёрнулся метод __toString, а то и __toNumber, если указано, что должен быть передан числовой скаляр.
Надеюсь, не одному мне этого хочется и Илья продолжит работу над патчем.
Добавлено через несколько минут: прочитал комментарии, оказывается идут дискуссии о добавлении ключевых слов «scalar» и «numeric». Кроме того, Илья рассуждает и о преобразованиях типов в рамках type hinting. Ура.
КГУ → КФУ
Вот так живёшь, а то, что родной Казанский Государственный Университет имени
У меня военник СССР и диплом об окончании КГУ, а ещё я прожил всё детство на улице Свердлова в родном городе. Последняя теперь проспект Пятидесятилетия Победы.
Караби-яйла
Место замечательное — природа, солнце, всё в цветах, пасутся кони, на плато, где мы находились, растут несколько видов цветов, занесённых в красную книгу. Мы были там в мае, всё было усыпано цветущими пионами.







Жили на метеостанции, кровати, холодная вода, газовая плита, туалет во дворе, перед отъездом — баня. Ничего экстремального, как мы планировали вначале, удалось даже договориться доехать до станции, а не идти пешком. Несколько часов езды по горам и бездорожью, и мы на месте.




В первый день решили сходить для пробы в небольшую пещеру — «Сказка» (15 метров), внутри было красиво,




«Сказка», конечно, очень небольшая пещера, если ничего не путаю, всего два небольших зала. В «Виоле» (другое название —






Кстати, те металлические штучки, которые у меня на первых картинках в галереях (напоминаю, что читающие трансляции и RSS галерею не видят) называются «марки», на них написано (сверху, по часовой стрелке): название пещеры, год открытия, кадастровый номер, глубина или протяжённость.
Спускаться в пещеры трудно, иногда — очень страшно,
В «Большом Бузулуке», когда я поднимался из ледяного девятнадцатиметрового кармана было страшно — кроль вдруг оказался горизонтально нагружен, что могло привезти к его выстёгиванию, решил пристраховкой верёвки под кролем коротким усом.
В «200 лет Симферополя» на довольно длинной перестёжке (порядка 30 метров) меня хорошо «резинило» на верёвке, на мне висел транс (транспортный мешок) с верёвкой, что добавляло веса; когда я наверху этой перестёжки проходил по перилам, пот лил ручьём, нервное напряжение от «резины» и неудобного перехода.
На следующий день мы пошли в пещеру «Дублянского» (88 метров), делал навеску я, снимал тоже я, есть чем похвастаться — хорошо навесил. Пещера по площади много больше «Виолы», думаю, мы прошли лишь небольшой кусок, хотя в пещере провели, вместе со спуском и подъёмом, около 6…7 часов. Огромный трёхмерный лабиринт, образованным гиганскими сталактитами, упавшими с потолка пещеры.







Новый день, пещера «Крубера», 62 метра. Два зала, внутри не фотографировались и пещера



В тот же день сходили в «Большой Бузулук», 88 метров, в основном горизонтальная пещера, обледенелая (оттаивает только осенью), холодная, в дальнем конце, в центре, если спуститься по ледяному склону, есть карман в 19 метров, куда спустились только мы втроём — я, Гарыня, который был нашим старшим в походе и пришлый парень из Харькова, Роман, который на пару дней присоединился к нашей группе. Внутри кармана ещё холоднее, есть небольшой гротик, где спят летучие мыши.






Следующий день, были в «Костере», 67 метров, плюс два шкурника, мы с Гарыней не проходили в оба, пришлось расширять и даже в этом случае нам пришлось туговато, но всё обошлось. Собственно, только шкурники и запомнились. Ещё был лаз вниз, но у нас с собой не было верёвки.




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





Последняя пещера, в которой мы побывали — «200 лет Симферополя», 102 метра. Справедливости ради надо отметить, что я сходил ещё в одну — «Мамина» (мама тут не причём, её открыл Аби Усеинович Мамин), это неинтересная горизонталка с тремя залами, протяжённостью в 76 метров и глубиной в 27. Неинтересна пещера, прежде всего, потому, что основательно загажена туристами — при наличии навыков спуститься в неё можно без снаряжения.
Вернёмся к «200 лет». Вход в пещеру найти довольно трудно — небольшая дыра в земле, куда с трудом протискивается человек, внутри — извилистый лаз, с кучей перестёжек, потом огромная зала метров 30 высотой и ещё спуск. Мы обнаружили, что можно спуститься ещё дальше, метров на 15, но потом начинался очень узкий колодец, который мы штурмовать не стали — опасно, снаряжение проходит с трудом.
Висеть под потолком на такой высоте странно.
Так что поверьте на слово, это жутко и красиво.


Расставаться с Караби было жалко. Красиво, спокойно, никакой суеты, в пещерах — (часто) нет звуков и света. Мы даже специально выключали фонарики и молчали, чтобы почувствовать как это — когда темно и тихо
Несмотря на каждодневную усталость, это было безумно интересно и необычно, спасибо Гарыне, что он втянул нас в спелеологию. Я не знаю, буду ли я заниматься этим в дальнейшем, но эту поездку не забуду.
P.S. Больше снимков можно увидеть в моём альбоме на «Яндекс.Фотках» (там же есть фотографии, которые снимал Денис).
Билеты на аэроэкспресс через интернет

Оказывается, билеты на аэроэкспресс от и до московских аэропортов (Внукова, Домодедова, Шереметьева) можно купить через интернет, причём, если покупать более, чем за месяц, скидка почти 17%, иначе — 10.
Сегодня купил билет за 270 (на вокзале он стоит 300).
А ещё номер билета приходит на почту и телефон. То есть, если вы билет не распечатали, а телефон у вас с собой, то ничего страшного, номер у вас есть.
Обнаружение версии IE в режиме эмуляции через условную компиляцию JavaScript
В свежей статье в блоге IE есть ответ на вопрос как обнаружить версию браузера Internet Explorer в любом режиме (например, в режиме эмуляции другой версии):
@_jscript_version statement is actually an indicator of which version of JScript is in use by the browser as a whole. In ALL document modes of IE9, this statement currently equates to “9”. In ALL document modes of IE8 it equates to “5.8” and in IE7 it is “5.7”
Отсюда вывод:
/*@cc_on
@if( @_jscript_version == 5.8 )
// Это полюбому IE 8
...
@end
@*/То есть (перевожу) «@_jscript_version» в IE8 всегда равно «5.8», в IE7 — «5.7» , а в IE9 — «9».
Четыре малоизвестных факта о conditional comments (условных комментариях) в Internet Explorer
<!--[if VML]> Код VML <![endif]-->Можно, например, проверить запущен ли браузер на Windows 7. «Семёрка» и Vista вообще сильно отличаются по возможностям по XP, так что это иногда может быть полезно. Например, в Vista/7 поддерживается TLS SNI или аппаратное
<!--[if WindowsEdition]> Это Windows 7 или старше <![endif] --><!--[if gte MyPlugn 1.2]> Мой плагин версии 1.2 и выше <![endif] -->Этот же способ позволяет изменить версию IE для проверки в conditional comments на любую — достаточно исправить значение «IE» в указанной ветки реестра и перезапустить браузер.
<!--[if (IE 7) | (WindowsEdition)]> Это IE7 или любой IE на Windows 7 и выше <![endif] -->
<!--[if (gte IE 6) & (lt IE 9)]> Это IE6-8 <![endif] -->Браузеры и стандарты: Ахиллес и черепаха
На «Хабре»
Упомянутая статья за полгода не обновлялась (о чём говорит отсутствие упоминания об SVG в IE9), так что предпосылки неверные. Предпосылки неверные, но вывод, впрочем, правильный. В плане стандартов будущее крайне далеко.
Должен сказать, что любые тесты браузеров — это сферические кони в вакууме. Какие, нахрен, ACID3, какие SunSpider? «Опера» до сих пор не поддерживает CSS1! Ибо сказано:
The format of a percentage value is an optional sign character (’+’
or ’-’, with ’+’ being the default) immediately followed by a number (with or without a decimal point) immediately followed by ’%’.
CSS1, раздел 6.2, проценты могут быть указаны с десятичной точкой. Мне кажется, это означает, что я могу указать дробные проценты и всё будет хорошо. Во всех браузерах так и есть. Во всех, кроме «Оперы». Самая распоследняя «Опера» округлит их вниз.
Если этот браузер заявляется поддержку селекторов CSS3, то для меня, как разработчика, это должно, видимо, означать, что работает и любая их комбинация, не так ли? Иначе, что толку от поддержки селекторов по одному в строке?
И вот реальная задача — делал я галереи на сайте без использования JavaScript, на голом CSS (спасибо селектору «:target», это самое крутое, что появилось в CSS за последние годы). Простая задача — если «:target» не указывает ни на один из тегов в текущей галерее, нужно указать, что выбрано первое изображение.
Да, пожалуйста (у меня первое изображение это последний элемент списка):
.gallery li:not(:target) ~ li:last-child a {
background: #fff;
color: #000;
}
.gallery li:target ~ li:last-child a {
background: #aaa;
background: rgba(170, 170, 170, 0.5);
color: #fff;
}Несложно же. «Опера» и «Файерфокс» чудесно с этим справляются, почему бы и нет, все селекторы им знакомы. Но это не работает в «Хроме» и «Сафари»
Так повсюду, в блоге IE авторы
Конечно, тут ещё сказывается тот факт, что большинство этих спецификаций находятся в стадии черновика, вот реализовала «Опера» четыре года назад в браузере
В общем, к этим стандартам нам ещё всем идти и идти, много лет. Это основной вывод. А теперь другие мысли.
Селектор «:target» хоть и самое чудесное, но, в то же время, почти самое недодуманное в CSS за последние годы. Это уже ощутили мои читатели. Конечно, «:target» добавляет интерактива в CSS, но хотелось бы, чтобы этот интерактив не касался напрямую HTML, т. е. был
Предыдущая моя заметка о conditional comments. Я уже
И ещё, как я уже писал W3C вряд ли
Как выехать необманутым с автосервиса
Для автолюбителей в ЖЖ
IE, непрямоугольные блоки и тени

Что я хочу сказать по поводу статьи «Хитрая тень» в блоге Олега Мохова?
<html>
<head>
<xml:namespace ns="urn:schemas-microsoft-com:vml" prefix="v"/>
<style type="text/css">
.vml {
behavior: url(#default#VML);
-ms-behavior: url(#default#VML);
font: 12px Tahoma, sans-serif;
}
#bar1 {
width: 400px;
height: 60px;
color: white;
padding: 12px;
display: block;
}
#bar2 {
width: 20px;
height: 22px;
padding: 12px;
color: white;
position:absolute;
}
</style>
</head>
<body>
<v:roundrect class="vml" id="bar1" fillcolor="navy" strokecolor="navy" strokeweight="1px" arcsize="0.1">
Привет, ребята из W3C! Отсталый Internet Explorer уже много-много лет умеет смешивать векторный язык и
HTML, а в 2010 году не все продвинутые браузеры так умеют.
<v:shadow class="vml" on="true" opacity="0.3" color="navy" offset="7px,5px" />
</v:roundrect>
<v:shape class="vml" id="bar2"
fillcolor="red" strokecolor="red"
coordorigin="0 0" coordsize="200 200"
path="m 1,1 l 800,1, 800,400, 1800,400, 1800,1500, 1,1500, x e">
<v:shadow class="vml" on="true" opacity="0.3" color="red" offset="7px,5px" />
<p>Привет<br />ещё раз!</p>
<p>Вы знаете, уже Internet Explorer 5.0 умеет делать непрямоугольные блоки.</p>
<p>Причём, делает это непринуждённо.</p>
</v:shape>
</body>
</html>Что IE умеет круче ещё с пятой версии.
Добавлено позднее: в комментариях мне подсказывают, что в IE8/9 надо либо включать режим эмуляции, либо использовать
Выяснил группу крови
Гимн России и гики
Забыли гимн России? Не беда!
Мой вариант для Windows CMD (в одну строку):
@echo off & (for /l %z in (200,1,223) do
for /f "usebackq skip=3 tokens=2 delims=:" %a in (`nslookup 62.76.96.%z`) do
set y=%a & echo %y:.= % | findstr /RV "[0-9]") & echo onВариант для Unix/Linux/Mac (bash):
dig -t ptr +short {200..225}.96.76.62.in-addr.arpaИдея: кнопка добавления в Google Reader
В комментариях к одному из постов, меня попросили сделать кнопку добавления RSS комментариев в «Google Reader» (если я правильно помню суть просьбы).
Мне эта идея не нравится, потому что я не знаю какое количество моих читателей пользуется «Google Reader», остальным, понятно, эта кнопка ни к чему. Я тут подумал — хорошо было бы ставить эту кнопку тем, что этим сервисом «Гугла» пользуется. Но как узнать кто пользуется, а кто нет?
Сейчас меня осенило (впрочем, скоро это не будет работать в Firefox, когда выйдет версия 3.7). Всё просто — надо найти URL по которому заходит только авторизованный пользователь «Google Reader», причём URL этот должен быть инвариантен пользователю, может это
Далее всё просто — у данной ссылки есть то свойство, значит пользователь недавно логинился в «Google Reader», если нет, не логинился. На основании этого можно ставить или убирать кнопку добавления RSS в этот сервис. Можно ещё выставить куку, чтобы в дальнейшем основываться уже на её наличии (если есть — пользователь пользуется «Google Reader», нет — ничего не значит).
«Опера» — ещё больше вещей из HTML5
Пока я тут ною, что «Опера» не поддерживает CSS1 в полном объёме, новый билд «Оперы» (10.60а build 3419) стал поддерживать кодек WebM для тега VIDEO (у которого есть все шансы стать стандартом), HTML5 offline web applications, Geolocation API (что давно было известно), Web Workers и
Круто, ребята, очень круто. Но сделайте поддержку CSS1 уже наконец.
HTML5 test
Автор теста HTML5 обновил свой тест, теперь максимальное количество очков, которое может набрать браузер — 300, а не 160. Кроме того, теперь поддержка браузером кодеков для тегов VIDEO/AUDIO не влияет на основные очки, а даёт бонусные. Это правильно, так как стандартном HTML5 кодек так и не выбран.
Результаты по браузерам выглядят так:
«Сафари» 5 — 208 (ночная сборка — 220) «Хром» 5 — 197 (ночная сборка — 217) FireFox 3.6 — 139 (ночная сборка — 176) «Опера» 10.50 — 129 (10.60a 3422 — 159) Internet Explorer 8 — 27 (IE9PP2 — 32)
То есть лидером, по результатам этого теста, является пока пятый «Сафари», при этом тот же пятый «Сафари» под Windows набирает только 165 очков.
«Эпл» делает очень плохой софт под Windows
Софт фирмы «Эпл» под Windows всегда меня удивляет своей неуместностью, как дворецкий в невесомости. Он сразу лишается своей чопорности, изящества и только бессмысленно размахивает руками и делает глупое лицо.


Это скриншоты свежескачанного QuickTime, который в «Опере» пытается проиграть видеоролик. Сначала он «вёл переговоры», потом огласил мне их результат. С акцентом. Ролик так и не проиграл, кстати.
Проблема: Windows 7 и Samba (Linux)

Взял на работе другой ноутбук — Dell Latitude E4200, он идёт у нас с Windows 7. Всё хорошо
Проблема решается следующим образом: либо нужно поставить последнюю превью Samba 3.5 и включить в настройках «max protocol = smb2», либо запустить под Windows 7 «secpol.msc» (Win+R, secpol.msc, Enter) и в «Local Policies» («Локальные политики») → «Security Options» («Параметры безопасности») → «Network security: LAN Manager authentication level» («Параметры безопасности: уровень подлинности LAN Manager») поменять значение на «Send LM & NTLM use NTLMv2 session security if negotiated» («Отправлять LM и NTML — использовать сеансовую безопаcность NTLMv2 при согласовании»).
Я ещё менял
Обновления на блоге
Как многие уже почуствовали, я начал
Сейчас я изменил алгоритм определения и вывода аватаров, а так же заменил библиотеку OpenID с страшной, как смерть, Simple OpenID на огромную (почти полмегабайта!) PHP OpenID от JanRain.
В частности, это значит, что у меня теперь работает OpenID 2, что даёт возможность, например, авторизовываться пользователя Flickr. Кроме того, должна вернуться возможность логиниться тем
Легко
P.S. Нет, не ок. Лучше пока не комментрировать.
P.P.S. Починил, но пока не работают ответы. Работают.
P.P.P.S. Ещё бы библиотеку для разбора hCard на PHP хорошую. hKit глючит, например, профиль на «Хабре» он не разбирает. А ещё в CSS media query нехватает запроса «это мощный компьютер?».
Анонимные комментарии
У меня есть идея
| ш͂к̵̗̤̩͎͇͍̂̒ͦо̺͇͍̯̮̔̑ͯ̈́̂л̱̘̫̗͓̺̟ͮ̚о̼̰̖̦͉̥ͮ͗̑ͣт̰̼̩̑̄ͫ͛ы̛́ͭ͗ͦ̿̔̚, |
которая неинтересна чуть более, чем полностью, и умеет постить только
Очень жаль, но значительное количество умных людей, видимо, не имеет OpenID аккаунта. Читателей у меня около
Впрочем, у меня ощущение, что этого недостаточно. Я подумываю о том, чтобы разрешить вводить в поле для OpenID любой URL. Если OpenID на этом URL не обнаруживается, то комментарий будет считаться анонимным. А само поле будет подписано
Анонимные комментарии, думаю, надо будет
Видео для веба: у VP8 есть будущее
На «Хабре» появилось сравнение кодеков Theora, H.264 и VP8, основной вывод:
Формат VP8 вполне подходит для веба. Он намного лучше Ogg Theora и сравним с H.264 по параметру размер/качество. Вопросы о патентной чистоте и скорости декодирования остаются пока открытыми. Получит ли формат распространение — это вопрос скорее коммерческого и политического успеха, нежели технического.
H.264 остаётся лидером, а Theora, похоже, безнадёжно отстала от конкурентов.
У меня на работе, на столе цветок распустился

Сегодня же воскресенье, надо постить рабочем столе на столе, на работе цветок распустился.
SAR и показатель излучения телефона
У сотовых телефонов, помимо объёма памяти, скорости процессора и мегапикселей в камере, есть ещё один немаловажный показатель — уровень излучения. Обычно в характеристиках приводят величину SAR — это «уровень излучения определяет энергию электромагнитного поля, выделяющуюся в тканях тела человека за одну секунду» (цитата из «Википедии»).
Например, у телефона MagCom (модель MagCom) уровень SAR — 0,04 , а у iPhone 3GS — 1,20 (это в максимуме). Норма — 2. Кстати, маркетологи, вот вам идея. «Экологичный» телефон, зелёный и из дерева. С минимальным уровнем излучения. «Защитись от рака» и всё такое.
И кстати, у Nexus One — 0,823.
Излучение телефона зависит от того, на какой частоте он работает (только у GSM несколько частотных диапазонов, а есть ещё WCDMA и так далее), насколько высок уровень сигнала от станции и не влючены ли WiFi и Bluetooth (излучают все передатчики) и прочие радиомодули.
Кроме того, SAR
Теперь, следите за руками. А что будет, если у телефона два или три телефонных радиомодуля? Логично, что уровень излучения у них будет выше. А на сколько? Складываются ли величины SAR? Ответа на последний вопрос я не знаю, но SAR для мобильников с несколькими симками можно посмотреть.
Я посмотрел, несколько примеров. Сертифицированный Samsung Duos
Для «серых» китайцев характеристики найти сложнее, но в сети упоминается, что, якобы,
Исходя из найденных цифр, три вывода. Первый — с сертификацией у нас в стране всё строго, иначе прилавки официальных магазинов были бы завалены китайскими телефонами (понятно, что на рынках можно купить что угодно), второй — у сертифицированных телефонов с двумя симками SAR в пределах нормы, но излучателя два, отсюда вывод — приём будет слабый, на что часто жалуются пользователи таких телефонов (иногда, правда, бываает, что один радиомодуль слабее второго, что тоже неприятно). Подвывод — телефоны с тремя радиомодулями лучше не покупать вообще.
Третий вывод — производителям телефонов с двумя симками приходится
P.S. На закуску — существует сотовый телефон с 4 SIM, производит, конечно, Китай.
Анонимные комментарии включены

Ну и как финальный аккорд изменений этих выходных, я включил анонимные комментарии. Заодно переписал всю написанную вчера часть интеграции с OpenID2, стало логичнее и на один редирект меньше.
Пока решил не делать цвет анонимных комментариев
Естественно, для анонимов недоступен
Добавлено утром: ну вот, спам уже попёр. Придётся делать резалку.
Насуби
Ничего себе, как я такое пропустил:
Насуби должен или участвовать в журнальных конкурсах (чтобы ему как победителю прислали подарок, причем совершенно необязательно, что этот подарок будет нужным) или писать письма во всякие компании с просьбой выслать пробников. Конечная цель — накопить в подарках и выигрышах 1 000 000 йен, после чего его якобы отпустят.
Причём всё строго — никакой еды или напитков от организаторов (хотя вода
из-под крана, кажется,все-таки была), что заработал — тем и полакомился, круглосуточная трансляция и десятки миллионов следящих фанатов исключают несанкционированный подкорм Насуби. То есть даже если это был специально нанятый актер, ему от этого было не легче. […]Причем
из-за жестких условий Насуби радовался буквально каждой вещичке, которую получал из внешнего мира. В результате шоу начало напоминатькакой-то дикий гибрид Робинзона Круза (одинокий путник на краю голодной смерти в необитаемой комнате) с советским мещанством (к концу первого года он скопил знатную коллекцию миксеров, твиксеров и жужжалок для жопы, абсолютно ему бесполезных). Получение каждого мешочка риса, рыбной консервы или там баночки колы Насуби встречал с искренним восторгом («Сегодня я лягу спать сытым!»), а после первой недели даже начал исполнять победный танец при получении. Выглядело это примерно так:
Японцы — точно иноплатетяне. Чем больше я смотрю японских шоу, тем больше понимаю насколько гигантские различия могут быть у жителей других планет. У фантастов на такое не хватает фантазии просто — они берутся описывать только одно,
Суровый челябинский блогер отжал у нигерийцев $10
Про «нигерийские письма» все в курсе? А вот суровый челябинский блогер получил с нигерийцев 10 долларов.
В ответном письме я разыграл
какого-то, не знаю, Форреста Гампа, потому на плохом английском пытался косить под дурака. Дорогой Хансон, писал я, моя жена говорит, что это все мошенничество, и не дает мне денег. Хансончик, милый, не мог бы ты попросить этого работника банка отправить мне от своего именикакую-нибудь символическую сумму, ну, скажем, 10 долларов, чтобы моя жена убедилась в том, что это не очередной мой воображаемый друг, и вы не аферисты.Вечером Хансон неожиданно звонит мне на мобильник и говорит, мол, акуна матата, выслали Вестерн Юнионом 10 баксов, покажи жене платежку из Того. Сегодня утром снял деньги.
Цой жив, ребята

Сегодня, в день рождения Виктора Цоя, «Яндекс» выложил все песни в его исполнении — студийные записи, концерты, квартирники и сборники.
⌘ WTF?
Я что, сегодня при походке виляю бёдрами? Или у меня на футболке яблоко, надкушенное Аланом Тьюрингом? Или ноут под мышкой
P.S. Текст наполнен намёками.
Терри Пратчетт. Перевод «Unseen Academicals» («Невиданное университетское одеяние»)
Роман
Кодировка — Windows
Скачать можно со «Слил», «RapidShare», «iFolder», «ExFile», «WebFile», «Upload.com.ua», «OpenFile», «Mail.ru», «DepositFiles» и «FileLand».
Добавлено через несколько минут: на Mail.ru можно найти и версию FB2, а так же на iFolder и DepositFiles.
Трансляция в Twitter
Теперь у этого блога есть трансляция в «Твиттер» — @bolknote_rss, спасибо FeedBurner за эту возможность.
Скорости флешек
Появился полезный сайт — UsbFlashSpeed. На нём есть данные по измерению флешек различных производителей и утилита для тестирования. Пока (из измеренных) самая быстрая по записи флешка — 4ГБ Transcend JetFlash 168 (20.27 МБ/с), по чтению — 16ГБ Silicon Power LuxMini 920 (30.24 МБ/с).
Этиловый спирт и время
ГОСТ
Этиловый спирт — легко воспламеняющаяся бесцветная жидкость с характерным запахом, относится к сильнодействующим наркотикам, вызывающим сначала возбуждение, а затем паралич нервной системы
ГОСТ
Этиловый спирт — легко воспламеняющаяся бесцветная жидкость с характерным запахом, относится к сильнодействующим наркотикам
ГОСТ
Этиловый спирт — легко воспламеняющаяся бесцветная жидкость с характерным запахом
Такая вот метаморфоза. Если кто не знает, последние две цифры у ГОСТа — год, когда он был принят. Новая редакция заменяет прежнюю.
Идеи Леонардо да Винчи в Казани

Вверху фото — Казанский государственный цирк, снизу — чёртеж танка Леонардо да Винчи.
Тут недавно спрашивали про антивирусы под смартфоны
Недаром недавно во внутренней «Ярушке» спрашивали антивирусы под смартфон. Вышедшая iOS 4 под iPhone закрывает массу уязвимостей, среди которых (в числе прочих):
Processing a maliciously crafted JPEG image may lead to an unexpected application termination or arbitrary code execution.
Читайте как «посмотрел картинку на сайте в браузере, теперь у вас вирус». Там такого много, кстати.
Canvas в IE9 будет
Ну что, AMD действительно тогда проговорилась, никакой ошибки нет — в IE9 будет CANVAS. Только что появился Internet Explorer 9 Platform Preview 3 и там есть CANVAS.
Должен сказать, скорость очень хорошая. Реализовано пока не всё (это
Кажется, с применением полупрозрачности (и тени) производительность IE9PP3 пока резко падает.
Из других новостей: AUDIO, VIDEO, CANVAS с аппаратным ускорением, увеличена производительность и улучшена его поддержка JavaScript, поддержка WOFF (формат шрифтов), ACID3 — 83%, HTML5 test — 84/300 (предыдущий результат — 32).
Unicode со «школотой»
Антенну iPhone 4 нельзя зажимать рукой?
A growing number of iPhone 4 owners are reporting that holding the iPhone 4 has an effect on the signal strength of the handset. Multiple videos demonstrate this unusual behavior in which the iPhone, when held in the palm of one’s hand, will lose signal strength by going from 5 bars of coverage to no service in less than a minute.
Вкратце, суть цитаты такова— если зажать рукой антенну (а она идёт по краю корпуса у iPhone 4), то сигнал падает с пяти делений до отсутствия сигнала меньше чем за минуту.
Наша история в картине

Это фотография стены в «Московском кредитном банке» (фрагмент), перепрыгивающий невидимое мужик в центре, в белом костюме — Путин. На фото не очевидно, но в реальности нарисован хорошо. А вообще, как много людей на фото вы знаете?
Thunderbird 3.1 заколебал

Я
Вчера я поставил себе Thunderbird 3.1… Ребята, которые делают Thunderbird, вы вообще
Ладно, я привыкну, человек ко всему привыкает. Но, ёкарный же бабай, неужели то, что «текущая операция над „Спам“ не выполнена» так важно, что это надо писать на полосе размером 1014×112 пикселей?! По высоте это 1/8 часть моего экрана. Вы умудряетесь сообщать мне это бесполезное для меня дерьмо, даже когда Thunderbird не является активным приложением и закрывать, таким образом, восьмую часть того над чем я сейчас работаю.
Причём большая часть этой полосы — логотип.
Лучи поноса тому, кто это сделал.
Я в возмущении.
Вакансии программистов в «Яндексе»
Ребята, у меня в группе появилось несколько вакансий программиста на Пайтоне. Основные требования — Python, MySQL, чтение HTML/CSS. Большим плюсом будет знание Django, плюсом — знание Perl или PHP, умение работать с SVN или представление о том, что такое системы контроля версий.
Напишите о себе мне на почту или в комметариях к этой заметке (только не забудьте сказать как с вами связаться).
Работать придётся на внутренними сервисами компании «Яндекса», это (например) наша внутренняя Вики, «Ярушка», система для саппортов, архив рассылок и так далее.
В журнале «Xakep» написано, что XOR эффектиный криптоалгоритм
Ответ очень прост — нужно вспомнить алгоритмы шифрования. Самым простым и одним из самых эффективных (при правильном использовании) криптоалгоритмов является так называемое
XOR-шифрование.
Цитата из журнала «Xaxep». OMG! XOR назвали «эффективным криптоалгоритмом».
Короткий способ определения IE через JavaScript в IE9 не сработает
Из блога IEBlog:
var len = [1,2,3,].length;
alert(len); //should be 3, IE8 says 4В IE9 поправили застарелый баг — Internet Explorer добавляет ещё один элемент в массив, если в конце перечисления элементов массива есть запятая. На этом основан самый короткий способ проверки на IE через JavaScript. По стандарту последняя запятая игнорируется. IE9 теперь следует стандарту.
Не будет работать и проверка через «\v» (цитата из того же блога):
alert("\v"==="v");//IE8 said true, should be false
alert("\v"==="\u000b");
//IE8 said false, should be trueВ общем, полагаться на хаки в таких проверках будет нельзя. Думаю, единственный надёжным способом будет условная компиляция:
if (/*@cc_on!@*/0) {
// IE
}P.S. А вот найденную мной… особенность метода split в IE9 так и не поправили.
Пуш-ап в плавках
Молодой человек, однако, видит, гад, что я носки не самые дешевые выбрал, и вот же еще ему обязательно надо меня развести, и поэтому не унимается:
— И с пушапом есть… — Чего?
С чем-чем? — С пушапом. Вот. Изволите видеть…И протягивает мне зелененькие трусики в облипочку.
А внутри…э-э-э, как бы это…ну, на самом вот на этом месте укреплена такая будто бы чашка от бюстгальтера из толстого поролона, обшитого мягкой тряпочкой.— Это, —указывает молодой человек наманикюренным пальчиком, — в целях эстетического впечатления. Понимаете? Так, получается цельно, аккуратно, объемно. Пушап, в общем. Некоторые девушки…
Цитата из
Wolf 5k strikes back
Забавная была игрушка «Wolf5K». Это игра на JavaScript, занимающая пять килобайт (!). Был такой конкурс
Ребята произвели фурор тогда, они уместили в этот размер небольшую псевдотрёхмерную бродилку. Никаких CANVAS! Хитрость в том, что вся графика (кроме кровищи) делается в формате XBM и передаётся тегу IMG через схему «javascript». Игрушка работала в IE5, IE6, Mozilla 1.1+ и Netscape 4.77 для Мака.
Формат XBM — это текстовый формат
В общем, захотелось мне
javascript:void(eval(X.toString().replace(/"j.*?;"/, '"data:image/x-xbitmap," + encodeURI(im)')))В IE
Добавлено утром: читатели сообщают, что в «Сафари» тоже работает.
Буйство эмуляторов на JavaScript
Существуют эмуляторы на JavaScript следующих платформ: GameBoy, ZX Spectrum,
Естественно, нужен
Есть где поностальгировать. Думаю, лет через 5—10 появится эмулятор PSP на JavaScript с использованием WebGL, мощностей как раз хватит.
Google Native Client
Поиграл немного с Google Native Client — это плагин для браузера (поддерживаются Firefox, «Опера», «Сафари» и «Хром» и платформы Windows, Mac и Linux на x86,
Это плагин, который умеет исполнять скомпилированный бинарный (!) код в браузере.
Меня интересовало как тут соблюдается безопасность. Коду многое запрещено (по сути, всё, что разрешено — это эффективное использование процессорного времени, за остальным нужно обращаться в браузер через NPAPI или SRPC (Simple RPC)), но разработчики много говорят о том, что допускаются ассемблерные вставки.
Как так?
Ларчик, как оказывается, открывается просто и достаточно остроумно.
Не знаю как там в процессорах ARM, а в x86 команды могут иметь разную длину,
Это даёт возможность замаскировать внутри команды любую запрещённую команду и выполнить её, сделав переход не на первый байт. Как Google Native Client защищает нас от этого? Очень просто.
В Ассемблере есть специальная команда — «NOP» (в x86 занимает один байт, её код — «90»), она не делает ничего. Все команды вашей программы выравниваются до 16 байт этой командой. То есть «MOV AL,41» будет дополнена
Вторая опасность — код в данных, ведь почти любые последовательности байт это
Интересно, что код, контролирующий безопасность и реализующий SRPC, получился очень небольшой, в ролике на YouTube разработчик говорит то о 6000 строк, то о 6000 байт. В любом случае, то и другое — немного. Там же (в ролике) показывали интерпретатор Ruby, работающий в браузере. Это интересно, но не более, интереснее то, что код на Си (или там C++, неважно) пришлось менять очень мало, чтобы перекомпилировать его в Google Native Code.
Мне кажется, это интересный проект.
Микроболк
В Mail.Ru потихоньку рождается новый термин? «Микроболк». Чувствую себя Доктором Зло.
Контекстная реклама такая контекстная

Из статьи «Письмо Яне Яковлевой: „Как меня пытаются посадить“».
Милиционеры умнее «Интел» или у них «Интел инсайде», потому они и умнее?
Снова про кроссбраузерные скруглённые уголки
Решение проблемы скруглённых уголков через VML есть в статье Льва Солнцева «Кроссбраузерные закруглённые уголки» (без JavaScript). Проблема заключается в следующем:
В VML есть предопределённая фигура: прямоугольник с закруглёнными углами roundrect. […] Но у этой фигуры есть один значительный недостаток: радиус кривизны задаётся через отношение к большей стороне, что делает результат непредсказуемым и неподходящим для многих случаев.
То есть, при одинаковом параметре закругления блоков разного размера, радиус кривизны будет различаться.
Хороним XBM
Помимо GIF, JPEG, PNG и SVG в браузерах есть ещё один «общий» формат графики — XBM. Не сказать чтобы сильно полезный, скорее забавный. Формат текстовый и очень простой, как раз его использует Wolf5k для отображения графики.
Несколько лет назад его поддержку прекратил браузер IE, с версии IE6.0SP1 XBM больше не поддерживается. Причина проста — IE падал, если подсунуть ему неправильно сформированную картинку. Поэтому поддержку формата просто отключили (сделали ключ в реестре («BlockXBM»), если очень хочется, поддержку можно вернуть).
И вот сегодня я, поставив Firefox 4.0b2pre, увидел, что в нём нет поддержки XBM. Стал разбираться. Оказывается его поддержку выключили в версии 3.6:
It doesn’t seem like anyone uses XBMs on the web these days (microsoft dropped support for them in ie6), and we no longer use them anyone in the platform. Each additional image decoder makes it more time consuming to maintain imagelib, because changes have to be replicated. Thus, unless somebody has a reasoned opinion to the contrary, I’ll remove XBM support in a week or two.
Увы. Из исходников выкинули совсем, никакого ключа в реестре.
DEFENDER в favicon
Трюк с подменой favicon используется в вебе довольно редко, впрочем, этому есть причина: он не работает в Internet Explorer (даже
Но есть способы использовать его более впечатляющим (хотя и более бесполезным) способом — дать возможность играть внутри favicon в игры. Существуют несколько таких игр, одна из них, например — DEFENDER.
Работает в «Опере» 9.2+ и Firefox 2.x (в FF 3 проблемы). Под WebKit работает выборочно, новые версии (где реализован метод CANVAS API «toDataURL()») игру поддерживают, правда, в шестом «Хромиуме» тормозит безбожно.
Управление простое: «N» — новая игра и стрелять, «WASD» (или клавиши курсора) — управление корабликом, «Enter» — чтобы выбрать куда вывести игру (на страницу или favicon).
P.S. На сайте с этой игрой есть ещё несколько таких игр.
Никто ещё не выпустил пиво Python?
Сейчас сижу на кухне, а перед глазами стоит соседская литровая банка пива, подумалось, что если бы
Не все знают Пайтон, поэтому придётся разъяснить шутку. «1L» — так в Пайтоне записывается число «1» типа «long» (антизанудская мантра: знаю, long — это
Про состояние российской разведки
Свежая смешнина со вкусом Родины — недавно в США поймали российских шпионов разведчиков, в ЖЖ smartnik800 некоторые особенности нашей разведки:
Российские шпионы пользовались стеганографией (интеграция текста в невинные по содержанию картинки), но при обыске ФБР нашло бумажку, где было написано «alt, control, e» и записан пароль открытым текстом (именно такими напоминалками обклеены мониторы у российских бухгалтеров!).
Средством сообщения у второй группы шпионов был коротковолновый радиопередатчик, а «радистку Кэт» звали Вики Пелеас (сразу вспоминается Греф с бессмертным: «где же вы же ее
взяли-то, рухлядь эту старую?»)
Там ещё несколько пунктов с подобным содержанием.