Обо мне

Моя фотография
Дикий Полярный Сов

четверг, 25 февраля 2010 г.

Django

Попробовал вчера вечером Джангу. По субъективным ощущениям - гораздо проще рельс.

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

Прошел туториал из четырех простых шагов и уже смог нафигачить что-то более или менее работающее.

В общем ALL HAIL DJANGO! Буду теперь ковырять мануалы в целях более вдумчивого въезжания в предмет.

пятница, 19 февраля 2010 г.

Jonathan Coulton

Наткнулся вчера на Джонатана Коултона. Это просто праздник какой-то.
Просто кину пару ссылок с небольшими комментариями:

http://www.youtube.com/watch?v=1BmK8PYm504 (The Future Soon - песня про мальчика, который мечтает стать ученым и создать расу роботов-воинов)

http://www.youtube.com/watch?v=z53WLtowYBo (The song about evil Genius in love)

http://www.youtube.com/watch?v=j4TnhemCEmc (Codemonkey - PHP-кодеры, это про вас!)

http://www.youtube.com/watch?v=AjcH2UmK1uo (Песня про зомби от лица зомби)

Восхитительно. Большая часть песен артиста доступна с его сайта для свободного скачивания.

Кстати, именно он написал финальную песню, которую исполняет AI GladOS в игре Portal. Этого само по себе могло быть достаточно, имхо.

вторник, 16 февраля 2010 г.

Хехе

Я смотрю, у моих постоянных читателей появились аватарки. Причем аватарки, совпадающие с твиттерскими. Подозреваю, это из-за подключения твиттера к google buzz.

понедельник, 15 февраля 2010 г.

Выходные пролетели как-то скомканно-незаметно, вроде как два дня целых, а, с другой стороны, и сделать-то почти ничего не успел.

Со следующей недели буду снова ходить в институт, параллельно сдавая несданные долги. Надеюсь, в этом году у меня все получится.

С удивлением узнал, что внутре Android'а - неонка ядро Linux.

Углубился в изучение Common LISP, пока что очень нравится, хоть и весьма сложно (местами).

Сегодня с утра в офисе целый час не было интернета. Вот до чего доводит монопольный провайдер =/

Засим разрешите откланяться, пойду работать.

P.S. Твиттер довел меня до мании выражать все мысли кратко, чтобы укладываться в 140 символов. Надо что-то с этим делать.

пятница, 12 февраля 2010 г.

SICP


Читаю SICP. По первости ломает мозг напрочь. Привык уже к императивным языкам, а тут функциональный, да еще с такой-то теорией.

Очень понравилось адаптировать примеры к моим условиям - можно, конечно, скачать mit-scheme и переписывать все с книги, но гораздо интереснее реализовывать то же самое на, к примеру, elisp'е.

Вчера, к примеру, столкнулся с проблемой. Задача - написать функцию, складывающую первый аргумент с модулем второго, не используя функции модуля. Пример на Scheme:

(define (a-plus-abs-b a b) ((if (> b 0) + -) a b))

Однако в CommonLISP'е и elisp'е такой пример не заработал - не понравилось им выражение (if (> b 0) + -), стоящее на месте, где лисп ожидал увидеть имя функции. В итоге, после размышлений, решил попробовать (пример на elisp):

(defun a-plus-abs-b (a b)
  (apply (if (> b 0) '+ '-) (list a b)))

То бишь, применить функцию "+" либо "-" к списку аргументов. Чуть позже подсказали другой способ - используя funcall:


(defun a-plus-abs-b (a b)
  (funcall (if (> b 0) '+ '-) a b))

Вот такие дела. Очень рекомендую.

UPD: Честно сказать, то, как это реализовано в Схеме, мне нравится больше: и то, что можно передавать функцию аккурат первым аргументом в список, и синтаксис определения функции - мне он кажется более общим, что ли, более соответствующим идее "все есть список".

четверг, 11 февраля 2010 г.

Божественный Лисп, Emacs-style

Сегодня написал свою первую функцию на elisp, которая хоть что-то делает ;)

Суть вот в чем - команда clipboard-kill-ring-save в emacs помещает содержимое выделенного региона в kill-ring (буфер обмена) и в буфер обмена операционной системы (таким образом я "выношу" информацию из редактора). До сих пор о том, что команда отработала как надо, я узнавал по пропадающей подсветке региона (transient-mark), но сегодня столкнулся с проблемой - когда я выделяю весь буфер (\C-x h), его содержимое не подсвечивается. Таким образом, я не могу узнать, сохранилось ли содержимое в буфер обмена, или я промазал мимо клавиш ;)

Решение достаточно простое - добавить в .emacs строки:


(defun my-own-clipboard-kill-ring-save (beg end)
  (interactive "r")
  (clipboard-kill-ring-save beg end)
  (message "SAVED TO CLIPBOARD") )


и

