Международная конференция разработчиков
и пользователей свободного программного обеспечения

Евгений Хоружий: разработчик OpenInkpot

О “кухне” разработки свободного ПО для электронных книг и о своём участии в этом процессе рассказывает один из основателей проекта OpenInkpot — системный программист из Минска Евгений Хоружий.

Расскажи, как всё начиналось?

В конце 2007 года я купил электронную книжку украинского производителя — что-то вроде КПК с достаточно большим шестидюймовым экраном — сделанную по технологии e-Ink. Поскольку прошивка, сделанная бравыми китайскими ребятами, оказалась довольно кривой, то очень быстро возникло желание сделать что-то своё. Так получилось, что практически одновременно со мной то же самое устройство купил Миша Гусаров из Новосибирска, также известный в узких кругах как dottedmag. Мы с ним скооперировались и решили с нуля сделать свою собственную, свободную версию прошивки.

В первую очередь проблема китайской прошивки была в том, что они не открывали никаких исходников, включая измененные исходники ядра Linux, что является грубым нарушением GPL. Попытка как-то вербально надавить через украинских производителей ожидаемо ни к чему не привела. Впоследствии эти исходники были всё же получены через другие компании, потому что устройства на базе той же платформы продавались в Европе, и там уже лицензию GPL они были вынуждены соблюдать. Но изначально не было ничего.

До какого состояния развился проект за это время?

Осенью 2008 года мы выпустили версию прошивки 0.1. Она практически повторяла существующий функционал, но во-первых была полностью свободной, во-вторых — более стабильной. По отзывам пользователей, во многих аспектах она лучше своего прототипа. Чтобы получать больше обратной связи, мы наладили периодический выпуск “снэпшотов” – тестовых сборок, не гарантирующих стабильности (хотя обычно и хорошо работающих), но пригодных для тестирования продвинутыми пользователями.

Более того, сейчас тот же самый украинский производитель уже официально заказал нам разработку новой прошивки. Разработка эта идёт практически на тех же условиях — всё, что мы делаем, будет свободным. И я надеюсь, что уже этим летом (или позже — в зависимости от планов производителя) будет выпущено первое устройство в этой серии с практически полностью свободной официальной прошивкой. Стопроцентной открытости там всё же может не быть, так как производитель планировал установить поверх OpenInkpot какие-то свои закрытые плагины. Однако эта ситуация еще не ясна до конца. Если эти планы реализуются, мы возьмем на себя выпуск и поддержку полностью свободной сборки. Но в любом случае разработка под эту платформу теперь будет максимально упрощена.

Прошивка делается только для одной модели электронных книг?

Изначально разработка велась для lBook eReader V3 (оригинальное название Hanlin eReader V3), где стоит процессор Samsung S3C2410 (ARM). Позднее мы попробовали (но еще не совсем закончили) портировать разработку на Sony Reader PRS505, где также используется архитектура ARM.

Текущая разработка идет под платформу MIPS — совершенно другой процессор и другая архитектура. Мишей Гусаровым было проделано очень много работы по обеспечению возможности сборки и портирования OpenInkpot под произвольную архитектуру.

Из кого состоит команда?

Сначала нас было двое, потом подключились еще несколько людей. Сейчас активны четверо: я, Миша Гусаров, Александр Кернер из Германии и Марк Лажуйе (Marc Lajoie) из Канады.

Есть определенное распределение ролей. Миша Гусаров задает стратегию, общее направление развития, контактирует с заказчиками, занимается всеми публичными связями. Также он — основной разработчик сборочной инфраструктуры. Я отвечаю за разработку всех низкоуровневых “ядерных” вещей. Александр и Марк занимаются пользовательским интерфейсом и прикладным ПО.

Когда Марк начинал делать приложение “madshelf” (“книжную полку” для выбора книг), ему пришлось с нуля освоить Linux. Узнав про проект, он зашел на IRC-канал, почитал вики, выяснил, как начать разработку. А потом сел и написал скелет “книжной полки”, особо ни у кого ничего не спрашивая. И результата добился.

Насколько сильна обратная связь от пользователей?

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

Как много времени занимает участие в проекте?

Когда не было заказчиков и внешних обязательств — проект занимал столько, сколько получалось. Иногда можно было просидеть практически целые выходные, иногда — неделями не прикасаться к коду. Иногда — тратить по 2-3 часа в день. По разному бывало.

Сейчас у нас довольно жесткий дедлайн. Более того, когда я 1 апреля ушел с предыдущей работы, перед выходом на новую я практически месяц работал дома исключительно по этому проекту. Конечно, работа дома — не совсем то же, что работа в офисе. Но можно считать, что загружен был практически в режиме полного рабочего дня.

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

Как можно принять участие в разработке OpenInkpot?

Принять участие можно самыми разными способами. Например, помочь в переводе сайта на родной язык. Или перевести интерфейс программ. Или тестировать прошивку, создавая тикеты в нашей системе управления проектом. Или, если есть необходимые навыки, посмотреть в тех же тикетах, что вы можете сделать как программист, и сделать это. В любом случае, первым шагом будет изучение wiki, вторым — вход на наш IRC-канал, поскольку это основной способ коммуникации на проекте.

Для разработки нужно знать shell и C и разбираться в устройстве Linux-дистрибутивов или в GUI-программировании. Если вы чего-то не умеете – не беспокойтесь, научим!

Сетевые решения 2009