Você está na página 1de 47

SADRŽAJ

U ovom broju možete èitati:

TEMA BROJA
Šta je spam i kako se zaštititi

BASIC Instinct - RealBasic


U ovom nastavku èitajte o Sripting aplikacijama

BASIC Instinct - VisualBasic


Objekat orijentirano programiranje je tema ovog nastavka

ASP Tecaj
U ovom osmom nastavku ovog serijala, možete èitati o
stored procedures-ima

WEB MARKETING
Ovo je nastavak èlanka o projektima u kojem æete saznati važnost
meðusobne komunikacije unutar tima

MS SQL
Treæi dio ovog serijala Vam donosi osnove sintakse TSQL-a

PHP
Na redu su sigurne sessions aplikacije

LINUX
U ovom novom serijalu, naš novi saradnik, Emir Vas upoznaje sa
Linux bibliotekama GTK-GIMP tool kit

WWW DIZAJN
Naš novi saradnik Oliver zapoèinje novi serijal o Web dizajnu

FLASH MX
Nauèite da racionalno koristite zvuk u Vašim Flash filmovima

Smješni kodovi
Za kraj kolekcija viceva sa našeg foruma

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 2


UVODNIK

LJETNE ŠEME (II dio) -

Poštovani þitatelji,

Po prvi put od postojanja našeg ezina, kasni-


mo sa pojavljivanjem na ˝online trafikama˝.
Uzrok su godišnji odmori (˝krivo je more….˝).
Neki od našh autora su se tek vratili sa odmora,
neki tek odlaze ili su veü na odmoru, sad nam
je potpuno jasno zašto mnogi informatiþki
þasopisi praktikuju ljetnje dvobroje, doduše,
obzirom na koncepciju našeg magazina, u þijoj
su osnovi serijali, to i nebi bilo baš elegantno
riješenje, zamislite u istom broju dva nastavka
nekog serijala ?
No bilo, kako bilo, mi smo uspjeli da za Vas
pripremimo i ovaj deveti broj u kojem Vam
donosimo nastavke veü zapoþetih serijal, kao i
dva nova serijala , u kojima Vam predstavljamo
naša dva nova autora. Emira Ceriüa, þiji smo
þlanak o Linux-u, greškom najavili u prošlom
broju (ovaj put nema greške -), i Olivera
Talangu koji Vam piše o web dizajnu.
Tema broja je ovaj put neželjena pošta-spam i
kako se odbraniti (bar djelimiþno /), naša þetri
autora su se potrudila da Vam predoþe kratki
historijat spama, neke od moguüih zaštita kao i
metode prevencije, nadamo se da üe Vam ovi
tekstovi biti od pomoüi u ˝borbi˝ sa beskru-
puloznim punjaþima mail box-ova.
Sada za kraj malo samohvalisanja. U pretho-
dnom broju našeg jedinog BiH informatiþkog
magazina INFO, naše stranice:
bhwebmasters.net
asdfdeveloper.com
i stranica našeg kolege Mirze
php.co.ba
rangirane su u top 40, a u ovom posljednjem
izdanju (dvobroj) imate priliku proþitati opširniji
þlanak o našim portalima, kako su nastali i ko
saþinjava našu ekipu.
Eto, nisam mogao a da se malo ne hvališem,
ugodno þitanje i ˝þitamo se˝ ponovo u 01.09.

Ispred ASDFDeveloper tima


Dragan Luþiü

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 3


TEMA BROJA

Ko je to, što je to spam, da prostiš...?

GOMILA NEPOŽELJNE
ELEKTRONSKE POŠTE
< Danijel KovaĀiþ >

S
vi ga primamo, neko manje, neko više, ali da li znamo taþno šta je? Upoznaj
dušmanina da bi ga lakše savladao ... mada sumnjam da üe vam ovaj tekst
biti u tom smislu od neke koristi ...

Odmah na poþetku da naþinimo jednu difere- marku proizvoda, pošto više nije u pitanju sa-
ncijaciju: naime SPAM i spam su dvije razliþite mo zaþinjena svinjetina. Marka sada pokriva i
stvari, i tokom ovog þlanka, postat üe vam ja- novije proizvode kao što su: SPAM Oven
snije zašto. Zbog toga je u naslovu spam napi- Roasted Turkey, SPAM Smoke Flavored, SPAM
san malim slovom, mada üemo se dotaüi i Lite i SPAM Less Sodium. Ako ste mišljenja da
SPAM-a ovdje, pošto niko nije nedodirljiv kada ovi podaci ne znaþe mnogo u globalnom položa-
su u pitanju napori novinara istraživaþa ASDF ju þinjenica, imajte na umu da je HORMEL do
Developer magazina. I ovog mjeseca sam od danas prodao preko 5 milijardi konzervi SPAM-a
uredništva dobio da istražim jednu od tajno- po cijelom svijetu!
vitijih pitanja net historije, tako da sam se dao Iduüi korak u razvoju spama ustvari þini ka-
u dalekosežnu potragu za istinom, istinom koja riku koja spaja dvije sfere, ustvari tri, ako
üe jednom za svagda osvijetliti sve što ste mi- uzmemo filmsku umijetnost kao filozofiju.
slili da pitate u vezi spama, a niste imali hra- Naime, da nije bilo Monty Python’s Flying Circus
brosti da pitate! (Leteüi Cirkus Monty Pythona), SPAM bi
SPAM je nastao kao naziv proizvoda Hormel vjerovatno ostao u domenu gastronoma.
Foods Corporation-a, i za one koje do sada nisu Ovako, ti umijetnici i legende britanskih ostrava
imale priliku, sastoji se od zaþinjene svinjetine, (ukoliko niste imali prilike, zamislite englesku
nešto a’ la mesnih narezaka balkanskih lokalnih verziju TLN-a, samo malo otkaþeniju i sa tipi-
proizvoÿaþa mesa i mesnih preraÿevina. þnim britanskim smislom za humor) su naþinili
Ustvari, proizvod je nastao 1937. kao HORMEL skeþ u kojem posjetioci restorana pokušavaju
Spiced Ham (HORMEL Zaþinjena Svinjetina), da naruþiti obrok koji ne sadrži SPAM, i pored þi-
bi za raspisanu nagradnu igru od US$100.00 njenice da svi obroci na jelovniku sadrže upravo
pobjednik predložio SPAM. Nego, za razliku od SPAM, svaka više od prethodne, dok grupa Vi-
naših sliþnih proizvoda, koje se pakuju u okru- kinga u uglu restorana poþinju pjevati neku
gle konzerve, od 1941. SPAM se pakuje u zao- pjesmu, koja se sastoji ukratko od teksta:
bljenu kockastu konzervu, tako da je i u pako- ”SPAM, SPAM, SPAM, SPAM, SPAM, SPAM ...”
vanju pomalo razliþita od konkurenata na trži- Vjerujte mi kada kažem da moje sposobnosti u
štu. U svakom sluþaju, SPAM u meÿuvremenu prozi ne þine na þast spomenutom skeþu, i da
prerasta iz naziva proizvoda u pravu pravcatu je dotiþna klasika kada je Monty Python u pita-

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 4


TEMA BROJA

nju, u ravni sa onim o mrtvom papagaju u pro- veüem broju primaoca, korisnicima MIT CTSS
davnici mezimaca, recimo. sistema, ali pošto u datom primjeru ne govori-
Scena treca: 1985., Multi-User Dungeons mo o netu ili Arpanetu kao preteþi internetu, ne
(MUD) i Multi-User Shared Hallucinations govorimo o stvarnom spamu. Godina 1971.
(MUSH) scena, on-line, real-time, interaktivno Preko hiljadu korisnika CTSS sitema koristi dile-
tekstualno okruženje. (Za one koji nisu imali up vezu sa MIT kampusa, kao i sa drugih
þast, zamsilite IRC kanale, i pokušajte zamisliti lokacija, uglavnom obrazovnih. Koristili su mail
da se tu odvija igra, znam da je potrebna veüa u razmijeni informacije i tema, baš kao i danas
koliþina mašte, pošto ste zaraženi grafikom e-mail. U atmosferi anti ratnih protesta koje
modernih on-line dostignuüa, ali vjerujte mi na tada potresaju SAD, jedan korisnik šalje poruku
rijeþ, onda je to bilo jako popularno). svima na sistemu koji je poþinjao sljedeüom
Sljedi dio sjeüanja Gsp. Nathan J. Mehl, reþenicom: ‘THERE IS NO WAY TO PEACE.
newsadmin-a za BBN Planet, koji pripovjeda PEACE IS THE WAY.” Kada je naznaþeno kako
nekako najpouzdaniju verziju dogaÿaja: je takvo ponašanje nepoželjno i neprihvatljivo,
“Moj prijatelj, koji üe ostati neimenovan, u dotiþni odgovara:’Ali ovo je bitno’.
svojim mlaÿim danima ,negdje oko 1985. Prvi pravi spam e-mail poslat je 1. maja ´78.
naletio je na orginalni Pern MUSH tokom od strane prodajnog osoblja Digital Equipment
njihovog Najsvetijeg Dogaÿaja – Izleganja. Corp. reklamirajuüi demonstraciju kompjute-
Pošto je pokušao razumno razgovarati sa dva – rske opreme. To je bio pokušaj da se isti e-mail
tri denizena, brzo je došao do zakljuþka da su pošalje svim Arpanet korisnicima na zapadnoj
svi obsesivni-kompulsivni idioti, bez života i obali SAD-a. Imajte na umu da je Arpanet tada
lliterarnog ukusa (vjerovatno istinito). Pa je, bio vojni projekt ameriþke vojste, i komercija-
pošto su se ‘jaja’ poþela ’izlegati’, napisao lna upotreba nije bila dopuštena. Tada još nije
makro koji je ispisivao liniju teksta: SPAM postojalo spam filteri e-mail sistema, pošto
SPAM SPAM SPAM SPAM SPAM SPAM SPAM spam još nije faktiþki ni postojao.
SPAM SPAM SPAM SPAM SPAM SPAM ... i pošao Pomenuta poruka je interesantna iz više
da je pokreüe svakih nekoliko sekundi, dok ga aspekata, i ovdje üemo spomenuti neke.
jedan od þarobnjaka nije napokon izbacio. ... i Poslata je sa SNDMSG, koja je imala ogra-
to bi vjerovatno bilo zadnje što bi þuli ili vidjeli niþeno polje za To i CC. Jadnik/ca kojem je za-
o tome, osim što se taj dogaÿaj toliko urezao u palo da tipka poruku, takoÿe je zapalo da tipka
sjeüanje PernMUSH-era, i zauvijek potom ostala i adrese, i oþigledno je da ta osoba nije bila
je legenda o “onom šupku koji nas je upoznata sa funkcijama SNDMSG-a.
spamovao”. Svako pomalo, ova priþa dospije do Tako je data osoba poþela da ukucava adre-
mog prijatelja, koji pokušava da održi ozbiljnu se u polje Subject, koje su potom pretekle u To
facu ...” header, koje su pretekle u CC header, i napo-
Sa MUD/MUSH scene, termin spam se kon u samo tijelo poruke. Potom je sljedila sa-
poþinje koristiti za pojavu Excessive Multi- ma poruka.
Posting (EMP - Eksesivno Multi-Postovanje) na Zaþuÿuüe, SpamAssassin prepoznaje datu
Usnet grupama. Usnet News Grupe su forumi poruku kao spam, djelimiþno zbog velikih slova,
gdje ‘autori’ mogu postavljati ‘þlanke’ koji drugi ali i zato što su headeri iz 1978 nevažeüi danas.
korisnici þitaju i diskutuju. Slabo ono što se Pošiljalac poruke je bio izvjesni Gary Thuerk,
postavi može spadati pod kategorijom ‘novosti’ agresivan uposlenik DEC-a, koji je mislio sa üe
(iliti news), ali se orginalna terminologija koristi Arpanet korisnici cijeniti þinjenicu da je DEC
i do današnjeg dana. U normalnim uslovima, integrisao Arpanet protokol podršku direktno u
korisnik bi postavio svoju poruku na jednu ili novu liniju DEC-20 i TOPS-20 OS
manji broj relevantnih newsgroupa, postavlja- SNDMSG je mogao primiti do 320 adresa.
juüi pitanje ili neko mišljenje. Koristeci software Ostatak se našlo u samom tijelu poruke. Kada
za automatizaciju procesa postavljanja poruka, su pronašli da poruka nije stigla svima kojim su
postalo je moguüe postaviti istu poruku na hi- namijenuli, poruku su ponovo poslali ostalim.
ljade newsgrupa, osiguravajuüi na taj naþin Po rijeþima Thuerka, nisu bili svijesni ‘address
þitalaštvo od stotine hiljada, þak i milione. file’ funkcije u mail programu koji bi omoguüio
Iduüi korak veü zalazi u vode koje su nama mailing listu.
nadasve dobro poznate. Spam kao nepoželjan U svakom sluþaju, pretpostavljao je da üe na
e-mail. osnovu date poruke primiti i negativnih reakci-
Preteþa spama, koji tada još nije imao ni ja, pa je o tome obavijaestio i svoje nadreÿene
ime, dolazi u vidu elektronske poruke poslate u DEC, mada nije oþekivao da to ispadne neu-

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 5


TEMA BROJA

godno i oštro. O kako je samo bio u zabludi! bili bez pardona za svoje dijelo, i þak šta više,
Defense Communications Agency (DCA) koji je uživali kratkotrajnu slavu u svijetlu svojih
upravljao Arpanetom, nazvao je Thuerkovog ‘dostignuüa’.
šefa, bivšeg oficira avijacije, da registruje oštru Potom, naroþito opaki pojedinci su prokontali
pritužbu. Jedan korisnik sa fakulteta u Utah se da je moguüe upotrjebiti programe za masovno
žalio da mu je spam oborio kompjuterski si- slanje poruka, koje je bilo veü decenijama u
stem. Thuerk tvrdi kako su samo tri kopije po- upotrebi pri mailing listama, za slanje nepože-
ruke stigle na dati sistem, pa zakljuþuje da je ljnog e-maila velikom broju primalaca koji to ne
nesretna sluþajnost da mu je mailbox disketa žele biti. Termin je ubrzo postao popularan na-
bila skoro puna kada su poruke stigle. þin opisivanja te neželjene pošte, i zadržao se
Thuerik i dalje prodaje kompjuterske siste- do današnjeg dana.
me, mada mu je karijera spamera bila kratkog Interesantna je þinjenica u današnjem vaktu,
vijeka. Negativna reakcija na taj spam je osi- kada kompanije zubima i noktima i advokatima
guralo da problem ne pomoli svoju prljavu gla- pokušavaju saþuvati etikete od propasta i
vu dugi niz godina potom. blaüenja, da su HORMEL Foods, u svijetlu hala-
Popularizacija termina spam dolazi u aprilu buke oko spam-a, odluþili da se ne protive kori-
1994. Tada, naime, pravna firma iz Phenixa, štenju termina pri opisivanju nepoželjne e-
Canter & Siegel, reklamiraju svoje beskorisne pošte. Pitanje je koliko bi im uspijelo protivlje-
servise povodom dolazeüe ‘Green Card Lottery’ nje, kao i koliko bi ih to koštalo, pošto je ‘spam’
postavljajuüi poruke na nekoliko hiljada new- jedna od onih termina neta koja je pustila du-
sgrupa, i tim po prvi put automatizirano šalju gaþak korijen meÿu korisnicima. Jedina kvali-
ogroma broj komercijalnih poruka – spama! fikacija koju žele uspostaviti je da se nepože-
Poruku su postavljali nekoliko puta, ali 12. ljna e-pošta piše kao ‘spam’, dok se eksklu-
aprila, uznajmili su usluge programera plaüe- zivno za naziv njihovog proizvoda koristi
nika, da napiše jednostavnu skriptu koja üe ‘SPAM’. U svakom sluþaju po mom mišljenju
postaviti datu poruku na svaku od newsgrupa velikodušno, i vrlo lako ostvarljivo.
USENET-a. Pojedini su termin ‘spam’ koristili i Eto, sada znate nešto što do prije 15 minuta
za individualne nepoželjne poruke poslate mno- niste. Skupite raju, i poþnite prosipati podatke i
štvo puta, mada je opüenito korišteno za maso- zapanjite ih svojim znanjem na temu. Još kada
vno plavljenje primalaca jednom te istom poru- završite i ostale þlanke o spamu u ovom broju,
kom. Incident je populizitao termin spam, koja ima da postanete pravi struþnjak. Samo zapa-
je do tada bila eksluzivno u domenu MUD mtite, ovo znanje smijete koristiti samo u borbi
/MUSH korisnika. Spam se pojavio u dnevnoj na strani dobra, a protiv mraþnih zli sila spa-
štampi povodom ovog incidenta, i þinenica koja mera. I kao što bi rekli u HORMEL-u: “Use the
je umnogome razljutila korisnike neta je da su fork, Luke!”

Kratki Historijat spama


Godina/Mjesec Znaþaj
82 2 Prvi znani primjer email chain letter-a
91 2 Craig Shergold želi razglednice
91 2 Craig Shergold ne želi razglednice
93 6 $5 -> $50,000 chain letter na vijestima, naslovljen MAKE.MONEY.FAST
94 3 Nepoželjan komercijalan email (spam)
94 4 ‘Green Card’ Advokati (Canter & Siegel) spamuju newsgroup
94 12 ‘Good time’ email virus hoax
95 8 Liste sa 2 miliona email adresa ponuÿene na prodaju
96 7 Liste sa 7 miliona email adresa ponuÿene na prodaju
96 11 Liste sa 11 miliona email adresa ponuÿene na prodaju
97 6 Liste sa 31 miliona email adresa ponuÿene na prodaju
97 7 Liste sa 57 miliona email adresa ponuÿene na prodaju
97 12 Liste sa 80 miliona email adresa ponuÿene na prodaju
98 7 Liste sa 91 miliona email adresa ponuÿene na prodaju
01 8 Liste sa 209 miliona email adresa ponuÿene na prodaju

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 6


TEMA BROJA

Da bi ste bolje pratili þlanak, predlažem da posjetite nekoliko linkova koje


nadopunjavaju temu. Ustvari, pošto je tematika totalno interesantna, predlažem da ih
posjetite obavezno, naroþito da poslušate .wav datoteku refrena vikinga u restoranu
Leteüeg Cirkusa Monty Pythona ;-)

http://keithlynch.net/spamline.html Opširan historijat spama


Nastanak termina spam kao
http://www.templetons.com/brad/spamterm.html
zloupotreba neta
Pogledajte prvu spam poruku, kao i
http://www.templetons.com/brad/msg#msg izabrane reakcije onih koji su je
primili :-)
http://www.spam.com/sp.htm Prezentacija SPAM-a, onog mesnatog
Transkript MPFC skeþa i .wav
http://www.ironworks.com/comedy/python/spam.htm
datoteka (obavezno)
Interesantna historija elektronske
http://www.multicians.org/thvv/mail-history.html
pošte

Kako se zaštititi?

BEZ KLIKANJA I ODGOVARANJA


< Zeljko Kvesiþ >

Š
ta je spam, i odakle naziv, sve to možete proþitatu u prethodnom þlanku koji
prati ovomjeseþnu temu broja. U ovom prilogu pokušat üu razraditi neke
naþine zaštite, koje mogu preduzeti svi korisnici.

