Илья Бирман

Наконец-то познакомился с человеком, с которым общаюсь уже более 4-х лет (думаю, нас можно назвать друзьями) — живущим в Челябинске Ильёй Бирманом. Впечатления очень положительные, очень рад знакомству.

Я и Илья Бирман (44.08КиБ)

8 комментариев

Apple Air

На «Горбушке» уже в субботу можно было купить Apple Air, цена — 75000. Я посмотрел. Плоский, красивый, да. Но, извините, это не то устройство, которое отвечает понятию «ноутбук» как я это понимаю. Это… я не знаю… КПК-переросток.

23 комментария

ICQ2Go: humor? Moja ponimat!

У ICQ есть онлайн-клиент, написанный на Flash, многие, наверное, его видели. Но, думаю, мало кто видел, что будет, если кликнуть на нём правой кнопкой мыши и выбрать «View Source» («посмотреть исходный код»). В окно подгружается якобы исходный код этого клиента:

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

8 комментариев

«Вектор идей» для индустрии косметики

В пику инструменту «Матрица идей» студии Артемия Лебедева, сделал «Вектор идей» для производителей косметики (попробуйте перезагрузить страницу несколько раз). Ваши варианты приветствуются.

5 комментариев

Библейская загадка: зачем мужчине соски?

Теперь о самой семье. Почему Богу было угодно разделить человека на мужчину и женщину? Именно разделить. Признаки этого разделения даже видны на мужском теле. Никто не может сказать, зачем мужчине два сосца на его груди. Они не несут никаких функций. У женщины понятно: предполагается, что она будет матерью, будет кормить дитя. А мужчина? У него нет даже молочных желез, но сосцы присутствуют. Загадка, тайна, на нее нет ответа. В Библии об этом тоже не говорится. «Вопрос на засыпку».

Цитата из доклада «Библейские основы православной семьи», докладчик — протоиерей Димитрий Смирнов, второй международный конгресс «Мир семьи».

Загадка века просто — зачем мужчине соски. Никто не знает, да.

15 комментариев

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 OpenID-авторизация, из-за отсутствия cURL на площадке.

Кстати, название домена придумал Дима Смирнов, за что ему большое спасибо.

6 комментариев

Купил пневматический пистолет, красавец Beretta M92 FS

Beretta M92 FS (35.37КиБ)

Вряд ли кто-то, кроме тех, кто видел меня в игровых автоматах или на «пейнтболе», подозревает о моей тяге к оружию и стрельбе. О, теперь я эту тягу могу реализовать в полном объёме. Купил себе «Беретту» M92 FS — пневматика 4.5 мм. Полная имитация оригинальной «Беретты» — внешний вид, количество зарядов, даже вес (около килограмма).

Теперь расскажу о впечатлениях и о тех вопросах, которые мне пришлось для себя прояснять при выборе пистолета.

Во-первых, я условно разделил для себя все пистолеты на имитацию и «просто пневматику», первые хороши тем, что дают ощущение настоящего оружия, у вторых более вместительный магазин (до нескольких десятков выстрелов, против 8 у моей «Беретты») и они легче. Объём магазина и вес — всё это не технические ограничения, а более точная имитация. Зато теперь я знаю, что носить оружие за поясом или долго держать его на вытянутой руке — сложно.

Во-вторых, пневматика делится на несколько классов, по диаметру ствола и силе выстрела. У меня — 4.5 мм, 3Дж, по закону РФ оружием это не считается. Есть 6 мм, у которых сила больше, оружием они так же не считаются (но считаются «спортивным снарядом» и продаются в специализированных магазинах), но расход газового балончика у них больше.

В-третьих, о стоимости «реактивов». Вам потребуются балончики CO² и пульки. Балончики стоят 12-25 рублей, в зависимости от марки, от стоимости ничего не зависит. Пульки различаются по весу, калибру и форме. У меня в используются «рюмочки», в магазинах они стоят по-разному, упаковка в 250 штук обходится в 50 рублей — 20 копеек за штуку. Я пока расстрелял один балончик, его хватило на какое-то довольно дикое количество пулек.

