Илья Бирман

Apple Air
На «Горбушке» уже в субботу можно было купить Apple Air, цена — 75000. Я посмотрел. Плоский, красивый, да. Но, извините, это не то устройство, которое отвечает понятию «ноутбук» как я это понимаю. Это… я не знаю…
ICQ2Go: humor? Moja ponimat!
У ICQ есть
REM Flash ICQ Client version 1.0 build 2
REM #include <stdio.h>
REM Had to comment out the include line, VB didn't like it
REM Initialize contact list
10 CLS
REM CLS added by dfl 10 Dec 2003
15 OPEN DIALOG
REM 20 FOR I=1 to 100
REM dfl 27-Dec-2004, added support for 103 contacts
20 FOR I=1 to 103
30 READ CONTACT$
40 PRINT CONTACT$
50 NEXT I
REM Main application loop
60 INPUT "" COMMAND$
65 IF COMMAND$ = "EXIT" THEN GOTO 200
70 IF COMMAND$ = "SEND_MESSAGE" THEN GOTO 90
75 IF COMMAND$ = "GET_MESSAGE" THEN GOTO 100
78 IF COMMAND$ = "QUIT" THEN GOTO 82
REM $$ Todo: add support for multilingual input
80 GOTO 60
82 GOTO 130
90 SEND MESSAGE$
95 GOTO 60
100 READ IN_MESSAGE$
100 PRINT IN_MESSAGE$
110 GOTO 60
REM Begin client cleanup sequence
130 GOTO 150
150 GOTO 170
REM End cleanup, we're ready to die
170 STOP
200 END
REM END«Вектор идей» для индустрии косметики
В пику инструменту «Матрица идей» студии Артемия Лебедева, сделал «Вектор идей» для производителей косметики (попробуйте перезагрузить страницу несколько раз). Ваши варианты приветствуются.
Библейская загадка: зачем мужчине соски?
Теперь о самой семье. Почему Богу было угодно разделить человека на мужчину и женщину? Именно разделить. Признаки этого разделения даже видны на мужском теле. Никто не может сказать, зачем мужчине два сосца на его груди. Они не несут никаких функций. У женщины понятно: предполагается, что она будет матерью, будет кормить дитя. А мужчина? У него нет даже молочных желез, но сосцы присутствуют. Загадка, тайна, на нее нет ответа. В Библии об этом тоже не говорится. «Вопрос на засыпку».
Цитата из доклада «Библейские основы православной семьи», докладчик — протоиерей Димитрий Смирнов, второй международный конгресс «Мир семьи».
Загадка века просто — зачем мужчине соски. Никто не знает, да.
Internet Explorer 8.0 beta 1: можно скачать
Вышла первая бета Internet Explorer 8. Уже можно качать и пробовать, доступны версии для Windows XP, Vista, Server 2003. Проходит 17% теста ACID3 (IE7 проходил 13% теста), тест ACID2 — проходит полностью, CSS3 selector test — 335 тестов из 578 пройдено (Opera 9.50b, к примеру, проходит этот тест полностью).
После установки IE8 спрашивает не желаете ли вы его сделать браузером
То, что видно навскидку — режим эмуляции IE7, подсвечивание домена в строке URL, корректная работа с favicon (или это уже в седьмой версии было?), открытие окна в фоновой закладке кликом мышиным колесом, как в остальных браузерах, и встроенные инструменты для разработчика (просмотр DOM, CSS, отладка JavaScript и так далее), а после подения он спрашивает восстанавливать ли закладки.
Появилась технология Web Slices, (между прочим — это микроформат) комментировать которую пока не берусь, но выглядит забавно, очень интересная вещь Activities, обязательно посмотрите ролик, даже если не понимаете английский.
Теперь версия IE на моей машине выглядит так: 8.0.6001.17184. Некоторые глюки, кстати, видны невооружённым глазом —
Комментарии на сайте
Проект переезжает на другой домен — bolknote.ru (и другой хостинг заодно). С прежнего имени сделан редирект, обновите закладки. Кстати, пока не работает HTTPS
Кстати, название домена придумал Дима Смирнов, за что ему большое спасибо.
Купил пневматический пистолет, красавец Beretta M92 FS