Mislim da na ovoj planeti nema ni par proce- tnja u svakodnevnom radu. Od 20 poruka kojih
nata ljudi, koji posjeduju eMail adresu, da nije primite 10-15 nekada i više zna biti spam, dru-
primio bar jednu spam poruku u životu. Kao gim rijeþima smeüe. Stoga zaštita od ove epide-
spam ePoštu definišemo sve neželjene poruke, mije postaje sve važnija.
kojima nas bombardiraju tzv. Spameri, želeüi da Obeüavaju nam poveüanje izvjesnih organa,
nam prodaju neke šarenu lažu i samo takve glu- nude neke pare iz Nigerije, prodaju kojekakve
posti. gluposti. U Njemaþkoj se sedmiþno pošalje oko
Spam, ukoliko ste aktivni na mreži i imate više 500 miliona spam poruka! (www.eco.de)
adresa, vremenom može postati istinska sme-

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 7


TEMA BROJA

Po nekim procjenama 40-60% svih email poruka zaraÿuju i provideri, tako da nekima od njih po-
koje se šalju su neželjene spam poruke. tpuno suzbijanje spama ne donosi ništa.
Poznata “kraljica spama” Laura Betterly Sam svoj majstor:
otvoreno kaže kako dobija novce za povratne
poruke. Po njenoj izjavi na 10 miliona spam po- Pod ovim vidom zaštite podrazumijeva se
ruka dovoljno je primiti 100 narudžbi da bi se razuman odnos sa vlastitim adresama. Što to
pokrili troškovi. To je dakle samo 0,001 % konkretno znaþi? Pa poznato nam je kako
reakcija, što nije nimalo neralan broj! Njena spameri dolaze do adresa, tako zvani grabing sa
tvrtka kako sama kaže godišnje pravi 1 milion $ web stranica, kupovinom od raznih preproda-
prometa. U njemaþkoj spameri tvrde da jedna vaþa… Prvi stupanj zaštite dogaÿa se upravo
akcija sa dialerom može donijeti i do 100.000 ovdje.
eura. Pametno je koristiti nekoliko adresa, jednu koju
Procjene kažu kako ameriþka privreda godi- koristitie za korespondenciju sa poznanicima ili
šnje pretrpi gubitak od 10 milijardi $, sve pro- poslovnim partnerima npr. i jedna ili više njih,
uzrokovano spamom. Uz prodaju proizvoda i na- po moguünosti kod mekih freemail servisa koju
rudžbe, veliki novci se zaraÿuju i prodajom adre- üete koristiti za prijave koje se pojavljuju na
sa. Jedna verificirana adresa košta i do 40 eura. raznim internet stranicama. Kada se onda te
No prvo pitanje koje se postavlja je kako se freemailer adrese “zaþepe” od spama jednosta-
zaštiti? Da li postoje programi koji nude 100% vno zaboravite taj account i otvorite si novi.
zaštitu. Kako biti siguran da nam važne poruke
neüe završiti u spam filteru. Zaštita pomoüu mail programa:
Postoji nekoliko aspekta iz kojih se ovaj pro-
blem mora promatrati i to u ovisnosti o tome da Veüina email programa standardno sa sobom
li se radi o privatnom korisniku ili o tvrtkama. donosi neku vrstu zaštite protiv spam-a.
Problem kod tvrtki postaje još izraženiji, jer sva- Navedimo samo primjerice The Bat ili MS
ka nepotrebna poruka, odvlaþi djelatnika od Outlook Express. Naime unutar programa je
posla. moguüe definirati odreÿena pravila za prijem
poruka, te tako sprijeþiti prijem neželjenih
Kako se zaštititi? email-ova.
No definisati pravila za svaki pojedini spam bilo
Prvi stupanj zaštite dogaÿa se veü kod pro- bi praktiþno nemoguüe, stoga se preporuþuje
videra, dakle tvrtke koja vam daje pristup inte- sljedeüa metoda:
rnetu i/ili daje email adresu na raspolaganje. x Definišite jedan dodatni direktorij unutar
Neki provideri veü pri samom prijemu poruke Outlook-a na primjer i nazovite ga spam.
pokušavaju da identificiraju spam poruke i da ih x Zatim kreirajte pravilo koje üe sve poruke
filtriraju. Jedna metoda je da server pri prijemu koje nisu adresirane direktno na vas
poruke od hosta kojeg ne poznaje, pošalje mail preusmjeravati u direktorij SPAM. Time üete
na taj host u svrhu kontrole da li host uistinu odstraniti dosta smeüa direktno iz Ulaznog
postoji. Osim toga postoji i filtriranje na osnovu direktorija, što üe vam olakšati þitanja
kljuþnih rijeþi, no tu provideri dolaze u konfliktnu poruka uvelike. Povremeno prekontrolišite
situaciju jer se nikada nemože znati koji korisnik spam poruke u sluþaju da neka važna
što i kada želi primati. Osim toga na spamu poruka nije možda zalutala meÿu neželjene.

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 8


TEMA BROJA

VAŽNA PRAVILA ZA SPAM!!

1. nikada ne odgovarajte na spam poruke. Možete biti bijesni i možda ponekad


stvarno poželite svašta nešto, ali smirite se, izaÿite na zrak, prošetajte. Odgovor
na spam poruku pošiljatelju signalizira da je adresa aktivna i vaš rejting unutar
spam krugova raste. Vjerojatnoüa da üete primati još više spam poruka raste
rapidno
2. preporuþuje se i povremeno ili najbolje uvijek žaliti se na spam. Postoji nekoliko
adresa na kojima možete prijaviti spamera, jedna od njih je i www.openrbl.org,
gdje možete dobiti dodatne informacije o pošiljatelju, na osnovu adrese hosta
koji vam je isporuþio poruku.
3. nikada ne klikajte na linkove unutar poruka, moguüe je da link sadrži skript koji
üe izvršiti verifikaciju vaše adrese, sliþno kao kod odgovora (vidi 1.) i time
potvrditi pošiljatelju da je adresa aktivna
4. osveta? Pa moguü vid osvete bio bi npr. da spamera prijavite na neki kineski ili
japanski newsletter od kojeg se nikada više neüe odjaviti, problem je samo što
veüina spamera mailove šalje sa nepostojeüe adrese pa je korist ove metode
usitinu upitan.

Zaštita pomoüu posebnog software-a: based email ponuÿaþima (primjerice sa Hotmail-


om).
Drugi i uspješniji vid zaštite od spam-a su Moguüe je skinuti i besplatne verzije ovog
specijalni programi raÿeni samo u tu svrhu. Od programa na adresi:
mase programa koji se mogu naüi na tržištu http://www.hms.com/download.asp
izdvojili smo tri primejra koja üemo kratko
pomenuti u narednim redovima. SPAMIHILATOR:

SPAM EATER

Proizvoÿaþ: Spamhilator
URL: http://www.spamihilator.com/
Hardware zahtijevi: nema informacija, uspje-
Proizvoÿaþ: High Mountain Software šno testirano na Pentium raþunalu na 500Mhz
URL: http://www.hms.com/spameater.asp takt frekvencije
Hardware zahtijevi: Pentium raþunalo Software zahtjevi: Win 95, 98, ME, NT, 2000,
(500Mhz I više preporuþeno), 16MB RAM ili više, XP. IE 4.0 ili više.
4-6MB na tvrdom disku Ovo je besplatan anti spam program koji podli-
Software zahtjevi: Win 95, 98, ME, NT, 2000, ježe GNU/GPL licenci, kako proizvoÿaþ kaže radi
XP. IE 4.0 ili više. sa sljedeüim email programima:
Kako sam proizvoÿaþ kaže SpamEater neradi sa Outlook 2000/XP/Express, Eudora, Pegasus Mail,
Juno, MSN ili AOL adresama, no suraÿuje sa web Phoenix Mail, Opera, Mozilla, Netscape.

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 9


TEMA BROJA

ANTI SPAMWARE Hardware zahtijevi: Pentium 133Mhz, 64MB


2.0: Ram (preporuþeno 128MB), 20MB prostora na
tvrdom disku.
Software zahtjevi: Win 95, 98, NT, 2000, XP.
Cijena: 29 Euro
Program zahtijeva POP3 ili SMTP mail account i
neüe raditi sa freemail servisima kao što su
Hotmail ili Aol primjerice. Nudi tzv. Blackliste,
provjeru pošiljateljeve IP adrese. Pasivnu zaštitu
Proizvoÿaþ: IOK Internet Service GmbH od virusa jer nudi moguünost da prije download-
URL: http://www.antispamware.com a poruke filtrira zakaþke na porukama. Program
je dostupan na njemaþkom i engleskom jeziku.

Zakljuþak za kraj ovog þlanka bio bi da je spam skoro pa i nemoguüe istrijebiti. No uz


obziran odnos sa vlastitom mail adresom i neke mjere predostrožnosti, moguüe je spam
svesti na minimum i na taj naþin sebi olakšati svakodnevni rad sa elektriþnom poštom.

Ukoliko imate nekih pitanja u vezi sa ovim þlankom kontaktirajte me putem epošte
(zk@asdfdeveloper.com) ili putem našeg foruma koji na adresi:
http://forum.bhwebmasters.org

Linkovi i dodatne informacije:


[1] Eco.de – http://www.eco.de
[2] www.openrbl.org - Whois upiti
[3] www.hms.com/spameater.asp - SPAM Eater
[4] http://www.spamihilator.com/ - SpamIhilator
[5] http://www.antispamware.de AntiSpam Ware 2.0

Besplatni Unix alat na Windowsu


i konfiguracija email klijenata

SPAMASSASSIN NA WINDOWSU
< Mirza Muharemagiþ >

I
nteligentni spamfilteri koriste nekoliko kriterija da bi odredili da li je email
spam ili ne. Ovih kriterija ima mnogo, poþev od "neželjenih" rijeþi u emailu
do kontrole header informacija emaila. Postoje i black i white liste koje sa-
drže informacije o sumnjivim mail serverima, hash zbirevima pojedinih email i još
mnogo toga.

Dnevno se borim sa preko 150-200 spam SpamAssassin (SA) [2] odnosno maksimalno
emaila. Prije 2-3 mjeseca sam sa kolegama vi- korištenje njegovih moguünosti u kombinaciji sa
jeüao o najboljem alatu za velike koliþine spa- internim filterom. SpamAssassin kombinira sve
ma (preko 100000 dnevno) i rješenje je bilo gore spomenute metode plus mnogo drugih.

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 10


TEMA BROJA

Nakon 2-3 mjeseca, SA se pokazao odliþnim i Perl za instalaciju zahtjeva oko 55 MB prostora
odluþio sam instalirati SA na Windowsu radi na disku i morate biti administrator odnosno
internih testova i analize njegovog rada. Nakon imati administratorska prava. Ako ne koristite
nekoliko dana skupljanja informacija po dese- WindowsXP može se desiti da nemate MSI
tinama stranica (vidi kraj þlanka za više info- installer [4].
rmacija), SA je uspješno instaliran i konfigu- Nakon instalacije Perla, restartajte Windows,
risan na Windowsu i od testova je postalo inte- tako da Perl bude ukljuþen u tzv. Environment
nzivno korištenje. Ovaj þlanak üe Vam pokazati varijable (My Computer -> Properties),
kako da ga instalirate i kako da konfigurišete tako da postane globalna varijabla i da ga mo-
Vaše email klijente za rad s njim. žete direktno iz MS-DOS prozora startati ko-
mandom perl (ako Vam sluþajno zatreba ili želi-
Šta je SpamAssassin? te programirati u Perlu).

SpamAssassin je najkorištenija aplikacija za


filtiranje emaila na Unix sistemima. Na Win-
dowsu je veoma malo zastupljen iz nekoliko ra-
zloga, meÿutim testovi su pokazali da SA na
Win sistemu bez problema može konkurisati
Unixu/Linuxu. Integracija SA-a na Unix siste-
mima sa npr. procmail-om je veoma jedno- Nakon instalacije Perla morate instalirati još
stavna što je jedan od razloga za njegovu ra- jedan Perl modul (Time-HiRes). Za to otvorite
širenost. Mora se naravno spomenuti i þinjenica MS-DOS prozor, i tipkajte ppm install Time-
da je SA besplatna OpenSource aplikacija što HiRes. Perl üe automatski skinuti sa Interneta
utiþe na njegovu raširenost. Command-Line (ActiveState servera) Time-HiRes modul i insta-
instalacija i konfiguracija plaši Windows korisni- lirati ga. Na slici ispod možete vidjeti kako to
ke, ali kao što üemo u ovom þlanku vidjeti, izgleda.
apsolutno bez razloga. Postoji nekoliko kome-
rcijalnih SA-verzija za Windows, meÿutim zašto
plaüati za nešto, ako to isto odnosno puno bolje Detaljniji opis Perl instalacije i modula možete
možete sami napraviti veoma brzo. naüi na PHP.co.ba [6]. Time je izvršena
SA na Windowsu isto kao na Unix/Linux si- instalacija Perla, i možemo preüi na pop3proxy.
stemima ne radi sam, veü samo hvata emaile Pop3proxy instalacija je još jednostavnija od
koji su mu poslani od neke eksterne aplikacije. Perla. Samo skinite ZIP file [6] i raspakujte ga
Za to koristimo besplatnu aplikaciju pop3pro- u odreÿeni direktorij, npr. C:/Program Files u
xy [2]. Obje aplikacije su napisane u Perlu što kojem možete napraviti pop3proxy pod-
znaþi da se SA može instalirati na bilo kojem direktorij.
sistemu na kojem je instaliran Perl. Nakon toga skinite u ZIP formatu SpamAssassin
[7] i raspakujte ga. Pošto je instalacija nekih
SA - Instalacija i konfiguracija modula, izmeÿu ostalog i SpamAssassina neka-
da problematiþna, instaliraüemo ga ruþno.
Instalacija Perla, SA-a i pop3proxy-ja pre- Poddirektorij rules pomjerite (ne morate ga
dstavlja glavni posao i uzima najviše vremena, kopirati) u pop3proxy direktorij. Direktorij Mail
iako i ona ne traje duže od par minuta. koji se nalazi u lib direktoriju od SpamAssassi-
Firma ActiveState [3] nudi Perl za Windows. na premjestite u C:/Perl/site/lib. Ako tamo
Naravno instalacija ima grafiþki front-end na postoji Mail direktorij onda ga kopirajte kao pod
koji su Windows korisnici navikli i zasniva se na direktorij unutra. Time je instalacija završena.
nekoliko "Next" klikova mišem. Pripazite samo Da bi olakšali startanje proxy-ja, najbolje je da
da ga instalirate u pravi direktorij jer se Perl kreiramo jedan shortcut (npr. na desktopu).
automatski instalira u direktorij u koji ste ga Zato kreirajte shortcut do proxy.pl koji se
raspakovali odnosno u kojem se nalazi instala- nalazi u pop3proxy direktoriju.
cioni file. Mi üemo ga instalirati u C:/Perl. Otvorite Properties od shortcuta i promjenite
link do proxy.pl file-a ovako:

wperl.exe C:\Program Files\pop3proxy\pop3proxy.pl --host moj.pop3.server

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 11


TEMA BROJA

Umjesto moj.pop3.server upišite ime Vašeg header informacija u Vasem email programu ili
pop3 servera. Nakon što kliknete na ovaj ako otvorite source-code emaila:
shortcut, pop3proxy üe se startati i moüi üe te Na osnovu ovih informacija (pretežno subjecta)
ga prepoznati samo u Task Manageru je moguüe napraviti filtere u Vašem email
(Ctrl+Alt+Del - proces wperl). Još bolje bi bilo programu i tako sortirati emaile. O tome može-
da ovaj shortcut ubacite u autostart tako da te više þitati u sljedeüem dijelu ovog þlanka.
se u pri svakom startu Windows-a ukljuþi. Za kraj instalacije i konfiguracije Spam
Proxy iskljuþujete klikom na file kill_proxy.pl Assassina morate znati da u ovom sluþaju SA
koji se nalazi u pop3proxy direktoriju. I za radi sa standardnim opcijama. To je za veüinu
njega možete naravno napraviti shortcut. korisnika apsolutno dovoljno, meÿutim ako u
Ali prije nego što pop3proxy može da proþita kojem sluþaju želite da promjenite konfiguraciju
email Vi morate u Vašem email klijentu promje- (nakon testiranja), koristite za to file:
niti POP3 server i umjesto moj.pop3.server user_prefs.template
morate upisati 127.0.0.1. Time üe svaki email koji se nalazi u rules direktoriju (pop3proxy
prolaziti kroz filtere SpamAssassina. direktorij). Ovaj file možete ruþno editovati ili
Veoma je praktiþno što ni pop3proxy niti koristeüi program SAConf [8].
SpamAssassin ne vidite nigdje i oni rade svoj
posao apsolutno skriveni. Ako koristite samo
jedan email account, onda je i konfiguracija Email programi
gotova. Ako koristite više pop3 email accounta,
onda ih morate ruþno upisati u file Danas ima veoma puno email klijenata
hostmap.txt koji (ako ga nema) stavite u (programa) i u ovom þlanku nema mjesta za
pop3proxy direktorij. Hostmap.txt mora ovako sve njih. Meÿutim objasniüemo Vam ukratko
izgledati: princip rada odnosno korištenja Vaših email
klijenata sa emailima koje je SpamAssassin
55555 = pop3.yyy.com:110 definisao kao spam email.
55556 = pop3.zzz.com:110 U prošlom dijelu smo instalirali SpamAssassin i
pop3proxy i sada svaki email koji dolazi u Vaš
55557 = pop3.xxx.com:110 email program üe biti ispitan od SA. SA kao što
smo rekli mijenja header uvijek i ako je spam
55555 itd. su brojevi portova s kojih pop3proxy onda mijenja i subject polje emaila (moguüe je
þita emaile. 110 je standardni pop3 port. napraviti da mijenja i tekst emaila).
Time je instalacija našeg proxy-ja i spam Na osnovu ovog subject polja je moguüe u
filtera završena. SpamAssassin prati sada preko svim email programima sortirati emaile. Najko-
pop3proxy-ja Vaše emaile i prema svojim inte- rišteniji email program Outlook Express od
rnim kriterijima odreÿuje veoma uspješno da li Microsofta na žalost nije u stanju da sortira
se radi o spamu. SA ne briše emaile veü im prema header informacijama, ali to nije naro-
samo dodaje dodatne header informacije i pro- þito tragiþno, odnosno sortiranje pomoüu subje-
mjeni Subject ako je u pitanju spam. cta je za poþetak apsolutno dovoljno. Kreiranje
Ovako izgledaju dodatne header informacije, filtera za sortiranje u Outlook Expressu možete
koje možete vidjeti samo ukljuþite prikazivanje naüi pod Tools -> Message Rules -> Mail.

...
X-Spam-Status: No, hits=-1.4 required=5.0
tests=PGP_SIGNATURE,UPPERCASE_25_50
version=2.55
X-Spam-Level:
X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp)
...

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 12


TEMA BROJA

Za više informacija o kreiranju filtera za sortiranje Vaših emaila posjetite stranicu


http://support.real-time.com/open-source/spamassassin/ na kojoj imate informacije
vezane za 12 razliþitih email programa. Naravno u Help-u Vašeg email programa možete
obiþno naüi iste informacije.
U sluþaju daljih pitanja za konfiguraciju SpamAssassina na Windowsu (ili Unix/Linuxu),
posjetite BHW Forum [9] ili kontaktirajte autora.

