You are on page 1of 28

Uvodna reč

Sadržaj:
Uvodna reč 2
Sadržaj 2

Distribucije
Od nule do GNU/Linuksa 3
Malo, manje, najmanje 5

Softver
gDesklets 6
Zvezda je rođena 9

Hardver
Multimedijalne tastature 13
Drajveri, drajveri... 15

Stalne rubrike
Radionica
Gimp i crvene oči 21
Uvod u Piton (Python) 23
Srebrna Lisica 25

Pravna klinika
Legum servi summus ut liberi
esse possimus – deo 1. 27

Redakcija:
Ivan Jelić
Ivan Čukić
GNUzilla
Marko Milenović
Petar Živanić
Danilo Šegan
Aleksandar Urošević
Srđan Anđelković
Slobodan Kovačević

Saradnici:
Miloš Popović

Priređivač:
Mreža za Slobodan Softver
Sav materijal u ovom časopisu je
www.fsn.org.yu
objavljen pod Free Documentation
License. Autorska prava pripadaju
Kontakt adresa:
autoru.
gnuzilla@fsn.org.yu

2 / GNUZILLA / Februar 2005


Distribucije

Od nule do GNU/Linuksa
Predstavljanje distribucije Linux From Scratch

PRVI PROBLEM ZA NEKOGA KO ŽELI DA SE ORIJENTIŠE NA GNU/LINUX


PREDSTAVLJA IZBOR DISTRIBUCIJE. OBIČNO NOVAJLIJE NA RAZNIM MESTIMA

POSTAVLJAJU PITANJE NA KOJE NE POSTOJI SAVRŠEN ODGOVOR: „KOJA


DISTRIBUCIJA JE NAJBOLJA?“. IPAK, NAJREALNIJI ODGOVOR BI BIO „TVOJA
DISTRIBUCIJA“. ZAGRIZITE JABUKU!

Ako ste nekada poželeli da distribuciju Linuxa koju koristite prila- Objašnjeno je zašto i gde treba sme-
godite svojim potrebama, verovatno ste naišli na prepreku tome — ili stiti sve pripremljene pakete za ka-
zbog straha da nešto ne pokvarite, ili zbog neznanja šta, kako i kada snije korišćenje u izgradnji.
da uradite. Još ako tek planirate da probate (i na dalje koristite) Linux,
verovatno vam nikad i nije palo na pamet nešto tome slično. Krojenje 4. Završna priprema
sopstvene distribucije zvuči kao težak, dugotrajan i rizičan posao; a U ovom delu je navedeno koje
kao najbolnije, nameće se pitanje da li će posle svega to uopšte raditi. sistemske promenljive treba posta-
Pre par godina je Žerard Bikmens (Gerard Beekmans) došao na sličnu viti kao i koje nove direktorijume
ideju, i nakon kompleksnog pokušaja došao do rešenja — distribucije treba napraviti. Objašnjeno je i zašto
po svojoj meri. Zbog suštine pravljenja, nazvao je ovaj posao je- pripremanje LFS-a ne treba raditi
dnostavno – Linux From Scratch. kao root već kao korisnik lfs i član
LFS je knjiga koja postupno opisuje korake koje treba preduzeti da grupe lfs, i kako ih napraviti. Tako-
bi se izgradila sopstvena distribucija unapređivanjem, podešavanjem, đe, naveden je način merenja vre-
prevođenjem i instaliranjem paketa iz izvornog koda. mena potrebnog za izgradnju poje-
Ali da počnemo od suštine. Uporedićemo LFS sa kompletnim pro- dinačnih paketa, odnosno komple-
jektom za izgradnju kuće. Za kuću imate projekat sa predračunom po- tnog sistema, pošto korisnici pre
trebnog materijala i nacrtima gde, šta i kako treba ugraditi. Kod LFS-a početka izgradnje nečega žele da
imamo knjigu u kojoj su popisani svi potrebni paketi i njihove po- znaju koliko će vremena utrošiti za
pravke (pečevi), sa adresama odakle se isti mogu preuzeti. Tu se tako- taj posao. Prisutan je i opis komple-
đe nalazi kompletan i detaljan opis šta sa kojim paketom i kojim redo- ta za testiranje prevedenih i pripre-
sledom treba raditi. mljenih paketa.
Knjiga je podeljena na tri celine, i to: Uvod, Pripremanje za izgra-
dnju i Izgradnja LFS sistema. U okviru ovih celina postoji ukupno se- 5. Izgradnja privremenog sistema
dam poglavlja. Ovde je opisan način pripremanja
privremenog sistema na kori-
1. Uvod sničkom sistemu (distribuciji koju
U uvodnom delu je ukratko opisano šta će se u kom poglavlju raditi, već koristite) za izgradnju konačnog
izmene postojećih i dodavanje novih paketa potrebnih za izgradnju LFS-a. Za ovo je pre svega potreban
LFS sistema, izvori pomoći i potrebnih paketa, uputstvo kako posta- kernel 2.6.2 ili noviji. U ovom po-
vljati pitanja u slučaju potrebe, koji su najčešći problemi prilikom glavlju se konačno prelazi na kon-
podešavanja paketa i sistema. kretan rad — izgradnju osnove
prevođenjem osnovnih paketa u
2. Pripremanje nove particije dva prolaza (prvo se pojedini alati
U ovom poglavlju je opisan način i preporučena struktura particija prevode jednom, korišćenjem alata
diska za novi LFS sistem, način pravljenja sistema datoteka i montira- sa glavnog sistema, a drugi put se
nje novonapravljenih particija. prevode korišćenjem tih novih ver-
zija, zbog kompatibilnosti sa novim
3. Materijal: Paketi i nadogradnje sistemom). Svi ovi paketi se smešta-
Ovde su navedeni svi paketi koje je potrebno pripremiti, kao i koje ju u privremeni /tools direktorijum
su sve nadogradnje neophodne a koje preporučljive i za koje pakete. na LFS particiji.

Februar 2005 / GNUZILLA / 3


Distribucije

6. Izgradnja LFS sistema vom ličnom Linuksu – konzoli. I šta


Kao što se i može pretpostaviti, u ovom poglavlju je detaljno opisan sada?
način montiranja potrebnih virtuelnih sistema datoteka, prelaska u Verovatno se pitate šta ste dobili
pripremljeni privremeni LFS sistem chroot naredbom, postavljanja od- za sav trud uložen u izgradnju LFS-
govarajućih prava pristupa i pravljenjem potrebne strukture direktori- a? Vreme je da vam skrenemo
juma i simboličkih veza. Opisan je način pravljenja potrebnih identifi- pažnju da ovo nije kraj. Nakon
kacionih datoteka (passwd, group) kao i blok uređaja (/dev). Nakon ove uspešno završenog postavljanja
pripreme prelazi se LFS-a predstoji nešto
na dugo očekivano složeniji proces izgra-
prevođenje paketa za dnje korisničkog
novi LFS sistem. Ovaj okruženja — X i dru-
proces je najdugotraj- gih servera, kori-
niji i možda najri- sničkih uslužnih pro-
zičniji, jer od njego- grama, radnog gra-
vog uspešnog iz- fičkog okruženja, ala-
vođenja zavisi stabil- ta koji vam trebaju za
nost i funkcionalnost svakodnevni rad, kli-
budućeg sistema. jenata za mrežnu ko-
Obavezno je testira- munikaciju i drugo.
nje paketa glibc (koji Jednom rečju, dobili
pored kernela pred- smo čistu, brzu i sta-
stavlja osnovu bilnu platformu na
GNU/Linuks sis- kojoj možemo da do-
tema), binutils, gcc, a preporučljivo je za coreuils. Tu je i opis i struktura gradimo pakete po volji. Po onoj
datoteka /etc/syslog-ng i /etc/initab. analogiji sa početka priče, kuća je
završena, postavljen je krov, omal-
7. Podešavanje pokretačkih skripti terisana je, postavljena elektro i vo-
LFS je baziran na SysV inicijalnim skriptama posebno prilagođenim dovodna instalacija. Sada ostaje
za ovaj sistem. Ove skripte dolaze u LFS-Bootscripts paketu i instalira- onaj možda dosadniji deo: krečenje,
ju se pojedinačno za svaki paket za koji je potrebno, a što je navedeno kupovina nameštaja, uređivanje en-
u samom postupku instalacije paketa. U ovom je poglavlju opisan na- terijera, sređivanje dvorišta. Kad
čin funkcionisanja ovog načina iniciranja Linuks sistema, podešavanje završimo sa tim, sledi uživanje u
vremenske zone, konzole, ulazne opisne datoteke (/etc/inputrc), skripti novom toplom domu.
za opisivanje sistemskih promenljivih BASH-a, podešavanja mrežnih Ovaj se proces izvršava po knjizi
datoteka (/etc/hosts, /etc/sysconfig/network-devices i /etc/resolv.conf). BLFS (Beyond Linux From Scratch),
koja sada neće biti opisana već vam
8. Pravljenje LFS sistema butabilnim ostavljamo da je sami prelistate i
Vreme je da se definiše struktura tvrdog diska LFS sistema vidite šta vam se nudi, jer je speci-
(/etc/fstab), pripremanje kernela i programa za učitavanje sistema (boot fična – ponuđeno je više modela od
loader). LFS koristi GRUB. kojih treba izabrati onaj koji najbolje
odgovara korisniku. Recimo, opisa-
9. Kraj na je izgradnja okruženja Gnom i
Na samom kraju pravljenja sopstvene distribucije Linuksa, ostalo je KDE, a na vama je da odlučite hoće-
još definisati verziju (/etc/lfs-release), eventualno se prijaviti kao još je- te li praviti i kasnije koristiti oba ili
dan korisnik koji je uspešno završio pravljenje LFS-a, i na samom kra- samo jedno od njih.
ju je ostalo još da se restartuje računar.
Korisna adresa:
ŠTA SADA? http://www.linuxfromscratch.org
Ako je izgradnja LFS-a protekla bez problema, ili ste probleme od-
mah otklonili, pravilno ste podesili loader, obrećete se u vašem no- ~ Aleksandar Urošević

4 / GNUZILLA / Februar 2005


Distribucije

Malo, manje, najmanje


MenuetOS – Operativni sistem za Asembli programere

Koliko puta ste pogledali staru gomilu disketa na vašem stolu i pita- disketu. Prvi način je namenjen Wi-
li se zašto ih uopšte čuvate? Mali medijum za čuvanje podataka kojeg ndows™ korisnicima i podrazume-
je pregazilo vreme. No, možda im se još uvek može naći primena...ili va pokretanje EXE datoteke koja
bar jednoj od njih. vrši kopiranje podataka na disketu.
Drugi način je namenjen korisnici-
ma UNIX-sličnih sistema, i podra-
zumeva preuzimanje IMG datoteke
sa servera i kopiranje iste na disketu
putem komande: dd if=mos0xx.img
of=/dev/fd0.

Kada ste uspešno pripremili


disketu, potrebno je da ponovo po-
krenete svoj sistem, ali uz pomoć
diskete. Menuet OS će se učitati i
posle nekoliko postavljenih pitanja
vezanih za vašu grafičku karticu i
miša(toliko jednostavnih da ih ovde
neću ni pominjati) sistem će se uči-
tati i pred vama će "eksplodirati'
hvale vredno grafičko okruženje.
Prosečnom korisniku se na pomen operativnog sistema pred očima
javlja glomazan softver koji zahteva čitav kompakt disk. a onda su je- Naravno, nemojte očekivati da
dnog dana ljudi okupljeni oko projekta Menuet OS, koristeći Asembli MenuetOS može zameniti vaš kom-
programski jezik napisali nešto što pleni izgledom a staje na jednu pletni operativni sistem. Pored lepe
disketu. Menuet OS predstavlja pravo iznenađenje za sve one koji grafike, sistem u sebi nosi niz
nađu dovoljno vremena da preuzmu arhivu od 1,4MB, stave je na uslužnih programa za korišcenje
disketu i potom pokrenu svoj sistem uz pomoć iste. Interneta,slušanje muzike ili zaba-
vu. U sistem je uključena kompletna
Ovaj operativni sistem u sebi nosi podršku 32-bitnu X86 Asembli podrška za asembli 32-bitno progra-
programiranje. No, sam OS nema korene u UNIX ili POSIX standardi- miranje tako da predstavja pravu
ma, već je apsolutno nezavistan operativni sistem izdat pod OJL stvar za sve one zainteresovane za
(GPL). ovaj jezik. No, to svakako nije
dovoljno za svakodnevni rad. I sami
Menuet sa sobom nosi sve one divne stvari koje se kod jednog ope- autori ovar projekat smatraju hobi-
rativnog sistema očekuju: multitasking, multithreading, grafičko jem.
okruženje koje podržava rezolucije do 1280x1024 za 16 miliona boja,
TCP/IP. PPP, drajvere za mrežne kartice (automatski je detektovao Bez obzira na vaše afinitete prema
podešavanja za moju mrežu), mrežne aplikacije za rad sa FTP, HTTP, ovom ili onom operativnom
SMTP i POP3 serverima, IRC, HTTP, NNTP, TFTP klijente, mogu- sistemu, toplo vam preporučujem
ćnost menjanja izgleda grafičkog okruženja... da se poigrate MenuetOS-om. A što
se disketa tiče: odstranite višak, ali
Menuet OS možete preuzeti sa matične prezentacije www.menueto- ipak zadržite bar jednu.
s.org. Autori su nam omogućili dva načina stavljanja Menueta na
~ Marko Milenović

