Kuda plovi ovaj brod

Danas

Jutros sam, čitajući BlicOnline, naišao na sledeću vest: Tolerisaće pravopisne greške na testu iz srpskog. Kada se uzme u obzir i kvalitet testova iz matematike, o kojima je pisao kolega sa ETF-a u tekstu Obrazovni sistem Srbije je zvanično mrtav, nije teško zaključiti da nam školstvo polako ali sigurno propada. Koliko god se protivio odluci iz pomenute vesti sa sajta Blica, ovaj tekst ne bih pisao da nisam pročitao sledeću, još banalniju vest: Đacima se kao greška neće računati ni mešanje ћirиliцe i лatиnice. Nadao sam se da je ova vest šala. Nažalost, nije.

Pre 7 godina

Nisam polagao klasičan prijemni ispit za srednje škole, jer sam se upisao u Matematičku gimnaziju (polaže se poseban ispit iz matematike). Bez obzira na to, spremao sam se tokom celog osmog razreda za prijemni iz srpskog i matematike zajedno sa svojim drugovima iz odeljenja. Tokom cele godine, na časovima srpskog jezika i matematike smo, pored standardnog gradiva, radili i zadatke iz zbirki za pripremu prijemnih ispita. Sećam se nekoliko pravila koje smo morali da poštujemo na testovima iz sprskog jezika. Ukoliko na kraj rečenice ne bismo stavili tačku, odgovor ne bi bio priznat. Pogrešna upotreba velikog i malog slova je takođe bila sankcionisana. Od petog razreda, nakon što smo naučili sve padeže, njihova pogrešna upotreba u pismenim zadacima se kažnjavala jedinicom. Cilj ovog teksta nije da kaže kako je bilo “u naše vreme”, već da pokaže zašto su pravopis i gramatika vrlo važni.

Šta će nam pravopis?

Kada pišete neki tekst, vrlo je bitno šta hoćete da kažete. Ali, priznaćete, bitno je da to što napišete bude pravopisno i gramatički ispravno. Zašto?

Pre malo više od pola veka, biti pismen je bila privilegija malog broja ljudi koji su mogli da sebi priušte školovanje. Vremenom je tas na kome sede pismeni ljudi prevagnuo. Živimo u 21. veku, kada je pismenost nešto što se podrazumeva. Zašto se vraćati unazad? U Srbiji ima preko milion nepismenih ljudi. Da li je cilj da se taj broj poveća ili smanji?

Istok Pavlović u svom postu na Fejsbuku iznosi sledeće razmišljanje (parafrazirano): “U pitanjima koja se odnose na istoriju književnosti ne treba ocenjivati pravopis.”.

Da li je onda u redu da učenik koji odgovara lektiru ne mora da se izražava ispravno? Da li je u redu da se na ovakav način prepriča Romeo i Julija:

Romeo i Julija su Žabari iz Verone i oni se smuvaju. Međutim, matorci su im veoma zajebani i uopšte se ne gotive jer rade isti biznis ali su u različitim ekipama. Zent im je da ih ne provale i da im ne ukinu kintu, pa se viđaju tajno. I tako na 50 strana oni kao nešto kriju i kenjaju jedno drugom kako se vole. Na kraju, jednom prilikom upadnu u loš trip i roknu se.

Pokazao je da poznaje radnju, zašto mu ne priznati odgovor?

Pismenost nije nešto što se polaže posebno. To je sastavni deo izražavanja. Kada radite zadatke iz matematike, poštujete neke konvencije za pisanje formula. Ako napišete program koji je semantički ispravan, a sintaksno ne, kompajler Vam ga neće prevesti.

Naravno, ne treba sankcionisati sve greške istom merom. Zaboravljeni zarez, neznačajna greška u upotrebi velikog slova se mogu progledati kroz prste u pitanjima gde pravopis nije ono što se proverava. Ali loša upotreba padeža, pisanje vlastitih imena malim slovom, pisanje negacija i glagola kao jednu reč su nešto što ne treba tolerisati, u bilo kom kontekstu. Mešanje ćirilice i latinice neću da komentarišem. Niko ne poznaje kompletan pravopis. To nije razlog da se ne trudimo da se izražavamo što je moguće ispravnije.

