Está en la página 1de 56

Broj 33

Februar 2015. Broj 33

i
B
R
E
!
L

asopis o slobodnom softveru

Izgubljeni heroji Bleli parka

J O I Z D VAJ AM O

bgfx - Cross-platform rendering library

To su samo metapodaci?

1
Creative Commons Autorstvo-Nekomercijalno-Deliti pod istim uslovima

Li B R E !

ASOPIS O SLOBODNOM SOFTVERU

Februar 2015.

Re urednika

Transkripcija
Primetili ste da je veina stranih rei u prethodnom broju asopisa pisana
prilagoeno. Odluili smo da ponemo sa transkripcijom. Odluci je
prethodilo razmatranje o tome da li je transkripcija korisna i mogua, i
kako bi nai itaoci reagovali.
U naem jeziku ima mnogo rei stranog porekla. Mi smo ih vremenom
prihvatili i prilagodili ih. Kako vreme protie, stiemo utisak da su pojedine
rei oduvek deo naeg jezika. Sledee generacije ne moraju imati svest o
tome da je neka re stranog porekla. Primeujete da strana re
prihvatanjem postaje re stranog porekla, a moemo ih sretati jednako
esto kao domae rei. Prihvatanje rei - ta se pod tim podrazumeva?
Najpre se re ustali u narodu i prilagodi se naem izgovoru. Dodeljujemo
joj rod, broj i pade. Piemo je naim pismom. Da li se transkripcijom re
udaljava od izvornog znaenja? Odgovor je odrian. Ajntajn (nem.
Einstein ) je poznati fiziar, Lavoazje (fr. Lavoisier) je hemiar, a svima su
nam poznate Ezopove basne (gr. Aispos). Sastavljai naih
udbenika oduvek su vrili transkripciju stranih rei. Podrazumeva se da su
makar u fusnoti navedeni znaenje i izvorna grafija. Transkripcija je
sastavni deo naeg jezika.
S druge strane, protivnici transkripcije su miljenja da je najbitnije optiko
prepoznavanje stranih rei, a da bi transkripcija mogla da zbuni itaoca u
smislu da ne zna o emu se radi, iako se ranije susretao s istim pojmom ali
u izvorno napisanom obliku. Da je mogunost zbunjivanja mala ukazuje
viedecenijska praksa u naoj naunoj literaturi da je strana re kod prvog
spominjanja napisana izvornim pismom. Transkripcija nije puko
preslovljavanje s jednog pisma na drugi, ve podrazumeva adekvatno

Broj 33

Re urednika
prenoenje zvukova i njihovo zapisivanje.
LiBRE! je strane rei do 32. broja asopisa, ak i u tekstovima na irilici,
pisao izvornim pismom. Masivno uplitanje latinice u irilicu je nepraktino,
a takav tekst je nepregledan. Transkribovan oblik rei nam pokazuje kako
se one itaju, te nam otklanja nedoumice. Dobar primer je ime poznatog
grafikog okruenja Mate. Re potie iz panskog jezika te se ita Mate, a
ne Mejt. Mate je biljka koja raste u Junoj Americi od koje se spravlja aj.
LiBRE! e slediti Pravopis i preporuke naih poznatih filologa te e veinu
ustaljenih rei pisati u transkribovanom obliku. Kod prvog pisanja rei u
zagradi e se navesti izvorni oblik da bi se itaocu omoguila dalja
pretraga interneta o pojmu. Kad bi transkripcija bitno oteala
prepoznavanje nekog sadraja (kao, naprimer, kod akronima), takve rei
pisaemo nadalje u izvornom obliku uz povremeno pisanje preporuke kako
se re ita. Maj-es-kju-el bi bilo nepregledno i isuvie dugako, stoga
piemo MySQL . Isto vai za manje poznate nazive programa i za komande
unutar programa.
Od izlaska prolog broja nismo dobili nijednu kritiku na raun transkripcije.
To bismo mogli da protumaimo kao znak da itaoci nemaju zamerku u
vezi sa transkripcijom. Dobili smo odgovore na pitanja postavljena u Rei
urednika iz prethodnog broja. Ovom prilikom vam se zahvaljujemo na
odgovorima. Svi vai predlozi su dobrodoli i razmatraju se na redovnim
sastancima. I dalje oekujemo vae kritike i predloge, koje nam moete
poslati na ve poznatu adresu elektronske pote libre [at] lugons [dot] org.
Do sledeeg broja,
LiBRE! tim.

Li B R E !

ASOPIS O SLOBODNOM SOFTVERU

Februar 2015.

Sadraj
Vesti
Predstavljamo

str. 6
str. 9
str. 14

bgfx - Cross-platform rendering library


rEFInd - Boot managment

Kako da...?

str. 18

Uvod u programski jezik C (9. deo)

Oslobaanje

U potrazi za idealnom distribucijom:


Socijalni kriterijumi za izbor
idealne distribucije (6. deo)

str. 26

Slobodni profesionalac

str. 31

Hibernate ORM (2. deo)

Internet mree i komunikacije

str. 36
str. 40

To su samo metapodaci?
Izgubljeni heroji Bleli parka

Sam svoj majstor

str. 45

LaTeX prezentacija: Beamer (4. deo)

Hardver

BagleBone Black Rev C: Vodi od prvog dana


BeagleBone Black kao Tor relej (3. deo)

str. 51
Mo slobodnog
softvera

Broj 33
LiBRE! prijatelji

Broj: 33
Periodika izlaenja: mesenik
Izvrni urednik: Stefan Noini
Glavni lektor:
Aleksandar Boinovi
Lektura:
Jelena Munan
Saka Spijak
Milena Beran
Milana Vojnovi
Admir Halilkanovi
Grafika obrada:
Dejan Maglov

Ivan Radelji

Dizajn: White Circle Creative Team

Autori u ovom broju:


Nenad Marjanovi
Dejan ugalj
Nikola Hardi
Branimir Karadi
Kriptopank
Ostali saradnici u ovom broju:
Marko Novakovi Mihajlo Bogdanovi
Poasni lanovi redakcije:
eljko Popivoda
eljko ari
Vladimir Popadi
Aleksandar Stanisavljevi
Kontakt:
IRC: #floss-magazin na irc.freenode.net
E-pota: libre@lugons.org

Li B R E !

ASOPIS O SLOBODNOM SOFTVERU

Vesti
21. januar 2015.

Kanonikal pokrenuo verziju


Ubuntu Kora za Internet stvari

Kanonikal, kompanija zaduena za razvoj Ubuntu


Linuks distribucije, pokrenula je svoju verziju
Ubuntu Kora ( Core) za Internet stvari ( Internet of
Things).
Koristan link: http://t.co/tN3VmZe5PK

26. januar 2015.

Masovno nadgledanje preti


ljudskim pravima

U evropskom izvetaju masovno pijuniranje preti


digitalnoj sigurnosti i ljudskim pravima.
Koristan link: http://t.co/9gcrmXw44q

27. januar 2015.

Jutjub koristi HTML5 kao


podrazumevani nain
reprodukcije

Jutjub je zamenio Fle tehnologiju novijom,


otvorenijom i naprednijom tehnologijom - HTML5
koja e se koristiti kao podrazumevani nain
putanja video sadraja.
Koristan link: http://t.co/zBpJh8Op6x

Februar 2015.

Broj 33

Vesti
28. januar 2015.

GHOST - bezbednosni problem

GHOST - novi bezbednosni problem u GNU-ovoj C

biblioteci koji dovodi u opasnost sve aplikacije


koje koriste funkcije gethostbyname i gethostbyname2 i omoguava udaljenom napadau da
dobije dozvole koje ima korisnik koji izvrava tu
aplikaciju.
Koristan link: http://t.co/GDYKsH2nOo

1. februar 2015.

Pajrat Bej se vratio

Najpopularniji torent sajt Pajrat Bej ( The Pirate


Bay) se ponovo vratio posle dvomesenog
perioda kada je bio nedostupan.
Koristan link: http://t.co/rSAPCVXWJi

2. februar 2015.

Rasberi-Paj 2 je izaao

Dostupan je u prodaji Rasberi-Paj 2 ( Raspberry PI


2 ) sa 4 procesorska jezgra.
Koristan link: http://t.co/RGlOdoeioc

Li B R E !

ASOPIS O SLOBODNOM SOFTVERU

Vesti
3. februar 2015.

Amerika vojska otvara svoj


program za detekciju napada

Amerika vojska je odluila da svoj program za detekciju napada postavi na Githab i time omogui
celom svetu da koriste softver koji su oni koristili za
detekciju napada na mreu ministarstva odbrane.
Oni ovim potezom oekuju povratnu informaciju od
ljudi koji ne rade u vladi i nadaju se unapreenju
svog programa.
Koristan link: http://t.co/v3PYlKF2sz
6. februar 2015.

GPG u opasnosti

Verner Koh ( Werner Koch ), programer koji je


zaduen za razvoj GPG-a (Di-Pi-Di, engl. GNU
Privacy Guard), softvera koji svi koristimo za
enkripciju kako nae elektronske pote tako i ostalih
bitnih podataka, polako ostaje bez novanih
sredstava. Pozivaju se svi zainteresovani i oni koji su
u mogunosti da poalju donaciju u vidu novca.
Koristan link: http://t.co/jGac5emwPX
9. februar 2015.

Arduino razvojno okruenje novo izdanje

Izalo je novo razvojno okruenje za Arduino u


verziji 1.6
Koristan link: http://t.co/4A0pFcIsVf

Februar 2015.

Broj 33

Predstavljamo

bgfx - Cross-platform rendering


library

Autor: Branimir Karadi


bgfx je rendering biblioteka otvorenog koda sa podrkom za vie razliitih grafikih
API-ja 1 (eng. Application Programming Interface) i operativnih sistema 2 . Biblioteka

slui za jednostavniji pristup grafici i razvoj igara na vie platformi. Najvei


problem sa kompjuterskom grafikom je to postoji vie razliitih API-ja koji kada se
koriste direktno onemoguavaju portovanje igara na druge platforme. Pravei igru
koja pristupa samo bgfx biblioteci a ne direktno API-u, autor igre omoguava sebi
da tu igru na jednostavan nain moe prebaciti na bilo koji podran operativni
sistem, odnosno platformu.

