Руби-гномик
Андрей Кутейко недавно стал одним из членов команды ruby-gnome2 - проекта-мостика между миром ruby и gnome. По сути, этот проект является набором привязок (bindings) к целому стеку API. С одной стороны это позволяет использовать ruby для написания кросс-платформенных desktop-приложений. С другой - использовать качественные библиотеки в веб-проектах. Например:
- GIO - инфраструктура доступа к файловой системе, прозрачное и унифицированное использование виртуальных файловых систем
- Pango - рендеринг текста с произвольными языками/шрифтами. Большинство программ в GNU/Linux (в их числе и браузеры) используют именно Pango, для превращение букв в пикселы на экране.
- RSVG - рендеринг SVG.
- Poppler - чтение PDF.
Андрею потребовалось работать с PDF файлами и извлекать из них текст и прочую метаинформацию. Для этого ему пришлось исправить несколько ошибок в коде ruby/poppler и дописать недостающие функции (ruby/poppler немного отстаёт по версиям от poppler). Создатели ruby-gnome2 заметили активность пользователя andy128k и пригласили вступить в команду.
В планах у Андрея реализовать в рамках репозитория ruby-gnome2 библиотеку cario, библиотеки для работы с векторной графикой.
“Вообще я заметил, что на ruby очень мало десктоп-программ. И внимание к этому проекту невелико. Но несмотря на это, проект неплохо документирован. У меня, как у новичка, вообще не вызвало никаких трудностей разобраться с кодом.” - заметил Андрей.