Мај 2014. iBRE! iBČasoRpis o sElobodn!om softveru L Časopis o slobodnom softveru broj 25

7. maj 2014. 31. maj, 2014. Prvo javno izdanje LXQt-а dostupno je za Objavljen je preuzimanje. Mint 17 „Qiana“.

Мај 2014. Creative Commons Autorstvo-Nekomercijalno-Deliti pod istim uslovim1a Reč urednika broj 25

Mediji, FLOSS, LiBRE! i prirodna katastrofa

riroda, s vremena na vreme, podseti Radio i televizija bili su glavni informativni, P čoveka koliko je mali, koliko su njegove motivacioni i mobilizacioni faktor u kriznoj rukotvorine beznačajne i podseća čoveka situaciji. da nije gospodar sveta, nego smo jedan njegov mali deo. Suočen sa snagom prirode, Najnovije tehnologije su podbacile. Ni čovek zaboravlja stečene navike i oslanja se internet ni mobilna telefonija nisu bili na bazične instinkte. Kada se nešto ovako iskorišćeni u meri koliko je to moguće u katastrofalno desi, „resetovani” na osnovne širenju prave informacije. Moglo bi se reći instinkte, pokazujemo ko smo zapravo, da su te tehnologije bile čak zlou- koliko znamo tj. ne znamo, koliko smo potrebljene za širenje lažnih i „desta- spretni, organizovani, gde smo ranjivi, kako bilišućih” informacija. Ova kritika ide smo pripremljeni, šta nismo na vreme direktno na račun Vlade Srbije i državnih uradili, a trebalo je, šta smo uradili, a organa. Državni organi još nisu shvatili nismo smeli pa sad trpimo posledice i tako moć ICT-a. Prepuštanje ICT-a stihiji i dalje. nepostojanje zvaničnih informacija mogu samo da dovedu do širenja dezinformacija Glavna opasnost od prirodne nepogode je na internetu, a internet je komunikacioni prošla. Preživelima je sada ostalo da medij broj jedan u svetu. Dezinformacija na analiziraju šta se desilo, da popišu gubitke i internetu će uvek biti. Setimo se vesti o štetu i da svi zajedno počnemo da se pijanom Srbinu koji je ubio ajkulu obnavljamo. U ovu analizu dešavanja treba slučajnim skokom na njenu glavu, čime je uključiti i upotrebu medija s ciljem kriznog spasio kupače u Egiptu. Međutim, postoje informisanja. Pravovremena, tačna infor- pouzdani izvori na koje se obraća pažnja i macija je bila od ključnog značaja za ostali izvori koji se zanemaruju. Pouzdani ispravno reagovanje s ciljem preživljavanja. izvori moraju biti stranice državnih organa i lokalnih samouprava koje su ovoga puta Ovo nije prva vanredna situacija u kojoj je kasno reagovale, ili nisu reagovale uopšte, a najstarija komunikaciona tehnologija bila to je otvorilo prostor nezvaničnim izvorima od ključne važnosti. Radio tehnika i radio kao što su društvene mreže gde nisu svi amateri još jednom su pokazali da su dobronamerni. nezaobilazan faktor dobre civilne zaštite. Prosto je neverovatno da niko iz Jedan od svetlih primera privatne Ministarstva odbrane nikad nije uključio te inicijative je lokacija http://poplave.rs. Ovo ljude u institucionalni sistem odbrane, iako je primer kako privatna inicijativa, dobra su se u mnogo prilika do sad pokazali kao namera, odlična ideja, FLOSS i znanje vrlo pouzdani sistem informisanja u mogu zajedno da iskoriste pravu snagu kriznim situacijama. Oni ne traže mnogo, interneta. Stranica je bila toliko dobro nikad i nisu tražili gotovo ništa, a uvek su odrađena i pregledna da smo svi u početku na prvim linijama odbrane. pomislili da je to zvanična stranica državnih organa. Stranica je bila važna za Radio i televizija su se uglavnom dobro koordinaciju akcija dobrovoljaca. Jedini pokazali u ovim vremenima. Radio a na- problem sa tom stranicom bio je preveliki ročito televizija pokazali su još jednom da promet koji je povremeno rušio server. su najmoćniji mediji na našim prostorima.

2 LiBRE! časopis o slobodnom softveru Reč urednika broj 25

Gde je tu mesto FLOSS-u? Barem što se tiče interneta, FLOSS predstavlja najbolji alat za Broj: 25 brze intervencije. Wordpress, besplatni CMS Periodika izlaženja: mesečnik (eng. Content Manager System – sistem za Izvršni urednik: Stefan Nožinić upravljanje sadržajem) otvorenog koda sa svojim dodacima idealni su alati za brzo Glavni lektor: Aleksandar Božinović reagovanje i uspostavljanje informacionog sistema u najkraćem vremenu. U rukama Lektura: dobrih web dizajnera predstavljaju moćan Milena Beran alat. To su momci i devojke iz građanskog Jelena Munćan pokreta poplave.rs iskoristili da u najkraćem Maja Panajotović roku, za manje od dvadeset i četiri sata, Aleksandra Ristović uspostave informacioni centar sa proverenim informacijama. Redakcija: Aleksandar Stanisavljević Na kraju, pohvale idu svim dobrovoljcima, Dejan Čugalj Sandrina Dimitrijević radio amaterima, korisnicima twittera, Goran Mekić Aleksandar Todorović građanskim inicijativama, savezima, Marko Kažić Nedeljko Stefanović državnim organima i svima drugima na Veljko Simić dobrim akcijama koje su predupredile još Mihajlo Bogdanović gore posledice prirodne stihije. Nikola Hardi Gavrilo Prodanović Željko Šarić Aleksandar Brković Za LiBRE! je u ovom trenutku najbitnije da Danilo Đokić Vladimir Cicović je preživeo i ovu prirodnu nepogodu. S Petar Simović Joakim Janjatović obzirom na relativno niski prioritet rada u Romeo Mlinar Stefan Stojanović ovom projektu, dozvolili smo sebi kašnjenje Dejan Petrović Marko Novaković od sedam dana da bismo uspeli da se Zlatan Vasović Željko Popivoda pregrupišemo. Još nam se nisu javili svi saradnici. Nadamo se da su svi dobro. Čim Saradnici: se stanje smiri, moći ćemo ponovo da Velimir Baksa Milovan Krivokapić radimo punim kapacitetom. Pozivamo lektore, grafičare, autore i sve druge koji bi Ivan Bulatović Ladislav Urošević želeli da nam se priključe, da se jave na Tamara Đorđević Bojan Bogdanović našu već poznatu adresu libre[et]lugons Vladimir Popadić [dot]org. Grafička obrada: Do čitanja Dejan Maglov Ivan Radeljić

LiBRE! Tim Dizajn: Mladen Šćekić Zoran Lojpur Moć slobodnog softvera Kontakt: IRC: #floss-magazin na irc.freenode.net E-pošta: [email protected]

http://libre.lugons.org

Мај 2014. 3 LiBRE! sadržaj broj 25

LiBRE! vesti str. 6 Kako da...? str. 28

Uvod u programski Vesti jezik C (3. deo) str. 28

Puls slobode str. 8

Ugovor Republike Srbije sa Microsoftom (7. deo) str. 8 Unit tests i JUnit str. 31

Temelj sazdan od FLOSS-a str. 14

Predstavljamo str. 19

Gentoo str. 19 Oslobađanje str. 35

Uticaj matematike na nastanak i temelje računarstva (1. deo) str. 35

libGDX „Java game dewelopment framework” (1. deo) str. 24

4 LiBRE! časopis o slobodnom softveru LiBRE! sadržaj broj 25

Slobodni profesionalac str. 38 LiBRE! prijatelji

Vaš posao, open- posao (2. deo) str. 38

Internet, mreže komunikacije str. 41

OpenSSL: Sigurnost ili pretnja str. 41

Apache Lucene: Korak do -a (5. deo) str. 44

Мај 2014. 5 LiBRE! vesti broj 25

LXQt - okruženje radne površi sledeće Plasma Next generacije 14. maj, 2014. 7. maj, 2014. Objavljeno je beta izda- Prvo javno izdanje LXQt- nje Plasma Nexta. Plasma a, sledeća generacija po- Next se razvija sa planom pularnog lakog (eng. da zameni aktuelnu KDE lightweight) Linux okru- Plasma platformu. ženja radne površi LXDE, dostupno je za preuzimanje. Koristan link: http://j.mp/1gUU3jB

Koristan link: http://j.mp/1kn3lUO Objavljen je Deepin 2014 Beta 15. maj, 2014. Oracle dobio spor protiv Googla u vezi sa korišćenjem Jave na Androidu Deepin je Linux distribu- 12. maj, 2014. cija bazirana na Ubuntuu. Deepin 2014 donosi novo Američki sud za žalbe je grafičko okruženje pod sada preinačio odluku iz nazivom DDE (Deepin 2012. godine, po kojoj struktura Java Desktop Environment) koje API-ja ne može biti zaštićena autorskim je bazirano na HTML5. pravom. Oracle sada može da nastavi da od Googla traži otštetu u visini od Koristan link: http://j.mp/1n1l7Nz milijardu dolara.

Koristan link: http://j.mp/1oLaLV2 Open source Novena laptop stiže na zimu 19. maj, 2014. Sledeća tri Linux Mint izdanja baziraće se na 14.04 LTS Novena laptop uspeo je 14. maj, 2014. da prikupi sredstva koja će mu omogućiti proi- Linux Mint 17, 17.1, 17.2 zvodnju. Isporuke se i 17.3 koristiće Ubuntu očekuju za početak sle- 14.04 LTS kao bazu ume- deće godine. sto da budu bazirani na novijim Ubuntu izdanji- Koristan link: http://j.mp/1ky9xEY ma.

Koristan link: http://j.mp/1kn3Iio

6 LiBRE! časopis o slobodnom softveru LiBRE! vesti broj 25

Telenav prebacuje Scaut navigacionu The Incredible Adventures ofVan aplikaciju na OpenStreetMap Helsing 20. maj, 2014. 23. maj, 2014.

Kompanija za navigaciju Autori akcione RPG igre Telenav najavila je da će u The Incredible Adventures svojim aplikacijama na- of Van Helsing najavili su menjenim američkom tr- verziju za Linux. žištu od sada koristiti OpenStreatMap umesto TomToma. Koristan link: http://j.mp/1rzFGpp