Februar 2005 / GNUZILLA / 5


Linux programi

Samo ulepšanje ili nešto više? bude u redu trebalo bi da dobijete

gDesklets poruku u kojoj se kaže da je desk-


let uspešno instaliran. Sada još
gDesklets omogućava da pokrenete male programe (aplete), koji samo da ih pokrenemo - obeležite
imaju dve funkcije: da ukrase desktop i da pri tome imaju neku na- desklet koji želite pokrenuti i File
menu. > Run seleced display i to bi bilo
to. Postoji mogućnost pokretanja
GDESKLETS JE ONO ŠTO BI SVAKO VOLEO DA VIDI NA SVOM DESKTOPU. ANALOGNI SAT, gDesklets prilikom pokretanja X-a.
ZAUZETOST DISKA PO PARTICIJAMA, TEMPERATURU PROCESORA I GRAFIČKE KARTE, Za ovo postoji nekoliko načina, a
KALENDAR, ČAK I NIVO MASTILA U KETRIDZIMA HP ŠTAMPAČA. MOGUĆNOSTI SU najjednostavniji bi bio: Applica-
PRAKTIČNO NEOGRANIČENE, I SVE ŠTO ZAMISLITE VEĆ POSTOJI ILI ĆE POSTOJATI U tion > Desktop preferences > Ad-
BUDUĆNOSTI. vanced > Sesion i na kartici Star-
tup programs treba kliknuti na
Add i otvoriti
U osnovi gDesklets se sastoji iz tri dela: srca gDesklets sistema koje /usr/local/bin/gdesklets start. Ili
pretstavlja daemon pokrenut u pozadini, Senzor koji obrađuje podatke i možete dodati sledeću liniju (kao
reaguje na akcije korisnika (u stvari to je modul u Pitonu) i Display - poslednju) u vašu ~/.xinitrc
ono što vidite na desktopu. datoteku
gdesklets start
Instalacija

6 / GNUZILLA / Februar 2005


Linux programi

način pristupanja podacima izvan sandbox-a, a za to se koristi biblioteka Ovde je potrebno da budemo
libdeskelts. pažljivi i da ne dodeljujemo os-
obine koje nemaju smisla. Do-
Delovi deskleta davenjm osobine boja proiz-
voljnom tekstu dovešće do greške.
Svaki desklet se sastoji iz dva dela: senzor (sensor) i Takodje je moguće više puta ga
displej (display). Korisnički interfejs je definisan u povezati na sledeći način:
display datoteci, dok se senzor koristi za obradu watch="value=s:text,
podataka. Drugim rečima dislpej definiše izgled,
dok senzor definiše mogućnosti jednog deskleta. Za
pravljenje novih deskleta nije potrebno nikakvo zn-
anje Piton programskog jezika, sve što treba je da
poznajete ADL (XML) i koristite već postojeće senzore. Suprotno tome,
pisanje novi senzora zahteva poznavanje programiranja u Pitonu, mada
ni to nije nije teško. Posle instalacije gDesklets sistema pojavljuje se
direktorijum ~/.gdesklets i u njemu se nalaze datoteke i direktorijumi
potrebni za rad. U direktorijumu Controls nalaze se kontrole koje je kor-
isnik instalirao, u direktorijumu Display nalaze se deskleti, a u direkt-
orijum Sensors senzori koje je korisnik instalirao.

ADL

ADL (Applet Description Language) je kako mu i samo ime kaže, alat


(jezik) za opis deskleta. Baziran je na XML-u ali tako dizajniran da bude
fleksibilan i ne previše komplikovan. On podržava inline skripte koje
mogu menjati svojstva deskleta u toku izvršavanja. Glavne odlike ovog
jezika su da je čitljiv korisniku, nezavisan od rezolucije monitora i bogat
mogućnostima. Kako svako učenje počinje od nekog “Hello World” pro-
grama, tako ću i ja ovde početi od “zdravo svete” deskleta. Za ovo će <?xml version="1.0" encod-
vam treba neki desklet sa svojim senzorom. Otvorite njegovu .display ing="UTF-8"?>
datoteku u nekom uređivaču teksta (najbolje gedit), napišite sledeće: <display window-
<?xml version="1.0" encoding="UTF-8"?> flags="sticky, below" bg-col-
<display window-flags="sticky" bg-color="white"> or="white">
<label value="Zdravo svete!" font="Serif 20" color="red"/> <sensor id="s" mod-
</display> ule="External, tail /
Pokrenite ga sa gDesklets sistemom, i dobićete vaš prvi desklet na var/log/messages"/>
desktopu. Svakom ko zna da čita enleski jezik ovaj kod je jasan sam po <label
sebi. Ovo je statički desklet koji ne koristi senzor i na desktopu ispisuje watch="value=s:value"/>
“Zdravo svete”. U redu, šta će nam desklet koji ne koristi senzor? Hajde </display>
da se time pozabavimo. Senzor je izvor podataka za desklet i nema Ovaj modul izvršava komandu
ograničenja koliko senzora jedan desklet može da koristi, čak jedan sen- tail /var/log/messages. Postoji
zor možede pozvati više puta. Svaki senzor u displej (.display) datoteci mogućnost dodavanja i trećeg ar-
mora imati svoj jedinstveni ID. Evo kako ćemo pozvati jedan senzor: gumenta, a to je vrednost u mil-
<sensor id="s" module="Time"/> isekundama nakon kojih će se ko-
U ovom slučaju smo koristili atribut modul da bi pozvali senzor Time. manda ponovo izvršiti. Ako treći
Ukoliko senzor ne postoji ili ga gDesklets ne pronalazi dobićete poruku argument ne postoji, po početnim
sa greškom. Sada, pošto smo dodelili senzoru njegov ID (u našem vrednostima on je 1000 ms, a ako
slučaju “s”) možemo mu pristupati, na primer watch atributom, na želimo komandu da izvršimo
sledeći način: samo jednom, ovde uzimamo
<label watch="value=s:out"> vrednost 0. Ovde se mogu

Februar 2005 / GNUZILLA / 7


Linux programi

izvršavati i kompleksije skripte tako što treba komande razdvajati sa Svakako treba posetiti:
tačka-zarezom(;). Postoji još jedan način da iz inline skripti pristupite www.gdesklet-
bilo kojim podatcima loristeći kontrole (Controls). Šta su kontrole? To su s.gnomedesktop.org
ustvari Piton moduli koji se lako koriste i mogu da se dele, a sistem www.gnomesupport.org/forums
gDesklets dolazi sa nekoliko ovih kontrola (vreme, datum ...). Da bi ste Vidimo se tamo.
pristupili nekoj kontroli morate uraditi sledeće:
<control id="vreme" interface="ITime:9y703dqtfnv4w373case- ~Srđan Anđelković
rz68r"/>
sada da bi dobili vreme možemo da koristimo skript na sledeći način:
<script>
h, m, s = vreme.time
print "Vreme je:"
print "%2d:%2d.%2d" % (h, m, s)
</script>
E sada da dodamo našem satu mogućnost konfiguracije. To ćemo uraditi
na sledeći način:
<prefs>
<page label="Prva strana">
<string label="Vremenskazona" bind="vreme.-
timezone"/>
</page>
<page label="Druga strana">
<string label="Nema nista"/>
</page>
</prefs>
Ovim smo dobili mogućnost podešavanja vremenske zone u dijalog pro-
zoru koji se bude otvorio. Još treba da dodamo funkciju koja pokreće sat
na sledeći naći način:
<script><![CDATA[
def kreni(new_value):
h, m, s = new_value
Dsp.okvir.value = "%2d:%2d.%2d" % (h, m, s)
vreme.bind("time", kreni)
]]></script>
O ADL se može napisati cela knjiga, tako da je ovo samo jedan jako mali
deo cele priče, koji će biti dovoljan da vas upozna i uvede u pisanje
novih deskleta ili možda razvijanje gDesklets sistema. Ovim se vraćamo
na pitanje sa početka, da li je sistem gDesklets ulepšavanje desktopa ili

nešto više? Ja na ovo pitanje još uvek neću odgovoriti. To ću prepustiti


korisnicima da prosude sami. Samo ću kao konstataciju reći da je sistem
još uvek u ranoj fazi razvoja (trenutno aktujelna je verzija 0.33). Šta
dalje? Ako ste korisnik ovog sistema ili će te to u budućnosti postati
posetite www.gnomesupport.org/forums i tamo postavite sliku vašeg
desktopa ili potražite pomoć za eventualne probleme na koje niđete.
Nadam se uskoro otvaranju domaćeg sajta posvećenog ovoj temi ili
makar zasebnog foruma na nekom od postojećih.

8 / GNUZILLA / Februar 2005


Linux programi

Deset godina GIMP-a (deo prvi)

Zvezda je rođena
Istorija razvoja projekta „The GIMP“

DAVNE 1995. GODINE IZ GLAVA DVA STUDENTA NASTAO JE DANAS JEDINI nisu očekivali veći uspeh svog pro-
OZBILJAN GNU PROGRAM ZA OBRADU BITMAPIRANE GRAFIKE. DESET GODINA grama, bili su zadovoljni činjenicom
SE ON RAZVIJAO OD ZAMISLI DO VELIKOG PROJEKTA KOJI NI GRAFIČKE da je njihov pionirski projekat koli-
PROFESIONALCE NEĆE OSTAVITI RAVNODUŠNIM. ČAK JE, PORED OSNOVNE ko toliko zaživeo.
NAMENE, OVAJ PIONIRSKI GNU PODUHVAT, SASVIM SLUČAJNO IZRODIO
POPULARNU GRAFIČKU PODLOGU I JOŠ POPULARNIJE RADNO OKRUŽENJE. ZOVU Predstavljanje javnosti
SE JEDNOSTAVNO: GIMP, GTK+ I GNOM. Jedan od prvih koraka u cilju pro-
mocije programa nakon izdanja 0.54
U početku beše želja... bio je organizovanje dopisnog
Dva studenta na Berkliju, jula 1995. godine umesto društva za razvojni tim.
da stečeno znanje u programiranju ulože na pisanje Autorima je bila potreb-
prevodilaca u lisp-u, rešila su da napišu pro- na povratna informacija
gram za obradu bitmapiranih slika. Iako o upotrebljivosti njihovog
nijedan od njih dvojice nije imao čeda, a dopisno društvo je
kontakta sa likovnom ume- bio jedan od načina da ko-
tnošću, imali su teh- risnici urade tako nešto.
ničkog predznanja za Kada su počela da
realizaciju takvog pro- pristižu pita-
jekta. Tako su Spenser nja vezana za
Kimbal (Spencer Kimball) i osnovnu upo-
Piter Matis (Peter Mattis) trebu programa,
utemeljili korene programa za 5. jula 1996. godine
manipulaciju slikama „General gimp-list je podeljen
Image Manipulation Program“ na gimp-user i gimp-de-
(GIMP). veloper. Ubrzo je pro-
Pre nego što su objavili prvu javnu jekat dobio podršku i u
verziju 0.54 (januar 1996.) koja je pred- sta- vidu glavne Internet prezentacije na
vljala funkcionalan prozivod, na GIMP- u su radili oko serverima Berklija. Zak Bin (Zach
deset meseci. U prvom izdanju, GIMP je imao dosta ugrađenih alata, Beane – Xach) kao i veliki broj dru-
sadržao je sistem dodataka (PlugIn), pa su drugi razvojni timovi mogli gih korisnika, počeli su sa pravlje-
da pišu samostalne programe koji se bezbedno mogu dodati u glavni njem uputstava tipa „korak po ko-
program bez narušavanja njegove funkcionalnosti. Postojali su osnov- rak“ kako izvesti neku operaciju u
ni alati za crtanje i operacije nad kanalima i opoziv akcije (Undo), što programu.
drugi programi ove namene nisu imali. GIMP je postao omiljen pro- Jedan od naprednijih korisnika,
gram među korisnicima, zaštićen GNUovom opštom javnom licen- Lari Juing (Larry Ewing), u prvom
com i imao je zanimljivo i jednostavno ime koje se lako pamti. Uprkos izdanju GIMP-a nacrtao je čuvenu
mogućnostima, program se često rušio što zbog grešaka u glavnom maskotu GNU/Linuks operativnog
programu, što zbog grešaka u dodacima. sistema – pingvina poznatijeg kao
U početku je bio baziran na Motif grafičkoj biblioteci, što je predsta- Tux1.
vljalo problem velikom broju korisnika, obzirom da je Motif veoma
skupa komercijalna platforma (radi se o hiljadama dolara). Iz istog ra- Nova grafička osnova - serija
zloga, veliki broj programera, koji su želeli da daju svoj doprinos pro- 0.60
jektu pišući sopstvene dodatke, nisu to mogli da rade. Piteru je bilo dosta Motif-a, pa je
Kao i svaki drugi projekat na početku razvoja i GIMP je imao veoma odlučio da napiše sopstvenu gra-
mali broj korisnika koji su podržavali njegov razvoj. Spenser i Piter fičku osnovu od početka. Nazvao je

