LXF100-101:Интервью LXF–2

Материал из Linuxformat.

Перейти к: навигация, поиск

Вектор в русскую сторону

Русскоговорящее сообщество постепенно набирает вес в окружающем нас мире. Свободный векторный графический редактор sK1, разрабатываемый Игорем Новиковым и Вальком Филипповым, закрепил положительную тенденцию на конкурсе Les Troph es du libre 2007 – впервые за пятилетнюю историю этого мероприятия в списке финалистов оказался проект из экс-СССР. LXF не замедлил связаться с лауреатами, чтобы выяснить все подробности.

Игорь НовиковИгорь Новиков с наградой («рука с копилефтом») от Les Troph es du libre–2007.

Валёк ФилипповВалёк Филиппов

Евгений М. Балдин (LXF): Представьтесь, пожалуйста.

Игорь Новиков (ИН): Рoд занятий – software engineer или, по-нашему, инженер-программист. Харьков, Украина. Степень магистра по специальности «Биохимия», специализация – генная инженерия.

Валёк Филиппов (ВФ): Системный инженер со специализацией в сетевой безопасности. Степень магистра по специальности «Молекулярная биология и биотехнология», CCIE R&S, CISSP.

ИН: Как видите, команда состоит исключительно из биологов [улыбается].

LXF: Почему именно sK1?

ИН: Имя sK1 – производное от Sketch [свободный векторный графический редактор, позднее переименованный в Skencil, – прим.авт.]. Заглавная «K» подчеркивает ориентацию на KDE, но библиотечные зависимости от Qt/KDE отсутствуют, равно как и от Gtk/GNOME. Просто общая компоновка приложения более схожа с KDE’шной, плюс наиболее приемлемыми, на наш взгляд, являются диалоги открытия и сохранения файла, принятые в KDE. Правда, sK1 может использовать диалоги от KDE, GNOME или Tk, в зависимости от платформы. Стиль виджетов также настраиваемый (он базируется на PNG-шаблонах). Цветовая схема импортируется из текущего менеджера рабочего стола, но может использоваться и своя собственная. Наша цель – создать приложение, которое будет иметь родной (ну, практически родной) вид на любой платформе: GNU/Linux, MacOS X, Microsoft Windows.

Единичка в названии – это то, к чему мы стремимся, т.е. версия 1.0. Неудобно ведь называться sK0 (улыбается). Если проект выживет, то при смене мажорной версии появится sK2, ну и формат файлов помеяется с *.sk1 на *.sk2.

LXF: Чем sK1 лучше других векторных графических редакторов?

ИН: Пока рановато делать громкие заявления. По возможностям импорта мы однозначно лучше многих свободных проектов, связанных с векторной графикой. По производительности и требованиям к системным ресурсам, sK1 также превосходит все свободные аналоги (Inkscape, Karbon 14, OO Draw), приближаясь к коммерческим приложениям типа CorelDRAW и Xara.

LXF: Расскажите об истории создания sK1.

ИН: Если вкратце, то дело было так. В 2003 году в Украине начались жёсткие проверки лицензионности программного обеспечения. Продавцы были не готовы к внезапному возникновению спроса на дорогостоящее ПО Adobe, Corel, Autocad и др. «С полки» в лучшем случае можно было купить Microsoft Windows. У многих небольших компаний был выбор между закрытием и попыткой миграции на свободное ПО. Рынок пиратских программ проверки и репрессии не затрагивали, поэтому «пираты» оперативно отреагировали предложением разнообразных дистрибутивов GNU/Linux.

В то время я был совладельцем небольшой полиграфической фирмы в Харькове. Надо было как-то выходить из созданной ситуации. Бухгалтерскую машину перевели на Mandrake 9.1 достаточно легко, т.к. на ней готовилась только первичная документация. А вот с дизайнерскими компьютерами было намного сложнее. В качестве основного инструмента мы использовали CorelDRAW. Попытка использовать CorelDRAW 9.0 for Linux провалилась с треском: продукт оказался неприемлемо сырым, даже на RedHat 7.0, который был заявлен в качестве поддерживаемой платформы. Поэтому пришлось обратить внимание на свободные векторные редакторы. Выбор пал на Sketch, который хоть и не был пригоден для полиграфии, но зато мог импортировать файлы в форматах CMX (Corel) и AI (Adobe Illustrator). Практически сразу же мы столкнулись с различными проблемами: от несовершенства интерфейса до отсутствия необходимых функций. Чтобы исправлять и дополнять исходный код, пришлось взяться за изучение языка Python, который использовался для написания Sketch.