Linkovi i literatura
[1] SpamAssassin homepage: http://www.spamassassin.org
[2] pop3proxy homepage: http://mcd.perlmonk.org/pop3proxy/
[3] ActiveState, Perl: http://www.activestate.com/Products/ActivePerl/
[4] Microsoft MSI Installer download: http://downloads.ActiveState.com/
contrib/Microsoft/MSI2.0/NT/InstMsiW.exe
[5] Perl instalacija: http://www.php.co.ba/?action=columns&main_id=16
[6] pop3Proxy Download: http://mcd.perlmonk.org/pop3proxy/pop3proxy.zip
[7] SpamAssassin download: http://www.spamassassin.org/released/
Mail-SpamAssassin-2.55.zip
[8] SAConf homepage: http://www.openhandhome.com/saconf.html
[9] BHWebmasters Forum: http://forum.bhwebmasters.org
[10] Konfiguracija email klijenata za SA: http://support.real-time.com/
open-source/spamassassin/

Kako otežati spamerima da doāu do Vaše email adrese

BOLJE SPRIJEÿITI NEGO LIJEÿITI


< Dragan LuĀiþ >

O
vaj þlanak je namjenjen prvenstveno onima koji posjeduju svoju web
stranicu na kojoj su upisali svoju email adresu u cilju ostvarivanja kontakta
sa posjetiocima, i na taj naþin postali meta spamerima.

Kako spameri prikupljaju mail adrese? predmetom trgovine (Kratki Historijat spama
na strani 8).
Veü ste vjerovatno upoznati sa terminima Na našim prostorima, spameri na sreüu ili na
email harvesting, spam robots, spambots isl. žalost, nemaju baš pogodno tlo za dobru zara-
Svi ovi termini se odnose na prikupljanje email du, obzirom na to koliko malo ljudi u BiH kroisti
adresa. Programi koji se nazivaju spam roboti Internet, a od toga broja korisnika, veoma mali
imaju zadatak da pretražuju web u potrazi za broj njih kupuje putem interneta. Ovo je razlog
email adresama, kada ih pronaÿu upisuju ih u više da nam ˝neželjene poruke˝ budu još ma-
bazu. To prikupljanje mail adresa je toliko uzelo nje poželjne. Naravno spameri i harvesteri to
maha da su se mnogi specijalizovali samo za taj ne znaju, niti ih interesuje, njima je cilj poslati
posao, od kada su baze email adresa postale poruke na što veüi broj adresa.

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 13


TEMA BROJA

Kako sprijeþiti ?
drugi naþin je da svoju email adresu predsta-
U þlancima mojih kolega ste mogli proþitati vite u grafiþkom formatu tj napravite sliku na
neke od naþina zaštite od neželjenih poruka, to kojoj piše Vaša mail adresa, ovo je djelotvorno,
je veü stadij u kojem ste postali meta spamera i jer spam roboti tragaju za adresama samo u
pokušavate da se na neki naþin zaštitite, ja üu tekstu.
pokušati da vam ukažem ne neke od metoda
spreþavanja da Vaša email adresa uopšte završi treüi naþin je da Vašu email adresu prikrijete
u bazi nekog beskrupuloznog spamera. Neke od jednim JavaScriptom kao što je ovaj:
mjera predostrožnosti ste veü imali priliku da
proþitate u prethodnim þlancima, kao što je <SCRIPT LANGUAGE="javascript">
savjet da svoju primarnu email adresu ne <!--
upisujete na web stranicama, forumima ,news var prvi = 'ma';
groups itd.., ako baš morate, onda koristite var drugi = 'il';
neku adresu sa besplatnih mail servisa (aol, var treci = 'to:';
hotmail, yahoo itd.). Meÿu Vama poštovani var adresa = 'dl';
þitaoci sigurno ima dosta onih koji posjeduju var domena = 'asdfdeveloper';
svoju web stranicu, pri þemu vjerovatno imate var ext = 'com';
na njoj svoju kontakt email adresu. Zastita te document.write('<a href="');
kontakt mail adrese od dosadnih spamera je document.write(prvi+drugi+treci);
tema ovoga þlanka. document.write(adresa);
Kad svoju web stranicu “ pustite u svijet” document.write('&#64;');
vjerovatno želite i da omoguüite posjetiocima document.write(domena);
da vas kontaktiraju, najþešüe se ostavlja link sa document.write('.');
mail adresom ili samo mail adresa u tekstualnoj document.write(ext);
formi. Bez obzira na koji naþin ste predstavili document.write('">');
svoju mail adresu, prije ili kasnije do nje üe document.write('KONTAKT</a>');
sigurno dospjeti neki spam robot, i tad ste veü // -->
u bazi nekog dosadnog tipa i možete oþekivati </script>
da üe koliþina spama rasti iz mjeseca u mjesec,
još ako budete pokretali linkove koji Vam se Ovaj script jednostavno postavite na mjesto
nude u tim porukama ili pokrenete link za gdje zelite da se nalazi kontakt link. Rezultat
navodno brisanje sa njegove mail liste (þime izvoÿenja ovog JavaScripta je:
üete mu samo potvrditi da je Vaša adresa
aktivna) možete oþekivati sve veüi broj neže- KONTAKT
ljenih poruka. Da bi ste izbjegli ovaku situaciju
evo nekoliko trikova kako da prikrijete svoju primjeüujete da je mail adresa isjeckana i pri-
kontakt email adresu na Vašoj web stranici. družena varijablama prvi, drugi, treci, adresa,
Najjednostvniji da ne kažem i “najprimitivniji “ domena, ext a znak @ se ispisuje pomoüu
koji sam davno vidjeo je bio u tome da se upiše &#64 , na taj naþin se spreþava spam robot da
pogrešna (nepostojeüa) adresa, a da se u preuzme Vašu email adresu.
nastavku da obješnjenje kako poslati email. Ova metoda je mnogo elegantnija od
npr: prethodnih jer korisnik jednim klikom pokreüe
svoj mail klijent sa upisanom Vašom adresom.
"pišite mi na nospam@bhwm.org (molim Vas
zamjenite "nospam" sa "dragan" u email ýetvrti naþin je da na mjestu gdje zelite da
addresi.)" korisnik pokrene email link , postavite Flash
dugme kojem je pridružena akcija mailto:
na ovaj naþin spam robot üe preuzeti neposto- vašeime@domena.com , spam roboti nisu u
jeüu adresu nospam@bhwm.org, naravno ova- stanju da proþitaju komande pisane u Flash
kav naþin nije nimalo elegantan i mnogi (koji filmovima (bar za sada) i ovo je priliþno
nisu upuüeni u problem spama) üe se zapitati elegantno riješenje jer Flash dugme može biti i
þemu to, kad je na mnogim stranicama dovo- dekoracija Vaše stranice
ljno samo kliknuti na link?

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 14


BASICInstintc - RealBasic ( VIII dio )

Scripting Aplikacije

PO ŽELJI KORISNIKA
< Sead Alispahiþ >

O
nog trenutka kada napravite instancu RBScript klase, otvorili ste vrata
moguünosti da se vaša aplikacija mijenja po želji korisnika

Macros poveüali upotrebljivost programa. Unutar te


klase se nalazi subset REALBasic progra-
Veliki broj aplikacija danas omoguüava mskog jezika. (kada kazem subset mislim
svojim korisnicima da dodaju funkcionalno- na smanjenu funkcionalnost REALBasic jezi-
sti, koje im možda nedostaju. Jedan od ka, nešto kao VBScript u svijetu Microsofta).
najboljih primjera toga je i VBA, to jest Onog trenutka kada napravite instancu
Visual Basic for Applications, koje Microsoft RBScript klase, otvorili ste vrata moguünosti
dijeli sa svojim aplikacijama. I vaša aplika- da se vaša aplikacija mijenja po želji kori-
cija može imati podršku za skripting bez snika. RBScript podržava veliku veüinu stri-
previše problema. REALBasic vam to omo- ng i matematiþkih operacija, podržava sve
guüava, direktno iz kutije. standardne tipove, sa dodatkom array-a i
sve moguünosti struktuiranja programa. Mi
RBScript üemo danas praviti malu aplikaciju koja üe
moüi da se skripta.
RBScript je klasa/komponenta koju mo-
žete koristiti u svojoj aplikaciji kako biste

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 15


BASICInstintc - RealBasic ( VIII dio )

Script Kontrola Sub Action()


RBS.Source = txtInput.Text
Neko RBScript kontrolu zove kontrola, RBS.Run
neko je zove klasa, neko komponenta. End Sub
Pokušat üu je zvati komponenta, ali nemojte
mi zamjeriti ako pogriješim. Nego da se
Ovaj kod kaže RBS komponenti gdje da
vratim na temu: RBS komponenta se može
naÿe source koji treba da izvrši i da ga
naüi na komponent paleti REALBasica. Ima
izvrši.
ikonu vrlo sliþnu ikoni VBS, ili JS doku-
Sada trebamo pokazati output. RBScript
menata na windows platformi, što üe reüi
kontrola ima handlere za Print akciju, tako
jedan scroll papira, u našem sluþaju sa
da u taj handler trebate upisati sljedeüi kod:
dodatkom zelene kocke, da se zna da je
REALBasic. Prije nego išta uradimo, poþnite
novi projekt i na novu formu stavite dva Sub Print(msg As String)
EditField-a, jedan CommandButton i RBScri- txtOutput.text = ""
pt komponente. Promijenite im imena u txtOutput.text = msg
txtInput, txtOutput, cmdRun i RBS. Sada bi End Sub
vaša aplikacija trebala izgledati otprilike
ovako:

Nadam se da ne moram objašnjavati šta


Sada u Action handler vašeg cmdRun ovaj kod radi.
dodajte sljedeüi kod: Sljedeüa stvar je da vidimo kako to þudo
radi. Kliknite run i u txtInput napišite print
("ASDF.developer i REALBasic rulez")
Kliknite cmdRun.

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 16


BASICInstintc - RealBasic ( VIII dio )

Nije loše za dva minuta programiranja. Ukoliko hoüete raditi neke matematiþke
jednaþine, samo pazite da sve što hoüete prikazati bude string. Recimo,
print(Str(2+5)) u txtInput i kliknite cmdRun. U txtOutput üe se pojaviti 7.

Aframe Software - Affordable and easy to use electronic


assessment solutions for educational and training organisations.

Using advanced multimedia technology Aframe has set a new


benchmark for automating the assessment process. Aframe has
developed intuitive software that allows easy and rapid authoring
of tests that can incorporate video, sound, graphics and animation.

The authored tests can be easily deployed to one or many students


on almost any standalone computer or via network connected
computers on local or wide area networks or via the Internet - giving
students and trainees access to assessment material on both a local
and global scale.

http://www.aframe.com.au/

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 17


BASICInstintc -VisualBasic ( VII dio )

Objekat Orijentirano Programiranje

OOP ZA 10 MINUTA
< Sead Alispahiþ >

N
e, OOP nije jednostavan, daleko od toga. Ali je jednostavan koncept i leži mu
ljenost programera.

U jednom od prošlih brojeva smo pokazali pravite jednu novu soluciju. Dodajte u njega dva
kako VB.NET priþa sa ostatkom .NET jezika. Ako nova projekta, jedan neka bude Windows
ste proþitali þlanak, možda ste izvukli sliþan za- Application i neka se zove Interface, a drugi
kljuþak kao ja, a to je da se potreba za mije- neka bude Class Library i neka se zove Business.
šanjem jezika u .NET okruženju svela na mini- Sada imate novu soluciju sa dva projekta unu-
mum. Prije nekoliko godina, interface se pravio tra. Ukoliko ste pogledali prošli broj, znate da
u VB-u, business logika ili u C++, ili ako je Interface more imati referencu na Business
sistem veü postojeüi, koji treba samo malo ulje- logiku.
pšavanja za modernog korisnika, þak i COBOL-u.
Danas u vrijeme .NET to se sve stapa u jedan OOP za 10 minuta
veliki lonac. Po mom mišljenju, .NET je poprili-
þno ukinuo potrebu za korištenjem više jezika u Bio bih vrlo nefer kada bih vam rekao da je
jednom projektu. Sada, ukoliko želite praviti OOP tako jednostavan da üete nakon današnjeg
nešto u .NET okruženju, izbor jezika pada na dana biti u moguünosti da budete arhitekta.
jedino liþne preference. Neki ljudi vole C-like Daleko od toga. Ovdje üu vam pokušati pokazati
jezike, kao što su C++, ili C#, dok drugi opet kako se stvari mogu rješavati u VB.NET koristeüi
vole takozvane blok jezike, kao što je BASIC, ili objekte, ali to nikako neüe biti dovoljno da
PASCAL. kažete da ste ih savladali. Nakon što proþitate
Ah, da, sada üe ljudi koji vole da se muþe reüi ovaj þlanak, posjetite:
da C++ ima gomilu stvari koje VB nema. Možda http://most-art.de/ctutorial/oop/1100.php
je to bilo pravilno u doba prije .NET platforme. gdje üete naüi vjerovatno najdetaljniji teþaj OOP
Sada, po mom liþnom zapažanju, što vi svi tre- na teritoriji bivše Yu. Ovdje üemo vam dati kick
bate uzeti sa dozom opreza, VB.NET ima sve start, dakle osnove OOP-a.
osobine pravog programskog jezika, i u svakom U osnovi, OOP leži ljenost programera. Nama
sluþaju može biti konkurent svim jezicima, pa i je mrsko sjediti pred raþunarom i pisati kod, ka-
JAVA-i. da možemo to isto vrijeme provesti pred raþu-
Danas üemo pogledati stvari koje su progra- narom pišuüi kod :) Da bi dobili što više slobo-
meri u VB-u do danas izbjegavali. Objekat Orije- dnog vremena, koje üe provesti pred raþunarom,
ntirano Programiranje je ovdje, vrijeme nam je programeri su izumili prvo proceduralno progra-
da ga nauþimo. miranje, ali to nije bilo to. Onda su neki pametni
i lijeni ljudi skontali OOP.
SVAKI POýETAK JE TEŽAK
PEGLA ýIKO
Ili, nije. OOP je vrlo jednostavan koncept, a
ako üemo pravo, puno je jednostavniji od proce- Prvo jedan mali detur, sta je to objekt u OOP?
duralnog koncepta. No, da ne dužim više, na- Objekt je instanca klase. OK, šta je to klasa?

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 18


BASICInstintc -VisualBasic ( VII dio )

Klasa je skup propertija i metoda koji prave plan Ispod ova dva membera upišite sljedeüu liniju i
za objekt. Da ja krenem od poþetka? pritisnite enter:
Selektirajte Business projekt u soluciji i onda
odaberite Project menu item i tamo odaberite Public Property Ime() As String
Add New Item. U Add New Item dijalogu odabe-
rite Class. U Name polje upišite clsOsoba.vb i
kliknite OK. Sada imate novu klasu u svom VB.NET je dovoljno pametan da napravi templa-
Business projektu. te za property. Napravite propertije za oba
membera i popunite ih da izgledaju ovako:

Public Class clsOsoba


Private m_strIme As String
Private m_strPrezime As String
Public Property Ime() As String
Get
Return m_strIme
End Get
Set(ByVal Value As String)
m_strIme = Value
End Set
End Property
Public Property Prezime() As String
Get
Return m_strPrezime
End Get
Set(ByVal Value As String)
m_strPrezime = Value
Klasa moze imati members (þlanovi), properties End Set
(propertiji), methods (metodi). Members su End Property
privatne veliþine koje služe da se u njima drže End Class
neke vrijednosti. Recimo, naša klasa osoba üe
imati dva membera, m_strIme i m_strPrezime Get dio propertija je zadužen za vraüanje vri-
oba tipa string. Sada bi vaša klasa trebala jednosti koja je u member-u, a set je zadužen
izgledati otprilike ovako: za postavljanje vrijednosti u memberu.
Sada, u svom Interface projektu, otvorite Formu
i na nju dodajte jedno dugme. U Click handler
Public Class clsOsoba
Private m_strIme As String tog dugmeta upišite, sljedeüi kod: (TABELA 1)
Private m_strPrezime As String
End Class Može vam se þiniti da je ovo nešto vrlo jedno-
stavno, ali vi ste upravo uradili gomilu stvari
koje niste mogli uraditi bez OOP. Prvo ste dekla-
Ovo Private ispred imena znaþi da je veliþina risali novu variablu tipa Business.clsOsoba, da bi
privatna samo za ovu klasu. odnosno da se u je zatim INSTANCIRALI. Neko üe ovo zvati i ini-
ovoj klasi svi metodi mogu vidjeti, ali izvan klase cijalizirali, ali ja se trudim da to ne uradim, jer
je ne može vidjeti niko. To ponekad i treba biti mislim da je “inicijalizirali” nešto drugo. Zatim
tako, ali u principu nije. Zato koristimo Properti- ste taj objekt napunili koristeüi Set dijelove
je, koji su poseban tip metoda. propertija.

TABELA1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


Dim Osoba As Business.clsOsoba = New Business.clsOsoba()
Osoba.Ime = "Sead"
Osoba.Prezime = "Alispahic"
End Sub

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 19


BASICInstintc -VisualBasic ( VII dio )

NASLJEĈIVANJE üe takoÿe naslijediti clsOsoba, ali üe se zvati


clsUþitelj. Podesite je da izgleda ovako:
Sada veü imate objekte koje možete koristiti,
ali su suviše jednostavni. Šta, recimo, da imamo Public Class clsUcitelj
školu u kojoj imamo uþenike i profesore? I jedni Inherits clsOsoba
i drugi su osobe, ali uþenik nije profesor i obra- Public Function ObjektTip() As String
tno. Da ne bi ponovno izmišljali klasu Osoba, mi Return "ucitelj"
je naslijedimo u našim sub klasama. Najbolje se End Function
uþi na primjeru. U svoj Business projekt dodajte End Class
još jednu klasu, neka se zove clsUþenik. Prva
linija ispod deklaracije klase mora reüi da mi Znaþi, ista je kao i uþenik, s tim što vraüa
nasljeÿujemo klasu clsOsoba. "ucitelj". E, za kraj, da vas malo zbunim. Vi i
Uþitelja i uþenika možete zvati osobom u stva-
rnom životu, ali bi se raþunar zabunio. Ispravno?
Public Class clsUcenik
Inherits clsOsoba NE! Oni su i dalje osobe, mada su i uþenici i
uþitelji. Da bi vam pokazao šta mislim, evo je-
Public Function ObjektTip() As String dnog malog experimenta. Promijenite svoj Click
Return "ucenik" handler u Interface logici u nešto što izgleda
End Function ovako: (TABELA 3)
End Class
Mi ovdje deklarišemo Uþenika i Uþitelja prvo kao
Kada ste završili sa klasom uþenik, promijenite osobu, pa onda kao uþenika i uþitelja. Sada kada
Click handler dugmeta u Interface projektu u bi neko pokušao da ih manipuliše kao osobe, oni
nešto sliþno ovome: (TABELA 2) bi odgovarali na sve to korektno. Jedino kada
smo kastirali koristeüi:
Obratite pažnju da imate sve što ima i clsOsoba, CType(Ucenik, Business.clsUcenik).ObjektTip i
plus što imate i dodatnu funkciju ObjektTip. CType(Ucitelj, Business.clsUcitelj).ObjektTip
Upravo ste napravili vaš prvi inheritance. objekti su shvatili da su oni i pride uþenik i
ýestitamo. Sada napravite još jednu klasu, koja uþitelj.

TABELA 2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Ucenik As Business.clsUcenik = New Business.clsUcenik()
Ucenik.Ime = "Sead"
Ucenik.Prezime = "Alispahic"
MsgBox(Ucenik.ObjektTip)

End Sub