Li B R E !

ASOPIS O SLOBODNOM SOFTVERU

Februar 2015.

Predstavljamo
U poetku bgfx je bio samo hobi projekat i zato ima nematovito ime. Bila je to
samo jedna od mnogih biblioteka koje sam napravio za pravljenje igara. Kada sam
radio na jednoj igri, postojala je potreba da se igra prebaci sa starog DX9 (eng.
DirectX 9 ) renderinga na OpenGL (engl. Open-di-el), pa sam tom prilikom izvukao
deo moje hobi biblioteke za renderovanje i zapakovao je kao celinu. Posle uspene
primene ove biblioteke u mojim projektima, odluio sam da je objavim kao projekat
otvorenog koda na Githabu (eng. Github) pod licencom BSD 2-clause . Po mom
miljenju, ovaj deo renderinga je trebalo ve odavno da bude reen problem, kao i
da bude mogue da se igre bez vee muke izdaju na bilo kojoj platformi po elji
autora. Namenjena je prevashodno manjim autorima koji ele da imaju potpunu
kontrolu nad svojim kodom, bez obzira na platformu na kojoj ele da objave igru.
Kod ovakvih komercijalnih proizvoda uvek postoje neka ogranienja, a ako firme
izgube interes za proizvodom, mogu ostaviti autore na cedilu, bez podrke i
odravanja. Sa druge strane, projekti otvorenog koda omoguuju saradnju autora i
unapreenje funkcionalnosti projekta na zadovoljstvo svih.

Upotrebom bgfx biblioteke korisnik moe da zanemari konkretnu implementaciju


razliitih tehnologija kao to su OpenGL , OpenGL ES i Direct3D, bez kompromisa sa
performansama. Ova biblioteka nije tanka apstrakcija ili emulator nekog
postojeeg API-ja, tipa Guglovog Engl (eng. ANGLE) projekta koji emulira OpenGL

10

Broj 33

bgfx
ES preko Direct3D-a, ili Valvov TuDi-El (eng. ToGL ), koji emulira Direct3D 9 preko
OpenGL-a, nego zaseban API vieg nivoa. Iako je u prolosti bilo slinih projekata,
svi oni su uglavnom imali pretenziju da budu endin ( engine) ili frejmvork koji bi

tvorci igara koristili kao takav. Takav pristup donosi dosta komplikacija i veoma je
teko takav projekat integrisati sa postojeim kodom. Iz ovog razloga bgfx projekat
nema pretenzije da bude ceo endin ili frejmvork, nego samo biblioteka koju svako
moe lako da integrie u sopstveni projekat.
bgfx biblioteka se trenutno koristi u nekoliko komercijalnih igara, ali ima i dosta

interesovanja za projekat kao osnove za pravljenje korisnikih aplikacija, pa ak i


alata za programere.

Na projektu je do sada radilo oko deset ljudi. Uglavnom su dodavali podrku za


nove platforme, primere, ili su povezivali biblioteku sa drugim jezicima. to se
budue saradnje na ovom projektu tie, sve je dobrodolo, ak i smo korienje
biblioteke, a zahtevi za uvoenje novih mogunosti unapreuju samu biblioteku.

11

Li B R E !

ASOPIS O SLOBODNOM SOFTVERU

Predstavljamo

12

Februar 2015.

Broj 33

bgfx
1 Podrava

grafike API-je:

Direct3D 9
Direct3D 11
OpenGL 2.1
OpenGL 3.1+
OpenGL ES 2
OpenGL ES 3.1
WebGL 1.0

2 Podrava

platforme:

Android ( 14+, ARM, x86, MIPS)


asm.js/Emscripten (1.25.0)
iOS
Linuks ( x86, x86_64)
Nejtive klajent ( Native Client: PPAPI
37+, ARM, x86, x86_64, PNaCl)
OS Iks ( OSX 10.9 )
Rasberi-paj ( RaspberryPi - ARM)
Vindouz (Iks-pe, Vista, 7, 8, 10)
Vin-ar-ti ( WinRT, WinPhone 8.0+ )

13

Li B R E !

ASOPIS O SLOBODNOM SOFTVERU

Februar 2015.

Predstavljamo

Autor: Stefan Noini

Uvod

rEFInd je softverska aplikacija za EFI ( Extensible Firmware Interface) sisteme koja

omoguava izbor vie operativnih sistema na jednostavan nain. Ovo je samo


upravnik buta ( boot) i u ovom broju vam predstavljamo o kakvom projektu je re i
kako se moe primeniti.

ta je (U)EFI?

Pre nego to predstavimo sam projekat, trebalo bi prvo da skrenemo panju i


detaljnije da predstavimo problematiku. EFI je nastao kao zamena za dosadanji
BIOS ( Basic Input/Output System ) i razvila ga je kompanija Intel. Ovaj pristup je
kasnije zamenjen UEFI standardom. EFI tehnologija ima prednost u sluajevima
kao to su:
Pokretanje sistema na diskovima preko 2 TB memorije korienjem GPT
tehnologije.
Nezavisnost od specifine arhitekture procesora.
Modularan dizajn.
Dobro okruenje pre uitavanja operativnog sistema to podrazumeva i mrenu
podrku.
Tehnologija omoguava upotrebu 32-bitnih i 64-bitnih adresa na procesorima koji
to podravaju. Ranije, BIOS tehnologija to nije omoguila, ve se uvek koristila 16bitna implementacija iz istorijskih razloga.

14

Broj 33

rEFInd

Particiona ema

EFI tehnologija ima drugaiju emu particija. Dok je stari pristup podravao samo
MBR ( Master Boot Record) emu, nova tehnologija podrava GPT emu koja

omoguava vei broj primarnih particija. Sa starim pristupom taj broj bio je
ogranien na etiri primarne particije, od kojih je svaka morala da ima kapacitet
manji od 2 TB .

Aplikacije

UEFI podrava izradu aplikacija koje bi se pokretale nezavisno od operativnog

sistema. Ove aplikacije se mogu naknadno instalirati. Primer takvih aplikacija su


pokretai ( loader) operativnih sistema kao i upravnici butovanja.

EFI sistemska particija

EFI podrava posebnu particiju za smetanje raznih potrebnih informacija kao to

su potrebni podaci za rukovanje raunarom i specifine aplikacije. Ova particija je


najee FAT32 sistem datoteka.

15

Li B R E !

ASOPIS O SLOBODNOM SOFTVERU

Februar 2015.

Predstavljamo

But menader i but louder - ima razlike

Od popularizacije GRUB upravnika mnogi korisnici su ostali bez objanjenja kakva


je razlika izmeu but loudera ( boot loader) i but menadera ( boot manager). Ovo
se deava jer GRUB prua obe usluge u sklopu jednog programa, pa se time tee
vidi razlika izmeu ova dva pojma. But menader je upravnik pomou kojeg je
mogue izabrati operativni sistem za pokretanje. On ne zna nita specijalno o
operativnom sistemu, pa time ne zna ni kako da ga pokrene. On samo zna da
treba da pokrene but louder za taj sistem. Kada je sistem izabran, pokree se
specifian but louder za taj sistem koji je zaduen za dalji proces pokretanja
kernela. Za razliku od GRUB upravnika, rEFInd prua samo usluge but menadera,
to u poetku moe zvuati poraavajue za ovaj projekat. Kada uzmemo u obzir
da veina sistema danas ima but louder u sklopu kernela (ukljuujui i Linuks od
novijih izdanja) ovaj problem je prevazien.

16

Broj 33

rEFInd

Instalacija

rEFInd postoji kao .deb i kao .rpm paket, ali postoji i zapakovan kao .zip arhiva.
Zahvaljujui tome, paket je mogue instalirati upotrebom dpkg komande na
distribucijama baziranim na Debijanu kao i upotrebom rpm komande na
distribucijama koje koriste taj nain pakovanja paketa. Za Ubuntu postoji i PPA
repozitorijum pa, rEFInd moe biti instaliran na sledei nain:
sudo apt-add-repository ppa:rodsmith/refind
sudo apt-get update
sudo apt-get install refind

Nezavisno od toga koji nain od gore opisanih koristite, rEFInd e automatski biti
prebaen na ESP i biti postavljen kao podrazumevani upravnik.

Konfiguracija

rEFInd bi trebalo da vam prui zadovoljavajuu funkcionalnost bez dodatne

konfiguracije posle instalacionog procesa. On e automatski detektovati loudere


operativnih sistema korienjem pretrage po svim particijama koje prepozna. U
sluaju da ste napredniji korisnik i da elite da modifikujete ponaanje rEFInda , to
moete uraditi izmenom njegove konfiguracione datoteke. Postoji globalna
konfiguracija i konfiguracija za svaki sistem posebno. Ovaj tekst bi postao previe
dugaak kada bismo ulazili u detalje same konfiguracije pa vam zato
preporuujemo, ako imate potrebu za dodatnom konfiguracijom, da posetite
dokumentaciju projekta ili, ako imate neke nedoumice, da kontaktirate s nama
preko nae e-pote.

Za kraj

eleli bismo da ovaj tekst zakljuimo ocenom da je ovaj projekat dosta zanimljiv,
da prua zadovoljavajuu funkcionalnost i da omoguava korisnicima koji koriste
ovaj sistem pokretanja lako pokretanje svojih operativnih sistema. Jo jednom
elimo da vam skrenemo panju da nam se obratite i ukaete ako smo neto vano
propustili da pomenemo ili ako nam se negde potkrala greka.
Korisni link: http://www.rodsbooks.com/refind/

17

Li B R E !

ASOPIS O SLOBODNOM SOFTVERU

Februar 2015.

Kako da...?

Uvod u programski jezik C


