Сборка Far 1.80alpha1
Появилась свежая сборка Far 1.80alpha1 (build 576), на этот раз — с плагинами.
Михаил Леонтьев. Большая Американская Дырка
Если ещё не смотрели передачу Леонтьева о кризисе, обязательно посмотрите, жить захочется.
Blok: akyn
Шаблонизатор называется (у Бирмана каждая строчка кода носит
Мы проспали экологическую катастрофу
Читаю Каганова, отзывы на фильмы «Валли» и «Кунфу Панда»:
Не бyдем гoвoрить o том, что сaмa идея — oтзвук журнaлиcтскoй истeрики пpoшлогo вeкa, кoгдa были в осoбой моде вoпли нa темy, что, мол, в 21 векe люди в гoрoдах будyт xодить в мacкaх oт нeдостaтка кислopодa, а лeсa и pеки yмрут от зaгpязнений. Ho нacтyпил 21 век, объемы пpoмышленнocти и размeры гоpoдов выpосли, a экoлогическая кaтаcтpoфа волшeбным обpaзом не наcтyпилa.
Вы знаете, мы с женой на пару дней съездили более чем на 1000 км от Москвы, в Лениногорск, вот там экологическая катастрофа не наступила. Чистый воздух, масса деревьев (и сажают новые!), голубая, прозрачная вода в озёрах
По возвращении в Москву, первые несколько часов задыхаешься, а вода в ванне кажется жёлтой, потом, ничего, привыкаешь. Казань (мы проездом через Казань ездили) вообще кажется лысенькой, что сами казанцы объясняют тем, что вся мэрия из деревень, для них деревья «по деревенски», «несолидно», вот и вырубили почти всё.
Так что в Москве (где и живёт Каганов) экологическая катастрофа наступила, просто её не заметили.
Yota: тестирование
Наконец сегодня получил оборудование для тестирования первого мобильного WiMAX в России. Обещали выдать ещё до праздников, но я улетал в Казань и не смог подойти. Факты, которые уже сейчас очевидны:
Скорость и покрытие. Покрыта пока далеко не вся Москва, но Yota (провайдер) трудятся над этим. Скорость в районе офиса «Яндекса» (м. Таганская) и офиса Yota (м. Красносельская) по моим замерам на скачивание достигает 2,5 мегабит (но иногда бывают пики в 6 мегабит), на закачку — до 1,7 мегабит. Это по стандартам WiMAX немного, видимо, покрытие в этих районах недостаточное.
Стоимость.
Драйвера. Пока драйвера (кстати, грузятся прямо с модема, который распознаётся как флешка) есть только под Windows, представитель Yota сказала, что неофициальные драйвера для Mac и Linux уже есть, официальные будут к концу года. На презентации три человека (два с MacBook Pro, один с MacBook Air) сумели подключить устройство к «Маку», через Windows, которая стояла в Vmware.
Дополнение: дома (район м. Войковская, около МАИ) Yota WiMAX недоступна.
«Беседы с ментами»
Увидел у Лёни Каганова интересную статью «Беседы с ментами». Вкратце суть такова: Леонид со знакомым юристом Александром Железниковым ходили по Москве и «подозрительно» себя вели, к ним подходили милиционеры…
— Это прoсьбa или тpeбoвание? — yточнил Aлeксандр.
— Кaкая pазницa, c вaми cотpyдник милиции гoворит!
— Pазницa сyщecтвенная. Coтрyдник милиции мoжет обpaщаться к грaжданинy либо с просьбой, либo с тpебованиeм. Прoсьбы гpaждaнин выпoлнять нe обязaн. А трeбoвaниям должeн пoдчинитьcя. Покaзaть содeржимоe кaрмaнoв — пpocьбa, пoскoлькy нe cyщeствуeт тaкой пpоцессуaльной ноpмы, кaк дoсмoтр нa улицe без двух пoнятых и протокола. Taкую пpоcьбу мы выпoлнять откaзывaeмся. В cмыcле, кармaны не пoкaжeм.
—
Давaйтe-ка быcтро в машину, прoедeм в отдeлениe! — привычнo peшили милиционepы.— В oтделение! — охoтнo pасcказывaл Aлeксaндр, пoка мы шли к мaшине, — в пoмещениe, кудa нет доступа лицaм, не имeющим отношения к этомy пpoцесcуaльнoму дейcтвию. Вы ceйчac произвeли aдминиcтpaтивноe задеpжaние. Пpoизвeдeм доcмотp кapмaнов в oтдeлении в приcутствии двyх пoнятыx oдного c нaми пола и под cоoтветcтвyющий пpотокoл дoсмотрa. Beщи при этом мы попрoсим oсматривaть в нaшем пpисутcтвии, и в cторoну их нe нoсить. Кcтати, а где жe нaша пачечкa? — вдрyг вспомнил он.
В общем, почитайте, очень весело.
Руководитель группы
Поздравьте, с сегодняшнего дня я руководитель группы разработки внутренних сервисов в «Яндексе».
Мы — пара

Поздравьте ещё раз. Наше с женой фото победило
WebKit == IE8?
Как сегодня пишет AppleInsider, глава компании Microsoft Стив Балмер не отрицает возможности использования движка для рендеринга
веб-страниц WebKit в одной из следующих версий браузера Internet Explorer.
Цитата из статьи на Macspoon. OMFG!
Что делать, если сгорела техника от скачка напряжения
Сначала пишешь официальное письмо в ЖЭК с описанием когда и что было и что у тебя
из-за этого накрылось. Лучше прийти самому туда, в канцелярии на копии письма поставить отметку что оно принято и дату принятия. Если это возможно добраться до инженера, сообщить что произошло и обрадавать его тем, что подашь в суд. Затем ждешь ответа. Ответ должен быть обязательно в установленные законом сроки (1 месяц вроде, точно не помню).Параллельно несешь погоревшую технику
в сервис-центр, ремонтируешь ее, обязательно собираешь все чеки, и просишь заключение от мастера о причинах поломки техники. Когда получаешь ответ (напишут какую нибудьбла-бла-бла), готовишь исковое заявление к мировому судье по месту нахождения ответчика (точную форму заявления найди в интернете, должна быть), где указаываешь причины происшествия, прикладываешь свое письмо в ЖЭУ, их ответ, заключения мастера, чеки и просишь возместить средства затраченные на ремонт техники. Тебе назначают время, вызывают телеграммой, ты приходишь. Обычно та сторона не приходит вообще. Тебе присуждают победу, берешь постановление суда и топаешь к приставам. Я договорился таким образом, что мне зачли эту сумму в счет квартплаты. Вот и все. Ничего сложного, только муторно :)
Новое издание старой шутки?