Koristan link: http://j.mp/1u61A1g Zvanično je objavljen Git 2.0 29. maj, 2014. RawTherapee 4.1 22. maj, 2014. verzija donosi ne- koliko suptilnih novosti Objavljena je nova 4.1 koje stariji korisnici mo- verzija RawTherapeea. žda neće ni primetiti. RawTherapee je program Nove default funkcije su za obradu RAW slika koji sada više „prijateljski” dolazi sa velikim brojem nastrojene prema Git početnicima. mogućnosti. Koristan link: http://j.mp/1oLbohm Koristan link: http://j.mp/1jKLIcW

Objavljen je Linux Mint 17 Qiana Kina je zabranila Windows 8 31. maj, 2014. 20. maj, 2014. Objavljen je Linux Mint Kineska Vlada je zabra- 17 LTS kojи će biti nila korišćenje Windows 8 podržan do 2019. godine. na zvaničnim Vladinim Nova verzija donosi računarima. Kao razlog značajna unapređenja se navodi bezbednost ra- korisničkog interfejsa i čunara. Pretpostavlja se menadžera ažuriranja. da će to biti dobra prilika da Ubuntu zauzme mesto sad već nepodr- Koristan link: http://j.mp/1kwYZei žanog Windows XP-a.

Koristan link: http://j.mp/1oLb9Ty

Мај 2014. 7 Puls slobode Ugovor Republike Srbije sa Microsoftom

UUggoovvoorr RReeppuubblliikkee SSrrbbiijjee ssaa MMiiccrroossooffttoomm (7.. deo)

FLOSS u preduzećima

Autor: Dejan Maglov Kako to izgleda u svetu vlasničkog softvera? o sada u ovom serijalu smo D analizirali stanje primene FLOSS-a Interes vlasnika softvera jeste da na- u Srbiji i preporučili smo šta bi trebalo pravi dobar softver i da ga reklamiraju uraditi da bi FLOSS imao značajnije kao najboljeg za predviđenu funkciju. mesto u korist svih. Smatramo da su Cilj kompanija koje stoje iza vlasničkog naši predlozi dobri i da su realno ispu- softvera, jeste da zauzmu monopo- njivi ako bi se stekli određeni uslovi. listički položaj kako bi mogli svoj proi- Uslovi za ostvarivanje naših preporuka zvod da iznajmljuju, a ne da ga prodaju. jesu politička volja, bolje informisanje, S tim ciljem prave se karteli kompanija veći uticaj, bolja organizovanost i veća koji na bazi međusobnog dogovora aktivnost FLOSS zajednica Srbije. Apeli obezbeđuju sebi monopolsko mesto na nisu dovoljni za popularizaciju FLOSS- tržištu. Postoji dogovor kompanija a. Svet pokreću interesi i to uglavnom vlasničkog softvera kao i kompanija koji ekonomski. proizvode hardver o zajedničkom na- stupanju na tržištu. Kompanije koje zajedno nastupaju, međusobno ne konkurišu jedna drugoj. Korisnik je tako prinuđen da, ukoliko želi da koristi određeni proizvod, kupi ili iznajmi proizvode još pet-šest kompanija koje su spregnute u tom lancu. Kartelsko povezivanje je ilegalno u zapadnom kapitalizmu, ali je teško je dokazati da je ovo sprezanje namerno. Praćenje dešavanja u IT industriji jasno navodi na sumnju da kartel postoji.

8 LiBRE! časopis o slobodnom softveru Puls slobode Ugovor Republike Srbije sa Microsoftom

Sledeći u nizu interesa jesu dileri. Pravna lica nemaju izbor ukoliko Njihovo zaduženje je da kontrolisano koriste vlasnički softver. Oni moraju da distribuiraju hardver i softver na budu legalni jer ih na to teraju državni određenoj teritoriji. Oni se trude da organi koji su poslednja ključna karika klijentima uvek, kada je to moguće, u lancu interesa. Ne samo da pravna ponude paket hardvera i vlasničkog lica moraju da plate sve licence, nego su softvera. Njihov interes je da prodaju čak te licence skuplje za njih u odnosu što više ovih proizvoda i da uzmu što na fizička lica. Koji su onda interesi veću maržu. I oni, takođe, imaju interes pravnih lica da koriste vlasničke soft- da iznajmljuju vlasnički softver umesto vere? Tu postoje objektivni i subjektivni da ga trajno prodaju. razlozi ali i razlozi koji su plod zabluda i loše informisanosti. Krajnji korisnik je poslednji u tom nizu interesa koji plaća sve. Ovde moramo Objektivni razlozi za korišćenje da stanemo i razdvojimo pravna od vlasničkog softvera su: fizičkih lica. I jedni i drugi imaju interes da koriste računare kako bi • Nepostojanje FLOSS alternativa za povećali svoju produktivnost i olakšali specifični softver potreban za sebi rad. obavljanje delatnosti. • Ne postoje FLOSS upravljački pro- Razlika između pravnih i fizičkih lica je grami (eng. drivers) za specifični u tome što fizička lica niko ne hardver potreban za obavljanje proverava šta dalje rade sa svojim delatnosti. hardverom i softverom dok se ne pojave • Potreba za komunikacijom sa na tržištu sa nekim proizvodom koji je saradnicima, klijentima, bankom i produkt tog hardvera i softvera. Ovo državnim organima koji koriste znači da fizička lica mogu nekažnjeno vlasnički softver i formate koji su da koriste piratske kopije softvera dok vezani samo za vlasnički softver. ih koriste u lične svrhe ili da koriste legalni vlasnički softver i nakon isteka Subjektivni razlozi su: perioda iznajmljivanja. Fizičkim licima se nude i jeftinije licence po principu • Stvorena navika da se koristi isklju- „ako prođe, prošlo je” (APP). Kompani- čivo vlasnički softver. jama je jasno da je insistiranje da • Nepoznavanje FLOSS-a i njegovih fizička lica poštuju licencu kontrapro- mogućnosti odbija eksperimentisanje duktivno. Za njih je bolje da fizička lica u uslovima poslovnog ambijenta gde koriste piratsku kopiju njihovog je vreme jednako novac. proizvoda, nego da ga uopšte ne koriste. • Nedovoljna ponuda obučenih radnika Iako na pirateriji gube veliki prihod, na koja bi radila na FLOSS rešenjima. ovaj način se stvara zavisnost od njihovih proizvoda tako da na strani FLOSS još uvek prate gomile zabluda pravnih lica imaju veću zastupljenost i koje odbijaju korisnike: veliki procenat naplate.

Мај 2014. 9 Puls slobode Ugovor Republike Srbije sa Microsoftom

• FLOSS je pretežak za korišćenje i softvera nisu na teritoriji države kori- održavanje. snika tih softvera, država može samo da • Prelazak na FLOSS rešenja smanjuje gubi jer ne uzima porez na ukupnu produktivnost. dobit te kompanije. Porez od distribu- • FLOSS nije bezbedan jer iza njega ne cije nije dovoljan, jer on samo smanjuje stoji firma koja ga održava. gubitke u budžetu. U ovom lancu inte- • Model razvoja FLOSS-a ne pruža resa nešto nije u redu. Kako je moguće nikakve garancije da će određeni da ovaj interesni lanac opstaje, a da je proizvod nastaviti da se razvija. jedna karika (država) na gubitku, a druga (krajnji korisnik), vrlo važna, Ovakvo stanje „cementira” država svo- duplo plaća (kroz direktno plaćanje jom pravnom regulativom, svojim infor- licenci i posredno kao budžetski macionim sistemom i inspekcijskim obveznik) i time značajno umanjuje nadzorom. Jedini interes države jeste svoj profit? da obezbedi sebi porez od prodaje vlasničkog softvera i profita koji se na taj način ostvaruje. Ovde se krije privid da država zarađuje na vlasničkom softveru. Sve dok Srbija koristi vlasni- čki softver stranih kompanija, država i njen budžet neće biti na dobitku nego na čistom gubitku. Svi ti prihodi koji se ostvaruju na osnovu naplate poreza na vlasnički softver, ne podmiruju troš- kove licenci vlasničkog softvera za računare u državnim organima ni troš- kove inspekcijskog nadzora.

Analiza interesnog lanca vlasničkog softvera Analizom interesnog lanca vlasničkog Lanac interesa za korišćenje softvera može se zaključiti da stvarni FLOSS-a ekonomski interes za korišćenje vlasni- Mi, kao bivša socijalistička država, pot- čkog softvera imaju samo kompanije puno smo se pogubili u tranziciji. Malo koje su vlasnici tog softvera i njihovi smo pozaboravljali definicije društvenih dileri. Krajnji korisnici imaju delimični uređenja. Jureći za boljim životom, interes jer obavljaju uspešno svoju izgubili smo i ono što smo imali. Sred- delatnost, ali svoj profit umanjuju stva za rad su iz ruku radnika uz plaćanjem iznajmljivanja „alata” za rad. njihovo prećutno odobrenje prešla u ruke države da bi ih i država za male U uslovima kada kompanije vlasničkog pare predala u ruke kapitaliste

10 LiBRE! časopis o slobodnom softveru Puls slobode Ugovor Republike Srbije sa Microsoftom

(vlasnika preduzeća). Definicija kapita- zvodnju. Trebalo bi da to bude jedan od lizma glasi da je to takav tip društvenog osnovnih interesa za korišćenje FLOSS- uređenja u kojem je kapitalista vlasnik a u poslovne svrhe. Nekad zbog speci- sredstava za proizvodnju i da na osnovu fičnosti posla i okruženja nije moguće tog vlasništva ostvaruje pravo na dobit. koristiti FLOSS rešenja, ali u principu u Sad dolazimo do apsurda. Moderni- interesu vlasnika jeste da koristi, kad zacijom sredstava za proizvodnju naši god je to moguće, softver koji je pod kapitalisti su uveli kompjutere u sve javnom licencom i omogućava mu da segmente poslovanja. Kompjuteri pak, povrati vlasništvo nad sredstvima za koriste vlasnički softver koji su po proizvodnju. zakonu o intelektualnoj svojini uvek u vlasništvu vlasnika softvera, prema Iznajmljivanje sredstava za proizvodnju tome, naš kapitalista nije u potpunosti (vlasničkog softvera) bi trebalo da znači vlasnik sredstava za proizvodnju i zato da je održavanje istih odgovornost pra- svoju dobit mora da deli sa pravim vog vlasnika (vlasnika softvera). Među- vlasnikom. tim, u praksi to nije baš tako. Enterprise održavanje vlasničkog softvera se do- Ako naš kapitalista želi da zadrži svu datno naplaćuje, a licence pokrivaju dobit od svog posla, mora da povrati samo pravo na korišćenje tj. čisti namet vlasništvo nad sredstvima za proi- na vlasničko pravo.