TABELA 3
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Ucenik As Business.clsOsoba = New Business.clsUcenik()
Dim Ucitelj As Business.clsOsoba = New Business.clsUcitelj()
Ucenik.Ime = "Sead"
Ucenik.Prezime = "Alispahic"
Ucitelj.Ime = "Pegla"
Ucitelj.Prezime = "Davic"

MsgBox(CType(Ucenik, Business.clsUcenik).ObjektTip)
MsgBox(CType(Ucitelj, Business.clsUcitelj).ObjektTip)

End Sub

Je li dosta za ovaj put? Ako mislite da vam treba više OOP-a pišite, adresu znate.

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 20


ASP Teèaj - ( VIII dio )

Rad sa bazama podataka II dio

STORED PROCEDURES
< Željko Kvesiþ >

U
ovom broju ponovo üemo se pozabaviti sa bazama podataka, no ovaj put
koristit üemo stored procedures da bismo vršili upite unutar MS SQL baze
podataka. Više o samom TSQL- pisat üemo u MS SQL teþaju.

U našem serijalu veü smo pisali o radu sa ba- šu bazu i kliknite na stored procedures posta-
zama podataka, o tome kako se vrše upiti unu- vku na lijevoj strani (pogledajte sliku 1.).
tar nje. No, sve smo radili kreirajuüi direktno Slika 1.
unutar ASP skripta naše SQL upite, i onda ih,
pomoüu osobine Source jednog recordset obje-
kta, “startali”.
Danas üemo se upoznati sa stored procedures
(pohranjeno procedure, u daljem tekst SP), te
kako ih pozvati iz ASP skripti.

ŠTO NAM JE POTREBNO?

Manimo se teorije i krenimo sa praksom: kao


prvo, da bismo uopüe ovako vršili upite moramo
kreirati jednu SP i pohraniti je u našu bazu
podataka. Stored procedures su upiti u SQL baze
pisani u Transact SQL-u, vrsti programskog
jezika u Microsoftovom izdanju koji osim upita u Desno üe se pojaviti sve procedure pohranjene u
bazi nudi i dodatne funkcije, i može se reüi da je vašoj bazi. Kliknite desnim dugmetom miša i
skoro pa i vrsta programskog jezika. onda na postavku New stored procedure..
Objašnjavanje cijelog TSQL-a probilo bi mo- (pogledajte sliku 2.)
guünosti ne samo þlanka nego i cijelog maga- Slika 2:
zina, te üemo ga stoga opisivati tijekom MS SQL
teþaja. Ovdje üu navesti jedan primjer jedno-
stavne SP i kako istu uvezati u ASP skript.
Cilj þlanka je da na kraju razumijete kako i gdje
se kreiraju SP, te kako ih koristiti u svojim web
aplikacijama.

Kreirajmo jednu stored procedure!

Da bismo dodali novu SP u našu bazu, jedno-


stavno startajte Enterprisemanager, otvorite va-

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 21


ASP Teèaj - ( VIII dio )

Pojavit üe se prozor sa slike 3. u koji üete unijeti Kako uvezati SP unutar ASP skripti?
vaš kod, MS SQL veü dodaje standardni kôd i to
sljedeüe: Evo i dijela koji nam je najinteresantniji, a to
je riješiti pitanje uvezivanja SP-a u ASP skript.
CREATE PROCEDURE [OWNER].[PROCEDURE NAME] AS Nauþili smo veü da nam je za upite unutar baza
podataka potreban recordset, identiþno je i uko-
Slika 3:
liko se koristimo sa pohranjenim procedurama.
Dakle prvi korak je kreiranje recordset-a.
Dalje nam je potreban pomalo zaboravljeni com-
mand objekat.
Uzet üemo kao zdravo za gotovo da smo veü kr-
eirali naš Connection objekat, evo kako üe izgle-
dati kôd:

Kôd 2:

1: 'definišemo varijable
2: Dim objCmd,objRs,UserID,Source
3: Set objCmd = Server.CreateObject
("ADODB.Command")
4: Set objRs = Server.CreateObject
("ADODB.Recordset")
5: Set objCmd.ActiveConnection = objConn
6: ' dodajmo comand objektu SP naredbu:
7: objCmd.CommandText = "_insWebUser"
8: objCmd.CommandType = adCmdStoredProc
Mi üemo kreirati jedan upit za našu newsletter 9: ‘startajmo našu proceduru:
aplikaciju kojom üemo za odreÿeni link njegov 10: objCmd.Execute ,Value
counter poveüati za 1. Dakle realizacija obiþnog
REPORTING TOOL-a koji je minimum za newsle-
tter aplikacije. Znam znam, dugujem vam pojašnjenje. Krenut
Evo kôd-a koji üemo odmah pobliže objasniti: üu sa dna procedure..pitate se što je Value.
Uvijek prakticiram pri ovakvom startu SP-ova
Kôd 1: opozvati ih sa jednim nizom. Value je dakle biz
(array) koji sadrži dva moja argumenta, kreiram
CREATE PROCEDURE _upBackClicks ga ovako:
/* ovdje definisemo varijable */
dim Value (2)
@LinkID int, Value(0)= Request("LinkID")
@Counter int
AS Value(1)= Request("Counter")
/* ovdje vršimo update */
UPDATE BackClicks Vratimo se na poþetak, definišemo standardno
SET CounterClicks = @Counter varijable, kreiramo recordset i command obje-
WHERE (BackclickID = @LinkID)
/* ovime startamo procedure ovime kte. Dodijelimo command objektu njegovu vezu
procedura uvijek završava! */ sa bazom (metoda ActiveConnection) i dodje-
GO limo istom command objektu našu pohranjenu
proceduru. To radimo u retku 7, commandText
= ImeProcedure. Moramo još reüi o kakvoj se
Dakle što smo napravili, kreirali smo proceduru naredbi radi (da je rijeþ o SP), to je redak 8 i
koja se zove _upBackClicks i koja prima dvije sada možemo startati naš SQL upit.
varijable, dakle nju üemo nalik funkciji opozvati Vidimo da se iza svega ne krije mnogo koda i da
predajuüi joj dva argumenta i to LinkID i sam opoziv nije nikakvo þudo. No ovo je jedan
Counter. naþin startanja upita pomoüu SP-ova. Druga
Nakon AS slijedi SQL upit u ovom sluþaju jedan moguünost je pomoüu parametara. To je metoda
UPDATE query. Command objekta. Jednom objektu možemo
Gore navedeni kôd teoretski možete kopirati pridružiti jedan ili više parametara. Ti parametri
unutar prozora sa slike 3. i nakon klika OK. nisu ništa drugo nego argumenti s kojima üe SP
Ukoliko niste napravili grešku, bit üe kreirana biti startan. Evo kako to radimo konkretno:
nova procedura. Ovako kreirana procedura sada
se može koristiti u vašoj ASP aplikaciji.

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 22


ASP Teèaj - ( VIII dio )

kôd 3: SQL nudi su nevjerojatne. Neüete vjerovati što


je sve moguüe realizirati koristeüi ASP i MS
1: objCmd.Parameters ("@LinkID") =
Request("LinkID") SQL/stored procedures. No Transact SQL suviše
2: objCmd.Parameters ("@Counter") = je opširan da bi smo se pobliže zabavili njime u
Request("Counter") sklopu ovog þlanka.
3: objCmd.Execute

Konvencija za nazive stored procedures-a:


Kao što vidite, nakon što smo kreirali parametre,
Pri pisanju procedura unutar MS SQL-a
dovoljno je comandu startati sa execute i naš
preporuþuje se korištenje sljedeüe konvencije za
rezultat je tu.
davanje naziva. Ovo naravno nije obavezno, no
daje vam bolji pregled i uveliko olakšava rad.
PREDNOSTI? MANE? SELECT upite, dakle SELECT upite koji üe vratiti
neki rezultat nazivajte sa prefiksom qry za
Korištenje pohranjenih procedura unutar MS querry, npr: _qrySelectUser. Crtica ispred imena
SQl-a sa sobom u biti nosi samo prednosti. üe sve vaše procedure pokazati na vrhu liste pa
Navest üemo neke od njih: tek onda sistemske procedure.
Update upite, (sa UPDATE naredbom) dajte im
1. brzna, upiti untar baze pri korištenju SP- prefiks analogno prvom primjeru ovako: _up
a su brže, rezultat svega je brža web DELETE Upite: dajte imenu ovakvih procedura
aplikacija (više o performansama pisat sljedeüi prefiks: _del
üemo uskoro u sklopu MS SQL teþaja).
2. modularnost, naime stored procedures Važna je još i sljedeüa preporuka, vašim pro-
su pohranjene centralno, pa ukoliko se cedurama nikada ne dajite ime sa prefiksom sp.
pojavi potreba za promjenom upita, neko MS SQL kada traži proceduru sa sp u imenu,
dodatno polje i sliþno, promjenu morate prvo pokušava da je naÿe u master bazi, bazi
vršiti samo na jednom mjestu. koju sistem pri instalaciji dodaje automatski.
3. Vaše upite možete koristiti bez promjena Ona sadrži sistemske procedure, koje vas u
i unutar Visual Basic aplikacija. ovom trenutku ne interesuju. Ovo üe dodatno
usporiti vašu aplikaciju. Stoga još jednom pre-
To su samo neke od prednosti koje nam SP-ovi poruþujem držanje gore navedene konvencije.
donose, no osim toga moguünosti koje Transact

To bi bilo sve za ovo izdanje našeg ASP serijala. Domaüi zadatak je da malo eksperime-
ntišete sa ovim procedurama i kreirate neke osnovne upite kako biste stekli osjeüaj za rad
sa njima.
Ukoliko imate nekih pitanja, primjedbi ili savjeta, pišite mi direktno putem e-Pošte na
adresu zk@asdfdeveloper.com , ili putem našeg foruma koji üete naüi na adresi:
http://forum.bhwebmasters.org

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 23


WEB MARKETING - ( III dio )

Projekat – sve popularniji oblik rada (II dio)

ZNAÿAJ DVOSMJERNE
KOMUNIKACIJE
< Nataša PaviĀeviþ >

Š
to je projekat složeniji, to je više ljudi angažovano, a samim tim su i veüe
šanse da se temperamenti i karakteri sukobe. Svi angažovani imaju zajedniþki
cilj – sprovoÿenje ideje u stvarnost, ali gledaju svijet kroz svoju prizmu

Rad na projektima je grupni rad. Ulozi voÿe mnogo više ideja vezanih, ne samo za aktuelni
projekta posvetiüemo se u nekom od iduüih bro- problem i projekat, veü i za buduüe projekte.
jeva, a za ovaj put fokusiraüemo se na uþesnike Razliþite metode rada kod pojedinih þlanova
u projektu. Naravno, polazimo od pretpostavke obogaüuju nas svkodnevno novim iskustvima.
da su suradnici na projektu kompetentni u svo- Ne manje bitna je i pozitivna atmosfera koja
jim oblastima, tj da imaju odgovarajuüe obrazo- daje dodatnu energiju svim þlanovima. Sve je-
vanje, znanje i iskustvo. Moram naglasiti da se, dan þlan je podjednako važan u grupi. Teško da
u daljem tekstu, pod grupom podrazumijeva možemo snositi odgovornost za ponašanje i
organizovana grupa, tj. Tim, a ne bilo koja sku- aktivnost ostalih þlanova grupe, meÿutim sigu-
pina ljudi istih ili sliþnih interesovanja. Grupni rno snosimo odgovornost za sopstveno ponaša-
rad, kao i sve drugo, ima svoje mane i predno- nje i angažovanost. Grupa üe biti efektivna i
sti. Cilj ovoga þlanka je ukazati i na jedne i na imati pozitivan uþinak samo ako svi þlanovi u
druge, te vam proširiti vidike i pomoüi u boljem potpunosti razumiju cilj i podciljeve projekta i
razumijevanju vaših suradnika. Dakle, prvo svoju ulogu shvate podjednako savjesno. Je-
pozitivne strane. dnostavno reþeno suradnici moraju:

POZITIVAN UýINAK x biti upoznati sa formom projekta te naþi-


nom i metodama rada,
x Efektivnost grupe je veüa od zbira x pokazati poslovnost, meÿusobno poštova-
efektivnosti pojedinaþnih þlanova. nje i razumijevanje
x Znanje grupe je veüe od zbira znanja x biti upoznati sa oþekivanjima naruþioca
pojedinaþnih þlanova. projekta i ispoljiti svoja oþekivanja
x Kreativnost grupe je veüa od zbira x biti informisani o dešavanjima u razliþitim
kreativnosti pojedinaþnih þlanova. fazama i dijelovima projekta, uþestvovatii
aktivno u diskusijama i iznositi svoja mi-
ýlanovi grupe inspirišu jedni druge. Kroz šljenja i ideje bez bojazni da bi ih drugi mo-
zajedniþko rješavanje problema svaka individua gli omalovažavati
gleda na problem iz svoje perspektive što otva- x biti motivisani
ra mnogo više moguünosti za rješavanje. Sa
druge strane, znanje pojedinaþnih þlanova se
neminovno nadopunjava. Kroz diskusije se raÿa

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 24


WEB MARKETING - ( III dio )

x biti spremni da aktivno uþestvuju u konfli- Svaki pojedinaþni þlan jeste individua, ali je i dio
ktima u kojima üe, eventualno argume- grupe. Osjeüaj pripadnosti i prihvaüenosti je od
ntovano braniti svoje stavove i pokazati neprocijenjljive vrijednosti. Uspjeh je definitivno
spremnost da situaciju sagledaju objektivno postignut kada uþesnik u razgovorima o projektu
x biti spremni da prime i daju konsktruktivnu govori u prvom licu množine (mi) umjesto u
kritiku kao i da zajedno pohvale i proslave prvom licu jednine (ja). To ”MI”, koje ustvari
uspjehe ( feedback) predstavlja naša osjeüanja, ne nastaje preko
noüi, veü je rezultat emotivnog procesa u kojem
x imati osjecaj da je njihov rad bitan
smo sagledali situaciju, ocijenili i procijenili svoje
kolege u grupi i donijeli odluku gdje svoje JA
Motivacija je motor koji nas pokreüe. Da bi
stavljamo u podreÿeni položaj onome MI i
uložili sebe i bili aktivni mora postojati volja.
priznajemo sebi – “ja sam dio ove grupe“.
Volja sama po sebi je uvijek produkt potreba
Naravno, taj proces zahtjeva odreÿeno vrijeme, i
koje želimo zadovoljiti. Poznata je stepenica
na žalost, kolege mogu najþešüe priznati da se
potreba koju je formulisao Abraham Maslow,
poznaju tek po završetku nekog projekta. Iz tog
poznati istraživaþ u oblasti motivacije:
razloga se sve þešüe odvajaju posebni resursi za
upoznavanje suradnika prije poþetka konkretnog
Priznanje, rada na projektu. Na kraju krajeva, koliko god
samostalnost se u samom poþetku investiralo na razne akti-
Samopri-
znanje vnosti koje üe omoguüiti bolje upoznavanje i
zbližavanje suradnika, sigurno je manje od tro-
škova koji se neplanirano nameüu tokom rada,
Socijalne zbog neorganizovanosti ili konflikata meÿu sura-
potrebe
dnicima na projektu. Statistike govore da su
Sigurnost,
kontrola
konflikti meÿu ljudskim resursima uzrok kod þak
Fizicke 75 odsto neuspjelih projekata.
potrebe
PRVI SUSRET
Kakvi onda motivi mogu biti produkt gore nave-
denih potreba? U vremenu i uslovima u kojim Šta se onda dešava kada se prvi put sretnemo?
živimo, kao prvi motiv nameüu se ekonomske Prvi susret je jednako emotivno težak za sve
prednosti. Ne manje važni su interesantni zadaci suradnike iz prostog razloga što se svi osjeüaju
i problemi sa kojima se svakodnevno susreüe- nesigurnim. Koliko vremena nam je potrebno da
mo, a koji nam pomažu da se intelektualno una- se ”odomaüimo” i opustimo je veoma individu-
preÿujemo. Pozitivna atmosfera i povjerenje u alno, nekome je dovoljno samo par minuta pa
radne kolege ulivaju nam sigurnost. Naravno, tu da veü stvori prvi utisak o buduüim kolegama,
su onda i priznanje, ukazano nam povjerenje, dok je drugima potrebno puno više vremena.
podrška, povjerena odgovornost, te poštovanje Tokom prvog susreta svjesni smo da smo pre-
koje dobijamo pomažu samopotvrÿivanju i sa- dmet posmatranja, isto kao što i mi posma-
mopouzdanju. Efektivnost je usko povezana sa tramo druge. Sva þula (osim naravno ukusa) su
veliþinom grupe, uostalom to nam najbolje podjednako zastupljena u donošenju suda o
pokazuje sljedeüi dijagram: jednoj osobi; slušamo intonaciju, akcenat, boju
Efektivnost glasa, visinu tona, obraüamo pažnju na mimiku,
pojavu, hod,… pri rukovanju ocjenjujemo þovje-
ka po stisku ruke i naþinu rukovanja, dok miris,
u koliko se ne radi o nekom jaþem parfemu,
doživljavamo skoro 100 posto podsvjesno (to je
ona famozna hemija meÿu ljudima o kojoj se
toliko priþa). Na osnovu pokupljenih ”signala”
pravimo asocijacije i pripisujemo našim buduüim
suradnicima izvjesne osobine, a na osnovu tih
osobina svrstavamo ih u one koji nam ”leže” i
one koji nam ”ne leže”. Kasnije, kada smo se
veü bolje upoznali, imamo mnogo više ”mate-
Veliþina grupe rijala”, pa svoj prvobitni stav kristališemo ili
nerijetko, totalno mijenjamo. ýesto se govori o
3 5 7 9 11

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 25


WEB MARKETING - ( III dio )

ulogama koje þlanovi jedne grupe zauzimaju pri COMMUNICARE - ”RADITI ZAJEDNO”
prvom susretu. Uglavnom se istražitelji iz ove
oblasti fokusiraju na model sa þetiri standardna Komunikacija u grupi bi trebalo da izgleda
tipa: Dominantni, Povuþeni, Klovnovi i Agresivni. ovako:
Naravno da se svi ne možemo svrstati u jednu
od ove þetiri grupe ali pogledajmo ipak koje su
njihove karakteristike.

Dominantan tip je samopouzdan i siguran.


Meÿutim, nerijetko je to maska. Pokušavajuüi da
pobijedi sopstvenu nesigurnost, on pokušava
jasno (da ne kažem napadno) svima staviti na
znanje koja je njegova pozicija. Šta je konkre-
tno u pitanju obiþno se pokaže veü na ”drugi
pogled”.

Povuþeni tip je posmatraþ, radije nego uþesnik.


I ova uloga može kriti dvije razliþite osobe -
pažljivog, obazrivog, odmjerenog ili pak nezai-
nteresovanog, nesigurnog i odsutnog što je ipak
rijeÿi sluþaj. Ovaj tip þesto na kraju ”sprovede
svoju volju” na miran i staložen naþin, nakon što
su ostali tipovi potrošili energiju pokušavajuüi da
se istaknu.

Klovn je razbibriga u grupi. On uvijek naÿe Komunikacija je uzajamna razmjena


