Browse Author: biserx

CSS Search box/field with icon

Couple days ago I had to help my friend with some web project he was finishing. He asked me if I’m familiar with CSS and the first thing that came to my mind was this:

 

family-guy-window-blinds
CSS

 

 

But I was like “Challenge accepted!”. There were more tasks and one of them was to create search box. And to keep story short, here is the result:

Animation
Animation

You can download the source code here. Feel free to post your opinions/bugs in the comments 😉

Petnička konferencija – Korak u nauku

Ovog vikenda se u Istraživačkoj stanici Petnica održava trinaesta po redu naučna konferencija – Korak u nauku. Polaznici su tokom godine vredno radili na projektima, napisali su naučne radove, a sada na konferenciji ih prezentuju svojim kolegama u Petnici, rukovodiocima, medijima…

Zajednička fotografija polaznika na konferenciji
Zajednička fotografija polaznika na konferenciji

Ali smisao ovog bloga nije da prene informacije o tome koliko je radova prezentovano, odakle su polaznici, koji su dalji planovi ISP i sl. već da iznesem ono što novinari ne mogu da napišu/snime, a to je ono što se može doživeti samo ako u stanici proživite deo svog života, kada vi postanete deo stanice i ona postane deo vas. Kada se u stanici osećate kao kod kuće, a ne kao gost i kada vam tokom studija bude isto da li za vikend  odete kući ili dodjete u Petnicu.

IMG_6540
Hello 🙂

 

Iako se Petnica mnogo promenila od dana kada sam prvi put, kao uplašeni klinac, kročio na njeno tlo, na neki neobičan način, ostala je ista. Ustvari sada je zapravo samo veća.

Naravno, promenili su se i ljudi i promenilo se kako oni vide Petnicu. Mlađe generacije to drugačije doživljavaju u odnosu na nas kada smo bili njihovih godina. Kao saradnik, imam osećaj da polaznici nisu dovoljno komunikativni, da se manje druže nego mi, da manje paze na predavanjima, da ih je manje briga… I verovatno ima nešto u tome, ali isto tako verovatno nismo ni mi bili najdivniji kada smo bili polaznici.

Znali smo i mi da budemo nestašni, da zadirkujemo jedni druge, da svašta radimo rukovodiocima iza leđa. Jedva smo čekali da se predavanja i obaveze završe i da dođe veče da pevamo uz gitaru.

Džitra
Džitra

Da se upoznajemo i da se družimo. Da na pečurkama držimo za ruku naše simpatije, a da se sledeći put vidimo tek na sledećem seminaru ako budemo oboje pozvani. Da noćima ne spavamo, a na predavanjima dremamo.

Zzz
Zzz

Da u sobama za 6 osoba spava nas 13. Ne zato što moramo, već zato što smo tako želeli.

1 = 2
1 = 2

Da čitave noći pričamo viceve. Da tokom hladnih noći, umotani u ćebe gledamo zvezde i dočekujemo izlazak sunca. 

Nije baš hladno i nema ćebeta, but..
Nije baš hladno i nema ćebeta, but..

Da se družimo sa kučićima i mačićima koji su zalutali u stanicu. 

 

cuteness overload
cuteness overload

Da sedimo ispod trešnje.

Ispod trešnje
Ispod trešnje

Da se po kiši dobacujemo sa frizbijem. 

Frizbi
Frizbi

Da se igramo Ratova Zvezda ili šta god da nam je tada bilo na pameti xD (ni jedna osoba nije povređena u snimanju ove scene, mačevi su od papira :P)

Hasan seckati!
Hasan seckati!

I kakvi god da smo bili, naučili smo mnogo.  Ne samo ono sa predavanja, već nešto mnogo vrednije. I to nas je promenilo. Zauvek i na bolje.

 

Sos za špagete na mamin način

Pošto obožavam da jedem testeninu, pogotovo špagete sa mesom, moja mama se prilično uvežbala u pravljenju tog sosa.
Ovom prilikom želim taj recept da podelim sa vama, a vi ocenite da li imam dobar ukus 😉

– 800g mlevenog mesa
– 200g patlidžana (narendanog)
– veliki crni luk
– 2-3 čeha belog luka
– svežeg parajza ili paradajz soka (po želji)
– so, biber, origano, ulje