Мај 2014. 11 Puls slobode Ugovor Republike Srbije sa Microsoftom

Održavanje FLOSS rešenja je odgovor- programera da pređu na OSS, jeste taj nost korisnika. Postoje gomile bespla- da alat za programera aplikacija za tne dokumentacije o načinu održavanja vlasnički softver je takođe vlasnički FLOSS rešenja tako da korisnik može softver pa prema tome i tu mali sam da ga održava, ali isto tako može i programer gubi deo svoje dobiti. da pita za savet FLOSS zajednicu koja uglavnom brzo reaguje i može da reši većinu bitnih problema. U interesu FLOSS zajednica je da se popularizuje upotreba FLOSS-a u poslovne svrhe. FLOSS zajednice su fleksibilne i veru- jemo da bi brzo mogle da reaguju na izmene klime (veći interes za održa- vanje poslovnih sistema) i da obezbede legalnu enterprise podršku.

Srpske FLOSS zajednice već pokazuju znanje i umeće u razvijanju srpske Linux distribucije i u slučaju povećanog interesovanja barem jedna može da bude ponuđena sa enterprise podrškom.

Programeri bi mogli da se ne slože sa nama i da kažu da im koncepcija vlasničkog softvera više odgovara. Mi mislimo da nisu u pravu i da će prelaskom na FLOSS imati više posla. Koncept komercijalnog OSS-a pa čak i vlasničkog softvera koji može da se Masovnije prihvatanje FLOSS-a, naro- portuje na OS otvorenog kôda, neće im čito u poslovnom okruženju, otvara smanjiti prihode, imaće manju konku- mogućnost daljeg razvoja IT industrije renciju velikih firmi koje proizvode koji je ovog puta baziran na OSS-u. Svi softver, radiće za poznatog naručioca. školovani programeri ne mogu da se Koncept vlasničkog softvera nije izmi- zaposle u velikim firmama vlasničkog šljen za malog programera, nego da softvera. Ovim se otvara prostor za zaštiti interese velikih kompanija. manje softverske firme koje će razvijati Velike kompanije nemaju problem da OSS rešenje ili nuditi usluge vezane za za male pare otkupe dobru ideju od OSS. Država koja je bila gubitnik u malog programera, ili mu je čak lancu interesa oko vlasničkog softvera, ukradu, ukoliko ideju nije adekvatno delimičnim prelaskom firmi na FLOSS zaštitio. Copyright nije prilagođen će izgubiti nešto prihoda od poreza na malom programeru, previše je skup i promet vlasničkog softvera. To može da komplikovan za njega. Treći interes

12 LiBRE! časopis o slobodnom softveru Puls slobode Ugovor Republike Srbije sa Microsoftom

nadoknadi iz poreza na dobit novih OSS poslovnom okruženju, ali se to odlično firmi. Sa druge strane, država takođe uklapa u novi koncept LiBRE! časopisa mora da barem delimično pređe na koji ima plan da se više obraća poslo- FLOSS. To rade zemlje Evropske unije vnim korisnicima. Ovog puta smo pa prema tome to je budućnost i srpske akcenat stavili na ekonomske interese administracije. Ove tri godine, koliko korišćenja OSS-a (komercijalnog i bes- važe licence za Microsoftove proizvode platnog softvera otvorenog kôda). po ugovoru koji je i povod za ovaj Pored ekonomskog interesa, tu postoji serijal, treba iskoristiti za početak interes zaštite privatnosti, interes veće promene kursa i preusmeravanje admi- kontrole sistema, sigurnosti, nezavi- nistracije na FLOSS. Na ruku FLOSS-a snosti od vendora (vlasnika softvera), bi trebalo da ide i činjenica da razvoja iz sopstvenih resursa i drugi. više ne pruža podršku za Windows XP. Naš predlog je da se prelazak na FLOSS upravo pokrene prelaskom tih računara na neku laganiju verziju Linuxa i proveri koliko takvo rešenje može da zadovolji potrebe korisnika tih raču- nara. Ispravni računari svakako nisu za reciklažu. U najgorem slučaju, mogu biti donirani nekoj školi koja nema računare. Mi verujemo da će nastavnici znati šta će sa njima.

Interes odgovorne države jeste da ima balansirani odnos između prikupljenog poreza na promet vlasničkog softvera i troškova licenci za vlasnički softver u svojoj administraciji. Zatim da svojim delovanjem ne nameće nepotrebni tro- šak firmama u vidu obaveze da koriste O ovim i drugim interesima neće biti vlasnički softver da bi komunicirale sa reči unutar ovog serijala, ali će biti u državom. Na kraju, ali možda i ostalim člancima ovog časopisa. U ovom najvažnije, da svojim delovanjem serijalu je ostala još jedna važna tema – omogući nesmetani razvoj svih grana IT FLOSS zajednice, analiza stanja i industrije pa i one bazirane na OSS-u. preporuke.

Nastaviće se. Za kraj Ovaj nastavak serijala „Ugovor Repu- blike Srbije sa Microsoftom” je prirodno došao do teme korišćenja FLOSS-a u

Мај 2014. 13 Puls slobode Temelj sazdan od FLOSS-а TTeemmeelljj ssaazzddaann oodd FFLLOOSSSS--aa

Autor: Marko Kažić O Linuxu se često priča kao o sistemu koji koriste samo geekovi, oni koji „mrze” Microsoft i Apple ili oni koji Zašto Linux i otvoreni kôd imaju stari računar za reciklažu. Može- moraju u učionice? mo to tako da gledamo, ali nećemo biti ineska poslovica kaže: Kada vetar u pravu. Ubuntu, kao samo jedna od Kpromene duva, neki dižu zidove, a bezbroj Linux distribucija, u martu neki vetrenjače. Razmišljajući o svom 2014. godine ima oko dvadeset i dva školovanju i o Linuxu kojeg koristimo miliona korisnika. To nisu razlozi zbog svakodnevno, autor ovog teksta ne kojih je Linux platforma budućnosti a uspeva da spoji ta dva pojma u jednu slobodan softver filozofija buduće skladnu sliku. Računari u školi su vazda informatike. Razlozi su mnogo bitniji i bili stari, ispisani, zagađeni bloatware. mogu se sadržati u ovome – Škola i deca om, sa trideset ikonica za Minesweeper bi profitirali jer bi u Linuxu imali koji je užasno izgledao na izmučenom jeftinu (besplatnu), moćnu, pouzdanu i Windows 98 Second Editionu. Zbog toga bezbednu platformu koja podstiče lični su naši počeci sa Linuxom bili nepo- razvoj i ideje deljenja i jačanja trebno mučni i zakasneli (prim. aut.). zajednice. Kako?

Kada pričamo o edukaciji i korišćenju 1 List of Linux adopters – otvorenog koda u školama, daleko smo http://en.wikipedia.org/wiki/List_of_Li iza aktuelnih tokova, poslovično tvrdo- nux_adopters glavi, ne prihvatamo Linux i FLOSS kao platformu i filozofiju dobru za našu Sloboda, sigurnost i izbor decu i razvoj naše zajednice. Ako NASA, Google, Međunarodna svemirska sta- Pogotovo danas kada je privatnost nica, IBM, administracija Ruske Fede- podataka i njihova zaštita aktuelna, racije i mnogi drugi1 koriste Linux, treba da razmišljamo o svojim slobo- zašto nije dobar za nas? Možda jer od dama na internetu i u softveru koji njega ne profitira niko osim običnog koristimo svakodnevno. U školama korisnika. ćemo često naletati na računare pune

14 LiBRE! časopis o slobodnom softveru Puls slobode Temelj sazdan od FLOSS-а

-a i malware-a, a to jednostavno Sloboda od vendora, sloboda nisu računari na kojima je bezbedno od zatvorenih platformi raditi. Umesto što zabranjujemo deci da instaliraju aplikacije na te iste računare Svi mi koji smo imali kakav-takav i ograničavamo im prava, trebalo bi da kontakt sa informatikom u školama, koristimo sistem koji podrazumeva znamo čemu smo naučeni - od bezbednost, koji je iole otporan na Borlanda, do managed okruženja kao što takvu vrstu zloupotrebe korisničkog su C# i .NET. Vlasničke platforme su poverenja. neminovno zlo današnjeg IT sveta, ali one nisu jedine koje postoje. Platforma Deca treba da nauče da preispituju koja prvenstveno služi da unapredi rad i kome ostavljaju svoje podatke i kako se poboljša razvoj, od korisnika i progra- ti podaci koriste. U softveru otvorenog mera vrlo brzo pravi taoce koji postaju koda, situacija je mnogo bolja nego kod zavisni od platforme koju plaćaju. Ovo vlasničkog softvera. Ako se naviknemo je i rekurzivna poenta ovog članka. Ako da sistem koji možemo besplatno da pitamo nekoga zašto koristi Windows, instaliramo, promenimo radnu okolinu, uglavnom ćete čuti da aplikacije koje distribuciju, softver koji koristimo, koristi, nisu dostupne na drugim postajemo vlasnici svog izbora i svojih platformama i sistemima, što ne bi bio podataka, a tako nešto ne učimo decu u slučaj da su te aplikacije otvorenog školama. koda.

Deca u Srbiji danas koriste vlasničke

Мај 2014. 15 Puls slobode Temelj sazdan od FLOSS-а

programe često ne znajući da postoji platforma. alternativa. Office je odličan primer. Pored zatvorene platforme koja podra- Korisnici su lišeni slobode. Školski zumeva i zatvorene formate za čuvanje program je napisan da podrži vlasničke dokumenata, u poslednje vreme imamo platforme i licence koje nisu jeftine. i OneDrive cloud gde, gle čuda, na dva Kažu da bi promena programa koštala klika možete da sačuvate vaše podatke mnogo. Dobar primer da ta tvrdnja nije na nekom serveru hiljadama kilometara tačna, jesu upravo C# i .NET. Platforme od vas i da ga koristite na drugom koje su zamišljene i realizovane tako da računaru bez mnogo muke. Mi više budu vrhunac vlasničkog koda, nismo vlasnici svojih podataka. Para- portovane su na Linux. Korisnici (ne doksalno je ali istinito. Vlasničke plat- kompanije), napravili su Mono2. Desilo forme ulažu mnogo u korisničko se nešto nezamislivo, dešava se da sve iskustvo i sve je dostupno na klik ili ono što je urađeno u C# i .NET-u, radi dva. Naš je zadatak da edukujemo na otvorenoj platformi. Dešava se da korisnike, da svaku platformu, bez sve što mladi uče o C# i .NET-u, mogu obzira na njeno sučelje ili temu, da primene na otvorenoj platformi. preispitaju. Oni koji to ne mogu, Mono je velika pobeda open-sourcea, moraju sistemski biti zaštićeni i mora projekat na koji se treba ugledati im se omogućiti slobodna i sigurna tražeći primer, prvenstveno jer ne kvari