Вряд ли
Теперь расскажу о впечатлениях и о тех вопросах, которые мне пришлось для себя прояснять при выборе пистолета.
@ Оружие (в т.ч. пневматическое) перевозится в упакованном виде, в изолированных от пассажирских салонов отсеках воздушного судна, при наличии у пассажира разрешения на право их хранения и ношения.
Прием оружия к перевозке, оформление необходимых документов, доставка на борт воздушного судна в аэропорту отправления и выдачу оружия в аэропорту назначения осуществляет сотрудник службы авиационной безопасности (САБ).
С точки зрения авиакомпании, даже столовый нож — оружие, любая пневматика так же считается оружием.
Клуб нелюбителей C++
В своё время я посмотрел массу языков программирования (и продожаю смотреть), на некоторых —
Когда клиент говорит «вы же профессионалы»…
Когда клиент говорит
что-то навроде «вы же профессионалы» — это означает следующее: «я ни хрена не понимаю в том. что вы будете делать, но не позволю сделать так, как надо,а напротив — выебу мозг настаивая на своих тупых хотелках, и на том, что насоветовали мне мои друзья, которыекогда-то что-то слышали о предметной области, буду доставать вас по каждой мелочи и стенать над каждой копейкой, требуя урезать сметы и сделать все как можно дешевле. А когда выйдет в итоге нечто непохожее на воздушный замок моих мечтаний, я буду вздыхать „ну что же вы, вы же — профессионалы…“»
Чудесная цитата с Bash. Запишу себе, чтобы не забыть.
Чем быстрее всего отрезать строку в кодировке UTF-8
Решил протестировать — чем быстрее всего можно отрезать строку в кодировке
Я взял строку в 700
- хуже всех справилась реализация на чистом PHP — 0.34 сек
- получше — iconv_substr. 0.063 сек
- ещё лучше — mb_substr. 0.0175 сек
- лучше всех — preg_replace. 0.005 сек
Если кому интересно, вот моя функция по проходу по строке в кодировкеUTF-8:
$len = strlen($text);
for ($pos = $cutted = 0; $cutted < $cut && $pos < $len; ++$cutted)
{
$ch = ord($text[$pos]);
// multibyte char
if (0x80 & $ch)
{
for (; $ch & 0x80; ++$pos, $ch <<= 1);
}
else
{
$pos++;
}
}Итак, лучший способ отрезать первые $N символов
preg_replace('/^(.{'.$N.'}).*$/uSs', '$1', $text)Опыт перевозки пневматического оружия на самолёте
Опыт перевозки пневматического оружия на самолёте оказался успешным — в Казани пистолет я сдал сотруднику безопасности. В Москве, в Домодедове — получил. Единственное, что я не знал — что газовый балончик к пистолету мне взять в самолёт не позволят, пришлось оставить его в Казани.
«Stupid IE hack» by Microsoft

Многие видели наверное — два года назад
Ромочке не даёт покоя моя слава
Роме Воронежскому я всё никак не даю покоя. Пять лет (!) назад я, вдохновившись фразой Ромочки «спам придумали боги в отместку за наши молитвы» написал небольшой расказец на эту тему. Рассказ разошёлся по интернету и его стали приписывать Роме, последнему это не понравилось и он назвал меня у себя в ЖЖ мудаком. И вот, прошло пять лет:
А самая умилительная и жутчайшая история случилась, когда я не подумавши ляпнул про спам, который боги придумали. До сих пор умиляюсь и себя кляну: ну ляпнул бы при друзьях, ну хихикнули бы и забыли. Нет, надо было про это в жж написать. Наутро весь рунет просто купается в приколе, а один талантливый юморист из неосмотрительного моего замечания рассказ слепил. Целый рассказ, с подробностями. Как бог сел, там, за компьютер, запустил почтовую программу и т. д. Это, товарищи, пи…ц. Любая шутка — говно. Не шутите никогда.
Я — талантливый юморист. Евгений Владимирович Петросян, ага.
«Полиция» vs. «милиция»
Слово «полиция» образовано от гречесчкого «πολιτεία» («государственная деятельность, правление»). Слово «милиция» — от латинского «militia» («войско»). Почувствуйте разницу.
Беги!