naþine da šalom osvježi neprijatne situacije. On informacija!
je u principu veseljak, ali može i da postigne
negativan efekat na grupu ukoliko koristi šalu
Potreba za komunikacijom stara je koliko i sam
kao obrambeni mehanizam. Takva vrsta šale se
þovjek. Meÿutim, nerijetko, dešava se da nismo
teže kontroliše i postoji opasnost da vremenom
zadovoljni komunikacijom. Komunikacija je efi-
postane kontraefektna.
kasna samo ako je dvosmjerna. Jednosmjernom
komunikacijom možemo nazvati štampu ili ele-
Agresivni tip ispoljava svoje nezadovoljstvo bez ktronske medije, ali recimo i nareÿenja u vojsci.
ustezanja. On je buntovnik i radikal. Njegov agr- U jednosmjernoj komunikaciji nema mjesta
esivitet može biti jako pozitivan za þitavu grupu, našem mišljenju, niti pošiljalac može biti siguran
jer on zahtjeva da se nesporazumi i problemi da je poruka koju nam upuüuje primljena,
rješavaju otvoreno i efikasno. Mnogo je opasniji shvaüena ili prihvaüena. U radu na projektima, ili
tzv. ”prikriveni” agresivac, koji šutnjom podriva u grupnom radu uopšte, jednosmjerna komuni-
rad þitave grupe. kacija je neefikasna i destruktivna. Slobodnim,
opuštenim komuniciranjem sa svojim suradnici-
U ovoj podjeli, dodala bih rado još jednu grupu, ma stvaramo dragocjeni prostor za eventualne
a to su Individualisti. Oni se obiþno drže po komentare, diskusije, prijedloge. Meÿu suradni-
strani i svoju ulogu zadržavaju od prvog susreta cima se stvara osjeüaj sigurnosti i potvrde da je
do kraja projekta. Navikli su da rade sami, mada njihovo mišljenje bitno i da se njihov glas þuje.
savršeno funkcionišu i u grupi. Cilj komunikacije nije poslati poruku primaocu,
cilj je dobiti odgovor. Cilj nije da informišemo
Malo je teže prepoznati sebe u ovim grupama, veü da uspostavimo kontakt, cilj je dijalog, a ne
ali priznaüete da ste þitajuüi o svakom pojedi- monolog. Komunikacija u radu razlikuje se od
naþnom tipu našli ”živi” primjer iz sopstvene komunikacije u privatnom životu. Na poslu se
okoline. Ne zaboravite da su uloge koje smo veüinom koristimo direktnom komunikacijom
naveli, uloge koje saradnici zauzimaju pri prvom koja bi u principu trebalo da podrazumijeva þetiri
susretu, one se kasnije kroz rad mijenjaju. osnovna momenta: konkretnost, poštovanje,
odgovornost i cilj. Imajte na umu da se ne
podrazumijeva da vas vaši suradnici razumiju.

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 26


WEB MARKETING - ( III dio )

Vodite raþuna da ste konkretni, ostavljanje reagovanja teško može doprinijeti rješenju
nedoreþenih misli suradnicima na slobodnu ma- konflikta.
štu niþemu ne vodi. Svi mi imamo razliþito va-
spitanje, stepen obrazovanja i vrjednovanja, ne
postoji garancija da kolege sa kojima komuni- Borba
ciramo podrazumijevaju stvari na isti naþin kao
mi. Suradnja
Kompromis
KONFLIKTI
Prilagoÿavanje
Konflikti su neminovan dio svakodnevnice, a Izbjegavanje
pogotovo su uþestali u vještaþki stvorenim gru-
pama, gdje su ljudi razliþitih temperamenata,
karaktera i vrjednovanja prinuÿeni na suradnju. Naravno, svjesni smo da ne postoji jedinstveni
Razlog za nastanak konflikta je naša nemogu- recept za rješenje konflikata, ali postoji kultura
ünost ili nespremnost da ako ne shvatimo, ba- komunikacije, postoji dobra volja i par mome-
rem prihvatimo ljude koji se razlikuju od nas. ata koje ne bismo smjeli zanemariti bez obzira
Konflikti sami po sebi i nisu opasni, opasni su na koliþinu adrenalina koja nam udara u glavu:
uþesnici u konfliktu koji nisu spremni na analizi-
ranje problema i eventualna kompromisna rješe-
nja. Kad smo veü kod analize, mogli bismo malo
x Konflikti nisu negativni, konflikti su produ-
tivni, samo ako se rješavaju pravilno.
i obratiti pažnju na razloge zbog kojih dolazi do
konflikata: x Konflikti nastaju najþešce iz razloga što
suradnici ne znaju da riješe problem a ne
zato što neüe.
¾
Ciljevi x Imajte uvijek na umu da se negativna ene-
¾
Metode u ostvarenju ciljeva gija mora rašþistiti i da svi akteri u konfliktu
¾
ýinjenice moraju biti svjesni prvenstveno svoje odgo-
ornosti.
¾
e
x Kada veü doÿe do konflikta nikada ne govo-
¾
Moü - Vlast ite u tuÿe ime, jer kako god da stvari stoje,
¾
Vrednovanja opet su svi odgovorni (þitaj krivi ili pravi)
sai za sebe.
Razliþite reakcije meÿu suradnicima naknadno x konfliktu se mora govoriti ali samo konstru-
pogoršavaju situaciju. Obrambeni mehanizmi tivno, analizirajte uzrok a ne razlog.
veoma lako preuzimaju kontrolu. Kao što se x Mišljenje sve jednog pojedinca je podje-
kaže: ˝sto ljudi – sto üudi˝, tako se jedni služe nako važno i þak nije na odmet poslušati
projekcijom pa krivicu svaljuju na druge, ili re- mišljenje neutralnih kolega.
gresijom tj, totalnim povlaþenjem, ili pak raci- x Ne donosite preuranjene zakljuþke i budite
onalizacijom pa krivicu svaljuju na vanjske fa- spremni da ponovo razmislite.
ktore; drugi filozofiraju i razraÿuju problem do x Slušajte mišljenje vaših suradnika, oni se
iznemoglosti ili se služe asocijacijama, pa novo- obraüaju vama. Ne osuÿujte veü tražite
nastalu situaciju pokušavaju uporediti sa sliþnim arguete. Na kraju krajeva, možda i þujete
problemima iz prošlosti, dok treüi problem najra- nešto pametno!
dije strpaju pod tepih i kreüu dalje kao da se
ništa i nije dogodilo. Kako god sukob ovakvih

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 27


MS SQL - ( III dio)

Uvod - Stored procedures

OSNOVE SINTAKSE TSQL-A


< Željko Kvesiþ >

U
ovomjeseþnom izdanju bavit üemo se sa stored procedure-ima, kako se
izraÿuju, za što su potrebne, osnove sintakse. U daljem tijeku teþaja bavit
üemo se detaljnije sa TSQL-om.

Stored procedures prevodimo bukvalno kao b) brzina i performanse, brzina baze i samim
pohranjene ili snimljene procedure. No, što je to tim aplikacije je centralna i veoma važna tema.
ustvari? Objašnjeno jezikom ”obiþnih smrtnika”, Ovdje üu samo naglasiti da je pri odreÿenim
rekli bismo da su to SQL upiti pohranjeni na operacijama skoro pa i obavezno koristiti proce-
serveru centralno, koje možemo startati preko dure, jer time dobijate na brzini. No performa-
Querry Analyser-a ili iz naših vlastitih aplikacija. nse su tema za sebe i bit üe predmet jednog od
Na prvi pogled zvuþi jednostavno, no moram vas narednih izdanja.
upozoriti na samom poþetku, izrada ovakvih pro- Dakle, razloga ima dovoljno, a ovo su samo
cedura nije nimalo trivijalan posao. Planiranje, dva koja vam veü signaliziraju da je ovo pravi
modeliranje vaše baze, radnje dakle koje dolaze put. Postoje, naravno, situacije u kojima nije
prije programiranja stored procedure-a, iznimno moguüe pratiti ovaj princip, no moja preporuka
su bitni. je, ukoliko su moguünosti tu, iüi ovim “putem”.
U današnjem izdanju našeg MS SQL teþaja
bavit üemo se praktiþnim savjetima, kako dodati Kako kreirati prvu proceduru ?
novu SP, osnove sintakse TSQL-a, te navesti pri-
mjer ovakvih procedura. Da biste dodali jednu novu proceduru, sta-
rtajte Enterprise Manager (vidi prošlu lekciju u
ZAŠTO STORED PROCEDURES? ASDFDeveloper Broj 8.), te se “probijte” do vaše
baze (slika 1.)
Prije no što preÿemo na praktiþne savjete i Slika 1:
pozabavimo se izradom pohranjenih procedura,
ukazat üu vam na neke prednosti koje korištenje
sp-ova nosi sa sobom.Navest üu samo neke:
a) modularnost aplikacije, vaša aplikacija po-
staje modularna i vi odvajate DB logiku od kori-
sniþhkog interfejsa. Ovime ne dobijate samo na
preglednosti, veü su i eventualne promjene na
vašem programu mnogo jednostavnije.
Zamislimo, recimo, da smo u tablici Subscri-
ber, dodali novo polje i sada putem ASP aplika-
cije moramo i to polje popuniti. Onda je naravno
lakše proširiti našu proceduru, nego u nekoliko
skripti naüi odgovarajuüi SQL statement i tu izvr-
šiti promjenu.

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 28


MS SQL - ( III dio)

Kliknite na stored procedures, na desnoj strani daje moguünost da vršite SQL upite, veü daje i
pojavit üe se sve procedure koje su pohranjene moguünost izrade kompleksnih funkcija, sve na-
unutar te baze. Ukoliko do sada na našoj bazi ni- ravno u sprezi sa bazom podataka.
ste radili ništa vidjet üete samo sistemske pro- No dosta teorije, napravimo našu prvu stored
cedure koje MS SQL automatski dodaje pri krei- procedure. Kao prvi primjer, izradit üemo sp koji
ranju baze. Desnim dugmetom miša kliknite na üe vršiti jednostavan upit unutar naše iz News-
desnoj strani gdje su i ostale procedure, pa u letter aplikacije veü poznate tablice Subscribers.
kontekst meniju koji üe se pojaviti kliknite na Uzet üemo jednostavan primjer i to našoj SP pr-
New Storeprocedure..(slika 2.) edat üemo kao argument ID korisnika (primarni
kljþ tablice, polje SubscriberID), a kao rezultat
Slika 2: üe nam naša procedura isporuþiti sve relevantne
podatke o korisniku.

U prozoru sa slike 3. unesimo sljedeüi kôd:

kôd 1.(_qrySubscriber)
1:CREATE PROCEDURE _qrySubscriber
2: @SubscriberID int
3:/* 07-Jul-2003 ZK <- ovo je komentar
*/
4:AS
5: SELECT * FROM Subscriber
Pojavit üe se prozor sa slike 3. koji üe veü sa- 6: WHERE (SubscriberID = @SubscriberID)
držati sljedeüi kôd : 7:GO

CREATE PROCEDURE [OWNER].[PROCEDURE NAME] AS Ovo je, priznajem, najjednostavniji moguüi


primjer, ali ipak sadrži sve najvažnije osnove.
Slika 3: Pojasnit üu redom:

U retku 1. uvijek ide naredba CREATE PROCED-


URE, i iza ime naše procedure. Opcionalno se
može navesti i vlasnik (owner), ukoliko ga ne
navedemo onda je vlasnik jednak izvoditelju
operacije , dakle login-u koji koristimo. Ovom
naredbom MS SQL pri prvom izvoÿenju proce-
dure kreira željenu proceduru.
U retku 2. definišemo varijablu, odnosno argu-
ment koji üe naša procedura primiti. Sve vari-
jable koje ovdje navedete morate pri startanju
procedure istoj i predati (vidi ASP teþaju ovom
broju). U gorenjem sluþaju imamo samo jedan
argument, to je korisniþki ID.
Redak 3. samo je jedan komentar, unutar TSQL-
a komentare poþinjete sa /* i zatvarate sa */.
Ovdje sada možete ukucati kôd vaše proce- Komentar se može pružati i preko više redaka.
dure i pohraniti ga. Prije no što kliknete na OK i Kljuþna rijeþ u retku 4. takoÿe je standardna i
pohranite proceduru, preporuþujem da sa du- oznaþava poþetak samog produktivnog kôda na-
gmiüem Check Syntax provjerite ispravnost še procedure. Ovo možemo uporediti sa begin
vašeg kôda. Ovo naravno nije obavezno, jer koji se koristi kod nekih programskih jezika.
ukoliko vaš TSQL kôd nije u redu, MS SQL neüe Nakon toga, od retka 5. slijedi naš SQL stateme-
pohraniti vašu proceduru i javit üe vam grešku. nt. Želimo, dakle, sve podatke iz tablice Subscri-
Klik na OK dugme pohranit üe vašu proceduru ber korisnika sa kljuþem koji smo predali proce-
pod datim imenom, koje je navedeno u prvom duri. Priznajem, objašnjenje je malo zbunjujuüe,
retku svake procedure (u gornjem kôdu PRO- ali upravo to radi naredba u retku 6:
CEDURE NAME).
Procedure unutar MS SQL-a pisane su u WHERE (SubscriberID = @SubscriberID)
TSQL-u (Transact SQL). TSQL je u biti jedan
“mali” programski jezik, koji ne samo da vam

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 29


MS SQL - ( III dio)

Dakle, gdje je ID = varijabli koju smo predali Petlje su, izmeÿu ostalog, ono što TSQL-u daje
našoj funkciji. dimenziju programskog jezika. Time su mogu-
Naredbom u 7. retku startamo našu proceduru. ünosti koje nam ova alatka nudi nesluüene.
To bi dakle bila najjednostavnija procedura, koja Unutar procedura MS SQL-a moguüe je defini-
sadrži najvažnije osnove TSQL-a i odmah u sta- rati i varijable, dakle paralelno definiranju argu-
rtu nam pokazuje koji su koraci potrebni za menata. Varijable definišemo pomoüu naredbe
izradu jedne procedure. DECLARE, konkretno to izgleda ovako:

Ovo što smo do sada vidjeli þini samo mali DECLARE @ImeVarijable int
dio onoga što nam procedure u kombinaciji sa
TSQL-om nude. Evo nekih primjera koje üu Ovo üe nam kreirati varijablu ImeVarijable
navesti: tipa integer. Tip se uvijek mora obavezno nave-
sti i može imati vrijednost nekog od tipova koje
-IF petlja, unutar pohranjenih procedura nudi MS SQL.
moguüe je koristiti se sa IF petljama, oni unutar Za ovu prvu lekciju navest üu još jednu kori-
TSQL-a imaju sljedeüu sintaksu: snu moguünost, a to je izvoÿenje i startanje dru-
gih procedura unutar jedne procedure, time do-
IF (uvjet) bijate moguünost da prije kreirane procedure sa
BEGIN odreÿenim manje ili više kompleksnim funkcija-
--sql kôd ma ponovno koristiti i time sprijeþite duplicira-
END nje. Sa pohranjenim procedurama susretati üe-
Dakle uvijek sa BEGIN i END blokom. Izmeÿu se mo se još više puta tijekom ovog našeg teþaja.
može nalaziti proizvoljan SQL kôd. Ukoliko imate namjeru ili obavezu ozbiljnije
raditi sa MS SQL-om onda üe vam znanje za rad
-WHILE petlja, analogni su IF petljama samo sa njima biti neophodan.
što je razlika u kljuþnoj rijeþi (WHILE umjesto
IF).

To bi bilo sve za ovaj broj, a u narednom broju ASDFDeveloper.MSSQL teþaja pozabavit üemo
se sa querry analyser-om, još jednom važnom i korisnom alatkom. Nadam se da üete i u
ovim toplim ljetnim mjesecima naüi vremena za naše teþajeve. Ukoliko se pri tome pojave
bilo kakva pitanja, savjeti ili pak kritike osjeüajte se slobodnim da me kontaktirate putem
ePošte: zk@asdfdeveloper.com ili putem našeg foruma koji üete naüi na adresi:
http://forum.bhwebmasters.org

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 30


PHP ( VIII dio )

PHP sessions

SIGURNE SESSION APLIKACIJE

< Mirza Muharemagiþ >

K
ao što smo u zadnja dva þlanka vidjeli, sessions su veoma korisna opcija u
PHP-u, meÿutim one imaju i nekoliko kritiþnih taþaka. To se istiþe i u oficije-
lnom PHP manualu [1] na sessions stranici. Zato smo si za treüi dio serijala o
PHP sessions zadali zadatak da napravimo jednu sigurnu aplikaciju za rad sa
session-ima, tako sto üemo naþin funkcionisanja sessiona promjeniti. Naravno,
teško je govoriti o apsolutno sigurnoj aplikaciji, ali povisiti sigurnost na što viši
nivo, odnosno smanjiti rizik moramo u svakom sluþaju pokušati.

.htaccess file. Još bolje rješenje je da koristimo


Unapreÿivanje sessiona direktorij van html direktorija u koji posjetioci ne
mogu pristupiti, a ako je server dobro konfiguri-
Pitanje je kako možemo unaprijediti sessions san, onda to ne mogu ni drugi useri na serveru.
odnosno šta možemo promjeniti koristeüi naše session.save_path možete promjeniti koma-
znanje o sigurnosnim rupama u PHP-u. Tu su ndom session_save_path(). Ako ipak ne
dvije opcije na koje trebamo direktno uticati pri želimo koristiti file-ove za snimanje sessiona,
kreiranju sessiona: onda možemo kao alternativu koristiti neku SQL
session.save_path i bazu.
cookies.
Ostali faktori vezani npr. za sigurnost identi- Cookies su standardni naþin prenošenja
fikacije posjetioca kroz IP adresu nisu dio session_id-a. Meÿutim ako neki vanjski napadaþ
session aplikacije, veü eksterne aplikacije koja proþita podatke iz našeg cookija, onda üe imati
koristi sessions. Skripta koju üemo mi kreirati je pristup na sve što i mi. Uz to ako je napadaþ u
predviÿena za sessions pri korištenju cookija. stanju da proþita cookie, onda mu može promje-
Naravno, može se relativno lako modifikovati i niti i dužinu trajanja. Ako naš cookie služi za
za funkcionisanje bez cookija, meÿutim korište- identifikaciju npr. naš konto za online-banking, a
nje cookija se u svakom sluþaju preporuþuje. user produži trajanje cookija na par godina,
Dakle krenimo redom. onda možemo biti priliþno sigurni da on neüe biti
samo Big Brother. Zato üemo za korištenje
session.save_path, njegovu funkciju kao i cookija napraviti jedan jednostavan, ali efekti-
probleme smo objasnili u 7. broju ASDF. van identifikacioni sistem.
developer magazina. Da napadaþ, odnosno oso-
ba koja ima pristup ovom direktoriju ne bi isþi- Promjene kojima praktiþno mjenjamo naþin
tala svaki session_id(), promjeniüemo ovaj funkcionisanja sessiona üemo izvršiti pisanjem
direktorij. Možemo slobodno napraviti poddire- sopstvenih session funkcija. PHP nam nudi za to
ktorij u našem html direktoriju, ali onda moramo jednu veoma korisnu komandu:
iskljuþiti Directory Listing najbolje koristeüi session_save_set_handler()

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 31


PHP ( VIII dio )

Ova komanda nam nudi moguünost da defi- pri startanju sessiona jer je onda njegova
nišemo naše session funkcije, a da i dalje može- vrijednost 100%. 100 nije optimalna vrijednost
mo koristiti standardne session komande. jer optereüava sistem nepotrebno i optimalna
vrijednost (zavisno od optereüenosti servera)
Kreiranje funkcija leži izmeÿu 1 i 10 (1%-10%).