В-четвёртых, пистолет привезли в маленьком пластиковом чемоданчике, с местом под коробку с пульками и запасной балон. Т. е. носить его есть в чём, но хочется кобуру. Кобуру подобрать непросто, видимо буду заказывать. В тех, которые мне предложили в магазинах, пистолет болтается. Впрочем, с кобурой, возможно, я ещё подожду — нужно купить набор для чистки, так как пневматику, хоть и значительно реже, чем огнестрельное, но надо чистить.

В-пятых, есть такая штука как перевозка. По закону РФ рружием данный пистолет не является (к пистолету приложен сертификат), но в самолёт с ним вас не пустят. Вот что мне ответили на мой вопрос по этому поводу в компании «S7»:

@ Оружие (в т.ч. пневматическое) перевозится в упакованном виде, в изолированных от пассажирских салонов отсеках воздушного судна, при наличии у пассажира разрешения на право их хранения и ношения.

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

С точки зрения авиакомпании, даже столовый нож — оружие, любая пневматика так же считается оружием.

70 комментариев

Клуб нелюбителей C++

В своё время я посмотрел массу языков программирования (и продожаю смотреть), на некоторых — что-то писал, хотя бы реализацию известной американской считалочки. И мне всегда казалось, что C++ — самый уродливый, нелогичный и жуткий из всех языков. Оказалось — не казалось. Очень хорошая статья «За что я не люблю C++» Алексея Борескова — лишнее тому доказательство.

31 комментарий

Когда клиент говорит «вы же профессионалы»…

Когда клиент говорит что-то навроде «вы же профессионалы» — это означает следующее: «я ни хрена не понимаю в том. что вы будете делать, но не позволю сделать так, как надо,а напротив — выебу мозг настаивая на своих тупых хотелках, и на том, что насоветовали мне мои друзья, которые когда-то что-то слышали о предметной области, буду доставать вас по каждой мелочи и стенать над каждой копейкой, требуя урезать сметы и сделать все как можно дешевле. А когда выйдет в итоге нечто непохожее на воздушный замок моих мечтаний, я буду вздыхать „ну что же вы, вы же — профессионалы…“»

Чудесная цитата с Bash. Запишу себе, чтобы не забыть.

Оставить комментарий

Чем быстрее всего отрезать строку в кодировке UTF-8

Решил протестировать — чем быстрее всего можно отрезать строку в кодировке UTF-8. В PHP для этой цели (помимо использования извращений, типа SQL-запроса) можно использовать: mb_substr из модуля «Multibyte string function», iconv_substr из модуля iconv, preg_replace в режиме UTF-8 из Perl-Compatible regular expression function и собственную реализацию прохода по UTF-8 строке.

Я взял строку в 700 UTF-8-символов и отрезал от неё 500 разными функциями. Вот что получилось (PHP 5.2.4 без акселераторов):

  • хуже всех справилась реализация на чистом 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 символов UTF-8 таков:

preg_replace('/^(.{'.$N.'}).*$/uSs', '$1', $text)

17 комментариев

Опыт перевозки пневматического оружия на самолёте

Опыт перевозки пневматического оружия на самолёте оказался успешным — в Казани пистолет я сдал сотруднику безопасности. В Москве, в Домодедове — получил. Единственное, что я не знал — что газовый балончик к пистолету мне взять в самолёт не позволят, пришлось оставить его в Казани.

10 комментариев

«Stupid IE hack» by Microsoft

«Stupid IE» CSS hack (32.27КиБ)

Многие видели наверное — два года назад кто-то нашёл в CSS-файле на одном из сайтов Microsoft классы «StupidIEMarginHack» и «StupidIEWidthHack». Два года прошло, но я наткнулся на этот скриншот случайно, предполагаю, что я не единственный, кто видит это в первый раз.