Zaključak

Od kad je internet postao dostupan većini stanovnika, počela je i degradacija srpskog jezika nepotrebnim unošenjem stranih reči i izraza (Fejsbuk generacija). Ako se protiv toga borimo tako što kod provere znanja srozamo kriterijume na minimum, šta dobijamo? Uništićemo smisao osnovne škole, mesta gde se stiče osnovno obrazovanje koje je neophodno za dalji nastavak školovanja a još više za dalji život. Osnovci će u srednje škole ulaziti sa sve manje znanja. I tako, lančanom reakcijom, posle 10ak godina, spuštaće se kriterijum u srednjim školama, pa i fakultetima. Tako ćemo, ionako već poljuljani sistem obrazovanja u Srbiji, lagano da gurnemo niz liticu. A jasno je da ćemo i mi ići zajedno sa njim. Kuda će onda da plovi ovaj brod?

Sigurnost na Android mobilnim uređajima

U poslednjih godinu-godinu i po dana, Android uređaji (mobilni telefoni pre svega, a u skorije vreme i tableti) su preplavili domaće tržište. Otvorenost, veliki izbor aplikacija i mogućnosti koje pruža Android je ono što ga je učinilo toliko popularnim (zanemarićemo i uvek prisutno “tač skrin je sad in, hoću i ja da ga imam”). Ovako brza ekspanzija je dovela do toga da mnogi novi korisnici nisu svesni svih aspekata korišćenja Android mobilnih telefona, uglavnom znog nedostatka potrebe za određenim funkcionalnostima. Na žalost, bezbednost spada u tu kategoriju, i to uglavnom kod korisnika kojima tehnika “nije jača strana”. Ako uzmemo u obzir da danas u telefonima držimo dosta privatnih podataka (telefonski imenik, fotografije…), bitno je da posvetimo posebnu pažnju na sigurnost i bezbednost naših mobilnih uređaja.

U ovom tekstu ću se osvrnuti na par bitnih stvari koje treba imati na umu pri instaliranju novih aplikacija na telefon.

Izvori aplikacija

Aplikacije se na Android uređaj mogu instalirati na više načina. Najčešći način je preko Google Play (ili Google Market) aplikacije na mobilnom uređaju. Drugi način, vrlo sličan prvom, je preko zvaničnog Goolge-ovog websajta – Google Play (nekada Google Market). Treći način je da preuzmete .apk fajl sa interneta, prebacite ga na telefon i instalirate direktno. Prednost prvog i drugog načina je što programer mora da plati izvesnu, relativno malu, sumu novca Googlu da bi mogao da postavi aplikaciju na Google Play. Ovo eliminiše “klince” koji bi hteli da bez mnogo truda i znanja nanesu štetu korisniku koji instalira njihovu aplikaciju. Dakle, instalirajte aplikacije isključivo sa Google Play-a. Instaliranje pomoću gotovih .apk fajlova se preporučuje samo ako aplikacija nije dostupna preko Google Play-a i ako imate poverenje u programera koji je razvio aplikaciju.

Iako je Google Play zvaničan servis sa distribuciju Android aplikacija, to nikako ne znači da su sve aplikacije koje možete preuzeti odatle bezbedne. Neretko se dešava da neko postavi malicioznu aplikaciju i na neki način privuče nepažljivog korisnika da je instalira (na primer, maskirajući je da liči na neku veoma popularnu aplikaciju). Postoji način da se od ovoga odbranite.

Dozvole za aplikacije (permissions)

Android sistem omogućava da na prilično jednostavan način pre instalacije vidite šta neka aplikacija “može da uradi” kada je instalirate na telefon. Programer je dužan da pri razvoju aplikacije navede spisak svih dozvola koje aplikacija može da zahteva u trenutku izvršavanja. Sistem je projektovan tako da kada aplikacija u toku rada traži neki resurs (kamera, SD kartica, pristup imeniku…), operativni sistem najpre proveri da li je odgovarajuća dozvola navedena u pomenutom spisku. Ukoliko nije, izvršavanje aplikacije biva nasilno prekinuto od strane operativnog sistema.