16 LiBRE! časopis o slobodnom softveru Puls slobode Temelj sazdan od FLOSS-а

tako skup i delikatno probran plan i nove računarske opreme. Besplatan program za informatiku koji propisuje hardver i softver, a zajednica sve jača - Ministarstvo, uglavnom uz pomoć To je prosto nedopustivo. korporativnih sponzora.

2 Mono Project – http://www.mono- Znanje, znanje, znanje project.com Uticaj Linuxa na razvoj korisnika i razvoj dece kroz edukaciju ima toliko Računari traju duže i podstavki da ih je gotovo nemoguće dostupni su svima skoro sve navesti. Ranije smo napo- menuli da se izbegavanjem vlasničkih Sa dozom skepticizma ćemo uzeti platformi dobija sloboda. Za početak, sopstvene reči, ali u praksi računari u slobodni smo da softver redistribuišemo školama su stari, „slabi” i teško se i delimo. Mlade treba učiti da dele i da obnavljaju. S druge strane, čak i kada se to nije ništa loše, iako su oni godinama neka škola ponovi, uobičajena je praksa uspešno delili instalacione diskove da se stari računari bace, jer ne Windowsa, sada to mogu da rade kao podržavaju najnoviju verziju Windowsa. deo jedne potkulture, legalno i bez To je klasična priča jednog konzu- razmišljanja o prirodi softvera. menta. Ni na trenutak ne stanemo da razmislimo, koliko škola u Srbiji nema računare, koliko dece iz najugroženijih slojeva nema računare kod kuće, koliko njih bi profitiralo znanjem i napretkom kada bi samo postojao neki način da te stare računare ne bacimo, nego da ih ponovo iskoristimo u neku drugu svrhu.

Sloboda – to je ono što krasi Linux, a jedna od ključnih prednosti te slobode je da možete naći dobre distribucije, koje sasvim komotno rade na starijim Mogućnost menjanja softvera je još računarima. Iako nova tehnologija ima jedna sloboda koju nemamo sa svoje prednosti i to je neosporno, ono vlasničkim softverom. Korisnici (oni što mi shvatamo kao smeće, postaje koji žele) treba da znaju kako njihov savršeno upotrebljiv uređaj onog softver funkcioniše i treba da imaju trenutka kada mu se promeni softver pravo da učestvuju u njegovom razvoju koji ga pokreće. Rashodovan računar, ukoliko to žele. FLOSS je neposredna koji bi koristio Linux, mogao bi da služi demokratija za softver. Iako mladi u nekoj drugoj školi koja nije imala danas širom Srbije u svom džepu nose sreće da dobije sredstva za nabavku Android telefon ne znajući da je Android

Мај 2014. 17 Puls slobode

u suštini platforma zasnovana delom na Pregled popularnosti GNU/Linux Linuxu, taj isti Android je manje-više /BSD distribucija za mesec мај proizvod gore pomenute slobode. Neke nove platforme koje u budućnosti mogu stvarati ljudi iz Srbije, neće nastati od vlasničkih platformi i tehnologija, već Distrowatch će nastati od slobodnog softvera jer se slobode potrebne za dobar razvoj 1 Mint 3391> pružaju samo njegovim korisnicima. 2 Ubuntu 1795< Korisnici moraju da koriste softver po 3 1643< svojoj meri. Kod kuće, na poslu, u 4 openSUSE 1228< učionici, gde god da ste, vaš softver može biti potpuno prilagođen vama. 5 Arch 1172> Mnogi su primeri uspešne migracije na 6 Fedora 1148< slobodan softver, koji je pružio osnovu 7 Mageia 1114< za pravljenje otvorene edukativne 8 elementary 1021< platforme, u kojoj svi učestvuju. Te 9 Zorin 968> platforme su potpuno prilagođene 10 LXLE 893> potrebama škola i učenika ili studenata, kako praktično po mogućnostima, tako 11 Kali 864> i kulturološki i jezički. Znanje i 12 Android- 801> zajednica su na prvom mestu. 13 Lubuntu 781< 14 Puppy 776< 15 SteamOS 751> 16 Lite 740> 17 Pinguy 720< 18 CentOS 706> 19 Chakra 701> 20 wattOS 693> 21 Robolinux 679> Razloga je mnogo i nema mesta za sve, 22 Antergos 641> ali se nadamo da su najbitniji ovde. 23 Sabayon 640< Neki su praktični, neki etički i 24 Bodhi 608< filozofski, ali su svakako neosporni i tu 25 CrunchBang 599< su da ostanu. Linux je platforma koju deca danas moraju da upoznaju, jer su Pad < oni budućnost, a našu informatičku Porast > budućnost ne smemo graditi ni na Isti rejting = kojim temeljima osim na onim (Korišćeni podaci sa Distrowatcha) sazdanim od FLOSS-a.

18 LiBRE! časopis o slobodnom softveru Puls slobode Predstavljamo

Autor: Stefan Nožinić postaviti pitanje otkud potreba za ovakvom distribucijom i kako se ona esto imamo priliku da pišemo o poredi sa ostalim distribucijama u ovom Čnovim distribucijama koje su, pre rangu. svega, namenjene ljudima koji se po prvi put sreću sa Linuxom. Ovog puta Gentoo je nastao 2002. godine i pred- ćemo napraviti izuzetak i predstaviti stavlja jednu od distribucija koja će vam vam GNU/Linux distribuciju koja je omogućiti da vidite GNU/Linux baš upravo ono suprotno - nipošto nije za onakav kakav jeste (stabilan, brz, početnike. Kao što se može već nasluti- transparentan ...) i iz toga, re svega, da ti, ova distribucija nije toliko jednostav- naučite nešto novo i zanimljivo. na za korišćenje na prvi pogled. Vredi

Мај 2014. 19 Predstavljamo

Najpre ćemo pokušati da odgovorimo čuvanje resursa, odmah se pomisli na otkud potreba za ovakvim pristupom. stare računare. U ovom sluaju se nikako Gentoo se instalira tako što se preuzme ne misli na stare računare već na novije osnovni sistem koji u sebi sadrži računare čiji korisnici žele da iskoriste potreban softver za prevođenje nekih svu njihovu snagu na samo onaj deo osnovnih programa (eng. compiling - koji je njima potreban. Ako na trenutak prevođenje izvornog koda u izvršni) i zaboravimo činjenicu da su nam koji služi kao osnova za dalju perfomanse bitne, ovakav pristup ima i nadogradnju. Ako bi neko želeo da radi drugih prednosti. Jedna od dosta bitnih ovako nešto, to je sigurno proisteklo iz prednosti jeste minimalizacija sistema. potrebe da sistem prilagodi po svojim Sistem od samo neophodnog softvera potrebama od samog početka. Mogu- jeste dosta jednostavan za održavanje a ćnost da prevedete softver vam omo- i manja je verovatnoća da će nešto gućava da uključite ili isključite neke krenuti naopako. Ovo omogućava kori- njegove mogućnosti što vam daje snicima, koji su najčešće i u ulozi priliku da izaberete samo ono što je sistem administratora na svojim ličnim vama zaista potrebno i time opti- računarima, omogući lako održavanje. mizujete vaš računar. Na primer ako ne koristite Qt aplikacije (kde recimo), Sada kada smo videli kakve su pred- možete isključiti Qt podršku za razne nosti ovakvog pristupa, vredi zapitati se biblioteke. Obično kad se pomene da li postoje još neka slična rešenja kao

20 LiBRE! časopis o slobodnom softveru Predstavljamo Gentoo

što je Gentoo i koja je suštinska razlika (ovo ste možda i očekivali). između njih. Mnogi će na pomenu grad- nje sopstvenog sistema od nule prvo Sistemi koji koriste sličan metod pomisliti na LFS ( - upravljanja paketima su BSD sistemi. sistem od nule) koji daje mogućnost Oni koriste portove koji su slični gradnje sistema od samog početka. Gentoovom Portage stablu. Ovde treba Razlika između Gentooa i LFS-a jeste ta napomenuti da BSD sistemi ne spadaju što se uz Gentoo dobija malo obimnija u Linux distribucije pa time ne koriste osnova pa je time neki posao, koji je Linux jezgro. svakako neophodno uraditi na većini sistema ovakvog tipa, već urađen za vas. Uz Gentoo osnovni sistem ćete dobiti Upravnik paketa prevodilac (eng. compiler), shell, uprav- Na Gentoou je generalno usvojen nik paketa o kojem će kasnije biti više princip da se sav softver (sa par reči i mnoge druge neophodne alatke. izuzetaka) direktno prevodi iz izvornog Ono što sigurno nećete dobiti jeste koda u krajni produkt (izvršni deo i kernel (da, da, to ćete morati sami da dodatni podaci). Ovog se postiže prevedete) i okruženje radne površi pomoću sistema za upravljanje paketa

Мај 2014. 21 Predstavljamo

koji će kompajliranje uraditi umesto instalira tako da upravnik paketa zna za korisnika ali će vam opet dati mogu- svaki paket kako da ga prevede, podesi i ćnost izbora koji biste imali i tokom instalira. Pored ove skripte nalaze se još ručnog kompajliranja. Ovaj sistem se i dodatni fajlovi kao što su to dekstop naziva Portage i zvaničan je upravnik fajlovi koji su bitni za grafička paketa. Izbor mogućnosti za svaki okruženja a koji obično ne dolaze od softver (npr da li će se uključiti podrška autora samih programa. Kao što ste već za pulseaudio u nekom softveru) se mogli da predpostavite, paket ne sadrži postiže tkz. USE flagovima. Oni mogu izvorni kod programa već je njegova biti globalno za sve programe (recimo lokacija zabeležena u ebuild-u i tokom za sve programe želite da uključite instalacije se ona preuzima sa interneta podršku za ) a može biti ako već nije preuzeta od ranije. Portage pojedinačno za svaki. Postoji mogu- nudi i automatsko razrešavanje zavi- ćnosti i patchovanja softvera što je još snosti što dosta olakšava čitavu jedna prednost ovakvog pristupa. Treba proceduru instalacije i nadogradnje. napomenuti da pored zvaničnih paketa Ono što je dosta za pohvalu jeste i postoje i tkz. overlay-i koji omogućavaju mogućnost maskiranja paketa. Ova korišćenje softvera koji nije u zvaničnoj mogućnost pruža dosta jednostavan riznici. Svaki paket, bio on zvaničan ili metod da se paket vrati na prethodnu ne, jeste najčešće jedna skripta (ebuild) verziju ili da se preskoči neka verzija koja opisuje kako se taj softver prevodi i određenog paketa. Ovo može biti dosta

