Scrum & Jim

Red pill vs blue pullU organizaciji Scrum alliance i domaćeg Puzzle Software, Jim Coplien je održao dvodnevni Scrum Master trening u Beogradu 18. i 19. maja. Posle nekoliko godina rada u Scrum timu kao developer, a kasnije i kao Scrum master, koristim priliku da pored utisaka sa treninga zapišem i svoje viđenje metode i zajednice uopšte. Pre nego što položim test i zvanično postanem član Scrum alijanse :)

Znate da je Scrum agilna metoda za upravljanje (softverskim) projektima, koja je sve popularnija. Pri upoznavanju sa agilnim metodama i scrum-om primetio da ima puno različitih tumačenje samog scrum-a. Ove razlike su, delom, nastale i zbog toga jer je metoda sa razlogom zamišljena dovoljno opšte, više u smislu skupa preporuka i dobre prakse, nego kao metodologija koja bi davala gotove odgovore na postavljena pitanja.

dalje…

Polimorfizam ili Switch?

U poslovnim aplikacijama često se javlja potreba za sličnom funkcionalnošću nad entitetima različite vrste u sistemu. Na primer, u trgovini postoje različiti tipovi dokumenata, kalkulacije (ulaz robe), transferi (izlaz robe), nivelacije (promena cena), koji su po podacima koje sadrže vrlo slični. Nad ovim dokumentima se izvršavaju i istoimene akcije: import, eksport, knjiženje, posledice akcija zavise od tipa dokumenta. Kada se knjiži ulaz robe, pored kreiranja odgovarajućeg dokumenta, menjaju se količine robe na stanju, kada se knjiži promena cena, jasno je da se ne menjaju količine robe, ali se zato ažurira cenovnik. Verovatno u glavi već imate primer iz industrije kojom se trenutno bavite.

Cilj je rešenje poslovnog problema ovog tipa, ali i kôd organizovan tako tako da bude što lakši za održavanje i proširivanje. Idealno je rešenje koje dozvoljava da se doda novi slučaj, tj. u našem primeru novi tip dokumenta, ali i nova akcija, na primer izvoz u excel, bez ili sa što manje izmena na postojećem izvornom kôdu. Ovaj problem je poznat i dovoljno čest da je dobio i ime The Expression Problem.

Prikazaću primer rešenja u strukturnom, uz pomoć jedne klase i switch strukture, i objektno orijentisanom pristupu, koristeći polimorfizam i neku vrstu naivnog factory pattern-a. Da bi kôd bio jednostavniji neću koristiti inicijalni primer iz trgovine, već standardne kuce i mace. Dakle, pravimo softverski model koji ce opisati životinje, dovoljne su nam dve vrste Cat i Dog, koje imaju ime Name, i dve funkcije Walk i Talk.

Ukoliko želite da pratite priču kroz kôd, solution sa primerima u C# možete skinuti ovdesadrži četiri projekta, svaki je samostalna konzolna aplikacija sa primerom. Potrebno je da na računaru imate instaliran Visual Studio 2010. 
dalje…

Hakeri, blogeri i srećna nova 2012

Početkom ove, 2011 godine, krenuo sam sa pisanjem. Nakupilo se 10 tekstova, uglavnom na stručne teme. Ideja ima na pretek, pa ukoliko imate volje i umeća javite se, konkurs je uvek otvoren :)

Tri najčitanija posta u 2011 su, redom:

Pomalo neočekivano na listi nema .NET Stringova, a najposećenija stranica na blogu je about stranica, očigledno vas zanima ko stoji iza Bug-a, nisam siguran da li je to pozitivno ili negativno :)

Ono što je obleležilo 2011 na Bug.Rs, nije ogromna popularnost mojih postova ;), već hakerski napad. Tačnije neko je iskoristio sql inject propust u wordpress-u da izmeni administratorsku lozinku, zatim je zamenio naslovnu stranu nekom svojom porukum, tj. uradio je tzv. deface sajta.
dalje…

Sign .NET Assembly with Strong Name

Znate da .NET omogućava da digitalno potpišete svoj kôd?

Zašto potpisujemo dll-ove?

Želimo da onemogućimo izmenu asemblija, npr. izmenu naziva ili verzije, ili izmeni samog kôda.

U nekim slučajevima je bitno da identifikujemo da je dll koji koristimo baš taj koji očekujemo. Ukoliko je biblioteka koja proverava da li je validna licenca našeg softvera u posebnom dll-u, relativno je lako podmetnuti drugi dll sa istim potpisom (klasama, metodama…) koji bi uvek vraćao da je licenca validna.

Digitalni potpis

Ideja digitalnog potpisa je da omogući primaocu proveru integriteta podataka koji potiču od pošiljaoca. Pošiljaoc, koji je i potpisnik podataka, ima par kriptografskih ključeva, javni ključ i privatni ključ. Primaocu je dostupan samo javni ključ, što je dovoljno da potvrdi da je poruku, tj. podatke koje je poslao pošiljaoc primio u izvornom obliku. Postoje različiti načini da se implementira digitalno potpisivanje, implementacija Strong name .NET Framwork-a se oslanja na RSA algoritam za enkripciju/dekripciju i SHA-1 heš funkciju.

dalje…

Ustupamo prostor

Bug je okrenut profesinalnim  temama, nastao je iz želje da podelim ono što znam sa  drugima, kao i da uvećam i produbim svoje znanje. Odlučio sam da pišem o stručnim temama na  srpskom jeziku, jer mislim da tako mogu najviše da doprinesem svom okruženju, što je cilj, da ne kažem misija :). Sa druge strane, svestan sam šireg okruženja u kome živimo i mislim je ova humanitarna akcija blogera ok, tako da ustupam prostor.

Akciju su pokrenuli blogeri Ivan ĆosićDragana Đermanović i Istok Pavlović

dalje…