Оставить комментарий

Ромочке не даёт покоя моя слава

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

А самая умилительная и жутчайшая история случилась, когда я не подумавши ляпнул про спам, который боги придумали. До сих пор умиляюсь и себя кляну: ну ляпнул бы при друзьях, ну хихикнули бы и забыли. Нет, надо было про это в жж написать. Наутро весь рунет просто купается в приколе, а один талантливый юморист из неосмотрительного моего замечания рассказ слепил. Целый рассказ, с подробностями. Как бог сел, там, за компьютер, запустил почтовую программу и т. д. Это, товарищи, пи…ц. Любая шутка — говно. Не шутите никогда.

Я — талантливый юморист. Евгений Владимирович Петросян, ага.

5 комментариев

«Полиция» vs. «милиция»

Слово «полиция» образовано от гречесчкого «πολιτεία» («государственная деятельность, правление»). Слово «милиция» — от латинского «militia» («войско»). Почувствуйте разницу.

13 комментариев

Беги!

Коты (89.94КиБ)

Автор фото, к сожалению, не известен.

6 комментариев

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;
}

5 комментариев

«СУП» отменила базовые аккаунты в ЖЖ

Когда росскийская компания «СУП» купила «Живой Журнал» некоторые, в том числе и я, стали потихоньку отползать на запасные аэродромы. Смирнов, в частности, полностью удалил свой ЖЖ. Я менее радикален — я просто перестал туда ходить. Нам было очевидно — добром это не кончится, главным образом из-за микроскандалов, которые возникали ещё в те времена, когда «суповцы» приобрели право на обслуживание кириллистической части ЖЖ.

То, что случилось вчера посерьёзнее. «СУП» отменил базовые аккаунты в ЖЖ:

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.

4 комментария

CSS только для Mozilla (в том числе — FireFox)

У верстальщиков до сих пор возникает задача — подключить стили только для определённого браузера. Для IE проблема решаема — всё меньше верстальщиков не знают что такое conditional comments. Но исчезающе малое количество народу знает что такое per-site user stylesheet rules. Интересны они тем, что Mozilla FireFox поддерживет их через собственное правило — «@-moz-document».

Вообще, это правило позволяет подключать стили в зависимости от домена, 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.

15 комментариев

тИЦ России

Случайно обнаружил, что тИЦ можно измерить и для корневых доменов. Самые большие тИЦ (на данный момент) у России, доменов .com, Узбекистана, .localhost и Казахстана:

2 комментария

Bookr для PSP

Те, кто используют PSP для чтения книг, наверняка знают, что лучшая программа для чтения — Bookr, давно не обновляется. Но умельцы постепенно её дорабатывают, обратная сторона этого положительного явления — модификаций развелось такое количество, что ориентироваться в них стало уже очень сложно. Мне понравилась сборка, которую сделал пользователь SD6719 с форума сайта PSPx.

Она поддерживает форматы txt, fb2, pdf, djvu, кодировки UTF-8, UTF-16, KOI8-r, CP-1251, CP-866, поддерживает TTF-шрифты, сама загружает последний прочитанный файл, имеет функцию перехода к странице по номеру и так далее. У программы две версии — для прошивки 1.50 и для всех остальных. Так же можно скачать исходники, если интересно почему размер программы вырос почти в два раза.

Оставить комментарий

Доказательство через противного: тактика спора

На «Воффке» увидел неплохую статью, описывающую довольно типичную для «троллей» тактику — приписать что-то оппоненту и обсудить эту ситуацию как свершившийся факт. Приведены несколько примеров и методы защиты.

4 комментария

Декоративная обфускация PERL-кода

Нашёл замечательную старую статью «Декоративная обфускация PERL-кода», в статье есть просто изумительные примеры, например, знаменитый «квадрат» из ключевых слов 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».

3 комментария

HTML5 VIDEO: кто первый? А так же 3D CANVAS

