Friday, May 15, 2009

Mis vahe on BSD ja GPL vabavara litsentsidel

BSD litsents on vabavara versioon, kus kasutajal on õigus teha tarkvaraga mida iganes soovib, kaasa arvatud muuta selle tarkvara suletuks või seda müüa. Seejuures on tarkvarale tavaliselt koodis 3 peamist tingimust mis lisatakse litsentsi kirjeks tarkvarale juurde ning need litsentsi kirjed peavad sinna ka igal juhul kääma. Seejuures tarkvara ennast võib piiramatult levitada igal eesmärgil. Lisaks keelab BSD litsents kasutada tarkvara loomisse panustanud isikute kasutamist lõpp-toote tarkvara versiooni promomiseks ilma selleks luba küsimata.
BSD lubab tarkvara kasutada kommertslikus kasutuses, samuti lubab see integreerida tarkvara kommertstarkvara toodetes ( proprietary commercial products ). Projekti kus osana kasutatakse ka BSD litsentsi alla käivat tarkvara, võib levitada ka selliselt, et muuta see suletud koodiga tarkvaraks ( closed source software ).
Internetis võib saada ka näiteks vaba tarkvara template´i mis on omamoodi universaalne ning templates lünkadesse oma tarkvara projekti nime pannes võib selle enda BSD litsentsiks teha. Selline litsentsi põhi on näiteks aadressil
BSD litsentsi template - http://www.opensource.org/licenses/bsd-license.php

Sellise litsentsi all on näiteks Yahoo User Interface Library , kus Yahoo programmeerimise meeskonna poolt loodud tarkvara on lubatud kasutada teistes veebiprojektides BSD litsentsi all. Yahoo Library on sisuliselt erinevad koodijupid, millega saab hõlbustada veebiarendaja tööd, pakkudes võimalust integreerida neid koodi osasid veebiarendajate poolt arendatavate projektidega. BSD-ga on võimalik ka see et lisaks on tarkvara veel levitatav mingi teise litsentsi tüübi all.

GPL puhul on erinevuseks see, et vabadus tähendab eelkõige tarkvara vabadust. Kui sellist tarkvara levitada siis peab olema kindel see et kood jääb avatuks – open source - ka neile kellele seda tarkvara levitatakse. Seejuures võib selline vabavara olla levitatav raha eest või ka tasuta. Kood peab olema ja jääma open source koodiks igakordsele kasutajale, ka juhul kui keegi midagi juurde arendab ja edasi levitab. http://www.opensource.org/licenses/gpl-2.0.php – GPL litsents.
GPL litsentsi kasutab näiteks maailma üks populaarsemaid blogi ja cms süsteeme Wordpress. Wordpress põhineb PHP ja MySQL rakendusel ning blogi tarkvara kasutamine on tasuta.
Wordpressi kasutaja võib levitada seda tarkvara ja muuta , samuti teha sellele täiendusi (plug-ins). Juhul kui selliseid arendusi on tehtud, peab ära märkima millal ja kelle poolt on täiendused tehtud ning samuti PEAB jätma koodi avatuks (open source) teistele kasutajatele - neile omakorda koos levitamise ja koodi muutmise õigusega.
Wordpressi arendatakse oma vabatahtlike kogukonna poolt, samas on enamik peamisi arendajaid tööl firmas Automatic. Lisaks arendajatele on ka vabatahtlike testijate kogukond, kellel on olemas esmane ligipääs Beta versioonidele tarkvarast. Vigade avastades naad saavad saata teateid leitud vigadest Trac keskkonda.

Kuidas saada häkkeriks

Vaba tarkvara kogukonna täht Eric S. Raymond on kirjutanud kokkuvõtva artikli "Kuidas saada häkkeriks." Ta kirjutab sellest, kuidas saaks ühest inimesest häkker ja mis ühte ehtsat häkkerit üldse iseloomustada võiks.

Häkkerid kuuluvad kogukonda , mis koosneb tipp-programmeerijatest ja võrguässadest kes jagavad teatud kultuurilisi ühisväärtusi ja on moodustanud selle baasil omalaadse kogukonna. Häkkeriks saad sa siis kui sa oled osa sellest kultuurist, oled sellesse andnud oma panuse ning teised selles olijad tunnevad sind ja nimetavad sind häkkeriks.

Häkkerite mõtteviis ei pea olema piiratud tarkvaraga ja arvutitega. Seda mõtteviisi võib kohata mistahes teaduse või kunsti kõige kõrgematel tasemetel. Tarkvarahäkkerid tunnustavad neid mujal leiduvaid sugulashingi ja võivad ka neid häkkeriteks kutsuda. Mõned häkkerid koguni väitvat et
häkkeri loomus ei sõltu sellest keskkonnast kus ja millega häkker töötab. Raymond kirjutab oma kirjatükis tarkvarahäkkeritest ja häkkeriks saamisest.

