Reč urednika

LiBRE! na društvenim mrežama

Društvene mreže su sve popularnije. Prevazišle su svoju primarnu funkciju druženja istomišljenika ili generacija na mreži, pa danas ljudi sve više koriste društvene mreže za komunikaciju i marketing. Naš časopis je to uvideo i prihvatio ovakav vid komunikacije iako imamo članove tima koji više preferiraju malo starije načine komunikacije kao što su elektronska pošta i IRC.

Odnedavno smo postali aktivniji na Fejsbuku i na Tviteru. Počinjemo polako da kreiramo zajednicu okupljenu oko časopisa. Ne možemo se pohvaliti brojem pratilaca ni na jednoj od ove dve društvene mreže. Mislimo da to može bolje i više. Već sada za neke naše postove na Fejsbuku doseg (eng. reach) nam ide i preko 5000. Možemo da zaključimo samo da nam broj pratilaca raste i da svake nedelje beležimo rast, ali još nismo zadovoljni tempom.

Na Fejsbuku smo već dobijali vaše poruke, neke su bile samo reči hvale, a bilo je i konkretnih ideja i ponuda. Neke od tih ponuda i ideja smo odbili zbog politike časopisa, a one koje nisu bile u suprotnosti sa politikom časopisa smo prihvatili.

Kako su nam stizale ponude za tekstove koje smo odbili, moramo napomenuti da ne prihvatamo već objavljene tekstove sa blogova. Prihvatljivi su samo premijerni autorski tekstovi ili, eventualno, premijerni prevodi stranih članaka koji su ključni za razumevanje i razvoj slobodnog softvera.

Važno je napomenuti da nas preko društvenih mreža možete kontaktirati ako imate ideju za tekst, ili ste voljni da učestvujete u bilo kojem segmentu razvoja časopisa. Ako imate neke vaše projekte otvorenog koda, možete ih predstaviti u časopisu. Svaki projekat je vredan pažnje.

Voleli bismo kada bi zajednica više pomogla promociju časopisa. Dovoljno je da podelite vest sa prijateljima i time ste potpomogli časopis. Pozovite prijatelje za koje mislite da su zainteresovani da posete našu stranicu i time ćete nam mnogo pomoći.

Ipak, drago nam je da smo uspeli za kratko vreme na Fejsbuku da razvijemo kakvu-takvu komunikaciju.

Druga društvena mreža gde smo aktivni je Tviter. On je malo siromašniji od Fejsbuka jer smo tek odskora počeli da ga redovno održavamo, ali se nadamo da ćemo i tu uspeti da razvijemo dobru komunikaciju sa svima koji nas prate.

Naš marketinški tim polako raste. Nekada nismo imali marketing kao deo tima, a danas taj tim postaje podjednako značajan kao i grafika, lektura i autorstvo.

Za naredni period pripremamo dodatne marketinške akcije. Obećavamo vam mnogo više interakcije članova redakcije sa čitaocima. Mi verujemo u to da je zajednica važna i da se ona stvara dobrom komunikacijom. Zajednica proizvodi dobre ideje, što je dodatno uvećava. To posredno unapređuje celokupno društvo, a to nam je svima konačan cilj.

Za kraj, primetićete da u ovom broju imamo nešto manji broj tekstova. Nije nam ponestalo ideja. Pravi razlog je što pokušavamo da zadržimo jednak broj strana u časopisu. Neki tekstovi su nam ovaj put opširniji i nismo hteli da ih seckamo na više delova, već smo odlučili da ih objavimo u celini po cenu da imamo manje tekstova u ovom broju. Nadamo se da ćete ipak uživati čitajući i da ćete naći ono što vam je zanimljivo. Ako ne nađete, kontaktirajte nas putem elektronske pošte, Fejsbuk strane ili Tvitera, i pokušaćemo u nekom drugom broju da zadovoljimo i vaše želje.

Do sledećeg broja,
LiBRE! tim.

LiBRE! vesti

21. januar 2016.

Puls-audio 8.0

Puls-audio (PulseAudio), program koji omogućava napredne operacije na zvuku na putu između hardvera i programa, objavio verziju 8.0.

Korisni linkovi: http://j.mp/24qL4MH

25. januar 2016.

Serbijan Gnu-Linuks 2016

Objavljeno je treće izdanje domaćeg prilagođavanja Debijana, Serbijan Gnu-Linuks (Serbian GNU/Linux) sa KDE i Openboks grafičkim okruženjem.

Korisni linkovi: http://j.mp/1p7cw1y
http:http://j.mp/1XOeNKQ

26. januar 2016.

Linuks Mint 18

Predstavljeni su planovi razvoja Linuks Minta 18.

Korisni link: http://j.mp/24qLbrz

28. januar 2016.

GPUOpen je open-sors

AMD je zvanično oslobodio kod GPUOpena. GPUOpen je odgovor na Invidija gejmvorks, softver za razvoj igara. Oslobađanjem koda GPUOpena AMD omogućava programerima sveobuhvatnu kolekciju vizuelnih efekata i lakši razvoj igara.

Korisni link: http://j.mp/1S2YGsj

30. januar 2016.

Brjev

U razvoju je novi open-sors veb-brauzer Brejv (Brave) koji će automatski uklanjati reklame i time znatno ubrzati otvaranje stranica.

Korisni linkovi: https://brave.com/
http://j.mp/21iBNqP

1. februar 2016.

Rođendan VLC-a

Pre tačno 15 godina prvi put je objavljen VLC medija plejer pod Gnuovom opštom javnom licencom.

Korisni link: http://j.mp/1p7cV47

2. februar 2016.

Zorin 11

Poznata linuks distribucija Zorin, koja je bazirana na Ubuntuu, objavila je svoje jedanesto izdanje. Zorin 11 i dalje sledi svoju filozofiju distribucije namenjene početnicima na linuksu sa poboljšanim vizuelnim utiskom koji ne zbunjuje preletače sa drugih operativnih sistema.

Korisni link: http://j.mp/1R3skZG

4. februar 2016.

Ubuntu tač

Akvaris M 10 (Aquaris M 10) Ubuntu edicija je serija tableta koju razvija Ubuntu sa svojim evropskim partnerom Be-Ku (BQ). Ubuntu platforma ujedinjuje pun osećaj tač-tehnologije sa punim PC iskustvom.

Korisni link: http://j.mp/1VGcA2x

5. februar 2016.

Vajn 1.9.3

Popularni program za izvršavanje programa za Vindouz - Vajn (Wine) - objavio je novu verziju 1.9.3 sa, između ostalog, novom verzijom geko endžina i podrškom za Džisan (JSON) u Javaskriptu.

Korisni link: http://j.mp/1p7d5IL

6. februar 2016.

Maru OS

Maru OS je novi operativni sistem za mobilne telefone baziran na Androidu 5.1 Lilipop. Posebnost ovog sistema je da, poput Ubuntu tača, prilikom priključivanja većeg  ekrana a podrškom za HDMI  sistem prebacuje na punokrvni Debijan Gnu-Linuks i daje puno PC iskustvo ograničeno samo hardverom telefona.

Korisni linkovi: http://j.mp/1S2YTf6
http://maruos.com

15. februar 2016.

Rusija planira da pređe na Gnu-Linuks

Više od 22000 lokalnih samouprava u Rusiji su spremne da pređu sa Vindouza na Gnu-Linuks.

Korisni link: http://j.mp/1LewOQt

16. februar 2016.

Riakt OS 0.4

Riakt OS (ReactOS) je Ruski nezavisni projekat otvorenog koda. Nije baziran na linuksu, već na najboljim principima Vindouz NT arhitekture. Riakt OS treba da obezbedi alternativu za Vindouz bez potrebe za promenom aplikativnog softvera.

Korisni linkovi: http://j.mp/1Qfjo3L
http://j.mp/1KMRX4k

Puls slobode

Kako kuca Tilda?

Autor: Nikola Hardi

Uvod

Kao što već sigurno znate, Novi Sad ima i hakerspejs – Tilda centar. LUGoNS trenutno nema svoje prostorije, puno članova više nije u Novom Sadu - ali oni koji su tu često se sastaju baš u Tildi. Tildu je osnovala LUGoNS ekipa i isti duh i principi su se zadržali.