Проект первоначально был предназначен для внутреннего использования: мы не собирались «спасать человечество от засилья Microsoft» или делать что-то там ещё в этом духе. Но Free Software быстро «научило нехорошему», и в начале 2004-го года проект был выложен на http://SourceForge.net.

Впоследствии проблемы в работе фирмы, связанные с предвыборной ситуацией на Украине, вынудили продать бизнес… Я решил стать профессиональным разработчиком и перешёл на работу в американскую аутсорсинговую компанию. Пертурбации в жизни страны («Оранжевая революция») отразились и на проекте. Работа была практически остановлена. Проект снова ожил лишь в конце 2005 года. В команде на тот момент остался только я, как основной разработчик. Остальные участники, по разным обстоятельствам, не смогли продолжать работу над проектом.

В начале 2006-го года активное параллельное участие в проекте новостного портала http://LinuxGraphics.ru (проект Александра Прокудина) привело к выходу первой ознакомительной версии sK1. Это произошло благодаря тому, что Александр активно работает в проектах Scribus и Inkscape. Он сыграл роль инициатора в выпуске ознакомительной версии. Кроме того, он познакомил меня с участниками проекта Scribus, а также с Вальком.

Сообщество приняло sK1 благосклонно, что стимулировало дальнейшее развитие проекта: были реализованы уникальные свойства sK1, которые оправдывают его позиционирование как ориентированного на полиграфию. Это, прежде всего, поддержка CMYK-цветов, управление цветом, поддержка CMYK при генерации PostScript. В дальнейшем был добавлен дополнительный рендерер графики на базе библиотеки Cairo, что позволило получить субпиксельное сглаживание и поддержку прозрачности.

Примечательно, что в векторном редакторе Inkscape, который мы также рассматривали в качестве возможной замены CorelDRAW, поддержка CMYK и управление цветами появились в SVN только недавно и будут доступны только в версии 0.46. Переход Inkscape на Cairo начат и, скорее всего, будет осуществлён полностью к версии 0.47, а в 0.46 Cairo будет использоваться только для каркасного режима.

В 2007 году в sK1 появилась уникальная функциональность: импорт файлов CorelDRAW (CDR). Инициатором этого, как и в случае с выпуском первой ознакомительной версии sK1, выступил Александр Прокудин. Вокруг этого формата существовало, да и сейчас, судя по форумам, существует масса баек вроде «использовать эти файлы без кода CorelDRAW невозможно», мол, это «вещь в себе», что-то из серии «непознаваемого», и т.д. Поэтому изначально был определённый психологический барьер в этом плане. Но, как только мы взялись за работу над форматом, очень быстро стало понятно, что особых проблем-то и нет. Да, это не простой бинарный формат, но и не самый сложный. Нам достаточно быстро удалось создать качественный универсальный импортёр, который вполне пригоден для повседневного использования.