Вышел браузер «Сафари» версии 3.1, в пресс-релизе написано, что «Сафари» — первый браузер, поддерживающий новые теги video и audio из HTML5:

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 — вышла накладка. Специальный билд «Оперы», поддерживающий этот тег, вышел 8-го ноября 2007-го года, тогда как Webkit (на движке которого сделан «Сафари») — 12-го ноября, на четыре дня позже.

Кстати, самое интересное, что появилось в том билде «Оперы», это не тег VIDEO, а 3D Canvas — до этого момента тег CANVAS позволял работать только с примитивами на плоскости (отрезками, прямоугольниками, кругами и так далее), знаменитая игра «Canvascape», сделанная с применением этого тега (требует для работы любой браузер, поддерживающий CANVAS), просчитывае 3D-графику самостоятельно, из-за чего игра на средних компьютерах заметно притормаживает.

Для 3D CANVAS задача вращения куба с текстурой, например — тривиальная. Примеров работы с этим новшеством пока немного, в оригинально статье упомянута Snake («змейка») в 3D, написанная Mathieu ’p01’ HENRI.

5 комментариев

Dictatorship IE vs. Open Source Dictatorship

Удивительная избирательная слепота у людей. На «Хабре» опубликовали статью «Новые возможности HTML и CSS в Safari 3.1», где народ восторженно обсуждает возможности, появившиеся в браузере «Сафари». Этим возможностями сто лет в обед — те же яйца, только боком уже давным-давно реализованы в Internet Explorer, причём в версиях 4.xx—5.5.

Это вообще какое-то чудо — все стандарты от Internet Explorer называются «мировым злом» (например, «фильтры»), а стандарты от других производителей — охренительными фичами (вроде тех же «transforms» или CANVAS от Apple). При этом последние шесть лет целая куча функционала была скомуниҗҗена с IE, а сколько там ещё можно утащить (самый известный пример, конечно же, HttpRequest, который придумали в Microsoft и на котором работает AJAX)!

Я составил небольшую таблицу соответствий технологий IE и их реализаций в других браузерах:

Internet Explorer

Остальные браузеры

HTML+TIME

Safari CSS transforms

Persisting Session Information

HTML5 Client-side Database Storage

Font Embedding

CSS3 Web Fonts

VML

SVG

Filters

CSS свойство «opacity»

Filters

CSS свойство «text-shadow»

VML

Тег CANVAS

Свойство «writing-mode»

CSS свойство «writing-mode»

Microsoft IXMLHTTPRequest

W3C XMLHttpRequest

Filters

WebKit gradient

Таблицу можно продолжать. Учтите, что всё, что перечислено в ней слева, появилось ещё шесть лет назад.

Мне интересно, кто первым реализует «data binding» из IE, при помощи этой технологии я написал «Песню о пиве» на HTML.

30 комментариев

Система статистики «Spesta 2.10 a+b»

Логотип игры SPECTRA 2: оранжевый квадрат с чёрной буквой «S» и цифрой «2», под ним надпись «SPECTRA 2» белыми буквами на чёрном фоне.
Спеста

Какое-то время назад я патчил (два раза) систему статистики «Спеста» Дмитрия Смирнова, правил дыры и ошибки. Сама система мне нравится — простая, понятная, после патчей даже работает неплохо. Но при работе генерирует кучу warnings и notices, что захламляет мой лог ошибок и настраивать её не слишком-то приятно.

Недавно я узнал, что существует клон это системы — 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' -->

Ссылка для невнимательных, скачать можно отсюда: /files/spesta-210.zip.

92 комментария

PHP: простой способ определения кодировки UTF-8

Придумал простой способ определения кодировки UTF-8 в PHP, работает без модулей iconv и multibyte string (mb-функции):

if (preg_match('//u', $string)) { /* у вас UTF-8 */ }

Работать должно, думаю, с версии PHP 4.3.5, в документации сказано: «UTF-8 validity of the pattern is checked since PHP 4.3.5».

21 комментарий

