«Go»: два новых метода в gd-go: SmoothArc и SmoothEllipse
Добавил в свой проект
DOOM на JavaScript
Ребята из Mozilla портировали DOOM на JavaScript. Скомпилировав DOOM
Запускается не во всех браузерах (последний «Хром» просто завис), но в «Опере» и «Файрфоксе» у меня запустилось. Для запуска необходима поддержка Canvas. На скриншоте видно, что FPS приличный, на моём «Маке» в FireFox4 держится на уровне 20—35.

Tanks JS1K
Кстати о JavaScript. Может быть
Не так давно мне
Мне очень хотелось сократить названия методов канваса, очень уж они длинные — putImageData, createImageData и так далее. Для игры, занимающей (сейчас) 713 байт это расточительно. На эту тему в голову идея и пришла.
Идея заключается в том, чтобы пройтись по списку методов и присвоить объекту их же, но под другими, короткими именами. Самый простой способ, до которого я додумался — это взять пятую букву названия метода (правда, кажется a[i] для строк не везде будет работать, вариант с charAt занимает на 7 байт больше).
Получился такой код:
for(i in a)a[i[V=4]]=a[i]Переменная «V» со значением «четыре» используется дальше как счётчик оставшихся жизней, в переменной «a» ссылка на объект контекста канваса. В итоге, если мне надо вызывать метод «a.putImageData», я могу вызвать его как «a.m», вместо «a.createImageData» можно вызывать «a.t» и так далее (отчёт с нуля начинается).
Чем больше таких вызовов, тем больше экономия. Единственное, свойства (например «fillStyle») так сократить не получится.
Браузер в Windows Phone 7.0
У нас в компании появились первые смартфоны на Windows Phone 7.0. Естественно, очень интересно посмотреть что поддерживает тамошний браузер.
Пишу по мотивам одного из отзывов внутри компании.
HTML5Test — 15 баллов, ни одного бонусного (нет canvas, svg, video/audio, тегов HTML5, Geo API, SSE/WebSocket, localStorage), тест modernizr показывает отсутствие
Нет touch events, отсутствует Array.forEach, Object.defineProperty и ещё по мелочи.
Код
Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; HTC; 7 Mozart T8698)Пушкин — собачья кличка?
Пушкин — очень популярное американское собачье имя: красивое, звучное и намекает на приверженность хозяина мультикультурализму. Лично я встречал как минимум четырех Пушкиных: бульдога, двух золотых ретриверов и одного очень крупного сенбернара.
Цитата из рецензии на книгу Эми Чуа «Боевой гимн
Страусиная ферма «Русский страус»
В субботу были с женой на страусиной ферме «Русский страус». Посмотрели на этих странных птиц, поели мясо страуса. Страусов показывают в загонах, можно протянуть руку и погладить (правда они очень ловко уворачиваются) или покормить. Лучше, конечно, не перебарщивать, мало ли что придёт в их небольшой, с куриное яйцо, мозг — даже через решётку один страус попытался меня атаковать.
На ферме так же водятся птицы поменьше — гуси, декоративные петухи, сазаны, а так же грустные, облезлые верблюды, больше похожие на верблюжих зомби. В наличие верблюдов на ферме мне видится своеобразный неумышленный юмор. Дело в том, что научное название страуса, «Struthio camelus» переводится как
Так что ферма, скорее, верблюжья, а не страусиная.









На территории есть кафе, а так же продаются яйца страусов (на одном из снимков видно два яйца, зелёное — это яйцо страуса эму). Цена за яйцо великовата, на мой взгляд — 2100 рублей за штуку.
Экономия трафика для мобильных
Идея такая: экраны мобильных относительно небольшие. Самое здоровое, что я встречал — 5″ на моём предыдущем телефоне (HTC X7500). Это значит, что нет нужды показывать на этих дисплеях столь же большие картинки, как и на ноутах и десктопах.
Хочу со временем попробовать такую схему: картинка заливается ко мне на сайт и в «Яндекс.Фотки». С сайта показывается изображения моего обычного формата для компьютеров и ноутов, с «Яндекс.Фоток» (а там из каждой фотографии готовится семь превьюшек разного размера) — для сотовых в подходящем для экрана размере.
Единственное, что я пока не продумал — как автоматически подставлять разные изображения. Из CSS нельзя управлять атрибутом SRC картинки, а то можно было бы воспользовать media queries; можно было бы использовать
Хотелось бы использовать SVG, но WebKit на «Андроидах» и iOS (в iOS поддерживается с 2.1) не понимает SVG (в SVG можно сунуть ссылки на несколько картинок и выбрать нужную через те же media queries).
Можно было бы сделать подмену со стороны сервера, но для этого нужно знать разрешение на экране пользователя. В этом мог бы помочь сервис «Яндекс.Детектор». Но мне неизвестно насколько быстро пополняется база новыми моделями, какой у неё охват старых и что делать, если сервис
Остаётся JavaScript, что грустно. Надо подумать ещё.
Газета «Комсомолец Татарии»

