wizytówka internetowa
Tworzenie wolnego oprogramowania to skomplikowany proces, wymagający współpracy szeregu osób zaangażowanych w produkt: programistów, grafików, webmasterów czy tłumaczy. Uwzględniając jednocześnie nieunormowany czas pracy oraz różnice lokalizacyjne, nie dziwi fakt, iż zarządzanie tego typu projektami nie jest sprawą łatwą. Z pomocą przychodzą ci wyspecjalizowane serwisy internetowe, udostępniające bezpłatne narzędzia, skutecznie wspomagające pracę w grupie.
Wojciech Kocjan
Największy z nich – SourceForge.net – w chwili obecnej hostuje blisko 150 tysięcy projektów Open Source, mając jednocześnie zarejestrowanych 1,5 miliona użytkowników. Z serwisu aktywnie korzystają twórcy tak popularnych aplikacji jak phpBB, phpMyAdmin czy SquirrelMail. Co więc serwisy podobne do SF.net mają do zaoferowania?
Idea działalności tego typu rozwiązań jest prosta – odciążenie twórców wolnego oprogramowania od podstawowych spraw dotyczących każdego projektu, takich jak: stworzenie strony internetowej, hosting plików, komunikacja z użytkownikami (wiadomości, zgłaszanie błędów i propozycji, fora dyskusyjne etc.) czy usprawnienie pracy w grupie. Ogromna popularność tych serwisów potwierdza fakt, iż są one w stanie skutecznie wspomóc proces powstawania projektu.
Podstawową oferowaną usługą jest stworzenie i utrzymywanie na serwerze strony internetowej projektu. Dostajesz również możliwość wgrywania na serwer plików (kolejnych wersji pisanej aplikacji), których lista automatycznie umieszczana jest na stronie www – zawierającej także odnośniki do wszystkich powiązanych narzędzi, których wachlarz zależy od konkretnego usługodawcy.
Serwisy SourceForge.net oraz BerliOS.de udostępniają podstawowy szablon witryny, który jest wspólny dla wszystkich projektów. Zarządzanie witryną ogranicza się więc do uzupełnienia podstawowych informacji o projekcie, dodawania aktualności, plików oraz nadania odpowiednich uprawnień członkom projektu.
Nieco inną drogę wybrały takie firmy jak Novell i Google, oferujące odpowiednio rozwiązania Novell Forge oraz Google Project Hosting – zarządzanie witryną opiera się tu dodatkowo o system typu wiki. Google stworzyło swoje własne rozwiązanie wiki, z kolei Novell zastosował oprogramowanie MediaWiki, na którym opiera się popularna encyklopedia sieciowa – Wikipedia. Wprowadzenie tych rozwiązań pozwoliło twórcom projektów na tworzenie i hierarchizowanie dowolnych tekstów na witrynie, a nie tylko stosowanie się do z góry przyjętego schematu. Jeszcze dalej poszedł serwis Dotsrc.org, który po prostu przyznaje użytkownikom dostęp do FTP i daje pełną dowolność co do wyglądu i zawartości stron internetowych. Brak standaryzacji okazał się tutaj jednak wadą dla użytkowników końcowych, którzy nie mogą w prosty sposób porównać wybranych projektów.
Każdy z opisywanych serwisów udostępnia programistom system kontroli wersji kodu. Stosowane są dwa rozwiązania: CVS (ang. Concurrent Versions System) bądź Subversion (SVN), obydwa pracujące w architekturze klient/serwer. Polega to na tym, iż kod aplikacji umieszczany jest w centralnym repozytorium, do którego każdy programista ma dostęp za pomocą własnego loginu i hasła. Chcąc dodać bądź zmienić coś w kodzie, programista pobiera aktualny kod z repozytorium, następnie lokalnie nanosi poprawki, po czym zatwierdza zmiany, powodując wysłanie na serwer zmienionych plików. System kontroli wersji automatycznie oznacza nową wersję, zapamiętuje zmiany (pozwalając je cofnąć), a także pomaga w sytuacji, kiedy kilku programistów edytowało ten sam plik. Zarówno CVS jak i SVN są popularnymi, darmowymi aplikacjami do wspomagania pracy grupowej, jednak bardzo mało firm hostingowych oferuje do nich dostęp – stąd ich obecność w opisywanych serwisach na pewno stanowi ich bardzo duży atut.
W projektach opartych o ideę Open Source bardzo dużą rolę odgrywa społeczność użytkowników - stanowi ona niezastąpione źródło pomysłów i propozycji, pomaga w wyszukiwaniu błędów, często także aktywnie włącza się w rozwój projektu, promując go, tworząc dodatki etc. W zapewnieniu odpowiedniej komunikacji między twórcami a odbiorcami, pomagają takie narzędzia jak fora dyskusyjne, listy mailingowe, ankiety, serwery news (grup dyskusyjnych) czy IRC. Większość z opisywanych serwisów udostępnia również narzędzie o nazwie „Tracker” (bądź „Issues” w przypadku Google Project Hosting) – jest to interfejs przez www, poprzez który użytkownicy mogą zgłaszać błędy bądź propozycje nowych funkcji pisanej przez nas aplikacji. Każdemu zgłoszeniu możesz przydzielić osobę za nie odpowiedzialną, priorytet, status (otwarte/w trakcie realizacji/zamknięte), kategorię czy też prowadzić dyskusję na jego temat (np. poprosić o dodatkowe informacje o błędzie).
Twórcom projektów oferowanych jest również szereg innych usług – dostęp do shella (SSH), gotowy interfejs do przyjmowania dotacji od użytkowników (najczęściej via PayPal), dostęp do bazy danych (MySQL, ew. PostgreSQL), możliwość wykonywania kopii zapasowych czy miejsce na składowanie dokumentacji. Dostępność tych usług zależy od wybranego serwisu, szczegółowe informacje zamieszczone są w dodatkowej tabeli i oczywiście na stronach internetowych konkretnych usługodawców.
Korzystanie z usług opisywanych serwisów internetowych niesie również ze sobą niezastąpioną zaletę – pomoc w promocji naszego projektu. Już w momencie rejestracji pokazujesz swoje dzieło kilku milionom użytkowników, gdyż trafiasz na stronę główną, gdzie widnieje informacja o nowych przedsięwzięciach. Odnotowywane są tam również nowe aktualności czy świeżo dodane pliki.
Open Source Initiative na swojej stronie zamieściło blisko 60 licencji zgodnych z definicją Open Source. Do najpopularniejszych stosowanych rozwiązań należą:
GNU General Public License (GPL) – najpopularniejsza z licencji, obecnie trwają prace nad jej 3. wersją, która ma zastąpić obowiązującą od 1991 roku wersję 2. Licencja pozwala użytkownikowi na korzystanie z programu w dowolnym celu, jego udostępniania, kopiowania i dokonywania modyfikacji. Niezwykle istotny jest fakt, że wszystkie programy bazujące na kodzie objętym GNU GPL muszą również być udostępniane na tej licencji. Twórca aplikacji wybierając GPL ma więc pewność, że efekt jego pracy nie zostanie włączony w zamknięte oprogramowanie.
GNU Lesser General Public License (LGPL) – pochodna licencji GPL, jednak nieco mniej restrykcyjna. Obecna wersja istnieje od 1999 roku i pozwala na na włączanie kodu opartego na GNU LGPL do zewnętrznych programów, które mogą być rozpowszechniane na dowolnej licencji – stąd licencja ta często stosowana jest do bibliotek.
Berkeley Software Distribution License (BSDL) - stworzona na Uniwerstytecie Kalifornijskim w Berkeley, skąd pochodzi jej nazwa. Licencja BSD jest bardzo liberalną, pozwala na na modyfikację i rozprowadzanie kodu, również w postaci binarnej (bez źródeł) i w ramach zamkniętego oprogramowania. Jedyny warunek to załączenie do programu informacji o autorach kodu i treści licencji. Na licencji BSD udostępniane są systemy operacyjne z rodziny BSD.
Licencja X11 – często określana jako Licencja MIT, od miejsca jej stworzenia – uniwersytetu Massachusetts Institute of Technology. Jej założenia są bardzo podobne do licencji BSD, pozwala ona bowiem użytkownikom na nieograniczone użytkowanie, kopiowanie, modyfikowanie i rozpowszechnianie kodu, zarówno w postaci binarnej jak i źródłowej. Warunkiem jest jedynie informacja o autorze i dołączenie treści oryginalnej licencji.
Mozilla Public License (MPL) – obecna wersja (1.1) została stworzona przez Mozilla Fundation i wykorzystywana jest w takich produktach jak Firefox czy Thunderbird. MPL jest niejako połączeniem licencji BSD i GNU GPL – kod źródłowy może zostać skopiowany bądź zmodyfikowany, musi jednak pozostać na MPL. W przeciwieństwie do GPL, można jednak kod wykorzystać w zamkniętym oprogramowaniu, które może być udostępnione na kilku licencjach.
Lista i treść wszystkich licencji dostępna jest na stronach OSI: http://www.opensource.org/licenses
Warto więc poświęcić trochę czasu – zwłaszcza na początku – na dobry opis tworzonego przez nas oprogramowania czy informowanie na bieżąco o postępach w pracy. Większość serwisów bada również wskaźnik aktywności projektów, określany na podstawie liczby zmian w repozytorium kodu czy dodanych zgłoszeń błędów bądź propozycji usprawnień. W przypadku dużej aktywności projektu trafia on na listę rankingową, co pozwala na znaczne zwiększenie liczby odwiedzin naszej strony. W przypadku SourceForge.net wybierany jest również „Projekt miesiąca”, który przez następny miesiąc jest dodatkowo promowany – prezentowane są sylwetki twórców oraz wywiad z nimi.
Bardzo ciekawą funkcjonalnością, udostępnianą przez SF.net, BerliOS oraz Novell jest tzw. „Help wanted” czyli prośba o pomoc. Jeśli poszukujemy np. dodatkowego programisty czy grafika, możemy zamieścić (oczywiście bezpłatnie) ogłoszenie o tym fakcie, które prezentowane będzie na specjalnej podstronie. Jest to również przydatne dla osób chcących włączyć się w rozwój projektu, a nie mających ciekawego pomysłu na swój własny – w ten sposób mogą takowy znaleźć, jednocześnie pomagając potrzebującemu twórcy ogłoszenia.
Jeśli masz zamiar stworzyć własny projekt oparty na którejś z licencji Open Source – nie powinieneś mieć problemu z dostaniem konta na którymś z serwisów. Najłatwiej założyć projekt na Google Project Hosting – wystarczy do tego konto (Google Account), które jest wspólne dla wszystkich usług Google (jak np. Gmail). Jeśli już takie posiadasz, wystarczy wejść na stronę http://code.google.com/hosting/createProject i wypełnić formularz – podając nazwę projektu, jego opis, wybraną licencję i kilka etykiet (tagów), najlepiej go opisujących. Po wypełnieniu formularza, automatycznie zostanie przyznane ci konto, wraz z wszelkimi usługami towarzyszącymi.
Nieco trudniej jest dostać konto na SF.net, BerliOS czy Novell Forge – tutaj najpierw należy założyć konto w tych serwisach (o ile go oczywiście jeszcze nie posiadamy), a następnie wypełnić nieco dłuższy – niż w przypadku Google – formularz. Musisz w nim określić takie rzeczy jak używany język programowania, platformy, na które aplikacja jest przeznaczona, język interfejsu aplikacji, kategorię projektu etc. Zgłoszenie jest następnie sprawdzane przez pracowników serwisu, może zostać zaakceptowane bądź odrzucone. Na szczęście odpowiedź przychodzi zazwyczaj w ciągu kilku dni, najczęściej pozytywna – o ile starannie wypełniliśmy wniosek.
Najwięcej problemów sprawia wybór licencji, na której dostępna będzie nasza aplikacja. Przykładowo, SourceForge.net udostępnia ponad 50 licencji, z których każda zatwierdzona jest przez Open Source Initiative – taki wybór może przyprawić o ból głowy. Zauważyli to twórcy Google Project Hosting, którzy ograniczyli liczbę licencji do siedmiu, najczęściej wybieranych przez użytkowników. Aby ułatwić ci wybór właściwej licencji, w ramce prezentujemy krótki opis tych najpopularniejszych, przedstawiając ich podstawowe charakterystyki.
Z usług tego typu serwisów korzystają najpopularniejsze na świecie aplikacje Open Source, tworzone przez dziesiątki osób. Już sam ten fakt, stanowi olbrzymią rekomendację dla tego typu usług. Ciężko wskazać wady takiego rozwiązania – nie musimy się martwić o miejsce na serwerze, dostajemy szereg dodatkowych usług, łatwiej też wypromować projekt czy znaleźć chętne osoby do pomocy – i to wszystko zupełnie za darmo.
Jest to największa na świecie witryna związana z tworzeniem aplikacji Open Source. SourceForge.net utrzymuje blisko 150 tysięcy projektów, wśród nich m.in.: aplikacje p2p: eMule, Azureus, BitTorrent, edytor grafiki wektorowej Inkspace, klient FTP FileZilla, komunikator Gaim, webmail Squirrelmail, forum dyskusyjne phpBB i aplikację on-line do zarządzania bazą MySQL - phpMyAdmin. Standardowo oferowane jest 100MB miejsca dla każdego projektu, jednak ilość tą można zwiększyć, uzasadniając swoje zapotrzebowanie na większą pojemność konta.
Założycielem SF.net jest Open Source Technology Group (OSTG), która jest również właścicielem tak popularnych serwisów z tematyki IT jak: Slashdot, Linux.com, NewsForge, DevChannel, ThinkGeek czy FreshMeat – ten ostatni to serwis podobny do SF.net, lecz nastawiony głównie na aplikacje dla systemów operacyjnych typu UNIX.
Istnieje również komercyjna wersja oprogramowania o nazwie SourceForge Enterprise Edition, przeznaczona dla biznesu i będąca urozmaiconą i bardziej skalowalną wersją aplikacji używanej na SourceForge.net
BerliOS utrzymuje na swoich serwerach około 5 tysięcy projektów, w tym 61, które istnieją w języku polskim. Sama witryna również dostępna jest w naszym rodzimym języku, choć oczywiście nie dotyczy to danych projektów, którymi zarządzają poszczególni deweloperzy. BerliOS posiada zarejestrowanych ponad 30 tysięcy użytkowników, jest również jednym z najbardziej znanych tego typu usługodawców.
Serwis tworzony jest przez 5 osób z niemieckiej firmy FOKUS. Od strony technologicznej, BerliOS zbliżony jest do SF.net, korzysta nawet z tego samego oprogramowania, przerobionego jednak na własne potrzeby – oferuje m.in. dostęp do SVN oraz możliwość skierowania własnej domeny na stronę projektu umieszczoną na serwerach BerliOS.
Najbardziej znane projekty utrzymywane na niemieckich serwerach to wieloplatformowy klient p2p aMule, windowsowy klient SVN – TortoiseSVN, klient p2p StrongDC++ oraz komunikator internetowy Sim IM.
Novell, jedna z największych firm wspierających ruch wolnego oprogramowania, w ramach serwisu Forge Novell utrzymuje 850 projektów. Wykorzystywane do tego celu jest darmowe oprogramowanie, oparte o język PHP, bazę danych MySQL, serwer Apache, system raportowania błędów Bugzilla, MediaWiki oraz aplikację XoopsForge – klona SourceForge, opartego o popularny system CMS - Xoops.
Wśród hostowanych projektów znajdują się m.in.: Aurora CMS, klient poczty Evolution, MonoProject (implementacja .NET Framework), a także szereg innych projektów, w dużej mierze związanych z Novellem.
Usługa "Google Project Hosting" została uruchomiona stosunkowo niedawno, jednak już teraz korzysta z niej kilka tysięcy użytkowników. Na uwagę zasługują własne rozwiązania Google, którego projekt mocno różni się od konkurencji. Na uwagę zasługuje z pewnością integracja z Google Account, a także możliwość łączonego korzystania z Google Groups czy Google Page Creator. Znana marka, olbrzymia popularność, łatwość zakładania konta – to na pewno silne atuty tego serwisu. Co ciekawe, na stronach projektów nie są wyświetlane żadne reklamy, nawet Google Adsense.
Do wad należy z pewnością zaliczyć, iż początkowo na własne pliki otrzymujemy jedynie 10MB, jednak wielkość ta może ulec zwiększeniu po napisaniu do Google e-maila. Liczba oferowanych usług również jest skromniejsza niż u konkurencji, choć Google zapewnia, że projekt jest dopiero w fazie rozwoju i nie jest to jeszcze jego finalna wersja.
Najmniej popularny z pośród prezentowanych serwisów, na chwilę obecną obsługuje około 150 projektów. Stworzony w Danii, w porównaniu do konkurencji charakteryzuje się wysoką skalowalnością. Twórcy Dotsrc sami wręcz zapraszają do skorzystania z innych tego typu serwisów, o ile nie posiadasz żadnych specjalnych wymagań.
Wymagania, jakie musi spełnić twórca projektu to: witryna w języku angielskim bądź duńskim (język polski jest dozwolony, ale pod warunkiem, że strona jest dostępna także po angielsku), brak reklam komercyjnych oraz wstawienie logo Dotsrc. Aplikacja o konto odbywa się poprzez wysłanie e-mailem opisu i potrzebach projektu.
Duńczycy utrzymują również własny serwer IRC, serwer Usenetu, a także utrzymują mirrory (serwery lustrzane) popularnych aplikacji Open Source. Wśród hostowanych projektów możemy znaleźć m.in. popularny sklep on-line osCommerce (część projektu), klient poczty Sylpheed-Claws. Z usług Dotsrc.org korzystał również projekt MozillaPL.
Dla osób tworzących oprogramowanie i dysponujących własnym serwerem, stworzono bezpłatny projekt „Trac”, który w krótkim czasie zdobył sobie olbrzymią popularność. Stanowi on połączenie systemu CMS i środowiska do zarządzania projektem, udostępniając przy tym wiele ciekawych funkcji.
Trac napisany jest w Pythonie, stąd konieczność jego zainstalowania na serwerze. Wymagany jest również dostęp do jednej z trzech baz danych (MySQL, PostgreSQL bądź SQLite) oraz – opcjonalnie – Subversion, czyli serwer kontroli wersji, z którym Trac jest w stanie się zintegrować. Instalacja jak i podstawowa administracja odbywa się z linii komend, stąd konieczny jest również dostęp do powłoki serwera.
Po instalacji i dodaniu projektu, tworzona jest jego strona internetowa - podstawowy szablon jest bardzo profesjonalny i czytelny. Zarządzanie witryną odbywa się w oparciu o system Wiki, dostępnych jest jednak kilka dodatkowych funkcjonalności. W Tracu znajdziemy zintegrowany system obsługi zgłoszeń (Tickets), a także specjalne podstrony „Roadmap” oraz „Timeline”. Pierwsza z nich służy do określania dalszego planu rozwoju projektu, pozwalając zaplanować kolejne wydania wraz ze zmianami w nich dostępnymi. Druga opcja tworzy niejako dziennik rozwoju aplikacji, grupując wg dnia wszelkie zmiany – nowe fragmenty kodu (na podstawie zmian w repozytorium), zamknięte/otwarte zgłoszenia, modyfikacje na stronie etc. Wszystkie te elementy są ze sobą ściśle powiązane, dzięki czemu użytkownik ma dostęp do pełnej i dokładnej informacji na temat postępów w ramach projektu. System w dużym stopniu odciąża programistów, zdejmując z nich obowiązek opisywania każdorazowo wszystkich dokonanych zmian – dzieje się to automatycznie. Witryna wygenerowana przez Traca zawiera również wyszukiwarkę oraz możliwość przeglądania kodu aplikacji za pomocą interfejsu www – bez wymaganego klienta SVN.
Liczba firm hostingowych, oferujących możliwość hostowania projektów w ramach oprogramowania Trac stale rośnie. Wśród z nich znajdziemy również propozycje bezpłatne: TracOS Project (http://tracos.org) oraz WebFaction (http://www.webfaction.com/freetrac), który udostępnia darmowy hosting dla aplikacji tworzonych w Pythonie.
Oficjalna strona:
http://trac.edgewall.org/