В мае 2007 года sK1 был представлен на конференции Libre Graphics Meeting 2007, в Монреале (Канада). Поскольку импортёр CDR вызвал интерес у других проектов, то сразу же после конференции мы организовали подпроект UniConvertor (http://sk1project.org/). Это консольное приложение, которое использует движок sK1 для преобразования файлов между векторными форматами, т.е. выполняет функции cdr2svg, ai2sk1, cmx2svg и т.д. Фактически, UniConvertor стал заменой свёрнутому проекту VectorSection (UberConvertor) фирмы Xara, а sK1, в каком-то смысле, можно назвать заменой замороженной свободной версии редактора Xara LX. Разработчики Inkscape уже добавили возможность использования UniConvertor для импорта файлов CorelDRAW в SVN-версию своего приложения; эта функция также будет доступна в Inkscape 0.46.

Мы разобрали и добавили поддержку CDT, CCX, CDRX. В результате, на данный момент sK1 и UniConvertor охватывают практически все векторные форматы CorelDRAW. Естественно, далеко не все элементы формата поддерживаются полностью, но уже на данном этапе фильтры импорта вполне пригодны для ежедневной работы в полиграфии. Наш CDR-импортёр поддерживает файлы с 7-й по 13-ю версию, сравнимыми возможностями обладает только импортёр Adobe Illustrator (поддерживаются версии с 5-й по 10-ю). Коммерческая версия редактора Xara, например, может импортировать CDR-файлы версий 3 и 4, что уже давно не отвечает реалиям жизни, т.к. в этих версиях формата нельзя сохранить документы из последних версий CorelDRAW.

В октябре 2007 года sK1 прошёл первичный отбор проектов в конкурсе Les Throph es du Libre и занял второе место в финальном конкурсе в группе Multimedia/Games. Конкурс проходил 29–30 ноября в Суассоне, Франция.

LXF: Как распределены обязанности в вашей группе?

ВФ: С моей точки зрения, у нас имеется своеобразный «социальный контракт»: я помогаю расколдовать формат CDR, а Игорь добавляет в sK1 (а теперь уже и в UniConvertor) поддержку VSD/VSS (форматы Microsoft Visio).

LXF: Когда появится стабильная версия sK1?

ИН: Стабильная версия 0.9 выйдет после того, как будет закончен шрифтовой движок. Уже сейчас он практически рабочий, остались небольшие нюансы. Возможно, это случится в ближайшие пару месяцев [быть может, уже к тому моменту, когда вы будете читать этот номер, – прим. ред.].

А в более длительной перспективе – думаю, что процесс совершенствования программы никогда не закончится. В полиграфической отрасли уйма разных направлений, и каждое из них требует массу специфических «апплетов».

LXF: Ну а что вы ожидаете получить в итоге?

ИН: В нашем понимании sK1 – это базовая платформа а-ля Eclipse, поверх которой можно наращивать различный функционал.

Планы очень просты – довести продукт до приемлемого состояния и вытеснить из базового рынка проприетарные аналоги (улыбается). Всё очень скромно.

Относительно ближайших планов: у нас почти созрели улучшен-ные импортёры WMF (Windows Metafile) и EMF (Enhanced Metafile). Проведено сравнительное исследование коммерческих и открытых проектов по поддержке формата WMF – скоро этот отчёт будет опубликован на нашем сайте (http://sk1project.org/). На подходе долгожданный импортёр VSD. Выполнены существенные наработки в плане дальнейшего разбора CDR-формата. Реализация этих знаний в коде также планируется на ближайшее время. Начат первичный разбор формата FreeHand. Планируется также поддержка режущих плоттеров. В общем, фронт работ достаточно широк.

LXF: На кого вы ориентируетесь при разработке: на профессиональную аудиторию или на «сферического коня в вакууме» — простого пользователя?

ИН: Не секрет, что подавляющее число пользователей таких приложений отнюдь не суперпрофи. Так уж повелось: если надо нарисовать простенькую диаграмму, то берётся профессиональная программа, отредактировать фото – Photoshop CS3 с уймой неиспользуемого функционала, написать «Hello world» – IDE уровня предприятия и не ниже [улыбается].

Именно поэтому первичная аудитория, на которую нацелен sK1 – это труженики препресс-индустрии. Эти люди хотят мигрировать на Open Source, но им нужен реально работающий инструмент, а не макет.

Для профессионалов же должен быть обеспечен необходимый минимум, и этого минимума с головой хватит «обычным пользователям». Если им потребуется настройка цветов по CMYK, или цветопроба, или registration color (что встречается крайне и крайне редко), то они будут иметь такую возможность. В большинстве случаев, эти свойства не востребованы, и обычному пользователю за глаза хватает Dia и Inkscape, но психологически это очень важный момент.

Иными словами, мы хотим создать продукт с низким порогом вхождения, как у CorelDRAW, и c профессиональным качеством конечного результата (PostScript, который выводится на принтер), как у Adobe Illustrator.

LXF: Расскажите, пожалуйста, о Les Troph es du libre 2007.

ИН: Конкурс проходил в два этапа. На первой стадии проекты самостоятельно регистрировались на сайте конкурса (http://www.tropheesdulibre.org/?lang=en), и после окончания этой процедуры жюри выбрало из массы проектов по три финалиста в каждой категории. Они должны были прибыть во Францию и представить свои проекты в очном порядке.

Следует отметить, что уровень организации конкурса весьма высок. CETRIL (Centre Europ en de Transfert et de Recherche en Informatique Libre), под патронатом которой проходил конкурс, постаралась как можно детальнее подготовить данное мероприятие, максимально содействуя всем участникам.

Сам конкурс проходил в весьма плотном режиме: весь день 29 ноября был занят презентациями, докладами и т. п. Честно говоря, вечером в гостиницу вернулись все просто выжатые.

Из недостатков – конкурс всё-таки франкоориентированный. Это отмечали многие участники. Организаторы, конечно, постарались обеспечить мероприятие синхронным переводом, но не везде и не всегда это было реально сделать. Мне, например, даже не сказали, что переводчик свободно говорит по-русски. Правда, видимо, их смутил тот факт, что я из Украины. Уже после мероприятия переводчик спросил у меня: «А вы принципиально в Украине не говорите по-русски?» [улыбается].

LXF: Судя по вашим блогам, вы активно готовились к этому конкурсу.

Что именно дотачивалось в sK1 «под мероприятие» и что обеспечило вам такой успех?

ИН: Планировалось продемонстрировать шрифтовую систему и (если бы повезло с шрифтами) анонсировать релиз. Но, увы, шрифты оказались более тяжёлой задачей, чем мы предполагали, поэтому из новшеств была подготовлена контекстная панель, которая позволила избавится от уймы мелких диалогов.

Лично я не считаю второе место грандиозным успехом. Незнание французского, на мой взгляд, и обеспечило более низкое место, чем могло быть. Но это мое личное мнение.

А вот выход в финал – это результат всех четырёх лет работы над проектом. Нельзя назвать какое-то конкретное свойство sK1, обеспечившее прохождение в финал.

LXF: Почему вы выбрали категорию «Мультимедиа и игры», и почему в этой категории среди победителей не оказалось игр?

ИН: Когда я заполнял заявку на конкурс, то просто использовал классификацию на http://SourceForge.net. Там векторные редакторы отнесены к мультимедиа. В общем-то, всё просто...

А что касается игр… Было много возмущений по этому поводу среди участников. Большинство считало, что игры надо было ставить в отдельную категорию.

ВФ: Кстати об играх: если посмотреть на все проекты, поданные на конкурс в данной категории, то игр там будет подавляющее большинство. При этом большая часть игр, вероятно, сделана одним лицом, но подана на конкурс раздельно. Возможно, участник считал, что это лотерея, и надеялся, что таким образом увеличит вероятность выигрыша. Почему ни одна игра не была выбрана для финала, это, скорее, вопрос к жюри [улыбается].

LXF: Что дало вам участие в конкурсе? Есть ли подобные планы на будущее (скажем, Google Summer of Code)?

ИН: Думаю, основной результат – известность в кругах Open Source. Что касается будущего, то ближайшее мероприятие – Libre Graphics Meeting 2008, которое будет проходить в Бреслау, Польша. Затем летняя конференция GUADEC в Стамбуле. А на Google Summer of Code мы не проходим ввиду возрастного ценза – мы давно уже не студенты [улыбается].

LXF: Чего, с вашей точки, зрения не хватает сообществу Open Source?

ИН: Прежде всего, не хватает профессионалов в предметной области. В каком-то смысле удачное развитие проекта обусловлено моим многолетним опытом работы в полиграфии. Такой багаж знаний невозможно получить «наскоком по книжкам».

Сходная ситуация и в других областях. Коммерческие проекты могут себе позволить держать и программистов, и предметных специалистов. В Open Source, к сожалению, это затруднено, поскольку при эпизодическом общении тяжело быстро найти общий язык и выработать какую-то стратегию развития проекта. Наиболее оптимальный вариант – это когда программист является специалистом в предметной области. Например, в команде Scribus такая же ситуация, как и у нас. В результате проект действительно прочно стоит на ногах.

ВФ: Я бы добавил, что часто не хватает способности договариваться и делать «грязную» работу сообща. Ну и нужно побольше коммуникаторов-информаторов, таких как Александр Прокудин.

LXF: Чего бы Вы пожелали сообществу?

ВФ: Счастливого Нового Года!

ИН: Хай щастить в Новому Роцi!

LXF

Личные инструменты
  • Купить электронную версию
  • Подписаться на бумажную версию