В последний мой приезд к родителям мы разбирали с мамой фотоальбом моей бабушки (со стороны папы), который остался после того как её не стало. В фотоальбоме нашлась аккуратно сложенная газета «Комсомолец Татарии» от 17 июня 1964, 47 лет газете, а выглядит так, как будто года три прошло (см. снимок).
Я уже никогда не узна́ю почему бабушка её хранила, бегло прочитав всю газету, не встретил ни одной знакомой фамилии. Буду хранить дальше, мне нравится держать в руках такие вещи.
Вот вам цитата с первой страницы:
Н. С. Хрущёв прибыл в Данию
16 июня в столицу Дании — Копенгаген с официальным визитом на теплоходе «Башкирия» прибыли Председатель Совета Министров СССР Н. С. Хрущёв и сопровождающие его лица.
Тысячи датчан пришли в Копенгагенский порт, чтобы поприветствовать главу Советского правительства — посланца великой советской страны, с которой Дания поддерживает традиционные дружественные отношения. Н. С. Хрущёва и сопровождающих его лиц, сошедших с борта теплохода «Башкире» в порту, тепло приветствовал от имени правительства и датского народа
премьер-министр Е. О. Краг.Е. О. Краг и Н. С. Хрущёв обменялись речами.
Петрушка теперь наркотик
Федеральная служба по надзору в сфере защиты прав потребителей и благополучия человека (классно звучит, да?) и главный государственный санитарный врач России 11 апреля 2011 года постановили внести в перечень растений, содержащие сильнодействующие, наркотические или ядовитые вещества огородную петрушку в комментариях указали, что речь идёт
Семена этой разновидности петрушки богаты ядовитым эфирным маслом, содержащим наркотические вещества. Кстати, учительница по биологии в школе (Тамара Потаповна, чему вы нас учили?) рассказывала, что отвар петрушки раньше использовали, чтобы спровоцировать выкидыш.
Про меру ответственности за выращивания того, что ещё прошлой весной было приправой никто ничего сказать толком не может. Типичная цитата:
Как сообщил «Росбалту» источник в Управлении федеральной службы по контролю за незаконным оборотом наркотиков
по Санкт-Петербургу, список растений и препаратов, содержащих наркотические вещества, периодически расширяется, однако специалист затруднился сказать, какие кары могут ожидать бабушку, выращивающую подобную запрещенную петрушку на своем дачном участке.
Впрочем, в том списке так же и ландыш (№137) с пометкой «все виды, все части», а я вчера у метро, под носом полиционера купил четыре букетика в подарок жене.
Так что сильно пугаться не стоит, но держать ухо востро нужно — у нас закон, что дышло.
Добавлено позже: в комментариях разобрались. Речь идёт о семенах петрушки кудрявой, постановлением запрещено употреблять их в пищу, добавлять в БАД и т. п. Петрушку этого вида выращивают в огородах наряду с петрушкой огородной, отличить их просто, кудрявая выглядит действительно выглядит более кудрявой. Я много раз видел на рынке разницу.
Nahui
Дмитрий Быков (журнал «Собеседник»)
На одном из поворотов раскисшего серпантина я оглянулся на поселок Nahui в последний раз. Белел молитвенный дом, возвышалась колокольня, и глиняный домик бабушки Мельчоры был почти не виден за пеленой дождя. Но ясно было, что он выстоит. Ведь пойти Nahui — это всего лишь оказаться вне истории, и тогда тебе уже не страшно ничто, потому что из общей жизни ты как бы выпал. Никто в поселке Nahui не знает, как зовут президента Перу, и никого там не интересует инфляция. Там с XIV века живут добрые люди, готовые накормить путника, работают на полях, растят внуков. И с ними никогда ничего не происходит, потому что бог грома в благодарность спас их, выключив из общего бытия. Теперь с ними никогда ничего не будет — потому что они будут всегда. Все остальные умрут — потому что живут, только в счастливо спасенном поселке Nahui жизнь остановилась навеки, свелась даже не в круг, а в точку. Мы думаем, что послать туда — обидеть или уязвить. А послать туда — это, может, значит как раз спасти, подарить вечность… хотя nahui такая вечность?
Ради того, чтобы это понять, стоило съездить Nahui.
Приокско-Террасный государственный природный биосферный заповедник
Не доезжая минут 20 до реки Оки, находится вход в
Посетителей водят по специальным огороженным дорожкам и в Музей природы, где находятся чучела птиц и животных, обитающих на территории заповедника. На территорию обитания животных простым посетителям хода нет, это охраняемая территория, нарушение режима работы заповедника — уголовное преступление (глава 26 УК РФ). Так что приходится довольствоваться моментами, когда животные подходят к изгороди.
Впрочем, мы обделены вниманием не были. Приехали
Было время, когда поголовье зубров было почти истреблено, животных репродуктивного возраста сохранилось в тот момент всего 19. Благодаря усилиям учёных, в том числе учёных









На территории заповедника есть кафе (правда, шашлыка из мяса бизонов и зубров не предлагают, это не ферма), сувенирная лавка и касса, где можно оплатить экскурсию. Без экскурсовода к животным не пускают. Кстати, осторожнее. Я в одном месте подошёл слишком быстро (хотел сделать фотографию получше) и мне пришлось отпрыгивать назад, так как бизону не понравилось такое нарушение личного пространства.
Остальные фотографии в фотоальбоме на «Яндекс.Фотках».
Выставка гигантских матрёшек






Съездили сегодня в «Афимолл сити» на выставку гигантских матрёшек,
Сам «Афимолл» понравился. Наверное он
MakeCorner: теперь уголки мне нравятся
Программа, кстати, автоматически должна стать мультплатформенной. Я не пробовал, но компилятор Go есть для MacOS, FreeBSD, Linux и Windows (и трёх типов архитектур — ARM, i386
Правда, для работы требуется библиотека GD, а она вряд ли скомпилируется на ARM.
«Go»: недостатки
Я уже успел написать на «Go» пару тысяч строк (не считая удалённого кода) и должен сказать, что этот язык мне нравится. Этакий «Си» с человеческим лицом. Правда обработка ошибок через panic/defer мне до сих пор кажется сомнительным удовольствем.
Почему же этот язык столько непопулярен?
Самая главная — язык до сих пор не стабилизировался. К пример, пятого мая этого года вышел релиз №57), где кардинально изменился способ которым можно проверить закрылся ли канал. Вместо функции closed канал просто возвращает два значения. Из других примеров могу вспомнить как после очередного обновления компилятора мне пришлось везде в коде заменить вызов Open на OpenFile.
Вторая сильная причина — мало документации. По языку есть только одна книга, о которой мало кто знает (кстати, рекламирую: «Learning Go» Miek Gieben, книга на английском), в официальной документации по модулям чаще всего перечислены только методы,
Третья причина менее очевидна, чем предыдущая. Я называю «Go» языком «Си» с человеческим лицом, при это «Go» отстаёт от «Си» отсутствием предпроцессора. Когда я делал MakeCorner мне хотелось сделать кроссплатформенное определение количества процессоров (сейчас этот код удалён), для этого пришлось использовать вызовы, которые есть на одно системе, но отстутствуют на другой.
В «Go» это означает ошибку при компиляции. Нет никакого внутреннего средства для того, чтобы сообщить компилятору «не смотри сюда, если это freeBSD». Эту ситуацию мне пришлось разрешать при помощи файла make.
Нет худа без добра, вчера ночью я
Но. Это очень мешает и раздражает, особенно когда переходишь с такого динамического языка как «Пайтон». В больших проектах это должно вносить ужасную путаницу, так как придётся готовить несколько файлов для разных платформ (я так и сделал в своём проекте) и выделять куски кода в эти файлы
У меня уже есть задумка что писать на «Go» дальше. Правда я в сомнениях. «Go» настолько непопулярен, что выгоднее делать следующий проект
Контекстная реклама