Tilda postoji već gotovo godinu dana na adresi: Bulevar oslobođenja 12, sprat 5, stan 21. Veb-adresa je http://tilda.center. Redovna okupljanja su ponedeljkom i petkom u 20 sati, a za ostala dešavanja možete da saznate na stranici Fejsbuka ili IRC kanalu #tilda.center na Frinoud (eng. Freenode) serveru. Ako niste sigurni da li ćete zateći nekoga, najbolje je da proverite na IRC-u. Sada kada se raspored ustalio i ima mnogo novosti, vreme je da sa vama podelimo kako izgleda poseta Tildi!

Okupljanja ponedeljkom

Ponedeljkom u 20 sati uvek ima nekog. Ponedeljkom je tema za razgovor slobodna. Priča se o problemima na koje smo naišli od prethodne posete hakerspejsu. Dele se iskustva i traže saveti o podešavanju naših ličnih računara. Priča se o hardveru i softveru. Naprimer, mnogi su nedavno kupili SSD disk, pa je bilo priče o montiranju diska na mesto CD čitača u laptopu. Bilo je priče i o dodatnim podešavanjima za sistem kada se koristi SSD, ali i o telefonima, pa smo tako imali priliku da isprobamo Ubuntu na telefonu. Zasada barem troje ljudi koristi Mek (eng. Mac), tako da Tilda nije rezervisana samo za korisnike Linuksa. Jako nam je drago što u poslednje vreme za nekim stolom svaki put ili trepću diode, ili se isprobava neki novi senzor. Dakle, na raspolaganju ima i elektronike i alata. Unutra je zabranjeno pušenje, ali glavna prostorija ima izlaz na terasu koja je više nego dovoljno prostrana. Posle 21 sata već počinje da se stvara primetna gužva i da postaje bučno, pa se ljudi spontano grupišu. Grupe se formiraju ispred table, za stolom oko arduina, na terasi ili za stolovima uz laptope. U glavnoj prostoriji nema telefoniranja. Za to postoji posebna prostorija. U Tildi postoji frižider, a svako ko dolazi obično ponese neko piće. U svakom slučaju, ponedeljkom je gužva, bučno i zanimljivo! Ne planirajte da radite nešto ponedeljkom uveče, jer nećete odoleti raspravama oko vas.

Okupljanja petkom

Okupljanja petkom takođe počinju u 20 sati. Dešava se da povremeno skliznu na četvrtak. Petkom je mirnije, sluša se predavač (obično je to dosada bio Goran Mekić, jedan od osnivača Tilde) i prati se predavanje. Tema predavanja je najavljena unapred. Dosada su pokrivene teme koje se tiču programiranja veb-aplikacija. U Tildi se voli Pajton (eng. Python), REST i aplikacije koje su sačinjene od jedna stranice (eng. single page applications). Dosada su pokrivene sledeće teme:

Flask (eng. Flask)

Backend python microframework

Pivi (eng. Peewee)

Paj O-Er-Em (eng. Py ORM)

Sveger (eng. swagger)

Dokumentacija REST APIja

Githab radionica