Jargon File annab häkkeri kohta erinevaid definitsioone kuid enamik nendest on seotud tehniliste oskustega ja armastusega probleemide lahendamise vastu ja piiride ületamise vastu.

Raymond annab mõned asjad, mis tuleks selgeks õppida selleks, et häkkeriks saada:

1. Õpi programmeerima
2. Hangi üks avatud lähtekoodiga Unixitest ja õpi seda kasutama
3. Õpi kasutama veebi ja kirjutama HTMLi
4. Kui sa ei oska piisaval määral inglise keelt, õpi see ära

Esimesel kohal selles loetelus on programmeerimise selgeks õppimine. Selle all peetakse siin silmas eelkõige eksperdi taseme saavutamist sel alal. Huvitav tähelepanek, mida mainib Raymond , on see, et inimesel kulub valdavalt mistahes elu valdkonnas tipp-eksperdiks saamisele 10 aastat – malemängust kuni maalimise ja ujumiseni. Isegi Mozart olevat 10 aastat enne muusikat teinud, enne kui 14 aastaselt oma heliloominguga välja tulema hakkas. Seda teemat on uurinud näiteks Bloom (1985), Bryan ja Harter (1989), Hayes (1989). Simmon ja Chase (1973). See reegel tundub ka minu arvates kehtivat. Kui vaadata kasvõi profipalluriteks minevaid 18-19 aastasi sportlasi, siis valdavalt on neil taga 10 aastane mängukogemus. Ei esine ju sellist asja , et eelmisel aastal hakkas noormees mängima ja järgmisel aastal valiti profikorvpalluriks miljonise palgaga.

Selle 10 aasta reegli puhul Raymond tundub, et vaikib sellisest asjast nagu talent ja ei räägi sellest ka Norvig. Samas tundub nii, et saa igast inimesest profikorvpallurit ja ei saa ka igast inimesest 10 aastaga tipp-programmeerijat ehk häkkerit.

Õppima alustamiseks soovitab Google häkker Peter Norvig , et tuleks leida endas huvi programmeerimise vastu ja tunda asjast lõbu. Lõbu peaks olema alguses nii laialt , et sellest jätkuks siis järgmiseks 10-ks aastaks. Õppimise käigus on oluline suhelda palju teiste programmeerijatega ja lugeda teiste programmeerijate kirjutatud koodi. See on olulisem Norvigi arvates kui õpikute lugemine ja koolis käimine. Kõvemad tegijad olevat valdavalt iseõppijad ja tuuakse näide ka ühest häkkerist , kes kirjutanud edukalt koodi, kuid on piirdunud keskharidusega.
Kõige parem viis programmeerimist õppida on nende meeste arvates ise koodi kirjutada - õppimine läbi tegemise. Teaduslikult kõlaks see selliselt, et isikute maksimum tase ei tulene mitte kogemuste pagasi suurenemisest,vaid taset on võimalik parandada pideva pingutusega ja kordustega. Umbes nagu vabaviske harjutamine spordis – kogemusi ja oskusi võib olla , aga kogu aeg peab harjutama ja kordama – siis säilib tase kõrge.

Üks asi, mida Raymondi kirjatükist ei oleks osanud oodata on see, et programmeerimise õppimise alustamiseks ta soovitab mitte alustada Java programmeerimise keelest. Samas on Java koolides üle maailma õppekavades, kus objekt-orienteeritud programmeerimise algkursus antakse tihti just Javas. Java olevat tema väitel küll hea selleks, et anda algajatele kiiresti võimalus teha mõned töötavad graafika rakendused , kuid ei ole hea selleks et õppida selgeks programmeerimise teised olulised põhialused.

Raymond soovitab alustada programmeerimist mitte Javaga, vaid Pythoni programmeerimise keelega.

Lisaks muidugi on vajalik teha endale selgeks HTML ja alustada seda näiteks aadressiltHTMLdog.com

On olemas ka veel häkkeritele sarnase nimega seltskond, keda nimetatakse “kräkkeriteks”. Need on peamiselt noorukid, kes tunnevad lõbu arvutitesse sissemurdmisest. Pärishäkkerid ei taha nendega midagi tegemist teha. Ma siis samuti nendest ei kirjuta. Veel vähem sooviks kirjutada sellest , kuidas saada kräkkeriks. Kui häkkeriks saab ennast pidada siis kui teised sind nimetavad häkkeriks, siis sama võiks kehtida ka kräkkerite puhul. Kuid siis on arvatavasti kräkkeri nime saamiseks vaja sooritada ühine kuritegu.

Raymong kirjutab ka mõned juhtnöörid häkkeritele, mis käivad häkkerite kultuuri juurde ja millest võiks joonduda:

1. Kirjuta avatud lähtekoodiga tarkvara
2. Aita teiste poolt kirjutatud tarkvara testida ja siluda
3. Avalda tasuta kasulikku teavet
4. Aita vabatahtlikult hooldada infrastruktuuri
5. Teeni häkkerikultuuri

Lisaks annab Raymond oma kirjatöös ka rida täiendavaid stiilipunkte häkkeritele. Need on lisa-oskused või harjutused , mida paljud häkkerid peavad oma mõtteviisi ja filosoofiat arendavateks tegevusteks. Ta soovitab kirjutada korrektselt emakeeles ja arendada sõnamänge ja sõnakilde. Samuti toob ta ära ka muid tegevusi, millega võiks üks häkker tegeleda. Nendeks on idamaiste meditatsiooni tehnikate õppimine (eelkõige zen) ja võitluskunstide õppimine, samuti muusika kuulamise oskuse arendamine.

Kõige häkkerlikumad võitluskunstid olevat need, mis rõhutavad vaimset distsipliini, lõdvestunud valmisoleku seisundit ja olukordade kontrollimist, mitte niivõrd toorest jõudu.

Samuti soovitab Raymond millegipärast lugeda just ulmekirjandust, see olevat samuti häkkeritele omane. Miks mitte lugeda ka ajakirjandust ja luuletusi ?

Raymondilt tahaks lõpetuseks küsida , et millisel kohal on naised häkkerite kultuuris, kui palju neid on häkkerite hulgas ja kräkkerite hulgas ning kas naised peaksid samuti karated õppima ja näiteks küünarnukiga telliskivi pooleks lööma kui soovivad stiilsed häkkerid olla.

Saturday, May 2, 2009

OpenOffice.org ja Firefox vabavara projekti arendusest

OpenOffice.org ja Firefox arendused.

Mis on OpenOffice.org

OpenOffice.org , mida tuntakse ka lihtsalt OpenOffice nime all , on kontoritarkvara , mis sobib erinevatele operatsiooni süsteemidele. Teda levitatakse vabavarana. See tarkvara toetab formaati OpenDocument Format (ODF) andmete vahetuseks erinevate faili formaatide vahel, muuhulgas toetab ka Microsoft Office formaate. Alates 2009 aasta märtsist toetab OpenOffice 80 keelest.

OpenOffice.org arendus sai alguse StarOffice tarkvarast, mis on kontoritarkvara pakett, mida alguses arendas StarDivision ja mille omandas arvutifirma Sun 1999. aastal. 2000. aasta juulis tehti lähtekood avalikuks. Tänaseks on Suni StarOffice enda arhitektuur põhinev OpenOffice.org algsel koodil, millele on lisatud teatud autoriõigusega kaitstud komponendid.

OpenOffice nimi ise on registreeritud kaubamärk, mida omab üks Hollandi firma ja lisaks on see kasutusel firmal Orange Suurbritannias. Seetõttu on õige ja korrektne toote nimetus OpenOffice.org

The OpenOffice.org API plugin for NetBeans lihtsustab OpenOffice.org lisamoodulite (extensions) arendust. Seda saab kasutada OpenOffice.org programmeerimiseks, samamoodi laiendada OpenOffice´t et anda sellele täiesti uut funktsionaalsust. The OpenOffice.org API plugin lihtsustab uute arendusprojektide tegemist. ( http://wiki.services.openoffice.org/wiki/OpenOffice_NetBeans_Integration )

Sun Microsystems teatas, et StarOffice lähtekood on tehtud avalikuks LGPL litsentsi alusel ja Sun Industry Standards Source License (SISSL) kavatsusega luua avatud lähekoodiga arendusmudel sellele tarkvara projektile. 2005. aastal loobuti SISSL litsentsist ja jäeti tarkvara ainult LGPL litsents kasutusse.

Algseteks eesmärkideks oli kohandumine Microsoft Office tarkvaraga, parem ja kiirem jõudlus ning väiksem mälu kasutus, parem integreerimine teiste platformidega ( eriti GNOME-ga), parem front-end selleks et luua raporteid, forme ja päringuid. Samuti integreeriti süsteemiga SQL andmebaas ning sooviti luua programmile parem kasutajamugavus ( usability ). Beeta versioon sellest tarkvarast tehti avalikuks 2007 aasta märtsis.

Sun subsideerib OpenOffice arendamist kuna soovib kommertsalustel pakkuda oma klientidele StarOffice kontori paketti. StarOffice on Suni enda kommertsalustel töötav toode, millega nad pakuvad OpenOffice juurde lisaks erinevaid lisavõimalusi: 1) lisa fondid ( eriti Ida-Aasia kirjatüübid) 2) Adabas andmebaas 3) Lisa templated dokumentide jaoks 4) Clip art asjad 5) Sorteerimise funktsionaalsus Aasia versioonidele 6) Lisa võimalused failide filtreerimiseks 6) Konfiguratsioonide manageerimise võimalused 7) migratsiooni hindamise tööriist ja macro migratsiooni tööriist.

