Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> История Linux и движения за свободное ПО

Свой свободный программный проект. Часть 2

Оригинал: Running a free software project
Автор: John Calcote
Дата: 9 октября 2007
Перевод: Александр Тарасов aka oioki
Дата перевода: 18 сентября 2007

При копировании материала обязательны указание автора, переводчика и ссылки на оригинал статьи и настоящую страницу как первоисточник перевода!

Первая часть

IRC-каналы

Традиционно списки рассылки считались основным средством общения в мире свободного ПО. Недавно появился более живой способ общения, который и используют в настоящее время администраторы проектов. Internet Relay Chat (IRC) - протокол мгновенного обмена сообщениями (IM-протокол), который был разработан для работы при высокой сетевой нагрузке. Большинство IM-протоколов, такие как AIM, Google Talk, Yahoo Messenger, Microsoft Messenger и даже проприетарные IM-сервисы, такие как Novell GroupWise Instant Messenger (GWIM) разработаны для эффективного общения лишь двух или трех людей в реальном времени.

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

Чтобы начать работу с IRC, нужно загрузить IRC-клиент. IRC-клиенты соединяются с IRC-серверами, которые организуют заинтересованные в этом люди. Вот список популярных IRC-клиентов: ChatZilla, KVirc, Opera, Pidgin, savIRC, X-Chat и PJIRC. Существуют и другие клиенты, но эти могут работать на большинстве современных платформ. В дополнение к этим клиентам, которые являются исключительно IRC-клиентами, существуют также IM-клиенты, поддерживающие множество протоколов, например, GAIM и Trillian (только для Windows).

На самом деле IRC - относительно старый протокол, придуманный в конце 80-х. Хотя он и был формализован рабочей группой IETF, однако часто формального определения не придерживаются (наверняка это происходит по причинам того, что старый протокол уже широко распространился, прежде чем был стандартизирован). Попробуйте несколько клиентов и выберите свой. По сути IRC - протокол командной строки, хотя некоторые IRC-клиенты скрывают это от пользователя. К примеру, интерфейс IRC, предоставленный программой GAIM, предполагает, что вы знаете необходимый набор IRC-команд и можете их использовать. IRC-интерфейс, встроенный в веб-браузер Opera, с другой стороны, высокоавтоматизирован, множество действий выполняется "за кулисами". Стоит потратить немного времени, чтобы понять, какой IRC-клиент ваш.

Настройка IRC-клиента

Как правило, есть два этапа установки IRC-клиента: начальная установка и вход в чат-комнату. Начальная установка делается лишь один раз. К примеру в клиенте Opera (как показано на рисунке 3) вы выбираете в меню "Tools" пункт "Mail and Chat accounts". Добавляете новую учетную запись нажатием кнопки "Add" и выбираете пункт "Chat (IRC)" из списка. Теперь нажмите "Next >" и введите свое имя и e-mail. На следующем шаге вы выбираете свой ник. Ник - это краткий псевдоним, прозвище, под которым вы будете известны в сообществе. Ник должен быть кратким и запоминающимся. Что бы вы не выбрали, помните, что другие люди будут называть вас по нику, поэтому позаботьтесь о том, чтобы он вам нравился. Наконец, на последнем шаге выберите IRC-сервер, к которому вы хотите подключиться с помощью этой учетной записи. Выбор сервера производится по некоторым важным критериям. Если вы присоединяетесь к существующей чат-комнате, то нужно выбрать сервер, который поддерживает эту комнату. Часто в документации по существующей чат-комнате написано, какой используется IRC-сервер. К примеру, freenode - популярный чат-сервис. Внутри сервиса вы можете выбрать ваш местный сервер, ведь freenode имеет сервера по всему миру. Для большей производительности выберите тот сервер, который ближе к вам географически.


Рисунок 3: Настройка учетной записи IRC в Opera

После заведения своей учетной записи можно присоединиться к чат-комнате или каналу. В Opera это делается путем выбора в меню "Chat" пункта "List rooms", как показано на рисунке 4. Opera откроет диалоговое окно "Chat rooms", его инициализация займет несколько секунд (будет произведен поиск всех существующих чат-комнат, на большинстве IRC-серверов их количество исчисляется тысячами). Можно произвести быстрый поиск, вводя в поле поиска часть названия требуемой комнаты. Список будет динамично укорачиваться по мере ввода букв.