Автор фото, к сожалению, не известен.
NOWDOC в PHP 5.3.0
В PHP 5.3.0 появилась новая синтаксическая конструкция: «NOWDOC». Сильно похожа на «heredoc», но с тем различием, что в «nowdoc» нет интерполяции переменных:
Следующий пример выведет в точности тот текст, который находится внутри nowdoc:
echo <<<'EOT'
My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should not print a capital 'A': x41
EOT;Второе отличие от heredoc, что nowdoc можно использовать в любом статическом контексте, например так:
class foo {
public $bar = <<<'EOT'
bar
EOT;
}«СУП» отменила базовые аккаунты в ЖЖ
Когда росскийская компания «СУП» купила «Живой Журнал» некоторые, в том числе и я, стали потихоньку отползать на запасные аэродромы. Смирнов, в частности, полностью удалил свой ЖЖ. Я менее радикален — я просто перестал туда ходить. Нам было очевидно — добром это не кончится, главным образом
То, что случилось вчера посерьёзнее. «СУП» отменил базовые аккаунты в ЖЖ:
Basic Account is an option available to accounts which were created before March 12, 2008. No account created after this date can be turned into a Basic Account. Базовые аккаунты теперь являются опцией, доступной только аккаунтам, созданным до 12 Марта 2008 года. Аккаунты созданные после этой даты не могут быть базовыми. … New accounts (created after March 12, 2008) may choose between Plus and Paid account levels. Новые аккаунты, созданые после 12 Марта 2008го года, могут выбирать либо Плюс аккаунт, либо платный
Вот что пишет на эту тему Брэд Фитцпатрик, создатель ЖЖ:
I advised against this (when I heard a rumor about it awhile back). I hadn’t heard anything recently about it. Perhaps they interpreted my advice as «well, okay, then maybe we’ll at least grandfather the existing Basic users, and not convert them all to Plus…»
In any case, SUP apparently sees no value in freeloaders not looking at ads, not paying, and oh wait… producing most the content for other members to read, other members who are looking at ads and paying for their accounts.
Когда до меня некоторое время назад дошел слух об этом, я рекомендовал этого не делать. В последнее время я об этом вообще ничего не слышал. Возможно, они растолковали мой совет как «да, хорошо, тогда, возможно, мы, по крайней мере для текущих базовых аккаунтов оставим возможность ими же и остаться, а не превратим их всех в Плюсовые…»
В любом случае, SUP,
по-видимому, не видит ценности в «иждивенцах», не просматривающих рекламу, не платящих, и боже, подождите… производящих бОльшую часть контента для всех остальных читателей, других пользователей ЖЖ, просматривающих рекламу и оплачивающих свои аккаунты.
За перевод спасибо romik_g.
CSS только для Mozilla (в том числе — FireFox)
У верстальщиков до сих пор возникает задача — подключить стили только для определённого браузера. Для IE проблема решаема — всё меньше верстальщиков не знают что такое conditional comments. Но исчезающе малое количество народу знает что такое
Вообще, это правило позволяет подключать стили в зависимости от домена, URL или его префикса. Для нас важно, что эти правила увидит только FireFox.
Простой пример использования, из которого становится понятен общий принцип:
<style type="text/css">
body { background: white; color: black }
@-moz-document url-prefix()
{
body { background: grey; color: white }
}
</style>
<body>White in FireFox</body>Принципы фильтрации по URL и доменам так же могут оказаться полезными, о них можно почитать в архиве W3C.
тИЦ России
Случайно обнаружил, что тИЦ можно измерить и для корневых доменов. Самые большие тИЦ (на данный момент) у России, доменов .com, Узбекистана, .localhost и Казахстана:
Bookr для PSP
Те, кто используют PSP для чтения книг, наверняка знают, что лучшая программа для чтения — Bookr, давно не обновляется. Но умельцы постепенно её дорабатывают, обратная сторона этого положительного явления — модификаций развелось такое количество, что ориентироваться в них стало уже очень сложно. Мне понравилась сборка, которую сделал пользователь SD6719 с форума сайта PSPx.
Она поддерживает форматы txt, fb2, pdf, djvu, кодировки
Туалетная бумага Windows Vista