Кажется Каганов решил повторить мою шутку
Yota: результаты тестов
Потестировал я в выходные сеть WiMAX от «Йоты». Пока покрыто даже далеко не всё Садовое, я сходу нашёл несколько точек, где сети не видно. Внутри помещений сеть видно очень редко. Я надеюсь с ростом количества точек все эти проблемы пропадут, но пока тем что есть пользоваться сложно.
Akyn: синтаксис (переменные)
Как я уже писал, несколько дней назад я заменил шаблонизатор на своём сайте на новый. Вы просили, чтобы я рассказал как он устроен, я постараюсь. Сразу, едином наскоком у меня это сделать не получилось, поэтому я решил попробовать сделать это по частям. Начну с синтаксиса. Сразу скажу, что в будущем мне хотелось бы
Идея, которую я считаю хорошей несколько последних лет — шаблон должен содержать минимум логики и весь HTML должен содержаться в шаблонах. Тут она одна из центральных.
Шаблонизатор работает с файлами (у меня на сайте всё работает на файлах), в простейшем случае файл содержит одни шаблон, в более сложном — несколько секций шаблона. Секции записываются между двумя тегами комментария с именем секции внутри (обратите внимание на закрывающий тег):
<!--имя секции-->
HTML-код секции
<!--/имя секции-->Самое простое, что есть в шаблоне — переменные. Они записываются как {$name}. Переменная уникальна в своей секции или шаблоне (если шаблон без секций). Установить переменную можно присвоив шаблону свойство с её именем. У меня открытие шаблона сделано в глобальном toolkit и всё описанное выглядит вот так:
$t = rt::t('menu', 'меню сверху');
$t->link = '/';
echo $t;В данном примере в секции «меню сверху» шаблона «menu» переменной link я присвоил значение ’/’. Шаблон выполнится при любом преобразовании объекта в string (например, когда я сделаю echo). Если переменной присвоить null, то атрибут тега, в котором она находится пропадёт. А если переменная входит в тег, то удалится сам тег. В следующем шаблоне, если я присвою переменной «hide» null, пропадёт тег «b» и атрибут title тега «a»:
<a href="/" title="{$hide}"><{$hide}b>текст<{$hide}/b>Минимальная логика, которая есть в шаблоне на данный момент — возможность подстановки значения переменных из списка и отрицание переменной. Выглядит это вот так: {$var?value1?value2?value3}, значений valueN может быть сколько угодно, нумерация начинается с нуля, значения выбираются по номеру (для тех кто в теме — и по модулю длины выбираемой последовательности). Пустое значение считается
Частный случай такой конструкции — конструкция {$!var}, которая на значение эквивалентное false вернёт пусто (не null), а на значение эквивалентное true — null.
Эта условная конструкция полезна шаблону тем, что позволяет сосредоточить максимум данных о шаблоне в самом шаблоне, например, в циклических конструкциях туда можно поместить имена стилей, которые должны применяться. Отрицание полезно в случаях подобных этому:
<{$hide}b><{$!hide}i>Текст<{$!hide>/i><{$hide}/b>тут, в зависимости от состояния переменной hide, появится либо тег «b», либо «i».
Переменные подставляются в момент выполнения шаблона, так что иметь значение будет последнее выставленное значение.
В следующий раз я рассмотрю циклическую конструкцию, конструкцию управления видимостью блока, а после этого — API и выложу исходный код.
HTC MAX 4G
Посетил презентацию HTC MAX 4G (трансляция продолжается до сих пор), покрутил устройство в руках.

Очень приятное устройство, честные 800x480, хорошая цветность, мощный процессор, хорошие приложения. Для всего
В чём это устройство действительно является первым — это в поддержке WiMAX, т. е. прямо из телефона доступен интернет со скоростью до 10 мегабит (!), видеозвонки, VoIP и прочее поднимаются на новый уровень.
Другие характеристики: частота процессора примерно на 100 МГц меньше, чем у моего устройства (около 520), зато больше RAM — 256 мегабайт (у меня — 128). Камера, мне сказали, 3.2 мегапикселя, без вспышки, снимает, увы, отвратительно.
Минус — устройство ощутимо подтормаживает, сотрудники сказали, что это не последняя прошивка, так что может
7 лет сайту
11 ноября
Коан от Болка
Ученик пришёл к учителю и спросил: — У меня есть кот, мастер, скажите, какого он цвета? — Синего, — не задумываясь, ответил учитель.
Асоциальное поведение: кол за фото
Такая история: на сайте «Одноклассники.ру» вскрыли аккаунт автора цитируемого поста, это там не редкость, только я знаю четверых, у кого аккаунт «увели» (что наводит на размышления). Завладевший аккаунтом начал ставить
ты чего то попутал с оценкой?
Ты где находишься щас?????????????????
слышь пидор гнойнй если я тебя когда нибудь встречу на районе те пиздец с Казаком не шутят!!!подумаешь в следуюший раз!!!тварь,,,,,,,,
ты чё такой убогий?
Ты мне испортил оценку за что я не знаю!!! я в ответ ты извени!!! конечвно!!!!но я человек отвыкший от ужастного обращения к себе
ЧТО ПОБУДИЛО ВАС ВЫСТАЛЯТЬ МНЕ КОЛЫ? СТОЛЬ ЮННЫЙ ВОЗРАСТ ???
ах ты мерзкий фашиствующий ублюдок!!!да как ты посмел поставить моей фотки еденицу!!!да я твоё шдп знаеш где вертел)))ну всё!!будь аккуратней выходя из подъезда и оборачивайся на улицах!!!
Ну и так далее в том же духе. В основном — угрозы, мат, интересно: многие считают это хамством, т. е. асоциальным поведением. Ещё интереснее другое — насколько ценна каждая оценка фотографии людям, причём пятьдесят пятёрок не перевешивают один кол. Их самооценку так легко уронить.
«Минитаг»

