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

Мелочи жизни

Недавно поставил Archlinux на новый компьютер. Дистрибутив понравился в первую очередь за обилие чёткой документации и очень неплохой менеджер пакетов. Pacman оказался очень гибким, шустрым в работе и удобным в управлении. Система PKGBUILD'ов порадовала не меньше. Как только разобрался, как с ними работать, установил себе qutIM и шрифты со сглаживанием.

Однако при очередном обновлении системы я словил проблемы как раз из-за этих самолично поставленных пакетов. Перестал запускаться Firefox, выдавая лаконичное и ни о чём не говорящее сообщение:


$ firefox
Couldn't load XPCOM.


Пришлось гуглить решение через старый добрый links. Сначала нашёл ссылки на проблемы с xulrunner и flashplugin, попробовал их переставить - не помогло. Посмотрел в зависимости firefox (pacman -Qi firefox) и увидел зависимость от библиотеки cairo. Но cairo у меня уже был заменён на cairo-cleartype (по этому мануалу). Когда я догадался попробовать провернуть обратную замену, всё тут же исправилось :)


# pacman -Rd cairo-cleartype
# pacman -S cairo
# pacman -S xulrunner firefox


После этого скачал PKGBUILD для cairo-cleartype и пересобрал его заново, поставив вместо обычного cairo.

На поиск причины неполадок ушло минут 15, а на исправление и того меньше, буквально пара минут. Этой мелкой неполадке, конечно, далеко до того эпического фэйла, который я словил примерно год назад, когда сидел ещё под FreeBSD и неудачно обновил xorg. Жил в консоли на домашней машине добрую неделю, пока не сумел починить.

P.S.: Надо будет чуть попозже повторить эксперимент с обновлением фокса. Хочу проверить, справится ли yaourt с нерепозиторными пакетами. Может быть, стоило сразу обновляться через него.

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

Domain specific

Сегодня я взялся за один весьма объёмный труд. Начал осваивать книгу Мартина Фаулера по DSL. Уже во вступлении встретил "скромный" пример с использованием машины состояний, для описания которой используется примерно 8 классов на джаве. Чтобы не держать все в голове (наверно, это было бы реально, только пришлось бы затратить больше времени), создал проект в Eclipse и переписал классы в нём. Испытал при этом интересное ощущение. Классы очень простые, но в них есть определённое изящество. Я на самом деле почувствовал, что это код многоопытного автора книг по рефакторингу. Подобные конструкции порой получаются и у меня, но на отшлифовку их дизайна обычно требуется довольно много времени.

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

А в целом книга, похоже, стоящая, несмотря даже на свой незавершённый статус. Я довольно хорошо представляю, где мне могли бы пригодиться DSL, поэтому более близкое знакомство с темой пойдёт на пользу.

Вступительное слово

Меня зовут Андрей Хитрин, я живу и работаю в Екатеринбурге, Россия. Как профессиональный разработчик и фанат компьютерных технологий, я постоянно сталкиваюсь с интересными вещами и явлениями. О них я и собираюсь здесь писать.

Последней соломинкой, переломившей хребет моей лени, стала вот эта статья. Спасибо Алёне :)

Полу-напоминание, полу-анонс. Темы, с которых я хочу начать: Мартин Фаулер; docbook; последний опыт работы с ArchLinux.