Rad sa stringovima (9. deo)
Autor: Nikola Hardi
Opte je poznato da su raunari dobri u radu sa brojevima. Meutim, vremenom su
se i potrebe korisnika i alati za programiranje raunara razvijali, i rad sa drugaijim
tipovima podataka je postao uobiajen i znatno jednostavniji nego ranije. Svi smo
imali priliku da radimo sa programima za obradu fotografija, video materijala, ili
zvunih zapisa. Multimedija je ipak tema koja prevazilazi jedan uvodni kurs o C-u,
ali do kraja ovog serijala emo se dotai i tih tema. Za poetak, osvrnuemo se na
rad sa tekstualnim podacima na C nain.

Stringovi na C nain

Definicija tekstualnog podatka u sferi raunarstva se uglavnom svodi na to da je


tekst niz karaktera, a karakteri su znakovni simboli. Iako imamo mogunost da
radimo sa tekstom ili multimedijom, raunari ipak razumeju samo brojeve pa
moramo tako da im predstavimo i tekst. Postoje razni standardi kako se pojedini
karakteri predstavljaju u memoriji raunara, izmeu ostalog najpoznatiji su ASCII,
EBCDIC, UTF itd. EBCDIC je standard koji je prisutan u Eplovom (eng. Apple) svetu i
vie nema toliko vanu ulogu. ASCII je standard koji je vrlo prisutan i danas. UTF je
nastao kao proirenje ASCII standarda, javlja se u vie varijanti i uvodi podrku za
pisma razliita od abecede (kinesko, japansko, irilica, arapsko i mnoga druga).
Vano je napomenuti da je originalni ASCII standard propisivao 7 bitova za jedan
karakter, to je dalo prostora za 128 karaktera. Meu tim karakterima se nalaze
cifre, mala i velika slova engleskog alfabeta i niz kontrolnih karaktera. Kontrolni
karakteri su oznake za novi red, prazno mesto, tabulator, upravljanje tampaima
(vraanje glave tampaa na poetak), rad sa terminalima (alarm ili obavetenje

18

Broj 33

Uvod u programski jezik C


da se neto dogodilo). ASCII standard je proiren na 8 bitova, odnosno ceo jedan
bajt i sada podrava 256 karaktera. Potraite na internetu termin ASCII tabela da
biste stekli uvid u to kako izgleda tzv. tabela ASCII karaktera.
Rad sa pojedinanim znakovima ne obeava mnogo. Postoji realna potreba za
radom sa reima, reenicama, linijama teksta itd. Podaci koji se sastoje od vie od
jednog karaktera se u domaoj literaturi nazivaju znakovnim niskama, mada
odomaen je i naziv string, koji je i mnogo ee u upotrebi. U programskom
jeziku C se stringovi predstavljaju obinim nizovima karaktera ( char niz[] ), a kraj
teksta se oznaava NULL karakterom, odnosno specijalnim znakom 0, ija
brojevna predstava je, pogaate, nula. Ovakva predstava tekstualnih podataka
nosi sa sobom i pojedine komplikacije. Gotovo svi savremeni jezici poznaju tip
stringa, dok su u C-u stringovi ipak samo obini nizovi.
Da se podsetimo, nizovi u C-u su zapravo pokazivai na deo u memoriji. Kada
pokuamo da pristupimo jednom elementu niza, tada se vri operacija
dereferenciranja sa zadatim odstupanjem. Sledi nekoliko primera koji ilustruju
rad sa nizovima na primeru nizova karaktera.
char niz1[] = "zdravo";
niz1[0] = 'Z';
char niz2[5];
niz2[0] = '0';
niz2[1] = 'k';
niz2[2] = 0;

Pri deklaraciji niza 1 nije zadata duina zato to je u jednom izrazu zadata i
inicijalizacija niza koja glasi zdravo. Prevodilac moe sam da zakljui koliko
memorije je potrebno.
U drugom primeru je kreiran niz karaktera duine 5. Meutim, popunjena su samo
prva tri mesta. Primeujete razliku izmeu prvog i treeg elementa? Prvi je cifra '0'
(uokviren je navodnicima), a trei je brojana vrednost 0 koja oznaava kraj
stringa.
Moe se primetiti jo jedna razlika u data dva primera. U prvom primeru su
korieni dvostruki navodnici, dok su u drugom korieni jednostruki. Razlog za to

19

Li B R E !

ASOPIS O SLOBODNOM SOFTVERU

Februar 2015.

Kako da...?
je to se znakovni nizovi koji su uokvireni dvostrukim navodnicima smatraju
stringovima i podrazumevano im se dodaje terminator, odnosno znak NULL, koji
oznaava kraj stringa. Jednostruki navodnici se iskljuivo koriste za predstavljanje
pojedinanih karaktera. Ovo znai da zapisi a i 'a' nisu jednaki. Prvi zapis je
duine 2, jer ima i znak NULL kojim je zavren.

Ispisivanje i uitavanje stringova

Pre nego to nastavimo dalje, bie objanjen jednostavan nain za ispisivanje i


uitavanje stringova pomou standardnog ulaza/izlaza. Da se podsetimo,
biblioteka za standardni ulaz/izlaz (ispis podataka u konzoli odnosno terminalu) je
stdio.h . Ukoliko se koristi formatirani ispis, potrebno je funkcijama printf() i
scanf() proslediti format string koji sadri specijalan znak %s, ime je oznaeno
da elimo da ispiemo znakovni niz sve do NULL karaktera. Drugi nain je
upotrebom funkcija puts() , gets() i getline() iz biblioteke string.h . Sledi primer:
#include <stdio.h> include <string.h> int main()
{
char niz1[] = "Zdravo svete!";
printf("%s\n", niz1);
scanf("%s", niz1);
puts(niz1);
return 0;
}

Moe se primetiti da je u sluaju funkcije printf() potrebno naglasiti specijalnim


kontrolnim karakterom \n da nakon ispisa treba prei u novi red. Funkcija puts() to
podrazumevano radi.
Za ove i sve druge funkcije dodatnu pomo je mogue pronai u Linuksovim man
stranicama u odeljku 3, koji je posveen standardnim bibliotekama. Recimo, man
getline sadri detaljno uputstvo o funkciji getline() .

20

Broj 33

Uvod u programski jezik C

Kopiranje stringova

Kao to je u prethodnom odeljku napomenuto, stringovi su u C-u samo obini


nizovi. To znai da sledei kod verovatno nee uraditi ono ta bi bilo oekivano.
niz1 = niz2;

Ovime smo pokazivau niz1 rekli da pokazuje tamo gde i pokaziva niz2 .
Efektivno, oni sad pokazuju na isti tekst, meutim ako izmenimo niz1 , to e se
odraziti i na niz2 , a vai i obrnuto. Ovime smo dobili samo dva pokazivaa na isti
deo memorije, a uglavnom to nije bio cilj.
Drugi nain kako bismo sadraj drugog niza mogli da kopiramo u prvi niz je petlja
kojom bismo kopirali element po element. Poto je operacija kopiranja stringova
vrlo esto potrebna, postoji standardna biblioteka za rad sa stringovima koja se
zove string.h , a funkcija za kopiranje stringova je strcpy() .
strcpy(niz1, niz2);

Dati primer kopira sadraj niza 2 u niz 1. Kopira se element po element sve dok se
u nizu 2 ne naie na NULL karakter. Ovakvo kopiranje (element po element) se
inae u stranoj literaturi naziva i deep copy i vrlo esto se sree u radu sa
strukturama podataka, gde je potrebno obii celu strukturu podataka i svaki
element kopirati, a strukturu opet izgraditi u drugom delu memorije.
Zanimljivo je to je kopiranje stringova mogue pojednostaviti ukoliko definiemo
novi tip podatka kao strukturu koja sadri niz karaktera i potom izvrimo kopiranje.
Ovo je trik koji se uglavnom ne koristi u praksi i spomenut je samo kao
zanimljivost.
#include <string.h> struct str {
char niz[50];
};
int main()
{
struct str s1;
struct str s2;

21

Li B R E !

ASOPIS O SLOBODNOM SOFTVERU

Februar 2015.

Kako da...?
strcpy(s1.niz, "zdravo");
s2 = s1;
s2.niz[0] = 'Z';
puts(s1.niz);
puts(s2.niz);
return 0;
}

Kreirana je struktura str koja sadri polje niza karaktera pod nazivom niz. Pozivom
funkcije strcpy() kopiramo string zdravo u s1 ime smo napunili sadraj
objekta s1 . Potom je izvrena redovna dodela ime je sadraj objekta s1 kopiran u
s2 . Zatim je izmenjen samo prvi karakter objekta s2 i oba stringa su ispisana.
Primeujete da su kopirani svi znakovi, a da je izmenjen samo drugi objekat?
Zanimljiv trik.

Poreenje, spajanje i pretraga stringova

Druga vrlo esta situacija je poreenje dva stringa. Ukoliko bi poreenje bilo
izvreno upotrebom redovnog operatora za poreenje == , tada bi u stvari bile
poreene samo adrese na koje pokazuju pokazivai tih stringova, jer, da se
podsetimo, stringovi su u C-u samo obini nizovi. Ispravan nain za poreenje dva
stringa je pozivanjem funkcije strcmp() ija je povratna vrednost 0 ukoliko su joj
prosleeni stringovi sa jednakim sadrajem.
#include <string.h> int main()
{
char niz1[] = "zdravo";
char niz2[] = "zdravo";
if( strcmp(niz1, niz2) == 0)
puts("Stringovi su jednaki.");
else
puts("Stringovi nisu jednaki.");
return 0;
}

22

Broj 33

Uvod u programski jezik C


Funkcija strcmp() poredi svaki element prosleenih nizova pojedinano, a dobra
je veba implementiranje nove funkcije strcmp() koja e unutar petlje da poredi
odgovarajue elemente prosleenih nizova, i potom vratiti rezultat 0 ukoliko su svi
elementi jednaki. Potrebno je pripaziti na situaciju kada su stringovi razliitih
duina.
U svetu raunara, spajanje dva sadraja se zove konkatenacija. Odatle i naziv
funkcije za spajanje dva stringa, strcat() . Vano je uveriti se da je string u koji se
dodaje sadraj dovoljno velik da ga prihvati, inae moe da doe do neeljenog
prepisivanja u memoriji, unitavanja drugih podataka i neispravnog ponaanja
programa.
Pretraga unutar stringa se moe obaviti funkcijom strstr() . Ova funkcija kao
parametre oekuje pokaziva na niz karaktera (string) u kojem je potrebno pronai
string koji je prosleen kao drugi parametar. Povratna vrednost je pokaziva na
deo memorije gde se eljeni string prvi put pojavio.
Sledi malo opirniji primer koji ilustruje spajanje, pretragu i kopiranje stringova.
#include <string.h> int main()
{
char niz_a[50] = "LiBRE! je ";
char niz_b[] = "najbolji casopis";
char niz_c[] = "e-magazin";
strcat(niz_a, niz_b);
puts(niz_a);
char *cilj = strstr(niz_a, "casopis");
strcpy(cilj, niz_c);
puts(niz_a);
return 0;
}