Februar 2005 / GNUZILLA / 9


Linux programi

gtk (za „Gimp Tool Kit“) i gdm (za „Gimp Drawing Kit“). Nikada nije projekte. Ipak, nije bilo većih pauza
ni zamišljao da bi jednog dana gtk mogao da postane jedna od najko- između njegovog odlaska i dolaska
rišćenijih grafičkih osnova; hteo je samo da napravi osnovu za GIMP. novog nosioca projekta.
Ubrzo nakon pojave gtk-a, došlo je do promene punog naziva GIMP-a
iz „General Image Manipulation Program“ u „GNU Image Manipulati- Nove komunikacije
on Program“. Dopisna društva su korisna kada
Razvoj 0.6x izdanja bio je eksperimentalan. Sistem dodataka nije bio funkcionišu a veb strane su odlične
kompatibilan sa starim API-jem iz 0.54, tako da dodaci pisani za to iz- za davanje saveta i predstavljanje
danje nisu mogli da se koriste u novom. Autori dodataka su sporo mogućnosti projekata. Međutim,
prevodili svoje radove na novi API. Problem je nastao i oko dokumen- ništa se ne može porediti sa raz-
tacije jer niko nije želeo da piše dokumentaciju za seriju 0.6x koja je govorom uživo. Februara 1997. go-
bila privremena i u razvoju. dine projekat GIMP je dobio IRC
Realno, ovo izdanje je imalo manju upotrebnu vrednost od pretho- kanal #gimp na serveru irc.freeno-
dnog 0.54 izdanja; program se učestalije blokirao. Broj preuzimanja de.org. Kanal je bio otvoren za
nove verzije znatno je opao i pored predstavljanja novih mogućnosti diskusije i otklanjanje otkrivenih
programa na berklijskoj prezentaciji (rad sa slojevima, automatizacija problema. Veoma brzo je postao je-
poslova skriptama, dobro osmišljene transformacije). dan od glavnih izvora tehničke
Serija 0.6x dala je razvojnom timu mogućnost da se ugradi veliki podrške za korisnike programa. Na
broj unapređenja, poveća stabilnost u radu kao i da se doda veći broj posletku je postao i izvor informaci-
alata za crtanje. Ovaj period evolucije GIMP-a najbolje je opisao ja o željama i potrebama korisnika
Andreas Dilger citatom: „It's good to see that the next version of za novim mogućnostima programa,
GIMP is here. Let the enhancing begin!“ kao i informisanje o načinu na koji
pojedinci mogu da pomognu pro-
Serija 0.99 - dug put do 1.0 jektu. Preko kanala je širena i ideja o
Izdanje 0.99 objavljeno je 26. februara 1997. godine. Osnovni cilj je održavanju projekta u životu od
bio prevođenje dodataka na novi API, koji je izostao u prethodnom strane članova razvojnog tima.
2
0.60 izdanju. Objavljeno je i novo izdanje gtk/gdk nazvano GTK+ . U
ovoj verziji su ugrađena revolucionarna unapređenja prethodnog gtk Podela posla
modela. Otišli su začetnici projekta, Spen-
Ubrzo je objavljeno osveženo izdanje 0.99.9, nakon čega je nastala ser i Piter, a potom i Kuartik. GIMP
duža pauza. Trent Žarvi (Trent Jarvi) je napravio veliki broj sitnih iz- se podelio u projekat razvoja gra-
mena na ovom izdanju, a Spenser i Piter su 9. juna 1997. godine obja- fičke osnove (GTK+) i projekat ra-
vili nova izdanja GTK+ i GIMP 0.99.10. To je bio njihov poslednji rad zvoja programa. Došao je trenutak
na projektu. da oba projekta dobiju nosioca.
Spenser i Piter su diplomirali, zaposlili se i više nisu imali vremena U novoj podeli, imenovani su čla-
da rade na projektu. Nisu odredili naslednika koji bi nastavio njihovo novi timova: Mains Sing (Mainsh
rukovođenje, a čak su zaboravili i da najave napuštanje projekta. Singh - yosh) je zadužen za objavlji-
vanje novih izdanja. Adrijan Likins
Pred-11 izdanja (Adrian Likins) za održavanje poda-
Napuštanje projekta od strane inicijatora usporilo je njegov razvoj. taka. Lari Juing (Larry Ewing - lew-
Pojavilo se nekoliko neoficijelnih predizdanja. Pošto je prikupljanje ing), Metju Vilson (Matthew Wilson -
zakrpa postao veliki problem, privremeni nosilac projekta Met Hoki- msw) i drugi su radili na pronalaže-
ns (Matt Hawkins) objavio je izdanje pre-11. nju i otklanjanju grešaka.
Novi nosilac projekta postao je Federiko Menja Kintero (Federico I sada je bilo dosta ljudi koji su is-
Mena Quintero – Quartic), koji je na prvo mesto stavio stabilnost i upo- tovremeno radili na više projekata,
trebljivost programa. Za izdanje 0.99.14, Kuartik je najavio zaustavlja- ali su svi oni radili kao tim bez
nje dodavanja unapređenja i otklanjanje grešaka, sve do izdanja 1.0. vođe. Svaki pojedinac je radio na
Neka od zanimljivih unapređenja, koja su većim delom bila gotova, svom doprinosu projektu i uvek se
nisu ugrađena zbog insistiranja na stabilnosti programa. znalo kome se treba obratiti za neki
Kuartik je održavao GIMP u razvoju, sve dok nije prešao na druge savet ili kada nešto zapne.

10 / GNUZILLA / Februar 2005


Linux programi

Pomoć na sve strane Publikacije


Zak je 13. aprila 1997. godine započeo projekat GIMP News3, koji je Majkl Hamel (Michael J. Hammel)
stekao popularnost svakodnevnim izveštajima o razvoju GIMP-a. Ako je u periodu od oktobra 1997. do ja-
je neko napravio novi dodatak, Zak ga je pronašao i o tome obavestio nuara 1998. godine u časopisu Li-
javnost. Ako je izdata nova verzija programa, slao je na dopisna nux Journal10 napisao četvorobrojni
društva vest i o tome. Njegova uputstva i formular za prijavu grešaka, serijal o GIMP-u. Iako je program
koji je kasnije dodat, bili su direktno povezani na stranu sa vestima. opisan samo površno, uradio je to
Tada se pojavio i veliki broj novih dodataka pa je pokrenut i Regi- na pravi način. Dobro napisani i
star dodataka4, koji omogućava autorima da osveže svoje dodatke i kvalitetni tekstovi predstavili su
ostalima da najave svoje planove u vezi sa razvojem novih dodataka. GIMP Linuks zajednici, kao i svim
Ako ste autor, prijavićete svoj dodatak na ovoj adresi, tako da korisni- drugim čitaocima Linuks literature.
ci uvek imaju uvid u njegov razvoj. Svaki korisnik odavde može da GIMP je takođe postigao publicitet
preuzme i prevede dodatak koga nema u zvaničnoj distribuciji pro- zahvaljujući Graphic Muse11
grama. tekstovima u Linux Gazette12.
Krajem maja 1997. godine Set Dž. Burdžiz (Seth J. Burgess) započeo
je projekat GIMP Bugs5. Tu je prihvaćen veliki broj prijava grešaka Ko je Wilber?
koje su ranije slate na dopisno društvo gimp-developer i organi- Maskota GIMP-a je Vil-
zovane za lakši uvid razvojnog tima i otklanjanje grešaka. U ber (Wilber). Vilbera je 25.
početku je sve rađeno ručno, uz pomoć nekoliko Perl skripti, septembra 1997. godine
pošto je dnevno prijavljivano samo nekoliko grešaka, da bi se osmislio Tomas Kosme-
kasnije ceo proces automatizovao. nen (Tuomas Kuosmanen –
Često zanemarivana oblast projekta bila je dokumentacija, pa su dva tigert). Postao je prepoznatljiv znak
korisnika, Karin i Olof Kilander (Karin i Olof S. Kylander) 7. oktobra koji asocira na GIMP. Globalno gle-
1997. godine započeli projekat Gimp Users Manual6, koji je predsta- dano, Vilber je za GIMP ono što je
vljao sveobuhvatan popis mogućnosti u GIMP-u, opisanih na preko TUX za GNU/Linuks.
200 strana dokumentacije. Danas ovaj projekat sadrži preko 600 strana
7
i nalazi se na serverima ITC u Virdžiniji . A šta je bilo posle?
8
Početkom aprila 2000. godine zaživeo je projekat Gimp user group Sećate se GTK+? Neki članovi ra-
koji okuplja korisnike GIMP-a. Na ovoj lokaciji se nalazi najsvežiji ka- zvojnog tima GIMP-a su došli na
talog uputstava za dobijanje zanimljivih efekata u novijim izdanjima suludu ideju da je to odlična osnova
programa. za pisanje raznih alata i da se iz-
među ostalog na njemu može izgra-
Komercijalizacija diti čitavo radno okruženje. U
Nasuprot mnogim projektima slobodnog softvera, kod GIMP-a početku je i ova ideja, kao i mnoge
postoji javna komercijalizacija. Pojedini članovi razvojnog tima GIMP- druge, smatrana nemogućom misi-
a videli su šansu da zarade prilagođavajući kôd ili pišući dodatke u jom. Danas smo svedoci kvaliteta i
13
komercijalne svrhe. Takođe su prodavali CD-ROM-ove sa GIMP izda- upotrebljivosti Gnoma , projekta
njem 1.0, upotpunjene odgovarajućom bitmapiranom grafikom i do- koji je zasnovan na Gtk+ grafičkoj
punskim programima. Oformljen je i WilberWorks9. podlozi.
Ipak, ovo ne može naškoditi razvoju GIMP-a pošto je sav rad na Konačno se dogodilo „čudo“ o
projektu i dalje zaštićen GNU-ovom opštom javnom licencom i novac kome Spenser i Piter nisu ni sanjali.
nije glavni motiv učešća u razvoju. 5. juna 1998. godine u 17:17 po sre-
dnje evropskom vremenu objavlje-
Sjedinjavanje mrežnih resursa no je GIMP izdanje 1.0. Bio je
Kao odgovor na potrebu da se svi izvori vezani za GIMP projekat dovoljno stabilan program koji se
centralizuju, Šon Amundson (Shawn Amundson - Snorfle) je 7. oktobra mogao izboriti i sa profesionalnim
1997. godine registrovao domen gimp.org. Ovde se nalazi velika koli- zahtevima obrade bitmapirane gra-
čina podataka koja će vas informisati o samom projektu, od izvornog fike.
kôda do saveta i trikova. Osnova za ovaj tekst preuzeta je iz Istorije U sledeće dve godine radilo se na
GIMP-a sa ove adrese. razvojnom izdanju 1.1. GIMP se već