Жертва науки: с дыыыырочкой в правом боку

Ребят, если вы сейчас едите, лучше не читайте дальше. Кто не спрятался, я не виноват. Я предупредил, да?

Дырочка в боку (35.21КиБ)

То, что вы видите на моём, по возможности осторожном обрезке снимка — живая корова. А в корове — дырка. В живой. Если вам кажется, что это фотошоп, то можете посмотреть видео на эту тему (ещё несколько можно найти на YouTube).

Для чего же это делают? Оказывается, в научных целях (мой вольный перевод):

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

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

Операция не причиняет корове боли и даже продлевает им жизнь. «Прокомпастированной» корове, которая заболела, можно ввести нужные вещества прямо в пищеварительный тракт и тем самым более эффективно ей помочь. Плюс, одна такая корова помогает скоту во всём мире

Кстати, я бы не сказал, что в ролике заметно, что корове совсем не больно, особенно когда эта заботливая учёная тварь достаёт канюлю из раны на боку.

8 комментариев

Мышь-амбидекстр

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

До реализации идеи в промышленных масштабах, думаю, не дойдёт, но у себя на рабочем месте я проблему решил. Оказалось, что мышь 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 }

21 комментарий

Где же работает Дима Смирнов?

BOLK: чем ты занимаешься, кстати? расскажи хоть

Дмитрий Смирнов: NDA!

BOLK: No Detectable Activity?

Если серьёзно, то в «Яндексе» очень серьёзно относятся к защите информации. А Дима работает в отделе коммукационных сервисов.

Для тех, кто не понял в чём шутка. NDA — это «Non-Disclosure Agreement» (подписка о неразглашении), но аббревиатура расшифровывается и другими способами, например «No Detectable Activity» (не обнаруживаемая активность).

7 комментариев

Spesta 2.11a+b

«Спеста 2.11a+b» (0.30КиБ)

Сделал новую версию системы статистики «Спеста 2», версия 2.11, файл лежит там же. В основном, это багфиксы, причём баги большей частью — наследие оригинальной системы.

Поправлено:

  • поправлено отсутствие перекодировки поисковых запросов из UTF-8
  • устранено разрастание файлов статистики из-за лишнего перевода строки
  • поправлено возможное некорректное определение дубликатов в файлах статистики
  • исправлены какие-то мистические глюки при работе на площадках «Мастерхоста» с PHP 5.2.5
  • побеждено странное поведение при логине на площадки, где стоит PHP как CGI и suphp
  • снова работает отчёт «Поисковые роботы» (был поломан моим патчем)
  • в отчёте «Откуда идут» в колонке «хиты» теперь отображаются абсолютные значения, а не проценты
  • исправлен подсчёт процентов во всех отчётах, раньше на этом месте считалось что-то иное
  • click.php ничего не делал, это моя вина, я это поправил
  • сделал сортировку в отчётах
    В общем, обновляться — обязательно. Да, теперь система стоит у меня на сайте, поэтому я сразу после первого релиза увидел что надо поправить и сделал это.

Для тех, кто редко меня читает: несколько дней назад я выпустил «Спеста 2.11a+b» — сильно пропатченную систему статистики «Спеста 2» (которую сделали в Analog Group).

17 комментариев

IE8: шаг вправо, шаг влево — расстрел

На «Хабре» появился хороший перевод статьи Сполски по поводу IE8, статья довольно большая:

Хотите секрет? Вот что я думаю произойдет. Команда IE8 скажет всем, что режим стандартов будет по умолчанию, и запустит долгое бета тестирование, на протяжении которого, будет просить всех протестировать их сайт в IE8 и попробовать заставить его заработать. А ближе к релизу, когда окажется, что только 32% всех страниц в мире отображаются корректно, они скажут «смотрите, нам очень жаль, мы действительно хотели чтобы режим стандартов стоял по-умолчанию, но мы не можем поставлять неработающий браузер» и вернутся к прагматичному решению. Или не вернутся, потому что прагматики в Майкрософт долго были не у дел. В этом случае IE потеряет большую часть рынка, что потешит идеалистов дальше некуда, и скорее всего не уменьшит годовую премию Дена Хашамовича ни на цент.