Dakle, pre instacije, vrlo je bitno proučiti koje sve dozvole aplikacija zahteva. Google se potrudio da maksimalno olakša ovaj posao i približi ga manje iskusnim korisnicima. Za svaku aplikaciju je moguće pročitati detaljan opis dozvola koje traže, kao i na koji način bi zlonamerni programer mogao da ih zloupotrebi. Ono što je bitno proveriti je da li aplikacija zahteva samo dozvole koje su joj neophodne za rad – nije “normalno” da kalkulator ima pristup vašim ličnim podacima ili da može da šalje SMS poruke, na primer.

Ažuriranje aplikacija

Važno je napomenuti da i prilikom ažuriranja aplikacije treba izvršiti proveru aplikacije – tj. dozvola koje zahteva. Spisak svih traženih dozvola se, slično kao prilikom instalacije, prikazuje i pre ažuriranja. Nova mogućnost ugrađena u aplikaciju može da zahteva dodatne dozvole koje su potrebne za njeno funkcionisanje (recimo, programer je odlučio da u aplikaciju za hvatanje beleški ubaci i mogućnost fotografiasanja beleški, pa je stoga neophodno da doda i dozvolu za pristup kameri telefona). Stoga, bitno je proveriti da li su tražene dozvole u i dalje u skladu sa “obećanim” funkcionalnostima aplikacije.

Utisci drugih korisnika

Google play omogućava korisnicima aplikacija da iznose svoja mišljenja i utiske o njima u vidu kratkih komentara, kao i ocenjivanjem. Ovo takođe može biti dobar pokazatelj o kvalitetu, a i bezbednosti aplikacije. Iako je ovaj sistem relativno pouzdan (naročito ukoliko je veliki broj korisnika dao svoje mišljenje), ne treba se uvek oslanjati na njega. Kao šaljivu ilustraciju navodim strip sa xkcd-a.

Bez zaključka

Planirao sam da se o bezbednosti na Androidu bavim u više članaka, tako da će ovde izostati standardni zaključak.

Ubuntu, DSLR i timelapse fotografija

Šta je timelapse fotografija?

Timelapse fotografija (nemam ideju kako bi se ovo prevelo na srpski) je posebna vrsta snimanja gde se neka relativno statična scena snima duži vremenski period (nekoliko minuta, sati, dana) i kasnije u postprodukciji dobijeni snimak ubrzava. Za bolje razumevanje ove nezgrapno sročene “definicije”, pogledaćemo razliku između običnog i timelapse snimanja.

Kod normalnog snimka, kamera beleži, recimo, 30 kadrova u sekundi. Pri reprodukciji snimka, prikazuje vam se 30 kadrova u sekundi, tako da zapravo vidite događaj u normalnoj brzini (1x). Međutim, zamislimo sada da kamera beleži jedan kadar na svakih 5 sekundi, a pri reprodukciji se i dalje prikazuje 30 frejmova po sekundi. Efekat koji se ovime postiže je da se događaj na vašem ekranu odvija 30*5=150 puta brže nego u prirodi.

Ukoliko ne posedujete video kameru (ili fotoaparat sa mogućnošću snimanja video zapisa), za ovu svrhu može da posluži i fotoaparat (u mom slučaju Nikon D40). Doduše, fotoaparat može da ima prednost nad kamerom ukoliko Vam je potreban snimak veće rezolucije ili boljeg kvaliteta (gde veličina senzora i optika igraju najvažniju ulogu).

Dakle, zamisao je da neku statičnu, tj. sporopromenljivu scenu fotografišemo više puta i dobijene fotografije spojimo u jedan video snimak. Najpogodniji objekat za ovaj “poduhvat” koji mi je bio pri ruci je peščani časovnik. Procedura je sledeća:

  • Potrebno je postaviti scenu i obezbediti postojan izvor svetla (koji će minimalno da se menja za vreme snimanja)
  • Podesiti fotoaparat da okida na svakih x skundi (u mom slučaju 3 sekunde)
  • Obaviti snimanje
  • Od dobijenih fotografija napraviti video snimak

