Ivan Veselov (dying_sphynx) wrote,
Ivan Veselov
dying_sphynx

Category:
  • Location:
  • Mood:

Exaile и opensource

В очередной раз убеждаюсь, что хорошая штука opensource :)

Я пользуюсь Linux Ubuntu и недавно сменил основной аудио-проигрыватель с Amarok на Exaile, поскольку Amarok, будучи KDE-приложением, несколько тормозил при запуске в моём Gnome. Exaile - является некоторым подобием Amarok под Gnome, вполне приятный плэйер, в котором есть интеграция с last.fm, неплохой менеджер артворков, нотификации, работа с мультимедийными клавишами out of the box, приятный внешний вид и т.д. После перехода я обнаружил, что некоторых мелочей мне не хватает и решил сделать их сам.
Что же, получаем исходный код для разработчиков:
svn co svn://exaile.org/usr/local/svn/exaile/trunk trunk
и вперёд! :) Заодно познакомлюсь с Python и GTK.

Захожу на канал #exaile в IRC, знакомлюсь с одним из двух разработчиков Exaile - sjohannes, пытаюсь задавать какие-то вопросы. В принципе ребята на вопросы отвечают, но помогать в разборе кода особенно не хотят. Что ж, посмотрю сам.

Поначалу я реализовал простенькую фичу. Заключалась она в добавлении возможности "Load", которая параллельно очищала плэйлист и добавляла в него выбранный трек или альбом: добавил menu item "Load" в контекстное меню, навесил на него обработчик. В итоге всё вылилось в такой вот ticket с патчем.
Особого успеха у sjohannes этот патч не имел - сказал, что не думает что это особенно нужная функциональность, но, тем не менее, на следующий день пришло письмо от некоего благодарного пользователя, так что хоть кому-то он да понадобился :)

Вторая же возможность, которую я добавил, была навеяна похожей функциональностью Eclipse IDE и сразу понравилась разработчикам. Я говорю о возможности "Show in collection", которая может быть полезна при желании быстро перейти от трека в плэйлисте к соответствующему треку в коллекции (это важно при прослушивании случайных треков, при этом иногда хочется послушать полностью ту группу, которая только что играла и, как следствие, нужно искать её в коллекции, что возможность делает автоматически). В Eclipse этой возможности соответствует переход от текущего редактируемого файла к его ноде в дереве проекта. В итоге, я сделал ещё один патч.

Эта идея и её реализация уже гораздо больше впечатлила sjohannes, и он сказал, что непременно включит её в следующий релиз (см. UPDATE). Что ж, буду рад :)

Хочется отметить, что Python, как и обещалось многими, оказался действительно интуитивно понятным языком, с хорошим синтаксисом. Практически все вещи, что я делал почти наобум - работали именно так, как полагалось. Мне кажется, что это весьма важное качество языка - works as expected. Насчёт GTK и биндингов под Python - pyGTK, тоже ничего плохого сказать не могу, хорошая документация, поработал с деревом и его моделью без особенных проблем. Хотя здесь, конечно, моё мнение весьма поверхностно и сравнивать мне не с чем, ибо я никогда не занимался разработкой GUI под Linux.

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

UPDATE: Функциональность "Show in collection" добавили в Exaile в ревизии 2358 ("svn log -r 2358").
Tags: exaile, geek, gtk, linux, opensource, python
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 31 comments