Vastavalt OpenOffice missiooni kirjeldusele on OpenOffice.org projekti missiooniks “Luua kogukonnaga juhtiv rahvusvaheline kontoritarkvara toode, mis töötaks kõigil peamistel tarkvara platformidel ja tagaks ligipääsu funktsionaalsusele ja andmetele läbi vabavara komponentide API-de ja XML-il baseeruvale formaadile.” OpenOffice.org eesmärgiks on konkureerida Microsoft Office´ga ja sellega saab avada kõiki faili formaate, mida saab ka avada Microsoft Office programmis.

OpenOffice.org lehelt saab lisaks ka nimekirja programmi lisa komponentidest ja laiendustest, mis osaliselt on tasulised, näiteks rakendus millega saab andmebaasi raporteid koostada või rakendus EuroOffice, mis on mitmekeelne rakendus eurooplaste jaoks ning tasuta. EuroOffice Professional näiteks on juba eraldi rakendus ja see on tasuline. http://www.multiracio.com/eurooffice

Kui vaadata OpenOffice.org viimaseid tarkvara versioone, siis nad toovad uue versiooni turule keskmiselt iga 3 kuu järel. Eelmine versioon tuli turule Jaanuari lõpus 2009. aastal ja see sisaldas peamiselt bugide parandusi. Sellele eelnes versioon Oktoobris 2008, kus olid juba uued arendused ja lisafunktsionaalsus. Oktoobri lõpus anti välja ka versioon turvaaukude parandamiseks ja bugide parandamiseks.

OpenOfficel on ka oma turvameeskond. Alates 2008 aasta juunist ei ole turvafirma Secunia leidnud OpenOffices turvaauke. Kaspersky on näidanud ära võimalikud turvariskid , kuid teadaolevalt ei ole avalikkuses ringlevaid turvariske hetkel olemas. Prantsusmaa kaitseministriga kohtumisel olevat tulnud teemaks suuremad võimalikud turvariskid programmis, kuid arendajad ise väidavad et tegemist ei ole mingi kriitilise turvariskiga. Sarnaselt Microsoft Word´ile ka OpenOffice dokumendid sisaldavad meta andmeid selle kohta, mida dokumendis viimati muudeti ja kelle poolt.

OpenOffice.org puuduseks on see et ta on seotud Java Runtime Environment´iga, mis ei ole vaba tarkvara ja mis samuti kuulub Sunile. Seda sõltuvust püütakse hetkel vähendada ja panna tarkvara jooksma GNU Classpath platformi peale. Osa OpenOffice funktsionaalsusest on senini sõltuvuses JRE tehnoloogiast , kuid kuna Java on plaanis viia samuti GNU litsentsi peale, siis selline sõltuvus pikas perspektiivis ei ole määrav.

OpenOffice on levitatav vabavarana nii erakasutuses kui firmade jaoks. Samas müüakse programmi ka internetis – koos lisateenustega nagu näiteks 24 tunnine tehnilise toe teenus või programmi saatmine kasutajale CD-kettal.

OpenOfficel on ka oma arendajate manual, kus on ära näidatud OpenOffice arendamise võimalused ja moodulid.
http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/OpenOffice.org_Developers_Guide


Mis on Firefox

Mozilla Firefox on veebibrowseri projekt, millel on maailmas 22,48%-line osakaal browserite turul, jäädes alla ainult Microsofti Internet Explorerile. Firefoxi omaduste hulka kuulub tabi-dega lehitsemise võimalus, keelekorrektor, bookmarkimise võimalus, download manager ja integreeritud otsimootori võimalus ( tavaliselt on sisse integreeritud Google ). Firefoxil on ka palju lisamooduleid, mida arendavad kolmandad osapooled. On palju erinevaid lisamooduleid, millest populaarsemad on NoScript Javascripti blokeerimise moodul, FoxyTunes meedia player, reklaamide blokeerimist võimaldav Adblock Plus, Stumble Upon mis võimaldab veebilehti leida ning Xmark bookmarkide märkimise rakendus.

Firefox töötab erinevate Linux, Mac OS X, Microsoft Windows platformide peal ja paljude teiste Unixi laadsete operatsiooni süsteemide peal. Viimane stabiilne versioon 3.0.10 anti välja 2009 aasta aprillis. Lähtekood on avatud ja litsentseeritud kolmik-litsentsina – GNU, GPL/GNU , LGPL / MPL . Need litsentsid lubavad igaühel vaadata, muuta ja levitada lähtekoodi ja mitmed avalikult kätte saadavad rakendused on ka selle peale ehitatud. Ametlikud lõppkasutaja versioonid programmist on aga litsentsitud Mozilla End User License Agreement ( EULA ) all, kaasa arvatud Firefoxi nimi, kujundus. Kuna Microsofti operatsiooni süsteemides on lisaks ka clickwrap kasutajaleping, mis määrab ära kasutustingimused , siis Free Software Foundation ei pea neid programmi versioone vabavaraks.