Scena i osvetljenje

Što se tiče postavljanja scene, to ostavljam Vašoj mašti. Što se tiče svetla, najbolje je da to bude prirodno svetlo, ili eventualno neka lampa sa ili bez softboxa (tako garantujete nepromenljivost tokom vremena). Ne znam da li blic može da daje konstantnu osvetljenost u uzastopnim snimcima, pa stoga možda nije pogodan za ovakvo snimanje. Ja ga lično ne bih koristio jer je potrebno snimiti od nekoliko desetina pa do nekoliko stotina fotografija – jednostavno ne želim da terorišem blic. Naravno, osvetljenje možete da komplikujete koliko Vam imaginacija i tehničke mogućnosti dozvoljavaju.

Podešavanje fotoaparata

Nažalost, Nikon D40 nema opciju za timelapse fotografisanje, pa sam morao da se služim drugim tehnikama. Pre više od godinu dana koristio sam Nikonov program Camera Control Pro 2, koji ima funkciju za timelapse fotografisanje (fotoaparat je potrebno povezati na računar preko USB porta).

Na nesreću, mada očekivano, ovaj program ne podržava Linux operativne sisteme. Uz pomoć google-a sam pronašao biblioteku za linux pod nazivom gphoto2 koja omogućava konrolisanje fotoaparata preko USB kabla. Instalacija biblioteke se vrši sledećom komandom

sudo apt-get install gphoto2

Kratak skript za bash koji sam koristio sa snimanje je prikazan ispod (to je modifikovan kôd sa ove web lokacije)

# interrupt in any any command fails
# interrupt in any any command fails
set -e

# verbose execution
set -x

# gphoto2 binary executable
GPHOTO=gphoto2

# delta time between snapshots in seconds
DELTA=3

$GPHOTO --auto-detect

FNAME=img
FEXT=.jpg
COUNT=1000

while [ 1 ] ; do
	X1=`date +%s`
	X2=$(($DELTA+$X1))

	$GPHOTO --capture-image-and-download --filename  $FNAME$COUNT$FEXT

	COUNT=$(($COUNT+1))

	X1=`date +%s`
	T=$(($X2-$X1))
	if [ $T -gt 0 ] ; then
    		sleep $T
	else
    		echo "WARNING: DELTA is too small"
	fi
done

Isti kôd je dostupan i na Git repozitorijumu na adresi https://github.com/vdimic/Nikon-Linux-Time-Lapse

Kôd se izvršava pozivanjem iz bash shella i izvršava se neograničeno dugo, tj dok ga korisnik ne prekine. Uz modifikacije bi moglo da se omogući završetak snimanja posle određenog vremena ili broja snimljenih fotografija.

Bitna napomena: Fotoaparat mora biti u PTP modu. Nakon priključivanja fotoaparata na računar preko USB kabla, moguće je da će se mountovati. Da bi skripta radila, potrebno je unmountovati fotoaparat.

Video snimak

Za spajanje fotografija u video snimak koristio sam besplatni open-source program Kdenlive za Linux.

Kranji rezultat

Utisci sa prvog srpskog Hackathona

Juče je završen prvi srpski Hackathon u organizaciji kompanije Nordeus iz Beograda, o kome sam pisao pre mesec dana. Učestvovalo je 11 timova od po četiri člana. Imali smo zadatak da za 24h napravimo tower defense igricu. Bilo je dozvoljeno korišćenje svih resursa sa interneta (grafika, muzika, engine-i…), ali, naravno, bilo je zabranjeno modifikovanje gotovih open-source igara sličnog tipa. U konkurenciju za nagrade su ulazile samo igrice koje su bile igrive, tj imale su jedan igriv singleplayer nivo, što je na kraju svaki tim i uspeo da napravi.

Nordeus Hackathon 2011