Рисунок 4: Доступные IRC-каналы в диалоговом окне Opera

Если вы хотите создать свою собственную чат-комнату, нажмите кнопку "Add" и введите уникальное имя. Элегантный способ проверить уникальность - ввести задуманное имя в поле поиска. Если список после этого окажется пустым, значит имя уникально. После этого в главном окне Opera появится новая вкладка, специально для вашей чат-комнаты. Когда все входят в комнату с одним именем, все оказываются в одной чат-комнате. Это просто. Сервис чатов и имя чат-комнаты - важная сторона вашего IRC-канала, так что позаботьтесь о том, чтобы эта информация фигурировала на веб-сайте вашего проекта.

Будучи первым пользователем в чат-комнате, вы становитесь ее оператором. Операторы владеют несколько большими правами, чем обычные пользователи, однако проблема состоит в том, что когда последний человек покидает комнату, канал уходит в небытие. В конце концов, такова природа чат-комнат IRC. Но есть способы решения этой проблемы. Возможно зарегистрировать свою чат-комнату на IRC-сервисе, что делает ее более-менее постоянной, а вы будете ее контролировать. Чтобы воспользоваться этими функциями, вам нужно познакомиться с синтаксисом команд IRC, и правилами на выбранном IRC-сервисе. В этом случае вам также нужно переключиться на более мощный, но менее дружественный пользователю IRC-клиент, нежели Opera. Хорошим выбором здесь будет ChatZilla - одно из расширений Firefox. ChatZilla пытается спрятать как можно больше деталей, но с сохранением функций регистрации чат-комнат и аутентификации.


Рисунок 5: Настройка Chatzilla, IRC-расширения для Firefox

Чтобы начать пользоваться ChatZilla, установите это расширение как показано на рисунке 5. Идите на веб-сайт ChatZilla и нажмите на ссылке "install" внизу главной страницы (разумеется, из браузера Firefox), и следуйте инструкциям. При следующей загрузке Firefox выберите в меню "Tools" пункт "ChatZilla". Появится небольшое диалоговое окно, в нижней части которого можно увидеть вкладки. Одна из них - *client*, содержащая информацию о клиенте ChatZilla, включая ссылки на крупнейшие IRC-сервисы, известные ChatZilla. В верхней части окна вы увидите:

Known Networks xx ChatZilla w.x.y.z Connected Networks 0

Внизу под подписью [INFO] вы увидите список доступных сетей в виде ссылок (выделено на рисунке 5).

Нажатие на одной из сетей приводит к открытию новой вкладки, специально для этого IRC-сервиса, метка на вкладке будет соответствовать имени сети. К примеру, если вы выбрали freenode, у вас будут вкладки *client* и freenode (см. рисунок 6). Всегда можно переключиться на вкладку *client* и выбрать другую сеть. Это не только не закроет ваше соединение с freenode, а создаст новое соединение. В верхней части вкладки соединений вы увидите текст:

URL irc://freenode/ Connected Lag x.xx seconds.

Чтобы присоединиться к каналу на этом сервисе, вызовите меню "IRC" и выберите пункт "Join channel". Затем введите имя нужного канала или просто нажмите кнопку "Refresh Now". Появится список доступных каналов. Этот список сам регулярно обновляется в фоновом режиме, так что если вы не нажали кнопку "Refresh Now", список все равно сам заполнится. Если вам известно имя нужного вам канала, вы можете просто его ввести. Либо вы можете ввести часть имени канала в поле "Quick Search:", тем самым отфильтровав список (кстати, клиент Opera делает это быстрее, чем ChatZilla). При появлении нужного канала выберите его и нажмите "Join". Спустя некоторое время вам может надоесть эта рутинная процедура и вы захотите ускорить сей процесс. Можно просто вводить команду /join #канал (как показано на рисунке 6) в текстовом окне в нижней части ChatZilla. Нужно только, чтобы вкладка канала (к примеру, freenode) была открыта. Кстати, для того чтобы отправить команду нужно нажимать Ctrl + Enter, т.к. возможен ввод нескольких строк в сообщении (вы можете также нажать мышкой кнопку "return/enter" справа от текстового окна.