Prvo izdinstati crni luk na ulju, a zatim dodati patlidžan. Malo kasnije meso i beli luk. Kada se to sve isprži (voda ispari), dodati paradajz (sok) i sve ostale začine i zatim kuvati.
Sve to traje dosta dugo, oko sat vremena.

Kada se sos pospe po testenini, od gore narendati trapist.

Prijatno 🙂

Better way of using parseJSON

While doing on some project I found myself in situation where, when parsing JSON data,  if server thrown an error (syntax error for example), I finished with only parsing error. Without information what happened wrong (without data that server returned), I was unable to solve the problem. So I decided to create function parseJSON2. Not to much creative name, but it did the job. Here it is:

jQuery._parseJSON2 = function(data) {
	var parsed = null;
	try {
		parsed = $.parseJSON(data);
	} catch(err) {
		console.error(err);
		console.error(data);
	}
	return parsed;
}

I modified my code to use this function instead of regular parseJSON function. This way, when server returned error, I had it printed in my console.

So feel free to use this function if you find it useful.

Edit:

Now here is another idea: When some error happen at the client side, send it to server.

During testing period, you may miss some use cases where error is hidden. But clients will for sure find that little bug.

That way you can track when some errors occurs at client side, which you did not reproduced earlier. And you can solve them.

Startup Live Novi Sad #2

Pretposlednji vikend septembra sam proveo na Fruškoj gori, na drugom po redu Startup Live koji se održava u Novom Sadu. Pošto mi je to bila prva poseta događaju ovakvog tipa, nisam znao šta da očekujem, ali moram priznati da sam pozitivno iznenađen sada kada je sve zavrseno.
Za one koji ne znaju šta je startap… Ukratko, to je prilika da usavršite vašu ideju, izložite je investitorima, da dobijete sredstva da za njenu realizaciju i osnujete firmu i razvijete proizvod. U praksi je malo komplikovanije, ali je u principu to.
Održani Startup Live mene podseća na jednu veliku radionicu. Za 52 sata su predstavljene ideje posetilaca, oformljeni su timovi, održana predavanja, mnogo konsultacija sa mentorima i na kraju prezentacije (pitching) onoga u šta su se početne ideje razvile.
Ono što mi je najvrednije nakon ova tri dana, jeste znanje koje sam stekao o startapima. Iako smo na radinocama u principu bili fokusirani na to kako započeti dobar startap, kako razviti biznis plan i kako dobiti founding, naučio sam i mnogo toga o ciklusu startapa i kako se on završava.

Uglavnom, poenta ovog bloga je da vas motiviše da se prijavite za startape i naučite sami. Ukoliko trenutno niste u mogućnosti da prisustvujete nekom ovakvom događaju, a želite da naučite nešto više o tome, posetite neke od sledećih linkova:

belgradeventureforum.org
startapakademija.com
startuplive.in
startit.rs
kickstarter.com
11.me
seedcamp.com

😉

Using prepared statement in PHP

So this is the result of using prepared statements in PHP on not so comfort way. Each time when I had to perform some query, I had something like this in my code

<?php
	$stmt = $con->prepare("SELECT * FROM table WHERE id = ?");
	$stmt->bind_param("i", $id);
	$stmt->execute();
	$results = $stmt->get_result();
?>

First problem occurred when I wanted to use this code on server where MySQL native driver for PHP was not enabled. When driver is not enabled, using get_result() function is not possible. It was free server, something I was doing just for fun, so it was not possible either to contact support or to install it by myself. Then I had to change the way I get results. And I had to do that on every single line in a code where I had query. A lot of work.

Second problem was a lot of repeating code which I don’t like. And I wanted to catch errors (which I didn’t do from the beginning). Again, I had to change my code on every place where I had query executing.

So I decided to create function, which will do executing queries instead of me.  I Googled a little bit, and found this.

That allowed me to create function like this:

<?php
	function prepareAndExecuteQuery($con, $query, $bindString, $bindArgs) {
		if (!is_array($bindArgs)) 
			exit ("prepareAndExecuteQuery - bindArgs not array");

		$n = strlen($bindString); 
		if ($n != count($bindArgs))
			exit("prepareAndExecuteQuery - bindString params count not equal to the bindArgs count");

		$a_params = array();
		$a_params[] = & $bindString;
		for($i = 0; $i < $n; $i++) 
			$a_params[] = & $bindArgs[$i];

		$stmt = $con->prepare($query);

		call_user_func_array(array($stmt, 'bind_param'), $a_params);

		if (!$stmt)
			exit("prepareAndExecuteQuery - Binding parameters failed");

		if(!$stmt->execute())
			exit("prepareAndExecuteQuery - Execute failed - " . $stmt->error);

		$result = $stmt->get_result();
		$stmt->close();
		if (!$result) 
			exit("prepareAndExecuteQuery - No results - " . $stmt->error);

		return $result;
	}
?>

Now when I have to execute some query I do it this way:

<?php
	$sql = "SELECT * FROM table WHERE id = ?";
	$result = prepareAndExecuteQuery($con, $sql,"i"', array($id));
?>

Less code and much more flexibility. If one day I decide to change something in execution of queries, I’ll have to do it just at one place.

I hope it will be helpful to someone else too 😉

 

“Prženje” grafičke kartice

Neki to urade u rerni, kažu 200 stepeni, 5 minuta je dovoljno. A ja sam to uradio na malo drugačiji način, pošto je meni rikla integrisana grafička na laptopu. Ali evo prvo mali uvod, za one koji nisu sigurni o čemu se ovde radi, čisto da ne bi posumnjali da pravim paprikaš od računarskih komponenti.

Kada se računar zapusti ili kada mu dođu godine, obično zakaže hlađenje, pa se računar pregreva i pregreva dok jednom ne prestane da radi. I onda odnesete računar u servis i kažu vam da će ga popraviti za recimo desetak hiljada dinara. Iz onoga što sam naučio u poslednja dva meseca, za šta ne garantujem da je tačno, jer je uglavnom “znanje sa raznih foruma”, je da vaš računar zapravo i nije pokvaren. Ili barem ne u smislu pokvaren-nešto-je-riklo. Ono što se najverovatnije dogodilo, jeste da se od pregrevanja odlemio čip sa ploče. U servisu taj čip zagreju na određenu temperaturu, veze se obnove i “Wola, računar radi!”. Postoje i tehnike kada se menja “sačma” (šta god to bilo), onda je postupak znazno komplikovaniji ali i sigurniji. Eto to kažu ljudi na forumima, a ja, pošto ne volim da platim nešto ako ne moram, kažem da ću sam da probam da ugrejem čip.

Kao što sam rekao, problem koji sam imao, je bio malo komplikovaniji, pošto se radilo o celoj matičnoj ploči, tako da varijanta sa rernom nije dolazila u obzir.

Pokušavao sam i sa fenom za kosu da ugrejem čip, ali temperatura nije bila dovoljno visoka da bi se veze obnovile. Pokušao sam i sa više njih, takođe bezuspešno. Stupid me.

A onda sam odlučio sa fenom za skidanje boje/laka. Šest stotina stepeni mora da bude dovoljno! Kada sam konačno došao do takve mašine, ipak sam odlučio da malo usporim, pa probam sa recimo 250 stepeni. Zaštitio sam ostatak komponenti na ploči sa alu-folijom, na štoperici namestio 5 minuta i feniranje je počelo. Nakon toga sam sačekao da se čip ohladi, povezao ploču na displej i napajanje – klik – i računar ponovo radi 🙂

E sada ova priča se ne završava lepo kao što sada to možda izgleda. Računar iako je proradio, imao je gadne probleme sa pregrevanjem. Restartovanje se događalo prilikom samo malo većeg opterećenja grafiče kartice. Na kraju ga je zamenio novi računar, a stari je prodat u servis u delove.

Uglavnom, odavde sam naučio da neke stvari baš i ne mogu kod kuće da se urade. Ja sam imao situaciju kada je popravka bila skuplja nego cela nova matična ploča, tako da sam se odlučio na eksperimentisanje. U suprotnom to verovatno ne bih uradio, a ne preporučujem ni vama.

Pazite gde klikćete

Da je ovo sajt Kurira naslov bi verovatno glasio “NEVEROVATNO – Pazite gde klikćete! On nije pazio i pogledajte šta mu se dogodilo!!!”. Ali srećom, ovo nije Kurir. Zapravo, ovde će biti reči o tome kako da ne nasednete na ovakve naslove i kliknete negde gde zapravo ne želite. Pa da krenemo:

Dogodilo se nesto strasno
Dogodilo se nesto strasno

To “STRAŠNO” pojačava i ova slika iznad teksta. Vrlo verovato da će privuci vašu pažnju, a najverovatnije i klik na istu. Kada malo bolje pogledate, ispod stršsne rešenice stoji link gde piše blicb92.blogger.ba – razmislite malo, zašto blic i b92 zajedno i zašto sve to na nekom blogger sajtu?

A kada već kliknete, šeka vas nešto slično ovome:

Samo za punolente - NOT!
Samo za punolente – NOT!

Posedovanje Facebook naloga ne dokazuje vaše punoletstvo. Ovo je samo način da tvorci ove stranice skupe lajkove.

U slučaju kada odlučite da “dokažete” vaše punoletstvo poklanjajući lajk tamo nekome (u ovakvim slučajevima vi i ne znate šta tačno lajkujete), zauzvrat dobijete neki krš gif koji često nema veze sa onim što vas je privuklo da posetite tu stranicu. Sa druge strane vaši prijatelji na Facebook-u sada vide da ste vi lajkovali to nešto (što je ponovo nekog primamljivog sadržaja) i lanac se nastavlja.

Dole je lajkovanje malo zamaskirano, tako da vam je “nasedanje” znatno olakšano…

Close = Like
Close = Like

…tako da vi zapravo kliknete Like iako to niste želeli.

E sada čemu ti lajkovi? Čemu toliki trud da se skupi ogromna količina lajkova? Odgovor su pare. Da, prave pare, “zelembaći”. Napraviš stranicu koja će lako da skupi lajkove, zatim je prodaš nekome, taj neko promeni naslov stranice, sliku, sve redom i preko noći je taj neko (ili neka kompanija, proizvod) zaradio gomilu lajkova. Odjednom je to popularno, mnogo ljudi je to lajkovalo i iskače ljudima na timeline-u.

Pošto ovaj tekst stoji u pripremi već dosta dugo, nisam siguran koliko je Facebook radio u međuvremenu na tome da zaštiti svoje korisnike od ovakvih prevara. Svejedno, princip je isti i za svuda. Napraviti nešto primamljivo iza čega stoji prevara. Tako da sledeći put pre nego što kliknete na neki link, razmislite koliko je realno da se to što stoji u opisu linka, zapravo dogodilo.

Inače, dok se nismo udaljili daleko od ove teme, preporučujem da pročitate i ovo: http://www.tarzanija.com/klikni/

Dodatak za Chrome? Zaista?
Dodatak za Chrome? Zaista?

Pošto sam upravo pročitao par tekstova na Tarzaniji, imam potrebu da se izrazim ovako: “Ako klikneš na ovo Click to Install, to ti je kao da si ga metno nekojo iz picinog parka bez kurtona. A ako posle toga još klikneš i na dugme Add, onda si 100% zaradio hepatitis abecedu i sve ostale polno prenosive bolesti i više te ni jedan doktor, a ni pop, neće spasiti.” Pa ti klikni.

Kada ne moze jednostavnije, hajde da ga zakomplikujemo
Kada ne moze jednostavnije, hajde da ga zakomplikujemo

Na slici iznad je ključan ovaj označeni pravougaonik gde pored piše Use OpenSubtitles Download Manager. Ovo je takođe prevara. Da bi skunuo prevod za film, treba ti jedan klik, a nakon toga ti treba još jedan da bi ga pustio sa filmom. Ukoliko ne otkačiš pomenuti pravougaonik, Download Manager će da te smori dok se ne instalira, zatim će da te smara koji prevod hoćeš, usput će da instalira još 5 plejera koje ti ne želiš i AKO na kraju ipak skine prevod, verovatno ćeš će zahtevati registraciju na nekom sajtu da bi ga pustio. A instaliraće i još nešto gratis verujem…

Da ti operem sajbnu?
Da ti operem šajbnu?

Ponovo, ključna stvar iznad je CNET Installer Enabled. Opet neki Download Manager, u ovom slučaju CNET Installer. Skini to, pa će on da skine ono čto ti treba. Jer si ti retardiran, pa sam ne umeš. Tako da ni to ne želimo….

Jos jedno pranje sajbne
Jos jedno pranje sajbne

Za kraj, ponovo malo ozbiljnosti. Ako ste uspešno zaobišli sve mine koje su vam do sada bile postavljene, nemojte se opuštati. Čeka vas barem još jedna. Da li vaš PC “trči” punom brzinom? Pa naravno da ne trči kada neko sranje gledada se uvuče u njega na svakom ćošku! Ovo što se sada kulturno nudi da vam se zavuče u komp (da ne kažem gde još…), to vam neće ubrzati računar. Ako želite brži računar, naučite se da ga održavate i da ne istalirate kojekakve gluposti na njega. U krajnjem slučaju, kupine novi računar. Sa SSD diskom naravno i vaš računar će da leti 😉

stupid4 stupid3 stupid2 stupid1

E2 – Računarstvo i Automatika – generalno o smeru

Pre nekoliko nedelja grupa nas kolega je odbranilo diplomski i tako smo postali diplomirani inženjeri elektrotehnike i računarstva. Iako je rodbina prilicno uzbuđena oko toga, meni to još uvek ne dopire do mozga, a sumnjam i da li će..

Nego, hajde da sada kada su četiri godine studija završene, da pokušam da sumiram šta je to što mene (ne)čini inženjerem. Jer to definitivno nije diploma, već sve ono što sam naučio tokom mojih studija.

U ovom tekstu ću pisati o onome šta sam ja naučio na smeru Računarstvo i Automatika. Tekst je subjektivan (jako) i odnosi se na usmerenje koje sam ja odabrao (RT-RK).

Matematika

Iako sam u prvoj godini razbijao glavu učeći analizu i diskretnu i preklinjao sve što ima veze sa time, sada bih bio presrećan da je toga bilo više. Ne razbijanja glave naravno, nego više matematike, više vežbanja, da sam “upio” više znanja. Na višim godinama je jako čest slučaj da se podrazumeva da smo nesto učili, a zapravo nismo i tu onda nastaju komplikacije. Inače, gradiva je puno, asistenata je malo, a malo je i volje (mogu reći i znanja) u asistentima da objasnje studentima tu matematiku kako valja. Uglavnom, ako se sami primite posla i naučite ono što vam se ponudi, mislim da na kraju i nećete biti u tako lošoj situaciji.

Programiranje

Pod programiranjem ću ovde prodrazumevati sve programerske predmete koje sam imao u toku studija.

Na prvom predmetu vezanom za programiranje, profesor je imao običaj da deli studente na na dve grupe – oni koji su u srednjoj školi učili Paskal i one koji su učili C. Pošto sam ja u srednjoj školi učio C programski jezik, meni je to sve već bilo poznato. Ali imam osećaj da je predmet u principu bio loš. Ne moze se C naučiti za ne puna 4 meseca gde se pored toga polažu jos 3 ispita (dve mate). Ne kvalitetno i detaljno koliko se to od nas očekuje, a kasnije i traži na nekim daljim predmetima. Potrebno je više vežbe, više primera, zadaci treba da budu nešto konkretnije od sume prvih n brojeva ili generatora Fibonačijevog niza. Takvi zadaci kada su rešeni ne ostvare nikakvo zadovoljstvo u studentu što bi ga motivisalo za dalji rad.

Sledeći predmet se bavi objektno orijentisanim programiranjem u C++ programskom jeziku. Ponovo loši primeri i nula motivacije za dalji rad. “Klasa automobil naslesjuje klasu vozilo. Sadrzi funkcije ukljuci i iskljuci motor.” Ni danas mi nije jasno kako takav primer tako “dobro” oslikava objektno programiranje.

Predmet Arhitektura računara mislim da sasvim ok prezentuje oblast koju pokriva. Jasno je objašnjen rad mikroprocesora, uloga registara, aritmetičko logičke jedinice, skupovi operacija.. Na vežbama se radi Asembler. Primeri možda nisu najsrećniji, ali nije ni Asembler jezik za početnike. Uglavnom, moj utisak je da sam dosta naučio slušajući ovaj predmet i zadovoljan sam time.

Kasnije na predmetu Operativni sistemi radi se konkutentno programiranje, pthread, kriticne sekcije, mutex, atomske sekcije, semafori, sinhronizacija.. Ako se niste time bavili do sada, ovo vam sada ne znači puno, ali je zapravo jako važno. Takođe moj pozitivni utisak uz par zamerki. Ne bi bilo loše da se predmet sastoji od većeg fonda časova, a pošto se velikim delom proučava konkurentno programiranje, onda bi se predmet tako mogao i zvati.

Logičko projektovanje računarskih sistema (skraćeno LPRS) dolazi u dva predmeta – 1 i 2. Nisam siguran da li se program menjao, ali moja generacija je, u provm delu predmeta, projektovala procesor sa nekim ograničenim skupom instrukcija. Vrlo dobra vežba da se arhitektura računara oseti u praksi. Sky is the limit, tako da možete napraviti i protočni procesor sa velikim skupom instrukcija. Meni lično, jako zabavan predmet, iako je prilično zahtevan. U drugom delu predmeta radi se podrška za periferije. Malo manje interesantno, ali svakako korisno.

Sistemske programske podrške (dva predmeta) se bave čisto konkurentnim programiranjem,  korišćenjem Intelovog TBB i Cilk okruženja. Naučili smo puno, ali izbor alata (TBB i Cilk) mi je potpuno nejasan. Radili smo i projekte gde se zahtevala određena doza ozbiljnosti, što je cool. Opšti utisak kvare pomenuti alati, ali je ostalo ok.

Napredni kurs i C programskog jezika u 4. godini je je*eno SJAJAN! I nisam sarkastičan.. Oduševio sam se kada sam video koliko ne poznajem C programski jezik i kako je lako napraviti teško uočljivu grešku kada se rade egzotične stvari u C-u.

Predmeti vezani za DSP su meni bili jako dosadni zbog teorije. Ali i pored toga smatram da su jako važni predmeti, gde ako neko ne shvati sve, važno je barem da shvati suštinu.

Elektronika

Moje lično mišljenje je da jedan inženjer elektrotehnike pored predmeta Osnovi elektrotehnike mora da zna i malo od klasišne elektronike. Nažalost Elektronika koju sam ja slušao je jako zamorna. Mnogo teorije, mnogo nepotrebnih stvari. Više bih cenio da smo imali pola prezentovanog gradiva, ali da smo imali neki praktični rad na kraju. Laboratorijske vežbe koje se odrade na kraju semestra se oslanjaju na teoriju, ali je to samo vežba sa gotovom maketom, gde se isprati uputstvo, povežu žice i očitaju podaci sa instrumenta. Utisak je prilično loš zbog toga.

Automatika

Jako je važno poznavati koncepte, mada ponovo imam osecaj da se previše pažnje posveti teoretisanju i rađenju zadataka na papiru, dok se to sve moze raditi u prakticno, što je mnogo bolje i mnogo više motiviše.

Ono što nedostaje…

Iskreno, meni je apsurdno što na E2 smeru ne postoji ni jedan predmet koji se bavi algoritmima. Zbog toga se osećam kao ne zaslužujem zvanje inženjera iz moje oblasti, pošto algoritme nemam pojma. To moram da učim sam i sa strane. Nekoliko knjiga i online kursevi su dobra stvar da se nauči nešto, ali uvek fali neko da posavetuje, da neki hint ili upozori na nešto što sam prevideo.

Tako da smatram to kao jednu veliku manu ovog smera. Od prošle godine je otvoren novi smer (ako se ne varam E3?), ali nisam dovoljno upućen šta se tamo događa i da li je njihov program možda bolje organizovan. Iako se iskreno nadam da jeste, mada to ne poboljšava situaciju na smeru E2.

Zaključak

Kada vam neki predmet nije zanimljiv onako kako ga profesor i asistenti predaju, potrudite se i napravite ga da vam bude zanimljiv. Ako su zadaci prejednostavni, smislite neki projekat koji ćete sami uraditi, tako da kada ga završite, dobijete onaj osećaj da ste nešto vredno uradili. Ako su vam zadaci preteški, smarajte asistente da vam ih objasne. Nemojte dopustiti da izpaštate zbog nezainteresovanosti profesora i zbog velikog broja studenata koji utiče na organizaciju nastave. Potrošite deo slobodnog vremena da bi ste unapredili svoje znanje.

Što se tiče algoritama, učite i vi sa strane. Ne dopustite sebi da jednog dana na nekom intervjuu za posao ostanete bez teksta kada vam postave neko osnovno pitanje vezano za algoritme.

FTN, E2 – treća godina (RTRK)

Ukoliko upisujete smer Racunarstvo i Automatika (E2) na FTN-u, pogledajte prvo ovaj članak. Nakon završetka druge godine, potrebno je da se opredelite koji odsek želite da upišete. Pred vama su tri mogućnosti: Automatika, RNI (nauke) ili RTRK (Računarska tehnika i računarske komunikacije). Svako od ovih usmerenja je specifično, a preporuka je da odaberete ono što vam najviše leži, odnosno ono što najviše volite. Ja sam upisao odsek RTRK, tako da ću ovom prilikom malo opisati kako sam se proveo u prethodnoj godini.

Krajem druge godine, potrebno je da popunite anketu u kojoj se opredeljujete koji smer želite da upišete. Anketa je obavezna, ali ne predstavlja konačan izbor. U toj anketi birate koji odsek upisujete i koje predmete želite da slušate u trćoj godini. Pošto izbor odseka daje samo preporuku koje predmete treba da slušate, to znači da iako odaberete jedan odsek, možete odabrati da slušate predmete sa neke druge katedre. Ja sam umesto nekih predmeta sa RTRK odseka, slušao predmete sa nauka, kao što su Web programiranje i HCI. Na trećoj godini sam slušao sledeće predmete: Elektronika, OAiS DSP1, ORM1, SPPURV2, Metode Optimizacije, ORM2, HCI, Web programiranje, LPRS2, PNRS i za svaki od ovih predmeta ću napisati moje lično iskustvo.

OAiSDSP1 (Osnovi algoritama i strukture podataka 1)

Predavanja i vežbe. Ocena se formira na bazi testa i usmenog odgovaranja teorije. Mada je moguće da su ta pravila u međuvremenu izmenjena. Meni je teorija predstavljala problem dok nisam našao odgovarajuću literaturu. Profesor to sve lepo objasni na predavanjima, ali meni to jednostavno nije odgovaralo. Činilo mi se preteškim.. Inače, moja preporuka je da učite teoriju unapred ili barem paralelno sa predavanjima, pa će vam i predavanja biti jasnija, a vežbe če imati više smisla.

Elektronika

Ovaj predmet drže dva profesora – analognu i digitalnu elektroniku, odvojeno. Ocena se formira sa dva kolokvijuma gde radite teoriju i zadatke, oba pismeno. Ukupno četiri četvrtine. Svaka položena četvrtina vam važi dva roka, odnosno u roku kada je položite i onom narednom, osim ako položite jednu celu polovinu (recimo teoriju i zadatke iz prve oblasti), onda to (nadam se) važi do kraja godine. Teorijska pitanja kao i zadaci se ponavljaju iz roka u rok i nema nekih izmišljanja od strane profesora i asistenata što se toga tiče, tako da nije problem naučiti.

ORM1 (Osnovi računarskih mreža 1)

Ocena = teorija na papiru + projekat. Za izradu projekta se spremate na vežbama tokom semestra i projekat u principu bude da se uklopi ono što je rađeno na nekoliko različitih vežbi. Nije naročito teško, osim eventualno teorije. Mada i tu postoje skripte koje vam skraćuju vreme provedenog nad knjigom 😉

SPPURV2 (Sistemska programska podrška u realnom vremenu 2)

Teorija i projekat. Teorija kao i na SPPURV1, pismeno. Pitanja budu u principu random, pa ne postoji baš neka univerzalna skripta. Treba imati sreće za tako nešto. Što se tiče projekta, on je malo komplikovaniji od ostalih predmetnih projekata sa kojima ćete se susresti. Radi se projekat (svaki student ima različiti), testiranje, dokumentacija i odbrana. Moje iskustvo sa tim projektom je loše, jer smo testiranje samo pomenuli, uputstvo koje smo dobili  za to nije valjalo, a asistenti su bili jako strogi prilikom ocenjivanja. Mada se na kraju dobro završilo, ne mogu da kažem da sam presrećan što je tako ispalo, a nadam se da će se to promeniti dogodine.

Metode Optimizacije (MO, Metode)

Zaboravih kako se tačno polaže, jer je postojala opcija da se umesto zadataka na kolokvijumima rade projekti. I to zanimljivi projekti. Tako da sam oba kolokvijuma odradio preko projekata. A i teorije smo bili oslobođeni iz ne znam tačno kojeg razloga. Uglavnom jako cool profesor, lepi primeri kroz predvanja i vežbe, šablonski zadaci, nije teško položiti. Slušajte samo šta profesor priča za teoriju i gledajte da toga budete oslobođeni ako bude šanse za to 🙂

ORM2 (Osnovi računarskih mreža 2)

Dva teorijska kolokvijuma i projekat. Za teoriju postoje skripte, tako da se lako nauči. Projekat se malo razlikuje od ostalih projekata, u tome što se programira mrežni protokol koji će da radi ono što profesor zada. Ali ne na PC-u, već na nekoj ploičici (zaboravih sada tačan naziv). To vas naravno malo ograničava sa stanovišta korišćenja resursa, ali bude zanimljivo. Profa je takođe cool, nećete imati nikakvih problema 🙂

HCI (Human Computer Interaction, Interakcija čovek računar)

E ovo je predmet za koji sam mislio da je najveća besmislica dok sam ga slušao i polagao. A kada sam otišao na praksu na Tajland, shvatio sam koliko ono što sam učio, kod njih zapravo nije primenjeno. I koliko se ja tamo zbog toga nerviram. Zbog svega toga, smatram da sam iz tog predmeta izvukao neke važne smernice kako nešto treba raditi, ali i stekao osećaj da shvatim kada nešto ne valja.

images

Elem, predmet se polaže ovako: pisanje revizije nekog programa, predmetni projekat, dve teorije. Revizija je malo dosadna stvar, ali nosi malo bodova, pa nije strašno. Predmetni projekat na papiru izgleda zanimljivo, ali za realizaciju ima jaaako puno kodovanja, naročito GUI-a, povezivanja kontrola sa funkcijama, zaštite od unosa pogrešnih podataka, obaveštenja korisniku… Bude naporno. Teorija nije teška, uči se iz skripte iz koje profesor predaje na predavanjima. Pročitati više puta i nema problema.

Web programiranje

Meni lično jako zanimljiv predmet. I predavanja i projekat. Pravilo je bilo da ko odbrani projekat u prvom roku, ne mora da izlazi na teoriju, već ima maksimum. Na vežbama se uči od HTML-a i CSS-a, preko Java Script-a i jQuery-a do Java Servlet-a i JSP-a. Sve to na kraju koristite da bi ste uradili projekat, a ove godine je bilo zadato da se uradi nešto na foru IMDb.com.

LPRS2 (Logičko projektovanje računarskih sistema 2)

LPRS 2 je nastavak na LPRS1. Podrazumeva se znanje iz prvog dela predmeta, pošto se sada rade malo ozbiljnije stvari. Kasnije se uči i MIPS arhitektura i programira se u asembleru na simulatoru. Izazovno, mada na mene nije ostavilo neki utisak. Ocena se formira od bodova osvojenih na vežbama i teorije koju možete polagati preko kolokvijuma pismeno ili usmeno kod profesora.

PNRS (Projektovanje namenskih računarskih struktura)

Programiranje za Android OS. Radi se projekat i polaže se teorija. Rećiću samo da je jako dobar predmet za svakoga koga interesuje Android. Profesor je korektan, volećete ga 😉

Moguće da su se do sada promenila pravila polaganja na nekim predmetima. Moguće je i da sam zaboravio da napišem neke detalje. Tako da slobodno pitajte ispod 😉