Японцы выпустили забавную туалетную бумагу — с текстом (на японском) списка исправлений SP1 для Windows Vista Ultimate.
Доказательство через противного: тактика спора
На «Воффке» увидел неплохую статью, описывающую довольно типичную для «троллей» тактику — приписать
Декоративная обфускация PERL-кода
Нашёл замечательную старую статью «Декоративная обфускация
not exp log srand xor s qq qx xor
s x x length uc ord and print chr
ord for qw q join use sub tied qx
xor eval xor print qq q q xor int
eval lc q m cos and print chr ord
for qw y abs ne open tied hex exp
ref y m xor scalar srand print qq
q q xor int eval lc qq y sqrt cos
and print chr ord for qw x printf
each return local x y or print qq
s s and eval q s undef or oct xor
time xor ref print chr int ord lc
foreach qw y hex alarm chdir kill
exec return y s gt sin sort splitЭто работающая программа, выводящая строку «just another perl hacker».
HTML5 VIDEO: кто первый? А так же 3D CANVAS
Вышел браузер «Сафари» версии 3.1,
Safari 3.1 is the first browser to support the new video and audio tags in HTML 5 and the first to support CSS Animations. Safari also supports CSS Web Fonts, giving designers limitless choices of fonts to create stunning new web sites
Что касается тега AUDIO — чистая правда, а с VIDEO — вышла накладка. Специальный билд «Оперы», поддерживающий этот тег, вышел
Кстати, самое интересное, что появилось в том билде «Оперы», это не тег VIDEO, а 3D Canvas — до этого момента тег CANVAS позволял работать только с примитивами на плоскости (отрезками, прямоугольниками, кругами и так далее), знаменитая игра «Canvascape», сделанная с применением этого тега (требует для работы любой браузер, поддерживающий CANVAS), просчитывае
Для 3D CANVAS задача вращения куба с текстурой, например — тривиальная. Примеров работы с этим новшеством пока немного, в оригинально статье упомянута Snake («змейка») в 3D, написанная Mathieu ’p01’ HENRI.
Dictatorship IE vs. Open Source Dictatorship
Удивительная избирательная слепота у людей. На «Хабре» опубликовали статью «Новые возможности HTML и CSS в Safari 3.1», где народ восторженно обсуждает возможности, появившиеся в браузере «Сафари». Этим возможностями сто лет в обед — те же яйца, только боком уже
Это вообще
Я составил небольшую таблицу соответствий технологий IE и их реализаций в других браузерах:
Internet Explorer | Остальные браузеры |
|---|---|
Таблицу можно продолжать. Учтите, что всё, что перечислено в ней слева, появилось ещё шесть лет назад.
Мне интересно, кто первым реализует «data binding» из IE, при помощи этой технологии я написал «Песню о пиве» на HTML.
Система статистики «Spesta 2.10 a+b»
Недавно я узнал, что существует клон это системы — Spesta 2, который написали в Analog Group. Приятно, что код написан с форматированием и почти не генерирует warnings и notices, но общее ощущение — что авторы двигались в правильном направлении, но заплутали по дороге.
Я было думал выпустить серию патчей, как это было со «Спестой», но патчей оказалось слишком много. В общем, выложил пропатченную версию у себя. Кому надо — забирайте. Оригинальная версия была 2.00a, эта называется 2.10a+b, потому что на «бету» она не тянет, а пачти обозначить
Итак, изменения, всё что успел увидеть и поправить за час работы:
- нарисован favicon и дорисован логотип
- выкинута реализация функции in_array (авторы плохо знают язык?)
- работа с файлами заменена на более безопасную — с flock и append. Там где можно, используются file_get_contents и file_put_contents (это означает, что раньше эта система «теряла» часть данных)
- патч для более точного подсчёта уников (с использованием данных браузера)
- вычищены .htaccess от лишнего мусора
- поправлены регулярные выражения в коде
- переписан странный поиск с stristr
- на странице хитов теперь выводятся тИЦ и Page Rank
- сделан парольный вход, задаётся в конфиге (по умолчанию, логин — admin, пароль — test)
- для совместимости со «Спестой» сделан файл click.php
- исправлены ситуации, в которых генерировались notices и warnings (в основном — на пустых данных)
- исправлена ошибка в работе с файлом sites.txt
- ряд мелких улучшений кода, которые лень описывать
Важно: данные «Спесты» и «Спесты 2» между собой несовместимы, т. е. вы потеряете предыдущую статистику при замене одной версии на другую. Второе важное замечание — в «Спесте 2» нет статистики по кликам на ссылки и IP-адресам (лично мне она не нужна, так что вставлять в код я её не буду).
Инструкция по установке: распаковываете в нужную папку «Спесту 2», скрипт должен иметь возможность писать в папки data и reports. Если у вас была оригинальная «Спеста», удалите её, поверх ставить нельзя. Далее, вы должны подключить «Спесту» на каждой странице вашего сайта. Для PHP это будет выглядеть так: <?include 'каталог со спестой/counter.php'?>;
для HTML страниц можно попробовать сделать следующее: <!--#include virtual='/каталог со спестой/counter.php' -->
Ссылка для невнимательных, скачать можно отсюда:
PHP: простой способ определения кодировки UTF-8
Придумал простой способ определения кодировки
if (preg_match('//u', $string)) { /* у вас UTF-8 */ }Работать должно, думаю, с версии PHP 4.3.5, в документации сказано:
Жертва науки: с дыыыырочкой в правом боку
Ребят, если вы сейчас едите, лучше не читайте дальше. Кто не спрятался, я не виноват. Я предупредил, да?