А реклама на «Ютьюбе»
FatBooth

Программа «FatBooth» (есть версия под «Андроид» и iOS) — отличный генератор юзерпиков. А так же напоминание о том, что не надо есть что попало. Прибавить себе килограммов можно, сфотографировав себя камерой или используя уже готовый фотоснимок. Программа попробует самостоятельно расставить ключевые точки (глаза, рот, подбородок), после чего даст возможность их скорректировать и покажет к чему может привести «двойная порция с большой колой» через несколько лет.
Россия-2020
Для тех, кто читает блог через RSS: тут видео есть.
Что это было?
Поднимаюсь сегодня на эскалаторе в метро, а рядом спускается дедушка, лет уже за 70. Когда мы почти поровнялись, он неожиданно поворачивается ко мне весь и говорит:
— Здравствуйте! — Здравствуйте… — я несколько опешил, но мало ли в метро одиноких дедушек и бабушек, которым не с кем поговорить?
Совсем было проезжая мимо меня, он вдруг ещё раз поворачивается ко мне:
— Вы же Болк, да? — Да… — Тогда, здра́вствуйте! — с нажимом, не меняя нейтрального выражения лица.
Я так и застыл, глядя ему в спину.
Ребята, что это было? Сослуживцы считают, что это был читатель.
Уважаемый, если вы меня читаете, напишите мне
Toshiba AC100-116
Купил жене смартбук Toshiba
Покупал в магазине «Storr» и теперь буду всем настоятельно рекомендовать этот магазин. Цены низкие (по крайней мере на этот смартбук), доставка бесплатная, доставляют вовремя, во время обработки заказа присылают SMS о его статусе, после доставки позвонила менеджер и расспросила нет ли замечаний к работе магазина, работает ли устройство и т. д.
Вернёмся к смартбуку. Это десятидюймовый нетбук с двумя процессорорами Тегра 250 (1ГГц), памятью в 512МБ, полноцветным экраном 1024×600, SSD-диском на 32ГБ (есть
Поскольку это нетбук, то он оборудован удобоваримой, но не со всеми клавишами на своих местах (к чему я уже привык на ноутах) клавиатурой и экраном без обработки касания. Есть встроенный микрофон, колонки
Для подключения к внешнему миру на борту есть комбинированный разъём наушников и микрофона, два разъёма USB (одни из них — miniUSB типа B), выход HDMI, модем 3G, поддержка WiFi (есть возможность получить категорию «n») и Bluetooth 2.1 EDR. Модем 3G, несмотря на своё название, поддерживает и сети GSM.
Общеизвестно, на свои изделия мало кто ставит голый «Андроид», фирма «Тошиба» не исключение. На системе установлена их собственная оболочка, вырезаны сервисы «Гугла», в том числе магазин приложений, предустановлены различные приложения, как полезные (читалка FBReader), так и сомнительной полезности, на мой взгляд (проигрыватель Toshiba Media Player).
Так что, для начала я сменил прошивку на «Андроид» 2.2 сборку
Оправдывая название нетбука, устройство нормально видит внешнюю мышь, клавиатуру, внешний жёсткий USB-диск (нужна файловая система FAT32, а альтернативную прошивку
В качестве дальнейшей софтварной модификации, я скачал и перенастроил оболочку ADW Launcher EX с темой Honeycomb ADW, установил свежие Opera Mobile и FireFox, виджеты ExtDateWidget, Яндекс.Погоду и встроенный виджет «Управление питанием», поставил «Яндекс.Карты», «Яндекс.Метро», «Яндекс.Почту», TuneIn Radio, Adobe Reader, AndroZIP (чтобы работать с ZIP-архивами), AdFree (для блокировки рекламы) и Root Explorer (чтобы работать с файловой системой
Получилось отличное устройство для сёрфинга, просмотра, небольших текстов, несложных игр. Оно дешёвое (семь тысяч рублей), расширяемое, работает восемь часов с включенным WiFi, весит 800 грамм (это, кстати, серьёзное преимущество, устройств такого класса весом до килограмма я больше не нашёл), умеет подключаться к мобильному интернету и поддерживает
А теперь трудности, с которыми я столкнулся, пока конфигурировал устройство.
Самое главное — маркировка SIM-карты на устройство нанесена неверно, мне пришлось карту перевернуть, так как контакты в устройстве расположены иначе, не так как на наклейке.
Первая альтернативная прошивка, которую я поставил, была версии 3a. На следующий день она начала сбоить, всё время выдавала на экран сообщение о падении
«Скайп» не поддерживает видеозвонки. Причина неизвестна. Есть замена — Fring и Oovoo, они видеозвонки поддерживают, но не в «Скайп».
Не все приложения работают. Некоторые просто падают или зависают. Но пока для всех таких приложений я находил аналоги. В оригинальной прошивке некоторые приложения поворачивают экран,
Добавлено позднее: ещё Toshiba, похоже, сломала встроенное в «Андроид» хранилище сертификатов, поэтому всё, что требует авторизации по сертификату (например, сети WiFi с сертификатами) не работает.
Ирония судьбы
Копаясь в анкетах своих друзей в «Моём круге», наткнулся на небольшой привет из прошлого — фотографию П. Р. Этот человек несколько лет назад поучал меня как мне следует обращаться с собственным зрением. Вроде как я должен начать слепнуть.
Мой аргумент был, что мне лучше знать — я к тому времени работал за компьютером около 20 лет и со зрением у меня всё хорошо, а он оперировал понятиями, которые «все знают» и которые «общеизвестны».
Так вот. На фотографии он в очках.
Михаил Восленский, «Номенклатура»
Дима Смирнов очень хорошо рассказал о книге, которую я сейчас читаю. Книгу надо прочитать обязательно!
Dolphin HD: браузер для «Андроида»

За пару лет владения телефоном на «Андроиде», я
Почему от безнадёги? Потому что браузер, который встроен в систему, хуже, чем «Опера Мобайл», но «Опера Мобайл» не понимает, что её запустили на полноэкранном устройстве с клавиатурой и мышкой (пытается подставить кучу костылей и они только мешают), а браузер FireFox Mobile (и стабильный,
И вот «Дельфин» очень хорош, особенно версия HD (для больших экранов). Правда, он всё равно не понимает, что я тыкаю мышкой, а не пальцем, поэтому в некоторых местах он менее удобен, чем можно было бы сделать.
У него есть «табы», работают «жесты» мышкой (но для этого нужно сначала ткнуть в специальную область экрана, см. левый нижний угол), удобные настройки, самое главное — браузер понимает, что его запустили на большом экране и ведёт себя соответственно, не жмётся, где не надо.
Кстати, говоря, у «Дельфина» есть встроенный speeddial, правда, без preview. Для жены эта функция необходима, ей так удобно (а смартбук для неё был куплен).
Усадьба Братцево









Две субботы назад (спасибо, Дофин и Дина) ездили в усадьбу Братцево, находящейся на реке Сходне. Вопреки тому, что усадьба находится недалеко от МКАД, шума машин и выхлопных газов почти не ощущается, может быть благодаря расположению на вершине холма.
Сохранившийся двухэтажный дом был построен в 1780 году, когда усадьбой владели Строгановы — выходцы из поморских крестьян, ставшие впоследствии графами. От усадьбы, помимо дома, сохранилась лишь беседка и потихоньку зарастающий сад, плавно перетекающий в заброшенный лесок и мутную речку.
Строгановым и прочим владельцам усадьбы можно только позавидовать, даже сейчас, несмотря на некоторый упадок и запустение, а так же
Цветы артистам
Русская аудитория делает то, чего не делает больше ни одна аудитория в мире, — приносит цветы на сцену. Классно, что эта традиция жива. И ещё есть одна вещь — может, она как раз, дай бог, уйдёт в историю:
VIP-места возле сцены.Из-за этого в партере невозможно танцевать и нет достаточного контакта с простой аудиторией.
Из журнала «Аэрофлот» за июнь 2011, страница 20, статья «В Россию с любовью» (это интервью с Рудольфом Шенкером, лидером группы «Скорпионс»).
Мне с каждым днём страшнее тут жить
Самолет компании «Аэрофлот» прибыл из Иркутска в Москву с часовой задержкой: один из пассажиров опоздал к вылету. В обычных случаях опоздавших не ждут, но в этот раз все было
по-другому. Непунктуальным пассажиром оказался губернатор области Дмитрий Мезенцев. Наземные службы аэропорта связались с экипажем и велели подождать, пока первое лицо региона поднимется на борт. Пилоты пытались сопротивляться. Записи эти переговоров стали достоянием общественности.И их действительно не выпустили. Вылет задержали до тех пор, пока Мезенцев не сел в самолет, об этом со ссылкой на очевидцев сообщает агентство Новый регион. Вся эта история произошла в среду, но в поле зрения прессы попала только сейчас.
Цитата с сайта «Эха Москвы».
Перевёл свой сайт на PHP 5.3.4
Решил поднять свои старые проекты на PHP под MacOS, чтобы на ноуте их нормально разрабатывать. В том числе, перетащил свой сайт. У меня движок сплошной эксперимент, так что используются различные тонкие вещи (например, ленивые вычисления при помощи __toString), которые в PHP 5.3 (который у меня на «Маке»)
Мелочи вспоминать не хочется, из того что запомнилось — PHP 5.3 нервно,
С веткой PHP 5.3 я почти не работал, когда эта версия стала появляться в пакетах стабильных версий систем, я уже перешёл на «Пайтон».
Нетбук на солнечной батарее
Фирма «Самсунг» объявила о выпуске нетбука NC215S, первого в мире нетбука на солнечных батареях. Обещают, что два часа пребывания на солнце обеспечивает час работы. В итоге, солнце, плюс аккумулятор должны обеспечивать до 14,5 часов непрерывной работы.
В нетбуке будет применяться процессор Интел Атом Н570 или Н455, 1ГБ памяти и дисплеем 10,1 дюймов с разрешением 1024×600 и 250 или 320ГБ жёсткого диска, вес 1,3 килограмма.
Замечательно, на мой взгляд. Надеюсь, другие производители последуют примеру.
Рисунки Tavilla

Давненько не рекомендовал комиксы. Впрочем, эти скорее парадоксальные и остроумные рисунки, чем комиксы. Наверное так должен выглядеть ЖЖ Ромы Воронежского, если бы он свои высказывания зарисовывал, а не записывал.
Рекомендую — ЖЖ Тани из Зеленограда.
Человекоподобные роботы и майор Богдамир
У Леонида Каганова в книгах есть такой персонаж — майор Хома Богдамир, отечественный супергерой с суперспособностями, которым, если правильно помню, он обязан э… родителям (удержался от спойлеров), те поколдовали над генным кодом Богдамира ещё до рождения.
Одна из суперспособностей — майор умеет пускать лазерные лучи из глаз:
Хо еще раз беспомощно моргнул веками, и вдруг понял, что надо сделать! Ведь у него было то, что он всю жизнь скрывал! То, чем он никогда еще не пользовался! Хо напрягся, и его костяные зрачки закатились. А вместо них из глазниц высунулись вперед тугие цилиндры лазерных пушек. Напряглись железы электрического ската. От страшного напряжения зажглись в глазницах алым огнем светящиеся клетки медузы. Зашевелились, фокусируя пучок, линзы, сотканные кремниевыми бактериями. И вот из глазниц ударили два лазерных луча!
Чистая фантастика, конечно.
А вчера я у «Кулера» читаю следующее:
Ученые смогли получить функционирующий лазер из живой клетки. Была использована клетка печени человека. Для этого, два исследователя из Веллмановского центра фотомедицины Главного госпиталя Массачусетса генетически создали клетку, которая производит особый зеленый флуоресцентный протеин (GFP).
Каганов, которому я кинул эту ссылку, ответил «круто» с тремя восклицательными знаками. Я его понимаю, ещё бы.
Кунг-фу панда дерево лежак конфета самолёт аптека…
Мне нравится фильм
Кстати, руководитель «Дрим воркс энимейшн» рассказал о планах снять пять или шесть фильмов про этого панду.
Айти-палочка

По пути на работу сегодня увидел — разрыта яма, в яме пробитая труба, из которой на дорогу, где ездят пафосные тачки, весело дрищет в два жерла водичка. Чтобы не замочить слуг народа, около трубы сидит на корточках специально обученный мужчина и досочкой закрывает путь стихии.
Судя по всему, уже долго сидит. А в трёх шагах от него стоит семиэтажное здание, битком набитое информационными технологиями и лучшим в стране поиском. Меня
Способ борьбы с мигалкиными
Короче говоря, с некоторых пор я с успехом применяю новую, эффективную и прогрессивную технику обращения с Синим ведерком.
Ведерко это всегда лежит у меня под рукой, на полу в салоне. И как только я слышу сзади знакомое покрякивание или повизгивание, вижу в зеркало машину БЕЗ СПЕЦИАЛЬНОЙ РАСКРАСКИ, но с сияющим синим фонарем во лбу, — реагирую немедленно.
Открываю окно и гордо воздеваю свое ведерко высоко над крышей. А в последнее время, с тех пор, как стал ездить в машине с люком, — высовываю его вверх через люк, так еще удобнее.
Действует этот прием безотказно. Еще ни разу не было случая, чтобы и сирена, и мигалка в членовозе, который уперся мне в зад, моментально не были выключены. Намек этот теперь понимает водитель любого членовоза. И подчиняются молчаливому, но решительному требованию мигалковладельцы незамедлительно.
Делится в ЖЖ Сергей Пахоменко, активист движения «Синих ведёрок» (члены которого ездят с прикреплённым к крыше синим детским ведёрком, что не запрещено правилами ПДД).
Татарстан, Лаишевский район, село Бима









В понедельник мы с женой прилетели из Казани, навестили родителей, ещё не скоро выдастся такая возможность. Планировали также поездить по окресностям Казани, но замотались и съездили в субботу только в небольшое (208 жителей на 2000 год) село Би́ма Лаи́шевского района.
Мне неизвестно происхождение названия, более того, оно
В поиске нашлось слово «בִּימָה» («бима́», с ударением на последний слог) переводится как «возвышенное место», так называется возвышение в синагоге, на котором стоит стол для чтения Торы. Правда, я почти уверен, что связи тут быть не может.
Село примечательно святым источником, в котором, по легенде, в XVII веке была найдена икона великомученицы Параскевы Пятницы, с тех пор источник носит её имя. Икона хранилась в часовне, которая была выстроена на месте находки, а после того как часовню
Несмотря ни на что, источник своего статуса не потерял. В любой день там можно встретить верующих или просто людей, набирающих холодную, чистую воду в бутыли. Источник впадает в реку Мёша, которая протекает в полукилометре, в этом месте даже в середине лета вода остаётся прохладной.
Не хочу я выключать ноут в самолёте
На борту самолёта меня раздражает правило «выключать все электронные приборы при взлёте, посадке и рулении самолёта». Особо невменяемые компании требуют, чтобы упомянутые приборы были выключены на протяжении всего полёта.
Говорят это
Если бы электронные устройства несли хоть малейшую угрозу самолёту, пассажиров давно обязали бы сдавать их в багаж.
Кроме того, если масса устройств, которые излучают, преимущественно, в видимом свете, а то и (как элекронные читалки или плееры без экрана) не делают и этого.
Ну и на последок. Многие слышали, что пару лет назад одна из авиакомпаний стала предлагать подключение к спутниковому интернету через WiFi прямо на борту самолёта. Вслед за ней подтягиваются и конкуренты. Думаете, это
Ничего подобного.
Когда одна из компаний стала разворачивать сеть WiFi внутри
Но интересно что «авиационные инженеры оказались удивлены неполадками оборудования, отметив, что уровень сигнала, используемый в потребительских
Дефект обещают устранить, а самое важное в цитате я выделил.
網站.縮.jp — японская сокращалка урлов
Согласен с ДиБРом, это реально круто выглядит. 縮.jp — японская сокращалка урлов («縮» переводится как «сокращение»). Вот, например, ссылка на мой сайт: 網站.縮.jp, а вот на эту заметку: 進入.縮.jp.
Правда я всё равно считаю, что сокращалки урлов должны умереть.
P.S. Кстати,
Тема? Оклад!
Сегодня услышал в Оружейной палате Кремля прекрасное слово «оклад», в выражении «оклад иконы». Я слышал его раньше,
Подумалось, что «темы операционной системы» (или программы), скорее не «темы», а «оклады».
На «Групоне» продают китайский пылесос втридорога?
На «Групоне» (это один из многочисленных сайтов, где продают товары и услуги со скидкой для разового привлечения клиентов), появилась акция —
Акция лично для меня очень привлекательная — я хочу
Ну с чего бы продавцу продавать технику со скидкой 65% на «Групоне», чтобы что? Привлечь покупателей, чтобы они и дальше покупали в их магазине? Но в магазине ничего больше не продаётся, а люди редко покупают потом ещё и второй пылесос, да ещё и на 65% дороже чем первый. Или что, я порекомендую магазин знакомым? Много ли у меня знакомых, готовых купить пылесос за восемь тысяч? А за 23, когда акция кончится? Ну не могут же организаторы всерьёз на это расчитывать?
Ещё меня насторожило, что пылесос этой марки мне не удалось найти в «Яндекс.Маркете», не нашёлся
Решил посмотреть что думает на эту тему всемогущий Фдд (какое я слово вспомнил!).
Оказалось я не зря подозревал неладное. За названием «Dust Robot Premium Cleaner 2011» скрывается «Intelligent robot vacuum cleaner suppliers» китайского производства, стоимостью от $45 до $120.
В данный момент (до окончания акции осталось два часа), пылесос купили уже 1327 человек и их количество быстро растёт.
На сайте «Групона» утверждается, что производитель пылесоса Германия. Мне не впервой видеть китайские реплики оригинальных товаров, но я нигде не нашёл никаких сведений о производителе «оригинального» пылесоса, да и на видео вылитый «китаец», реплики нередко отличаются в деталях (упрощением конструкции).
Добавлено позднее: всё ещё круче. Оказывается, этот пылесос пытаются продать не только в России, а по всему миру, где только есть сайты «Групона». Но что самое интересное, утверждается, что по меньшей мере один из сайтов, где продают пылесос (а именно — roboduster.de) зарегистрирован на одного
Поддержку UTF-7 уберут из браузеров?
Мало кто вообще знает, что есть такая кодировка как
Вот как выглядит «Hello! Привет, ребята!»
В общем, бесполезная штука. Эту кодировку поддерживают некоторые браузеры (например, IE или FF) и при использовании автоопределения кодировки она несёт в себе потенциальную угрозу: можно этой кодировкой закодировать
Фильтровать её трудно: плюсы, минусы, буквы, цифры, иногда
И вот WHATWG решила выпилить
User agents must not support
the CESU-8, UTF-7, BOCU-1 and SCSU encodings.
А вышедший недавно FireFox 5, уже убрал у себя поддержку этой кодировки. Туда ей и дорога!
Сокращалки урлов должны умереть
В комментариях у меня спросили почему сокращалки урлов должны умереть. Отвечаю. Потому что они наносят кучу вреда при почти полном отсутствии пользы.
99 бутылок: Go
48. Go — язык программирования, придуманный в «Гугле». Я на нём программирую, время от времени, и довольно неплохо его уже знаю. Замечательный, на мой взгляд, язык. Этакий «Си с человеческим лицом». Особенно интересно добавлено туда ООП, да и параллельные вычисления сделаны хорошо. Единственно — не нравится реализация обработки ошибок через panic/defer.
Язык статический, строгой типизации, компилируемый. Кстати, одна из особенностей языка — исключительно быстрая компиляция.
Некоторые ребята считают, что он похож на «Паскаль». Думаю это
package main
import "strconv"
func main() {
for i := 99; i>0; i-- {
b := bottles(i) + " of beer"
println(b + " on the wall, " + b + ".")
println("Take one down and pass it around, " + bottles(i-1) + " of beer on the wall.\n")
}
println("No more bottles of beer on the wall, no more bottles of beer.")
println("Go to the store and buy some more, 99 bottles of beer on the wall.")
}
func bottles(beer int) string {
switch (beer) {
case 0:
return "no bottles"
case 1:
return "1 bottle"
}
return strconv.Itoa(beer) + " bottles"
}Черновики у меня в комментариях
Мне тут хочется пару проектов на PHP доделать, а я
В том числе сделал то, что давно просили — черновики в комментариях. Работает только в современных браузерах — IE 8.0+, FF 3.5+, Safari 4.0+, Chrome 4.0+, Opera 10.5+, а так же iOS 2.0+ и Андроид 2.0+. Только такой список, так как сохранение происходит в localStorage.
localStorage — это клиентская база данных «ключ и значение», которые есть сейчас уже во всех распространённых браузерах. Преимущество хранения черновиков именно в ней — черновик сохраняется вне зависимости от того рухнул сервер или нет, ведь localStorage сохраняет данные на диске клиента.
Кстати, я делал библиотеку эмуляции localStorage для IE 6 и 7 (используется behavior userData), но у себя использовать не буду, ни к чему поощрять некрофилию.
Работает всё следующим образом (детально можно посмотреть в исходниках любой страницы с комментариями): когда пользователь делает паузу в наборе комментария, мой JS вызывает localStorage.setItem, где ключём является URL страницы плюс имя поля (у меня их три — имя пользователя, сам комментарий и кому этот комментарий был адресова).
После отправки комментария в теле полученной страницы приходят вызовы localStorage.removeItem, которые удаляют сохранённые значения.
Наконец, если страница была загружена не в результате отправки комментария, вызываются localStorage.getItem, чтобы получить сохранённые значения и подставить их в соответствующие поля.
Код, с использованием JQuery, получился вот такой:
// globalStorage — это для FF 2.0, но я не уверен, что это правда работает
var storage = window.localStorage || window.globalStorage && window.globalStorage[location.hostname] || null;
if (storage) {
var savedraft = function s() {
if (s.hnd) {
clearTimeout(s.hnd);
}
var o = $(this);
s.hnd = setTimeout(function() {
try { // если не хватит места, будет исключение
var prefix = location.pathname + '#';
storage.setItem(prefix + o.attr('name'), o.val());
storage.setItem(prefix + '?', +new Date()); // сохраняю время, возможно в будущем буду подчищать старые черновики
} catch (o) {}
}, 500);
}
// каждый элемент, который надо сохранять, имеет класс draft
$.each($('.draft'), function(_, value) {
var o = $(value),
key = location.pathname + '#' + o.attr('name'),
v = storage.getItem(key);
if (savedsuccessfully) { // внешний флаг, что черновик больше не нужен — всё сохранено на сервере
storage.removeItem(key);
} else if (v !== null) {
o.val(v);
}
o.keypress(savedraft).change(savedraft);
})
}localStorage не резиновое, у разных браузеров значения различаются, но в целом, там около 5МБ на домен, да и диск пользователя забивать жалко. Поэтому я сохраняю время записи, возможно
почемужеонинеговорятпорусски
RFC 3492 «Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA)» описывает punycode, это такой способ кодирования национальных доменов, вроде «президент.рф» или «
Так вот, в этом RFC есть примеры кодирования фраз на разных языках в punycode, есть и русский:
(I) Russian (Cyrillic):
U+043F u+043E u+0447 u+0435 u+043C u+0443 u+0436 u+0435 u+043E
u+043D u+0438 u+043D u+0435 u+0433 u+043E u+0432 u+043E u+0440
u+044F u+0442 u+043F u+043E u+0440 u+0443 u+0441 u+0441 u+043A
u+0438
Punycode: b1abfaaepdrnnbgefbaDotcwatmq2g4lА вот что там написано:
bolk-osx:~ bolk$ python -c 'print "xn--b1abfaaepdrnnbgefbaDotcwatmq2g4l".decode("idna")'
почемужеонинеговорятпорусскиJS CSS в одном файле у меня на сайте
Я
Особых трудностей не встретил, только убрал все комментарии из файлов с JavaScript руками и добавил удаление BOM из файлов, браузеры
Схема,
Вот ещё тонкость, обязательно нужно добавить новый
AddType */* .cssjsОказалось, что последний «Хром» ни в какую не хочет рендерить CSS с таким типом, пришлось заменить на «text/css,*/*» на «text/css», предыдущий вариант не работал в IE9.
Надо посмотреть как отнесётся к этому второй FF, а пока, если у вас «Хром» или IE9 и показывает неправильно, обновите, пожалуйста, страницу, чтобы она не из кеша взялась, всё должно нормально отрендериться.
Посмотрим «в поле» насколько это стабильно работает.
Walking frog fish
Мне этот ролик напоминает
Работа — резиновый шарик
Представьте себе, что жизнь — это игра, построенная на жонглировании пятью шариками.
Эти шарики — работа, семья, здоровье, друзья и душа, и вам необходимо, чтобы все они постоянно находились в воздухе.
Вскоре вы поймёте, что шарик работы сделан из резины — если вы его невзначай уроните, он подпрыгнет и вернётся обратно.
Но остальные четыре шарика, семья, здоровье, друзья и душа — стеклянные. И если вы уроните один из них, он будет непоправимо испорчен, надколот, поцарапан, серьёзно поврежден или даже полностью разбит. Он никогда не будет таким, как раньше. Вы должны осознавать это и стараться, чтобы этого не случилось.
Работайте максимально эффективно в рабочее время и уходите домой вовремя. Посвящайте необходимое время своей семье, друзьям и полноценному отдыху.
Ценность ценна только если её ЦЕНЯТ.
Брайан Дайсон
Google Go vs. Си
Ребята на работе
Я подключился и написал пример на Google Go:
package main
import "fmt"
func main() {
x := []int{2}
for i := 3; i < 200000; i += 2 {
simple := true
for _, j := range x {
if i % j == 0 {
simple = false
break
}
}
if simple {
x = append(x, i)
}
}
fmt.Println(x)
}Запускалось всё
Python — 25,95 секунды Perl — 22,96 секунды PHP — 21 секунда Objective C — 9,40 секунды JavaScript (V8) — 4,73 секунды Java — 1,94 секунды Си — 0.95 секунды Google Go — 0,71 секунды.
Особенно меня поразили «Гоу» и JavaScript.
Арсентьич

Хорошим ты был мужиком, Арсентьич, да вот, затянуло в мясорубку.
Лада на улицах Владивостока
Joby Gorillapod SLR-ZOOM

У меня же список желаний есть, там всё непрактичное,
Спасибо!
Теперь ситуаций «ну не могу я снять, тут нужна выдержка полминуты, а я не робот держать столько фотоаппарат ровно» будет меньше. Самое крутое, что есть в этом штативе, что он не просто даёт поставить фотоаппарат
«Почему папа даёт 700 рублей в день»

Яндексу подчас задают очень странные вопросы.
Torschlusspanik
«Лента.ру» пишет:
Новая редакция документа, подготовленная после вмешательства президента, позволяет госкомпаниям не сообщать о тендерах менее чем на 500 тысяч рублей, а также имеющих отношение не только к государственной, но и к коммерческой тайне.
При этом компании смогут сами решать, что такое коммерческая тайна. Долгосрочных планов закупок публиковать не надо — только однолетние.
Кроме того, из документа исчез пункт о праве правительства обязать госкомпании проводить аукционы, а обжаловать результаты торгов госкомпаний можно будет только в суде.
Это
Текстовые ссылки в графике

Читая последнюю, на настоящий момент, статью в Ководстве Лебедева «Правила оформления ссылок» обратил внимание, что Студия в этом месте, вроде как, не всегда следует своим же советам.
В правом верхнем углу располагается логотип Студии, являющийся ссылкой, где текстом написано «Студия Артемия Лебедева». Я понимаю, что это картинка, но простой пользователь этого не поймёт, да и какая разница — текст есть текст, прорендерен ли он заранее в графике или это сделала операционная система позже.
Написал письмо Артемию, посмотрим что ответит.
Технических трудностей, между тем, в подчёркивании таких ссылок никаких — прочертил линию в графике и всё, ссылка подчёркнута. Другое дело в подствечивании при наведении, кажется что это невозможно. Но это только на первый взгляд. Я уже демонстировал (неоднократно), что это делается очень просто.
Такие опыты я производил четыре года назад, так даже постоянные читатели вряд ли помнят. В GIF или PNG под ссылкой «прорезается» (прочерчивается прозрачным) полоска, которая будет имитировать наше подчёркивание. Картинке в CSS ставится фон ссылки (например, синий), при наведении фон меняется, схематически:
img {
background: blue;
}
img:hover, img:visited {
background: red;
}«Самая первая помощь: 10 опасных заблуждений»
Наткнулся на очень полезную статью «Самая первая помощь: 10 опасных заблуждений» на «МедПортале». Про то нужно ли разжимать зубы эпилептику в припадке, надо ли стучать по спине, если человек подавился, нужно ли пить раствор марганцовки для очистки желудка, нужно ли растирать уши на морозе и многое другое.
ГОСТ 11261-75
Внезапно узнал, что существует «ГОСТ
Подготовлен к уверждению Всесоюзным
Шкурки меховой домашней кошки характеризуются густым волосяным покровом с частой упругой блестящей остью и густым пухом…
Площадь шкурки определяют умножением результатов измерений её длины от середины междуглазья до корня хвоста на ширину посередине шкурки…
Шкурки поставляют партиями. Партией считают количество шкурок, сдаваемых одновременно и оформленных одним документом о приёмке.
Кажется, я нашёл дипломную работу Капитана Очевидность. И ещё, у него нет сердца!
Часы без JavaScript
Сделал крошечные аналоговые часы, которые работают без JavaScript. Кто первый догадается как они работают, тот молодец.
Правда я их ускорил в 60 раз (а то очень уж скучно смотреть), поэтому это скорее секундомер, но стартуют они с текущего времени.
Часы без JavaScript: фильм о фильме
Как уже догадались все, кому это было хоть каплю интересно, часы без JavaScript сделаны анимированным GIF. Сделал я всё очень просто: скачал найденный

Оказалось, что проще всего сгенерировать картинки при помощи Go. В Пайтоне на «Маке» у меня нет PIL и я его плохо знаю, во встроенном PHP нет поддержки TTF, так что Go:
package main
import "gd"
import "os"
import "fmt"
func main() {
im := gd.CreateTrueColor(21, 21)
white := im.ColorAllocate(255, 255, 255)
black := im.ColorAllocate(0, 0, 0)
// стрелки: 64 → 123 (m) и 192 → 251 (h)
defer im.Destroy()
for i := 0; i < 720; i++ {
im.FilledRectangle(0, 0, 20, 20, white)
min := i % 60
hour := (i / 60) * 5 + min / 12
im.StringFT(black, "./clock.ttf", 10, 0, 0, 16, "1")
im.StringFT(black, "./clock.ttf", 10, 0, 0, 16, string(hour + 192))
im.StringFT(black, "./clock.ttf", 10, 0, 0, 16, string(min + 64))
name := fmt.Sprintf("gifs/%02d%02d.gif", i/60, i%60)
im.Gif(name)
}
}После запуска получилось 720 картинок с ноль часов ноль минут до 11:59 (я не зря выбрал часы со стрелками, это позволило сократить размер анимированных часов вдвое).
Когда на сервер приходит запрос, я проверяю сколько сейчас времени и, если файл с часами для текущей минуты уже существует, то делаю редирект на существующую картинку. Если нет, то генерирую из 720 картинок новый «мультик», кладу его на диск и делаю редирект на него (остальные картинки удаляю):
<?
include "clock.inc.php";
list($h, $m) = explode(':', date('H:i'));
if ($h > 12) $h -= 12;
$name = sprintf("%02d%02d.gif", $h, $m);
if (!file_exists($name)) {
@array_map('unlink', glob('*.gif'));
$frames_tail = $frames = $framed = array();
$frames_name = 'frames_tail';
for ($H = 0; $H<12; $H++) {
for ($M = 0; $M<60; $M++) {
if ($h == $H && $m == $M) {
$frames_name = 'frames';
}
${$frames_name}[] = sprintf("gifs/%02d%02d.gif", $H, $M);
$framed[] = 100;
}
}
$frames = array_merge($frames, $frames_tail);
$gif = new GIFAnimator($frames, $framed, 0, 2, -1, -1, -1, 'url');
fwrite(fopen($name, 'wb'), $gif->GetAnimation());
}
header("Location: $name");Для генерации анимированных GIF применяется
Re: Господи, неужели это произошло с моим мальчиком?
Помните статью «Господи, неужели это произошло с моим мальчиком?» в которой одна жижистка обвиняет сотрудников и медицинскую службу «Шереметьева» в бездействии, когда руку её ребёнка сломала дверь лифта?
История, конечно ужасная, но не всё так просто. В «Шереметьеве» начали расследование этого случая и уже есть результаты, есть видеозапись с камеры наблюдения и полная хронология событий. Почитайте, посмотрите видео.
Рабочая задача: карта + объекты
Ничего экстраординарного, просто задача по работе попалась.
Дана карта местности (картинка), на неё нанесено большое количество объектов, несколько тысяч. В каждый объект можно тыцнуть мышкой, карта большая, её надо позволять «таскать» мышкой.
Текущее решение тормозит, а надо сделать так, чтобы не тормозило.
У меня была гипотеза, что если нарисовать всё это дело на большущем CANVAS, выходящем за пределы экрана и позволить его таскать мышкой, то тормозит не будет.

При клике происходит поиск объекта по списку (безо всякой оптимизации пока), если объект найден, то выводит информацию по цвету, если зажать кнопку мыши, срабатывает флаг «пользователь желает тащить», если пошевелить в этот момент мышью, координаты CANVAS будут меняться вслед за мышью.
Вроде не тормозит, хороший способ делать карты. Делюсь, вдруг пригодится кому.
Комьют — время для чтения
Илья переживает за «комьют» (commute).
«Комьют», согласно словарю, это время на езду из пригорода на работу в город.
Всего на дорогу трачу меньше двух часов. В лучшем случае, в одну сторону, от двери до двери дорога занимает 40 минут.
Илья сокрушается, что время это тратится бесполезно. Правильно сокрушается,
Сегодня, например, я с утра эксперементировал с SSE (Server Side Events), чтобы решить, пригодны ли они в одном внутреннем проекта «Яндекса», где критична быстрая реакция сервиса или нет.
А сейчас я собираюсь на работу.
Кстати, для меня «комьют» бесполезной тратой времени не является. У Илья есть новая машина, а у меня есть старое метро. Метро — единственное место, где я читаю книги. Редко бывает, что я читаю книгу ещё и дома. Бо́льшую часть того, что я прочитал, я прочитал в общественном транспорте. Если вдруг законы физики изменятся и заработает
Мне всё время работать дома просто не нравится, мне проще, когда я вижу человека «в объёме». Илья знает как я неохотно пользовался скайпом раньше и как охотно встречаюсь вживую, если есть возможность.
При этом необходимости постоянно торчать в офисе у меня нет. Возможно, я вообще не приходил бы в офис, если бы вместо одной из стен комнаты у меня был бы большой видеоэкран. Я бы поставил к нему стол, на стол ноутбук. Когда мне нужно было бы «выйти в офис», я бы одевался, садился за стол, открывал ноутбук, а большой экран отображал бы виртуальный офис с объёмом (в 3D), где за своими столами, не выходя из дома, сидели мои коллеги.
Можно даже «сесть поближе», достаточно изменить виртуальную планировку, так, что человек окажется, вроде как, в расстоянии вытянутой руки. Мечты, да.
А пока поеду я в офис, выберу какую из трёх книг я
Дверь в небо

Снято в Москве, недалеко от улицы Льва Толстого, точнее не помню.
Лечить vs. предупреждать
Некоторые граждане неверно употребляют поговорку «лучше предупредить болезнь, чем её лечить». Им кажется, что это некое противопоставление. Вроде как рекомендуется сконцентрироваться на предупреждении болезни и вообще забыть про лечение. Вроде как в таких условиях
На самом деле, это просто несбыточная мечта, идеал, вроде безбедной старости. Жизнь куда богаче, конечно, есть масса случаев, когда тебе приходится лечить то, что запустил
«Не самый здоровый режим, но здоровье не моя юрисдикция, как меня уберечь, пусть парятся: минздрав,
Так что противопоставление «лечить versus предупреждать» звучит примерно как «лучше выспаться, чем поесть». Болеешь — лечись, не болеешь — предупреждайся.
Ох…
Шёл от метро, навстречу девочка лет шести, кружащаяся зелёным платьем в горошек вокруг отстранённой мамаши в танце радостных маленьких девочек. Девочка напевает
У меня сердце встало…