Mozilla kasutab seetõttu kolmik-litsentsi. Arendajad saavad vabalt valida millise litsentsi versiooni alt nad programmi alla laadivad , kui nad soovivad näiteks piiratud kasutusega lisarakendusi luua Firefoxile , siis võivad näiteks MPL litsentsi all toimetada.

Nii nagu on OpenOfficel nii on ka Firefoxil väga suur extension´ite valik avalikkuses kasutusel. Need võib leida kodulehelt https://addons.mozilla.org/en-US/firefox/

Firefoxi arendus ise on jagatud moodulitesse ja igal moodulil on oma pealik (owner) , kes vastutab selle mooduli arenduse eest. Omanik võib valida omale ka järeltulija (inglise k. - peer), keda omanik on volitanud abistama mooduli valmimisel. Igal moodulil on lisaks ühele omanikule mitu järeltulijat. http://www.mozilla.org/owners.html

Lisaks on kogukonnal ka oma kogukonna portaal, kus kirjas arendusega seonduv info https://wiki.mozilla.org/MozillaWiki:Community_Portal , viimased uudised ning ka lingid viimastele koodi versioonidele ja parandustele - https://wiki.mozilla.org/index.php?title=Releases&curid=22471&diff=142215&oldid=142096 ,
https://wiki.mozilla.org/Special:RecentChangesLinked/Help:Contents

Üleval on portaalis ka pikemaajalised eesmärgid, näiteks accessibility plaanid on 2009 aastaks ette , aadressil https://wiki.mozilla.org/Platform/2009-Accessibility-Goals

Internetis on levinud ka kriitikat firefoxi arendamise teemadel, kus on varasemalt puudusena välja toodud seda, et ainult 6 inimest vaatavad koodi üle ja üks kirjutab laisalt ülevaateid teistele. Selline kriitika esines aastal 2005 Slashdotis http://developers.slashdot.org/developers/05/03/06/2232211.shtml?tid=154&tid=8

OpenOfficet arendab hetkel üle 100 programmeerija. Versioonide uuendamiseks kasutatakse cvs Verson Control süsteemi. http://tools.openoffice.org/dev_docs/OOo_cws.html . Peamised programmi osad on jagatud erinevatesse cvs harudesse niiöelda puuna. Igas harus on tavaliselt vähemalt kord nädalas püstitatud uus milestone.

Nii nagu on Firefoxil oma kogukonna veebiportaal, on sama asi ka OpenOfficel. Selles on samuti oma arenduste roadmap http://wiki.services.openoffice.org/wiki/Features , koht kust saab alla laadida Subversionist viimaseid versioone koodist

Arenduse protsess ise on sarnane Firefoxiga – iga mooduli eest vastutab vabatahtlik või moderaator, kes vaatab üle vabatahtlike poolt saadetud koodijupi ning kommenteerib või muudab seda. Isik , kes soovib uue arenduse lisada, saab Subversionist viimase versiooni vastavalt milestonile alla laadida ning oma koodijupi sinna lisada, seejärel ta vaatab kuidas tema koodijupp võiks ühilduda teiste moodulitega, testib seda ning saadab üle vaatamiseks oma haru moderaatorile. http://tools.openoffice.org/background.html OpenOffice.org puhul on erilaadne veel see, et kuna Suni teine toode OfficeStar baseerub OpenOffice peal siis arendatakse mõlemat toodet sisuliselt koos.

Raymond ja vabavara arenduse edu kriteeriumid

Eric S. Raymond, kirjutab oma teoses "The Cathedral and the Bazaar" sellest, kuidas loodi Linuxi tarkvara vaba tarkvara "turu" arendusmudeliga. Ta püüab aru saada kuidas on see võimalik , et selliste mittetraditsiooniliste tarkvara arendusmeetoditega saab luua niivõrd eduka toote ja kas esineb mingeid seaduspärasusi , millega saab ka kõiki teisi vaba tarkvara projekte sama edukalt arendada. See artikkel on omalaadne selles suhtes, et selles püütakse kirjeldada ühte teedrajavat edukat projekti - Linuxi projekti, kuid sellest Raymondi kirjeldusest endast sai samuti teedrajav teos. See on üke peateoseid selles osas, kuidas peaks arendama vaba tarkvara - turu - projekte üldisemalt , millised on peamised edu kriteeriumid, miks on selline arendusmudel edukas.