Рисунок 6: Соединение с IRC-сервисом и вход в чат-комнату с помощью ChatZilla

Вы, должно быть, уже заметили, что узкое окно в левой части содержит список имен пользователей или ников, которые находятся в текущем канале. Можно пообщаться с любым из них. К примеру, можно написать так:

Силиконовый_Джо, никак не могу вспомнить команды, которые вы вчера мне писали, они должны включать новую функцию OpenSnorkleFork. Не могли бы вы повторить их?

Будем надеяться, Силиконовый_Джо не спит на рабочем месте и не ушел покушать. Тогда он может ответить вам в течение нескольких секунд. Кстати, если вы уходите на долгое время, будет вежливо по отношению к другим чатникам, если вы обозначите свое отсутствие. В ChatZilla для этого нужно нажать на кнопку с вашим ником слева от текстового окна и выбрать пункт "Away".

Если вы точно будете использовать продвинутые функции IRC, такие как регистрация комнаты, используйте продвинутый клиент, такой как ChatZilla, а не такой простой, какой встроен в Opera. Узнать больше о синтаксисе команд IRC можно, к примеру, в Википедии.

Ленты новостей RSS

RSS расшифровывается как (готовы?) "Really Simple Syndication" ("Очень простая рассылка"). RSS-ленты - просто XML-представление новостной информации. Эти XML-страницы доступны по конкретному URL, ассоциированным с хостинговым сайтом и вашим проектом. Наверняка вы раньше видели маленький оранжевый квадратик с изображением распространяющихся радиоволн в адресной строке вашего браузера (см. рисунок 7), в этом случае текущая страница содержит одну или несколько RSS-лент. RSS-ссылки обрабатываются с помощью программ чтения RSS. Как и в случае с IRC, здесь также существует широкий выбор RSS-программ. Google вам в помощь, наберите "Программы для чтения RSS", и делайте свой выбор. Если вы используете ChatZilla, то наверняка вам будет интересно узнать, что существует также множество расширений Firefox для поддержки RSS.


Рисунок 7: Использование сборщика новостей Wiz RSS - еще одно расширение Firefox

Зачастую RSS-ленты поддерживаются хостингами свободных программ. К примеру, SourceForge автоматически обновит RSS-ленту, когда вы выпустите новую версию своего проекта или сделаете о нем выпуск новостей.

Отслеживание ошибок

На большинстве хостинг-сайтов свободных программ отслеживание ошибок производится с помощью средства Bugzilla, ставшего стандартом де-факто. Bugzilla была придумана в команде разработчиков Mozilla для отслеживания ошибок, естественно, в Mozilla. С тех пор Bugzilla стала стандартом, с которым постоянно сравнивают другие средства отслеживания ошибок. Несмотря на повсеместное использование Bugzilla, SourceForge не пользуется ей по причинам, связанными с бизнесом, а вместо нее используется средство под названием Tracker. Tracker - часть объединенной системы разработки SourceForge (SourceForge Collaborative Development System).

Научиться пользоваться базовыми функциями Bugzilla или Tracker почти тривиально; не буду тратить время на них в этой статье, скажу лишь, что существует огромное количество замечательной документации, хотя она, в общем-то не нужна, даже администраторам проектов.

Управление конфигурациями программ

При работе над каким-то важным проектом, при работе командой, в которой вы участвуете, наверняка появляется желание защитить свою интеллектуальную собственность (ИС). Вы защищаете программы законодательно путем использования свободной программной лицензии, а физически - с помощью некоторой системы управления конфигурациями программ (Software Configuration Management, SCM). Существует множество SCM-систем. Обычным делом в свободных проектах является использование Concurrent Versioning System (CVS) и Subversion (SVN), но на подходе и другие системы, например GIT.

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

Многие годы CVS была основным выбором SCM-системы в свободных программных проектах - в основном потому, что она свободна и проста в использовании. Но она содержала недостатки, которые все признавали, но все равно с ней работали. Недавно новая SCM-система начала вытеснять CVS. Subversion (или SVN) расхваливалась разработчиками как "доделанная CVS". Некоторые люди не поверили в то, что CVS можно доделать и приняли другое предложение - GIT, который проповедовал совершенно другой взгляд на распределенные SCM.