Februar 2005 / GNUZILLA / 11


Linux programi

razvio u izuzetno stabilan i veoma korišćen program, kada je 24. de- Suma sumarum
cembra 2000. godine objavljeno stabilno izdanje 1.2.0. Ovo je bio poče- GIMP je sastavljen od preko
tak jednog novog poglavlja u istoriji GIMP projekta. Naime, naredne 230.000 linija C kôda, od čega je naj-
dve godine nije objavljeno ni jedno stabilno izdanje. Tek je 14. juna veći broj linija u toku evolucije izda-
2003. godine objavljeno izdanje 1.2.5 koje je sadržalo veliki broj is- nja 1.2 u izdanje 2.0 napisan od
pravki i poboljšanja. Posle toga započet je rad i među članovima ra- početka. Sa stanovišta korisničke
zvojnog tima objavljeno razvojno izdanje 1.2.6, ali ono nije ugledalo upotrebe programa, GIMP 2.x je u
svetlost dana za nas obične smrtnike. Međutim, razvoj GIMP-a sa iz- osnovi ostao sličan izdanju 1.x; mo-
danjem 1.2.0 nije stao. Tokom narednog perioda rađeno je na razvoj- gućnosti su slične onima koje su
noj seriji 1.3.x. Prvo stabilno izdanje ove serije, 1.3.0 objavljeno je 13. postojale na izdanjima iz 1.x serije,
novembra 2001. godine. Tokom naredne dve godine izdata su još 23 tako da se korisnici ranijih verzija
izdanja iz ove serije, a poslednje 1.3.23 je objavljeno 24. novembra mogu snaći i u novom okruženju.
2003. godine. Kompletan kod je napisan od početka, prešlo se na Gtk+ Kôd je prečišćen i omogućeno je la-
2.x grafičku podlogu, ispravljen je veliki broj grešaka, unapređene su kše dodavanje novih mogućnosti u
opcije podešavanja alata i dodat alat za vektore, dodate su podrška za program, mada se taj deo manje tiče
datoteke veće od 2GB, keširanje od preko 4GB i manipulacija EXIF in- korisnika.
formacijama u zaglavlju JPEG datoteka, interni pretraživač pomoći je Program je zahvaljujući projektu
prebačen na GtkHtml2. lokalizacije na srpski jezik16 preve-
U toku prošle 2004. godine, tačnije od 7. januara, razvijano je stabil- den na srpski tokom 2003. godine.
no izdanje 2.0. Posle četiri predizdanja i jednog kandidata (RC), 2.0.0 Trenutno aktuelna verzija u tre-
izdanje je predstavljeno javnosti 23. marta 2004. godine, implementi- nutku pisanja ovog teksta je 2.2.2.
ran je Gnom HIG standard (Human Interface Guidelines), unapređen
alat za pisanje teksta, otklonjeno je dosta sitnih grešaka. U sledećih se- ~ Aleksandar Urošević
dam meseci razvijana je stabilna serija 2.2. Izdanje 2.2.0 objavljeno je
19. decembra 2004. godine. Ispravljeno je dosta grešaka od prošlog
stabilnog izdanja, dodata mogućnost uvoza Photoshop14 (.act) paleta,
probni prikaz filtera i transformisanja, akcije koje su u toku sada se
mogu prekinuti pritiskom na Escape taster, dodati novi filteri, uvoz
SVG kontura kao putanje, podešavanja prečica sa tastature, „cut'n'-
paste“ između GIMP-a i drugih programa. Za ovo izdanje je bio orga-
15
nizovan konkurs za uvodni ekran (splash).

Internet adrese pomenute u ovom tekstu:


1 http://www.isc.tamu.edu/~lewing/gimp/notes.html
2 http://www.gtk.org
3 http://xach.dorknet.com/gimp/news
4 http://registry.gimp.org
5 http://www.gimp.org/bugs
6 http://www.dtek.chalmers.se/~d95olofs/manual/gimpmana.html
7 http://www.itc.virginia.edu/unixsys/gimp/gimpdoc-html
8 http://gug.sunsite.dk
9 http://www.wilberworks.com
10 http://www.linuxjournal.com
11 http://www.graphics-muse.org
12 http://www.ssc.com/lg
13 http://www.gnome.org
14 http://www.adobe.com/products/photoshop
15 http://gimp.org/contest
16 http://www.prevod.org

12 / GNUZILLA / Februar 2005


Hardver

Multimedijalne tastature
Kako podesiti specijalne tastere da rade pod GNU/Linux sistemom

BEZ OBZIRA NA NASLOV OVOG TEKSTA, OVDE NEĆEMO UČITI TASTATURU KAKO način da mapirate taj taster. U ovom
DA ZAPEVA, A NI KAKO DA PRIKAZUJE FILMOVE ILI NEKE DRUGE MULTIMEDI- slučaju “magični broj” tastera koji je
JALNE SADRŽAJE. OVDE ĆEMO DA NAUČIMO NAŠ GNU/LINUX DA DETEKTUJE bio pritisnut je e005. Za svaki od
I PREPOZNAJE SPECIJALNE TASTERE KOJA NAŠA TASTATURA IMA. tastera koji nisu bili prepoznati
zapišite negde taj broj. Prekinite
U poslednje vreme, tastature više nemaju standardan skup tastera program pomoću Ctrl+C.
nego svaki model ima neke specijalne, kao što su, na primer, taster Sledeći korak je da saznamo koji
Internet, tasteri Volume Up, Volume Down i slični. Uz drajvere za ta- su key-kodovi slobodni da bi smo
staturu se isporučuju i programi koji će tim posebnim tasterima dati mogli da ih zauzmemo našim taste-
značenje koje vama odgovara. Naravno, proizvođači se uopšte ni ne rima. Unesite sledeće:
trude da naprave takve programe i za Linux. # getkeycodes
Da li to znači da bi trebalo da se pomirimo sa situacijom da ćemo Dobićete tabelu odnosa scan-ko-
moći da koristimo samo ovih stotinak standardnih tastera? Naravno dova i key-kodova. Tu vidite koji se
da ne. Posle ovog teksta videćete da imate mnogo veću kontrolu nad brojevi od 89-127 ne pojavljuju i
vašom tastaturom nego što je imaju oni smrtnici koji koriste Microsoft njih, po svom slobodnom nahođe-
Windows i originalne drajvere i programe proizvođača. nju, pridružujte scan-kodovima koje
ste napisali na papiru. Sada pomoću
Problemi sa kernelom komande setkeycodes mapirajte te
zapisane kodove. Obratite
Ako koristite kernel iz serije pažnju da se promene koje
2.4, ovaj, i sledeći odeljak, u pravi setkeycodes brišu
većini slučajeva, možete slo- posle restartovanja sistema,
bodno preskočiti. Jedan od tako da ne postoji mogu-
problema koji nastaje pri pre- ćnost da nešto upropastite.
lasku sa 2.4 na 2.6 seriju je taj Loša strana toga je da ćete,
da specijalni tasteri, opet u kada sve dobro podesite,
većini slučajeva, neće biti morati u inicijalizacioni
uopšte mapirani. Samim tim, skript za podizanje računa-
kernel neće prosleđivati in- ra da ubacite sve te ko-
formacije o njima. mande.
Da bi ste proverili koji su tasteri mapirani, a koji ne, idite u konzolni
režim i kucajte sledeće (obratite pažnju da znaci $ i # predstavljaju od- Nedovoljno neiskorišćenih
zivnik u konzoli i da se oni ne kucaju): key-kodova
$ su Ako se ispostavi da nemate
Sada ukucajte šifru root korisnika i pritisnite Enter. Unesite sledeću dovoljno neiskorišćenih key-kodova
komandu: da bi ste mapirali sve nepoznate ta-
# watch -n 1 “grep key /var/log/messages | tail” stere, onda nastaju muke jer set-
Na ekranu ćete dobiti spisak sa nekoliko poslednjih poruka kernela keycodes program ne dozvoljava da
u kojima se spominje reč “key” i taj spisak će se osvežavati svake unesete brojeve vece od 127.
sekunde. Počnite sa pritiskanjem specijalnih tastera. Za svaki taster Šta raditi u tom slučaju? Ili odu-
koji nije mapiran, dobićete sledeće poruke (ili slične): stati, ili skinuti izvorni kôd set-
... kernel: atkbd.c: Unknown key released (translated set 2, code keycodes programa i liniju u kojoj
0x85 on isa0060/serio0). se proverava da li je prosleđeni key-
... kernel: atkbd.c: Use 'setkeycodes e005 <keycode>' to make it kod manji od 127 jednostavno izbri-
known. sati ili, što je još bolje, ograničenje
Obratite pažnju na drugi red gde vam kernel daje uputstvo na koji promeniti u 255. Program kompajli-

Februar 2005 / GNUZILLA / 13


Hardver

rati i koristiti umesto standardnog. Sada ćete biti u stanju da za key-


kodove koristite sve brojeve od 89-255.

xev, xkb
Ako ste, kojim slučajem, pomislili da je ovo kraj vašim mukama, gr-
dno ste se prevarili. Ostaje vam još da naučite X sistem da prepoznaje
te nove tastere.
Pokrenite iz emulatora terminala program xev. Ovaj program otvara
mali prozor i na standardni izlaz ispisuje sve informacije koje tom
prozoru šalje X server. Slično kao na početku, pritiskajte specijalne ta-
stere i zapisujte key-kodove koji se ispisuju u konzoli. Primetićete da
se ovi key-kodovi ne poklapaju sa onima koje ste unosili prilikom ku-
canja setkeycodes naredbe. Obratite pažnju na to da zapisujete ko-
dove samo onih tastera koji vraćaju NoSymbol poruku.
Sada otvorite /etc/X11/xkb/symbols/inet fajl vašim omiljenim edi-
torom. Odaberite neku od tastatura koja je najsličnija vašoj i dodajte
zapisane kodove koje vam je vratio xev. Ako je kod veći od 128, onda
od njega oduzmite 128, prebacite u heksadekadni sistem i dodajte slo-
vo I na početak.
Na primer, ako je xev vratio 139, onda u inet fajl dodajte red:
key <I0B> { [ XF86NekoImeTastera ] };
(139 – 128 = 11, a u heksadekadnom zapisu 11 je 0B)
Sada aktivirajte tu tastaturu, ponovo pokrenite xev program i pri-
tiskajte tastere. Umesto NoSymbol reči, u našem slučaju iz pretho-
dnog reda će se ispisati XF86NekoImeTastera. Ako vam se još negde
pojavljuje NoSymbol, to znači da ste u nekom koraku napravili gre-
šku. U tom slučaju, jedino što vam preostaje je da se igrate i eksperi-
mentišete sa brojevima dok vam tasteri ne prorade.

KHotKeys, Keyboard Shortcuts


Sada kada vaš sistem zna da prepoznaje te tastere, bilo bi lepo da
oni nešto korisno i rade. U tu svrhu iskoristite KhotKeys u KDE-u ili
Keyboard Shortcuts u Gnomu.
Prednost ovih programa, u odnosu na standardne programe koji do-
laze uz tastaturu je taj da određeno dugme može biti korišćeno i u
kombinaciji sa tasterima Shift, Alt i Control – na primer, možete pode-
siti da, kad pritisnete taster Internet, da se pokreće Mozilla Firefox, a
kad pritisnete Shift+Internet da se pokrene Konquerror i slično.

Zaključak
Ovo je, moram priznati, jedan od primera kod kog je nemoguće reći
da je GNU/Linux user-friendly operativan sistem. Naveden postupak
uopšte nije onoliko jednostavan koliko bi trebalo da bude. Većina
korisnika želi da samo uključi tastaturu i da ona radi.
Sa druge strane, postavlja se pitanje da li vredi truditi se oko
tastature samo da bi proradili još koji tasteri? Smatram da jeste,
pogotovo za one kojima su šake češće na tastaturi nego na mišu –
produktivnost i brzina rada se na taj način drastično povećavaju jer
svaki od tih tastera zamenjuje po nekoliko kliktaja mišem.
~ Ivan Čukić