Komanda session_save_set_handler() mora Kao što smo na poþetku rekli, session poda-
imati 6 obaveznih parametara. tke üemo snimati u file-ove. Snimanje u neku
Ovi parametri definišu imena funkcija za zapo- bazu funkcioniše na isti naþin i to üe te primjetiti
þinjanje sessiona, þitanje, brisanje itd. Zato je prilikom kreiranja funkcija.
najbolje odmah na poþetku odrediti funkcije: U našoj skripti neüemo modifikovati ni
session.gc_probability ni session.gc_divisor
Parametar Funkcija jer za tim nema potrebe, odnosno to možemo
Otvoriti ss_open() prepustiti konfiguraciji php.ini file-a. Vi naravno
Zatvoriti ss_close() možete koristeüi komandu ini_set() prilagoditi i
ýitati ss_read() ove vrijednosti po potrebi.
Pisati ss_write()
Brisati ss_delete() Primjer 1:
Garbage Collector ss_garbage()
<?php
Funkcijama smo dali imena na engleskom s tim
da je na poþetku dodan sufiks ss, kao skraüeni- /****************************************\
* ss_path - relativni session.save_path
ca za session. Vi možete naravno dati svoja * ss_name - session.name
imena funkcijama. Garbage Collector je fu- * ss_time - session.gc_maxlifetime
nkcija koja obavlja þišüenje starih odnosno * ss_cook - ime za dodatni sigurni cookie
\****************************************/
isteklih sessiona, tako da se ne desi da se $_SS_DATA = array(
sessions stare pola godine i danas još uvijek 'ss_path' => 'tmp_sess',
mogu koristiti. 'ss_name' => 'sid',
'ss_time' => 1440,
'ss_cook' => 'ss_special'
Na poþetku naše session aplikacije možemo (ne );
moramo) definisati odreÿene varijable važne za
sessions. Kao prvo, naravno: ?>
session.save_path, onda
session.gc_maxlifetime ,
koji odreÿuje koliko dugo nas session važi (va- Ovdje smo u jednom array-u definisali varijable
žno za gore spomenuti garbage collector), koju su relevantne za našu skriptu. U nastavku
session.name kojim definišemo ime za session moramo kreirati funkcije. Kao što se u array-u
i session.gc_probability koji definiše vjerova- vidi, session file-ovi üe biti snimljeni u poddire-
tnoüu s kojom üe svaki session startati garbage ktorij tmp_sess. Ta je lokacija relativni path u
collector. Standardna vrijednost je 1 (1%), što odnosu na skriptu. U skripti üemo onda ispraviti
bi znaþilo da üe u prosjeku svaki stoti session tu lokaciju na apsolutni path. Na direktorij sta-
startati garbage collector. Ova varijabla ovisi od vite chmod 600. tako da samo skripta sa se-
varijable session.gc_divisor koji standardno rvera može þitati i pisati u njega.
ima vrijednost 100, i to je ustvari samo dijelioc
za izraþunavanje ovog procenta (1/100 = 1%). Sada kreiramo našu prvu funkciju, koja je
Ako stavimo session.gc_probability na 100, ujedno i najvažnija.
onda üe garbage collector biti pozvan svaki put

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 32


PHP ( VIII dio )

Primjer 2:
<?php

function ss_open()
{
global $_SS_DATA, $_SS_SESS;

// mjenjamo session.save_path u zeljeni dir


$_SS_DATA['ss_path'] = getcwd().'/'.$_SS_DATA['ss_path'];

if (!isset($_COOKIE[$_SS_DATA['ss_cook']]))
{
/* kreiramo jedinstveni id i stavljamo ga u cookie i u var */
$_SS_SESS['ss_id'] = md5(uniqid(''));
setcookie($_SS_DATA['ss_cook'],$_SS_SESS['ss_id'],time()+$_SS_DATA['ss_time']);
}

else
{
$_SS_SESS['ss_id'] = $_COOKIE[$_SS_DATA['ss_cook']];
}

/* Session_file */
$_SS_SESS['file'] = $_SS_DATA['ss_path'].'/ss_'.md5($_SS_SESS['ss_id']);

if (!file_exists($_SS_SESS['file']))
{
fclose(fopen($_SS_SESS['file'],'w'));
$_SS_SESS['sess_data'] = '';
}

eelse
{
$fp = fopen($_SS_SESS['file'],'r');
$_SS_SESS['sess_data'] = fread($fp,filesize($_SS_SESS['file']));
}
}

?>

Funkcija ss_open() se poziva svaki put kada stiti session podatke. Ako je cookie veü poslan,
poþnemo session komandom session_start(). onda uþitavamo id iz cookija.
Array $_SS_DATA i $_SS_SESS (u njemu se
nalaze temporarni session podaci) uþitavamo u Sada dolazi interesantniji dio. Logiþno bi na prvi
funkciju. Nakon toga vršimo prilagavanje pogled bilo da se u funkciji za þitanje sessiona
$_SS_DATA[‘ss_path’] apsolutnoj lokaciji kori- nalaze komande kao fopen() i fread() kojima
steüi komadnu getcwd(). þitamo podatke iz session file-a, meÿutim mi to
radimo u funkciji za startanje sessiona. Ovim že-
Ovo je kljuþni dio, odnosno momenat kada limo da Vam pokažemo da sami možete modi-
sakrivamo odnosno mjenjamo ime cookija. Kao fikovati rad sessiona. Vi isto ovo možete uraditi
što smo rekli, cookie u svom imenu uvijek sadrži u funkciji za þitanje podataka ss_read(). Kao
session_id(), a mi to ne želimo. Zato üemo što vidite sadržaj session file-a se uþitava u
koristiti komandu md5() u kombinaciji sa varijablu $_SS_SESS['sess_data']. U toj varijabli
rand() i uniqid() tako da dobijemo jedan 32- se ubuduüe nalaze svi naši session podaci.
znakovni id. Ovaj id upisujemo u jedan novi
cookie ($_SS_DATA['ss_cook']). To znaþi da sa- Sada dolazi na red upisivanje vrijednosti u
da posjetioc mora imati dva cookija da bi session file. Za to koristimo standardne fopen()
session bio u redu, odnosno da bi mogao kori- i fwrite() komande.

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 33


PHP ( VIII dio )

Primjer 3:

<?php

function ss_write($id,$sess_data)
{
if ($fp = fopen($GLOBALS['_SS_SESS']['file'],'w'))
{
if (fwrite($fp,$sess_data))
{
fclose($fp);
chmod($GLOBALS['_SS_SESS']['file'],0600);
return true;
}
}

return false;
}

?>

Ovdje ne globalizujemo array $_SS_DATA, jer Treüa važna funkcija je ss_garbage(). Ona ja
se ionako sve nalazi u $GLOBALS. Ovdje zadužena za brisanje starih odnosno isteklih
jednostavno kao što vidite otvaramo session file sessiona. Za to koristimo vrijednost (Primjer 1.)
koji smo definisali u funkciji ss_open() i upi- iz varijable $_SS_DATA['time']. U ovoj funkciji
sujemo u njega session podatke, stavljamo odg- pregledamo sve file-ove, i ako je vrijeme za-
ovarajuüi chmod i vraüamo true vrijednost. U dnjeg korištenja file-a bilo prije više od broja
sluþaju greške vraüamo false. sekundi definisanih u gore spomenutoj varijabli,
onda brišemo file.

Primjer 4:

<?php

function ss_garbage()
{
global $_SS_DATA;
if ($ss_dir = @opendir($_SS_DATA['ss_path']))
{
while($file = readdir($ss_dir))
{
if ($file != '.' && $file != '..')
{
$tfile = $_SS_DATA['ss_path'].'/'.$file;

if (is_file($tfile) &&
time() > (@fileatime($tfile)+$_SS_DATA['ss_time']))
{
@unlink($tfile);
}
}
}
}

return true;
}

?>

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 34


PHP ( VIII dio )

U vezi ove funkcije je važno spomenuti da session komandom session_start(), automa-


morate iskljuþiti brisanje '.' i '..'. Nakon toga tski se poziva naša session_start() funkcija
provjeravamo komandom fileatime() kada je odnosno ss_open().
zadnji put ovaj file bio korišten i ako je session Varijabla $_SESSION['brojac'] se pri svakom
istekao, onda brišemo file komandom unlink(). reloadu poveüava za 1. Ako sada skriptu ispro-
Sada su nam ostala još 3 parametra odnosno bate, i ako u browseru vidite broj koji se pri
funkcije zadužene za þitanje session podataka, svakom reloadu poveüava za 1, to znaþi da je
brisanje i zatvaranje sessiona. Njih smo optimi- sve u redu. Podaci odnosno $_SESSION array se
zovali što je moguüe više, tako da one sada nalazi u našem session direktoriju u file-u þije
ovako izgledaju: ime nema veze sa našim session-om na prvi
pogled
Primjer 4:
<?php Facit
function ss_read() { return $GLOBALS['_SS_SESS']['sess_data']; }
function ss_destroy() { return(@unlink($GLOBALS['_SS_SESS']['file'])); } Kao što vidite, ses-
function ss_close() { return true; } sion funkcije se ve-
?> oma lako mogu pri-
lagoditi svojim po-
Funkcija ss_read(), koja bi inaþe morala þitati trebama i sigurnost se može u svakom sluþaju
podatke iz session file-a je sada veoma kratka povisiti.
ispala, jer samo vraüa vrijednost koja je veü Umjesto da ih upisujemo u file, mi možemo sve
uþitana u ss_open() funkciji (Primjer 2.). Ovdje session podatke upisivati u jednu SQL, npr.
samo je važno spomenuti da funkcijom MySQL bazu i tako olakšati administraciju. Ako
ss_destroy() brišemo postojeüi session file, i upisujete podatke u bazu i stalno ih arhivirate,
samim tim završavamo session. onda možete veoma lako pratiti posjetioce svo-
Za kraj moramo identifikovati funkcije koma- jih stranica, možete vidjeti koji je posjetioc koju
ndom session_set_save_handler() i isprobati stranicu otvorio, koliko je vremena tu proveo
skriptu: itd. To su veoma korisni podaci za webmastera i
autora stranice.
Primjer 5: Ova skripta nudi viši nivo sigurnosti nego
<?php
session_name($_SS_DATA['ss_name']);
session_set_save_handler('ss_open','ss_close','ss_read','ss_write','ss_destroy','ss_garbage');
session_start();

echo $_SESSION['brojac']++;
?>
Komandom session_name() postavljamo standardne session funkcije, meÿutim ona se
naše ime za session, a session_set_save_ može još dosta modifkovati. Podatke možete
handler() identificira funkcije. Kada startamo npr. koristeüi mcrypt() komande kodirati itd.

Sve u svemu želimo Vam puno zabave sa session-ima. Za sva pitanja kontaktirajte autora
emailom ili posjetite BHWebmasters forum i u svakom sluþaju pregledajte oficijelne manual
stranice na PHP.net. ýitavu skriptu možete naüi na ASDFdeveloper.com serveru [3].

Linkovi i literatura:
[1] Oficijelni PHP.net manual za sessions:
http://www.php.net/manual/en/ref.session.php
[2] Session komande na našem jeziku:
http://www.php.co.ba/?action=phpcommands&cat=6
[3] ýitav source kôd skripte
http://www.asdfdeveloper.com/~asdf_mm/asdf8/session_skripta.php

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 35


LINUX - ( I dio)

Linux biblioteke

GTK - GIMP TOOL KIT


< Emir Ceriþ>

O
vo je moj prvi tekst koji sam napiso od osnovne škole. Do sada najteža tema o
kojoj sam pisao bila je "Kako sam proveo ljetni raspust". Veoma sam je
struþno obradio u 3. osnovne i dobio dvicu. ýitajuüi ovaj tekst možete osjetiti
vrtoglavicu ili muþninu u tom sluþaju obratite se u najbližu ambulantu i tražite da
vam daju þekiü koji üete koristiti 3x1 u predjelu glave. Puno više pišem nego sto
priþam. Šalu na stranu, moje literarne sposobnosti nisu tema ovog teksta, veü
programiranje.

Mnogi programeri žale se da na Linux pla- miþnih vrsta) grafiþka okruženja pod Linux-
tformi nema dobrog GUI okruženja u kojem bi om kao što su: GNOME - (koji je usput i
se moglo raditi. Istina je malo drugaþija; jedno- napisan uz pomoü GTK), KDE, Afterstep itd.
stavno su lijeni i draže im je praviti "Drag & Ovo znaþi da üe program, koji napravite
Drop" programe, nego napisati dvije tri linije ko- koristeüi GTK, moüi raditi na bilo kojem od
da (dobro možda dvjesto tristo hi hi). Prije nego ovih grafiþkih okruženja.
što i Vi odustanete, pokušat üu vam dokazati su- x Jednostavan je.
protno. Za Linux postoje mnoge biblioteke nami- x Meni se najvise sviÿa.
jenjene pravljenju GUI-a koao sto su Xlib, Qt, Iako je sve "divno-krasno" ne oþekujte þuda,
KDE, GIMP, GTK itd. sve je ipak do Vas i do toga, kako üete napisati
Ja sam izabrao GTK - GIMP Tool Kit (jest' to Vaš program. Prije nego sto poþnemo sa pro-
je onaj GIMP) iz više razloga: gramiranjem, treba objasniti da se ovdje ipak
x Besplatan je (što kod nas i ne igra veliku radi o G R A F I C K O M interfejsu koji, sa
ulogu, jer je sav software besplatan ili je 5 estetske strane, zahtijeva malo truda. Ne dopu-
KM - ipak üe jednog dana sve doüi na svoje, stite da Vam program izgleda kao da ga je
i ono što ste do sad besplatno koristili, mo- napravio dvanaestogodišnjak koji je usput i da-
rat üete otplatiti radeüi na površinskom kopu ltonista;ako se zagledate po šalterima banaka i
rudnika uglja Kreka-Banoviüi) ne samo za pošta vidjet üete o þemu je rijeþ (ljubiþasta slova
korištenje nego i za pravljenje komercijalne na žutoj pozadini, sve to ukrašeno zelenim
aplikacije za koju Vi uzimate pare (jes' al' ikonama i crvenim dugmadima). Ako niste sigu-
aha). Niste obavezni ništa da platite tvo- rni oko izbora boja koristite samo sive nijanse, ili
rcima GTK za njihovo trud i crnþenje koje su pitajte (nije sramota) profesionalne dizajnere ili
uložili. pripadnice ljepšeg spola (ne sve), sigurno bolje
x Dolazi uz sve poznatije distribucije Linuxa znaju koja boja ide sa kojom, i ne zaboravite
(Red Hat, SuSe itd.). Ne morate ništa zlatno praviilo - NE VISE OD 4 BOJE, inaþe,
instalirati, veü je sve tu, þeka na Vas. eksplodirat üe Vam ekran.
x - Vezan je samo za X Window System, to Ja sam koristio GTK+ 1.2.6 i gcc 2.91.66, a
jest, za trenutnu verziju X11R6 koji je grafiþko okruženje je KDE 1.1.2. Sve je priliþno
osnova za skoro sva (izuzev nekih ende- staro, znaþi, na novim verzijama radi još bolje.

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 36


LINUX - ( I dio)

#include <gtk/gtk.h>
int main(int argc, char *argv[])
{
GtkWidget *prozor;
gtk_init(&argc, &argv);
prozor = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_show(prozor);
gtk_main();
eturn(0);
}

Kompajlirajte ga sa:

gcc primjer1.cxx -o primjer1 `gtk-config --cflags --libs`

Obratite pažnju da apostrofi nisu obiþni, nego


oni "þudni" - u desno. Uspavajte pacijenta sada gtk_widget_show(prozor);
üemo da ga sjeckamo. Prvo morate da u kod
ukljuþite <gtk/gtk.h> u kojem je definisano sve
što Vam je potrebno od GTK. Sljedeüi korak koja ga i prikazuje na ekranu. Umjesto konsta-
jeste da definišete widgete. Šta su widgeti? nte GTK_WINDOW_TOPLEVEL mogu se iskoristiti
Widgeti su svašta: prozori, dugmadi, natpisi i jos i GTK_WINDOW_DIALOG - pravi prozor za
sve ostalo. S obzirom da ne volim definicije, a i dijaloge, GTK_WINDOW_POPUP- pravi prozor
trebalo bi stoljeüe da opišem šta su to taþno bez ivica, to jest samo prazan kvadrat (ispro-
widgeti, shvatit üete. Linija: bajte, pa üete vidjeti). O dijalozima i popup-
ovima malo kasnije. Posljednja linija je petlja za
procesiranje dogaÿaja.
GtkWidget *prozor;
gtk_main();
znaþi da ste napravili pokazivaþ na widget, koji u
ovom trenutku ni na šta ne pokazuje, veü samo Navedena funkcija "uspavat" üe aplikaciju i
stoji tu i "pravi se lud". Tek kasnije nešto üe mu
þekati na dogadjaje koje üe da obradi, kao što
se dodijeliti. Funkcija gdk_init(&argc, &argv) bi
su: klikovi mišem, unos sa tastature itd. Za sada
trebala biti pozvana prije nego što poþnete pisati
nismo definisali niti jedan dogaÿaj, tako da se
bilo šta što se tiþe GTK. Ona inicijalizira bibli-
ništa nece desiti, ovo zvuci glupo.To je to. Sada
oteke i obraÿuje argumente komandne linije pokrenite program iz shella ili iz grafiþkog okru-
uzimajuüi samo ono što joj je potrebno, a Vama ženja i pojavit üe se prozor. Jedino ima mali pro-
ostavlja vaše argumente, ako oni postoje. U blem sa ovim primjerom, a to je; ako ga zatvo-
svakom sluþaju, ne dirajte ovu funkciju, niti ar-
rite misem pritiskom na X zatvorit üe se samo
gumente iz main funkcije. Kao što se da pri- prozor a ne i aplikacija, što üemo kasnije ispra-
mijetiti, ja nisam koristio C++ (objekte osta- viti. Za sada, morat üete ga "ubiti" iz Task
vljam onima sa Microsoft certifikatom) iako su Manager-a, ili prekinuti ga iz shella pritiskom na
widgeti u principu klase.E sad dolazi onaj intere-
Ctrl-C.
santni dio; U sljedeüem primjeru pokazat üu Vam
neke dodatne mogucnosti i obraditi üe-
prozor = gtk_window_new(GTK_WINDOW_TOPLEVEL); mo Vaš prvi X Window event. Za one
koji ne znaju šta su eventi ili u prijevodu
dogaÿaji, slijedi kratko objasnjenje.
Pozvali smo funkciju za stvaranje novog prozora Eventi su svi dogaÿaji, što i sama rijeþ kaže,
koja je vratila pokazivaþ na sam prozor. Prozor koji se dešavaju pod, u, ili nad X prozorom
se još ne moze vidjeti, ali za to üemo se po- kao što su: klikovi, pritisci tipki tastature,
brinuti uz pomoü funkcije: raznorazna otvaranja i zatvaranja prozora,
I/O dogaÿaji, timeri itd. U stvari, veüina pro-
gramiranja GUI-a svodi se ka odgovaranju na
razliþite evente.

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 37


LINUX - ( I dio)

#include <gtk/gtk.h>
void izlaz(GtkWidget *widget, gpointer data);
int main(int argc, char *argv[])
{
GtkWidget *prozor;
gtk_init(&argc, &argv);
prozor = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(prozor), "ASDFDeveloper Magazin");
gtk_widget_set_usize(GTK_WIDGET(prozor), 200, 75);
gtk_widget_show(prozor);
gtk_signal_connect(GTK_OBJECT(prozor), "destroy",
GTK_SIGNAL_FUNC(izlaz), NULL);
gtk_main();
return(0);
}
void izlaz(GtkWidget *widget, gpointer data)
{
gtk_main_quit();
}