Хотя я регулярно использую SVN (конечно, она неидеальна), но я ценю философию и распределенную сущность системы GIT. К сожалению, большинство хостинг-сайтов свободных проектов предоставляют лишь CVS и/или SVN. Если вы хотите использовать какой-то другой сервис, который не предоставляется хостинг-сайтами, придется устанавливать свой собственный публичный репозиторий, к которому пользователи смогут обращаться как к официальному источнику.

Исходный код можно распространять в виде архивов tar.gz, которые хранят ваш текущий рабочий каталог проекта. Но это неуклюжее решение. Было бы намного лучше дать публичный доступ на чтение репозитория вашего исходного кода. При этом пользователи всегда будут иметь доступ к самым последним изменениям кода. Вы также можете дать право основным помощникам проекта так, что они смогут вносить изменения напрямую в репозиторий.

Лучшая документация по Subversion - электронная книга от O'Reilly под названием "Version Control with Subversion", ее можно взять здесь. Когда вы поймете основные концепции, описанные в этой книге, электронная документация на сайте Subversion становится самым лучшим справочником по этой теме.

Веб-сервисы проекта

Создать веб-сайт проекта - это отдельная самодостаточная задача. Большинство свободных программных проектов либо движимы коммерцией, либо поддерживаются отдельными программистами. Можно догадаться, является ли проект коммерческим или нет, просто взглянув на его веб-сайт. Коммерчески поддерживаемые проекты зачастую имеют динамичные веб-сайты, в то время как веб-сайты проектов от индивидуалов относительно статичны (и, возможно, не столь гламурны).

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

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

SourceForge предлагает достаточно привычные веб-сервисы. По умолчанию вашему проекту дается доменное имя вида projectname.sourceforge.net, но можно также привязать и внешний домен (к примеру, projectname.org). Сервисы веб-хостинга SourceForge включают доступ к серверу по FTP и SSH. Каждому проекту выделяется в файловой системе каталог вида /home/groups/p/pr/projectname, где projectname - Unix-имя вашего проекта. В этом каталоге вы найдете подкаталог htdocs, в который вы должны поместить главную страницу проекта index.html. Именно на нее будет попадать пользователь при наборе адреса http://projectname.sourceforge.net/ в адресной строке браузера.

Если у вас нет веб-мастера (которого вы наняли для своего проекта), я настоятельно рекомендую ограничить свой сайт статическим содержанием. Тем не менее, веб-сервер SourceForge поддерживает PHP, и можно влить немного динамического содержания при малых усилиях. Структурированность - важная часть хорошего веб-сайта свободного проекта, поэтому стоит задуматься об использовании шаблонов CSS. Я создал веб-сайт проекта за несколько дней с использовании шаблонов CSS, которые свободно распространяются в интернете на таких сайтах, как OpenWebDesign.org. Эти CSS-шаблоны бесплатны, в общем просты в использовании и модификации и обычно самодостаточны, что весьма приятно.

Выбрав дизайн, вы можете распаковать архив локально, модифицировать дизайн под свои нужды и добавить всю соответствующую информацию по вашему проекту. Дополнительно стоит поместить в главном меню ссылку на страницу проекта на SourceForge, URL должен выглядеть примерно следующим образом: http://www.sourceforge.net/projects/projectname.

После настройки страниц вашего веб-сайта, можно начинать их загрузку на веб-сервер SourceForge при помощи FTP, но лично я предпочитаю следующий механизм. Я храню мой веб-сайт в репозитории Subversion, после чего указываю клиенту Subversion создать рабочую область сайта на моем компьютере в локальном каталоге htdocs. После этого я создаю задачу cron, которая будет автоматически выполнять команду svn update ежедневно в 2 часа ночи (не люблю работать ночью). С такой системой мне никогда не приходится обновлять сайт вручную: я просто изменяю содержание веб-сайта на моем компьютере, отправляю в репозиторий и жду следующего старта задачи cron. На следующий день я захожу на сайт и вижу, что он обновился. В любом случае, содержать веб-сайт вашего проекта в SCM-репозитории - замечательная идея. SCM-репозиторий моего проекта содержит два каталога - projectname.web, содержащий веб-сайт проекта, и просто projectname, содержащий собственно исходные тексты.

Продолжение следует...