Ceo događaj je počeo u petak, 23. decembra u 15h. Pre početka samog takmičenja, usledilo je fotografisanje i predstavljanje timova. Nakon toga, saopštena nam je tema igrice (koju do tada nismo znali), kao i neka osnovna pravila o resursima i softveru koji smemo da koristimo. Nakon toga smo se smestili u kancelarije (svaki tim je imao posebnu kancelariju). Radilo se na računarima koje je obezbedila kompanija Nordeus, ili na računarima koje su sami takmičari doneli. Na svakih 6 sati smo imali check-pointe, kada su zaposleni iz Nordeus-a posećivali takmičare da steknu uvid o onome što rade.

Bila je obezbeđena i soba za spavanje, ali dosta ljudi nije uopšte spavalo jer su svi bili usresređeni na to da naprave najbolju igricu. Takođe, bila je obezbeđena i velika količina hrane i pića tokom celog takmičenja.

Continue reading

Paketna obrada slika u Linuxu


Nezanemarljiv broj put sam imao potrebu da brzo obradim veči broj slika/fotografija. Pod obradom ovde podrazumevam promenu imena fajlova, promenu dimenzija slika i slično. Nekada sam u ove namene koristio Phatch, GUI program koji omogućava navedene radnje.
Kako se radi o  Linux operativnom sistemu, logično je pretpostaviti da postoji neki alat za iste operacije, ali koji se pokreće iz konzole. Radi se o programu ImageMagick. Krajnje jednostavna konzolna aplikacija, koja pruža neborjeno mogućnosti za paketnu obradu slika, počevši od promene dimenzija, preko konvertovanja iz jednog formata u drugi, do osnovnih transformacija (rotiranje, kropovanje…).

Daću ovde kratak tutorial o opcijama koje sam koristio za svoje potrebe.

Instalacija

sudo apt-get install imagemagick

Promena veličine svih slika iz tekućeg direktorijuma sa ekstenzijom .jpg na 600×400

(NAPOMENA: Ova komanda će prepisati stare fajlove novim)

convert -resize 600×400 *.jpg

Konvertovanje formata slike 1.jpg u 1.gif u tekućem folderu

convert 1.jpg 1.gif

Spisak svih mogućih opcija je jako dugačak i možete ga pogledati na ovom linku.

BubbleBot – finale

Pre oko mesec dana, Microsoft Razvojni Centar u Srbiji je organizovao takmičenje u veštačkoj inteligenciji pod nazivom BubbleBot. Zadatak je bio da se u proizvoljnom programskom jeziku isprogramira tim za mali fudbal, 2-na-2. Za razliku od drugih programerskih takmičenja, ovo je posebno zanimljivo jer zahteva drugačiji način razmišljanja, kao i zbog toga što se teoretsko znaje algoritama i matematike može vizuelno dočarati.

Svi prijavljeni takmičari, tj. botovi, su se najpre takmičili protiv SimpleBot-a, bota kojeg su programirali organizatori, a u cilju da se spreči slanje ‘glupih’ botova. Nakon toga, botovi su raspoređeni u četiri grupe. Po najbolja dva bota iz svake grupe (ukupno njih osam) su se plasirala u finale, koje je održano juče, 7. decembra na Elektrotehničkom fakultetu u Beogradu.

Nakon 7 mečeva, od kojih su neki bili krajnje neizvesni i uzbudljivi, bot pod nazivom STORK, koga je razvio kolega sa master studija na Elektrotehničkom fakultetu, je proglašen za pobednika. Zasluženo!

Bot koji smo razvijali kolega sa ETF-a i ja, nažalost, nije se našao među najboljih osam (bili smo treći u našoj grupi). Ali generalno smo zadovoljni kako zanimljivošću samog razvoja bota, tako i odličnom atmosferom na samom finalu. Iako je ovo ‘nulta’ verzija takmičenja, organizacija je bila na sasvim solidnom nivou.

Iskreno se nadam se da će ovakva takmičenja postati učestalija.

Nordeus Hackathon 2011

Napomena: Neke informacije na sajtu takmičenja su u međuvremenu promenjene, tako da je i ovaj članak pretrpeo određene izmene.

