Tuesday, December 19, 2006

Zgrada u kojoj radim

Monday, December 18, 2006

Magicna Fontana





Monday, December 11, 2006

Heisenbugs

Dragi moji, osecam potrebu da svim programerima koje znam a i onima koji ovo citaju, podelim moju danasnju patnju kako se oni ne bi nasli u slicnoj situaciji. Iako programiram vec celu deceniju i to raznorazan softver ovako nesto mi se nikada nije dogodilo.

Ukratko, ja sada radim na projektu transakcione memorije. Bez ulazenja u detalje napravio sam neki transformator C++ koda, tako da je svake pristup memoriji odvija posredno kros poziv neke funkcije, a onda su pozivi tih funkcija smesteni u neku bibljioteku koja implementira transakcioni mehanizam, odnosno na neki nacih vodi evidenciju gde se i kada pristupalo. E sad ja sam sve to lepo implementirao i sve je to radilo i ja jos napisah i naucni rad o tome i u trenutku kada sam bio bas srecan i hteo da napravim poslednji test pre nego sto stavim tacku na sve dogodila se katastrofa. Odjednom je program poceo da se zakucava i samo je izlazila kratka poruka kernela "Killed" i nista vide. Tu nastaju moji problemi, pocinjem da gledam sta biblioteka mulja, pocinjem da gledam sta generator koda mulja. Vrlo je tesko da se bilo sta uoci posto originalni kod nema nikakve veze sa onim sto se desava jer ga prvo generator prerilja, a onda jos transakciona biblioteka snima podatke kako se njoj cefne, tako da ni kod ni podaci nisu kakvi treba da budu. I tako ja paitm, patim, patim, menjam generisani kod rucno?!?!? ubacujem da se ispisuju komentari, brosem neke delove koda i izgubim ceo dan i onda obrisem sav kod i biblioteke i generatora ali nista, prazan program se i dalje zakucava i samo kaze "Killed" :). Ja mislim ovde mene neko zeza, vec poceo da trazim oglase u nekim drugim strukama kad uocih zlotvora :) Kada sam testirao program hteo sam da na kraju odstampam rezultat na sledeci nacin:

int value;
...
printf("... %d not...", value);

medjutim ispustio sam slovo d pa je kod bio ovakam:

printf("... % not...", value);

Ispostavi se kasnije da "% n" znaci da na lokaciju na koju pokazuje pointer value ispisati broj karaktera koji su odstampani do ovog trenutka :))))))
Tako da je ova linija koda u stvari gadjala neku memoriju koju nije smela da dotakne i kernel je automatski ubijao proces :)

Tako da nije bio problem ni u generatoru koda ni u transakcionoj biblioteci vec u carima Ca.

Cjudi ne gubite nadu kad se pojavi neki bug. Danas sam cuo da postoji nesto sto se zove Heisenbugs, kao u Heisenbergova teorija neodredjenosti, Heisenbugs - nikada se ne moze znati i vreme i mesto gde ce se bag desiti :) Ali samo odlucno. Ako se malo prosetate i dodjete malo kasnije baga vise nece biti na tom mestu :) sto je donekle pozitivno.

Srdacan pozdrav i cuvajte se jer je u vasem kodu sigurno Heisenbugs :)

Sunday, December 10, 2006

Lavirint

Jos jedna od znamenitosti Barselone koju nikako ne treba propustiti...


Saturday, December 09, 2006

VIPSI konferencija - Bled Slovenija 2006

Jos nekoliko slika sa konferencije u Sloveniji...





Web cam

Kupio sam web kamericu pa mozemo da se cujemo i vidimo.

Tuesday, December 05, 2006

Bozicna atmosfera u kancelariji

Monday, December 04, 2006

Konferencija u Sloveniji 2006.

Slike iz diskoteke...