(global-set-key "\C-xj" 'my-own-clipboard-kill-ring-save)

Таким образом, при нажатии комбинации клавиш \C-x j мы не только положим содержимое выделенного региона в буфер обмена, но и получим в минибуфере сообщение "SAVED TO CLIPBOARD".

Enjoy.

По данным из некоторых источников...

Мне тут донесли, что, используя ЖЖ-акк, меня нельзя откомментить. Если кто-то может это проверить и отписать в комментах к этой записи - буду признателен. Если не получится - можно стукнуться из гугловского аккаунта (почтой, например) или кинуть информацию в джаббер (в профиле).

Заранее спасибо

понедельник, 8 февраля 2010 г.

Bye-bye, beautiful!

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

Так или иначе, пришлось разбирать пациента, вынимать пламенный мотор, нюхать его (хотя палененьким он не пах - видимо, тихо отошел в мир иной) и ставить новый, благо есть.

Трансплантация прошла успешно, пациент жив.

Впечатления от RailsClub Moscow

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

Понравилось дико. Это, в общем-то, вторая IT-конференция, на которой я побывал. Первой была "agile-методика разработки", еще на втором курсе (тоже, кстати, удачная была конференция, хоть и в более формальной обстановке).

Проходило сие в клубе "Гоголь" (или, как гласит вывеска, "Gogol", что повлекло за собой неизбежные ассоциации с гуглом). Клуб неплохой - уютно, чистенько, помещения небольшие, обстановка мне показалась полуподвальной.

Итак, когда мы добрались до места (а оказались мы на месте где-то за полчаса до начала), там не было еще никого, кроме организаторов, настраивавших оборудование - проектор, ноутбук, интернет, трансляцию и камеру с микрофоном. Микрофон так и не настроили - слышно было не очень хорошо, но вполне различимо, так как мы сидели метрах в трех от докладчиков.

Содержание. Из трех заявленных докладов - "способы деплоя рельсовых приложений", "Емакс и его расширения для работы с рельсами" и "сфинкс" (на самом деле, название было побольше, я просто сейчас не помню его, да и оно не вполне соответствовало, в итоге, содержанию) - были только два последних, что, впрочем, не особо помешало, хотя послушать про деплой было бы интересно.

В очередной раз убедился, что Емакс впереди планеты всей и никакие vi'и с ed'ами с ним не сравнятся. Затем послушал про интересную систему индексации текстовых данных (так я это понял) под названием Sphinx. Взял на заметку, почитаю подробнее.

В общем, на этом "официальная" часть конференции окончена. Мы посидели еще немного, похоливарили "emacs vs. vim" и "mac vs pc", а также "win mobile vs android vs iphone" ну и по мелочи, да и разошлись.

четверг, 4 февраля 2010 г.

Linux & EEE PC 701

Ах да - на днях проделал сабж - установил Убунту 9.10 на Asus EEE PC (тот самый, на который не так давно ставил Рельсы и они томозили).

Впечатления восхитительные - работать все стало быстрее, система без проблем встала на SD-карточку, вставленную в кардридер нетбука.
На все про все + русификация системы ушло около 30-40 минут. Еще 15 минут ставил Руби, Рельсы, гемкаттер, Емакс, шрифты (свой любимый Терминус). Сегодня попробую запустить на ЕЕЕ гугл хром, надеюсь, что под линуксом нормально потянет.

Аватар 3 дэ

Был вчера вечером (ночью) на "Аватаре", смотрел его в формате IMAX 3D.

Ну что сказать - ничего особенно "УХ!" не увидел. Да, 3Д видно, местами даже удалось обмануть мозг, местами отвисала челюсть, но примерно такого результата я ожидал от "обычного" 3д. Я так понимаю, на этот самый "обычный" теперь идти нет смысла.

В целом впечатления очень положительные. Потраченных денег не жалко, удовольствия получил сполна (чтобы не создалось впечатления, что я вышел из зала недовольный).

среда, 3 февраля 2010 г.

Eset NOD32 EPIC FAIL, или "подарочки исподтишка"

Вчера полез в msconfig, чтобы посмотреть, почему игрушки время от времени тормозят.

К немалому для себя удивлению, обнаружил в списке работающих служб некие Eset HTTP server и еще что-то от Eset. К слову сказать, говно от Eset антивирус NOD32 я уже давно удалил, после проведенных клинических испытаний, когда бесплатный CureIT нашел у меня с десяток вирусов при постоянно включенном и обновляющемся НОДе.

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

Оказалось, с выключенными службами не работает 3d-графика - при попытке запустить хоть какую-нибудь игру эта самая игра падала, вызывая "неизвестную ошибку". Чтобы проверить свои догадки, включил есетовские службы обратно. Перезагрузился.

Все заработало.

Вот это я понимаю - антивирус! Который нельзя удалить полностью, даже действуя по инструкции, который сажает в память машины процессы, которые не нужны пользователю, который блокирует возможности компьютера, если эти процессы отключены... Стоп! Это НЕ антивирус. Что угодно, но только не антивирус.

Придется, видимо, переставлять систему. Давно пора, впрочем. Скорее всего, на выходных займусь.

вторник, 2 февраля 2010 г.

diary.ru и философский камень

Дневник на дайри удалился, не прошло и года.

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

UPD: А вывести его вверх уже нельзя. Насмешили, стервецы.

понедельник, 1 февраля 2010 г.

Установка Ruby on Rails на Eee PC 701

Вчера занимался сабжем около пары часов.

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

Единственной проблемой стала невозможность (почему-то) утилиты gem качать пакеты из интернета. Дело, скорее всего, было в неправильно настроенном файрволле, который блокировал ruby, не давая ему возможности вылезти в интернет за новой порцией пакетов. К сожалению, никакого оповещения/предупреждения при этом не выводилось, что затруднило диагностику проблемы и привело к тому, что я понял, в чем дело, лишь после окончания процесса установки.

В итоге уже через полчаса мучений с зависимостями чувствовал себя полным apt-get'ом.

Но в итоге все обошлось - пришлось скачать и установить вручную новую версию гемов, а потом - рельсы, gemcutter, rake и до кучи mongrel.

Начал генерировать скрипты - обнаружились досадные подвисания script/generate, видимо, из-за слабости самой машинки. Но эксперимент можно считать удачным.

Игрушки - Mass Effect 2

Поиграл в Mass Effect 2. Постараюсь обойтись без спойлеров.

Подробности - дальше.