Prvo što se primijeti, jeste deklaracija nove ono što je potrebno. Umjesto "prozor" može se
funkcije - izlaz. Ovo je funkcija koja üe obraditi
staviti bilo koji widget, za sada imamo samo
destroy event, to jest gašenje pritiskom na jedan. Event je - destroy, "destroy" kao const
dugme - X na prozoru. Da bi dana funkcija char* se prosljeÿuje funkciji.
mogla bilo šta uraditi, treba je "uvezati", a to se
Makro GTK_SIGNAL_FUNC(izlaz) prosljeÿuje po-
radi sa: kazivaþ na funkciju koja obraÿuje event (ovdje
je to funkcija - izlaz). Posljednja
vrijednost koja se prosljeÿuje za sada
gtk_signal_connect(GTK_OBJECT(prozor), "destroy",
GTK_SIGNAL_FUNC(izlaz), NULL); Vas se ne tiþe, pa je ostavite NULL.
Probajte umjesto "destroy" staviti
"key_press_event" i pritisnite neku
tipku kad se prozor otvori. Možete pretpostaviti
šta üe se desiti.
Navedena funkcija služi za "povezivanje" svih
Jedna napomena; sva "povezivanja" trebaju se
moguüih signala, to jest dogaÿaja na dati
obaviti prije poziva gtk_main(), inaþe nema
widget. U ovom slucaju widget je prozor. Makro
koristi.
GTK_OBJECT(prozor) brine se da se proslijedi

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 38


WEB DIZAJN

Trnovit put do dobrog WWW Dizajna

SADRŽAJ VAŽNIJI OD MULTIMEDIJE


< Oliver Talanga >

J
asno nam je svima da web designerima nije baš pravo kada moraju pored svih
tih kreativnih ideja i moguünosti koje im se pružaju prilikom ostvarivanja
jednog web projekta, misliti na one koji nemaju volje za tim svim multimedi-
jalnim cirkusom. Meÿutim, ne smijemo ignorirati da se Internet primarno koristi u
informativne svrhe

Svaki Webdizajner misli dobro posjetiocima Za traženje i ispravljanje osnovnih grešaka


njegovih stranica, naravno, ne želi ih rastjerati ili postoji niz programa kao sto su HTML validatori,
oneraspoložiti. Pa, ipak, WorldWideWeb pun je kao npr. CSE HTML validator. Neke od code za-
raznih grešaka koje nam otežavaju svakodnevni mki izgledaju na prvi pogled ispravno, problem
rad i naravno, uživanje u Internetu. Obiþno su to ne leži u HTML tagu veü na njegovoj poziciji u
greške u HTML codu, kao i u nedostacima u ko- scriptu. Tako npr. svaki validator poznaje
ncepciji stranica. Nažalost, þinjenica je da se syntaxu kao <p><b>bold slova</p></b>
mnogi webdesigneri, prilikom otkrivanja novih kao malu grešku u koracima dok kod <font
moguünosti ureÿivanja webprezentacija, fascini- size="-1"><p> mala slova </p></font>
raju i samim tim zaborave da nije potrebno sve syntaxe malo koji validator daje alarm iako se
ono što je moguüe. To je dovoljan razlog za po- HTML tagovi za formatiranje teksta kao <font>
stavljanje osnovnih putokaza radi jednostavnijeg samo u blok-tagu kao <p> dozvoljavaju. U
HTML weba ovom sluþaju se možemo osloniti na online
validator od WorldWideWeb Consortiuma (W3C).
Paziti na HTML kvalitet Prilikom njegove pretrage jednog URLa ostaju
samo u rijetkim situacijama greške neotkrivene.
Ne može se dovoljno puta ponoviti koliko je
važna ispravna HTML sytaxa. Aktuelni browseri Kompatibilnost Browsera
se zaista trude neispravni code najbolje što je
moguüe interpretirati, meÿutim ova obrada gre- U sadašnje vrijeme, kada nam þak ni browser
šaka þesto vodi neželjenim rezultatima. nije potreban da bi ušli u web, fraze kao što su
Naþin na koji najpopularniji browseri sa gre- “optimized for…” su zaista nepotrebne kao
škama u quellcodu izlaze na kraj razlikuju se, ne nikada prije.
samo od browsera do browsera, veü i od verzije Rijetko ko upotrebljava tagove kao <blink>
do verzije. Kada Netscape Navigator 4.0 jednu ili <marquee> koje samo jedan browser po-
posebnu HTML grešku jednostavno osjeti i pre- znaje i koje ustvari skoro niþemu ne služe.
šuti, moguüe je da aktuelna verzija kod iste Properitarni tagovi mogu još jedino naüi mjesta
jednostavno obustavi naš rad iznenadnim padom u dokumentima sa DHTML -om (Dynamic
sistema. Hypertext Markup Language) koji se sa þudnim
trikovima prisiljavaju istoj funkcionalnosti u ra-

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 39


WEB DIZAJN

znim Browserima. Takvi trikovi ustvari, tjeraju bespotrebni servisi, koje je uz malo truda mogu-
webdesignere u nove zamke jer je vjerojatno da üe zaobiüi.
üe novi Netscape navigator poznavati neke od
tagova, ali možda ne ove þudne trikove… Detalji prilikom projektiranja stranica

ýak i na stranicama bez grešaka u syntaxi i


bez inkopatibilnosti, postoji niz drugih detalja o
kojima je potrebno razmišljati. To þesto poþinje
veü sa <title> tag. Najveüi broj stranica na
Internetu poþinje sa “Willkommen…” ili kako bi
kod nas rekli “Dobro nam došli…” Lako se
možemo uvjeriti provjeravanjem tj. trazenjem
tih dobrodošlica npr. na Google.com (oko
4.900.000 rezultata!!!).

S pogledom na ograniþenja rezolucija novih


internet ureÿaja, jasno nam je da korištenje Takoÿer, ako tu stranicu želimo dodati našim
pixel – odreÿenog Layouta nije više aktuelno. Favoritima, dobit üemo to ime kao naziv linka.
Buduünost pripada “laganom” dizajnu koji je Tako se polako naša lista puni Favoritima koji se
moguüe, pod suboptimalnim uvjetima, koristiti poþinju sa “Willkommen…”. Znam, iako Microsoft
kao na primjer na Palm- ili PocetPc- ureÿajima. oduvijek tako radi, to ne mora biti ispravno!
Naravno, dosta webautora tvrdi da posjetioci sa Titel jedne stranice treba, po mom mišljenju,
alternativnim browserima þine manjinu koja je ukratko opisati sadržaj jedne stranice, a to da
možda i nepotrebna. Aktuelne log analize tvrde smo dobrodošli se - podrazumijeva. Naravno,
da malo manje od 90 odsto posjetioca radi sa jedno vrijeme su svi pokušavali stavljanjem po-
Windowsom, a þak preko 90 odsto posjetioca sebnih znakova u navedeni title - tag dospjeti na
koristi Netscape Navigator ili Internet Explorer. vrh rezultata kod raznih mašina za traženje,
Meÿutim, pitanje ostaje, da li takve statistike meÿutim ti trikovi više ne funkcioniraju.
dobijamo jer posjetiocima koji koriste alterna- Detaljniji opis sadržaja pripada u <meta>
tivne browsere uopšte nije moguü pristup nekim tagove (specijalne HTML konstrukcije, koje su
stranicama. ekskluzivno koncipirane za robote). Mnogo stra-
Svakom webddesigneru, smatram, jedan od nica sa porno i sliþnim sadržajima koristi takve
glavnih zadataka, nakon ostvarivanja webproje- metode i puni svoje <meta> tagove sa imeni-
kta, je testiranje tog projekta u razlicitim bro- ma svih moguüih glumica, tako da u meÿuvre-
wserima, i to u najmanje tri! Naravno da izgled menu roboti takve tagove obilaze, te oni tako
webprojekta varira od browsera do browsera, postaju beskorisni.
meÿutim funkcionalnost mora biti zastupljena do Pažnja webautora trebala bi se koncentrirati
nekog stepena. Takoÿer, ne smijemo zaboraviti na sadržaj webprezentacije, a naroþito na ele-
da mi, webautori, uvijek imamo najnovije verzije mente navigacije. Normalno se smatra da je
naših omiljenih browsera, te da to nije sluþaj svakom autoru u potpunosti jasno, da je stru-
kod naših posjetioca. Kompatibilnost prema sta- ktura navigacija neophodna. Nasuprot tome, na
rijim verzijama je potrebna i neophodna. mnoštvu stranica je vidljivo da je izgled jedne
U sluþaju da je webautor zauzet daljnim navigacije raÿen na štetu funkcionalnosti.
stvaranjem i projektiranjem, postoji online po- Rijetko koji surfer se nije našao u situaciji da
nuda kao što je Webmasterplan, koji naše web se kroz rezultate traženja naÿe na stranici na
stranice sa 15 raznih browsera kontrolira i, kao kojoj je sadrzaj koji je tražio ali bez i jednog
rezultat screenshots, šalje s ciljem daljnjeg opti- linka ili sliþno. Za takve su pojave obiþno krivi
miziranja layouta – podrazumijeva se, uz no- webautori koji rade sa razliþitim frames. Prilikom
vþanu naknadu od 10 eura po stranici. Prilikom pretrage, u rezultatima se pojavi samo onaj fra-
daljnjeg optimiranja je potrebno novo testiranje, me koji je pretraživaþu – robotu bio intere-
tako da ovakve online ponude brzo postaju skupi santan, jer sadrži traženi pojam. Za to postoji

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 40


WEB DIZAJN

rješenje u raznim java scriptovima, koji se lako sadržaja, stranica i dalje ostaje u potpunosti
mogu naüi na Internetu – oni kontroliraju da li funkcionalna. U suprotnom je vjerojatno da üe
se dokument kao dio jednog frameseta pokazuje taj, za tu stranicu neophodni multimedijalni
u cjelosti i po potrebi aktiviraju navigacijski fra- sadržaj, vlasnika stranice koštati odreÿeni broj
me. Ovakvo rješenje neüe naravno funkcionirati posjetioca.
ukoliko je deaktivirana podrška za java script. Iz
tog razloga je dobro u svakom framu navesti li- Ukratko
nk cjelokupnog frameseta.
Jasno nam je svima da web designerima nije
Overkill sprijeþiti baš pravo kada moraju pored svih tih kreativnih
ideja i moguünosti koje im se pružaju prilikom
Svima su nam poznata mjesta kao sto su ga- ostvarivanja jednog web projekta, misliti na one
lerije, muzeji i slicno. Takve prostorije su jedno- koji nemaju volje za tim svim multimedijalnim
stavno opremljene, bijeli zidovi, neutralni po- cirkusom. Meÿutim, ne smijemo ignorirati da se
dovi,… s dobrim razlogom. Prostorija muzeja ne Internet primarno koristi u informativne svrhe.
treba da stoji u centru pažnje, veü umjetnosti Naravno, možemo na design stranica gledati kao
koje su izložene. Od ovakvog koncepta trebaju na polje umjetnosti, ali ipak je ljepota za oko
profitirati i Webautori. Nasuprot tome, mnogi samo sekundarna – bar kod ovog medija.
dizajneri se trude ostvarivanju cjelokupne umje- Traženje perfektog designa bi možda prvo
tnosti. Ne postavljaju jasne akcente, veü se ra- trebali staviti “ad acta” – WWW još nije do tog
zbacuju nepotrebnim i suvišnim efektima, nivoa došao. Meÿutim, ako se Internet bude s
glasnim Schockwave filmovima i nejasnim Flesh ovakvim potencijalom i dalje razvijao, nesagle-
animacijama, dosadnom MIDI muzikom, nervo- divo je kada üe biti postignut nivo na kojem üe
znim GIF sliþicama ili agresivnim PopUp prozo- jedna stranica u svim web browserima isto
rþiüima koji se ne daju pozatvarati. Sreüom, izgledati.
mnogi Browseri nude moguünost sprijeþavanja Jasno nam mora biti da nije obzirno, a ni po-
multimedijalnih sadrzaja. sebno pametno, bez razmišljanja o gubicima
uvijek nove trendove pratiti, kao što to mnogi
web designeri rade. Kada su se pojavili prvi
televizori u boji, ni jedna tv kuüa nije bez kom-
promisa prešla na emitiranje programa samo za
vlasnike TV-a u boji, veü je uvjet bio ostvari-
vanje kompatibiliteta koji je još uvijek postojeüi.
Prilikom realizacije jednog web projekta, niko ne
misli na Netscape 1.x.
Na taj problem se ne smije gledati kao na
neko ograniþenje, veü kao na izazov koji treba
pobijediti. Okvir moguüeg prilikom web designa
još daleko nije dostignut. I ako izostavimo upo-
trebu raznih trikova i plugins – još ima mnogo
Jedna od naznaka za dobar web design je,
toga za otkriti i izuþiti…
ako nakon obustavljanja svih multimedijalnih

Literatura i linkovi
[1] John Walker: Demoroniser, Correct Moronic Microsoft HTML,
http://www.fourmilab.ch/webtools/demoroniser/
[2] W3C-Savjeti za ALT-Definicije
[3] DOM-Standard W3C
[5] Aktuelni Mozilla Milestone Builds

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 41


FLASH MX ( VI dio )

Zvuk u Flash MX-u

NE SPAVAJ MALA MOJA MUZIKA


DOK SVIRA…
<Dragan LuĀiþ>

P
ravilnom upotrebom zvuka na web stranici, možete postiüi kompletan multi-
medijski ugoÿaj kod posjetilaca, na žalost možete postiüi i sasvim suprotne
reakcije, ukoliko ne vodite raþuna o tome kako koristite zvuk i ako ne pozna-
jete sve aspekte upotrebe zvuka u Flash filmu. Zato je veoma važno da budete
upuüeni u najosnovnije elemente upotrebe zvuka u Flash filmovima, a o ukusu
neüemo raspravljati. -

Flash koristi digitalizovane zvuþne zapise tj. imamo standardne sampling rate od 22,05 ;
uvezene zvuþne fajlove. Ova þinjenica zapravo 11,025 i 5,5125 KHz.
Vam govori da za potrebe Vašeg Flash filma Ukoliko u Flash uvezete zvuk sa nekim sampling
morate imati pripremljen zvuk u digitaliziranom rate-om , koji nije standardan (npr. 9,5 KHz) on
formatu, što znaþi da üete morati koristiti neku üe ga resamlovati na 11,025 KHz, o tome
aplikaciju za editovanje zvuka ili üete (ako ne- morate voditi raþuna jer se može desiti da zvuk
mate iskustva u ovom domenu) upotrijebiti neki koji ste uvezli u Flash izgubi svoje karakteristike.
veü gotov zvuþni zapis. Suština racionalne upo- Za potrebe Flash filmova na Webu je uobiþajno
trebe zvuka u Flashu je ponavljanje i modifi- da se koriste 22,05 KHz koji daje prihvatljiv
ciranje veü upotrebljenih zvuþnih zapisa, þime kvalitet zvuka i 11,025 KHz þiji se kvalitet može
neznatno uveüavate kapacitet konaþnog filma. porediti sa govorom ili sa AM radio kvalitetom.
Postoji dosta faktora, kada je u pitanju zvuk,
koji utiþu na veliþinu Flash filma, no krenimo Bit depth
redom.
Rezolucija zvuka u bitovima (bit depht) je
Osnovni pojmovi parametar koji definise broj bitova, koji se
koriste za zapisivanje jednog uzorku zvuka. Što
Sampling rate je rezolucija veüa (veüi bit depht) to je i digi-
talizacija zvuka vjernija u odnosu na zvuk koji se
Zvuk se digitalizuje , tako što se uzorkuje digitalizuje. Poveüanjem rezolucije zvuka pove-
(sample) u istim vremenskim intervalima, što je üava se i kapacitet fajla. Prilikom reprodukcije
veüi broj uzoraka u jedinici vremena (sampling digitalizovanog zvuka, zbog velikih uþestalosti,
rate), to je i zvuk kvalitetniji, ali je i kapacitet ljudsko uho zvuþne uzorke registruje kao konti-
fajla veüi. nuirani zvuk, zato nije potrebno zvuk digitali-
Standardni sampling rate za audio CD je 44,1 zovati sa velikom rezolucijom.
KHz, uobiþajeno je da se kod nižeg sampling Zvuk se obiþno digitalizuje u 8-bit i 16-bit
rate-a ide na djeljenje ovog sa 2, 4, 8 pa tako rezoluciji, pri þemu se za 8-bit rezoluciju koristi

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 42


FLASH MX ( VI dio )
256 jedinica opisa podataka o zvuku, a za 16-bit Vam omoguüava da ga snimite u nekom od
65 000 jedinica. formatu :

Mono / Stereo x ADPCM – Ovaj format vam omoguüava da


birate sample rate od: 5, 11, 22, 44 KHz,
Ova dva skraüena naziva definišu broj izvora možete konvertovati stereo u mono i iza-
iz kojih dolazi zvuk. Mono (monofonski) zvuk brati ADPCM bit rate od 2,3,4,5 bita, stepen
dolazi iz jednog izvora (zvuþnika), dok Stereo kompresije je mali, što znatno poveüava
(Sterofonski) zvuk dolazi iz dva izvora. Kod kapacitet Flash filma i ovaj format se ugla-
digitalizacije zvuka mono zvuk ima samo jedan vnom koristi radi kompatibilnosti sa starijim
zvuþni kanal, za razliku od stereo zvuka koji Flash Playerima (starije od 5).
ima dva. Iz tih razloga digitalizovani stereo x MP3 – Ovaj format je postao standard na
zvuk ima dvostruko veüi kapacitet fajla, nego Webu, zbog jako velikog stepena kompre-
mono. Za potrebe Flash filmova na Webu se siju uz oþuvanje pristojnog kvaliteta, i ja
uglavnom koristi mono zvuk. vam ga preporuþujem kao jedini za Flash
filmove namjenjene Webu. U ovom formatu
Importovanje zvuþnih fajlova imate moguünost da izaberete bit rate u
rasponu od 8 kbps do 160 kbps, takodje
U Flash možete uvesti (importovati) sljedeüe možete vršiti konvertovanje stereo u mono,
formate: ali samo ako izaberete bit rate 20 kbps i
veüi. Imate moguünost i da izaberete kva-
x WAV (Windows) litete : Fast, Medium i Best. Kvalitet Fast
x AIFF (Mac) je zapravo najslabiji ali sa njim najviše
x MP3 (Windows/Mac) smanjujete kapacitete Flash filma.
x Raw – Zvuk u ovom formatu je nekompre-
Ako imate instaliran QuickTime 4 ili noviji , tada sovan i koristi se samo ako je uveženi zvu-
možete importovati: þni fajl jako lošeg kvaliteta i koji bi se još
više pogoršao kompresijom, ovaj format üe
x WAV (Windows/Mac) jako uveüati konaþni kapacitet Flash filma.
Kod ovog formata imate moguünost da
x AIFF (Windows/Mac)
birate sample rate od: 5, 11, 22, 44 KHz, i
x Sound Designer II (Mac) možete konvertovati stereo u mono.
x Sound Only QuickTime Movies x Speech – Ovaj format je dosta sliþan fo-
(Windows/Mac) rmatu ADPCM, ali je optimizovan za snima-
x Sun AU (Windows/Mac) nje govora, u ovom formatu imate mogu-
x System 7 Sounds (Mac) ünost da birate samo sample rate od: 5,
11, 22, 44 KHz.
Zvuþne fajlove importujete u Flash na meniju
File > Import… (Ctrl + R) pri þemu se zvuþni Karakteristike zvuka koji ste importovali u Flash
fajl automatski biva smješten u biblioteku si- mozete mjenjati na dva naþina:
mbola Library i dodjeljena mu je ikonica u obli-
ku zvuþnika (ako Vam je panel Library isklju- x Globalno – Definišete iste karakteristike
þen, ukljuþite ga na meniju Window > Library izlaznog zvuka za sve importovane zvuþne
ili F11), ako kliknete na fajl u biblioteci u fajlove, najþešüe se postavlja na MP3/Fast.
gornjem prozoru üete x Pojedinaþno – Svakom zvuþnom fajl se
dobiti dijagram zvuka i pojedinaþno definišu karakteristike izlaznog
uz pomoü dugmeta u zvuka, o þemu üe biti rijeþi u nastavku ovog
obliku strelice ga mo- þlanka.
žete preslušati.