Kompanija Nordeus ove godine, po prvi put, organizuje takmičenje u izradi igara pod nazivom Hackathon 2011. Takmičenje će se održati 23.12.2011. godine u Beogradu i trajeće 24h. Takmičari će za to vreme trebati da naprave igricu koristeći neke od ponuđenih programskih jezika i tehnologija.

Nordeus Hackathon 2011

Continue reading

Cloud computing – Računarstvo u oblaku

Složićete se da je ovaj termin sve prisutniji u poslednje vreme u mnogim sferama našeg života. Svuda po internetu se možemo susresti sa različitim sajtovima koji nude neku vrstu cloud servisa. Mnogi su se susretali sa ovime direktno, a da to nisu ni znali. Koliko je ova tema važna govori i činjenica da je tema ovogodišnje Sinergije bila Cloud Power.

Šta je zapravo cloud computing, ili kako je na naš jezik prevedeno, računarstvo u oblaku?

Pogledajmo najpre kako izgleda standardno korišćenje računara danas. Za svaki posao koji želite da obavite na računaru (obrada teksta, slušanje muzike, izrada prezentacija, obrada fotografija…), potrebno je da imate instaliranu odgovarajuću aplikaciju. Za složenije zadatke su nam potrebne kompleksnije aplikacije, što zahteva hardverski jaču mašinu, što dalje iziskuje više ulaganja u sam računar. Naravno, na tu cenu se dodaju i cene licenci za softver, koje za složenije aplikacije dostižu nekoliko stotina, pa i hiljada dolara. Ukoliko često putujete i potrebno je da imate pristup svim podacima, onda je jedino rešenje da sa sobom nosite eksterni hard disk ili notebook računar.

Pogledajmo još jedan primer – manja firma koja prevashodno koristi računare u obavljanju svoje delatnosti. Tu se troškovi kupovine adekvatnih računara i softvera povećavaju nekoliko puta, srazmerno broju računara u firmi. Takođe, pored problema pristupnosti podataka sa bilo koje lokacije, javlja se i problem deljenja podataka unutar samog preduzeća. Naravno,  javlja se i potreba za bekapom podataka. Prethodna dva problema standardno se rešavaju upotrebom mrežnih diskova, čija cena nije zanemarljiva.
Continue reading

Ubuntu logo

Ubuntu – reinstalacija bez gubljenja podataka i aplikacija

Za one koje mrzi da čitaju uvod, odgovor na pitanje iz naslova će naći na pri kraju članka, tamo gde sve vrvi od boldovanih reči.

Kada sam prvi put instalirao Linux sa namerom da ga aktivno koristim, a to je bilo pre skoro 3 godine, muku sam mučio da nateram ceo sistem da funkcioniše ispravno. U to vreme, Ubuntu je nakon instalacije zahtevao poprilično mnogo podešavanja da bi sve bilo onako kako sam navikao na Windows-u (i ovde mislim na osnovne funkcionalnosti – grafika, zvuk…). Srećom, svaki sledeći distro je bio sve bolji i bolji, pa nije bilo potrebno izdvajati mnogo vremena na pomenuta podešavanja. Baš iz tog razloga sam se trudio da uvek na računaru imam najsvežije izdanje Ubuntu-a, koje izlazi na svaki 6 meseci, tj. u aprilu i oktobru.

Continue reading

Android logo

Android aplikacije

Već oko 10 meseci sam vlasnik Android telefona Samsung i5700. Zato sam želeo da u ovom članku dam kratak opis aplikacija za koje smatram da mogu biti vrlo korisne i drugim korisnicima mobilnih telefona sa Android operativnim sistemom. Za početak jedna napomena: kako je verzija Andoida na mom telefonu 1.5, mnoge bolje aplikacije od ovih koje koristim nisam u mogućnosti da instaliram. Dakle, ovaj tekst može poslužiti kao neki mini vodič za vlasnike Androida 1.5, ali, naravno, i korisnici novijih verzija će svakako imati koristi od ovog članka.
Continue reading