23

Li B R E !

ASOPIS O SLOBODNOM SOFTVERU

Februar 2015.

Kako da...?

Pretvaranje tipova podataka u stringove i


pretvaranje iz stringova

Pretvaranje podataka iz jednog tipa u drugi ili kastovanje (eng. type casting) se za
veinu tipova vri jednostavno pisanjem tipa u zagradama, na primer (int)5.23 .
Stringovi su i po ovom pitanju drugaiji. Postavlja se pitanje, ta pretvoriti u
celobrojni tip - da li adresu na koju pokazuje pokaziva niza koji predstavlja string?
Prvi element? ta ako taj string nije broj? Predstaviemo reenje za konverziju
brojeva u stringove i obrnuto.
Ispis podataka na ekranu se takoe moe smatrati konverzijom. Broj sa pokretnim
zarezom je u memoriji prikazan na pomalo udan nain, a pozivom funkcije
printf() kada je kao format zadat %f na ekranu emo dobiti razumljiv niz znakova.
Slian rezultat moemo dobiti funkcijom sprintf() , a jedina razlika u odnosu na
printf() je ta to sprintf() kao prvi argument oekuje pokaziva na string, dok su
drugi (format string) i trei (argumenti koji se povezuju sa formatnim stringom)
slini kao kod funkcije printf() .
Kod pretvaranja stringova u brojevne tipove moe posluiti funkcija sscanf() , koja
se ponaa slino kao funkcija scanf() , s tim to je prvi argument adresa
(pokaziva na string) koju elimo da skeniramo u nadi da e se poklopiti sa
formalnim stringom koji je drugi argument, a rezultati e biti sauvani u adresama
koje su prosleene kao 3, 4 i ostali parametri. Drugi nain za pretvaranje stringova
u celobrojne brojeve i brojeve sa pokretnim zarezom su funkcije atoi() i atof() .
Funkcije koje koriste formatni string su este u jeziku C i zasluuju posebnu panju,
meutim to je pria za poseban lanak. U ovu klasu funkcija spadaju, recimo, i
funkcije za rad sa datotekama.

Bezbednost

Rad sa stringovima moe da bude izuzetno opasna stvar po pitanju bezbednosti


programa. Ukoliko se niz karaktera ne zavrava NULL karakterom, svata moe da
poe po zlu pri pozivu funkcija kao to su strcpy() , strcmp() i sline. Cela klasa
tih funkcija se oslanja na postojanje znaka koji oznaava kraj stringa. Kada string
nije propisno zavren, tada te funkcije mogu da zalutaju u deo memorije van
stringa i svata moe da poe po zlu. Ovakav tip napada se inae zove
prekoraenje bafera (eng. buffer overflow). Preporuen nain kako da izbegnete

24

Broj 33

Uvod u programski jezik C


takve neprijatne situacije pri radu sa
stringovima je da koristite verzije
funkcija koje su ograniene
maksimalnom duinom stringa, kao
to su strncpy() , strncat() ,
strncmp() itd. Sve te funkcije kao
trei parametar zahtevaju broj koji
odreuje maksimalnu oekivanu
duinu stringa. Jo jedna vrlo korisna
funkcija je strlen() iji zadatak je da
odredi duinu stringa. Budite paljivi,
ovo je prvo mesto gde se trae
bezbednosni propusti u programima.
Ne verujte podacima koji spolja ulaze
u va program, a pogotovo kada je re
o stringovima.

Pregled popularnosti GNU/Linux/BSD


distribucija za mesec februar

Distrowatch
1
2

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

Mint
Ubuntu
Debian
openSUSE
elementary
Mageia
Fedora
Manjaro
CentOS
LXLE
Arch
Bodhi
Android x86
Kali
PCLinuxOS
Puppy
Robolinux
Lubuntu
Q4OS
Black Lab
Netrunner
Simplicity
Evolve
Zorin
4MLinux

2919>
1778>
1701>
1323>
1204>
1174>
1166>
1028<
1020>
965>
957>
907>
900<
760>
742<
732>
695>
670>
663>
655>
652>
629>
607>
583>
517=

Pad <
Porast >
Isti rejting =
(Korieni podaci sa Distrovoa)

25

Li B R E !

ASOPIS O SLOBODNOM SOFTVERU

Februar 2015.

Oslobaanje

U potrazi za idealnom distribucijom:

Socijalni kriterijumi za izbor idealne


distribucije (6. deo)
Autor: Dejan Maglov
Projekti slobodnog softvera obino poinju kao projekti pojedinca ili male grupe
programera, a koji rade na razvoju softvera iji je cilj da zadovolji neke od njihovih
linih potreba. Projekat e se smatrati uspenim ukoliko se ira zajednica
zainteresuje za njega nakon to prepozna korisnost softvera ne samo za pojedince
koji su zapoeli projekat, ve i za iru zajednicu. Kada je u pitanju slobodni softver,
vremenom je postala stalna praksa da se zajednica umea u razvoj projekata.
Dobri projekti sami privlae zajednicu ljudi koji su zainteresovani za njih i ona, u
veini sluajeva, preuzima na sebe testiranje, poboljanje funkcionalnosti,
odravanje i tehniku podrku projekta.
Zajednice slobodnog softvera mogu da se okupe: oko projekta, slobodnog softvera,
po teritorijalnom principu ili da nastanu kombinacijom ovih principa.
Primeri:
LiBRE! projekat okuplja zajednicu oko projekta bez teritorijalnog ogranienja.
LUGoNS ( Linux User Group of Novi Sad) je zajednica korisnika Linuksa po
teritorijalnom principu bez obzira na konkretan projekat.
Ubuntu-rs zajednica koja je kombinacija okupljanja zajednice oko konkretnog
projekta (Ubuntu) i teritorijalnog principa koji se ograniava na teritoriju Srbije.
Ova sinergija projekata i korisnika slobodnog softvera ima vie prednosti i za
korisnike i za projekat. Projekat se na ovaj nain bre razvija, dobija na

26

Broj 33

U potrazi za idealnom distribucijom


funkcionalnosti, greke se brzo ispravljaju, itd. Korisnici dobijaju oseaj da
pripadaju grupi, drue se sa istomiljenicima, uestvuju u promociji kvalitetnih
pojedinaca itd.
Dve najvanije uloge lokalnih zajednica za GNU/Linuks distribucije su:
1. pruanje tehnike podrke i edukacije na maternjem jeziku;
2. rad na lokalizaciji i prilagoavanje distribucije lokalnim potrebama.
Informacija da postoje lokalne zajednice slobodnog softvera je od naroitog
znaaja za poetnike i korisnike koji nedovoljno dobro znaju strane jezike
(naroito engleski jezik). Ako izuzmemo komercijalne projekte otvorenog koda
(Red Het, SUSE), ne postoje zvanine kole i kursevi za slobodni softver. Za
edukaciju poetnika je uglavnom zaduena zajednica, a jasno je da je uenje na
maternjem jeziku uvek lake nego na bilo kom drugom stranom, ma koliko
dobro ga poznajete.
Forumi i viki stranice lokalnih zajednica su prave biblioteke u kojima korisnici
mogu da nau veinu odgovora na svoja pitanja, a za sva ostala tu su forumi i
IRC kanali zajednica na kojima uvek ima nekoga i koji imaju ve gotova reenja
za veliki broj problema.

27

Li B R E !

ASOPIS O SLOBODNOM SOFTVERU

Februar 2015.

Oslobaanje

Lokalne zajednice kao kriterijum za izbor idealne


distribucije

Poetnicima i korisnicima koji ne vladaju dobro engleskim jezikom, toplo


preporuujemo da biraju GNU/Linuks distribucije koje imaju aktivnu lokalnu
zajednicu. Ovladavanje novim operativnim sistemom je mnogo lake ukoliko vam
lea uva lokalna zajednica na koju se uvek moete osloniti.
Ve smo spomenuli da su popularnije GNU/Linuks distribucije namenjene
poetnicima. Sluaj je isti i sa lokalnim zajednicama okupljenim oko njih. Ovo
meutim ne znai da je kvalitet usluga koje nude manje popularne lokalne
zajednice, okupljene oko distribucija namenjenih naprednijim korisnicima, loiji.
Manje popularne distribucije okupljaju manje ljudi, ali zato oni poseduju vee
znanje. Iskustvo sa zajednicama okupljenim oko slobodnog softvera je uglavnom
pozitivno i ukazuje na to da kvalitet usluga koje one nude korisniku nije uslovljen
popularnou i masovnou zajednice nego iskljuivo njenom (ne)aktivnou.
U svakom sluaju, dosadanji saveti za izbor idealne distribucije vae i dalje.
Socijalni aspekt slobodnog softvera je samo dodatni faktor koji vam moe pomoi
pri donoenju odluke kada se dvoumite izmeu nekoliko moguih reenja.
Jo uvek ne postoji na jednom mestu potpuni i aurirani spisak svih aktivnih
srpskih zajednica. Neto najblie tome moe da se nae na adresi
https://pulsslobode.wordpress.com/ . Za informacije o nekim drugim lokalnim
zajednicama koje moda postoje ali nisu na ovom spisku moraete sami da
pretraite internet.

Lokalizacija kao kriterijum za izbor

Za lokalizaciju GNU/Linuks distribucija i GNU programa odgovorni su pojedinci i