14 / GNUZILLA / Februar 2005


Hardver

Intel, Lucent, Connexant

Drajveri, drajveri...
Instalacija drajvera za modeme tri najpoznatija proizvođača

U PRETHODNOM BROJU SMO GOVORILI O SOFTVERSKIM MODEMIMA, KAKO IH


PREPOZNATI, I KOJI MODELI SU NAJBOLJE PODRŽANI NA GNU/LINUX
SISTEMIMA, ALI SMO SE SAMO LETIMIČNO DOTAKLI INSTALACIJE DRAJVERA. TA
TEMA JE DOVOLJNO OPŠIRNA I BITNA DA ZASLUŽUJE POSEBAN PROSTOR KOJI
ĆEMO JOJ POSVETITI U OVOM BROJU .

Ne postoji tačan statistički podatak o tome koje su marke modema i


u kom procentu zastupljene na našem tržištu, ali je sigurno da preko #installpkg ime_paketa.tgz
95% računara poseduje modem koji koristi čip jednog od tri pro- Instalacija drajvera iz binarnoh
izvođača. Nije teško pogoditi da su u pitanju Intel, Lucent ili Conne- paketa je zaista laka i trivijalna.
xant. Prednost ovakvog načina instalacije
Kao što je već pomenuto, u prethodnom broju smo objasnili kako je i to što nije potreban izvorni kod
prepoznati koji čip koristi Vaš modem i kako naći drajver za njega. kernela da bi se drajver instalirao,
Priču nastavljamo, pod uslovom da ste uspešno prepoznali čip koji što je neophodno kada su u pitanju
modem koristi i da posedujete odgovarajući drajver. drajveri iz izvornog koda. Nedosta-
tak ovakvog metoda je moguća ne-
stabilnost u radu ili još gore, nemo-
gućnost korišćenja modema čiji su
drajveri instalirani iz binarnih pa-
keta. Ukoliko ne uspete da osposo-
bite modem uz pomoć drajvera iz
binrnih paketa ili binarni paket koji
vam je potreban ne postoji, ostaje
mogućnost drajvera iz izvornog ko-
da.

Instalacija drajvera iz izvor-


nog koda
Za razliku od binarnih paketa, da
bi drajver iz izvornog koda poradio
potrebno je uložiti malo više truda.
Na prvom mestu, instalacija nije za-
jednička za sve vrste modema kao
što je slučaj sa binarnim paketima,
već se razlikuje od vrste do vrste či-
pova, pa čak se postupak razlikuje i
kada je u pitanju isti čip ali različita
verzija kernela (recimo 2.4.x i 2.6.x).
Izvorni kod se distribuira u obliku
arhiva koje mogu imati različite eks-
tenzije i to: tar, tgz (iako se Slackwa-
re binarni paketi obeležavaju isto,
mogu se naći i arhive sa ovakvom
#dpkg -i ime_paketa.deb ekstenzijom), tar.gz, tar.bz2. Ove ar-
nakon koje će se na ekranu istpisati informacija o tome kako se i koli- hive je potrebno prvo raspakovati

Februar 2005 / GNUZILLA / 15


Hardver

što se postiže jednom od sledećih komandi (u zavisnosti od vrste pa- #ln -s /dev/537 /dev/modem
keta): ovom komadnom se pravi simboli-
#tar -zxvf ime_paketa.tar čki link ka modemu kako bi ga pro-
#tar -zxvf ime_paketa.tgz grami koji će ga koristiti lakše pro-
#tar -zxvf ime_paketa.tar.gz našli (obično je podrazumevana lo-
#tar -jxvf ime_paketa.tar.bz2 kacija koju programi za povezivanje
Kada se arhiva raspa- na internet kori-
kuje dobićete novi di- ste /dev/mo-
rektorijum koji sadrži dem).
izvorni kod drajvera i Ovo bi trebalo
komandom da bude
#cd novi_direktori- dovoljno da mo-
jum dem proradi i
treba preći u novi di- gotovo uvek je
rektorijum i obaviti ovaj postupak
ostatak posla. dovoljan ukoli-
Intel modemi su naj- ko klasičan
bolje podržani modemi kada je u pitanju GNU/Linux platforma. Svi postupak instalacije zakaže. Narav-
noviji čipovi ovog proizvođača imaju drajvere kako za 2.4 tako i za 2.6 no, ako vaš modem nije 537,
verzije Linux kernela. Pored toga, izuzetno su laki za instalaciju i ret- poslužite se analogijom sa prime-
ko kada je potrebno dodatno intervenisati posle instalacije drajvera da rom. 537 zamenite modelom vašeg
bi modem radio. Pošto ste raspakovali arhivu sa drajverom i prešli u modema kao što je već objašnjeno.
novi direktorijum potrebno je izvršiti tri komande da bi drajver bio is- Link za preuzimanje drajvera
kompajliran (preveden) i instaliran, a to su: možete naći kako na www.linmo-
#make clean dems.org tako i na Intelovim strani-
#make IME_ČIPA cama posvećenim preuzimanju
#make install drajvera.
Lakoća instalacije Intel drajvera leži u tome što se postupaci instalacije
svih modela razlikuju samo u jednom segmentu, a to je komanda za Kada su u pitanju Lucent modemi
prevođenje koda koja zavisi od modela čipa. Prema tome, pri instala- sitaucija je malo komplikovanija. Na
ciji svog drajvera ćete IME_ČIPA zameniti odgovarajućon oznakom prvi pogled stvari ne izgledaju tako
čipa koji poseduje vaš modem, i to izgleda ovako: jer postoji jedan model Lucent mo-
#make 536 (za modeme za 536 ili 536EP čipom) dema (Lucent LT) koji uspešno radi
#make 537 (za modeme za 537 ili 537EP čipom) na GNU/Linux sistemima (i ne
#make ham (za modeme za ham čipom) samo Linuxima), ali je instalacija
Ovo će u 99% slučajeva biti dovoljno da modem proradi jer će sve po- drajvera malo kompikovanjija nego
trebne operacije (pravljenje device nod-a - uređaja koji predstavlja vaš kada su u pitanju Intel modemi.
modem i podešavanje startovanja modula pri podizanju sistema). Drajver za 2.4 kernele je dobro
Ukoliko se dogodi neka nepredviđena okolnost i modem ne proradi, urađen, postupak instalacije obavlja
uvek ostaje mogućnost da se stvar uradi “ručno”. Naravno, potrebno sve što je potrebno dok se to ne
je da se drajver uspešno iskompajlira (znači make 537 npr.), a ako može reći za drajver namenjen 2.6
skripta ne instalira drajver kako treba treba probati sledeće: kernelu.
#insmod -f Intel537.o (Intel537.ko za 2.6 verzije kernela) Ako još uvek koristite 2.4 kernel,
Ovom komandom se instalira modul dobijen kompajliranjem koda, nećete imati problema prilikom
#rm /dev/537 instalacije drajvera. Potrebno je sve-
uklanja se device nod 537 ako postoji, ga tri koraka da bi drajver bio insta-
#mknod /dev/537 c 240 1 liran i to su:
mknod komanda će napraviti novi device nod za vaš modem (240 je #./build_module
podrazumevana vrednost, a ako ne proradi podledati #./ltinst2
/proc/devices gde će pisati koji broj odgovara vašem modemu) , #./autoload

16 / GNUZILLA / Februar 2005


Hardver

Ukoliko se ove tri komande uspešno izvrše, modem je spreman za prilikom editovanja fajla Makefile, a
upotrebu. Nakon instalacije je preporučljivo pogedati dobija se komandom uname -r. Da-
/etc/modules.conf fajl u kom bi trebalo da postoje sledeće tri linije: kle, komande koje treba izvršiti su
alias char-major-62 lt_serial sledeće:
alias /dev/tts/LT0 lt_serial #mkdir /
alias /dev/modem lt_serial lib/modules/ime_vašeg_kerne-
Ove linije obezbeđuju da se modul učita pri podizanju sistema, ako ne la/other
postoje unesite ih. Ova verzija drajvera radi veoma pouzdano i ne bi ovom komandom se pravi direkto-
trebalo da prouzrokuje probleme. Ovaj postupak za instalaciju nije je- rijum other u
dini, već je na početku instalacije moguće kreirati odgovarajući .rpm /lib/modules/ime_vašeg_kerne-
ili .deb paket komandom la/ direktorijumu,
#./build_deb ili #cp ltmodem.ko /
#./build_rpm lib/modules/ime_vašeg_kerne-
i instalirati prema upustvu za instalaciju drajvera iz binarnih paketa. la/other
Ukoliko koristite 2.6 kernel, trebaće malo više (ali ne i previše) truda #cp ltserial.ko /
da biste instalirali drajver. Kada se pojavio Linux kernel u 2.6 verziji, lib/modules/ime_vašeg_kerne-
pokušaji osposobljavanja Linucent LT modema su se svodili na la/other
podršku 2.6 kernela da učita module namenjene 2.4 kernelima, što a ovim komandama se kopiraju mo-
nije davalo korisne rezultate. Na sreću, ubrzo su se pojavili drajveri duli u direktorijum iz kog će se uči-
koji su omogućavali korišćenje ovog modema na 2.6 kernelima. Jedina tavati.
stvar koja nije bila tako dobra je instalacija. Naravno, iskusnijim kori- Nakon što su moduli smešteni na
snicima ovo nije problem, ali onima sa malo manje znanja i iskustva svoje mesto, treba napraviti device
može biti. nod za vaš modem komandom
Na adresi http://linmodems.technion.ac.il/packa- #mknod --mode=0640 /
ges/ltmodem/kernel-2.6/ mogu se pronaći arhive sa drajverima dev/ttyLT0 c 62 64
među kojima se najbolje pokazao izvorni kod drajvera zapakovan u Potrebno je podesiti da dozvole
arhivu sa imenom ltmodem-2.6-alk-6.tar.bz2. Prvi korak u instalaciji za /dev/ttyLT0 budu identične do-
ovog drajvera predstavlja zvolama fajla /dev/ttyS0, što se
kompajliranje modula. U može uraditi uz pomoć Konquerora
nekim ranijim verzijama ili Nautilusa, u tabu premissions,
drajvera je potrebno da properties prozora koji se dobija od-
znate koju verziju kernela abirom istoimene opcije u meniju
imate na sistemu, što je koji se dobija klikom desnog tastera
moguće saznati komandom miša na fajl. Poželjno je napraviti
#uname -r link ka modemu komandom
Nakon toga, potrebno je editovati fajl pod imenom Makefile u kom #ln -s /dev/ttyLT0 \
ćete pri počektu naići na liniju: /dev/modem
KERNEL_DIR := /usr/src/linux-2.6/ Ostalo je da se moduli učitaju i
Umesto dela linux-2.6.6 u ovoj liniji treba uneti informaciju o vašem obezbedi njihovo učitavanje prili-
kernelu, odnosno ono što ste dobili kada ste otkucali komandu uname kom podizanja sistema. Moduli se
-r i sačuvati promene. Nakon što je Makefile editovan, treba izvršiti učitavaju komandom
komandu
GNUzilla

#make
da bi ste iskompajlirali module potrebne za rad vašeg modema. Kada
je verzija drajvera koja je pomenuta u pitanju (ltmodem-2.6-alk-
6.tar.bz2), nije potrebno editovati Makefile jer je problem rešen na bo-
lji način, tako da sada skripta sama pronalazi putanju ka izvornom
kodu kernela. Pošto se komapjliranje završi, treba prekopirati module
ltmodem.ko i ltserial.ko u /lib/modules/ime_vašeg_kernela/other
direktorijum. Naravno, ime_vašeg_kernela je isto ono što je upisano

Februar 2005 / GNUZILLA / 17


Hardver

alias /dev/modem ltserial burna, dok se na internetu mogu