22 LiBRE! časopis o slobodnom softveru Predstavljamo Gentoo

korisno ako želite da imate stabilan handbook/ sistem. Gentoo se jednom instalira i po- [3] https://gentoo-handbook.lugons.org/ tom je potrebno samo raditi nadograd- doc/sr/ handbook/ nju paketa, što se zove rolling release, pa tako možete dobiti sistem koji, ako niste ništa zabrljali, možete koristiti dok vaš računar normalno funkcioniše.

Dokumentacija Iako ovo sve zvuči komplikovano, težina instalacije i podešavanja se ogleda u dokumentaciji a za Gentoo možemo slobodno da kažemo da je ona i više nego odlična ali i da podrazumeva neko predznanje. Ovde treba pohvaliti i domaću zajednicu LUGoNS koja se postarala da Gentooov zvanični priru- prijatelji čnik, koji je obavezno štivo tokom LiBRE! instalacije, prevede na srpski jezik i time olakša posao mnogima kojima jezik može biti prepreka.

Zaključak Možemo reći da je Gentoo odličan si- stem za sve one koji žele apsolutnu kontrolu nad svojim operativnim sis- temom i koji su spremni da odlučuju za svaku sitnicu što se na kraju dosta isplati. Isto tako se nadamo da će Gentoo isprobati i neki sistemski admi- nistrator u firmi jer je ovakav pristup zaista pogodan za takve uslove. Ako ste već otvorili Gentoo priručnik nema boljeg zaključka nego da vam poželimo srećno kompajliranje!

Linkovi:

[1] http://www.gentoo.org/ [2] http://www.gentoo.org/doc/en/

Мај 2014. 23 Predstavljamo libGDX LibGDX „Java game development framework” (1. deo)

24 LiBRE! časopis o slobodnom softveru Predstavljamo libGDX

Autor: Gavrilo Prodanović libGDX-a. Koristi gradle, što automatski omogućava importovanje u sve poznate koro čitavoj mladoj populaciji igrice IDE-ove. S su alatka za opuštanje i portal za uživanje u nekoj drugoj dimenziji. Mnogi odrasli često igraju igrice sa svo- jom djecom ili samostalno u slobodno vrijeme. Da bi se sastavila igrica, potre- bne su određene tehničke sposobnosti i osjećaj za umjetnost i kreativnost da bi se igrica dočarala kroz grafiku, zvučne efekte i kroz sam gameplay. Mi ćemo ovde predstaviti alat koji će vam olakšati pisanje koda za igricu, a ime mu je LibGDX od badlogicgamesa.

Nekada prije, trebalo je vjerovatno Za portabilnost LibGDX-a vjerovatno su duboko razumjevanje low-level stvari da najviše zaslužni OpenGL i Java koji su bi se napisala i neka osnovna igrica. Da dostupni za različite platforme. Progra- bi igrica bila dostupna na više platfor- mer će kôd logike igre da stavi u core mi, obično se preskakao korak. Danas je projekat, dok su ostali projekti gene- sve mnogo lakše, a podrška za više risani vraperi (eng. wrappers), a u njima platformi dolazi spontano i podrazu- se i ne mora mnogo toga mjenjati. Za mjevano, a to su, može se reći, glavni desktop bismo postavili podrazumjevanu aduti LibGDX-a. LibGDX je java rezoluciju, za android podrazumjevanu framework koji podržava sledeće plat- orjentaciju, a u html projekat kôd forme: Desktop (Linux, Mac OSX, landing stranice. Za sve platforme biće Windows), Mobile (Android, iOS) i web vam dovoljan Linux OS za progra- (HTML5). Od IDE-a podržani su Eclipse, miranje, osim za iOS platformu gdje će Intellij IDEA i NetBeans. Moguće je vam biti potreban Mac računar sa OSX koristiti samo komandnu liniju za sistemom i sa xCode razvojnim okruže- razvoj. LibGDX svaki projekat koncep- njem.Znajući da se struktura sistema tualno djeli u pet djelova (projekata): datoteka konceptualno razlikuje izme- core, desktop, android, ios i html. Core đu Windowsa i ostalih UNIX sistema, a sadrži zajednički kôd, a ostali projekti isto tako se i načini smještanja poda- sadrže kôd specifičan za platformu. taka na Androidu i na Linux desktopu LibGDX posjeduje generator projekta razlikuju, prikaz LibGDX počećemo koji će podesiti sve potrebne pot- upravo o tome kako ovaj framework projekte i skinuti sve dodatne libove generalizuje sistem datoteka. LibGDX (eng. libraries) koji su potrebni. Može- generalizuje sistem datoteka u sledećih mo odabrati koje platforme želimo da pet grupa: koristimo, a u ponudi su ostale biblioteke koje će da prošire funkcije 1. Classpath: Omogućuje pristupanje

Мај 2014. 25 Predstavljamo libGDX

datotekama koje su upakovane u 6.Absolute: Omogućava pristup arhivu aplikacije (npr. jar ili apk). datotekama na osnovu apsolutne Pristup ovim datotekama je read-only. putanje. Ovakav način nije 2.Internal: U interne datoteke spadaju preporučljiv jer postoji mogućnost za one datoteke čija je putanja relativna narušavanje portabilnosti. na root putanju aplikacije i radnog direktorijuma za Desktop i za dato- Za html5 dostupno je samo interno teke koje se nalaze unutar assets di- skladište (eng. storage), dok se za sve rektorijuma u Android projektu koji ostale platforme mogu koristiti sva je uključen u arhivu aplikacije. Inter- skladišta. Lokalno i eksterno skladište ne datoteke su obično read-only ako mogu biti fizički nedostupni na nekim se odnose na datoteke upakovane u platformama, pa su tu i funkcije kojima arhivu. možemo provjeriti dostupnost. Moguće 3.Local: Lokalne datoteke na desktopu je brisati i mjenjati naziv datoteke unu- su smještene u root aplikacije, a za tar lokalnog ili eksternog skladišta ili mobilne uređaje unutar privatnog kopirati i premještati datoteku između direktorijuma u zavisnosti od lokalnog i eksternog skladišta. sistema. Preporučeno ga je koristiti za čuvanje manjih datoteka kao što je Kao primjer vrapera za sistem datoteka game state. učitaćemo tekstualnu datoteku iz 4.External: Za desktop su smještene internog skladišta koja je smještena unutar home direktorijuma, dok je za unutar assets fascikle u android mobilne uređaje to SD kartica. projektu. Namjenjen je za čuvanje velikih datoteka, ako ima potrebe. FileHandle file = Gdx.files.internal("myfile.txt"

26 LiBRE! časopis o slobodnom softveru Predstavljamo libGDX

); ovakvom pristupu, lako možemo da String text = smjenjujemo logičke cjeline jednu za file.readString(); drugom.U sledećem broju udubićemo se u metode kojima možemo da renderujemo grafiku u libgdx, njegove low-level opengl vrapere i high-level klase koje su tu da nam olakšaju život. Govorićemo o tome kako je input klasifikovan kroz platforme i ukratko ćemo reći šta je u ponudi za reprodukovanje zvučnih efekata i melodija. Kasnije ćemo govoriti o mogućnostima koje su integrisane u libgdx, a koje nam mogu omogućiti da napravimo što bolji gameplay.

Program u LibGDX, možemo reći, počinje u klasi koja naslijeđuje Game super klasu. Prije toga, pokrene se kôd specifičan za platformu, npr. main funkcija za desktop ili onCreate u MainActivityu za android. Najvažnija naslijeđena metoda je render() koja se poziva u beskonačan loop. U njoj se pozivaju funkcije za renderovanje, a može biti smješten i kôd logike igrice. U praksi nije praktično implementirati čitavu igricu unutar glavne Game klase, a libGDX nam tu pomaže jer posjeduje interface Screen koji implementira neku našu klasu koja je zadužena za određenu usku logiku (npr. jedan screen za glavni meni, drugi screen za sam gameplay). Interfejs definiše veći broj metoda: render, resize, show, hide, pause, resume i dispose. One svojim imenom opisuju svoju namjenu. Zahvaljujući

Мај 2014. 27 Kako da...? Uvod u programski jezik C

UUvvoodd uu pprrooggrraammsskkii jjeezziikk CC (3.. deo)

Autor: Stefan Nožinić Kao što smo i rekli, uslov je relacija pa su neki primeri uslova: prošlom delu smo se dotakli U tipova podataka, onih promenljivih • a == b - poređenje jednakosti dve nad kojima se mogu izvršiti neke promenljive tipa int operacije. U ovom delu ćemo diskuto- • a != b - tačno u slučaju da su dve vatio uslovnom grananju i kontrolama promenljive različite vrednosti toka programa i pokazaćemo neke • a > 0 - tačno ako je promenljiva a zanimljive primere. (tipa int) veća od nule

Uslovno grananje Isto tako postoje i „dodaci” za ovu naredbu, a to su else if i else. Prvo se Iako smo do sada naučili osnovne stvari stavlja jedna if naredba, zatim nekoliko o C-u, nismo bili u mogućnosti da else if naredbi i potom jedna else nared- napišemo neke zanimljive programe. ba. Naredba else if zadaje drugi uslov u Nismo mogli da napišemoprogram čiji slučaju da onaj pre njega nije ispunjen, tok zavisi od vrednosti neke prome- dok else obuhvata sve što nije obuhva- nljive, odnosno od njegovog ulaza. Prva ćeno u gornjim slučajevima. stvar koju ćemo u ovom tekstu obja- sniti, jeste ifnaredba koja prima Primer: program koji ispisuje da li je određeni uslov i na osnovu toga da li je broj pozitivan, negativan ili nula: uslov ispunjen, izvršava neki određen kod. Ovaj uslov jeste relacijadve prome- #include nljive ili promenljive i neke konstantne vrednosti. Pogledajmo sintaksu if nare- int main() dbe: { int n; // broj u koji if (uslov) unosimo vrednost { scanf(" %d", &n); // /* .... naredbe koje će biti učitavamo broj izvršene ako je uslov ispunjen if (n>0) */ { } printf("Broj je

28 LiBRE! časopis o slobodnom softveru Kako da...? Uvod u programski jezik C