Predavanja se ne prenose uživo, ali dostupna su na Jutjub kanalu. Ovo je dobra prilika da vas podsetimo na Balkon (eng. BalCCon) – Jutjub kanal na kojem su dostupni snimci predavanja sa Balkona održanog 2014. (Second base) i 2015. (Third time's charm), kao i nekoliko predavanja sa prvog Balkona, održanog 2013. godine (First contact).

Teži se ka tome da predavanja budu povezana u serije uz povremene tematske radionice. Nakon predavanja sledi praktičan deo. Slobodno predložite vaše teme za okupljanja petkom bilo putem mejla [office@tilda.center], IRC kanala, ili porukom na stranici na Fejsbuku.

Ostala dešavanja

Osim redovnih dešavanja ponedeljkom i petkom, nemojte očekivati da je prostor inače prazan. Mnogi svrate da rade na svojim projektima, da uče ili samo da hakuju. Svakome ko dođe na raspolaganju su mesta za radnim stolovima, dovoljno utičnica za struju, internet, tabla i projektor, frižider, elektronske komponente (arduino, diodice, protobordovi) i nešto alata. Povremeno se organizuju i projekcije filmova. Sredinom februara su konačno dopremljena i dva servera koji su poklon drugara iz holandskog hakerspejsa - Revspejs (eng. Revspace). Hvala Gori! Do Tilde su naravno stigli LUGoNS putevima, a reč je o dva računara sa osmojezgrenim Opteron procesorima, 64 GB radne memorije, i 500 GB prostora za skladištenje podataka na diskovima u RAID (eng. RAID) sistemu. Tek treba da budu pušteni u rad i iskorišćeni.

Planovi

Elektronika i hardver,

dalje opremanje prostora,

projekti i radionice: čišćenje laptopa

O planovima je najbolje pisati tek nakon što su ostvareni, ali ipak ćemo preneti nekoliko ideja. Polako se stvara kritična masa zainteresovana za elektroniku. U Novom Sadu ima puno ljudi koji se bave elektronikom, što profesionalno, što iz hobija. Naprimer, na Fakultetu tehničkih nauka postoji duga tradicija učestvovanja na takmičenju iz robotikeEuroBot gde gotovo svake godine neke ekipe imaju plasman na finale u inostranstvu. Mejker NS je udruženje koje se specijalizovalo baš za elektroniku i hardver. Na okupljanjima ponedeljkom je postala normalna pojava da barem jedan sto bude okupiran elektronikom. Očekujemo vrlo brzo da barem jedan dan u sedmici bude posvećen samo elektronici i hardveru. Zanimljivo je što se ideje i želje posetilaca preklapaju. Imali smo već nekoliko situacija gde istu ideju prepoznamo kod više posetilaca, pa im pomognemo da se povežu i podržimo ih u radu na projektu. Za više detalja o ovim projektima ćete za sada ipak morati da svratite do Tilde. Neka ostanu iznenađenje još neko vreme. Reći ćemo samo da su tema, naravno, internet stvari (eng. IoT - Internet of Things)!

Već smo napisali šta je od opreme nabavljeno, ali hakerspejs još dugo neće biti onakav kakvim smo ga zamislili. Počeli smo od toga da nam je falila kanta za smeće i stolice, a nijednog stola nije bilo. Sada je jedna prostorija skoro sasvim opremljena. Red je da se opremaju druge prostorije. Ko god želi da pomogne, naći ćemo način. USB kablovi, produžni kablovi, alat, stolice, čiviluk, novac, knjige… sve su to sitnice koje boravak u hakerspejsu čine prijatnijim. Drugi način da pomognete je da posetite Tildu i čim primetite da vam nešto nedostaje, onda to kupite ili kontaktirajte druge i organizujete kupovinu.

Sve u svemu, ono šta smo želeli da podelimo sa vama je da je Tilda živa i zdrava. Tilda raste i jača. Predstavili smo šta se dešava i šta je u planu. Poslednja radionica do sada (githab) je organizovana na predlog posetilaca. Drugi događaj koji je predložen i biće ubrzo organizovan je čišćenje laptopa od prašine. Ukoliko ste oduvek želeli da otvorite svoj laptop, a niste smeli to da uradite sami, eto gde možete da svratite za podršku. Pišite časopisu kako ste se proveli u Tildi, ili barem pošaljite nekoliko reči podrške! Ako ništa drugo, barem širite vest da Novi Sad ima hakerspejs. 

Pozdrav iz Novog Sada!

Dan privatnosti podataka

Autor: Nikola Todorović

Dan privatnosti podataka (eng. Data Privacy Day) ili Dan zaštite podataka je godišnja proslava bezbednosti podataka i obeležava se svaki 28. januara. Svrha ovog dana je da se poveća svest o privatnosti i zaštiti ličnih podataka.

Na svaki pomen o važnosti privatnosti naših podataka nailazimo na izgovore ljudi koji tvrde da im privatnost nije bitna jer nemaju šta da sakriju. Ovakvo shvatanje se može smatrati pogrešnim i čovek ne bi smeo olako da se odriče svoje privatnosti, koja je osnovno ljudsko pravo. Iz tog, kao i mnogih drugih razloga, ovaj dan (28. januara) se obeležava u cilju podizanja svesti javnosti o značaju zaštite podataka o ličnosti i upoznavanje javnosti sa načinima zaštite ličnih podataka.

Dan je iniciran od strane Saveta Evrope i zvanično se obeležava od 2007. godine. Dve godine kasnije, Sjedinjene Američke Države proglašavaju 28. januara Danom privatnosti podataka. Od tada pa sve do ove godine, broj zemalja koje obeležavaju ovaj dan je u konstantnom porastu – trenutno ga obeležavaju Sjedinjene Američke Države, Kanada i 47 evropskih država.

U Beogradu ovaj dan nije bio zaboravljen i obeležen je sa tri međusobno nezavisna događaja. Ekipa LiBRE! časopisa je prisustvovala neformalnom okupljanju u beogradskom haklabu, a dan je obeležen i u Medija centru i Privrednoj komori.

Obeležavanje dana u beogradskom haklabu

Ovaj dan je prvi put obeležen u beogradskom haklabu u Daničarevoj ulici, broj 23, sa početkom u 20 časova. Organizator ovog događaja je član beogradskog haklaba Petar Simović, ujedno i autor LiBRE! tekstova o sigurnosti sistema i bezbednosti korisnika. Posećenost događaja je bila skromna, što zbog ograničenog kapaciteta haklaba, što zbog slabije najave ovog okupljanja. Osim domaćina haklaba, događaju su prisustvovali studenti Elektrotehničkog i Matematičkog fakulteta u Beogradu.

Okupljanje je proteklo uz gledanje predavanja „Etički dizajn i demokratija”. Da ne bi došlo do zabune, u okviru pojma etički dizajn (Manifest etičkog dizajna) reč dizajn se ne odnosi na to kako nešto izgleda, već na način na koji funkcioniše. Predavanje je nastalo u okviru projekta „Power to the People” gde je predavač Aral Balkan izneo svoje mišljenje o opasnosti u kojoj se naša privatnost danas nalazi i predložio načine kako da se u budućnosti izbegne zloupotreba naših podataka. Ne samo zbog teme, već i zbog aktuelnosti (predavanje je održano 21. januara ove godine), odlučeno je da se prihvati predlog autora ovog teksta da se Dan privatnosti podatka obeleži prikazivanjem ovog videa. Poruka prezentacije je da slobodan softver u kombinaciji sa decentralizovanim sistemima korisniku pruža nešto što nijedan centralizovani sistem i vlasnički softver ne može, a to je poverenje pored privatnosti. Nakon gledanja videa koji nije ostavio gledaoce ravnodušnim, usledila je diskusija o tome kako društvene mreže ugrožavaju našu privatnost i iskorišćavaju naše podatke. Diskusija je nastavljena razmatranjem ideje Arala Balkana o formiranju decentralizovanih sistema. Posmatranjem te ideje sa tehnološkog aspekta, došlo se do zaključka da je jako teško ostvariva, a u nastavku se govorilo o formiranju centralizovanih sistema koji bi nam omogućili apsolutnu privatnost. Iz prethodno navedenog, i činjenice da bi se diskusija nastavila još nekoliko sati da nije ponoć bila blizu, možemo zaključiti da je ovo okupljanje bilo uspešno.

Konferencija za novinare u Medija centru

U Medija centru u Beogradu je povodom ovog dana održana konferencija za novinare sa Rodoljubom Šabićem, poverenikom za informacije od javnog značaja i zaštitu podataka o ličnosti. „Počela je da se budi svest ljudi o pravu zaštite podataka” zaključio je Rodoljub Šabić na osnovu podatka da je broj prijava koje je dobila ta institucija drastično porastao u odnosu na 2009. godinu kada je bilo 83 prijave na godišnjem nivou, a danas preko 2500. Detaljnije o konferenciji ovde.

Okrugli sto u Privrednoj komori Beograda

U Privrednoj komori Beograda održan je okrugli sto povodom Evropskog dana zaštite podataka o ličnosti. Na sastanku se pored podizanja svesti i boljeg zakonskog uređivanja zaštite podataka o ličnosti, govorilio o anketi koju je Društvo za informatiku sprovelo prošle godine, a rezultati su pokazali da se ljudi u Srbiji odnose nemarno prema ličnim podacima. Detaljnije o događaju ovde

Možemo doći do zaključka da je dan obeležen kako dolikuje i nadamo se da će sledeće godine biti više događaja, te da će više ljudi biti uključeno. Ne smemo se zaustaviti na samo jednom danu; privatnost treba da se praktitkuje svaki dan i da se utiče na povećanje svesnosti društva o važnosti privatnosti.

Predstavljamo

Sigurniji operativni sistemi — Fripto (2. deo)

Autor: Petar Simović

Fripto (eng. Freepto) je još jedan operativni sistem koji dosta podseća na već opisani Tejls (eng. Tails). Fripto je, kao i Tejls, zasnovan na Debijanu i ciljna grupa korisnika su mu aktivisti, istraživački novinari, uzbunjivači ili, jednostavnije rečeno - svi oni kojima je sigurnost i privanost u radu na računaru na prvom mestu. Fripto dolazi u formatu .img „slike” za razliku od većine drugih distribucija koje dolaze u standardnom .iso formatu. Ovaj operativni sistem možete pokrenuti samo sa U-es-be-a (eng. USB) tako što ćete celu .img „sliku” kopirati na u-es-be upotrebom komande dd iz terminala (ukoliko koristite Gnu/Linuks operativni sistem), ili pomoću programa JunetButin (eng. UnetBootin) na Vindouz operativnim sistemima.

„Slika” operativnog sistema se može preuzeti sa glavnog sajta Fripto projekta http://www.freepto.mx/en/, u sekciji za preuzimanje. Ovde možete pronaći i heš (eng. hash, SHA512) vrednosti same „slike” operativnog sistema koje skidate, kao i digitalno potpisane heš vrednosti iste „slike” koju savetujemo da obavezno proverite kako biste izbegli da se ponovi incident sa Linuks Mint operativnim sistemom i zamenjenim „slikama” operativnog sistema (više o incidentu sa Mint OS na: http://goo.gl/2LR5kL ).

Međutim, ono što je razlika između Tejlsa i Fripa, jeste da Tejls sve veze sa internetom rutira kroz Tor mrežu i to se ne može onesposobiti/isključiti, dok Fripto ima opciju šifrovanja svega kroz Tor ali se mora prethodno uključiti. Takođe je dozvoljeno i izlaženje na mrežu i bez bilo kakve anonimne mreže. TorTp je program koji uključuje anonimni mod i rutira sve konekcije kroz Tor mrežu. TorTp je program otvorenog koda i dostupan je na Githabu (eng. Github) https://goo.gl/QoHbhl .

Kada uspešno napravite butabilni u-es-be od praznog fleša i Fripto „slike”, pokrenite računar uz pomoć fleša nameštenim kao prvi uređaj sa koga se čita operativni sistem. Nakon toga, upaliće se ekran sa logoom Fripto operativnog sistema gde treba da izaberete opciju Fripto sa automatskom detekcijom procesora (eng. Freepto (autodetect CPU)). Detaljna uputstva možete naći na: https://goo.gl/cuIya0. Ova uputstva se odnose na promenu podrazumevane administratorske šifre, iz: live u neku koja vama odgovara i koju ćete samo vi znati, kao i kreiranje šifrovanog fleša sa kojeg se Fripto pokreće. Ovo šifrovanje fleša može potrajati jer se prazan prostor na fleš disku sa kojeg ste pokrenuli Fripto popunjava nasumičnim podacima koji se takođe šifruju pa ovaj proces može trajati i preko sat vremena, zavisno od veličine fleš memorije koja treba da se popuni.

Što se programa tiče, najinteresantniji su oni koji su zaduženi za privatnost podataka i komunikaciju, a u fripto su uključeni:

GPG (eng. Gnu Privacy Guard) za potrebe šifrovanja elektronske pošte i podataka, digitalno potpisivanje poruka i podataka, kao i proveru potpisa i autentičnosti;

TorTp već pomenuti program za rutiranje svih konekcija preko Tor mreže;

MAT i Bličbit (eng. BleachBit) koji su tu za brisanje metapodataka, nepotrebnih fajlova i logova koje drugi programi ostavljaju, kao i sigurno brisanje podataka;

Trukript (eng. TrueCrypt) i tomb za šifrovanje i sakrivanje (steganografija) fajlova na već šifrovanom fleš disku;

Tor pretraživač (eng. Tor Browser Bundle - TBB) internet pretraživač specijalno modifikovan tako da koristi samo Tor mrežu i spreči deanonimizaciju korisnika zbog svoje uniformnosti (jedistvena dijagonala pretraživača i podešavanja za sve korisnike TBB-a kako bi svi izgledali identično posmatraču Tor mreže);

Tu je naravno i Florens, virtuelna tastatura za slučaj da koristite Fripto na tuđem računaru sa instaliranim ki-logerom (eng. keylogger) i zaštitnim zidom (eng. Firewall);

Neizostavni su naravno i IksČet (eng. XChat), Pidžin (eng. Pidgin) i FajlZila (eng. FileZilla), koji su svi već podešeni da sav internet saobraćaj provode kroz Tor mrežu, a Pidžin je instaliran sa podrazumevanim OTR (eng. Off The Reccord) dodatkom.

Međutim, ovo nije cela lista. Tu su i programi za promenu hardverske Mek (eng. MAC - Media Access Control address) adrese koji sprečavaju rutere na koje se kačite da vas prate po hardverskoj adresi uređaja koji se za njih vezuje, OpenVi-Pi-En (eng. OpenVPN) kako biste osim Tora mogli koristiti i/ili VPN. Naravno tu su i AjsDov (eng. IceDove) mejl klijent i AjsVisl (eng. IceWeasel), internet pretraživač, i mnoštvo drugih korisnih programa koje možete videti na priloženim slikama. Njih nećemo opisivati jer nemaju mnogo veze sa zaštitom i privatnošću.

Svi programi koji vam nedostaju mogu se naknadno instalirati ili pri testu ovog operativnog sistema sa još nešifrovanog fleša, ili poslije šifrovane instalacije na isti (eng. resistance). Međutim, ono što je zamerka je da programi dugo nisu osveženi (eng. update) novijim verzijama koje postoje već odavno, kao i da Tor pretraživač nije hteo da se pokrene i skine novu verziju prilikom testiranja, a da pri tom ne šifruje celu fleš memoriju. Iako nas ovaj problem ne sprečava da koristimo Tor mrežu u simbiozi sa drugim programima (pa i za pretraživanje interneta) pomoću TorTpa, ovo slabo održavanje kao i sam format (.img) u kojem dolazi operativni sistem čine ga odbojnim upravo onima kojima je namenjen, a to su aktivisti i novinari koji nisu nužno stručni za snalaženje u nepredviđenim softverskim situacijama i bagovima. Ukoliko iz nekog razloga ne volite prethodno opisani Tejls, a imate dosta iskustva sa Linuks operativnim sistemima, dobro rukujete terminalnim programima za zaštitu, dobro znate kako šta funkcioniše - onda možete odabrati Fripto kao zamenu za Tejls. Mada, Tejls toplo preporučujemo, čak i ako ispunjavate sve predhodno navedene uslove a privatnost i anonimnost u digitalnom svetu su vam presudne, ili bar ljudima sa kojima komunicirate.

Iako Fripto ima dosta potencijala i korisnih rešenja, neaktivna i manja zajednica kao i veoma usporen razvoj i zastareo softver ga svakako čine odbojnim. Ali, kao što smo već rekli, Fripto se može koristiti u manje opasnim situacijama, za pretraživanje vesti iz kafića ili rad nad podacima u manje stranom i prijateljskom okruženju (tuđ računar, nepoznati ljudi). Naravno, ukoliko ste koristili šifrovanje celog fleš diska, što je obavezno ako nameravate da zaista koristite Fripto za stvaran rad, a ne samo za test, gubitak šifrovane fleš memorije na kojoj je Fripto sa vašim privatnim podacima nije nikakav problem, jer ga osim vas koji znate šifru niko neće moći dešifrovati, pokrenuti operativni sistem i pročitati vaše fajlove. Samo se potrudite da šifra bude duga i netrivijalna. Na kraju krajeva, Fripto i Tejls nisu jedini sigurniji operativni sistemi o kojima će se govoriti u ovom serijalu. Ima još zanimljivih sistema koji će tek biti predstavljeni.

Kako da...?

Numerička obrada i simulacije (4. deo)

Autor: Stefan Nožinić

U prethodnom delu smo se upoznali sa nekim osnovnim delovima biblioteke koju ćemo koristiti. Ta osnova nije dovoljna bez dobrog razumevanja matematičke teorije. Ovo nije potrebno samo radi razumevanja procesa i metoda koje ćemo opisati, već i zbog toga što se mnoge stvari ne mogu uraditi bez dobrog matematičkog alata.

Vektor

Postoji dosta definicija vektora – naravno, sve su ekvivalentne. Radi boljeg razumevanja metoda koje ćemo koristiti, izabrali smo definiciju koja najbolje leže uz strukturu podataka pomoću koje ćemo predstavljati vektore. Vektor je niz brojeva i može predstavljati konačan broj podataka. Naprimer, tačka na ravni se može predstaviti vektorom tako što ćemo navesti njene koordinate. Te koordinate ne moraju biti uobičajene koordinate koje poznajemo, odnosno ne moraju biti koordinate u Dekartovom pravouglom koordinatnom sistemu. Drugi primer bio bi, recimo, skup nekih merenja. Naprimer, želimo da izmerimo visinu na uzorku od 100 ljudi; to merenje možemo zapisati kao vektor (niz) od 100 elemenata. Ovde moramo paziti da je redosled bitan - jer, ako promenimo redosled elementima, to više nije vektor.

Vektore ćemo predstavljati na sledeći način:                                                                

a=[a₀,a₁,a₂,...,an-1]

Ovo je vektor od n članova. Primetite da smo počeli sa indeksiranjem od nule. Ovu konvenciju koristimo kako bismo se lakše mogli prebaciti na konkretnu implementaciju kasnije.

Sledi primer kako vektore koristimo u Pajtonu, uz biblioteku NumPaj (eng. NumPy)

>>> import numpy as np
>>> a = np.array([1,2,3])
>>> a
array([1, 2, 3])
>>> b = np.zeros(50)
>>> b
array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
>>> c = np.ones(10)
>>> c
array([ 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
>>>

Primetite da funkcijama np.zeros(…) i np.ones(…) dodeljujemo broj elemenata koliko želimo da taj vektor ima. U ovom kontekstu, vektor i niz su isti.

Sabiranje i oduzimanje vektora se vrši tako što saberemo i oduzmemo element po element. Tačnije:

ako je c = a ± b onda za i-ti element važi:    ci = ai ± bi                                                                

a u kodu bismo to ovako implementirali:

>>> a = np.array([1,2,3])
>>> b = np.array([0,2,1])
>>> c = a - b
>>> c
array([1, 0, 2])

Potrebno je primetiti da vektori moraju imati istu veličinu, odnosno broj elemenata.

Takođe, moguće je i množenje po elementu, odnosno i-ti element novog vektora je jednak proizvodu i-tih elemenata ova dva vektora. U kodu se to implementira isto jako jednostavno:

>>> d = a*b
>>> d
array([0, 4, 3])

Slično je i za deljenje po elementu.

Imamo još dve operacije koje ne postoje kada pričamo o skalarima (pojedinačnim brojevima), a to su skalarni i vektorski proizvod.

Skalarni proizvod kao rezultat ne daje vektor, već skalar, odnosno broj:

Ovo na prvi ogled može stvarati konfuziju jer je teško razlikovati skalarni proizvod od proizvoda elemenata. Zbog ovoga ćemo skalarni proizvod obeležavati kao ab, a proizvod po elementima kao        a • b

Poslednja operacija sa vektorima koju ćemo obraditi je vektorski proizvod:

a × b

koji kao rezultat daje vektor. Zasada nećemo ulaziti u detalje kako se ova operacija vrši, jer nam trenutno nije potrebna.

Matrice

Druga struktura koja će nam biti potrebna jesu matrice. One mogu predstavljati linearnu transformaciju, tačnije transformaciju jednog vektora u drugi. Matrice ćemo obeležavati velikim slovima.

Kao što smo rekli, matrice predstavljaju transformaciju vektora zbog operacije množenja matrica koja je definisana na sledeći način:

ako je C = AB        onda element na poziciji (i,j) ima sledeću vrednost:

Ovo može delovati komplikovano, pa je najbolje da to pogledamo kroz primer:

A = np.array([[1,2,3], [4,5,6], [7,8,9]])
A
array([[1, 2, 3],
        [4, 5, 6],
         [7, 8, 9]])
B = np.array([[1,7,8], [8,2,1], [1,5,10]])
B
array([[ 1, 7, 8],
        [ 8, 2, 1],
        [ 1, 5, 10]])
>>> C = np.dot(A,B)
>>> C
array([[ 20, 26, 40],
        [ 50, 68, 97],
        [ 80, 110, 154]])
>>>

Potrebno je primetiti kako se definiše matrica: kao argument np.array(…) metode ubacujemo grupu vitičastih zagrada, pa u njih više grupa vitičastih zagrada u kojima navodimo elemente. Prva grupa označava prvi red, druga grupa je drugi, itd.

Ako želimo da zadamo matricu nula, to možemo uraditi na sledeći način:

>>> Z = np.zeros([5,5])
>>> Z
array([[ 0., 0., 0., 0., 0.],
        [ 0., 0., 0., 0., 0.],
        [ 0., 0., 0., 0., 0.],
        [ 0., 0., 0., 0., 0.],
        [ 0., 0., 0., 0., 0.]])
>>>

Dakle, kao argument navodimo vektor u kojem su dimenzije matrice.

Kod proizvoda dve matrice je bitno napomenuti dve stvari:

1. Broj kolona prve matrice mora biti jednak broju redova druge matrice. 2. Iz gornjeg uslova lako je zaključiti da ne važi pravilo komutativnosti, tačnije: AB ‡ BA.

Jedinična matrica je matrica     I    za koju važi AI = IA = A, a možemo je dobiti vrlo lako:

array([[ 1., 0., 0., 0., 0.],
        [ 0., 1., 0., 0., 0.],
        [ 0., 0., 1., 0., 0.],
        [ 0., 0., 0., 1., 0.],
        [ 0., 0., 0., 0., 1.]])
>>>

Kako ova matrica ima jednak broj kolona i redova, dovoljno je kao argument navesti samo broj koji označava broj redova (kolona).

Sada se postavlja pitanje da li postoje matrice tako da je AB = I

Odgovor je: i da i ne. Ne postoje uvek, ali kad postoje, te dve matrice su inverzne jedna drugoj. Inverznu matricu ćemo obeležavati sa -1 u eksponentu, tako da AA⁻¹ = I    važi za datu matricu. Matrice koje nemaju svog inverznog partnera zovemo neinvertabilne matrice.

Sada vektor možemo posmatrati i kao matricu koja ima N redova i jednu kolonu. U tom slučaju proizvod matrice i vektora daje nam vektor na sledeći način Ax = b gde je

Poslednja stvar koju bi trebalo da pojasnimo pre nego što pređemo na nešto konkretnije - jeste transponovanje matrica. Ova operacija je vrlo jednostavna – ona samo „rotira matricu”, tj. ako je B = AT    onda     Bi,j = Aj,i. U kodu to izgleda ovako:

>>> A = np.array([[1,2,3], [4,5,6], [7,8,9]])
>>> A
array([[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]])
>>> A.T
array([[1, 4, 7],
        [2, 5, 8],
        [3, 6, 9]])
>>>

Za razmišljanje

U narednom broju krećemo konkretnije da se bavimo samom temom ovog serijala. Nadamo se da ćete nas čitati. Do tada, ostavljamo vas da razmislite kako da skalarni proizvod dva vektora predstavite u matričnoj notaciji koristeći proizvod matrica koji smo opisali, i transponovanje. Hint: vektori se isto mogu transponovati.

Slobodni profesionalac

Doku

Autor: Nemanja Nedeljković

Doku (eng. Dokku) je ekstremno jednostavan platforma kao servis (PaaS - platform as a service). Filozofija koje su se držali programeri dok su razvijali ovaj softver je poprilično jasna. Oni su želeli da naprave što jednostavniji, potpuno funkcionalan klon Heroku platforme. U tome su i uspeli.

Ono što je prednost ovakvog sistema, jeste to što vi ne morate (ali možete) da razmišljate o celokupnom kontejneru u kojem se izvršava aplikacija, već samo o aplikaciji i njenim zahtevima. Sve što treba da uradite jeste da „pušujete” (eng. push) svoj git repozitorijum i Doku će od njega napraviti potpuno funkcionalan doker kontejner.

Šta se dešava kada pošaljem git repozitorijum?

Prvo što treba da znate o Doku, Heroku i sličnim rešenjima, jeste to da oni koriste skripte za pripremu okruženja (eng. buildpacks). Ova skripta je u suštini skup dodatnog softvera koji je neophodan za kompajliranje i izvršavanje vaše aplikacije. Tako npr. imamo skriptu za PHP (eng. PHP), za Pajton, za Rubi, itd.

Šta je bildpek i kako se koristi?

Bildpek je skupina od tri baš (eng. bash - bourne again shell) skripte koje imaju jednostavnu ulogu.

bin/detect - Uloga ove skripte je da utvrdi koristi li vaša skripta ovaj bildpek (ako korisnik ne definiše koji bildpek želi da koristi, pri izgradnji platforma pokreće po redu ovu skriptu iz svih bildpekova, da bi utvrdila koji bildpek treba da primeni na određenu aplikaciju).

bin/compile - Uloga ove skripte je da transformiše vašu aplikaciju u „nešto što može da se izvrši” tako što npr. u slučaju PHP-a instalira zavisnosti koje su definisane u composer.json fajlu, kao i veb-server i PHP.

bin/release - Uloga ove skripte je da „kaže” koje komande treba da se pokrenu pri pokretanju worker/web procesa.

Dakle, kada pošaljete svoju aplikaciju, neophodno je da se otkrije koji je bildpek pogodan za nju.

Postoje dve metode: možete sami podesiti koji se bildpek koristi, ili da Doku to sam otkrije.

Sve ovo se odvija tako što Doku pokrene Herokuiš (eng. Herokuish - klon Heroku kontejnera za izgradnju, koji je baziran da Herokuovom osnovnom kontejneru) i prosledi mu vaša podešavanja i aplikaciju. Ukoliko se među tim podešavanjima nalazi bildpek, Herokuiš ga skida i instalira. U suprotnom, Herokuiš prolazi redom kroz lokalne bildpekove dok bin/detect ne da potvrdan odgovor.

Nakon toga izvršava se bin/compile, koji skida neophodne zavisnosti; kompajlira, ukoliko je to potrebno, itd.

Da bi Herokuiš „znao” kako da pokrene vašu aplikaciju, potreban mu je Procfile. Procfile je veoma jednostavan fajl koji definiše komandu za pokretanje vaše aplikacije.

Primer:

web: node index.js

Ako vaša aplikacija ne poseduje Procfile, onda se od bin/release skripte očekuje da ga generiše.

Sada, kada je vaša aplikacija potpuno izgrađena, preostao je još jedan korak. Doker (eng. Docker), kontejner u kojem se sve to desilo, čuva se kao Doker slika koja sadrži vašu aplikaciju.

Kada se pokrene taj Doker kontejner, pokreće se i vaša aplikacija.

Ostalo je samo da vaša aplikacija „komunicira” sa „spoljašnjih svetom”. Prvo što je neophodno da bi se ta komunikacija ostvarila jeste da vaša aplikacija „sluša” na određenom portu. Da biste znali koji je to port, Doku vam prosleđuje PORT varijablu u ENV-u. Zatim, kreira nginx.conf fajl koji sadrži podešavanja da se „napravi” Endžin-iks (eng. NginX) mrežni posrednik (eng. proxy) do vaše aplikacije.

Šta je prednost jednog ovakvog sistema

Prednosti je mnogo. Nabrojaćemo samo neke od njih i objasnićemo ih na što jednostavniji način.

koinzistentno okruženje - sigurni ste da će se jedan kontejner potpuno isto ponašati na različitim serverima kao i da su kontejneri isti zato što se koristi Herokuov standard koji definiše šta svaki kontejner mora da poseduje od aplikacija;

brza isporuka krajnje aplikacije i, zbog toga što je okruženje relativno lagano, možete da imate i lokalni Doku;

kod je jednostavan, čitljiv i vrlo je jednostavno pisati dodatke za ovaj sistem;

već postoji zajednica ljudi koji koriste Doku pa je samim tim i proveren i ima mnogobrojne dodatke koji vam mogu biti od pomoći.

Internet, mreže i komunikacije

Duboki veb (Deep web— 2015.)

Autor: Dejan Maglov

Dugo je autor ovog teksta razmišljao da li je uopšte pametno pisati o ovom dokumentarcu u jednom časopisu kakav je LiBRE! Tema dokumentarca je, blago rečeno, kontroverzna.

Upravo ova kontroverza podstiče gledaoca da razmišlja o onom što je u ovom dokumentarcu video, što predstavlja prvi razlog zašto ga treba pogledati. Drugi značajan razlog je što lepo objašnjava šta je to srfejs veb, dip veb i dark net. Takođe, dokumentarac u skladnu celinu objedinjuje tehnologije o kojima i naš časopis stalno priča, a to su: Tor, Bitkoin i kriptografija. Treći razlog je što barem delimično objašnjava važnost zaštite privatnosti na vebu.

Dip veb

Dokumentarac ima više glavnih junaka. Naslovna priča je o dip vebu. Za neupućene, internet koji mi poznajemo je srfejs veb (eng. surface web – površinski veb). To je indeksirani i kontrolisani deo interneta. Mnogo veći deo interneta (možda i hiljadu puta veći) je skriven ispod ovog površinskog sloja i nije indeksiran. Celokupni onlajn sadržaj koji nije indeksiran i nije dat za javno prikazivanje predstavlja dip veb (eng. deep web - duboki veb). Sadrži bankarske podatke, podatke vladinih agencija, korporacija, univerziteta i naučnih instituta, itd. Ovi sadržaji su skriveni od javnosti i dostupni samo određenim ovlašćenim grupama ljudi.

Ovaj deo interneta vremenom su počeli da koriste ljudi koji su imali želju ili potrebu da štite svoju privatnost na vebu. Novinari, uzbunjivači, advokati, disidenti su imali potrebu da objave javnosti svoja saznanja a da pritom ne bude otkriven njihov stvarni identitet i tako bude ugrožena njihova privatnost, ili čak i život. Ovaj skriveni deo dubokog veba naziva se i „Dark net” (tamni net).

Dark net

Tamnom netu se može pristupiti, između ostalih, i softverskim servisom Tor. Tor je razvila američka vojska, ali sada je softver otvorenog koda i javno je finansiran.

Tamni net, osim mogućnosti da stvori sigurnu zonu za uzbunjivače, može i da se zloupotrebi. Tamni net postaje sigurna zona i za kriminalce. Sama činjenica da postoji zloupotreba tamnog neta stvara sliku u javnosti i medijima da su tamni net i Tor zli alati za kriminalne aktivnosti.

O takvoj zloupotrebi interneta govori i ovaj dokumentarac.

Silk roud

Tamni net i tehnologije kao što su Tor, Bitkoin i kriptografija otvaraju mogućnost potpuno slobodne trgovine na internetu. Za sve države i njihove vlade potpuno slobodna trgovina je ilegalna aktivnost. Čak i kada je roba kojom se trguje potpuno legalna, ova trgovina je u sivoj zoni jer države ne mogu da uberu porez na promet i time je posredno ugrožen mali građanin kome se povređuje pravo na sigurnost (od poreza se finasira vojska, policija i sudstvo), ugrožava se pravo na zdravstvenu zaštitu i obrazovanje (ugrožene su plate lekara, učitelja i profesora). U slučaju Silk rouda (eng. Silk road - „Put svile”), komercijalnog portala na Tamnom netu, slobodna trgovina narkoticima je bila u potpuno crnoj zoni.

Ono što najviše smeta autoru ovog teksta je ton dokumentarca koji kroz čitavu radnju suviše romantično prikazuje trgovinu narkoticima. Autor dokumentarca čak sugeriše da bi ova trgovina trebalo da bude legalizovana i, čak, s vremena na vreme, pojavljuje se sugestija da su trgovci i zavisnici narkotika izloženi upotrebi preterane sile od strane vlasti (državnih organa reda). Posredno se nagoveštava da bi liberalizacija ove trgovine smanjila nasilje, a aktere ove trgovine na Tamnom netu pretvara u nove Zoroe ili Robine Hudove.

Istina je da bi premeštanje težišta trgovine narkoticima sa ulice na internet smanjilo nasilje na ulici. Ne bi bilo ratova bandi za teritoriju, iznenadnih racija u kojima ginu i nedužni. Bio bi podignut i kvalitet robe jer bez teritorijalnih razgraničenja trgovcima bi jedino kvalitet robe i cena doneli prednost na tržištu. To su prednosti, a mana je veća dostupnost narkotika široj populaciji. Zavisnicima teža dostupnosnost nije nikad predstavljala problem, ali onima koji bi samo da eksperimentišu je teža dostupnost bila problem i možda jedini razlog zašto nikada nisu probali narkotike.

Autori dokumentarca zaboravljaju ili namerno prećutkuju činjenicu da narkotici uništavaju život svojim korisnicima, njihovim porodicama, prijateljima, poznanicima i da je jedna od najvećih pošasti savremenog društva.

Dred Pajret Roberts (DPR)

Dugi najvažniji lik oko koga se vrti radnja dokumentarca je Dred Pajret Roberts (eng. Dread Pirate Roberts – alijas DPR). DPR je pseudonim glavnog administratora Silk rouda. Zahvaljujući Toru i kriptografiji nemoguće je u potpunosti identifikovati ko je zapravo DPR. Zatim nije moguće sa sigurnošću utvrditi da li je DPR kreator i vlasnik portala Silk roud. Takođe nije moguće sa sigurnošću utvrditi koliki je uticaj i odgovornost u samoj trgovini na portalu. Nije čak moguće utvrditi da li je to jedna ličnost ili više njih koji koriste isti pseudonim.

DPR je nosilac romantičnog dela ovog dokumentarca. Sam pseudonim je preuzet od bajkovitog lika, borca za pravdu koji ga nosi nasledno, ali ne po rodbinskoj liniji, nego po zaslugama koje je stekao svojom hrabrošću i moralnim principima. DPR, administrator Silk rouda, prvenstveno je biznismen koji ovo radi ne samo zbog novca, nego i da prenese političke ideje slobodne zajednice i slobodnog tržišta bez regulative vlasti. Administrator DPR ne priznaje da je idejni tvorac i vlasnik Silk rouda, već da je on samo onaj koji kontroliše trgovinu i ne dozvoljava trgovinu robom koja direktno ugrožava živote poput trgovine oružjem, ugovaranja plaćenih ubistava i slično. Zaboravlja da i narkotici ugrožavaju život.

Zasluga DPR-a je stvaranje kompaktne zajednice oko Silk rouda potpuno drugačije u odnosu na, primerice, Ibej (eng. eBay) zajednicu. Silk roud zajednica deli filozofiju i aktivno učestvuje u razvoju.

Ros Olbrikt

Za dobar dokumentarac potreban je i tragični lik. U ovom dokumentarcu je to Ros Olbrikt (eng. Ross Ulbricht). Uz saradnju svih policijskih agencija SAD-a, Rosa je uspeo da uhvati FBI na delu dok je imao ruke na tastaturi ulogovan kao Dred Pajret Roberts, administratorski deo Silk rouda. Ovim je njegova sudbina bila zapečaćena.

Ovom akcijom FBI-a nanesen je udarac Silk roud zajednici. Uhapšen je jedan od njihovih istaknutih članova, uskoro je pronađen glavni server i time je ugašen portal Silk roud. Samom Rosu su u optužnici prikačeni svi gresi kompletne zajednice plus naručena ubistva za koja se ni ne zna da li su bila izvršena. Da bi sudski proces uspeo, Rosu su sudije morale da zanemare ustavno pravo na njegovu privatnost jer većina prikupljenih dokaza protiv njega je prikupljena na način koji povređuju pravo o zaštiti privatnosti ličnosti i morali bi biti odbačeni. Ros je drakonski kažnjen. Osuđen je na doživotnu robiju bez prava na pomilovanje. Ovim pravni sistem Amerike pravi primer od Rosa i daje na znanje da su ovakve radnje nedopustive i da će svako ko bude uhvaćen u sličnim radnjama biti najstrožije kažnjen.

Postsudski epilog

FBI je dobio jednu rundu. Zatvorio je Silk roud. Sudsko veće je učinilo sve da drakonskom kaznom preventivno deluje na ponavljanje ovakvih dela. U praksi, sudski spor nije ni završen, a na Tamnom netu se pojavio Silk roud 2.0 sa novim Dred Pajret Roberts administratorom. NSA i FBI je uspeo da zatvori i ovaj Silk roud. Server se ni ne ohladi kako treba, a pojavi se i Silk roud 3.0 sa još boljom odbranom.

Silk roud nije jedini sajt ovakvog tipa u Tamnom netu. Ovo pokazuje da rat sa ovako sofisticiranim kriminalcima je nemoguće dobiti na klasičan način zabranjivanja.

Zaključci

Teško je pisati o ovom dokumentarcu a ne upasti u klopku. Ma koliko snažno da kažemo „ovo što ovi ljudi rade je loše”, već u sledećoj rečenici kažemo „ovo smanjuje nasilje” ili „oni koriste slobodni softver”, a u časopisu stalno pišemo da je to dobro, ili „oni su zajednica”, što takođe promovišemo.

Ono što je najviše odvraćalo autora ovog teksta od predstavljanja ovog dokumentarca je mogućnost da nekome damo ideju kako da zloupotrebi slobodan softver. Našim organima reda još samo fale visokosofisticirani kriminalci.

U našu odbranu bismo rekli da ovaj dokumentarac postoji, nalazi se na površinskom vebu i lako je dostupan. Kome je stalo do zloupotrebe, lako će se informisati i bez nas. Naše je da upozorimo da to postoji i da se spremimo za odbranu od ovakve opasnosti.

Činjenica je da dok bude ljudi koji zloupotrebljavaju narkotike, biće i trgovaca narkoticima i to sve sofisticiranijih. Ignorisanje i prepuštanje da se samo organi reda bore protiv narkomanije je unapred izgubljeni rat. Edukacija i kontrola su jedine uspešne metode borbe. Roditelji moraju biti svesni da Fejsbuk nije najopasnije mesto na internetu, već da ima i opasnijih.

Raskrinkavanje iskrivljene filozofije slobodnog softvera je još jedan zadatak časopisa. Reći da Tamni net, Tor i kriptografija ne valjaju jer mogu da se zloupotrebe je isto kao reći da motika, nož i sekira ne valjaju jer mogu biti oružje. Slobodan softver je alat koji pomaže ljudima da što bolje izraze svoju kreativnost bez ograničenja. Sve se može zloupotrebiti, pa i slobodan softver. Ali za to nije kriv alat, nego onaj ko ga upotrebljava.

Druga zloupotrebljena stvar u ovom slučaju je zajednica. Zajednica okupljena oko Silk rouda nalikuje zajednicama okupljenim oko slobodnog softvera. U srži svake zajednice je filozofija koju zajednica deli. Zajednički imenilac između filozofija slobodnog softvera i Silk roud zajednice je jedino imenica „sloboda” - sve ostalo je različito. Dok se kod filozofije slobodnog softvera propagira sloboda razmene ideja, iskustava i znanja, kod Silk roud zajednice vlada anarho-liberalni kapitalizam koji propagira slobodu trgovine bez državne regulative i bez želje da se išta državi vrati. Nije im potrebna zaštita (vojska, policija i sudstvo im samo smeta) i imaju para da se sami leče i obrazuju, a za druge ih nije briga.

Treba biti oprezan. „Nije zlato sve što sija”, pa ni svaka sloboda koja ugrožava tuđu slobodu nije sloboda. Anarhija svakako nije sloboda.

Sam svoj majstor

Instaliranje programa iz izvornog koda

Autori: Nikola Hardi i Stefan Nožinić

O problemu

Slobodan softver stiže do računara krajnjih korisnika u raznim oblicima. Danas su najpopularnije tzv. „binarne” distribucije (eng. binary based distribution) koje se baziraju na sistemu paketa u riznicama, a svaki paket sadrži programe koji su već prevedeni u izvršni oblik (eng. executable) i uvezani (eng. linked) sa odgovarajućim verzijama deljenih biblioteka. Odgovarajuće verzije tih biblioteka su takođe dostupne u nekim drugim paketima. O ovome možete detaljno da pročitate u 34. broju časopisa.

Drugi način za dobavljanje novog softvera je preuzimanje koda. Postoje distribucije koje su bazirane na izvornom kodu (eng. source based distribution) kao što su Slekver (eng. Slackware) i Džentu (eng. Gentoo). Paket menadžeri takvih distribucija preuzimaju izvorni kod softvera i izvorne kodove njegovih zavisnosti, prevode ih i tek potom premeštaju na potrebne lokacije (instaliranje). Obe varijante imaju i svoje prednosti i svoje mane.

Prednost binarnih distribucija je što zahtevaju manje procesorskih resurasa jer nema potrebe za prevođenjem programa pri instalaciji. Mana je manjak fleksibilnosti pri instalaciji jer je program dostupan samo u onom obliku u kojem je pripremljen.

Distribucije bazirane na izvornom kodu prevazilaze taj problem, ali unose dodatno vreme i upotrebu procesora pri instalaciji (i svakoj nadogradnji!) svakog paketa. Distribucije bazirane na izvornom kodu nisu tema ovog članka jer je u tom slučaju proces prevođenja automatizovan. Tema ovog članka je kako preuzeti kod programa koji inače nije moguće instalirati standardnim putem ili kada želimo da napravimo neku izmenu u njemu (eng. patch). Glavna tema je softver koji je tipično pisan u programskim jezicima C i C++.

Kod jednostavnijih projekata koji se sastoje od svega nekoliko datoteka problem prevođenja je trivijalan. Postoji jasna polazna tačka (eng. main entry point) a skup zavisnosti je minimalan. Problem se javlja kada se projekat sastoji iz velikog broja datoteka i oslanja se na veliki broj biblioteka koje moraju biti prisutne u trenutku prevođenja. Problem postaje još složeniji kada želimo da izmenimo neke pretpostavke kao što su podrazumevana lokacija za traženje biblioteka, izbor prevodioca ili isključivanje nekih delova koda.

Problem je drugačiji kod nekih drugih operativnih sistema i programskih jezika. Na linuksu i drugim juniksolikim sistemima je situacija takva da se programi oslanjaju na skup deljenih biblioteka (eng. shared libraries). Na nekim drugim platformama su biblioteke ili statički uvezane (deo su samog programa), ili se distribuiraju zajedno sa programom. U oba slučaja pri prevođenju su zaglavlja (eng. headers) svakako neophodna. Pajton i Pip (eng. Pip) upravnici paketa mogu to sami da razreše, APT takođe. Ukoliko želimo da instaliramo program koji nije dostupan u našoj distribuciji, problem se malo drugačije rešava.

Na početku je napomenuto da su jezici u kojima su ovi projekti pisani uglavnom C i C++. Za projekte pisane u Pajtonu postoji specifičan i jednostavan način prevođenja i takav projekat je najčešće dostupan u riznicama upravnika paketa Pip. Za Javaskript postoji npm kao i slični upravnici za projekte u ostalim jezicima. Upotreba ovih specifičnih upravnika za ove jezike je veoma jednostavna, razrešavanje zavisnosti ide automatski pa ih nećemo ovde opisivati.

Evolucija alata

Na početku je problem donekle rešavan tzv. bild skriptama (eng. build script) koji su do određene mere mogle da automatizuju proces prevođenja. Pojavio se šablon i pojavila se potreba za novim alatom. Tako je nastao jezik za specifičnu namenu (eng. domain specific language, dsl) pod nazivom M4. M4 je zapravo skraćenica od reči Makro, po principu početnog slova i broja slova koje slede. M i još četiri slova. M4 se koristi za pisanje mejkfajlova (eng. makefile) i dan-danas.

Iako je M4 pomogao u automatizaciji, on nije mogao da pomogne u problemu portabilnosti. Proces prevođenja nije potpuno isti na Linuksu i na BSD-u ili Solarisu. Zbog toga su kao pomoćni alat nastale skripte za konfiguraciju (eng. config). Njihov posao je da otkriju u kakvom okruženju se trenutno nalaze, koji prevodilac je dostupan, da li su sve zavisnosti zadovoljene itd. Kao rezultat skripte za konfiguraciju je jedan mejkfajl koji je validan za trenutnu platformu. Pored navedenih mogućnosti, skripte za konfiguraciju su i dan-danas način za fino podešavanje programa pri prevođenju. Naprimer, možete da prevedete plejer bez podrške za grafičko okruženje ili uređivač teksta bez mogućnosti za isticanje sintakse. To je mehanizam koji distribucije zasnovane na izvornom kodu koriste za fino podešavanje paketa. Pošto je i u procesu pisanja skripti za konfiguraciju primećen izvestan šablon, uspostavljen je određeni standard i napravljen je skup alata. Pisanje skripte za konfiguraciju nije nimalo jednostavan zadatak. To su alati koji se usavršavaju već više od dvadeset godina. Jedan takav alat je Gnuov sistem za prevođenje (eng. GNU build system) poznat kao Autotools. Drugi je znatno mlađi (desetak godina) i u nekim principima drugačiji sistem - Si-Mejk (eng. CMake). Oba sistema imaju istu namenu: na osnovu određenih podešavanja proizvesti ispravan mejkfajl na bilo kojoj od podržanih platformi, uz prepoznavanje dostupnog prevodioca, proveru zavisnosti i podršku za fino podešavanje mogućnosti. Ovo je, naravno, samo grub opis. Mejkfajlovi mogu da se koriste za različite namene (pokretanje procesa generisanja dokumentacije ili testiranja), a danas ne moraju da budu ni u M4 jeziku - postoje i drugi bild sistemi, naprimer Nindža (eng. Ninja). U ovom članku ćemo se baviti samo problemom upotrebe ovih sistema od strane korisnika, ne programera. Priprema projekta tako da koristi neki od ovih sistema je tema za neki drugi članak.

Gnuov sistem za prevođenje

Gnuov sistem za prevođenje je nešto stariji skup alata. Važi za složenu mašineriju. Može se reći da je najzastupljeniji, barem kada je reč o C i C++ projektima. Iako je prilično složen za postavljanje, jednostavan je za upotrebu. Sastoji se uglavnom od tri koraka:

pokrenuti skriptu za konfiguraciju;

pokrenuti prevođenje;

pokrenuti instalaciju.

Ovo se obično sastoji iz tri komande koje se redom izvršavaju:

./configure
make
make install

Različiti parametri se mogu postaviti pri izvršavanju skripte za konfiguraciju, a za više detalja o datim parametrima dovoljno je izvršiti komandu za dobijanje pomoćne dokumentacije:

./configure --help

Si-Mejk

Priča kaže da je Si-Mejk skraćenica od kolor mejk (eng. „colour make” - mejk u boji). To i jeste najočiglednija razlika za jednog korisnika. Tokom procesa prevođenja izveštaji su u boji, a trenutni napredak je izražen u procentima umesto kriptičnim dugim linijama koje predstavljaju zapisnik o izvršenim komandama. I Si-Mejk rešava problem otkrivanja okruženja, proveru zavisnosti i fino podešavanje zastavicama (eng. flags). Način je malo drugačiji, skripte za konfiguraciju su u jeziku napravljenom specifično za ovaj alat, umesto klasičnih beš (eng. bash) skripti. Rezultat može da bude M4 ili Nindža mejkfajl. Najčešće je to baš M4 koji se standardno pokreće komandom make. Proces se sastoji od sledećih koraka:

cmake .
make
make install

Razrešavanje zavisnosti

Ovde nije reč o „onim zavisnostima”. Zavisnost je u ovom kontekstu biblioteka na koju se željeni program oslanja. Najčešće je ta biblioteka potrebna u obliku deljene biblioteke (eng. shared library) sa .so ekstenzijom. Takva zavisnost se naziva i zavisnošću potrebnom za pokretanje programa (eng. runtime dependency). Takav oblik je neophodan za pokretanje programa, ali nije dovoljan za prevođenje. Za prevođenje su potrebna i zaglavlja.

Spisak zavisnosti može da se otkrije na mnogo načina. Neki su manje a neki više mučni. Ovo je nekada davno bila glavna muka korisnika linuksa, u vreme kada upravnici paketima nisu postojali ili nisu bili toliko napredni.

Najočigledniji način za otkrivanje zavisnosti je dokumentacija. Autori programa često napišu uputstvo za prevođenje programa u kojem se nalazi i spisak zavisnosti. Tradicionalno se ta datoteka naziva README (engl. pročitaj me) ili INSTALL.

Drugi način je pokretanje skripte za konfiguraciju koja će prijaviti grešku svaki put kada naiđe na nezadovoljenu zavisnost. Nažalost, nezadovoljene zavisnosti se otkrivaju jedna po jedna tako da je proces iterativan i zamarajuć.

Treći način je verovatno najelegantniji. Svaki paket u sebi nosi spisak svojih zavisnosti za pokretanje i za prevođenje. Ukoliko imamo tu sreću da nam je dostupan, možemo da instaliramo sve zavisnosti ili samo da ih izlistamo. Naprimer, ovako za Ubuntu:

apt-get build-dep [paket]
apt-rdepends --build-depends [paket]

Konkretan primer

Kod možete da preuzmete iz zvaničnog „uzvodnog” repozitorijuma za taj program (eng. upstream), ili pomoću upravnika paketom iz repozitorijuma distribucije.

Prvi način daje najsvežiji dostupan kod. Ovo je preporučena polazna tačka ako želite da ispravite neku grešku, prvo proverite da li je ta greška još uvek prisutna čak i u najnovijoj verziji koda. Ako jeste, proverite da li ju je neko već prijavio. Tek onda se prepustite hakovanju i pisanju zakrpe (eng. patch).

Neophodno je da imate već instaliran Git. To možete proveriti komandom:

which git
</code
>ili
<code
>git --version

Kao primer Gnuovog stila uzećemo IRSSI. Konzolni IRC klijent.

Preuzimanje najnovijeg koda:

git clone https://github.com/irssi/irssi

Preuzimanje koda iz repozitorijuma distribucije:

apt-get source irssi

Obratite pažnju da izvorni repozitorijumi obično nisu uključeni. Proverite da li je to i kod vas slučaj i, ako jeste, uključite ih.

Posle toga je neophodno instalirati zavisnosti. Eksperimenta radi, možete da pokušate da pokrenete skriptu za konfiguraciju pre instaliranja zavisnosti kako biste videli kako izgledaju poruke o greškama.

Zavisnosti možete instalirati ovom komandom:

apt-get build-dep irssi

Dodatna zavisnost može da se pojavi, naprimer, dh-autoreconf u ovom slučaju!

Proces kompajliranja započeti ovim komandama:

./autogen.sh # (dodatni korak koji generiše čak i skriptu za konfiguraciju)
#prethodna skripta će odmah pokrenuti i configure skriptu, mada možete je opet pokrenuti i sami
make -j5 #(kompajliranje, -j5 znači 5 poslova, pravilo je broj jezgara +1)
#izvršna datoteka se nalazi u src/fe-text/irssi
#po potrebi možete pokrenuti i make install, onda će svi fajlovi biti raspoređeni na svoje mesto
#direktno u sistem, obratiti pažnju da install deo morate pokrenuti kao root korisnik

Deo INSTALL datoteke:

Irssi installation instructions
-------------------------------

To compile irssi you need:

- glib-2.6 or greater
- pkg-config
- openssl (for ssl support)
- perl-5.6 or greater (for perl support)

For most people, this should work just fine:

./autogen.sh (for people who just cloned the repository)
./configure (if this script already exists, skip ./autogen.sh)
make
su
make install (not _really_ required except for perl support)

Si-Mejk primer

apt-get source weechat
apt-get build-dep weechat
cd weechat
mkdir build
cd build
cmake ..
make -j5
cd src/gui/curses/weechat

Prvi program možete testirati pokretanjem izvršnog fajla koji je naveden gore ili, ako ste izvršili i instalaciju, odnosno premeštanje izvršnih fajlova - potrebno je samo da u konzoli otkucate:

irssi

Trebalo bi da dobijete konzolni interfejs koji podseća na prozor za dopisivanje. Otkucajte sledeće da se konektujete na naš kanal:

/nick nadimak_koji_zelite
/server irc.freenode.net
/join #floss-magazin

Drugi program možete pokrenuti pokretanjem izvršnog fajla koji se nalazi u direktorijumu u koji ste prešli nakon prevođenja, ili, ako ste izvršili instalaciju, pokretanjem komande:

weechat

A možete se konektovati na sledeći način:

/server add freenode chat.freenode.net
/connect freenode
/nick nadimak_koji_ste_izabrali
/join #floss-magazin

Ako budete imali nekih nedoumica ili problema, možete nas kontaktirati putem elektronske pošte ili naših stranica na Fejsbuku i Tviteru.