alias char-major-62 ltserial pronaći zakrpe koje limitirane draj-
alias /dev/ttyLT0 ltserial vere osposobljavaju da rade punom
Ovi falovi su različito raspoređeni u zavisnosti od distribucije. Putanje snagom. Na Linuxant sajtu se može
na kojime treba potražiti ove fajlove su /etc ili /lib/modules. Kao mo- videti da se plaćanjem licence dobi-
gućnost postoji editovanje fajla /etc/modules u koji treba uneti ltseri- ja aktivacioni kod koji je namenjen
al. Konsultujte forume i diskusione grupe namenjene distribuciji koju jednom modemu, tako da je jasno je
koristite da biste znali koji fajl treba da editujete i gde se on nalazi. da korišćenje zakrpa koje ograniče-
Ka što je rečeno na početku, instalacija ovog drajvera za 2.6 kernel nim verzijama omogućavaju da
nije tako jednostavna, ali bi sada trebalo da bude daleko jasnije šta i rade kao neograničene predstavlja
kako treba uraditi ne bi li vaš LT radio na 2.6 kernelu. nelegalan čin tako da se nećemo ba-
viti tim postupkom. Postoji beta
Connexant modemi ne zaostaju po kvalitetu za Intel ili Lucent mo- verzija drajvera namenjena 2.4 ker-
demima. Ovi modemi su veoma dugo prisutni na tržištu, naročito ako nelima, koja se pokazala veoma po-

18 / GNUZILLA / Februar 2005


Hardver

uzdanom, ali za 2.6 kernele se mora koristiti finalna verzija, odnosno sistemu. Prvi način predstavlja pre-
treba platiti 15 dolara za surf na 56K. GNU filozofija je zasnovana na uzimanje binarnog paketa sa eks-
slobodi, što znači da je bitno da softver bude slobodan (ali ne i uvek tenzijom .tbz i instalaciju koma-
besplatan), a čitajući licencu prilikom preuzimanja drajvera jasno se ndom
daje do znanja korisniku da su ovi drajveri sve, samo nisu slobodni, a #pkg_add ltmodem-1.4.tbz
još se i plaćaju. Već viđeno, ali ne na GNU/Linuxu. dok drugi način predstavlja preuzi-
Instalacija je veoma laka i svodi se dve komande od kojih je prva za- manje izvornog koda drajvera sa
jednička za sve modele i glasi: FreeBSD servera. Ovakav drajver se
#make install instalira na sledeći način:
a druga zavisi od tipa modema. #cp ltmodem-1.4.tar.gz
#hcfpciconfig /usr/ports/distfiles
će obaviti ostatak posla oko instalacije i podešavanja modema ukoliko #cd /usr/ports/comms/ltmdm
je on HCF model, dok je za HSF model potrebno otkucati komandu #make install clean
#hsfpciconfig Naravno, da biste instalirali novi,
koja će završiti posao kod ovog modela. Ako posedujete USB eksterni teba prvo deinstalirati stari drajver
model modema, umesto prethodnih komandi potebna je jedna od ove što se može uraditi pozivanjem
dve u zavisnosti od modela: sistemskoog instalacionog progra-
#hcfusbconfig ma komandom
#hsfusbconfig #sysinstall
Pošto je modem instaliran i konfigurisan može mu se pristupiti na U trenutku pisanja teksta LT draj-
lokaciji /dev/ttySHCF0 (/dev/ttySHCFUSB0 za USB modele) ili / ver postoji u verziji 1.4.
dev/ttySHSF0 (/dev/ttySHSFUSB0 za USB modele), u zavisnosti od Surfovanje internetom na FreeB-
modela modema, naravno. Može bili veoma korisno napraviti link ko- SD-ju uz pomoć Lucent LT modema
mandom je krajnje komforno, a veza je stabil-
#ln -s /dev/ttySHCF0 /dev/modem na što pokazuje da je drajver veoma
#ln -s /dev/ttySHCFUSB0 /dev/modem dobro razvijen i pouzdan.
#ln -s /dev/ttySHCF0 /dev/modem
#ln -s /dev/ttySHCFUSB0 /dev/modem Na kraju
radi lakšeg pronalaženja modema od strane programa za povezibanje Svi drajveri predstavljeni u ovom
na internet, opet u zavisnosti od modela modema. takstu se instaliraju iz konzole sa
Ovo je dovoljno da vaš Connexant proradi na 14.4Kbps, a može li root privilegijama. Znak # u prime-
brže? Na vama je da odlučite. rima komandi ne treba kucati jer on
predstavlja indikator root dozvola
FreeBSD... (kada ste običan korisnik pisaće $).
Ceo tekst, osim ovog dela, se tiče GNU/Linux sistema jer su softver- Kao što je pomenuto na početku,
ski modemi najbolje podržani na njima, ako se izuzme operativni ukoliko instalirate drajver iz izvor-
sistem zbog kog oni i jesu takvi kakvi su. FreeBSD je po zastupljenosti nog koda, biće vam neophodan iz-
na drugom mestu među Unixolokim sistemima, ali su softverski mo- vorni kod kernela koji se na većini
demi daleko manje zastupljeni na njemu nego na GNU/Linuxu. distribucija instalira sa instalacionih
Tačnije, samo jedan model softverskih modema je podržan kada je u diskova. Potrebno je u menadžeru
pitanju FreeBSD, a to je Lucent LT. Drajver za ovaj modem je veoma paketa pretražiti pakete koji u nazi-
dobro razvijen, a od 5.3 verzije FreeBSD-a je uvršten u grupu paketa vu sadrže reč kernel-source i instali-
koji se nalaze na instalacionim disku, tako da se može instalirati pri rati odgovarajući, a koji je odgova-
instalaciji sistema. No, ta verzija drajvera može prouzrokovati od- rajući znaćete komandom uname -r,
ređene probleme u kernelu (kernel trap 12) tako da je treba koristiti jer će paket koji bude pronađen sa-
samo za preuzimanje novije verzije. Kada se drajver instalira modemu držati oznaku dobijenu ovom ko-
možete pristupiti na lokaciji /dev/cual0, ali je bitno napomenuti da mandom u svom imenu. Grafičkih
kppp neće raditi, već je konekciju potrebno obaviti pomoću ppp ko- frontenda za instaliranje drajvera
mandne linije. Preuzimanje, odnosno instalacija nove verzije drajvera još uvek nema, osim kada su u pita-
se može obaviti na dva načina, u duhu instalacije softvera na FreeBSD nju drajveri u binarnom odliku koji

Februar 2005 / GNUZILLA / 19


Hardver

se mogu instalirati gra-


fičkim alatima karakeri-
stičnim za određene di-
stribucije. Veoma je bi-
tno, zato to ponovo na-
glašavam, pročitati RE-
ADME ili INSTALL faj-
love u direktorijumu
drajvera jer se u njima
obavezno nalaze sve in-
formacije koje mogu biti
potrebne.

Kao što se može videti, softverski modemi su prilično dobro podrža-


ni kada je u pitanju GNU/Linux platforma. Pojedine distribucije pose-
duju prekompajlirane drajvere koji se mogu instalirati pri instalaciji
sistema, dok druge pokušavaju same da razviju drajver za svoje kori-
snike. Primer toga predstavlja Ubuntu koji poseduje drajver za Lucent
LT modem prekompajliran za podrazumevani kernel na ovoj distri-
buciji, tako da korisnici ove distribucije ne moraju da se zamaraju re-
lativno komplikovanom instalacijom drajvera iz izvornog koda. Soft-
verski modemi su slaba tačka GNU/Linux sistema iz prostog razloga
što postoje na većini konfiguracija, kako na onima koje već koriste
GNU/Linux, tako i na potencijalnim Linux mašinama. Stoga, svaki
napor je dragocen jer što više hardvera treba da radi na Linux-u i to
kako treba.
U svakom slučaju, uvek su tu hardverski modemi čija se instalacije
svodi na priključivanje kabla u računar. Dakle, cena koja ne prelazi
deset eura i instalacija drajvera ili nekoliko desetina eura, kabl koji
treba ubaciti u odgovarajući port i bolja veza, presudite sami.

~Ivan Jelić

20 / GNUZILLA / Februar 2005


Radionica

Gimp tip

Gimp i crvene oči


Od ovog broja u časopis uvodimo novu rubriku. Nadamo se da će trikovi i korisni saveti koji se nađu
ovde biti od pomoći

Uklanjanje “crvenih očiju” sa fotografija te izvorni kod plugina redeye sa adrese:


(red-eye remove) http://registry.gimp.org/plugin?id=4212. Go-
GIMP (GNU Image Manipulation Program) je do skora tovo. Sada treba da kompajliramo plugin. Ud-
smatran ameterskim poduhvatom grupe ljudi iz Open So- jite u direktorijum u kome vam se nalazi ski-
urcea i najčešće je bio potiskivan od strane nut izvorni kod (redeye.c) i pokrenite sledeću
nekih nadaleko čuvenijih programa kao što komandu
su Adobe Photoshop, Macromedia Fi- # gimptool-2.0 --build redeye.c
reworks, Photo Paint... Razloga za ovako Dobićete binarni kod plugina koj se zove re-
nešto zaista nama jer je GIMP prerasao u jedan kompletan deye. Kopirajte ga u $HOME/.gimp-2.x/plug-
alat za manipulaciju fotografijama i verno služi kako ama- ins, odnosno za gimp 2.2 verziju:
terima tako i majstorima web dizajna. Da je to zaista tako u # cp redeye $HOME/.gimp-2.2/plug-ins/
sledećih nekoliko brojeva časopisa pokušaću da vas uve- Pri sledećem pokretanju gimpa plugin će biti
dem u GIMP-ov svet i podelim sa vama par prostih trikova aktiviran
koji će vam zasigurno trebati.
Najnovije verzije GIMP-a uvek možete preuzeti sa Rad sa skriptom
http://www.gimp.org. Trenutno aktuelna verzija gimpa je Dakle, vaša slika izgleda kao prva prikazana
2.2.1. Na adresi http://gug.sunsite.dk (Gimp User Group) slika. Najlakši način za uklanjanje crvenih očiju
aktivan je i forum. Uputstva, tutoriali i knjige u štampanim
ili html verzijama mogu se naći na obe adrese.

Zamislite situaciju... je jednostavni odabir Auto Red Eye Remover.


Slikali ste neke ljude vašim digitalnim foto aparatom, do- U meniju koj se nalazi iznad fotografije odabe-
neli slike kući prebacili ih u kompjuter i otvorili. Razočara- rite Filters, Misc, Auto Red Eye Remover i plu-
nje je nastupilo kad ste shvatili da oči svetle na gotovo svim gin će sam obaviti zatatak. Rezultat se vidi na
slikama. Naravno da je sad tu Photoshop ili ACDSee lako drugoj slici.
biste ispravili slike, ali sta sad? Ukoliko želite da fino podesite stepen ukla-
njanja crvene boje bolje vam je da koristite Red
GIMP skripta za uklanje crvenih očiju Eye Remover opciju iz istog menija, treća sli-
Da biste uopšte ka je uradjena ovom opcijom tako što je skala
mogli da instali- nameštena na 8. Negativne vrednosti skale
rate bilo koj plu- neće bitno uticati na sliku dok će jako velike
gin za GIMP mo- vrednosti uništiti svaki tračak cvene boje na
rate imati i gim- celoj fotografiji.
povo plugin ra- Treći i najefika-
zvojno okruženje sniji način da uklo-
(GIMP plugin de- nite crvene oči je
velopment envi- prethodno sele-
ronment) koj ktovanje dela koj
obično dolazi uz želimo da “odcrve-
svaku distribuciju Linuxa pod nazi- nimo”. Da biste se-
vom libgimp-2.x-dev. Ukoliko je lektovali samo cr-
instaliran, moći ćete da pokrenete veni deo očiju naj-
# gimptool-2.x bolje je da koristice
Najpre je potrebno da skine- Ellipse Select alat-

Februar 2005 / GNUZILLA / 21


Radionica

ku . Jednostavno prevucite krug preko dela koj želite da


“odcrvenite”, odaberite meni Filters, Misc, Red Eye Re-
mover i pojaviće vam se skala koju možete da stavite na
maksimalnu pozitivnu vrednost. Rezultat je daleko bolji
nego prethodni (treće slika).

Uklanjanje crvenih očiji Dodge/Burn alatkom