pozitivan\n"); Evo primer programa koji ispisuje „0 1 } 2 3 4 5 6 7 8 9”: else if (n < 0) { #include printf("Broj je negativan\n"); } int main() else { { int brojac; printf("Broj je nula\n"); for (brojac = 0; brojac < } 10; brojac++) // brojac++ je return 0; isto što i brojac = brojac + } 1 { Petlje printf("%d ", brojac); } Sada je vreme da pokažemo kako se return 0; neka određena sekvenca naredbi u na- } šem programu može ponavljati, odno- sno izvršavati u krug.Za to služe petlje i Za razliku od for petlje, while petlje se najčešće se koriste for i while petlje. izvršavaju sve dok je jedan određen uslov ispunjen. Nema brojača pa se tako Petlja for se koristi u slučajevima kada ne može unapred znati koliko će se puta znamo tačan broj ponavljanja i tu odrediti, odnosno to nije lako razaznati. imamo jednu promenljivu kao brojač, Kod ove petlje se često dešava da se ona dobija početnu vrednost, uslov koji program „zaglavi” jer je neki uslov treba da bude ispunjen kako bi se petlja stalno ispunjen pa se tako petlja izvršavala u naredbu koja se izvršava neprekidno izvršava. posle svakog izvršavanja petlje, odno- sno iteracije. Ukoliko uslov potreban za Sintaksa: izvršavanje više nije ispunjen, petlja se zaustavlja i nastavlja se dalje izvr- while (uslov) šavanje programa. { /* ... naredbe ... */ Sintaksa for petlje je: }

for (inicijalizacija Evo i primera kako se gore napisani kod promenljive; uslov; naredba sa for petljom mogao napisati koriš- posle svake iteracije) ćenjem while petlje: { /* ... naredbe u petlji #include koje se izvršavaju tokom svake iteracije ... */ int main() } { Мај 2014. 29 Kako da...? Umit tests i JUnit

int brojac = 0; while (brojac < 10) { printf("%d ", brojac); brojac++; } return 0; }

Za kraj Za kraj ovog dela možemo samo da vam preporučimo da pokušate sami da otkucate nešto i da vidite kako rade petlje jer ćete tako ući u „šemu”.

30 LiBRE! časopis o slobodnom softveru Kako da...? Umit tests i JUnit UUnniitt tteessttss ii JJUUnniitt