4 комментария

Фильтрация CSS по браузеру

Я как-то уже писал о том как подключить целый блок CSS только для FireFox, но чаще нужно подключить не блок, а всего один-два стиля. В этом случае удобно воспользоваться тем фактом, что браузер обязан игнорировать стиль, если в селекторе встречается что-то незнакомое.

Способ для 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 комментариев

Лядской садик

Бронзовая статуя сидящего мужчины на постаменте в парке, окружённая деревьями и цветочными клумбами с красными тюльпанами.
Лядской садик

В Казани, городе, где я прожил 11 лет, есть садик с очень забавным для постороннего уха названием — Лядской. Сами, наверное, можете догадаться какое название дали ему местные.

Я всегда думал, что это название образовано от русского слова «ляд» (встречается сейчас, в основном, в ругательствах «на кой ляд»), оказывается нет:

Лядской садик имеет давнюю (основан в 1869—1870 гг.) и богатую историю. Вспомним лишь, что свое название он получил по фамилии генерал-майора Лецкого, который имел собственный одноэтажный домик на углу нынешних улиц Горького и Гоголя (ныне на этом месте располагается бетонная стенка при входе в сад). В доме Лецкого в свой приезд в Казань в 1798 г. жил император Павел I.

Фотография с сайта Tatcenter.

2 комментария

Safari: шрифт на тёмном фоне

Ни для кого не секрет, что браузере «Сафари» под Windows использует тот же метод сглаживания, что и под Mac OS. Один из его известных недостатков (кроме сломанных глаз) — текст на тёмном фоне получается (не кажется, а получается) жирнее, чем на светлом, что прекрасно иллюстрирует нижеприведённый скриншот:

Шрифт в «Сафари» на тёмном и светлом фонах (5.17КиБ)

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

