Пятница, 5 Октябрь 2007

Лисп — усилитель

«Lisp есть могучий усилитель мыслей, и тем, у кого мысли, как правило, отсутствуют, он ничем не поможет»

Написано в: 14:24 | 0 комментариев | | теги: , , , , , , | постоянная ссылка

Четверг, 4 Октябрь 2007

Правильная русификация emacs в utf8 окружение

По интернету гуляет много разных рецептов как выставить русский язык в 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")

Написано в: 17:42 | 8 комментариев | | теги: , , , , | постоянная ссылка

Десятое правило Гринспуна

Не могу не поделиться десятым правилом Гринспуна и следствием Морриса из него (только что для себя открыл):

„Любая большая система на C или Fortran содержит медленную, плохо продуманную, с кучей ошибок реализацию половины Common Lisp.“

Десятое правило Гринспуна

„…включая сам Common Lisp.“

Следствие Морриса

Написано в: 3:44 | 0 комментариев | | теги: , , , , , , | постоянная ссылка

Воскресенье, 30 Сентябрь 2007

Рефакторинг jabber-shell

На сайте LOR была обноружена новость о том что кто-то написал бота для jabber — abber-shell. Идея бота, на самом деле, достаточно интересна, но вот его реализация повергла в ужас. Не долго думая было принято решение все переписать нафиг(=отрефакторить). Результат этого решения общественность может забрать по следующему URI: http://catap.ru/repos/jabber/jabber-shell.git

Написано в: 23:30 | 0 комментариев | | теги: , , , , | постоянная ссылка

Письмо президенту о причинах принятия «OOXML» — ответ

Сегодня я получил ответ на письмо призеденту, в котором лаконично отмечалось, что запрошенной информации администрация призидента не обладает. Что интересно, ответ был послан 19 числа. Пока беру таймаут на обдумывание что делать и как писать.

Написано в: 12:52 | 1 комментарий | | теги: , , , , , | постоянная ссылка

Суббота, 15 Сентябрь 2007

Microsoft Natural Ergonomic 4000

Вчера купили Microsoft Natural Ergonomic 4000. Куча кнопок и огромная красная коробка. Основные кнопки (с буквами) на домашнем Debian GNU/Linux заработали сразу после подключение клавиатуры, всякие дополнительные кнопки еще не пробовал, «zoom» хочется заменить на TrackBall™/TrackPoint™ (второе мне, лично, удобнее), ибо толку от него, кроме как от скорлинга нет, а с TrackBall™/TrackPoint™ эта клава бы стала идеальной, и не нужна была бы жутко-не-удобная мышь, и не надо было бы руки снимать с нее…

Все выпускают новые клавиатуры. Добавляют кнопки для регулировки звука, быстрого запуска каких-то приложений (хотя у нас простаивает куча кнопок с модификаторами), и никто еще не выпустил клавиатуры с TrackBall™/TrackPoint™. Нет про несколько вариантов от IBM я в курсе, но мне они как-то не по душе, вот бы воткнуть это чудо в данный продукт или Kinesis Advantage™ Pro.

Написано в: 23:30 | 0 комментариев | | теги: , | постоянная ссылка

Вторник, 11 Сентябрь 2007

Письмо президенту о причинах принятия «OOXML»

Прочитав результаты голосования по вопросу принятия OOXML как ISO стандарта был удивлен (хотя, ожидал такого расклада, но верил во что‑то лучшее) результатом России: «за, без комментариев». Грустно стало настолько, что решил проявить свою т.н. «гражданскую позицию» и написал письмо президенту России (через сайт Кремль.ру). Текст его указан ниже, ответ, если такой последует, выложу здесь же.

Добрый день!

Я только что получил ссылку на результаты голосования по стандарту OOXML: http://www.noooxml.org/ballotresults Наша страна проголосовала ЗА без комментариев.

Из открытых источников я выяснил, что данное решение скорее всего принималось в рамках: ПК130 Открытый электронный обмен данными: ЦИТиС 123557, Москва, Пресненский вал, 17 (Источник: www.gost.ru).

Не могли бы вы подтвердить или опровергнуть эту информацию?

Кроме того, я хотел бы получить копию заключения или протокола, на основании которого было принято такое решение. Являясь гражданином Российской Федерации, я имею право на получение данной информации, так как она не классифицирована как секретная и прямо меня касается. В случае необходимости, я согласен оплатить услуги по пересылке/копированию запрошенной мной информации.

Написано в: 21:52 | 0 комментариев | | теги: , , , , , | постоянная ссылка

Воскресенье, 9 Сентябрь 2007

Сгорел очередной AC-адаптер

Сегодня сгорел очередной AC-адаптер от моего ноутбука. Причину установить не удается, но это уже становится обыденным.

Есть ли руководство пользователя AC-адаптеров, а то тенденция достала?

Разобрался почему блоки переставали работать. Внутри есть 1-write EPROM размером 1kbit (DS2501 от DALLAS Semi). Похоже что на нее записан некий id (длинный, наверное) который бук и сверяет перед тем как начать зарядку. Пока предположение что эти флешки дохнут и мешаются. Кто придумал такую конструкцию, пока не понятно.

Написано в: 19:04 | 0 комментариев | | теги: , , | постоянная ссылка

Четверг, 28 Июнь 2007

Javascrip и optgroup

Пришлось столкнуться с генерацией 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 не по порядку?»

Написано в: 19:59 | 0 комментариев | | теги: , , | постоянная ссылка

Среда, 20 Июнь 2007

ICFPC 2007, мысли

Появилось желание поучаствовать в ICFPC, причем которое я отогнать не могу. Особым стимулятором стал rankk, о котором я напишу немного позже.

Поиски команды проходят, ну очень пассивно. Если есть желающие поучаствовать в этом используя lisp, пишите.

Написано в: 11:46 | 0 комментариев | | теги: , , , , | постоянная ссылка