Autor: Dejan Čugalj podataka napravljenih u jedinici vremena, globalno gledajući. Nekako omparacijom industrijske revolu- kao da smo ostali sami, nepripremljeni Kcije izazvane parnom mašinom 18. za sve što možemo da stvorimo. Svi ti veka (1781, James Watt) i informacionih podaci koji čekaju na obradu i koji nisu tehnologija 20. i 21. veka primećujemo procesuirani, moraju da prođu kroz bitnu razliku. Neke od osnovnih su neku vrstu algoritma i da budu neopipljivost i apstrakcija 21. veka - obrađeni, svrstani i postavljeni zavisno virtuelizacija i cloud. Iako po pitanju od važnosti u neki cloud ili medijum za energetske skalabilnosti, upotrebe i skladištenje. Upravo ti algoritmi su od iskorišćenja nismo daleko odmakli, izuzetne važnosti jer jedan pogrešan kako kaže Michio Kaku, „od TIP*0 parametar prosleđen algoritmu može da civilizacije”, (https://www.youtube.com prouzrokuje totalno neočekivane rezul- /watch?v=JdILmgJGuvw), nekako se tate gde bi krajnji rezultat bio može videti ta strukturna razlika napre- skladištenje nekih medicinskih infor- daka u samoj informacionoj tehnologiji. macija u npr. katastar za zemljište.

Iako postoji razlika, problemi ispli- Sa programerske tačke gledišta i tačke vavaju sami po sebi. Trenutna situacija gde čovek kao individua ima udela u u IT-ju je ta da vlada potpuni raskol, celom sistemu, greške su neminovne, nesrazmera u razvoju hardvera i soft- jer ipak smo samo ljudi, a poznato je vera koji bi trebalo da ga prati. Naime, svima da svaki čovek greši dok računar hardver je toliko napredovao da softver sledi instrukcije dobijene upravo od nikako ne može da isprati taj eksponen- istih, tih „koji greše”. Programerska cijalni razvoj hardverskih komponenti, borba protiv ovih tipova grešaka vodi se tako da su programeri došli na „metu”, i od samog početka, početka komu- to sagledavajući kroz filozofsku prizmu, niciranja sa računarom, od prvih stiče se utisak kao da ljudski rod još programskih jezika (1842-1843, Ada uvek nije spreman na tako nagli razvoj. Lovelace). Jedna od danas najviše koriš- ćenih tehnika za proveru i najza- Da bude još gore, uvideli smo još veći stupljenijih jeste Unit testing, a pošto problem koji se odnosi na količinu ćemo primer implementirati u Java

Мај 2014. 31 Kako da...? Umit tests i JUnit

programskom jeziku, koristićemo JUnit. nastavite. Međutim, zamislite situaciju da svako prevođenje na mašinski jezik nekog modula koji razvijate, traje i po Unit Testing nekoliko sati, kakav bi vaš učinak bio u nekoj kompaniji (prim.aut.)?

Ukoliko iole razmišljate na duže staze i vidite sebe kao programera koji radi na nekim većim projektima, trebalo bi da nas ispratite do kraja. U većim softverskim kompanijama testiranje je jedan od krucijalnih delova razvoja određenog softvera. Neki ga vole, a neki ne, to je činjenica, a dok određeni deo napisane aplikacije ne prođe testove, koji opet neki drugi tim sprovodi, napisani modul ne može nikako da uđe u produkciono okruženje, ma koliko on bio dobro implementiran.

To je deo kôda, namenski napisan od strane programera, koji izvršava spe- JUnit cifičan deo aplikacije i proverava dobijeni (vraćeni) rezultat sa sigurno očekivanim podacima ili ponašanjem.( http://www.vogella.com/tutorials/JUnit/ article.html)

Laički rečeno, tokom razvoja aplikacije, jedna od osnovnih stvari je da se sa vremena na vreme napisani kôd prevodi u mašinski kôd, izvršava i proverava očekivan rezultat. Ovakvo testiranje je uglavnom i dovoljno, jer se greške odmah mogu uvideti i mnogi progra- meri upravo to i rade. Iako ova metoda Kent Beck i Erich Gamma uvideli su ovu uzima dosta vremena, pogotovo ako se važnost i napisali su open source radi o razvoju modula neke aplikacije framework 1997. godine za Javu poznat koja ima veze sa bazom podataka, kao JUnit. Važnost spomenutih imena napišete query, pokrenete, proverite ne bismo ovde „proširivali”, dok više bazu i proverite da li je upisan informacija o JUnit frameworku možete takozvani „hard coded” podatak, pa naći na adresi: (http://www.junit.org).

32 LiBRE! časopis o slobodnom softveru Kako da...? Umit tests i JUnit

Мај 2014. 33 Kako da...? Oslobađanje

JUnit je objavljen pod IBM’s Common Možda ovo trenutno ne izgleda kao Public License Version 1.0 i postavljen je neka velika pomoć, međutim, razvojem na GitHub repozitorijum. Ubrzo nakon aplikacije i sve većim brojem imple- objavljivanja postaje standard za skoro mentiranih modula, ovo je od krucijalne sve jezike pod nazivom xUnit i važnosti kako za tim, tako i za indi- podržava: ASP, C++, C#, Eiffel, Delphi, vidualne programere. Perl, PHP, Python, REBOL, Smalltalk i Visual Basic. Korisni linkovi:

Ne ulazeći u „dubinu” mogućnosti ovog • Zvanični sajt: http://junit.org/ frameworka, primer testiranja ćemo • GitHub repozitorijum: pokazati malim Java primerom. Testi- https://github.com/junit-team/ ranje se implementira anotacijom određene metode, klase i potpuno je zaseban pod-modul-aplikativno izvršni program. Zamislimo da imamo prostu klasu CalculatorTest i u njoj metodu sabiranja:

public class Calculator { public double add(double number1, double number2) { return number1 + number2; } }

Testiranje JUnit frameworkom :

import static org.junit.Assert.*; import org.junit.Test;

public class CalculatorTest { @Test public void testAdd() { Calculator calculator = new Calculator(); double result = calculator.add(10, 50); assertEquals(60, result, 0); } }

34 LiBRE! časopis o slobodnom softveru Kako da...? Oslobađanje

Uticaj matematike na nastanak i temelje računarstva (1.. deo)

UUvvoodd

Autor: Nedeljko Stefanović potpuno isti način sa istim koracima. Međutim, ispostaviće se da je upo- undamentalna matematička istraži- trebljeno značenje izraza „mehanički” F vanja tridesetih godina dvadesetog mnogo dublje, a uprošćeno znači da veka omogućila su nastanak računara i postupak ne zahteva razmišljanje da bi ukazala su na granice njihove primenji- se obavio, već da na osnovu pravila vosti, koje se ni danas ne dovode u postupka u svakoj situaciji znamo kako pitanje. Štaviše, rezultati tih istraživa- da nastavimo postupak, sve dok on ne nja i danas predstavljaju stub teorijskog bude u potpunosti završen. računarstva. Neki od problema koji još uvek nisu rešeni, od velike su važnosti Algoritmi se javljaju kod vrlo starih za kriptografiju i očekuje se da njihovo naroda, koji su zbog potreba preme- rešavanje dovede do nove epohe u ovoj ravanja površine zemljišta i zapremine nauci. ambara i sudova imali postupke za računanje površine figura i zapremina tela. Osim toga, u tom računu su morali Pojam algoritma i njegov nekako da predstavljaju brojeve i vrše razvoj kroz istoriju operacije sa njihovim predstavljanjem, Naivno shvatanje pojma algoritma je da za šta su im opet nekakvi postupci bili je to mehanički, deterministički postu- neophodni. pak, koji polazeći od nekakvih ulaznih Neki postupci koji u određenoj meri podataka, proizvodi nekakav izlaz (mada ne potpuno) ispunjavaju nave- (rezultat) u konačnom broju koraka. dene uslove, stariji su od brojeva. Stari Izraz „deterministički” je upotrebljen u pastiri nisu umeli da broje, a imali su značenju da taj postupak primenjen potrebu da znaju da li su sve ovce na više puta za iste ulazne podatke, proi- broju. Bilo je više postupaka sličnih zvodi uvek isti izlaz do koga stiže na ovome. Na primer, u praznu torbu se

Мај 2014. 35 Oslobađanje Uticaj matematike na nastanak i temelje računarstva

može bacati kamenje prilikom izlaska Iako su otkrivani razni algoritmi, prošli ovaca iz tora (za svaku ovcu po jedan), su vekovi dok pojam algoritma nije a pri vraćanju bi se kamenje vadilo iz uočen kao zaseban pojam i dok nije torbe (za svaku ovcu po jedan). Ako u dobio svoje ime. To se dogodilo zbog torbi ostane neki kamen, neka ovca jedne prevodilačke greške. nedostaje. Persijski naučnik al-Hovarizmi (780- U staroj Grčkoj su bili otkriveni algo- 850) napisao je delo u kome je opisao ritmi za rešavanje kvadratne jednačine indijski desetični brojni sistem (koji (koji imaju razgranatu strukturu, tj. danas koristimo) zajedno sa postupcima ima više slučajeva koji se rešavaju na za računanje u tom sistemu, koji se različite načine), algoritam za odre- danas uče u nižim razredima osnovne đivanje prostih brojeva do neke gornje škole. Kao autor dela se potpisao ispod granice (tzv. „Eratostenovo sito” koje naslova, ali je njegovo ime zbunilo ima cikličnu strukturu, tj. neki koraci prevodioce, koji su mislili da se radi o se ponavljaju), algoritmi za računanje nekoj njima nepoznatoj arapskoj reči a najvećeg zajedničkog delioca i ne o vlastitom imenu, pa su naslov najmanjeg zajedničkog sadržaoca celih preveli kao „algoritmi sa indijskim brojeva ili polinoma (tzv. „Euklidov brojevima”. Zatim su na osnovu sadr- algoritam”), kao i razni drugi. žaja pokušali da shvate šta su to algoritmi. Na taj način, osim reči „algo- ritam”, nastala je i reč „algorizam”, koja označava upravo pomenute algoritme za vršenje računskih operacija.

36 LiBRE! časopis o slobodnom softveru Oslobađanje Uticaj matematike na nastanak i temelje računarstva

Nakon toga su u matematici otkriveni sisteme zovu potpunim algoritamskim mnogi algoritmi, ali je do sledećeg sistemima. Da bi se to ostvarilo, ključnog koraka došlo tek tridesetih neophodno je svesti sve algoritme na godina dvadesetog veka. Naime, konačan broj jednostavnih pravila. savremeno shvatanje pojma računara je da je to mašina koja može da izvrši Nastaviće se. program po bilo kom algoritmu, tj. da programski jezik, na kome se programira, obuhvata sve algoritme. Matematičari takve matematičke

Мај 2014. 37 Slobodni profesionalac Vaš posao, open-source posao

VVaašš ppoossaaoo,, ooppeenn--ssoouurrccee ppoossaaoo (2.. deo)

Autor: Marko Kažić snovanih na open-sourceu, a to je prodaja pretplate i usluga. Začetnik same ideje poslovanja zasnovanog na Prodaja pretplate i usluga open-sourceu i jedan od pionira prodaje podrške – prodaja stabilnosti usluga i edukacije, svakako je prošlom broju smo videli kako Inc.Jedan od najvećih problema u ra- U open-source prodire u naš lični eko- zvoju open-sourcea je, suprotno ubeđe- sistem softvera. Videli smo njegov uti- nju mnogih, nesposobnost programera i caj na razvoj današnje IT industrije i firmi da open-source naplate. Veći deo obećali smo da ćemo nastaviti sa razvoja zasniva se na dobročiniteljima roditeljem svih modela poslovanja za- koji razvijaju besplatno nadajući se ponekoj donaciji.

38 LiBRE! časopis o slobodnom softveru Slobodni profesionalac Vaš posao, open-source posao

Prodajmo vrednost a ne pomaže njegov razvoj i prodornost na proizvod tržište. Time omogućava sebi pristup novoj bazi poslovnih korisnika koji će u Jedan od najranijih odgovora i rešenja budućnosti svoje poslove migrirati na na ovaj problem došao je iz Red Hata i sertifikovane sisteme koje podržava Red glasio je: „Prodajmo vrednost a ne Hat, jer poslovna arhitektura često ne proizvod.” Red Hat je celokupan svoj ostavlja prostor za eksperimente, a model poslovanja podredio poklanjanju često veruje samo čvrstom dokazu kao glavnog proizvoda - operativnog siste- što je sertifikat. Naravno, ugovor o ma, a naplatom svih sekundarnih pretplati1 koji Red Hat sklapa sa usluga, kao što su korisnička i tehnička korisnicima, uokviruje celu sliku podrška, edukacija i sertifikacija. Ipak, sistema i podrške koji dobijate kao sam model nije došao kao posledica rešenje. Iako možete i bez njega sami da revolucionarnog razmišljanja, već kao sklopite i potreba da se naplati kôd koji nije bio u koristite ga, koncept je takav da vam se vlasništvu Red Hata. Suštinski, kôd je to jednostavno ne isplati. Pretplata bio tuđ. takođe osigurava dugoročan i siguran priliv sredstava i osigurava stalnu vezu korisnika sa Red Hatom. Okosnicu i završni udarac Red Hat zadaje pomoću Red Hat Networka, mreže kroz koju plasira ažuriranja i bezbednosne zakrpe i pruža tehničku podršku.

1 Red Hat Enterprise Agreement EMEA

Apsolutni vladar Linux Enterprise sveta Oko 60% implementacije Red Hatovih proizvoda, uže RHEL-a i usluga koje iz njega proizlaze, odlazi na saradnju sa velikim vendorima i OEM-ima, kao što su , Hewlett-Packard i IBM, dok veći deo preostalih 40% odlazi na velike entitete koji koriste RHEL. Red Hat značajno cilja ka poslovnom svetu, sarađuje sa OEM-ima na integraciji svojih rešenja u hardver i popularizaciji Ipak, genijalnost ovog modela leži svoje distribucije kroz taj hardver. upravo u prodaji vrednosti. Red Hat Takođe, veoma je zastupljen i u internoj zavisi od Linuxa, njegovog razvoja i upotrebi OEM-a, vendora i drugih IT uspeha, i tako Red Hat bezrezervno

Мај 2014. 39 Slobodni profesionalac

prodaje usluga podrške, edukacije i sertifikacije u Linux i open-source svetu i verovatno ćemo ih pomenuti dalje u serijalu. Kao što smo već rekli, pouke ovog modela za budući razvoj su dodavanje i prodavanje vrednosti i korišćenje prednosti otvorenih platfor- mi na kojima se može izgraditi stabilnost koju je relativno lako naplatiti u turbulentnom svetu promena kakav je IT svet. Nadovezujući se na poslednju konstataciju, u sledećem broju pričaćemo o modelu koji je najpopularniji danas, a to je SaaS model, i o primeni kakvu ima u open- source svetu. Do tada, počnite da radite na nekom novom Red Hatu, znamo da umete.

kompanija. Sam pristup privatnom korisniku je marginalizovan jer Red Hat upravo i cilja na Enterprise svet. Red Hat je ovim modelom uspeo da se udalji od vendora i OEM firme kao što je , koji, uzgred rečeno, kom- binuje gotovo sve modele poslovanja sa open-sourceom. Pouke koji osnivači, preduzetnici i programeri mogu da izvuku iz ovog modela, jeste da prodajom vrednosti i stvaranjem ekosistema oko vašeg proizvoda možete uspešno da naplatite drugi nivo proizvoda, ali i da finansirate dalji razvoj projekta. U slučaju Red Hata udica za korisnika je Fedora i upravo kroz nju se i gradi platforma, povećava njena vrednost i pruža poligon za testiranje daljeg razvoja komercijalnih platformi Red Hata.Svakako je ovo kratka priča i postoji još mnogo primera

40 LiBRE! časopis o slobodnom softveru Slobodni profesionalac Internet mreže i komunikacije

OOppeennSSSSLL::

SSiigguurrnnoosstt iillii pprreettnnjjaa

Autor: Petar Simović adrese počinju sa https:// umesto sa http:// . ta je u stvari OpenSSL koji je prou- Š zrokovao neviđeno zlo nazvano Ranjivost je otkrivena prvog aprila ove Heartbleed? godine od strane Codenomicon, firme za veb-sigurnost zajedno sa Googleovim sigurnosnim inženjerima, a publiko- vana je tek sedam dana kasnije, kada je izašla i prva zakrpa za ranjivost. Sama ranjivost je u okviru ekstenzije zvane „Heartbeat” za TLS protokol koja je dodata još 2012. godine.

Heartbeat, ili prevedeno „otkucaj srca”, jeste dodatak koji omogućava održava- nje uspostavljene sigurnosne komuni- kacije i u trenucima kada nema aktivne OpenSSL je open-source implementacija razmene poruka između servera i kriptografskog protokola SSL/TLS (SSL klijenta. Odlika ovog dodatka je da - Secure Socket Layer i njegovog nasle- klijent-korisnik šalje poruku sa brojem dnika TLS - Transport Layer Security). koji predstavlja dužinu same poruke Ovi protokoli služe za razmenu sime- serveru na kome je OpenSSL, server tričnog ključa između dva računara odgovara vraćanjem podataka iz bafera kojim se na dalje šifruje sva međusobna u dužini koja mu je prosleđena uz samu komunikacija, ali samo tokom te sesije. poruku korisnika, što bi trebalo da bude Za svaku sledeću sesiju, stari se odba- ista poruka koju je i dobio od istog. cuju i formiraju sasvim novi ključevi. Problem je što nema provere da li je Možete videti da li se koristi ovakav tip informacija o dužini poruke ispravna, sigurne komunikacije po tome što veb- tj. da li je sama poruka baš toliko duga.

Мај 2014. 41 Internet mreže i komunikacije OpenSSL

Ovakav problem se može eksploatisati Treba napomenuti da je katastrofa još tako što napadač koji se na server veća time što se napad može ponoviti konektuje, može serveru da šalje „otku- više puta i tokom svakog napada caj srca” sa kratkom porukom od napadač dobija još 64 „zlatnih” nekoliko bajtova, a da uz to prosleđuje kilobajta, pri tome iza sebe ne ostavlja informaciju da je dužina poruke 64 nikakve tragove samog upada. Među- kilobajta. U tom slučaju, server prima tim, to nije ono najgore, jer se uz malo poruku i informaciju o njenoj dužini, sreće mogao dočepati i vašeg privatnog vraća je napadaču uz proizvoljne ključa i time dešifrovati sav vaš prošli i podatke do ukupne količine od 64kb budući „šifrovani” saobraćaj, ili je (64kb - nekoliko bajtova) iz bafera koji možda mogao napraviti lažni sajt je rezervisan za potrebe OpenSSL-a. (kopiju pravog) od koga je uzeo privatni Postavlja se pitanje zašto bi napadač ključ pretvarajući se na mreži da je želeo 64kb iz memorije OpenSSL-a. pravi pomoću identifikacije privatnim Odgovor je zato što baš ta memorija ukradenim ključem i time je mogao da može da sadrži privatni ključ servera nanese još veću štetu jer može prevariti (server's private key), enkripcione klju- korisnike originalnog sajta i od njih čeve korisnika logovanih na server, prikupljati još poverljivih informacija. šifre korisnika i kolačiće korisnika (eng. Zamislite da je otet identitet neke cookies). Jednom rečju, to je sve ono što banke ili nekog servisa za trgovinu ne bi smeo napadač da zna i zbog čega i bitcoinom, ili ko zna čega još. postoje sigurnosni enkripcioni protokoli. Popularni servisi ugroženi ovim bagom su LastPass i Yahoo mail, a više o tome

42 LiBRE! časopis o slobodnom softveru Internet mreže i komunikacije OpenSSL

1. http://goo.gl/bOQDdx, 2. http://goo.gl/LTN5Uz i 3. http://goo.gl/VofjAx.

Dobra vest je to što je ranjivost samo u okviru OpenSSL 1.0.1 (1.0.1f) i 1.0.2- beta (1.0.2-beta1) verzije i što ostale verzije OpenSSL-a nemaju ovakav propust, pa se smatraju bezbednim, barem što se Heartbleed ranjivosti tiče, iako je preporučljivo imati uvek na http://goo.gl/59Ct1n i http://goo.gl/ najnoviju verziju što je moguće ranije, og2Pge. Problem je veći jer se softver najbolje pri samom izlasku, kao i brzo može zakrpiti, za razliku od hiljade omogućen PFS. U razvoju su i drugih uređaja koji su na mreži i alternative OpenSSL-u, u vidu LibreSSL- predstavljaju veliki problem jer je a i PolarSSL-a, što je odlično jer će biti neophodna akcija korisnika istih, a veća konkurencija i dve trećine među njima su i ruteri, štampači, interneta neće zavisiti od jedne jedine serveri za skladištenje (storage servers), slobodne implementacije sigurnosnog video kamere, vatreni zidovi (firewalls) i protokola. još mnogi drugi.

Međutim, ovaj problem se mogao izbeći omogućavanjem PFS-a (Perfect Forward Secrecy ) u okviru OpenSSL-a, što se i preporučuje. On onemogućava zloupo- trebu dobijenog ključa za dekriptovanje prošlog i budućeg šifrovanog saobraća- ja, a koji nije podrazumevano omogu- ćen, već mora biti ručno. Za one koji žele da omoguće ovu opciju na njihovim serverima, preporučujemo da prvo pročitaju ovaj dokument (http://goo.gl/- SkAz5v), a vlasnike Apache i NGINX servera - uputstvo za omogućavanje PFS-a koji se može naći na ovim stranama: http://goo.gl/a5vJVV i http://goo.gl/MGHi50. Proveru da li je vaš ili neki drugi sajt otporan na ovu ranjivost, možete izvršiti na ova tri sajta:

Мај 2014. 43 Internet mreže i komunikacije Apache Lucene

Apache

Korak do Googla (5. deo)

Autor: Dejan Čugalj nam svoje mogućnosti.

osle pauze koja je potrajala, S obzirom na količinu kôda koji će biti P vraćamo se implementaciji modula napisan, odlučili smo se za GitHub javni koji su nam neophodni za ostvarenje repozitorijum (Koristan link: krajnjeg cilja koji smo zadali sebi još u https://github.com/libreoss/lucene-moduli 12. broju LiBRE! časopisa. ) u koji je postavljen celokupan kôd, dok one najbitnije delove objavljujemo Poslednji članak o ovoj temi objavljen je u časopisu. Nekako, kada sve saberemo u 15. broju, i zbog toga ćemo se podse- i oduzmemo, to je ono što bi predstavilo titi šta je sve urađeno do sada. U 12. kratku rekapitulaciju serijala „Lucene – broju smo predstavili neke uporedne korak do Googla”. podatke ljudske potrebe za pretraži- vačima u informacionim tehnologijama Peti deo serijala nam donosi nastavak i ukratko smo spomenuli Lucene biblio- implementacije modula i to su: „Analiza teku. Broj 13. smo iskoristili za detalj- dokumenata”, „Indeksiranje PDF dato- nije upoznavanje sa istom, dok smo u teka” i „Indeks (pregled Lucene struktu- broju 14. potpuno ušli u priču i re datoteka)”. Ovo je dobar momenat da predstavili studiju slučaja predstojećeg podsetimo da svi moduli iz studije projekta. U 15. broju LiBRE! časopisa, slučaja obojeni zelenom bojom jesu tj. u četvrtom nastavku serije članaka tačnije oni delovi gde nam Lucene pruža „Lucene – korak do Googla”, počinjemo svoje usluge i dovoljno je samo biti sa implementacijom projektnih modula upoznat sa njenim API-jem (engl. Lucene projekta. U tom izdanju smo Application Programming Interface) da bi implementirali prva dva modula: se mogla i koristiti. Upravo taj API „Pronalazak svih PDF datoteka” i „Tika (http://bit.ly/SBcNKf) i dokumentacija ekstrakcija”. Takođe, ovaj izuzetan dostupni su na adresi: Apache Tika framework našao je svoje http://lucene.apache.org/core/4_8_0/index mesto u zasebnom članku i približio .html (verzija aktuelna u toku pisanja ovog članka je 4.8.0).

44 LiBRE! časopis o slobodnom softveru Internet mreže i komunikacije Apache Lucene

Pre nego što počnemo, potrebno je temu ostavili za neke druge, filološke dodati Lucene biblioteke u Eclipse IDE nauke. Ono što je bitno za nas, jeste to okruženje, koje su dostupne za preuzi- da Lucene daje niz alata, sa kojima manje sa zvaničnog sajta na adresi: makar iole možemo da se približimo http://lucene.apache.org/core/ Dodavanje nekim realnim rezultatima. I konačno, biblioteka u projekat Eclipse IDE okru- dolazimo do najbitnijeg dela i srži ovog ženja detaljno je objašnjeno na adresi: serijala, a to je „indeksiranje”. http://bit.ly/1qfFRpb 5. Indeksiranje 4. Analiza datoteka

Do sada smo, možda i prečesto, U prvom delu serijala, ako ste pažljivo spominjali ovu famoznu reč „indeksi- čitali, dotakli smo se tokenizacije i šta ranje”, tako da ovo zauzima centralni i bi ona ukratko trebalo da predstavlja najbitniji deo celog serijala. Kako bi (12. broj LiBRE! časopisa). Upravo je hteli da ovaj deo bude respektivno, ovo deo gde ona dolazi do značaja. koliko je to moguće, približan kvalitetu Pretraživači ne indeksiraju tekst direk- uloženog truda u razvijanju Lucene, tno, već se sadržaj, kandidat za ovde stajemo i primer dajemo malim indeksiranje, rastavlja na manje delove „školskim primerom” implementacije (Atomic part), koji se nazivaju tokeni. Lucene indeksiranja napisanim u Java Upravo se ovaj proces odvija u ovom programskom jeziku. S obzirom da je modulu. Kako se ovo odvija implicitno, ovo centralni (core) deo serijala, oko ovog modula u ovom momentu ne respektivno zaslužuje i mesto u njemu, moramo previše da brinemo, ali ako tako da ćemo ga detaljno predstaviti u bismo se udubili u problematiku, videli sledećem nastavku. bismo da je od velikog značaja i da je jedan od ozbiljnijih problema. Ukratko, prilikom ovog procesa rešavaju se krucijalna pitanja kao što su: da li je potrebno obraćati pažnju na smisao reči (problem sinonima), da li je potrebno prilikom pretraživanja obratiti pažnju na semantičku stranu prirode reči kao što su laptop i računar, da li je potrebno uzimati u obzir infinitiv? Problemi i pitanja se mogu dovesti do filozofsko- filološkog nivoa, tako da bismo ovu

Мај 2014. 45 Internet mreže i komunikacije Apache Lucene

import java.io.File;

import org.apache.lucene.analysis .Analyzer; import org.apache.lucene. analysis.standard.StandardAnalyzer; import org.apache.lucene. document.Document; import org.apache.lucene. document.Field; import org.apache.lucene. document.StringField; import org.apache.lucene. index.IndexWriter; import org.apache.lucene.index. IndexWriterConfig; import org.apache.lucene.store. Directory; import org.apache.lucene.store. FSDirectory; import org.apache.lucene.util. Version;

/** * */ public class LuceneIndexExample { public static void main(String args[]) throws Exception { String text = "Ovo je tekst indeksiran sa Lucene";

String indexDir = System.getProperty("user.dir") + System.getProperty("file. separator") + "index"; System.out.println(indexDir); Directory dir = FSDirectory. open(new File(indexDir)); Analyzer analyzer = new StandardAnalyzer(Version. LUCENE_48);

IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_48, analyzer);

IndexWriter writer = new IndexWriter(dir, iwc); Document document = new Document();

Field pathField = new StringField("ime_polja", text, Field.Store.YES); document.add(pathField);

writer.addDocument(document); writer.close(); } }

46 LiBRE! časopis o slobodnom softveru Internet mreže i komunikacije Apache Lucene

6. Indeks (pregled Lucene strukture datoteka)

Vidimo se u sledećem broju sa našim „Lucene indeksima”. Osnovni i fundamentalan koncept Lucene jesu: indeks (index), dokument (document), polje (field) i pojam (term). Kada bismo to „sklopili”, dobili bismo strukturu da indeks sadrži sekvence dokumenta. Dokument je sekvenca polja, polje je imenovana sekvenca pojma, dok je pojam sekvenca bajtova.

Korisni linkovi: Uglavnom, cela magija se odvija pod „Lucene haubom” i, ukoliko bismo želeli • Zvanični sajt: http://bit.ly/LdDxwN da uđemo dublje u tematiku, sigurno bi • Izvorni kôd: http://bit.ly/1pIFmQo nam ponestalo prostora. Ovo je sasvim • Sistemski zahtevi: dovoljno za sticanje slike i saznanja da http://bit.ly/1kN0bXP posle indeksiranja, Lucene pravi svoju strukturu fajlova koja se posle koristi za pretragu.

Мај 2014. 47 http://2014.dorscluc.org