Formati izlaznog Dodavanje zvuka u film


zvuka
Kao što ste vidjeli, kada importujete zvuk u
Bez obzira na for- Flash, on se automatski smješta u Library, to je
mat zvuþnog fajla koji zato što se zvuk tretira sliþno kao simbol tj. ako
ste importovali, Flash

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 43


FLASH MX ( VI dio )
ga više puta upotrijebite u filmu , on neüe zna- Flashov editor zvuka (Edit Envelope), što mo-
tnije poveüati kapacitete filma. žete postiüi i kliknuvši na dugme Edit… , nakon
Da bi upotrijebili zvuk koji ste importovali, toga se aktivira Edit Envelope box u kojem
neophodno je da ga dodjelite nekom kljuþnom možete vršiti izmjene na zvuku, sve te izmjene
frejmu na layer-u u glavnoj vremenskoj liniji se uglavnom odnose na efekte koje postižete
(Time line) ili u dugmetu (Button) ili u Movie utišavanjem zvuka lijevog/desnog kanala.
Clip-u.

Dodjela zvuka glavnoj vremenskoj liniji

Zvuþni fajl , koji ste prethodno importovali


možete na dva naþina pridružiti glavnoj vreme-
nskoj liniji. Prvi naþin je da selektujete kljuþni
frejm na vremenskoj liniji (preporuþujem Vam
da za svaki zvuk kreirate poseban sloj-Layer) i
da iz biblioteke simbola prevuþete zvuþni fajl na
pozornicu. Nemojte se zbuniti što na pozornici
nakon toga neüete vidjeti ništa, u vremenskoj
liniji üete vidjeti zvuk u obliku dijagrama.

Sync – ova opcija Vam omoguüuje da izaberete


tip sinhronizacije zvuka i filma. To je veoma va-
žno, jer je kontrola zvuka jedan od priliþno pro-
blematiþnih zadataka u Flashu, jer se u zavi-
snosti od kapaciteta zvuþnog fajla može desiti
da raþunar korisnika nije u stanju da istovre-
meno prikazuje film i reprodukuje zvuk, što
može rezultirati ˝mucanjem˝ filma ili drugim
Drugi naþin je da selektujete kljuþni frejm i da neželjenim efektima. Zvuk je u Flashu nezavi-
na paleti Properties (paleta ispod pozornice) u san objekat i kada, tokom prikazivanja, film
boxu Sound izaberete Vaš zvuk. ýim ste izabrali dodje do kljuþnog frejma u kojem ste postavili
zvuþni fajl u donjem dijelu panela Properties zvuk, zvuk se poþinje reprodukovati nezavisno
biüe ispisane karakteristike zvuþnog fajla. od filma (izuzimajuüi Stream sinhronizaciju), to
Ova druga opcija je zgodnija jer odmah možete znaþi da üe se on reprodukovati þak i kada se
definisati karakteristike izlaznog zvuka, možete film završi, ukoliko njegova dužina prelazi pre-
editovati zvuk i odabrati naþin sinhronizacije ko dužine filma. O tome morate voditi raþuna.
zvuka sa filmom. Pri izboru sinhronizacije imate na ra-spolaganju
opcije:
x Event-Ovo je opcija pri kojoj je reprodu-
kcija zvuka vezana za dogaÿaj, tj. zvuk
poþinje sa reprodukovanjem onog trenutka
kada film dospjeva do kljuþnog frejma u
kojem se nalazi zvuþni fajl. Ovdje se može
pojaviti problem kod filmova koji se vraüaju
i ponovo prikazuju od frejma u kojem je
Vodite raþuna da ovdje u ovoj paleti mjenjate
postavljen zvuk ili od frejma prije njega,
karakteristike zvuka samo za tu instancu, tj.
ukoliko je zvuk traje duže od njegovog po-
ove izmjene neüe važiti kada sljedeüi put
novnog reprodukovanja, desiüe se tzv.
upotrebite ovaj zvuk na nekom drugom
kakofonija tj. još uvjek üe se reprodukovati
kljuþnom frejmu ili simbolu. Izmjene koje
prva instanca zvuka, a zapoþeüe ponovo
možete izvršit su:
njena reprodukcija.
Effect -zvuku dodajete razliþite efekte, kako bi
se mogli snaüi sa gotovim efektima spomenuüu x Start- Ovaj tip sinhronizacije je isti kao i
Vam samo da Fade opcija znaþi utišavanje zvu- Event, jedina razlika je u tome da se neüe
ka. None – bez efekata, tj. zvuk ostaje ori- desiti kakofonija, ukoliko film ponovo dos-
ginalan i Custom pri þemu vam se aktivira pje do kljuþnog frejma u kojem je smješten

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 44


FLASH MX ( VI dio )
zvuk, prethodni zvuk üe biti iskljuþen, a Izmjena karakteristika importovanog
reprodukovaüe se novi iz poþetka. zvuka
x Stop – Ova opcija vrši iskljuþivanje zvuka,
kada film dospje do kljuþnog frejma u Kao što sam veü spomenuo karakteristike
kojem je zvuk sa ovim tipom sinhronizacije. importovanog zvuka možete mjenjati na dva
Najþešüe se ovaj tip sinhronizacije koristi u naþina Globalno i pojedinaþno.
kombinaciji sa Start. Globalno – da bi ste svim iportovanim zvuþnim
x Stream – Je sinhronizacija koja vrši re- fajlovima odredili iste izlazne karakteristike
produkovanje zvuka tokom downloada tzv. otvorite Publish Settings box sa menija:
streaming. Za razliku od sinhronizacija File >Publish Settings… (Ctrl+Shift+F12)
Event ,Start, Stop koje predstavljaju sinhr- izaberite karticu Flash kao na donjoj slici:
onizacije kod kojih je neophodno da se
izvrši kompletno uþitavanje zvuþnog fajla,
Stream sinhronizacija zapoþinje neposredno
nakon što je uþitano nekoliko sekundi zvu-
ka, a uþitavanje se nastavlja paralelno sa
prikazivanjem filma, ovakva sinhronizacija
može prouzrokovati usporavanje ili potpuno
zaustavljanje filma, ukoliko se uþitavanje
zvuka uspori ili zaustavi tokom downloada.

Loops – ova opcija Vam omoguüuje da


odredite broj ponavljanja zvuka, ako ne želite
da se on ponavlja ostavite vrijednost 0.

Dodjela zvuka simbolu Movie Clip


U dnu ovog boxa imate dugmad set ,za po-
Postupak je potpuno isti , kao kada zvuk dešavanje izlaznih karakteristika zvuka za
dodjeljujete glavnoj vremenskoj liniji, s tom ra- sinhronizaciju Event i Stream, i imate mogu-
zlikom što zvuk postavljate u neki kljuþni frejm ünost da þekirate opciju Override sound setings
na vremenskoj liniji Movie Clip-a. Vodite raþuna kojom poništavate svako pojedinaþno podeša-
da simbol Movie Clip ima osobinu neprekidnog vanje karakteristika izlaznog zvuka.
ponavljanja, ukoliko njegovo prikazivanje ne U zavisnosti od toga koji format izlaznog zvuka
zaustavite ActionScript naredbom ili ako ga ne izaberete imaüete i moguünost da izmjenite
uklonite sa pozornice, samim tim üe se i zvuk razliþite parametre koji su prethodno opisani.
ponavljati sa ponavljanjem prikazivanja Movie Pojedinaþno – Ako želite da nekom od impo-
Clipa. rtovanih zvuþnih fajlova odredite drugaþiji izla-
zni format, potrebno je da u Library na njega
Dodjela zvuka dugmetu kliknete desnim tasterom, pri þemu üete dobiti
meni sa kojeg izaberite Properties slika ispod:
Kako dugme ima þetri kljuþna frejma (Up,
Over, Down i Hit) koja opisuju stanje kursora
miša kada se ono naÿe u zoni djelovanja du-
gmeta tako mu se može pridružiti i zvuk u zavi-
snosti šta je korisnik uþinio sa dugmetom.
Uglavnom se koriste frejmovi Over, pri þemu
se zvuk reprodukuje kada korisnik preÿe mišem
preko dugmeta i frejm Down, gdje se zvuk re-
produkuje kada korisnik klikne mišem na du-
gme. Pri tome se koristi Start sinhronizacija ,
kako bi se izbjegla predhodno opisana kakofo-
nija koja se može pojaviti, ukoliko izaberete
Event sinhronizaciju.

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 45


FLASH MX ( VI dio )
Ako u listi Compression ostavite opciju Default, Kakav zvuk koristiti za potrebe Flash
zvuþni fajl üe biti formatiran na osnovu glo- filmova na webu?
balnog podešavanja, ako izaberete neki drugi
format, tada üete imati moguünost izbora ra- Kao što ste veü proþitali u Flash možete im-
zliþitih parametara u zavisnosti od formata koji portovati nekoliko razliþitih formata zvuþnih fa-
ste izabrali. U ovom boxu možete još uz pomoü jlova, njihov izlazni format i parametre možete
dugmadi Test i Stop preslušati/zaustaviti zvuk, mjenjati, jedino što ne možete promjeniti je nji-
takoÿe možete na mjesto postojeüeg zvuþnog hova dužina trajanja, koja primarno utiþe na
fajla importovati drugi ili možete uraditi Update veliþinu Flash filma, iz tih razloga se koriste dvi-
, ako ste nekim drugim programom izmjenili je tehnike kreiranja muzike za Flash:
zvuþni fajl. Ove dvije opcije su veoma korisne u
situaciji kada ste završili film , a naknadno želi- Sound loops je upotreba kratkih muziþkih se-
te da promjenite zvuk, dovoljno ga je samo iz- kvenci þije instance možete kombinovati i pona-
mjeniti nekim editorom zvuka i uraditi Update vljati veliki broj puta, a da pri tome ne uveüate
ili tasterom Import uvesti potpuno drugaþiji previše kapacitete konaþnog filma. Da bi ste
zvuk, pri tome üe novi zvuk zadržati ime pre- napravili Sound loop neophodno je da imate
thodnog, koji možete u Library izmjeniti sa iskustva sa nekim od programa za editovanje
Rename. zvuka ili ako ga nemate ,onda možete kupiti
gotove: http://www.soundshopper.com/
Reprodukovanje u petlji (looping) ili možete da koristite besplatne. Na našoj
stranici BHWebmasters možete besplatno preu-
Zvuk može jako uveüati kapacitet Flash zeti neki od (za sada) 54 Sound loop-ova.
filma, što je priliþno problematiþno za prikazi- Link je:
vanje na Webu. Iz tih razloga se primjenjuje http://www.bhwebmasters.net/muzika/muzika.php
reprodukovanje muziþkih segmenata u petlji,
pri þemu se isti zvuk ponavlja više puta. Ti Kada Vam zatrebaju neki specijalni zvuþni
muziþki segmenti (Sound loops) moraju biti efekti, poput klika miša, razbijanja stakla, cije-
takvi da se njihov završetak glatko nadovezuje panje tkanine i sl. iz Flashove standardne bibli-
na poþetak, tako da slušalac ne primjeüuje pri- oteke Common Libraries koju možete otvoriti sa
jelaz sa kraja segmenta na ponovnu repro- Window > Common Libraries > Sounds
dukciju. Pri tome morate paziti da Sound loop
ima razliþitih varijacija u protivnom üe biti do- Chunk je tehnika u kojoj se koriste pojedinaþni
sadan i zamoran za slušaoca. Da bi ste napravili uzorci zvuka više instrumenata i njihovim ko-
dobar Sound loop , potreban vam je neki editor mbinovanjem se mogu ostvariti priliþno duga-
zvuka, Flash nije u moguünosti da to izvede, a þke muziþke podloge za Flash. Poteškoüa sa
nije mu ni namjena. ovom tehnikom je što Vam je, pored pozna-
vanja rada sa nekim editorom zvuka, potrebno i
izvjesno muziþko iskustvo.

Pored metoda upravljanja zvukom u Flashu , koje sam u ovom þlanku naveo, moguüe je
upravljati i manipulisati zvukom i pomoüu ActionScripta, no o ovom naþinu üe biti više rijeþi
u nekom od nastavaka ovog serijala, koji üe biti usmjeren ka iskusnijim flasherima.
Za iduüi put Vam pripremam þlanak o izvoženju (Export movie) Flash filmova i njihovom
objavljivanju na Webu (Web publishing), pozabaviüu se opcijama za objavljivanje Publish
Setting, kao i nekim od Flashovih šablona za objavljivanje na webu. Do tada ugodno
Flashiranje.-
Ako imate pitanja, savjete ili kritike osjeüajte se slobodnim da me kontaktirate na adresi:
dl@asdfdeveloper.com ili putem foruma na adresi http://forum.bhwebmasters.org

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 46


SMJEŠNI KODOVI

Razgovaraju politiþar , umjetnik i


programer, da li je bolje imati ženu
ili ljubavnicu.
-Žena je sigurnost i oslonac za
uspješnu karijeru, kaže politiþar.

-Bolje je imati ljubavnicu, to je


uzbudljivije , kaže umjetnik.

-Najbolje je imati i ženu i ljubavnicu


, kaže programer, žena misli da si
kod ljubavnice, ljubavnica misli da
si sa ženom, a ti na INTERNETU !

ýovjeku se pokvario printer, i on nazove servis i kaže:


-Molim vas, printer mi štampa razmrljana slova, možete
li mi to popraviti?
-Možemo , to je samo zaprljana glava štampaþa, ali to üe
vas koštati 50 maraka, bolje da vi proþitate uputstvo
koje ste dobili uz štampaþ, pa da to sami sredite.
-Hvala vam puno, nadam se da neüete imati problema od
vašeg šefa sto ste mi dali savjet, kako da uštedim 50
KM.
-Ma nema problema, to je njegova ideja, da
mušterijama, prvo savjetujemo da sami izvrše popravku.
-Ajde da i to þujem, da neko hoüe besplatno da
pomogne. Ali vi onda gubite.
-Ma kakvi, od kad savjetujemo , mušterijama da prvo
probaju sami izvršiti popravku, zaraÿujemo mnogo više.

ASDF.developer | 01.08.03. | www.asdfdeveloper.com | Sadržaj 47

Você também pode gostar

  • ASDF11
    ASDF11
    Documento51 páginas
    ASDF11
    Midhat Turkusic
    Ainda não há avaliações
  • Enciklopedija-Svjetske Povjesti Poslednjih 500 Godina
    Enciklopedija-Svjetske Povjesti Poslednjih 500 Godina
    Documento111 páginas
    Enciklopedija-Svjetske Povjesti Poslednjih 500 Godina
    Hrvoje Crnjak
    0% (1)
  • ASDF5
    ASDF5
    Documento49 páginas
    ASDF5
    Midhat Turkusic
    Ainda não há avaliações
  • Gramatika Eng
    Gramatika Eng
    Documento39 páginas
    Gramatika Eng
    Midhat Turkusic
    Ainda não há avaliações
  • ASDF10
    ASDF10
    Documento41 páginas
    ASDF10
    Midhat Turkusic
    Ainda não há avaliações
  • ASDF4
    ASDF4
    Documento44 páginas
    ASDF4
    Midhat Turkusic
    Ainda não há avaliações
  • 10 Podhraski Trsinski Kancir
    10 Podhraski Trsinski Kancir
    Documento11 páginas
    10 Podhraski Trsinski Kancir
    Midhat Turkusic
    Ainda não há avaliações
  • ASDF2
    ASDF2
    Documento40 páginas
    ASDF2
    Midhat Turkusic
    Ainda não há avaliações
  • ASDF6
    ASDF6
    Documento53 páginas
    ASDF6
    Midhat Turkusic
    Ainda não há avaliações
  • ASDF3
    ASDF3
    Documento34 páginas
    ASDF3
    Midhat Turkusic
    Ainda não há avaliações
  • ASDF7
    ASDF7
    Documento44 páginas
    ASDF7
    Midhat Turkusic
    Ainda não há avaliações
  • Osnove Mrežnih Tehnologija
    Osnove Mrežnih Tehnologija
    Documento50 páginas
    Osnove Mrežnih Tehnologija
    Midhat Turkusic
    Ainda não há avaliações
  • Premija 2014
    Premija 2014
    Documento1 página
    Premija 2014
    Anonymous mIBVSE
    Ainda não há avaliações
  • ASDF1
    ASDF1
    Documento22 páginas
    ASDF1
    Midhat Turkusic
    Ainda não há avaliações
  • PIS Predavanja01
    PIS Predavanja01
    Documento96 páginas
    PIS Predavanja01
    Midhat Turkusic
    Ainda não há avaliações
  • Programski Jezik C
    Programski Jezik C
    Documento141 páginas
    Programski Jezik C
    Društvo pedagoga tehničke kulture Srbije
    Ainda não há avaliações
  • Alternativno Rjesavanje Sporova
    Alternativno Rjesavanje Sporova
    Documento119 páginas
    Alternativno Rjesavanje Sporova
    Adnan Džananović
    Ainda não há avaliações
  • Laboratorijska Vjezba br1
    Laboratorijska Vjezba br1
    Documento4 páginas
    Laboratorijska Vjezba br1
    Midhat Turkusic
    Ainda não há avaliações
  • Pregled Odgovora
    Pregled Odgovora
    Documento3 páginas
    Pregled Odgovora
    Midhat Turkusic
    Ainda não há avaliações
  • 7 Zlica Secera
    7 Zlica Secera
    Documento1 página
    7 Zlica Secera
    Midhat Turkusic
    Ainda não há avaliações
  • Web Tehnologije - Predavanja
    Web Tehnologije - Predavanja
    Documento54 páginas
    Web Tehnologije - Predavanja
    Midhat Turkusic
    Ainda não há avaliações
  • Labos UML Uvod Dijagrami Klasa
    Labos UML Uvod Dijagrami Klasa
    Documento105 páginas
    Labos UML Uvod Dijagrami Klasa
    Midhat Turkusic
    Ainda não há avaliações
  • C++ Tutorial Sa Primjerima
    C++ Tutorial Sa Primjerima
    Documento13 páginas
    C++ Tutorial Sa Primjerima
    Jasmin Sokolović
    Ainda não há avaliações
  • Poslovna Matematika Predavanja Xdio
    Poslovna Matematika Predavanja Xdio
    Documento20 páginas
    Poslovna Matematika Predavanja Xdio
    Midhat Turkusic
    Ainda não há avaliações