.our_text { text-shadow: 0 0 0 #000 }

10 комментариев

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>&nbsp;beer bottles
of beer on the wall.<br /><br />
<span datafld="o"></span><span datafld="i"></span>&nbsp;beer bottles
of beer on the wall,
<span datafld="o"></span><span datafld="i"></span>&nbsp;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>&nbsp;beer
bottle<span datafld="s"></span> of beer on the wall.<br /><br />
<span datafld="i"></span>&nbsp;beer
bottle<span datafld="s"></span> of beer on the wall,
<span datafld="i"></span>&nbsp;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>

10 комментариев

Продукт плейсмент «ИКЕА»

В «Афише» появилась статья «Новая визуальность 1.2» об известных дизайнерах страны. На фотографии, которую я взял из статьи, Мика Зубрилов висит в легко узнаваемой тележке из «ИКЕА». Мне показалось смешным написать в «ИКЕА» следующее письмо:

Как вы относитесь к тому, что ведущий дизайнер Москвы Мика Зубрилов сидит в ворованной тележке «ИКЕА» http://www.afisha.ru/article/newviz_12

Или IKEA ему её подарила?

Мика Зубрилов (65.11КиБ)

И мне даже ответили (писал в «ИКЕА Белая Дача», мне сказали, что Мика живёт где-то в этом районе):

Здравствуйте, уважаемый покупатель,

Благодарим Вас за интерес, проявленный к компании ИКЕА. Уточните, пожалуйста, на основе каких данных  Вы определили, что это тележка ИКЕА. Если же предположить, что это на самом деле тележка, принадлежащая нашей компании, то мы можем прокомментировать эту ситуацию только тем, что к сожалению, от подобных ситуаций никто и нигде не застрахован. Возможно, что  среди наших покупателей могут быть и нечестные люди. Компания ИКЕА — торговая организация, которая не имеет полномочий предпринимать любые действия по проведению  самостоятельных расследований.  Вы можете подать заявление о краже в правоохранительные органы, поскольку именно в их компетенции находится решение подобных криминальных ситуаций.

Как оказалось позднее, тележка всё-таки не из «ИКЕА», Мика сам не помнит, но точно не оттуда.

9 комментариев

Opera прошла ACID3, WebKit — тоже

Напомню, ACID3 — специальный тест, проверяющий качество поддержки браузерами современных стандартов. На момент появления этого теста (конец прошлого года), браузеры проходили его весьма слабо, после появления — двигались к финишу семимильными шагами. Лично мне казалось, что быстрее всего 100%-го прохождения достигнет «Сафари», который с каждым новым билдом улучшал результать на 1-2%.

И вот, невероятная новость — первым браузером, который проходит тест ACID3, является «Опера». В публичном доступе билд, проходящий тест, появится в течении следующей недели.

Ситуация несколько осложняется тем, что ребята, которые делают движок «Сафари» WebKit (он прошёл тест чуть позднее), нашли в ACID3 баг — для прохождения теста пришлось нарушить спецификацию SVG 1.1, тест был исправлен и теперь «Опера» проходит тест на 99%. На мой взгляд, это значения не имеет — тот тест, к которому все стремились, «Опера» прошла первой.

Помимо этого упомянутый билд «Оперы» включает в себя поддержку CSS3 RGBA, HSLA и Web Fonts. RGBA/HSLA — это возможность при указании цвета задавать прозрачность, а Web Fonts — технология, позволяющая использовать на странице произвольный шрифт (впервые появилась у Internet Explorer много лет назад, недавно — у «Сафари», и теперь ещё и в «Опере»).

13 комментариев

CSS IE: -ms-interpolation-mode

У Internet Explorer с 7-й версии, оказывается, есть очень довольно любопытное CSS-свойство: «-ms-interpolation-mode», которое позволяет устанавливать режим масштабирования (интерполяции) для изображений.

У свойства два значения — «nearest-neighbor» (менее качественный режим по ближайшему соседнему) и «bicubic» (более качественный бикубический метод). Кстати, обратите внимание, что новое свойство начинается с префикса, как это рекомендует делать W3C. Пример использования:

img.highqual { -ms-interpolation-mode:bicubic }
img.nearestn { -ms-interpolation-mode:nearest-neighbor }

По-умолчанию, IE масштабирует изображения по ближайшему соседнему, если масштаб страницы 100% и бикубическим методом в остальных случаях.

7 комментариев

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. Найденная уязвимость, по мнению специалистов, очень серьезная. Она позволяет злоумышленнику удаленно выполнить произвольный код, что и было продемонстрировано на соревновании.

18 комментариев

Вышел публичный билд «Оперы», проходящий ACID3

Пару дней назад «Опера» прошла тест ACID3, но публичного билда, подтверждающего это событие, не было. Сегодня стал доступен специальный билд, который демонстрирует прохождение теста (есть версии для Windows и Linux). Я себе его скачал, посмотрел, тест действительно проходит, но сайты открывает ужасно, видимо, это специальная ветка разработки, патчи из которой будут включены в «Оперу» позднее. Так же эта версия действительно поддерживает web fonts и цвета в виде rgba/hsla.

Кстати, user-agent у этого билда выглядит вот так: «Opera/9.0 (WinGogi; U; en)».

Сегодня же вышел еженедельный снапшот «Оперы», где большое внимание уделено улучшению производительности. Удалось достигнуть ускорения от 2-х до 10 раз на разных тестах.

9 комментариев

Яндекс раздаёт антивирус Касперского бесплатно

Яндекс совершенно бесплатно предоставляет вам лицензию на специальную версию антивирусной защиты Касперского. Программа содержит ключ для работы в течение полугода. Потом вы сможете получить и установить новый ключ — также бесплатно.

Отличная новость — «Яндекс» раздаёт «Касперского» бесплатно.

13 комментариев

← сюда туда →