Alguses ta toob välja põhjused, miks üldse sellise asjaga tegelema hakatakse nagu vaba tarkvara. Et mis sunnib inimest ilma rahata selle asjaga tegelema. Algseks tõukeks on tavaliselt mingi isiklik vajadus või “kiiks” mingi valdkonna tarkvara vastu. Raymond soovis luua vaba tarkvara projekti , mis baseeruks POP3 meilide saatmise tehnoloogial ja mida ta vajaks ning mis kõrvaldaks juba olemas olnud toodete puudused.
Ta ei pea seejuures oluliseks seda, et kogu kood oleks arendaja poolt isiklikult ise tehtud vaid peab suureks oskuseks ja märksa efektiivsemaks lahenduseks seda kui arendaja suudab kiiresti võtta kasutusele ja muuta ning kohandada kellegi teise poolt kirjutatud tarkvara. See olevat ka tõeliselt andeka programmeerija tunnus.
Raymond sai oma projekti arenduseks algse tarkvara ja selle kasutajate baasi Carl Harriselt, kel puudus edasine huvi asjaga tegelemise vastu, kuid kes soovis selle edasi anda aktiivsele asjast huvitatud entusiastile. Et toode tuli Raymondile koos kasutajatega, siis andis see kohe ka võimaluse testida neid metoodikaid, mida on kasutanud oma tarkvara arenduses kasutajaskonnaga suhtlemisel Linux.
Iga vabavara projekti jaoks on oluline, et algne kood ja arhitektuur oleks heal tasemel ja et esialgsed arendajad paneks asjale tugeva aluse. See peaks andma motivatsiooni ka teistele arendajatele ning algsete arendajate puhul on veel oluline võime eristada uute pakutavate lahenduste sobivust olemasoleva koodiga. Linusel olevat need omadused olemas olnud.
Üheks peamiseks tarkvara arenduse eripäraks , mis Linusel oli kasutuses oli uute koodi versioonide ja arenduste kiire ja varane turule toomine. Selline põhimõte oli olnud ka Unixi arendamisel, kuid Linux viis selle uuele tasemele ning vahe oli intensiivsuses millega uusi versioone avalikkuse ette toodi. Ei olnud harvad juhtumid kus uus tarkvara versioon tehti avalikuks mitu korda päevas koos vastavate kommentaaridega.

Selline põhimõte omakorda oli tulemuslik seetõttu, et kasutajaskond sai kiirelt näha koodi selle juurutamise algfaasis ning suur kogukond andis selle eelise, et keegi tavaliselt ikka vead üles leidis. Sellest on saanud omalaadne Linuxi arendamise põhimõte või kreedo, et iga viga on leitav koodist kui sellest on piisav arv silmi üle käinud.

Sellise arenduse eripäraks on veel ka see, et traditsioonilise tarkvara arenduse puhul on arendus jagatud kahte gruppi – programmeerijad ja teises grupis on testijad. Avatud koodi puhul neid piirjooni ei ole ja igaüks näeb koodi ja saab teha ettepanekuid koodi parandamiseks. See kiire tagasiside meetod viib ka parema kommunikatsioonini ning parema arusaamiseni vigadest arendajatel ja testijatel kuna osatakse vaadata koodile peale nii arendaja kui testija vaatepunktist.

Raymond räägib küll ka tarkvara arenduse põhilistest meetoditest ja võrdlusest vanamoodsa katedraali meetodi tarkvara arendusega, kuid tema artiklis on suur osakaal pandud kogukonnaga suhtlemisele. Ta räägib sellest kuidas ta ergutas oma kasutajaid osalema pidevalt ning kuidas ta kiiresti uusi versioone avalikkuse ette tõi ning üritas igakülgselt kasutajaid motiveerida ning tunnustada. Ta toob ka välja huvitava paradoksi - mida rohkem sa kogukonna liidrina tunnustad hea panuse andnud liikme tööd, seda rohkem arvatakse et tegelikult oled sa suurema osa sellest tööst ikka ise ära teinud ).

Kuigi vaba tarkvara arendatakse mitteformaalses anarhiat meenutavas õhkkonnas, siis Raymond peab oluliseks ikkagi lõppkasutajaga arvestamist. Lõppkasutaja ja tema ootused ning vajadused ei jää ka vaba tarkvara puhul unustusse. Ühe näitena sellisest arenduses tõi ta välja piirangu seadmine meilide läbi laskvusele, mida olevat soovinud peale panna Euroopas asuvad community liikmed. Nii ka tehti.
Toote arenduse juures peab ta oluliseks , et toode oleks piisavalt lihtne ja arusaadav, tehniliselt liiga keerukaks ajamine võib kogu projekti tema arvates kinni jooksutada.