То, что вы видите на моём, по возможности осторожном обрезке снимка — живая корова. А в корове — дырка. В живой. Если вам кажется, что это фотошоп, то можете посмотреть видео на эту тему (ещё несколько можно найти на YouTube).
Для чего же это делают? Оказывается, в научных целях (мой вольный перевод):
В настоящее время
учёные-аграрники изучают пищеварительную систему крупного рогатого скота через дыру в корове, причём коровы остаются живыми и здоровыми. Через эту дыру можно извлечь содержимое из серединыжелудочно-кишечного тракта.«Прокомпостированных» коров используют для изучения усваямости различных продуктов питания крупнорогатого скота. Накормив корову, можно позднее посмотреть как усваивается съеденное. Другой путь — изучение внешних факторов для получения той же информации не является таким точным, как вышеописанный. Поскольку крупнорогатый скот является важной частью нашей жизни (точнее — молоко и говядина), важно, чтобы коровы получали хорошее питание.
Операция не причиняет корове боли и даже продлевает им жизнь. «Прокомпастированной» корове, которая заболела, можно ввести нужные вещества прямо в пищеварительный тракт и тем самым более эффективно ей помочь. Плюс, одна такая корова помогает скоту во всём мире
Кстати, я бы не сказал, что в ролике заметно, что корове совсем не больно, особенно когда эта заботливая учёная тварь достаёт канюлю из раны на боку.
Мышь-амбидекстр
У меня мышь на рабочем месте лежит слева, дома — справа. Я амбидекстр и мне разницы особой нет, но людям, которые иногда садяться за мой компьютер, это доставляет неудобства. У меня была идея — сделать мышь, которая бы имела контакную полоску под большим пальцем, сама бы понимала какой рукой за неё берутся и меняла бы кнопки соотвествующим образом.
До реализации идеи в промышленных масштабах, думаю, не дойдёт, но у себя на рабочем месте я проблему решил. Оказалось, что мышь Microsoft Habu, которую я использую, имеет очень неплохой софт для настройки — Razer, который, в частности, позволяет назначить любым клавишам мыши довольно нетривиальные функции (там даже несложные макросы есть). Я создал два профиля — для левши и для правши, а функцию смена профиля назначил клавишам выбора DPI.
Теперь при нажатии на верхнюю у меня в руке мышь для левши, при нажатии на нижнюю — для правши.
Валидный NOINDEX
Для многих валидная вёрстка — очень важная штука. На мой взгляд, валидность самоцелью быть не может и я знаю много ситуаций, где ей можно пожертвовать. Одна из этих ситуаций — использование тега NOINDEX. Для тех, кто не знает, поясню: этот тег показывает поисковой машине какую часть текста вашей страницы индексировать не нужно.
Т. е. присутсвие этого тега необходимо, но в стандарт HTML он не входит. Как быть, если требуется достичь валидности любой ценой? Обычное решение — выдавать отдельную копию страницы для поисковых машин. Изяществом оно не обладает, тем более есть способ, если не лучше, то проще. Автор утверждает, что способ был им протестирован. Я немного изменил код, потому что такое использование кажется мне более логичным:
<del class="inv"><![CDATA[<noindex>]]></del>
То, что запрещено к индексации
<del class="inv"><![CDATA[</noindex>]]></del>В таблице стилей прописывается «display: none» для класса inv:
.inv { display: none }Где же работает Дима Смирнов?
BOLK: чем ты занимаешься, кстати? расскажи хоть
Дмитрий Смирнов: NDA!
BOLK: No Detectable Activity?
Если серьёзно, то в «Яндексе» очень серьёзно относятся к защите информации. А Дима работает в отделе коммукационных сервисов.
Для тех, кто не понял в чём шутка. NDA — это
Spesta 2.11a+b
Сделал новую версию системы статистики «Спеста 2», версия 2.11, файл лежит там же. В основном, это багфиксы, причём баги большей частью — наследие оригинальной системы.
Поправлено:
- поправлено отсутствие перекодировки поисковых запросов
из UTF-8 - устранено разрастание файлов статистики
из-за лишнего перевода строки - поправлено возможное некорректное определение дубликатов в файлах статистики
- исправлены
какие-то мистические глюки при работе на площадках «Мастерхоста» с PHP 5.2.5 - побеждено странное поведение при логине на площадки, где стоит PHP как CGI и suphp
- снова работает отчёт «Поисковые роботы» (был поломан моим патчем)
- в отчёте «Откуда идут» в колонке «хиты» теперь отображаются абсолютные значения, а не проценты
- исправлен подсчёт процентов во всех отчётах, раньше на этом месте считалось
что-то иное - click.php ничего не делал, это моя вина, я это поправил
- сделал сортировку в отчётах
В общем, обновляться — обязательно. Да, теперь система стоит у меня на сайте, поэтому я сразу после первого релиза увидел что надо поправить и сделал это.
Для тех, кто редко меня читает: несколько дней назад я выпустил «Спеста 2.11a+b» — сильно пропатченную систему статистики «Спеста 2» (которую сделали в Analog Group).
IE8: шаг вправо, шаг влево — расстрел
На «Хабре» появился хороший перевод статьи Сполски по поводу IE8, статья довольно большая:
Хотите секрет? Вот что я думаю произойдет. Команда IE8 скажет всем, что режим стандартов будет по умолчанию, и запустит долгое бета тестирование, на протяжении которого, будет просить всех протестировать их сайт в IE8 и попробовать заставить его заработать. А ближе к релизу, когда окажется, что только 32% всех страниц в мире отображаются корректно, они скажут «смотрите, нам очень жаль, мы действительно хотели чтобы режим стандартов стоял
по-умолчанию, но мы не можем поставлять неработающий браузер» и вернутся к прагматичному решению. Или не вернутся, потому что прагматики в Майкрософт долго были не у дел. В этом случае IE потеряет большую часть рынка, что потешит идеалистов дальше некуда, и скорее всего не уменьшит годовую премию Дена Хашамовича ни на цент.
Фильтрация CSS по браузеру
Я
Способ для FireFox мне подсказали в комментариях на «Хабре», для Internet Explorer я придумал его самостоятельно. Вот пример, иллюстрирующий идею:
.class { color: black } /* для всех остальных браузеров */
.class, noindex:-moz-any-link { color: blue } /* стиль только для Mozilla FireFox */
.class, v\:* { color: red } /* стиль только для Internet Explorer */Можете попробовать самостоятельно — фильтрует идеально. В примере класс «class» даст тегу, к которому его применят, в FireFox — голубой цвет текста, в IE — красный, а в остальных браузерах — чёрный.
Лядской садик
В Казани, городе, где я прожил 11 лет, есть садик с очень забавным для постороннего уха названием — Лядской. Сами, наверное, можете догадаться какое название дали ему местные.
Я всегда думал, что это название образовано от русского слова «ляд» (встречается сейчас, в основном, в ругательствах «на кой ляд»), оказывается нет:
Лядской садик имеет давнюю (основан в 1869—1870 гг.) и богатую историю. Вспомним лишь, что свое название он получил по фамилии
генерал-майора Лецкого, который имел собственный одноэтажный домик на углу нынешних улиц Горького и Гоголя (ныне на этом месте располагается бетонная стенка при входе в сад). В доме Лецкого в свой приезд в Казань в 1798 г. жил император Павел I.
Фотография с сайта Tatcenter.
Safari: шрифт на тёмном фоне
Ни для кого не секрет, что браузере «Сафари» под Windows использует тот же метод сглаживания, что и под Mac OS. Один из его известных недостатков (кроме сломанных глаз) — текст на тёмном фоне получается (не кажется, а получается) жирнее, чем на светлом, что прекрасно иллюстрирует нижеприведённый скриншот:

Часто это очень неприятно, потому что не позволяет добиться одинакового отображения вёрстки сайта в разных браузерах и портит дизайн. Решается это проблема очень просто, в стилях нужно прописать следующую магическую строку для текста:
.our_text { text-shadow: 0 0 0 #000 }99 бутылок: РАЯ, MS HTML
44. РАЯ (русский алгоримический язык). Язык, придуманный академиком Ершовым для обучения детей программированию. Все названия на русском языке, что, впрочем, совершенно не отвлекает. Для написания программы я использовал падучую реализацию языка с сайта «Инфомир».
Особо о языке сказать нечего, разве что понравились многословные имена переменных, процедур и функций (можно записывать через пробелы), показалось интересным наличие исполнителей (вроде известной «черепашки») и не понравилось отсутствие конкатенации строк и операции «неравно» (в документации я этого не нашёл).
| Написал Евгений Степанищев aka BOLK
алг
нач
цел сколько пива
нц для сколько пива от 99 до 1 шаг -1
выводим пиво(сколько пива, " on the wall, ")
выводим пиво(сколько пива, ".")
вывод нс, "Take one and pass it around,", нс
выводим пиво(сколько пива, " on the wall.")
вывод нс, нс
кц
вывод "No more bottles of beer:", нс
вывод "Go to the store and buy some more:", нс
вывод "99 bottles of beer."
кон
алг выводим пиво(цел пива, лит окончание)
нач
вывод число пива(пива), " bottle"
если пива > 1 или пива=0
то вывод "s"
все
вывод окончание
кон
алг лит число пива(цел пива)
нач
если пива=0
то знач:="No"
иначе знач:=цел_в_лит(пива)
все
кон43. MS HTML. Конечно, HTML не является языком программирования. Но и на этом языке разметки, применяя особенности Internet Explorer, можно написать песню про пиво. Лишнюю строку пришлось «спрятать» за экран. Работает, естественно, только в Internet Explorer.
<!-- Written by Evgeny "BOLK" Stepanischev -->
<style type="text/css">
.outer { position: absolute; top: -20px }
body { background: white; margin: 0; padding: 10px }
body, table { font-size: 11px; font-family: Tahoma }
table, td, tr { margin: 0; padding: 0; border-collapse: collapse }
</style>
<body>
<xml id="dataOuter">
<row>
<d><o>9</o></d>
<d><o>8</o></d>
<d><o>7</o></d>
<d><o>6</o></d>
<d><o>5</o></d>
<d><o>4</o></d>
<d><o>3</o></d>
<d><o>2</o></d>
<d><o>1</o></d>
</row>
</xml>
<xml id="dataInner">
<row>
<d><i>9</i></d>
<d><i>8</i></d>
<d><i>7</i></d>
<d><i>6</i></d>
<d><i>5</i></d>
<d><i>4</i></d>
<d><i>3</i></d>
<d><i>2</i></d>
<d><i>1</i></d>
<d><i>0</i></d>
</row>
</xml>
<xml id="dataInnerSingle">
<row>
<d><i>9</i><s>s</s></d>
<d><i>8</i><s>s</s></d>
<d><i>7</i><s>s</s></d>
<d><i>6</i><s>s</s></d>
<d><i>5</i><s>s</s></d>
<d><i>4</i><s>s</s></d>
<d><i>3</i><s>s</s></d>
<d><i>2</i><s>s</s></d>
<d><i>1</i></d>
</row>
</xml>
<div class="outer">
<table datasrc="#dataOuter">
<tr>
<td>
<table datasrc="#dataInner">
<tr>
<td>
<span datafld="o"></span><span datafld="i"></span> beer bottles
of beer on the wall.<br /><br />
<span datafld="o"></span><span datafld="i"></span> beer bottles
of beer on the wall,
<span datafld="o"></span><span datafld="i"></span> bottles of beer.<br />
Take one and pass it around,<br />
</td>
</tr>
</table>
</td>
</tr>
</table>
<table datasrc="#dataInnerSingle">
<tr>
<td>
<span datafld="i"></span> beer
bottle<span datafld="s"></span> of beer on the wall.<br /><br />
<span datafld="i"></span> beer
bottle<span datafld="s"></span> of beer on the wall,
<span datafld="i"></span> bottle<span datafld="s"></span>
of beer.<br />
Take one and pass it around,<br />
</td>
</tr>
</table>
No beer bottle of beer on the wall.<br />
<br />
No more bottles of beer...<br />
Go to the store and buy some more...<br />
99 bottles of beer.
</div>
</body>Продукт плейсмент «ИКЕА»
В «Афише» появилась статья «Новая визуальность 1.2» об известных дизайнерах страны. На фотографии, которую я взял из статьи, Мика Зубрилов висит в легко узнаваемой тележке из «ИКЕА». Мне показалось смешным написать в «ИКЕА» следующее письмо:
Как вы относитесь к тому, что ведущий дизайнер Москвы Мика Зубрилов сидит в ворованной тележке «ИКЕА» http://www.afisha.ru/article/newviz_12
Или IKEA ему её подарила?

И мне даже ответили (писал в «ИКЕА Белая Дача», мне сказали, что Мика живёт
Здравствуйте, уважаемый покупатель,
Благодарим Вас за интерес, проявленный к компании ИКЕА. Уточните, пожалуйста, на основе каких данных Вы определили, что это тележка ИКЕА. Если же предположить, что это на самом деле тележка, принадлежащая нашей компании, то мы можем прокомментировать эту ситуацию только тем, что к сожалению, от подобных ситуаций никто и нигде не застрахован. Возможно, что среди наших покупателей могут быть и нечестные люди. Компания ИКЕА — торговая организация, которая не имеет полномочий предпринимать любые действия по проведению самостоятельных расследований. Вы можете подать заявление о краже в правоохранительные органы, поскольку именно в их компетенции находится решение подобных криминальных ситуаций.
Как оказалось позднее, тележка
Opera прошла ACID3, WebKit — тоже
Напомню, ACID3 — специальный тест, проверяющий качество поддержки браузерами современных стандартов. На момент появления этого теста (конец прошлого года), браузеры проходили его весьма слабо, после появления — двигались к финишу семимильными шагами. Лично мне казалось, что быстрее всего
И вот, невероятная новость — первым браузером, который проходит тест ACID3, является «Опера». В публичном доступе билд, проходящий тест, появится в течении следующей недели.
Ситуация несколько осложняется тем, что ребята, которые делают движок «Сафари» WebKit (он прошёл тест чуть позднее), нашли в ACID3 баг — для прохождения теста пришлось нарушить спецификацию SVG 1.1, тест был исправлен и теперь «Опера» проходит тест на 99%. На мой взгляд, это значения не имеет — тот тест, к которому все стремились, «Опера» прошла первой.
Помимо этого упомянутый билд «Оперы» включает в себя поддержку CSS3 RGBA, HSLA и Web Fonts. RGBA/HSLA — это возможность при указании цвета задавать прозрачность, а Web Fonts — технология, позволяющая использовать на странице произвольный шрифт (впервые появилась у Internet Explorer много лет назад, недавно — у «Сафари», и теперь ещё и в «Опере»).
CSS IE: -ms-interpolation-mode
У Internet Explorer
У свойства два значения —
img.highqual { -ms-interpolation-mode:bicubic }
img.nearestn { -ms-interpolation-mode:nearest-neighbor }Mac OS X: неуловимый Джо
Как известно, пользователи компьютеров «Эпл» гордятся тем, что для него существует очень малое количество вирусов и известно небольшое количество уявзвимостей. Мне эта ситуация всегда напоминала песню про Неуловимого Джо, которого никто не ловит, потому что он никому не нужен.
Помнится, аналогичная ситуация была с браузером FireFox — он был неязвим, пока не стал популярен, как только «Гугл» вложился в рекламу, счётчик найденный уязвимостей завертелся с тахионной скоростью.
Вот и на ежегодном турнире PWN2OWN, уже два года подряд быстрее всех из тройки Windows Vista, Mac OS X и Ubuntu Linux взламывают именно Mac OS X:
Как и в прошлом году, первой и единственной жертвой стала операционная система Mac OS X. В этом году, Чарли Миллер, главный аналитик Independent Security Evaluators, скомпрометировал Apple MacBook с Mac OS X 10.5.2 «Leopard» меньше чем за минуту, воспользовавшись неизвестной ранее ошибкой в браузере Safari. Найденная уязвимость, по мнению специалистов, очень серьезная. Она позволяет злоумышленнику удаленно выполнить произвольный код, что и было продемонстрировано на соревновании.
Вышел публичный билд «Оперы», проходящий ACID3
Пару дней назад «Опера» прошла тест ACID3, но публичного билда, подтверждающего это событие, не было. Сегодня стал доступен специальный билд, который демонстрирует прохождение теста (есть версии для Windows и Linux). Я себе его скачал, посмотрел, тест действительно проходит, но сайты открывает ужасно, видимо, это специальная ветка разработки, патчи из которой будут включены в «Оперу» позднее. Так же эта версия действительно поддерживает web fonts и цвета в виде rgba/hsla.
Кстати,
Сегодня же вышел еженедельный снапшот «Оперы», где большое внимание уделено улучшению производительности. Удалось достигнуть ускорения
Яндекс раздаёт антивирус Касперского бесплатно
Яндекс совершенно бесплатно предоставляет вам лицензию на специальную версию антивирусной защиты Касперского. Программа содержит ключ для работы в течение полугода. Потом вы сможете получить и установить новый ключ — также бесплатно.
Отличная новость — «Яндекс» раздаёт «Касперского» бесплатно.