У Кулера увидел ссылку. Один любопытствующий товарищ разобрал «медицинский» прибор «Минитаг». Как и следовало ожидать, медицинского в нём оказалось не больше, чем в бельевой прищепке:
Технически прибор «Минитаг» устроен следующим образом: блок питания понижает сетевое напряжение с 220v до 20v, без выпрямления, газоразрядная неоновая лампа питается через повышающий умножитель, причем ее яркость модулируется с периодичностью 15..20 секунд по сигналу
от PIC-контроллера. […]С технической точки зрения, прибор «Минитаг» эквивалентен обычной неоновой лампочке, вроде тех, что применяется в подсветке бытовых выключателей.
Копроэкономика
В середине XX века человечество столкнулось с множеством проблем.
Во-первых, на горизонте замаячили перенаселение, нехватка ресурсов и третья мировая война.Во-вторых, рыбалка стала ни к черту. Кроме того, производственные мощности наращивались слишком быстро. Если вы производите сто автомобилей в минуту, и они не ломаются еще десять лет, то уже через год вы со своим заводом идете нахуй, и вам обидно.История не сохранила имени человека, которому впервые в голову пришла светлая мысль производить не автомобили, а говно. Но мы, конечно, можем представить, что поначалу его идеи воспринимались в штыки.
Альтернативное прекрасное в журнале 2k: «Копроэкономика. Краткое введение в экономику говна».
Position: fixed и IE
Но то, что в этом режиме простое обращение к document.body.filters волшебным образом прекращает дрожание (как
background-position:fixed в рецепте от студии Лебедева) — похоже, открытие. Больше того, по моим наскоро проведенным опытам, аналогичный эффект дает и такая бессмысленная (как и вышеприведенный скрипт!) запись в CSS:body { _filter: true; }
Способ
Забытый тег: KEYGEN
Реализация парсеров HTML различных браузеров содержит массу забытых тегов, о существовании которых помнят единицы, да и тем уже незачем их использовать. Один из таких тегов — KEYGEN, придуман, если не ошибаюсь, компанией Netscape для своего браузера (ещё до того как Netscape стал использовать Mozilla), содержит два атрибута — name и challenge и используется в составе форм (FORM).
Под Windows тег поддерживается всеми основными браузерами (с разным успехом) и не поддерживается альтернативным (вплоть по версии 8.0 beta2). В настоящий момент тег почти не используется. Прошло много лет и члены комитета WHATWG (основное детище который — куча браузеров и стандарт HTML5) вспомнили об этом теге.
Использование вкратце:
<form>
<keygen name="pubkey" challenge="случайная строка">
<input type="submit" value="Сгенерировать">
</form>Если ваш браузер поддерживает тег KEYGEN, вы увидите список из нескольких элементов, содержимое его зависит от браузера, но сводится к одному — длине ключа. При нажатии на кпопку отправки формы браузер сгенерирует пару ключей, публичный ключ (в формате SPKAC) будет отправлен на сервер (в поле, указанном в атрибуте «name» тега).
Сервер, получив сертификат, готовит специальный файл подписывает его и отсылает назад браузеру с заголовоком
После чего
Плагины Thunderbird
Два дня писал плагин к Thunderbird (почтовый клиент на Gecko), получил level up. Документация скудная, разбросана по куче сайтов, часто приходится читать
Не то, чтобы я сходу сейчас напишу любой плагин, но знаю как всё устроено, умею биндить пункты меню, обращаться к заголовкам (в т.ч. нестандартным), обращаться с панелью письма и умею делать ещё дюжину разных трюков. Не дошли пока руки разобраться с довольно простой вещью — как делать локализацию. Кажется всё достаточно просто, но пока не взлетело.
Настоящее название города Бангкок
Полное официальное название города Крун Тхеп
กรุงเทพมหานคร อมรรัตนโกสินทร์ มหินทรายุธยามหาดิลก ภพนพรัตน์ ราชธานีบุรีรมย์ อุดมราชนิเวศน์ มหาสถาน อมรพิมาน อวตารสถิต สักกะทัตติยะ วิษณุกรรมประสิทธิ์ или
Крун Тхеп Маханакхон Амон Раттанакосин Махинтараюттхая Махадилок Пхоп Ноппарат Ратчатани Буриром Удомратчанивет Махасатан Амон Пиман Аватан Сатит Саккатхаттийя Витсанукам Прасит —
что значит «город ангелов, великий город, город — вечное сокровище, неприступный город бога Индры, величественная столица мира, одарённая девятью драгоценными камнями, счастливый город, полный изобилия грандиозный Королевский Дворец, напоминающий божественную обитель, где царствует перевоплощённый бог, город подаренный Индрой и построенный Вишнукарном»
Говорит нам википедия про Оливковую деревню (так переводится Бангкок).
Blok и комментарии: часть IV
Взята последняя высота: теперь я беру юзерпики в том числе и из микроформата hCard, в итоге мой движок в комментариях понимает:
Акын: блоки
Я тут, если помните, принялся описывать свой шаблонизатор «Акын», многие просили. Сейчас попробую продолжить. Итак, часть вторая: блоки.
Частые паттерны — скрыть целый блок разметки или повторить его несколько раз, решается в «Акыне» одной конструкцией: описанием блока. Что именно будет происходить с блоком, шаблон «не знает». Блок идентифицируется своим именем и описывается следующим образом:
<:имя>
Значение переменной: <b>{$var}</b><br />
</:имя>В API шаблонизатора есть два
Пусть блок, описанный выше, нужно повторить три раза, заменяя «var» каждый раз на определённый текст, вот как это выглядит в коде:
$t = rt::t('template');
for ($i = 0; $i<3; $i++) {
$t->var = $i;
$t->iterate('имя');
}
echo $t;Чтобы просто показать содержимое этого блока можно вызвать
В предыдущей части я забыл упонянуть ещё одну важную конструкцию, позволяющую включать один шаблон в другой. Выглядит она, на мой взгляд, очень логично:
<$+шаблон>
<$+шаблон секция>Конструкция предпроцессорная (обрабатывается первым проходом), т. е. все блоки, переменные и прочее будут включены в шаблон из которого она вызвана.
В следующий раз опишу actions, а так же дальнейшие планы. На этом описательная часть закончится, если по этой части не потребуются разъяснения.
«Обычное PHP-приложение»
Читаю Django Book (книга
In contrast, other Web development platforms couple the URL to the program. In typical PHP (https://www.php.net//) applications, for example, the URL of your application is designated by where you place the code on your filesystem.
Может мне
В итоге «обычные» (т. е. «встречающееся чаще других»)
P.S. ещё лингвисизм по отношению к PHP из той же книги:
If you’re experienced in another Web development platform, such as PHP or Java, you may be thinking, “Hey, let’s use a query string parameter!”, something like /time/plus?hours=3, in which the hours would be designated by the hours parameter in the URL’s query string (the part after the ?).
Легенда об ассемблере
Я смотрю об ассемблере (вероятно речь идёт про ассемблер для Intel x86) легенды слагают:
Наиболее продвинутые ассемблеры содержали такие фишки, как имитация стека и вызова функций, а наиболее продвинутые программисты умели этими фишками пользоваться.
Стек в ассемблере есть — команды PUSH/POP, вызов функции — CALL, возврат — разнообразные RET. Никакой имитации.
Однако, ассемблер был низкоуровневым языком: в нем отсутствовали даже такие элементарные команды, как умножение и деление, которые разработчикам приходилось описывать вручную с помощью низкоуровневых команд.
Умножение и деление: MUL и DIV (есть ещё IMUL и IDIV), умножать и делить можно
Поэтому, на смену ассемблеру пришли языки высокого уровня. Ассемблер при этом физически никуда не делся — все программы на высокоуровневых языках компилируются во все тот же ассемблерный код. В уродский неэффективный ассемблерный код.
Не поэтому, почему — отдельный вопрос, но вовсе не потому, что было мало ассемблерных библиотек для реализации
Church Encoding in Python
Вывихнул себе мозг статьёй «Church Encoding in Python», теперь смотрю на Пайтон под новым углом.
С Днём рождения!

Жена, поздравляю тебя с Днём рождения и дарю вот этого цветочного мишку! Я тебя очень люблю, родная!
Шутка
Придумал шутку: «top10 робких».
JavaScript: преобразование в integer
Читая исходники плагина autocomplete для jQuery (документация описывает не всю функциональность плагина), нашёл замечательный небольшой паттерн. Обычный короткий способ преобразовать объект другого типа в число — прибавить к нему ноль или умножить на 1. Но есть способ лучше, оцените:
var extraParams = {
timestamp: +new Date()
}Просто добавляем знак перед объектом. Просто и изящно.
Русские — нацменьшинство в 30 регионах России
Во время обсуждения выяснилось, что русские сами уже стали нацменьшинством почти в 30 субъектах федерации. Кроме того, с января по сентябрь население России сократилось на 116 тысяч и составило 142 млн человек. Поэтому без притока иностранной рабочей силы государству дальше развиваться невозможно. Об этом в четверг заявил замминистра внутренних дел Евгений Школов
Пишет газета «Газета». Парадокс, конечно, чисто умозрительный. Ну, типа, раз Россия, значит русские. На деле «русские» такая смесь народов и народностей, что национальность «русские» — фикция.
«Минитаг-2»: империя наносит ответный удар
Сайт, посвящённый разоблачению устройства «Минитаг», о котором я писал, закрыт, вот цитата из комментария к моей заметке от самого автора сайта:
Насчет же поведения ЗАО «Лидо» в отношении моей странички — после ознакомления с их заявой у меня сложилось впечатление, что имею дело
не с учеными-исследователями, а с бригадой братков, в свое время крышевавшихся под красным. Повторюсь и здесь: На мой взгляд, фирма, производящая настоящую и честную медтехнику, не будет так реагировать на подобные публикации.
Целиком цитируемый текст можно увидеть в комментариях к моей заметке об упомянутом сайте.
Там же есть адреса зеркал сайта, на которых (блок в конце) можно увидеть скан письма, которое отправило ЗАО «Лидо» на хостинг «Народ.Ру», где размещалась первая версия сайта.
Интересно всё закручивается…