Raymond tuleb oma kirjeldustes ikka uuesti ja uuesti kogukonnaga suhtlemise teemadele ning eestvedamisele. Üheks oluliseks teguriks projektide elluviimisel on liidrite programmeerimise oskused, kuid mitte vähem oluliseks inimeste käima tõmbamisel ei pea ta “sarmikas olemist”. Väga raske on vaba tarkvara projekti alustada ja esimesi samme teha turu meetodi arendusel, peab olema keegi kompetente ja ülesannet püstitav algne persoon , kes kogu projekti “ära seadistab.” Edu printsiibiks on see, et briljantse kompetentsiga tegelane sõnastab särava visooni selliselt et vabatahtlikud võtaksid initsiatiivi ja hoolitseks juba ülejäänu eest.

Osa tarkvara tööstusega seotud inimesi on ka arvanud, et vaba tarkvara - turu meetodi - edu aluseks on olnud see, et nendes projektides osaleb või suudab osaleda kõigest 5% kõige andekamatest programmeerijatest ehk siis seda tarkvara luuakse oma ala tippude poolt. Samuti on teada , et on olulised tootlikkuse vahed tavalise programmeerija ja tipp-programmeerija vahel.

Teiseks selliste projektide edu aluseks , mida rõhutab Raymond , on entusiasm – joy is the asset. Kuna kogu vaba tarkvara arendus töötab vabatahtlikkuse alusel , siis võiks seda ka loogiliseks pidada. Õigupoolest on see üks loogilisemaid asju kogu selles vaba tarkvara arendamise kirjelduses võrreldes katedraali tarkvara arenduse meetodiga. Väga paljud põhimõtted , arendusmudelid tunduvad käivad risti vastupidi nendele põhimõtetele mis traditsiooniliselt on olnud kehtivad katedraali mudelis.

Entusiasmist vaba tarkvara arendus tekkis ja see on jäänud ka selle arendusmeetodi põhiliseks edu kriteeriumiks minu arvates. Nagu ütleb ka Raymond lõpetuseks, siis mängimine on majanduslikult kõige efektiivsem töötamise viis. Tuleb hoolitseda et asi oleks meeleolukas ja lõbus , mida inimesed sellelaadsetes projektides teevad ja samavõrd oluline selle turu juures minu arvates on see, et keegi aeg ajalt näitaks tõelisi “jõu ja ilu numbreid” , mis inimesi tsirkusesse uuesti ja uuesti tagasi tooks. Peamine selles artiklis minu meelest on see, et rahvas oleks pidevalt saalis, siis on asja tegemisel mõtet ja kui rahval on lõbus kokku tulla siis mõttetalgute vormis saab üldjuhul mistahes probleemid ka sobiva ülesande püsituse korral ära lahendada. "Kuni su küla veel elab, elad sina ka."

Vabadus kui õigus ja kohustus

Eben Moglen räägib oma artiklis “Anarchism Triumphant: Free Software and the Death of Copyright” sellest, kuidas on arenenud ja muutunud tarkvara litsentseerimise põhimõtted. Kunagi olid arvutitööstuses ajad kus kogu turgu domineeris üks ettevõte – IBM. Sel ajal olid arvutid suhteliselt kogukad ja keerulised masinad. IBM-il oli tavaks oma tarkvara vabalt kasutada anda koos lähtekoodiga. Kood oli küll IBM-i oma ning oli suures osas IBM-i töötajate kirjutatud, kuid seda jagati ka oma klientidele tasuta ning innustati kliente tegema täiendusi sellele tarkvarale. Kuna nad domineerisid turgu ja olid peaaegu monopoli seisuses sellele ajal , siis on see ka loogiline kuna monopoolne turu positsioon võimaldas teenida kasumit eelkõige riistvara tootmise pealt.

Sellel ajajärgul oli tarkvara seotud kindlate tootjafirmadega, kuid tarkvara arendajad ei suhelnud omavahel aktiivselt. Tarkvara ei jagatud kasutajate vahel mitte üle võrgu , vaid magnetlintidel. See omakorda eeldas seda, et tarkvara arendusprotsess pidi olema mingil kujul tsentraliseeritud. Juhul kui kasutaja tegi parandusi ja täiendusi omalt poolt IBM-i tarkvarasse, siis esmalt jagati uut koodi IBM-i endaga. Seejärel IBM otsustas , kas pakutud uut lahendust võiks kasutada ning integreerida olemasoleva koodiga. Sellest tulenevalt oli arvuti tarkvara vaba tarkvara – selle omamiseks ei olnud vaja raha kulutada ja kasutustingimused võimaldasid koodiga ise eksperimenteerida ja seda muuta ning täiendada.

Sellel ajal ei olnud autoriõiguste küsimusi selles mõttes, et ei olnud seadusega piiritletud õigust “kedagi välja jätta” tarkvara arendamise õigustest ( to exclude others ), mida peetakse autoriõiguste esmaseks sisuks ja mõtteks USA ülemkohtu poolt.