lokalne zajednice. Sasvim solidnu srpsku lokalizaciju mogu imati i projekti koji
uopte nemaju svoju lokalnu zajednicu, a isto tako, lou lokalizaciju mogu imati i
projekti sa dobrom lokalnom zajednicom. Sve je stvar prioriteta zajednica i
aktivnosti pojedinaca.
Pravu i kontrolisanu lokalizaciju moe imati samo lokalni projekat. Ovakvih
projekata u Srbiji ima malo i teko se probijaju, ak i u lokalu u konkurenciji
svetskih projekata. Istina je da mnoge vee GNU/Linuks distribucije imaju srpsku
lokalizaci

28

Broj 33

U potrazi za idealnom distribucijom


ju u ponudi, pa se moda slini lokalni projekti koji su usmereni samo na striktnu
lokalizaciju smatraju nepotrebnima. Uzvodna lokalizacija u sluaju Srbije vrlo esto
bude veoma loe, ak nakaradno, sprovedena. Jedna polovina programa je
lokalizovana srpskom irilicom, a druga latinicom. Ako postoji jo delova sistema
koji uopte nije lokalizovan, onda se pojavljuju i delovi programa koji su na
engleskom. Zato emo se vratiti na prvu reenicu ovog pasusa i ponovo utvrditi da
samo lokalni projekat moe potpuno kontrolisati pravu srpsku lokalizaciju.
U Srbiji za sada imamo dva aktivna projekta GNU/Linuks distribucije TriOS
(http://trios.rs/) i Serbian (http://www.debian-srbija.iz.rs/p/serbian.html). Oba
projekta su mlada i imaju svojih prednosti i mana. Kome treba lokalizovan
operativni sistem moe da proba jedan od ova dva projekta.

29

Li B R E !

ASOPIS O SLOBODNOM SOFTVERU

Februar 2015.

Oslobaanje

Iako ove dve domae distribucije nisu ba najidealnije, interesantno je probati ih i


uporediti sa drugim distribucijama.

Za kraj serijala

Namera nam je bila da kroz ovaj serijal o kriterijumima pri izboru idealne
distribucije definiemo veinu kriterijuma pri izboru i pokaemo zato je teko
odgovoriti na jednostavno pitanje: Koju mi distribuciju preporuujete?
Ni na samom kraju nismo dali konkretan odgovor na pitanje koja je idealna
GNU/Linuks distribucija. Suvie je subjektivnih ocena da bi se mogao dati
konkretan odgovor. Smatramo da je jako teko napisati neki algoritam izbora po
kriterijumima koje smo identifikovali i definisali, a moda je ak i nemogue, poto
se izlazi stalno menjaju. Izlazi iz tog algoritma su GNU/Linuks distribucije kojih iz
dana u dan ima sve vie a i one stare se stalno menjaju.
Sam serijal U potrazi za idealnom distribucijom nee biti zavren samo zato to
se vie nee baviti kriterijumima pri izboru, nego e pokuati da predstavlja
GNU/Linuks distribucije koje su po neemu idealne.

30

Broj 33

Slobodni profesionalac

ORM (2. deo)


Autor: Dejan ugalj

Object relation mapping (ORM)


ORM (eng. Object Relation
Mapping) je nain postizanja traj nosti (eng. persistence) objekata

unutar relacionih baza podataka.


Model deluje kao posrednik na
logikom delu aplikacije. Automatski preslikava podatke iz objekata u
bazu i nazad, na zahtev aplikacije.
Da bismo objasnili kako ovo sve
radi, moramo da vam predstavimo
ORM frejmvork (eng. framework)
programa otvorenog koda Hajbernejt (eng. Hibernate http://hibernate.org/orm/).

ta je ORM?

Ukratko, ORM je automatizovano, transparentno preslikavanje objekata


korienjem metapodataka koji opisuju mapiranje veze izmeu objekta i baze

31

Li B R E !

ASOPIS O SLOBODNOM SOFTVERU

Februar 2015.

Slobodni profesionalac
podataka u aplikacijama koje su napisane u objektno orijentisanim programskim
jezicima. Aplikacija komunicira sa ORM-om preko njegovog vlastitog API-ja (eng.
application programming interface) i odreenih objekata. Ova komunikacija je
potpuno odvojena od komunikacije koja se odvija izmeu ORM-a i baze podataka
preko SQL-a i DBC-a.
Da bi se postigla i dostigla potpuna snaga ORM-a u aplikaciji koju projektujemo,
nikako se ne sme iskljuiti znanje relacionih modela, SQL jezika, te poznavanje
DBMS-a u kome se radi. ORM nije nita drugo do srednji sloj izmeu gore
pomenutih tehnologija i objektno orijentisanog programiranja, kao to smo to do
sada ve vie puta naglasili.

Implementacija ORM-a

Postoje razliiti naini implementacije ORM-a. Mark Fasl ( Mark Fussel) je 1997.
definisao etiri nivoa:
1. ist relacioni nain
2. Slabo mapiranje objekata
3. Umereno mapiranje objekata
4. Potpuno mapiranje objekata

ist relacioni nain


Cela aplikacija, ukljuujui i korisniki interfejs, dizajnirana je relacionim modelom i
SQL relacionim operatorima. Ovakav pristup je odlian za male projekte. Direktan
pristup SQL-u omoguava fino podeavanje svakog aspekta upita koji se postavlja
bazi podataka. Osnovne mane su portabilnost (prenosivost) i odravanje ovakvih
sistema, pogotovo ako se planira korienje aplikacije na dui rok. Ovakvi sistemi
masovno koriste sauvane procedure (eng. stored procedures), to znai da je
poslovna logika (eng. busines logic) prebaena na samu bazu podataka.

Slabo mapiranje objekata


Entiteti su predstavljeni kao klase i mapiranje se radi eksplicitno ka relacionim
tabelama. SQL/JDBC je sakriven od poslovne logike korienjem poznatih ablona
( patterns).

Umereno mapiranje objekata

32

Broj 33

Hibernate ORM
Dizajn aplikacija se svodi na objektne modele. SQL se generie u vreme
kompajliranja (eng. build-time) ili u vreme izvravanja (eng. run-time). Specifikacija
upita nad bazama podataka se radi na objektno orijentisanom jeziku. Ovakvi
sistemi se koriste u aplikacijama srednjih veliina kod kojih je bitna portabilnost
izmeu razliitih sistema za upravljanje bazama podataka ( DBMS).

Potpuno mapiranje objekata


Podrava sofisticirano objektno modeliranje, nasleivanje i polimorfizam.
Efikasnost dobijanja podataka je na visokom nivou i koriste se metode kao to su
lenjo uitavanje (eng. lazy loading) i strategija keiranja (eng. caching).
Implementacija je transparentna u aplikacijama. Ovaj nivo je jako teko dostii.
Pojedincu su potrebne godine razvoja da postigne ovakvu fleksibilnost pristupa i
manipulacija u relacionim bazama podataka. Upravo ovaj nivo se postie ako se
koriste reenja ORM-a kao to je Hajbernejt.

Zato ORM?

Implementacija ORM reenja, pogotovo ako se


prvi put susreete sa ovim modelom, moe da
bude veoma frustrirajua i malo tea za
implementaciju. Kada ovo kaemo, mislimo da
programer koji implementira ORM i hoe da isti
bude kvalitetno uraen, mora da poseduje
predznanje objektno orijentisanog programiranja
i naprednih tehnika kao to su nasleivanje i
polimorfizam.

Ovo inicira fundamentalna pitanja:


Pa zato bi iko onda implementirao ovako neto kompleksno?
Vredi li truda uputati se uopte u ORM?
Odgovor nije jednostavan. Dosadanja iskustva u korienju ORM-a i njegova
popularnost ve daju odgovor na postavljeno pitanje. Oigledno je da su benefiti
koje donosi ovaj model vei od kompleksnosti njegove implementacije, a to su:

33

Li B R E !

ASOPIS O SLOBODNOM SOFTVERU

Februar 2015.

Slobodni profesionalac
Vea produktivnost
ORM smanjuje koliinu koda potrebnog za ostvarivanje trajnosti podataka. Ovo

omoguava programeru da vreme koje bi utroio na runo mapiranje podataka,


utroi na druge delove aplikacije.

Lake odravanje
Manje linija koda osigurava bolju razumljivost (i moda bolji kvalitet koda) jer
naglaava aplikacijsku logiku. ORM takoe ublaava uticaj nastalih promena kao
to su promene u bazi, strukturi tabela, itd.

Prenosivost
Veina ORM reenja podrava sisteme za upravljanje bazama podataka raznih
proizvoaa. ORM u potpunosti odvaja sloj aplikacije od stvarne SQL komunikacije
koja se odvija u pozadini. Time omoguava da se piu aplikacije koje e moi da se
izvravaju na razliitim bazama podataka bez potrebe za dodatnim kodiranjem.
Ova komunikacija se odvija sa programskim interfejsima ORM-a nezavisno o
DBMS-u sa kojim je u bilo kom momentu povezan. ORM takoe omoguava laki
prelaz sa manjih na vee baze podataka tokom razvoja aplikacije.
***
Uvideli smo da trenutno postoje dve paradigme koje se sudaraju i koje su
podjednako dobre same za sebe. Relaciona paradigma potvruje da sve to je
izgraeno na matematikim osnovama je i trajno, u smislu kvaliteta koje poseduje.
U domenu u kom relaciona paradigma egzistira, ona je, ako je to u ovo vreme
uopte mogue tvrditi, nezamenjiva.
Ono to otvara pitanja i daje razlog za sumnju je, koja je krajnja granica
upotrebljivosti relacione paradigme, tj. koliki su kapaciteti sloenosti zahteva
aplikacija sa kojom moe da se nosi. Praksa je pokazala da je sasvim mogue
izvesti sloene projekte - ali odravanje, skalabilnost, razumljivost, prenosivost pitanja su sa kojim se relaciona paradigma teko moe izboriti.
Sa druge strane, svoj habitat u informacionim tehnologijama je nala i objektna

34

Broj 33

Hibernate ORM
paradigma. Iako na prvi pogled ova dva modela nemaju nita zajedniko - to je u
neku ruku i istinito gledajui prirodu podataka kojim manipuliu - praksa je
pokazala da su usko povezane i skoro da imaju sinaptiku vezu.
Pitanje kako spojiti te sinapse dovelo je do unih rasprava u uskim naunim,
programersko-administratorskim krugovima. Rodili su se razni modeli, ali jedan je
iskoio i polako ulazi u iroku primenu - a to je ORM. Svojim suptilnim pristupom
problemu nekompatibilnih paradigmi nekako je uspeo da stvori taj nedostajui
elektrini signal koji ih je povezao. Ovo je omoguilo da dve strane, koje su
svaka za sebe u svom domenu ostavile i ostavljaju duboki trag u informacionim
tehnologijama, sarauju i donesu novi kvalitet.
Korisni linkovi:
[1] Hibernejt: http://hibernate.org/
[2] Viki: http://goo.gl/LlZulw
[3] Tutorijali: http://goo.gl/CGzvnc

35

Li B R E !

ASOPIS O SLOBODNOM SOFTVERU

Februar 2015.

Internet mree i komunikacije

To su samo metapodaci?
Autor: Kriptopank
ta su, zapravo, metapodaci? Najkrae reeno, to su podaci o podacima ili
informacije koje opisuju podatke.
Najpre da napravimo razliku izmeu podataka i metapodataka. Podaci su,
naprimer, snimak (ili transkript) vaih telefonskih razgovora, sadraj poruka koje
piete, primate ili aljete, podaci koje kaite na internet ili preuzimate, pretrage
Guglom, postovi na forumima, dopisivanja na IRC kanalima ili drugim etovima,
audio i video snimci Skajp razgovora, i tako dalje.

Hajde da vidimo ta bi bili odgovarajui metapodaci za ove primere:


Za telefonske razgovore metapodaci mogu biti lokacija uesnika, brojevi
telefona, trajanje razgovora, IP i MAC adresa.
Za poruke, etove i Skajp, ili druge video-audio komunikacije, slino je kao kod
telefonskih razgovora.

36

Broj 33

To su samo metapodaci?
Kod foruma i pretraga Guglom ima malo manje metapodataka, ali Gugl i razni
sajtovi i forumi ionako uvaju logove o korisnicima to su takoe metapodaci.
Ako do sada, kojim sluajem, niste uvideli opasnost po privatnost u ovim
metapodacima, koje svako od nas smrtnika svakodnevno ostavlja za sobom u
svetu interneta i ostalih digitalnih komunikacija, nadamo se da e vas ovaj primer
makar podstai na razmiljanje, a moda i na neto vie.
Zamislite da neko (zvaemo ga posmatra) stalno sakuplja metapodatke koje za
sobom ostavljate kao mrvice hleba. Posmatra, recimo, zna da se nalazite na
autoputu nedaleko od famoznog Feketia, da se ne kreete, da zovete AMSS, zatim
lep slubu i moda taksi, ali ne zna ta ste razgovarali. Ili posmatra vidi da ste
prvo zvali aerodrom Nikola Tesla, pa odmah potom taksi, ali ne zna ta ste
razgovarali. Ili posmatra vidi da ste zvali prvo est brojeva ije identitete takoe
zna, pa vidi da se oni zatim kreu ka vama - GPS (eng. Global Positioning System ),
pa zatim pica servis, Mekdonalds, i neku poznatu prodavnicu kineske hrane, ali ne
zna ta ste razgovarali.
Posmatra ne mora da bude mnogo pametan niti da prislukuje vae razgovore da
bi shvatio ta se deava, ili ta e se desiti. Sasvim mu je jasno da vam je u prvom
primeru auto stao na autoputu, zatim da ste se u drugom sluaju uputili na
aerodrom i da moda putujete van zemlje, ili ste poslali taksi po nekoga sa
aerodroma, a da u treem sluaju okupljate urku kod vas. Vie moete pogledati
na: http://goo.gl/7vUjP .
Iako su to samo metapodaci, treba biti svestan da ti metapodaci o vama stvaraju
jednu digitalnu sliku, ili bolje rei digitalni mozaik, i na neki nain vas jedinstveno
odreuju. Pogotovo kada se planski prikupljaju na vie nivoa (kompjuter, pametni
telefon, pametni automobil i kreditna kartica), metapodaci ine va digitalni
identitet. Ali, da stvar bude jo gora, ta slika o vama ne mora nuno biti istinita, jer
se lako moe lairati. Recimo, moete zameniti telefone ili automobile sa nekim
namerno ili sluajno, ili vam neko moe jednostavno ukrasti telefon, laptop, ili
kreditnu karticu. Zanimljiv video: http://goo.gl/KO1fKf .
Evo jednog primera koji vas moe uvui u velike nevolje. Recimo da prolazite
nekom zabaenom ulicom i da vam neprimetno ispadne telefon, ali vi to ne
primetite i nastavite dalje svojim putem. U toj ulici se samo nekoliko minuta
kasnije desi neko ubistvo, i vas pozovu u policiju kao osumnjienog. Ako kojim

37

Li B R E !

ASOPIS O SLOBODNOM SOFTVERU

Februar 2015.

Internet mree i komunikacije


sluajem nemate dobar alibi, ili nemate svedoka da posvedoi da niste bili u toj
ulici, nego tamo gde ste stvarno bili, a drugih svedoka nema - moete jako loe
proi. Zanimljivi video: http://goo.gl/spS5OZ .

Metapodaci se takoe nalaze i u fajlovima/podacima koje svakodnevno


preuzimamo sa interneta, pravimo i koristimo. Svaki tip podatka moe da sadri
odreene metapodatke koji bolje opisuju sam podatak, kao, naprimer, vreme
nastanka podatka, koliko je vremena potroeno za njegovo kreiranje, koliko puta
mu je pristupljeno, kad je poslednji put pristupljeno, i tako dalje. Iako se ovakvi
metapodaci moda jo uvek ine bezazlenim, oni mogu sadrati i IP adresu
raunara sa kog su napravljeni, GPS koordinate (najee PNG format slika sa
telefona), ko ga je napravio (linost ili kompanija/organizacija), naziv ureaja i
model sa koga je napravljen kao i MAC adresu ureaja, mejl adresu kreatora,
softver kojim je napravljen, i tako dalje. Sve ovo moe mnogo da nakodi
privatnosti izvornog kreatora fajla, pogotovo ako je sadraj poverljiv. Ukoliko neko
presretne taj podatak na internetu, moe saznati od koga je potekao. Da ovo moe
biti katastrofa po kreatora takvog fajla, moe ilustrovati primer torenta. Ako ste
doli u posed nekih slika ili video materijala ili teksta koji elite da podelite sa
svetom preko nekog torent sajta, morate taj podatak prvo oistiti od
metapodataka, da ne bi svako ko skine to to ste okaili saznao da vi stojite iza
toga.

38

Broj 33

To su samo metapodaci?
Ljudi se konstantno prate, metapodaci se sakupljaju i to nije sada ve nita novo,
ali moemo da se trudimo da iza sebe ostavljamo malo manje neeljenih
metapodataka, i da ih takorei istimo iz podataka koje razmenjujemo. Na sreu
postoje programi koji ovo dobro rade.
Najpre je potrebno da vidimo koje sve metapodatke neki fajl sadri, kako bismo se
uverili da ovi metapodaci stvarno postoje i da je fajl bezbedan nakon njihovog
brisanja.
Ako koristite operativne sisteme GNU/Linuksa, treba da iz terminala preuzmete i
instalirate program pod nazivom exiftool :
sudo apt-get install exiftool

Ovaj program e nam pruiti uvid u sve metapodatke koje fajl sadri. Korienje je
iz terminala, ali je zato veoma jednostavno, samo ga pokrenite na sledei nain:
exiftool File

ili
exiftool /putanja/do/fajla/poev/od/korenog/direktorijuma

Dobiete prikaz metapodataka koje je program pronaao. Sada je potrebno da


vidimo da li je podatak prljav, tj. da li ima u njemu neto da se brie, i da, ako
ima, iz njega sve nepotrebno obriemo. Tu e nam pomoi drugi program zvani
MAT (eng. Metadata Anonymisation Toolkit) koga moete nai na sajtu:
https://mat.boum.org/ ili jednostavno za korisnike Ubuntua i Debijana u
Softverskom centru, ili ga moete instalirati iz terminala:
sudo apt-get install mat

MAT e proveriti da li je podatak prljav ili ne, i za vas ga oistiti od neeljenih

metapodataka.

Kada oistite fajl, on je spreman za deljenje sa drugima, a vi ste bezbedni jer niko
ne moe rei da je fajl potekao sa vaeg raunara.

39

Li B R E !

ASOPIS O SLOBODNOM SOFTVERU

Februar 2015.

Internet mree i komunikacije

Izgubljeni heroji Bleli parka


Autor: Dejan ugalj
G.H. Hardi: Prava matematika nema uticaj na rat. - odbrana matematiara,
1940. godina.

Bil Tat - britanski matematiar, verovatno niste uli za njega,


1942. godine je izveo ogroman poduhvat koji je skratio rat dve
godine (barem po reima Ajzenhauera) i spasio milione ivota.
Naalost, njegova veliina je preminula 2002. godine obavijena
velom tajne i nikada zvanino nije priznato njegovo dostignue.

Tomi Flauers - bivi inenjer potanskog saobraaja, pretvorio je


matematike ideje Tata u prvi raunar, a to nije bio ENIAC 1 .
Preminuo je 1998. godine, a pretpostavljamo da nikada niste uli
ni za njegovu veliinu.
1 engl.

Electronic Numerical Integrator And Computer - prvi

digitalni elektronski raunar

Ovi umni giganti Bleli parka omoguili su Britaniji da deifruje strogo poverljivu
mainu koju je koristio Hitler da diriguje drugim svetskim ratom, a to nije bila
ENIGMA, nego neto mnogo tajnije i znaajnije. Velika je verovatnoa da niste
uli ni za ovo. Neki kau da je to bio Hitlerov Blekberi ( BlackBerry).

40

Broj 33

Izgubljeni heroji Bleli parka


***

1939. godine Bleli park je postao ratni tab MI6 (britanske vojne obavetajne
slube). Do danas je procurelo u javnost i dokumentovano brojnim filmskim
dokumentarcima samo da je tu Alan Tjuring uspeo da deifruje nemaku
mornariku ifru poznatu kao ENIGMA i uveliko doprineo pobedi saveznika, a to je
samo deo prie koji je isprian.

ovog uspeha heroja Bleli parka.

U Bleli parku su bila tri heroja: Alan


Tjuring, Bil Tat i Tomi Flauers. Od njih
trojice jedino Alanu Tjuringu je priznat deo
zasluga za pobedu saveznika u Drugom
svetskom ratu. Pregledom otkrivenih
podataka, danas moemo da tvrdimo da
je ENIGMA ve sa poetka drugog
svetskog rata bila zastarela tehnologija.
Zbog toga je bilo lako skinuti veo tajne sa

41

Li B R E !

ASOPIS O SLOBODNOM SOFTVERU

Februar 2015.

Internet mree i komunikacije


Bil Tat, koji je deifrovao TANI sistem, ( TANI) i Tomi Flauers, koji je samo svojom
intuicijom i znanjem sklopio prvi raunar na svetu (KOLOS) u svrhu breg
dolaenja do informacija razbijenog koda TANI tako da zastarelost ifrata bude
svedena na minimum - radili su na novoj generaciji maina za ifrovanje. Ova
tehnologija je bila prepoznata kao tehnologija budunosti pa i danas iznad
informacija o tim tehnologijama stoji natpis vrhunska tajna (eng. Top Secret).
Upravo ovaj veo tajni oko ifrata TANI i prvog raunara je rezultirao iskrivljenju
istorije informatike.

Za uspehe u prvim godinama rata je zaista zasluno razbijanje ENIGMA ifrata i


to nije sporno, ali krajem 1941. godine u etru planete se zauo novi zvuk. To je bila
nova maina za ifrovanje; nije bila zasnovana na Morzeu, ve je radila na
principu teleprintera.
Jedna od kljunih ideja Hitlerovog ratovanja je bila u velikoj mobilnosti i brzom
delovanju trupa na terenu, a da bi se to izvelo, komunikacija je isto tako morala da
bude u najmanju ruku putem radio signala.
Razlika je ogromna. Razlika je u koliini podataka koji moe da se prenese ovim
tajnim putem. Prvi svetski rat je bio zanimljiv jer su se ifrovane poruke bazirale
na reima, dok je Drugi u potpunosti otvorio vrata dananjoj kriptografiji, a to je
matematika.
Originalan nemaki kdni naziv za ovaj ifrat bio je LORENC. Britanska

42

Broj 33

Izgubljeni heroji Bleli parka


obavetajna sluba mu je dala nadimak TANI. ak ni dan danas nije ba poznato
kako je sve nastalo, ali pouzdano se zna da je tajnu mainu Hitler nazvao
Gehajmrajber (nem. Geheimschreiber) - maina tajni.

U sr i tehnologiju ifrovanja LORENC ifrata neemo ulaziti u ovom lanku, ali


verujte nam na re - nije bila jednostavna. Moe se pretpostaviti da je inspiracija
enonovog 2 rada sluajnosti bila upravo ova tehnologija iz Drugog svetskog rata.
Ono ime se Trei rajh vodio je sigurna ifrovana veza, koju niko nije smeo da
deifruje. Prenoenje ifrovanih poruka pomou radio signala je dalo obavetajnim
slubama mogunost presretanja poruka poslatih radio talasima. Da li se ovo i
danas deava? Imamo li sigurnost u naim ifrovanim podacima dananjice?
Ono to je usledilo nakon proboja ovog neuhvatljivog ifrata je upravo ono to je
princip dananjice, kao neka vrsta protokola koji mora da se ispotuje u
perfektnom ifarskom enonovom sistemu:
1. NIKADA, NIKADA, NE KORISTITI DVA PUTA ISTI KLJU ZA IFROVANJE.
2. NIKADA, NIKADA, KLJU NE SME DA SE ALJE ISTIM KOMUNIKACIONIM KANALOM
KAO PORUKA.
3. NIKADA, NIKADA, KLJU NE SME DA BUDE MANJI NEGO TO JE PORUKA (engl.
2

Klod Elvud enon (eng.

naunik i inenjer

Claude Elwood Shannon ) (1916-2001) - Ameriki

43

Li B R E !

ASOPIS O SLOBODNOM SOFTVERU

Februar 2015.

Internet mree i komunikacije


one time pad).
4. NIKADA, NIKADA, NE SMEMO DA SAKRIVAMO SISTEM IFROVANJA, SVE MORA
DA JE OTVORENOG KDA.

Najvei propusti kriptologije, koji su uoeni ba u Drugom svetskom ratu, jesu


pokuaj sakrivanja sredstava kojim se generie tajna poruka i nepoznavanje
enonovih krajnjih granica informacija. Kada kaemo sredstvo i sakrivanje,
mislimo na algoritme. Postavlja se pitanje zato je danas kriptologija sigurnija nego
etrdesetih i pedesetih godina prolog veka?
Danas, uprkos tome to su algoritmi za kriptografiju otvorenog kda, tajnost
informacija je na viem nivou nego to je to bilo dok je algoritam bio strogo
poverljiv. Tajnost tajnih podataka se ne zasniva na tajnosti algoritama koji generiu
taj isti tajni izlaz (eng. cipher text) nego u nemogunosti matematike inverzne
funkcije koja bi ifrovan tekst otvorila. Ovde se vidi da je svrha strukture otvorenog
kda kao jednog od znaajnih delova dananje kriptologije ona koja ga ini
sigurnim i svima dostupnim.
Sada, kada se sa ove distance osvrnemo na Drugi svetski rat, moemo videti koliko
smo bili blizu apokalipse. Naime, Albert Ajntajn je ve 1944. godine imao u
rukama recept za nuklearnu bombu, enon je mogao ve u to vreme da nam
predoi 100% siguran ifrat (tzv. Hitlerovu super ifru), ali ipak, srea nas je
posluila da oveanstvo tada nije bilo spremno da upotrebi svu raspoloivu
tehnologiju.

Albert Ajntajn, etvrti svetski rat e se voditi toljagama.


***
Zaboravljeni heroji Bleli parka, iako su odigrali vanu ulogu u pobedi saveznika u
svetskom ratu, postali su rtve top secret doktrine, potpuno su zaboravljeni i
nestali su iz istorije.
Zakljuak ovog lanka je da je ideologija otvorenog kda sasvim sigurno tu da nam
pomogne i da otvori vrata ka veoj sigurnosti, novim idejama i kvalitetu same
infrastrukture sistema koju svi zajedno razvijamo.

44

Broj 33

Sam svoj majstor

prezentacija:

Beamer (4. deo)


Autor: Nikola Hardi

Nabrajanja
Bez brojeva

Za nabrajanje pojmova u Bimeru (eng. Beamer) koristi se okruenje itemize, a


unutar tog okruenja moemo da dodajemo nove stavke pomou \item . Primer
izgleda ovako:
\begin{itemize}
\item Stavka A
\item Stavka B
\item Stavka C
\end{itemize}

Sa brojevima
Postoje situacije kada uz nabrajanje treba da stoje i redni brojevi - za to se koristi
enumerate okruenje, a nove stavke se takoe dodaju pomou \item .
\begin{enumerate}
\item Redni broj 1
\item Redni broj 2
\item Redni broj 3
\end{enumerate}

45

Li B R E !

ASOPIS O SLOBODNOM SOFTVERU

Februar 2015.

Sam svoj majstor

Definicije

Trea situacija je nabrajanje parova termin - definicija. U tom sluaju se koristi


okruenje description . Ve moete da pretpostavite kako se dodaju nove stavke.
Primer:
\begin{description}
\item[Pojam A] Definicija izmiljenog pojma A
\item[Pojam B] Definicija izmiljenog pojma B
\item[Pojam C] Definicija izmiljenog pojma C
\end{description}

Ostala podeavanja i zanimljivosti

Sva prethodna okruenja mogu da budu ugnedena jedno unutar drugog, do


treeg nivoa. Treba biti paljiv jer slajdovi vrlo lako mogu da postanu neitljivi.
Osim toga, mogue je izabrati i format oznake ili rednih brojeva - na primer ovako:
\begin{enumerate}[I]
\begin{enumarate}[a)]

Takoe, mogue je upravljati pojavljivanjem pojedinih stavki na slajdovima. Drugim


reima, moemo da odredimo da se nabrajanja postepeno otkrivaju tako to emo
uz stavku dodati <1-> , odnosno broj od kojeg slajda elimo da se ta stavka
pojavljuje. Tada e jedno nabrajanje biti razvueno na vie slajdova.
Jednostavnija mogunost je da u zaglavlje okruenja dodamo {+-} , to znai da
elimo da se svakim slajdom otkriva po jedna nova stavka iz nabrajanja. Znak - u
oba primera znai da elimo da se stavka pojavi na sledeem slajdu i da ostane

46

Broj 33

Beamer
prisutna. Moemo da izostavimo znak - i tada e stavka biti prisutna samo na
jednom slajdu, ili da napiemo raspon slajdova u kojima elimo da ta stavka bude
prisutna.

Rad sa kolonama i blokovima

Do sada su svi primeri podrazumevali da je sadraj napisan preko cele irine


slajda, ali Bimer (eng. Beamer) ima i jednostavne mehanizme za razmetanje
sadraja po kolonama. Za rad sa kolonama se koristi okruenje columns, unutar
kojeg moemo da dodajemo nove kolone pomou \column{irina} . Sadraj je
mogue potom pisati i van okruenja sa kolonama.
U paru sa kolonama, esto se sree i okruenje block, koje se parametrizuje
naslovom. Primerom su ilustrovani i okruenje column i okruenje block.
\begin{frame}
\begin{columns}
\column{0.5\textwidth}
\begin{block}{Naslov levog bloka}
Sadraj u prvoj (levoj) koloni \\
\end{block}
\column{0.5\textwidth}
\begin{block}{Naslov desnog bloka}
Sadraj u drugoj (desnoj) koloni \\
\end{block}
\end{columns}
\begin{block}{Van kolona}

47

Li B R E !

ASOPIS O SLOBODNOM SOFTVERU

Februar 2015.

Sam svoj majstor


Tekst koji se nalazi ispod kolona.
\end{block}
\end{frame}

Tabele

Iako se u radu sa prezentacijama sadraj najee moe uredno rasporediti


pomou kolona i nabrajanja, nekada to nije dovoljno jer su tabele pravi format.
Bimer podrava standardno Lateh ( LaTeX) okruenje za rad sa tabelama.
Okruenje za rad sa tabelama se zove tabular. Pri kreiranju nove tabele mogue je
podesiti koje kolone e biti razdvojene linijom i da li e njihov sadraj biti centriran,
ili uz levu ili uz desnu ivicu. Dodavanje novog reda se jednostavno radi
dodavanjem \hline. Lateh prua zaista jako fleksibilan rad sa tabelama i sigurno e
doskoiti svim moguim i nemoguim zamislima. Potraite bilo koje Lateh uputstvo
za rad sa tabelama i radie i sa Bimerom.
\begin{frame}
\begin{tabular}{ | c
\hline
& Ponedeljak
1 & 16
2 & 16
3 & 16
\end{tabular}
\end{frame}

48

| c | c | c |}
&
&
&
&

Utorak
32
128
512

&
&
&
&

Sreda
64
1024
4096

\\
\\
\\
\\

\hline
\hline
\hline
\hline

Broj 33

Beamer

Teoreme i istaknut tekst

U nastavi su esta izlaganja teorema, njihovih dokaza i primera. U Bimer je


ugraena podrka za elegantno predstavljanje ove trojke. Mehanizam takoe
podrava postepeno otkrivanje sadraja slajda, tako da sluaocima ne bude odmah
otkriven dokaz teoreme. Mehanizam za postepeno otkrivanje se, kao i kod
nabrajanja, postie pomou <1-> konstrukcije. Evo kako to izgleda:
\begin{frame}
\frametitle{Primer teoreme}
\begin{theorem}<1->
zanimljive.
\end{theorem}
\begin{example}<2->
\end{example}

Teorema kae da su beamer prezentacije

Ovaj kod kreira slajd beamer prezentacije.

\begin{proof}<3->
estitamo, stigli ste do kraja serijala o \\
pravljenju beamer prezentacija.
\end{proof}
\end{frame}

49

Li B R E !

ASOPIS O SLOBODNOM SOFTVERU

Februar 2015.

Sam svoj majstor

Za kraj

Ovim lankom zavravamo serijal o Bimeru. Nadamo se da smo uspeli da vas


zainteresujemo za ovu vrlo korisnu klasu Lateha. Trudili smo se da vam
prezentujemo najvanije delove Bimera koje ete najee koristiti prilikom
kreiranja svojih prezentacija.
Napominjemo jo jednom da je Bimer samo jedna od klasa Lateha to znai da i za
Bimer vai sve ono to ste ve mogli da proitate u ovom asopisu kad smo pisali
serijal Uvod u LaTeX (LiBRE! brojevi 17 do 21). tavie, ovaj serijal o Bimeru je
bio nastavak upravo tog serijala. U ovom serijalu nismo pisali o samom
formatiranju teksta u prezentacijama jer se podrazumeva da vae ista pravila kao i
u Latehu, a o tome smo pisali u prethodnom serijalu.
Hvala vam to ste pratili ovaj serijal i elimo vam puno uspeha u kreiranju Bimer
prezentacija.

50

Broj 33

Hardver

BeagleBone Black Rev C

Vodi od prvog dana (3. deo)


BeagleBone Black kao Tor relej
Autor: Nenad Marjanovi
Kada smo se upoznali sa podeavanjima sistema i umreavanjem, vreme je za na
prvi Biglbon Blek (BBB - eng. BeagleBone Black) projekat. Svakom od nas e ovaj
izazov dati razliite ideje, a jedna od njih moe biti i zatita privatnosti internet
korisnika. Naalost, u Srbiji ne postoji nijedan izlazni tor server (eng. node) i to je
pomalo tuna slika s obzirom da govorimo o populaciji od sedam miliona
stanovnika. Ali ovu sliku moemo promeniti udruenim snagama i, za poetak,
kreiranjem Tor transfer i izlaznog servera. U ovde prikazanom grafikonu
fokusiraemo se na Rauter B taku, odnosno transfer server konfiguraciju.

51

Li B R E !

ASOPIS O SLOBODNOM SOFTVERU

Februar 2015.

Hardver
Tor predstavlja mreu servera koji se povezuju radi bolje enkripcije podataka i
zatite IP adrese korisnika. Na cilj je da danas postanemo deo ovog predivnog
projekta i da se naemo na svetskoj karti Tor servera.

Brzina interneta i zakonske regulative


Potrebno je imati na umu nekoliko bitnih stvari:

1. Na server = naa odgovornost


2. Obavezno naznaite da ste vi administrator a ne korisnik istog servera
3. Da posedujete internet brzinu od 2 Mb/s
Ako ispunjavamo tri navedena pravila i odgovornosti, moemo se posvetiti
administrativnim poslovima.

Instalacija i podeavanja

U ovom primeru koristimo Debijan Vizi (eng. Wheezy), odnosno Debijan 7 verziju
na naem BBB ureaju. Vi moete testirati i druge Linuks platforme. Prvo
dodajemo izvornu biblioteku u /etc/apt/sources.list fajl pokretanjem sledee
komande u terminalu:
echo "deb http://deb.torproject.org/torproject.org wheezy main"
/etc/apt/sources.list.d/tor.list

> \

Zatim dodajemo izvorni klju, vrimo auriranje sistema i instaliramo tor i tor-arm
(Tor monitoring sistem).
gpg --keyserver keys.gnupg.net --recv 886DDD89
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key
add apt-get update
apt-get install deb.torproject.org-keyring -y
apt-get install tor tor-arm egrep screen -y

Ovim smo uspeno zavrili instalaciju Tor servera i sistema za monitoring, odnosno
nadgledanja naeg Tor servera. Sledeom komandom radimo na podeavanjima
Tor servera koja se nalaze u /etc/tor/torrc fajlu. Obratite panju i izvrite potrebne

52

Broj 33

BeagleBone Black
izmenu u poljima IP adresa (eng. Address), nadimka (eng. Nickname) i kontakt
podataka (eng. ContactInfo) pre pokretanja ove komande. Kopiramo i pokreemo
komandu u celosti u terminalu.
egrep -v "^(#|$)" /etc/tor/torrc
ORPort 443
Address 192.168.1.1
Nickname LibreTorRelay
RelayBandwidthRate 100 KB
RelayBandwidthBurst 120 KB
ContactInfo <vi at gmail dot com> irPort 8080
DirPortFrontPage /etc/tor/tor.html
ExitPolicy reject *:*

Detalje o svim vrednostima neemo iznositi u ovom broju LiBRE! asopisa, ali
emo o njima pisati u sledeem, u kome emo priati o zatiti Tor servera i
mogunosti podeavanja odreenih izlaznih pravila (eng. ExitPolicy).
Nakon ovoga moemo primetiti da se u folderu /etc/tor/ ne nalazi tor.html fajl.
Ovaj fajl nije od velikog znaaja i moete ga lino napraviti, ili preuzeti jednu kopiju
- naprimer, sa sledee lokacije:
cp /usr/share/doc/tor/tor.html /etc/tor/tor.html

Opcije i Tor Arm monitoring

Da bismo ispravno koristili Tor Arm, potrebno je urediti jo jednom /etc/tor/torrc


fajl i restartovati servis.
echo -e DisableDebuggerAttachment 0\n AvoidDiskWrites >> /etc/tor/torrc
sudo service tor reload

Ukoliko elite koristiti Tor Arm za nadgledanje aktivnosti na serveru pokrenite


program screen , kliknite na Enter i kucajte sudo -u debian-tor arm . Na
ekranu ete imati slian prikaz:

53

Li B R E !

ASOPIS O SLOBODNOM SOFTVERU

Hardver

54

Februar 2015.

Broj 33

BeagleBone Black

Da bismo napustili screen program, koristimo Ctrl + a + d i, na taj nain, kada se


sledei put prijavimo na server, kucamo samo screen -r u terminalu - i nai emo
se ponovo na uvenom Tor Arm monitoring ekranu.
Nakon svake promene konfiguracionih fajlova, ako sluajno nismo neto podesili
kako treba, restartujemo servise.
U sledeem broju asopisa govoriemo o minimalnim podeavanjima i
konfigurisanju izlaznog Tor servera (eng. Tor Exit Node), opcijama, sigurnosti, i
slinim detaljima u vezi sa naim prvim projektom. Do itanja u sledeem broju!

55

LUGoNS
BarCamp 4
subota 7. mart 2015. godine
etvrti LUGoNS-ov Barkemp ( BarCamp) odrae se u Novom Sadu u
subotu 7. marta 2015. godine na Fakultetu tehnikih nauka sa poetkom
u 12 asova.
Ulaz je slobodan!

Poziv za predaju radova

LUGoNS poziva sve zainteresovane da poalju svoje radove (predavanja,


prezentacije, radionice i diskusije) do 28. februara 2015. godine.
Oblasti iz kojih moete da prijavite vae radove su:
Slobodan softver
Zanimljiv hardver
Hakerski zakoni
Sigurnosne none more
Anonimnost i privatnost na internetu
Duboki veb (eng. Deep Web)
Socijalne mree
Socijalni inenjering
Hakovanje mobilnih ureaja
Internet u oblaku (eng. Clouds) hakovanje, razbijanje i neoekivano korienje
DPI (eng. deep packet inspection )
Mrea i mrena neutralnost vlasnitvo, cenzura, nadmudrivanje i politika de
fakto standarda
Programiranje i programski jezici
Nemojte se ustruavati i slobodno nam se javite ako imate rad na gore navedene
ili sline teme koji smatrate interesantnim.
Stranica za predaju radova nalazi se na: https://events.lugons.org/?p=1658