Za one koji žele da uklone crvene oči bez prethodnog
instaliranja plugina može da posluži alatka koja je već inte-
grisana u GIMP. Otvorite sliku i malo je uvećajte da bi vam
bilo lakše da njom baratate. Odaberite Dodge/Burn alat
i podesite ga na sledeći način. Uzmite “veličinu četkice”
koja odgovara veličini crvenog dela oka, u polju gde vam
stoji Type Dogle/Burn alatke odaberite Burn, i u polju
Mode odaberite Midtones. Kao što je prikazano na slici, po-
trebno je isključiti zeleni (Green) i plavi (Blue) kanal boja,

tako da sa slike skidamo samo crvene tonove. Sada je-


dnostavno “crtajte” po onim mestima slike gde ima suviše
crvene boje i na kraju smanjite sliku rezultat je više nego
dobar. Na ovaj način je lako odstraniti i druge crvene fleke
od sunca koje se javljaju na vašim fotografijama.

~Miloš Popović

22 / GNUZILLA / Februar 2005


Radionica

Programski jezik za početnike ili profesionalce? Proširivost

Uvod u Piton (Python) Ukoliko je to potrebno moguće je


napisati program u C-u i onda ga
Guido van Rossum je tvorac ovog programskog jezika, a ime potiče kombinovati sa Pitonom.
iz serije BBC-ija “Monty Python's Flying Circus”. Velika biblioteka
Standardna biblioteka koja dolazi
ŠTA JE PITON? OBJEKTNO ORIJENTISANI, IINTERPRETIRANI PROGRAMSKI JEZIK VISOGOK sa Pitonom je poprilično velika.
NIVOA. PITON SA SOBOM DONOSI MOGUĆNOST POVEZIVANJA SA MNOGIM BIBIOTEKAMA, A Ovo se zove “batteries included”

POŠTO JE NAPISAN U C-U POSTOJI I MOGUĆNOST PROŠIRIVANJA U SAMOM C-U ILI C++. u filozofiji Pitona. Neke od najzna-

PORED SVEGA TOGA POSEDUJE VEOMA ČISTU SINTAKSU KOJU JE VEOMA LAKO NAUČITI, TE čajnijih su Python Imaging Li-
KAO TAKAV JE PRAVI IZBOR ZA POČETAK PROGRAMIRANJA.. brary, VTK, MayaVi, Numeric
Python, ScientificPython.

Sa Pitonom ste u mogućnosti da pišete proste skripte ili razvijate složene Kratko poređenje sa dru-
programe ili programske pakete. Sa njime će te lako razvijati Web servi- gim jezicima
se, kontrolisati procese, obrađivati tekst ili XML dokumente. Piton pose-
duje sve internet protokole (HTTP, FTP, SMTP, POP ...) i omogućava Perl
pristup raznim bazama podataka (DB/2, MySQL, DCOraqkle, DCOra- Perl je još jedan slobodan i veoma
kle2 i mnogim drugim). Za izradu Grafičkog korisničkog interfejsa moćan programski jezik. Piton i
(GUI) najčešće se koriste wxPython, PyQT i PyGTK, pored njih postoji i Perl imaju neke sličnosti (Unix
podrška za TK, Delphi i mnoge druge. skripte itd.), ali imaju i neke razli-
ke. Ako ste nekada videli ili
Osnovne odlike možda pokušali napisati Perl i Pi-
Jednostavnost ton skriptu razlika bi vam se sama
Piton poseduje jednostavnu sintaksu. Svako ko zna Englaski jezik će pokazala. Takođe se može pronaći
sigurno shvatiti veći deo programa samo čitanjem. mišljenje da je Perl prava
Lakoća učenja stvar za iskusne programe-
Možda stvar diretno povezana sa
Python is a freely available,
re koji su probali skoro sve
predhodnom, ali takođe veoma bi- very high level, interpreted i uvek im je nešto smetalo
tna za omasovljavanje. language developed by Guido ili nedostajalo, dok je Piton
Slobodan i otvorenog koda van Rossum. It combines a idealan za početnike koji
Da, Piton je 100 % slobodan, što je clear syntax with powerful (but žele veoma lako da savla-
presvega bitno za njegov razvoj. daju objekte i objektno ori-
optional) object-oriented
Piton je jezik visokog nivoa (hi- jentisano programiranje.
ght-level) semantics. Programi napisani u Pitonu
U jednom napisanom Piton progra- u odnosu na one napisane
mu nemorate da se bavite stvarima poput memorije koju on koristi. u Perlu su definitivno kraći, lakši
Portabilnost za pisanje i shvatanje. Značajna
Svojstvo koje proističe direktno iz trećeg, tako da postoji u verzijama za prednost koji Perl možda ima u
sve poznate operativne sisteme (Windows, MAC, i naravno GNU/Linux odnosu na Piton je biblioteka zva-
i Unix). Jedan te isti byte code se može pokrenuti na svim platformama. na “CPAN - the Comprehensive
Interpretirani Perl Archive Network” i kako joj
U ovom jeziku ne postoji poseban korak vezan za prevođenje, komplaci- samo ime kaže to je ogromna ko-
ju (compilation), nego se program izvršava direktno iz izvornog koda lekcija Perl modula. Jedan od
(source code). Piton često sam iz izvornog koda pravi takozvani byte co- glavnih razloga za ovo po mom
de. Ovim se dobija na brzini ali i jednostavnosti jer nemorate da brinete mišljenu to što je Perl mnogo više
oko stvari kao što su linkovanje nekih biblioteka itd. u upoterbi od Pitona.
Objektno orijentisani Java, C++
U Pitonu je moguće i takozvano proceduralno, funkcionalno i objektno Generalno Piton programi bi tre-
orijentisano programiranje. U Pitonu sve je objekat. bali biti sporiji od onih razvijenih

Januar 2005 / GNUZILLA / 23


Radionica

u Javi (pominje se negde 3-5 puta) ali je potrebno značajno manje vreme- from imemodula import *
na za razvoj. Ta razlika se može pripisati razlici novoa, naprimer Piton Sve što je potrebno je da se modul
programeri nemoraju da se bave deklaracijom tipova i argumenata pro- nalazi na određenom mestu, da ga
menljivih. Uzmimo za primer računanje izraza a+b, Piton mora prvo Piton može pronaći. To može biti
proveriti objekat a i b i utvrditi njihov tip, koji nije poznat u vreme iz- trenutni direktorijum, PYTHON-
vršavanja. Za C++ važi otprilike sve gore rečeno samo što je razlika u br- PATH (/usr/lib/python2.3 ...) ili
zini sada 5-10 puta, ali takođe bitna stvar koja se pominje je da ono što instalacioni direktorijum.
Piton programeri urade za dva meseca C++ programerima je potrebno Za detaljnije informacije svakako
oko godinu dana. Svakako ovi programski jezici zajedno čine najbolju treba pogledati “Python Library
kombinaciju. Reference”
Da se vratimo sa pitanje sa počet-
Piton u upotrebi ka da li je Piton za početnike ili
profesionalce? Apsolutno fleksibi-
Stabilnost lan programski jezik koji podje-
Možda je razumno postaviti pitanje stabilnosti, Koliko je Piton stabilan? dnako mogu koristiti i jedni i dru-
Sa sigurnošću se može reči da je veoma stabilan, nova stabilna verzija gi. Početnici koji žele da nauče
izlazi na svakih 6-18 meseci i ovakav trend će se nastaviti i u budoćnosti. programiranje ali i profesionalci
Koliko se Piton koristi? koji žele brzo da razvijaju aplika-
Na to pitanje je teško dati odgovor, jer je programski jezik potpuno slo- cije.
bodan i može se preuzeti sa različitih lokacija. Takođe svaka GNU/Li-
nuks distribucija dolazi sa nekom verzijom Pitona, a i mnogo stvari je Korisna adresa
napisano u ovom jeziku. Čuveni RedHat instaler (Anaconda) je u potu- www.python.org
nosti napisan u Pitonu, a mnoge distribucije koriste ovaj, doduše malo ~ Srđan Anđelković
izmenjeni ili ne instaler. Pomenuo bih još samo i Bleder projekat.
Nadogradnja
Da, moguća je nadogradnja stare verzije Pitona novom. Počev od verzije
2.3 uključen je paket PySDDB, kao zamena za stari bsddb modul. Zbog
te zamene procedura nadogradnje 2.2 verzije 2.3 je nešto kompilkovanija
ali nije teška. Zajedno sa Pitonom 2.3 dolaze dve skripte db2pickle.py i
picle2db.py, one se nalaze u Tools/scripts direktorijumu. Sa njima
možete konvertovati vaše stare fajlove u novi format, na sledeći način
python2.2 <putanjado>/db2pickle.py database.db database.pck
sada treba preimenovati na sledeći način
mv database.db olddatabase.db
i na kraju
python2.3 <putanjado>/pickle2db.py database.bd database.pck
Kao što se vidi tačna komanda se razlikuje, odnosno može se razlikovati
u zavisnosti od instalacije Pitona.
Moduli
Moduli se koriste onda kada ne želite da pišete neke funkcije više puta,
odnosno kada se neke funkcije ponavljaju na više različitih mesta. Mo-
dul je u suštini datoteka sa ekstenzijom .py (datoteka.py), koji sadrži de-
vinisane funkcje. Modul možete koristiti u nekom drugom modulu ili
programu, sve što je potrebno je samo da ga pozovete. Za ovo u Pitonu
postoji više načina:
import ime_modula
primetite da nema ekstenzije. Tada neku funkciju u tom modulu poziva-
te na sledeći način:
ime_modula.ime_funkcije
drugi način za pozivanje modula je

24 / GNUZILLA / Januar 2005


Radionica

Radionica

Srebrna lisica
Kako prilagoditi izgled Firefox pretraživača

TOKOM ISTORIJE, MNOGI LJUDI SU POKUŠAVALI DA LOVE NORMALNE LISICE, DA (Cascade Style Sheet). Ovaj princip
IM FARBAJU KRZNO U BOJU SREBRNE LISICE I DA IH TAKVE PRODAJU PO DESET možete koristiti i za menjanje izgle-
PUTA VEĆOJ CENI. MI ĆEMO SE U OVOJ RADIONICI BAVITI SLIČNIM POSLOM, da Thunderbird klijenta za e-poštu
SAMO ŠTO ĆE NAM NAGRADA BITI LIČNA SATISFAKCIJA, A NE NOVAC. samo što, u tom slučaju, morate sa
interneta preuzeti DOM Inspector
Ekstenzije proširenje za Thunderbird.
Jedna od najlepših strana Firefox pretraživača je mogućnost da ga Svaki element u oba programa
promenite u toj meri da ga ni rođena majka (Mozilla fondacija) ne bi podleže zakonima koje je propisao
prepoznala. Na početku ovog teksta ćemo se pozabaviti nekim od W3C (www.w3c.org) u CSS sta-
interesantnijih ekstenzija koje se tiču izmene samog izgleda programa. ndardu. To znači da skoro svakom
elementu grafičkog okruženja mo-
Compact menu žete menjati font, pozadinu, okvir,
Pomoću ovog proširenja ćete margine... Ovde ćemo se pozabaviti
moći da sklonite kompletan meni nekim sitnijim trikovima tek da
sistem programa i da ga “stavite” vidite koji je princip, pa da možete
pod jedno jedino dugme. Imate kasnije sami da eksperimentišete.
mogućnost biranja da li želite da to
dugme bude dugme sa stilizova- Pozadina
nom sličicom ajkule ili da na njemu Prvo ovtvorite fajl userChrome.css
piše samo “Menu”. koji se nalazi u chrome poddirekto-
Ako niste zadovoljni sličicom aj- rijumu vašeg profila (za Firefox
kule, otvorite fajl compact.jar (Java ~/.mozilla/firefox/ime, i ~/.thun-
Archive je zapravo ZIP arhiva sa derbird/ime za Thunderbird) ili ga
promenjenom ekstenzijom) i zamenite fajl compact.png koji se nalazi kreirajte ako on ne postoji.
u skin/classic/compact/ direktorijumu arhive. Dodajte sledeće redove u njega:

Stop/Reload toolbar,
Zbog čega bi ste imali dva dugmeta – jedno za Stop, a jedno za Relo- menubar,
ad – kad možete imati samo jedno kao što je to, na primer, u Safari toolbar#toolbar-menubar,
pretraživaču za MacOS X. Dok se neka strana učitava, prikazivaće se statusbar#status-bar,
dugme Stop, a u suprotnom Reload. Potrebno je napomenuti da ova hbox#browser,
ekstenzija ne izgleda lepo kad se koristi neka tema za Firefox koja je #sidebar-splitter,
ne podržava. Sa podrazumevanom temom sve radi kao podmazano. #sidebar-box {
background-image: \
Tabbrowser Extensions url("bkg.png") !important;
Ovo je jedno od najbolje urađenih proširenja pravljenih za Lisicu border: 0px solid black \
koje vam, pored ostalog, dodaje dugme za zatvaranje na svaki tab u !important;
programu. Ako vam nisu potrebne sve mogućnosti ove ekstenzije, a }
želite malo “x” dugme u desnom ćošku svakog taba, skinite Tab X
proširenje. bkg.png zamenite putanjom do
fajla koji želite da bude prikazan u
CSS pozadini.
Sada kad smo napravili nekoliko hirurških zahvata i sabili ceo meni Obratite pažnju na to da se pro-
i paletu sa alatkama (toolbar) u jedan red, možemo da počnemo sa mene neće videti u programu dok
farbanjem krzna. Za farbanje će nam biti potrebno malo znanja CSS-a ga ne restartujete.

Februar 2005 / GNUZILLA / 25


Radionica

Margine
Ako želite da sklonite prazan prostor između dugmića u paleti sa
alatkama, u userChrome.css fajl unesite sledeće CSS naredbe:
toolbarbutton {
padding: 0px !important;
margin: 0px !important;
}

Naprednija podešavanja
Ako znate CSS, onda se ne morate zaustaviti na ovim, i na trikovima
na koje naletite na internetu. Možete uraditi šta god poželite. Princip
rada ću pokazati na sle-
dećem primeru – dodaćemo
okvir onoj maloj sličici koja
se animira kada se učitava
stranica a koja se zove trober
(throbber).
Prvi korak svake izmene se
sastoji u tome da nađete ele-
ment kome želite da prome-
nite osobine. To možete ura-
diti na sledeći način:
Pokrenite DOM Inspektora (Menu > Tools > DOM Inspector, ili
kombinacijom tastera Ctrl+Shift+I). U inspektoru idite na File > In-
spect a Window i tu odaberite prozor na kome se trober nalazi.
Sada idite na Search > Select Element by Click i posle toga pređite u
glavni prozor i kliknite na trober. U DOM Inspektoru će biti obeležen
traženi element – button čvor sa id atributom “navigator-throbber”.
Kliknite desnim dugmetom miša na tabelu sa kolonama nodeName i
nodeValue, pa kad se otvori meni, kliknite na Insert. Bićete upitani da
unesete ime atributa koji želite da dodate. Tu unesite “style” (bez zna-
kova navoda). Sada ćete biti u prilici da unesete CSS osobine za taj
element. U našem ćemo tu ukucati “border: 1px solid black;”. Stavite
OK i pogledajte vaš glavni prozor.
Ništa se nije desilo!? Nije. To znači da smo naleteli na element kome
ne možemo da promenimo osobine. Sada dolazi na red tehnika po-
kušaja i promašaja – odabraćemo u DOM drvetu element koji je
“otac” našeg elementa – to će biti toolbaritem čvor sa id atributom
“throbber-box”. Probaćemo prethodni postupak na njemu – stavljamo
style=“border: 1px solid black;” idemo na OK. Eto, dobili smo punu
crnu ivicu debljine 1px (piksel).
Sada je došlo na red da te izmene zapamtimo. Otvorite userChro-
me.css i dodajte sledeći red:
toolbaritem#throbber-box { border: 1px solid black; }

Za one koji ne znaju CSS, reč koja se nalazi ispred “tarabe” označava
ime čvora u DOM drvetu, a reč koja je iza označava vrednost id atri-
buta čvora na koji primenjujemo stil koji se nalazi između vitičastih
zagrada.
~ Ivan Čukić

26 / GNUZILLA / Februar 2005


Pravna kinika

Čuvanje Slobode pravnim sredstvima

Legum servi sumus ut liberi esse possimus*


– deo 1.
Moramo li biti potčinjeni zakonima kako bi očuvali Slobodu?

GNU je iz ideje u stvarnost pretočio slobodu. Ipak, jednom jativa za Otvoreni kod (Open So-
ostvarena sloboda se mora štititi svim sredstvima jer tek tako urce Inititative - OSI), jer ćemo
sva njena suština dolazi do izražaja a trud velikog broja dobrih se u priči o licencama jako često
ljudi ne gubi na smislu. vraćati na njih. Neka mi svi
poštovaoci GNU ideje oproste
GNUUUU! ako smatraju da ih ne treba po-
Svoj logični početak ova priča ima u upoznavanju sa GNU minjati - sa pravne strane su oni
projektom. Ulaziti u kompletnu analizu istorijske pozadine bi jako važni, a ovo je ipak pravna
nas odvelo u stranputicu te ću se ovde samo na kratko zadrža- strana slobode.
ti na tome šta je to GNU i kako je nastao. Ozbiljnije razmatranje Suštinska razlika između ova
ostavljam nekom drugom za neku drugu priliku. dva pokreta leži u pogledu na
Cilj GNU (GNU's Not Unix) projekta je razvijanje slobodnog vrednosti i u pogledu na svet.
a Unix kompatibilnog softvera tj. operativnog sistema a svoju Za ljude u OSI-ju je pitanje soft-
istoriju započinje davne 1983. vera otvorenog koda praktično
pitanje, a ne etičko. Jednom je
Mnogi ljudi pogrešno shvataju reč sloboda u kontekstu Slobo- neko to lepo postavio:"Otvoreni
dnog softvera. Ako kažemo "sloboda" to ne znači i besplatno. kod je metodologija razvoja, Slo-
Za svoj Slobodni softver bodni softver je društveni po-
vi možete ali i ne morate *“Da bi smo bili slobodni kret". Dakle, suštinska razlika
platiti neku cenu. U sva- moramo biti potčinjeni leži u tome kako ko gleda na
kom slučaju su vam na zakonima” svet. Dok GNU pokret otvoreno
raspolaganju tri(četiri) Latinska izreka govori o etici i slobodi, Otvoreni
različite slobode: kod je tiši na tu temu jer smatra
1) Sloboda da softver kopirate i delite sa prijateljima ili sara- da ća na taj način biti prihvatlji-
dnicima. viji u poslovnom svetu. A
2) Sloboda da program menjate po sopstvenoj volji i da imate poslovni svet ne voli previše pri-
uvid u izvorni kod softvera. če o slobodi, moralu i etici. Neko
3) Sloboda da jednom izmenjen softver distribuirate i na taj na- će reći da se ne živi od ideja već
čin pomognete razvoju zajednice. od para. Tačno. Određena količi-
na tihog rada može da koristi
Do početka devedesetih je ostvaren osnovni cilj - razviti zajednici da bude bliža poslov-
UNIX sličan operativni sistem. Do tog trena su sve kompon- nim saradnicima, ali niko ne
ente, sem kernela, bile razvijene. Onda je stvoren Linux, sme da odstranjuje slobodu da
slobodni kernel, i označio početak prave GNU revolucije. se o slobodi govori i da se ona
promoviše.
Ipak, GNU nije ograničen samo na operativne sisteme. Kao Ova dva pokreta se razlikuju u
što je već navedeno, cilj jese slobodan softver u svakom obliku. osnovnim principima što ih ne
Slobodan softvera je praktično ograničena samo jednim - za- čini zaraćenim taborima. Zami-
konima o patentima koji zabranjuju slobodu istog time što slite ih kao dva politička tabora
sputavaju 3(4) osnovne slobode koje promoviše GNU. unutar jedne te iste zajednice.
Baš zbog toga se neću libiti da u
Strah od Slobode! ovoj priči pominjem i koristim
Ne bi bilo pošteno kada u ovoj priči ne bi bila pomenuta Inici- informacije koje nosi pokret

Februar 2005 / GNUZILLA / 27


Pravna kinika

Otvorenog koda. Ipak, određena pravila vezana


U nas se mnogo toga ne shvata ozbiljno. Na našu žalost, ni za distribuciju mogu postojati
ideja slobodnog softvera nije baš najbolje shvaćena. Puno ljudi dokle god nisu u suprotnosti sa
govori loše stvari o Slobodnom softveru a opet, svakog dana centranlnim slobodama. Primer
upotrebni niz aplikacija koje podležu nekoj od licenca proizaš- za to je tzv. "Copyleft" koji
lih iz Opšte javne licence (GPL). Ironija svega toga je što o tom podrazumeva da pri distribuciji
softveru pričaju sve najbolje. Čini se da kod nas ni ideja softvera ne smete ni na koji
slobode nije najbolje shvaćena, a opet svi o njoj govore i svi nachin ogranichiti centralne
traže neku slobodu. Dajte im je na dlanu i oni je neće videti. slobode korisnicima.
Iza same ideje o Slobodnom softveru stoje sjajna pravna
rešenja za očuvanje te iste slobode. Osnovno i, za nas, najvažn- Slobodan saoftver ne znači i
ije jeste ono koje u sebi nosi Opšta javna licenca (GPL). De- nekomercijalan softver. On mora
taljnu proču o njoj ostavljam za sledeće brojeve. biti dostupan i za komercijalnu
upotrebu, komercijalni razvoj i
Definition libertatis komercijalnu distribuciju.
Definisanje slobodnog softvera je pitanje slobode korisnika da
upotrebljavaju, kopiraju, distribuiraju, proučavaju, menjaju i Pravila o tome kako za-
poboljšavaju softver. Tačnije, odnosi se na četiri slobode: pakovati prepravljeni softver
0. Sloboda da se program koristi u bilo koje svrhe. mogu postojati dokle god ne
1. Sloboda da se program prouči i prilagodi sopstvenim potre- krše četiri centralna pravila. Pri
bama. Pristup ižvornom kodu je preduslov toga. izradi licence autor takođe može
2. Sloboda da se disribuiraju kopije kako bi se pomoglo žaje- zahtevati da dobije kopiju
dnici. softvera koji ste menjali.
3. Sloboda da se softver unapredi, da se poboljšanja izdaju
kako bi se doprinelo zajednici. Pristup izvornom kodu je Kada govorite o slobodnom
preduslov toga. softveru, najbolje je da izbegnete
priče o "davanju" ili "poklanja-
Program je deo Slobodnog softvera ako korisnici imaju sve nju" svog softvera besplatno.
navedene slobode. Prema tome, postoji sloboda distribuiranja Kao što vidite, nema tu nika-
kopija sa ili bez prepravki, besplatno ili uz naknadu, bilo kome kvog odricanja od svog dela ili
i bilo gde. besplatnog rada. Svoje delo štiti-
te baš tom slobodom koju posta-
Sloboda pravljenja prepravki na softveru podrazumeva da ste vlja GNU definicija. Vaše ime i
apsolutno slobodni da program prilagođavate sopstvenim po- delo, bez obzira na izmenu dela
trebama, a da te prepravke ne objavljujete. Ako ih, pak, ob- i njegovu upotrebu nisu ne sme-
javite, o tome ne morate nikog posebno obavestiti. Ova sloboda ju biti zanemarena, što OJL jasno
podrzumeva da za prepravke ne morate tražiti dozvolu. i precizira. Ozbiljna pravna re-
gulativa stvorena oko definicije
Sloboda upotrebe programa podrazumeva da bilo koja osoba Slobodnog softvera vam omogu-
i bilo koja organizacija imaju pravo da softver koriste na bilo ćava da svoje delo učinite slobo-
kom kompjuteru, za bilo koji posao bez obaveze da stupaju u dnim a opet zaštićenim.
kontakt sa tvorcem softvera.
Kao shto je već napomenuto,
Sloboda redistribucije pordrazumeva pravo da se binarne kao ova sloboda se ne odnosi samo
i izvršne kopije programa dele. Ovo svakako uključuje i izvorni na softver već pokriva svaki do-
kod programa. men ljudskog stvaralaštva. To će
vam postajati jasnije kako bu-
Sve ovo ne bi imalo smisla da nema pristupa izvornom kodu demo prolazili kroz GNU svet.
softvera. Dakle, taj pristup je preduslov Slobodnog softvera.
~ Marko Milenović

28 / GNUZILLA / Februar 2005