kdebindings и ruby1.9

Злосчастное обновление ruby до 1.9 сломало не только watir, но и мои плазмоиды.

Полдня провёл в попытках разобраться с ситуацией – при загрузке rubygems вываливается трэйс, смысл которого в:
undefined method `synchronize’ for #<Mutex:0xab1cd2> .

Нашёл несколько сообщений с описываемой проблемой «встроенного ruby» , но решения по всей видимости нету.

Поэтому пришлось установить «старый» ruby и собрать kdebindings с ним:

tar -zxf kdebindings-*.tgz
cd kdebindings-*
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_KROSSRUBY=off -DENABLE_PYKDE4=off -DRUBY_INCLUDE_PATH=/opt/ruby4kde/lib/ruby/1.8/i686-linux/ -DRUBY_LIBRARY=/opt/ruby4kde/lib/libruby.so -DRUBY_EXECUTABLE=/opt/ruby4kde/bin/ruby ..
make && make install

watir и ruby1.9

В системе обновился ruby до 1.9 и после переустановки нужных gem-ов ВНЕЗАПНО обнаружилось, что watir не грузится.

/usr/lib/ruby/gems/1.9.1/gems/user-choices-1.1.6/lib/user-choices/arglist-strategies.rb:152: warning: else without rescue is useless
/usr/lib/ruby/gems/1.9.1/gems/user-choices-1.1.6/lib/user-choices.rb:1:in `require’: /usr/lib/ruby/gems/1.9.1/gems/user-choices-1.1.6/lib/user-choices/arglist-strategies.rb:148: syntax error, unexpected ‘:’, expecting keyword_then or ‘,’ or ‘;’ or ‘\n’ (SyntaxError)
when 0: # This is not considered an error because another source

Решить «проблему» удалось редактированием нескольких файлов в /usr/lib/ruby/gems/1.9.1/gems/user-choices-1.1.6/lib/user-choices/ – в arglist-stragergies.rb, conversions.rb и sources.rb необходимо все конструкции вида when XXXX : заменить на when XXXX then

10.12.09  |  ,  | 3 comments

redmine mail reader

Некоторое время назад для ведения “задачаоборота” мы c небольшой группой “единомышленников” решили использовать Redmine. Коллеги стали замечать, что волосы у нас стали шелковистыми, одежда сияет белизной, а главное – СУХО! Ну и постепенно начали вовлекаться в процесс.
Сразу же, с порога, выдвинули претензию – а почему нельзя создать задачу из письма (Слава привет!) ? Главным аргументом против магии седьмого уровня Copy-Paste было то, что им приходит множество аттачментов в письмах, которые и являются сутью поставленной задачи. Их надо сохранить на диск и лишь потом прикрепить к задаче… Неудобно, ага.

Сходу не смог найти необходимый функционал ни в самом redmine, ни в рабочих плагинах( использую redmine из trunk-а, с ним многие плагины или не работают вовсе или наполняют его “глюками” в самых неожиданных местах). Посему пришлось наваять оный плагин самостоятельно. Суть его работы такова:
В gmail-ном ящике (да в принципе любой imap-сервер подойдёт) создаются ярлыки (папки) с названиями, соответствующими идентификаторам проектов в redmine.
Rake-таск из плагина (нужно периодически запускать по cron-у) проверяет наличие писем с этими ярлыками и создаёт новые задачи, в соответствующих проектах, прикрепляя все вложения к тикету. Для защиты от всякого рода спама на всякий случай письма принимаются только от зарегистрированных пользователей.

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

Если вам такой функционал интересен, то вы можете скачать плагин себе. Установка ничем не отличается от других плагинов – распаковываем содержимое в vendor/plugins, копируем config/mail_reader.yml.example в RAILS_ROOT/config/mail_reader.yml, редактируем конфиг, рестартуем redmine, добавляем модуль в настройках проектов и добавляем в cron задачу rake mailreader:check

Для работы требуется gem tmail для корректного вытягивания имён файлов во вложениях. Да я знаю, что он (tmail) уже имеется в составе actionmailer, но я так и не сообразил как корректно его загрузить – буду рад, если кто-нибудь поможет правильно подключить этот класс.

Отзывы? Пожелания? Добро пожаловать в комментарии!

07.11.09  |  ,  | 10 comments

Рубиновые плазмоиды

qt-интерфейсКак уже рассказывал, совершил я страшный грех – перестал пользоваться виндой. В качестве рабочего стола теперь у меня KDE4. Красоты неописуемой, удобством не обделённый, загляденье, да и только. И всё вроде хорошо, но есть часть рутины, которая довольно привычна была на виндовом экране, но на linux её терпеть прямо нет никакого желания. Одним из примеров такой рутины был запуск rdp и radmin клиентов, если с первым под виндой ещё более-менее можно сладить (он хотя бы хранит учётные записи и настройки), то второй даже пароль сохранять не умеет.
Обычно всякие вспомогательные программки делаются на php, но не в этот раз – уж коль скоро захотелось запускать что-то с окошками, захотелось и свою облечь в какой-нибудь приличный вид. php-gtk был отвергнут сразу (ну не нравится мне gtk-ный интерфейс, не нравится и всё тут). Решил сделать на Qt4 – благо информации в интернете по данной теме полно. (more…)

10.09.09  |  ,  | 4 comments

Performance Optimization WordPress Plugins by W3 EDGE