Läks mõni aeg mööda ja tarkvara tootmise turule tekkis samuti üks domineeriv tegija ja peaaegu monopoolses staatuses tegija, kelleks oli Microsoft. Nüüd aga tekkis vastupidine huvi ning firmale muutus oluliseks, et saaks laiema avalikkuse “välja jätta” ja ise määrata tarkvara arenduse standardeid ja taset, sest Microsofti võim seisnes eelkõige Windows lähtekoodi omamises. Kui nende toode oleks olnud vabalt saadaval ja igaüks oleks saanud sellele täiendusi teha, oleks see võinud olla ohtlik Microsoftile kui tarkvara tootjale raha teenimise mõttes. IBM-ile samas oli omal ajal kasulik jagada tarkvara vabalt laiali , sest kasumit teeniti eelkõige riistvara müügi pealt ja IBM oli riistvara müügi monopol. Microsoft endale sellist luksust lubada ei saanud , et oleks saanud arvuteid tasuta laiali jagada selleks, et paremini selle sees oma tarkvara müüa.

Sellest tekkiski firmale strateegia, kus eesmärgiks oli leida innovaatilisi ideid väljaspoolt ning need kas maha suruda või muuta enda tarkvara osaks. Selline teguviis oli tulus ja pani tarkvara arenduses kesksele kohale autoriõigused ja omandisuhted.

Võib öelda, et Microsofti turunduse strateegiaks oli oma toodete loomine niiöelda algaja arvutikasutaja jaoks , kes ei olnud tehniliselt kuigi taibukas ning kasutas “hirmu, ebakindlust ja kahtlusi” selleks et hoida arenenumad arvutikasutajad eemale Microsofti võimalikest konkurentidest. Konkurentide olemasolu ja ellujäämine oli alati kahtluse all kuna Microsoft domineeris nii tugevalt turgu.

Kuna Microsoft oli monopol, siis juhtus see mis tavaliselt monopolidega juhtub – kvaliteet langes kuna motivatsiooni kvaliteedi nimel pingutamiseks eriti ei olnud. Tarkvara kvaliteet ja tarkvara tööstuse areng kannatas.

Muutus olukorrale tuli koos võrkude tekkega. Esialgu loodi Unixi süsteem, mis töötas erinevatel arvutitel ja pidi olema omas mõttes universaalne. Samas oli sellel süsteemil ka puuduseks see, et see ei olnud päris vaba. Vaba tarkvara arendusele pani aluse Richard M. Stallman, kes töötas MIT-is tehisintellekti loomise alal. Tema ideeks oli luua süsteem, mida arendatakse ühistööna kollektiivselt ja mis oleks esimene tõeliselt vaba kasutusega tarkvara. Seejuures tähendaks sõna “vaba” eelkõige vaba kasutamise ja muutmise õigust, mitte niivõrd vaba hinda – ehk tasuta olemist. Süsteemi nimeks sai GNU - “GNUs Not Unix”.

Kui Linus hakkas looma Linuxi süsteemi UNIX-i peale, siis oli tal mõte integreerida oma süsteem GNU süsteemiga ja lasta tarkvara vabaks selliselt, et kellelgi ei tekiks võimalust teha sellest tarkvarast konkreetselt kellegi omand. Ühistöö Linuxi kallal kandis vilja ja Microsoft oli ka ise sunnitud tõdema et tegemist on kvaliteetse asjaga. Üks Microsofti ettevõtte sisene memo ka lekkis avalikusele, kus nad tunnistasid, et Linux on usaldusväärne tarkvara selleks, et kasutada teda kriitilistes töölõikudes ja et avatud lähtekoodi mudel annab asjale pikaajalise usaldusväärsuse, mis ületab paljude teiste operatsioonisüsteemide konkurentsivõime.

Klassivahe on üsna märgatav just arenenud ja nõudliku arvutikasutaja jaoks. Linuxit kasutatakse ka tänapäeval kosmose rakettide taevasse saatmiseks ( sky is the limit ?), samas kui Microsoft oma tootega on teadaolevalt “maa peale jäänud”. Samas tuleb muidugi tunnistada, et ei ole taevas nii häid võimalusi inimestelt raha kokku korjata kui seda on maa peal ja raha kokku korjamise oskuse osas on Microsoft senini ületamatu. Ja mis see äri tegemise mõte oligi ..?

Moglen läheb oma kirjatöö lõpus ka veidi filosoofiliseks ja arutleb, mida selline de-tsentraliseeritud koostöö võiks tähendada muudes eluvaldkondades, näiteks uudiste ja info tootmise valdkonnas, kus erinevad inimesed koondavad ühistöö tulemusena kokku oma parimad teadmised ja info. Minu pakkumine on see, et sellises koostöövormis võib tekitada efektiivselt uut meediat küll – Wikipedia ja Youtube näitel.