Дмитрий Бородаенко: участник проекта Debian, разработчик samizdat
Долго представлять Дмитрия Бородаенко не имеет смысла, тем более, что он хорошо известен участникам LVEE как один из основателей мероприятия. Очевидным было как появление Дмитрия в нашей подборке интервью с разработчиками свободного ПО, так и то, что тема разговора выйдет далеко за рамки программистских будней.
— Расскажи в двух словах о себе: чем занимаешься как “цивильный” человек, и какова роль свободного ПО в твоей деятельности за рамками повседневных заработков?
Себе на хлеб я зарабатываю разработкой программного обеспечения и всем, что с этим связано. Свободным софтом начал заниматься еще в студенческие годы, когда подрабатывал публикацией статей в “Компьютерных вестях”. Тогда я впервые столкнулся с феноменом свободных программ, с проектом GNU… и по ходу своей журналистской деятельности начал раскапывать, что же это такое. Понравилось так, что сам решил этим заняться. Тем более, что дело оказалось нехитрое — вопреки распространенному стереотипу сообщество очень открыто и как правило дружелюбно к новичкам.
Сейчас я занимаюсь проектом Debian, в котором состою в официальной должности Debian Developer. Это означает, что я имею право выкладывать новые пакеты и править баги в существующих. Также являюсь основным автором проекта samizdat — системы открытой публикации, написанной на ruby.
— Как давно случилось увлечение журналистикой, программированием, свободным ПО?
Программированием заинтересовался еще в средней школе (тогда это был BASIC) и к 10-11 классу уже точно знал, что буду программистом. После школы поступил на программистскую специальность в РТИ (теперь БГУИР), и на 3-м курсе, году в 1996, вышел на связь с “Компьютерными Вестями”. Вышел абсолютно случайно, сама собой написалась в плане размышления статья о компьютерных игрушках как феномене… я отправил ее в газету, а им так понравилось, что они пригласили меня к дальнейшему сотрудничеству. И дальше мы плотно сотрудничали в течение 10 лет.
Свободным софтом я заинтересовался в 1997 году, тогда же начал писать об этом статьи в “КВ”, по мере того как узнавал что-то новое. Публиковал, пропагандировал этот феномен, так как понял, что именно свободный софт является наиболее перспективной методикой развития программного обеспечения вообще. Это в принципе естественно для человека — стремиться помочь окружающим, потому что человек — животное общественное. Человеческое общество выживает не как разрозненная совокупность индивидуумов, а как единое целое, где люди друг другу постоянно помогают. И свободный софт, в отличие от режима копирайта, более полно отражает этот режим функционирования человеческого общества.
— А как и когда началась деятельность в качестве разработчика Debian?
Официально в разработчики Debian меня приняли в 2003 году. До этого я просто присылал патчи, участвовал в обсуждениях на рассылках, периодически тестировал какие-то вещи и посылал свои тест-репорты. В прочих проектах участвовал по мелочи. То делал какие-то правки для подсветки синтаксиса в текстовом редакторе vim, то для работы с запакованными файлами в оболочке midnight commander.
Обычно происходило так. Обнаруживается баг в midnight commander. При распаковке zip-файлов, запакованных под Windows, mc слетает с файлами нулевого размера. Поскольку я midnight commander до сих пор активно пользуюсь, а тогда пользовался тем более, мне этот баг, естественно, мешал. Полез посмотреть, в чём там дело, оказалось, что всё очень просто. Скриптик для разбора zip-ов занимал буквально два десятка строчек и найти в чем было дело, оказалось несложно.
С подсветкой синтаксиса то же самое, я в то время писал на ASP, на Visual Basic. А в vim тогда были подсветки синтаксиса для HTML и для Visual Basic. Соответственно, оказалось достаточно несложно их совместить.
— Чем ты занимаешься в Debian сейчас?
Поддерживаю несколько библиотек. Начинал с написанной моим товарищем Игорем Вергейчиком ICQ-программы alicq, которую я запакетировал в debian. Однако в 2006 году я оставил поддержку данного пакета, после того как перестал пользоваться этой программой.
Cейчас я в основном пакетирую библиотеки на ruby, которые нужны для работы samizdat. То есть, когда происходит добавление в samizdat какого-то функционала, я смотрю, есть ли что-нибудь готовое на ruby. Если есть, тогда смотрю, есть ли это в Debian. И если еще нету, пакетирую.
Ну и по ходу дела как-то так получилось, что я поддерживаю в Debian практически все библиотеки для работы с базами данных из ruby. Потому что samizdat работает с кучей баз данных. И регулярно получалось так, что я присылал баг-репорты кураторам пакетов, писал: “Вот, у вас такая штука не работает, поправьте”. А мне отвечали: “Слушай, я этой штукой уже давно перестал пользоваться, не хочешь себе пакет забрать?”. Так они все у меня в результате и поскапливались.
Но поддерживать их несложно: выходит новая версия — взял, перепакетировал. Зарепортили баг — я отправил оригинальным разработчикам в upstream. Если они что-то поправили, то я соответственно, это в свой пакет включаю.
— Как много времени занимает эта активность?
Очень мало. У меня на самом деле под присмотром пакетов немного. Ну как немного… В принципе среднее для разработчика количество, что-то в районе 13-ти. Когда выходит новая версия какого-то из этих пакетов, то перепакетирование и заливка в Debian, при отсутствии структурных изменений, это буквально 10-15 минут. Если есть какие-то структурные изменения, поменялся формат пакета или система сборки… Тогда это уже вечером часок-другой посидеть, разобраться. Иногда бывает так, что заедает работа или семейные обстоятельства, некогда этим заниматься… тогда откладываю на выходные. Потом сажусь за выходные, 3-4 пакета за день полностью разгребаю.
При этом мои пакеты в довольно хорошем состоянии. На все 13 пакетов по-моему, суммарно, 2 или 3 бага всего открыто, которые я не могу пока исправить.
— А насколько плотная работа ведется по системе samizdat?
Поскольку это мой хобби-проект, то я на него трачу все своё свободное время — кроме того времени, которое занимают развлечения другого рода. Когда есть настроение поковыряться в чем-нибудь, то сразу сажусь и ковыряюсь в своё удовольствие. Нет настроения — всё так и лежит. Бывают иногда экстренные ситуации, когда вдруг находится какая-нибудь критическая ошибка — баг, когда отваливается целый кусок функционала на сайте, сделанном на этом движке. Или появляется какая-нибудь уязвимость в безопасности — такие вещи, конечно, приходится исправлять быстро. По безопасности, по-моему, два раза были ошибки, которые приходилось срочно исправлять. А так авралов обычно нет.
— В проекте samizdat есть устойчивая команда?
Командой назвать это сложно, есть контрибуторы — люди, которые иногда привносят что-нибудь. Самый активный из них это товарищ boud — француз, родом из Бельгии, живёт в Польше. Он очень часто присылает очень дельные баг-репорты, даже патчи свои пытается писать. От него наверное 20 или 30 патчей я принял в основную ветку. От остальных по нескольку патчей на человека.
— В чем особенности продукта samizdat и почему тебе интересно им заниматься?
Samizdat интересен тем, что он реализует занятную концепцию открытого демократического процесса управления структурой контента со стороны пользователей сайта. Как возникла эта идея? Я заинтересовался проектом Semantic Web — это концепция веба, расширенная до такой степени, что сайтами и базами знаний могут пользоваться не просто люди, а запрограммированные агенты. Программы, которым дана инструкция что-то найти в интернете, идут в интернет и пользуясь методами логического вывода и прочими алгоритмами искуственного интеллекта, находят заданную информацию.
Для этого была разработана модель данных RDF — Resource Description Framework — очень простая, но более гибкая по сравнению с реляционной. В RDF всё записывается утверждениями(“тройками” в формате “субьект-объект-предикат”). Но при этом любую из этих троек тоже можно представить в виде набора троек. Это позволяет накладывать на информацию дополнительные слои метаданных (например, к какому разделу относится определенный материал, и кто из пользователей записал в базу такое утверждение).
В samizdat пользователям разрешено голосовать о том, насколько истинна та или иная RDF-тройка. И соответственно, поскольку вся структура сайта сделана на RDF, пользователи могут голосовать по поводу того, где какой материал должен лежать. Вместо того, чтобы заводить модераторов, которые будут раскладывать всё, что появляется, на сайте и тратить на это кучу времени — пользователи всё это решают сами. Сайт получается самоподдерживающийся и с хорошей структурой, где легко найти нужную информацию.
— Как изменился мир свободного софта за те годы, что ты “варишься” в нем? Какие ожидания 10-12-летней давности сбылись, какие нет? О чем тогда даже подумать не могли?
Трудно сказать. Лично я, честно говоря, не ожидал, что Linux завоюет мир. Поэтому то, что он до сих пор его все еще не завоевал, для меня не явилось большим разочарованием. С другой стороны, например, я надеялся, что десктопная часть будет развиваться несколько быстрее. Казалось, что то, что мы имеем сейчас — полноценный десктоп в виде Gnome или KDE, который сравним или лучше “виндового”, — могло бы появиться раньше лет на пять.
Были некоторые вещи, о которых 10 лет назад вообще не думалось. Например, мультимедиа. Мультимедиа на Linux в не очень хорошем состоянии из-за патентов, торговых марок и прочих “родимых пятен” интеллектуальной собственности. В 90-е годы о таких вещах вообще никто особо не задумывался — у нас, по крайней мере, на постсоветском пространстве. А оказалось, что очень многие разработчики свободного софта просто связаны по рукам и ногам патентами, например, на тот же mp3, который на сегодня является просто вездесущим форматом аудио.
Формат mp3 запатентован настолько, что невозможно без всяких преград разрабатывать проигрыватели и редакторы mp3, кодеки. Потому что в большей части “цивилизованных” стран мира такой софт будет просто невозможно распространять.
— Тогда казалось, что ужесточение патентной политики не слишком возможно, потому что его отвергнут пользователи…
Как выяснилось, пользователи готовы скушать гораздо больше *, чем мы могли тогда подумать. Стратегические и маркетинговые аналитики компаний, заинтересованных в патентовании, оказались гораздо изобретательнее, чем можно было предположить, и придумали множество всяких способов впаривать патентованные решения в нагрузку к красивым блестящим рюшечкам, на которые пользователи ведутся.
— Можно ли сегодня вообще говорить о каких-то объективных интересах тех или иных групп пользователей, в контексте которых свободное ПО предпочтительнее проприетарного?
Во-первых, есть категория технических пользователей, для которых свободный софт абсолютно незаменим. Это системные интеграторы. Когда нужно воплотить какое-то техническое решение конкретных задач, очень кстати приходится наличие огромной массы свободного софта, доступного сразу же, без всяких демо-версий и навороченных ломающих систему защит от копирования, без необходимости кому-то что-то платить. Конечно, это сокращает трудозатраты на системную интеграцию на порядки.
Во-вторых, те пользователи и организации, которым нужно обеспечивать собственную безопасность, без свободного софта жить также не могут. Свободные программы в этом отношении по определению надежнее проприетарных. Кроме того, при выявлении проблем с безопасностью в свободном ПО они решаются быстрее, а системы защиты и разграничения доступа в том же Linux развиваются интенсивно и предоставляют много разных интересных возможностей.
В-третьих, свободный софт является обязательным компонентом в виртуализации сервисов, которая используется повсеместно в каждом интернет-хостинге, и в набирающих популярность “облачных вычислениях”. Потому что когда мы ведем речь о том чтобы управлять тысячами или десятками тысяч автоматически инсталлируемых и деинсталлируемых операционных систем, весь этот “зоопарк” просто не может состоять из собственнических закрытых компонентов. Любые инструменты защиты от копирования, лицензионного контроля будут усложнять и удорожать систему, а юридические соглашения могут ограничивать варианты использования составляющих “облака”. В то же время со свободным софтом всё очень просто: до тех пор, пока ты не пытаешься сделать систему закрытой, всё остальное делать можно. И дальше уже можно ни о чем не беспокоиться, использовать свободную программу во всех положениях, в том числе и в таких, которые и не предполагались первоначальными авторами.
— Раз уж мы заговорили про облачные вычисления, то не приведет ли рост их популярности к исчезновению дискурса свободных программ как такового? В ситуации, когда пользователь не контролирует окружение и не устанавливает в него программы, вопрос о распространении и модификации ПО может потерять смысл.
Я думаю, что не приведет. Более того, отчуждение пользователя от программного обеспечения и окружения, в котором оно выполняется, с успехом имеет место уже сейчас и достаточно давно. Настолько давно, что оно уже учтено в семействе лицензий GPL версии 3.
Есть такая небезызвестная уловка “ASP Loophole” (“Лазейка поставщика сервисов”), которая основывается на том, что предоставление сервисов через сеть в рамках обычной GPL не считается распространением ПО, обеспечивающего работу этих сервисов. И, соответственно, появляются возможности для использования в таких проектах закрытых модификаций свободного кода без публикации наработок. Эта уловка предотвращается версией GPL, называемой Affero GPL (AGPL). Она требует публикации модифицированного кода в случае, если он взаимодействует с пользователем через сеть.
То есть проблема известна, и решение для нее уже есть. Думаю, что свободный софт, который предназначен для сетевого использования, будет постепенно переводиться под лицензии такого рода.
Что касается проблемы свободы программного обеспечения в широком смысле — думаю, что в контексте облачных вычислений она будет еще более актуальна. Потому что перенос работы в “облака” будет обозначать, что окружение, в котором выполняются программы, будет становиться всё более программным нежели аппаратным. А аппаратная часть компьютеров сегодня практически полностью закрыта, альтернатив практически нету. И для свободного софта это огромная проблема и очень серьезная угроза.
С переходом же к облачным вычислениям большая часть окружения из категории железа переходит в категорию “софт”, которую сделать свободной технически горазо проще. Потому что репликация софта не требует никаких дополнительных ресурсов, соответственно, гораздо сложнее ограничивать распространение таких решений. Соответственно, если появятся закрытые и проприетарные решения для облачных вычислений, точно также появятся решения и свободные, которые смогут конкурировать с закрытыми гораздо успешнее, нежели свободное железо конкурирует с закрытым железом.
— А как насчет проблем с безопасностью, независимостью и приватностью пользователей в “облачном” режиме?
Эта проблема, безусловно, есть. Ситуация с правами пользователя и сейчас “не фонтан”, а в таком режиме появится еще один способ, кроме существующих, для того, чтобы ограничивать пользователя в его возможности использования компьютерных ресурсов.
Наиболее проблемной в этом отношении считается концепция так называемых “доверенных вычислений” (“trusted computing”) — построения аппаратной платформы, которая не будет разрешать запускать на этой платформе неразрешенные программы. Как, например, приставки X-Box или PlayStation, которые по сути являются персональным компьютером общего назначения, но аппаратным образом ограничены так, чтобы на это железо нельзя было поставить ничего, кроме ПО, предполагаемого изначальным поставщиком оборудования. Если все компьютеры в мире станут такими же, как эти игровые приставки, на свободном программном обеспечении можно будет поставить крест. Для того чтобы поставить Linux на такую систему, нужно будет покупать мод-чип, а распространение мод-чипов скорее всего будет поставлено вне закона и полностью ограничено.
С “облачными вычислениями” проблема абсолютно аналогичная — как только пользователь теряет малую толику контроля над собственной системой, корпорациям, которые хотят получить дополнительную прибыль, сразу становится выгодно каким-то образом этого пользователя ограничить, чтобы заставить его платить за то, за что еще недавно он платить был не обязан. “Облачные вычисления” дают еще одну возможность, помимо уже существующих, для такого вымогательства.
— Какие тут могут быть альтернативы и методы борьбы?
Когда пользователь будет приходить в интернет-магазин и покупать себе “облако”, у него будет выбор. И если будут “облака”, искуственно ограничивающие пользователя, и за ту же цену — не ограничивающие его, выбор очевиден. Пользователь посмотрит на количество галочек и купит себе то решение, которое позволяет иметь больше возможностей за те же деньги.
Соответственно, вопрос заключается в том, насколько рынок “облачных вычислений” будет дружественен к свободному софту изначально. Те “облака”, которые делаются сейчас, делаются в основном на базе свободного софта, на базе Linux. Любые ограничения, которые внедряются там, будут искуственными. И любой компании, которая захочет конкурировать с поставщиком таких решений, будет ничего не стоить эти ограничения снять. Более того, это как раз внедрение запретительных политик обойдется в дополнительные расходы. Соответственно, в плане цены с “облаком”, ничем искуственно не ограниченным, конкурировать будет сложно.
С другой стороны у корпораций традиционно будет что противопоставить. Интеллектуальная собственность, патентование, копирайт, попытки поставить “облака” без ограничений вне закона или другими способами, известными со времен первых монополий 19 века, пытаться усложнить им жизнь. Как мне кажется, эта борьба будет продолжаться еще очень долго, с переменным успехом. Активисты и сторонники свободного софта сдаваться в этом отношении, естественно, не собираются. Но противостоять им будут те, кому интересно заниматься не производством полезных вещей, а вымогательством у пользователей денег за то, за что они платить не обязаны. И эта сторона будет продолжать свою бизнес-модель всеми способами защищать.
Поэтому расслабляться и говорить о том, что достигнута какая-то принципиальная победа, еще рано. И рано будет еще очень долгое время.