Пятница, 5 Октябрь 2007
Лисп — усилитель
«Lisp есть могучий усилитель мыслей, и тем, у кого мысли, как правило, отсутствуют, он ничем не поможет»
«Lisp есть могучий усилитель мыслей, и тем, у кого мысли, как правило, отсутствуют, он ничем не поможет»
По интернету гуляет много разных рецептов как выставить русский язык в emacs, да так, что бы он оставался в utf8. Все они, в основном, базируются на идеи установить окружение (environment) в UTF-8, установки всяких coding-system в mule-utf-8. В целом все это хорошо, но, все‑таки, ставить окружение в UTF-8 не совсем корректно (как минимум у нас tutorial становится английским) ☺. Что бы этого избежать можно сделать свое окружение используя set-language-info.
Если делать его не хочется, можно взять мое — git://catap.ru/emacs/russian-utf8-env.git. Использовать просто, положить файл (он там один) куда‑то где найдет его emacs и добавить в ваш .emacs следующие строчки:
(require 'russian-utf8-env)
(set-language-environment "Russian UTF-8")
Не могу не поделиться десятым правилом Гринспуна и следствием Морриса из него (только что для себя открыл):
„Любая большая система на C или Fortran содержит медленную, плохо продуманную, с кучей ошибок реализацию половины Common Lisp.“
„…включая сам Common Lisp.“
На сайте LOR была обноружена новость о том что кто-то написал бота для jabber — abber-shell. Идея бота, на самом деле, достаточно интересна, но вот его реализация повергла в ужас. Не долго думая было принято решение все переписать нафиг(=отрефакторить). Результат этого решения общественность может забрать по следующему URI: http://catap.ru/repos/jabber/jabber-shell.git
Сегодня я получил ответ на письмо призеденту, в котором лаконично отмечалось, что запрошенной информации администрация призидента не обладает. Что интересно, ответ был послан 19 числа. Пока беру таймаут на обдумывание что делать и как писать.
Вчера купили Microsoft Natural Ergonomic 4000. Куча кнопок и огромная красная коробка. Основные кнопки (с буквами) на домашнем Debian GNU/Linux заработали сразу после подключение клавиатуры, всякие дополнительные кнопки еще не пробовал, «zoom» хочется заменить на TrackBall™/TrackPoint™ (второе мне, лично, удобнее), ибо толку от него, кроме как от скорлинга нет, а с TrackBall™/TrackPoint™ эта клава бы стала идеальной, и не нужна была бы жутко-не-удобная мышь, и не надо было бы руки снимать с нее…
Все выпускают новые клавиатуры. Добавляют кнопки для регулировки звука, быстрого запуска каких-то приложений (хотя у нас простаивает куча кнопок с модификаторами), и никто еще не выпустил клавиатуры с TrackBall™/TrackPoint™. Нет про несколько вариантов от IBM я в курсе, но мне они как-то не по душе, вот бы воткнуть это чудо в данный продукт или Kinesis Advantage™ Pro.
Прочитав результаты голосования по вопросу принятия OOXML как ISO стандарта был удивлен (хотя, ожидал такого расклада, но верил во что‑то лучшее) результатом России: «за, без комментариев». Грустно стало настолько, что решил проявить свою т.н. «гражданскую позицию» и написал письмо президенту России (через сайт Кремль.ру). Текст его указан ниже, ответ, если такой последует, выложу здесь же.
Добрый день!
Я только что получил ссылку на результаты голосования по стандарту OOXML: http://www.noooxml.org/ballotresults Наша страна проголосовала ЗА без комментариев.
Из открытых источников я выяснил, что данное решение скорее всего принималось в рамках: ПК130 Открытый электронный обмен данными: ЦИТиС 123557, Москва, Пресненский вал, 17 (Источник: www.gost.ru).
Не могли бы вы подтвердить или опровергнуть эту информацию?
Кроме того, я хотел бы получить копию заключения или протокола, на основании которого было принято такое решение. Являясь гражданином Российской Федерации, я имею право на получение данной информации, так как она не классифицирована как секретная и прямо меня касается. В случае необходимости, я согласен оплатить услуги по пересылке/копированию запрошенной мной информации.
Сегодня сгорел очередной AC-адаптер от моего ноутбука. Причину установить не удается, но это уже становится обыденным.
Есть ли руководство пользователя AC-адаптеров, а то тенденция достала?
Разобрался почему блоки переставали работать. Внутри есть 1-write EPROM размером 1kbit (DS2501 от DALLAS Semi). Похоже что на нее записан некий id (длинный, наверное) который бук и сверяет перед тем как начать зарядку. Пока предположение что эти флешки дохнут и мешаются. Кто придумал такую конструкцию, пока не понятно.
Пришлось столкнуться с генерацией select’ов с optgroup, да так, что бы это было переносимо (opera, ie, ff).
Первое что приходит в голову, это следующий код:
function sampleAddItemsAtSelect(selectObject){
var optgroup = document.createElement("optgroup");
optgroup.label = "1 optgroup";
optgroup.appendChild(new Option("item 1"));
optgroup.appendChild(new Option("item 2"));
selectObject.appendChild(optgroup);
optgroup = document.createElement("optgroup");
optgroup.label = "2 optgroup";
optgroup.appendChild(new Option("item 3"));
optgroup.appendChild(new Option("item 4"));
selectObject.appendChild(optgroup);
}
Но у него есть проблема — в IE «мои items» не рендерется (нету текста, хотя выбрать их можно). Пришлось искать обходные пути, и они были найдены.
function sampleAddItemsAtSelect(selectObject){
var optgroup = document.createElement("optgroup");
optgroup.label = "1 optgroup";
selectObject.appendChild(optgroup);
selectObject.options[selectObject.options.length] = new Option("item 1")
selectObject.options[selectObject.options.length] = new Option("item 2")
optgroup = document.createElement("optgroup");
optgroup.label = "2 optgroup";
selectObject.appendChild(optgroup);
selectObject.options[selectObject.options.length] = new Option("item 3")
selectObject.options[selectObject.options.length] = new Option("item 4")
}
Причина такого поведения мне остается загадкой, а так же ответ на вопрос: «Как заполнить в select optgroup не по порядку?»
Появилось желание поучаствовать в ICFPC, причем которое я отогнать не могу. Особым стимулятором стал rankk, о котором я напишу немного позже.
Поиски команды проходят, ну очень пассивно. Если есть желающие поучаствовать в этом используя lisp, пишите.