2024
- IO Monad na Javi
Na klupici tik pored ulaza je skrušeno sedeo dečačić i držao sladoled na štapiću. Dečak kao da nije mario za bilo šta; sladoled se topio i lepljivo kapao na pod, a suze su mu musavile rumene obraze. - Obrazac M97/CC, šalter 4
Hteo si da rešiš svoj PR i pridružiš ga ostatku projekta? Imaš li potvrdu BOB22/R? - IF IF THEN IF ELSE IF
Ako pada kiša, nosim kišobran; ako ne pada, nosim naočare za sunce. Danas nosim oboje. Kakvo je vreme? - Kuku, Traktor, Aktor
Kao da postoji nekakav zoološki vrt softverskog razvoja u kome se čuvaju egzotične životinje za koje smo čuli, ali ih retko posećujemo. - Kako ređaš parametre, tako misliš
Funkcije i metode pravimo svaki dan. Postoji li dogovor oko imenovanja? Oko redosleda parametara? - Liskov Substitution Problem
Barbara je dala mnoga lepa razmišljanja o ponašanju i tipovima. Mi smo ih zanemarili i na njih zalepili "LSP" etiketu. - Single Responsibility Problem
Softversko inženjerstvo mora biti precizno. Sve šta ustanovimo kao princip ili pravilo mora da nosi što manje nedoumica. SRP je primer jednog pogrešnog i neupotrebljivog principa. - WDHT2DTRT
Postoji višestruko-upotrebljiv "ili-izgovor-ili-opravdanje", džoker-tetka za sve projekte, špageti-sos za svaki kod, zicer-hack za svaki proces.
2023
- Koliko niti može biti?
Eksperimentalno programiranje. CPU jezgra u mom računaru ima koliko i majmuna: 12. Koliko bi niti trebalo da koristimo za paralelnu obradu poslova u programu? - Oktobar 1968.
Dok Brajan Adam dečački peva o letu '69 kao najboljim danima ikada, u softverskoj industriji vlada samo-prozvana kriza. Pošto je godina iz naslova pesme samo referenca na seksualni čin, dozvoljeno nam je da je promenimo, te upotrebimo istu pesmu za godinu pre, 1968. Najbolje godine, zar ne? - Sofronije vs. monade
Ništa ti, sinak, ono sa monadama ne razumem. Oš li mi, ovaj, ti to malo pojasniti? Pratim kurs "Postani Java Pevac Ekspert za 21. dan kukurikanja"; još koje jutro i gotov sam! Hajde sinak, neću ni reč reći, sve ću te slušati, ja kada ćutim - onda ćutim, ništa ne govorim, ja sam lepo vaspitan, jednom umalo nisam umro od gladi jer nisam hteo da kažem da sam gladan... - Monad
Iz beležnice programera: dal’ se kaže oštro "Monad" ili pak "Monada", još onako razvučeno, po vojvođanski, uz štrudlu sa makom? - Slatki greh
Fahreta Jahić je bila tek osmogodišnja klinka kada se održala prva konferencija softverskih inženjera u Garmischu, živopisnom nemačkom planinskom gradiću. - U čemu greši Dejvid H. Hanson
Nedavno je Dejvid H. Hanson, ko-osnivač kompanije 37signal, odlučio da iz projekta uklone TypeScript u koristi JavaScripta. - Samo Skram Srbina Spasava
Da li stanje jednog naroda pravi razliku u tumačenju i primeni metodologija? - O razumevanju koda, opet
Dođeš do nekih uvida, dosađuješ ljudima o tome, a potom dobiješ potvrdu od relevantne strane. Dobar osećaj. - ka i zen
Iskreno: pojma nemam šta tačno znači "Kaizen". Nikada nisam pročitao ništa značajno na tu temu. - Markes, Ana, relacije, parovi i kompot
Ana Grigorjevna Dostojevska čita knjigu pisca Gabrijel Hose de la Konkordija Garsija Markesa. - Zadovoljstvo na upit
Upitnici su tako zgodan izum! Rekao je niko nikada, osim 1) onoga ko nekako mora da opravda svoje mesto na poslu i 2) menadžmenta kome komunikacija nije jača strana. - Slučaj skarletnog manifesta
"Treći put refaktorišem isti obrazac u projektu", slegnuo je ramenima Edvard Rajnolds. Rekao je to ne žaleći se, uzgred. Opisivao je projekat na kome je angažovan svom prijatelju, projektnom menadžeru Votsonu. - Opasne veze
Markiza de Mertej izaziva vikonta De Valmona da zavede nevinu Sesiliju de Volanž; upuštaju se u sofisticiranu igru zavođenja i manipulacije kako bi se zabavili. Tokom igara sa svojim žrtvama, mnoge tajne veze bivaju isprepletane. Posledice su ozbiljne, čak i smrtonosne. - Lica AI
Knedla stoji u grlu, traži da se misli spuste na papir. Nije zameranje, nije osuda, nije pametovanje. - Promaja AI
Pogrešno imenovan, AI na sav glas preti sveopštim promenama. Širom otvoreni prozori landaraju na vetru AI novosti, a mi se potajno plašimo da ne prehladimo na promaji. Bolje i to, nego da neki prozor zatvorimo, zar ne? - Obrasci
Kako vreme odmiče, sve je manje toga što vredi izdvojiti kao zaista važno. Tako je i sa softverskim razvojem.
2022
- Četa, a, i, igara
Samo napišem šta hoću i - ta veličanstvena crna kutija mašinskog učenja i statistike, u narodu poznata kao AI - izbaci kod koji radi. Više ništa neće biti isto kao pre! Ne znamo šta, ne znamo na koji način, ali... eto. - Commitment Contract Open Source
Postoji aspekt otvorenog koda (i autorskog sadržaja) koji zahteva pažnju. - Tri vikend projekta
Nekoliko ideja za vikend projekte. Imam s čim, nemam s kim :) Bacim u blog, pa idemo dalje. - Dragan Laković i dev Aćim
Kako bi zvučale dečje pesme da je lutak Aćim... programer? Vreme je da saznamo. FOTO/VIDEO. - Sjaj i beda programatora
Lisjen Šardon de Ribampre je pravi stereotip savremenog programera. Uredna, pesnička osoba, ali slaba i malodušna; sukob plemenitih težnji i sklonosti ka poroku. Osećanje morala ne odoljeva iskušenjima. Savest programera je budna, nije učmala, ali je kolebljiva, neodlučna; time i nemoćna. Stvaralačka energija postoji, ali nalet idealizma brzo jenjava. - Gospodar prstena
Kakvo li je to moralo biti razočarenje za malog Frodoa, kada je shvatio da je upravo uništen Prsten tek samo jedan od mnogih. Mračnih gospodara ima na pretek: JavaSkript, Java, Skala, C#, Python, Go, Rust...; žare i pale prstenjem moći, dok neizmerne predele gutaju senke noći. - Četiri crvena pitanja
Ima pitanja koja znače više nego ono što pitaju. To o čemu posredno govore je često i nekakav pokazatelj stanja stvari u organizaciji. - The Office as a Code
"Tačno znamo šta da radimo. Ali u nekom mnogo stvarnijem smislu, mi pojma nemamo šta da uradimo." - Majkl Skot, menadžer programera. Da li postoji formula razvoja? - Očitana lična karta
Postavljanje tehnologije između čoveka i cilja nije nikakva digitalna evolucija. To je samo maskiranje kognitivnog neumeća, zapećak razvoja. Rezultuje procesima koji su moderni samo u smislu godine proizvodnje; podjednako apatično nesposobni da dobace dalje. - Smooth Software Operator
I am happy to announce that I have taken a position as Software Operator. It has been my dream to work for any company, and I am very thankful for those non-engineers who have helped me get here. I can't wait to get started! - Karate izazov
Igra Kaladont postaje NP problem kada treba pronaći najduži mogući niz reči. Spoiler alert: ukoliko kanite upustiti se u izazov, ne čitajte dalje. - while(true)
Iskodirao sam trivijalnu `while(true)` petlju za dovlačenje svih elemenata kolekcije po stranicama. Nije mi se dopalo to što sam napisao. - Modeli itd.
Modeli su domenski tipovi: klase koje oslikavaju domen u kodu. Tako nekako; nisam vičan definicijama. - Moduli itd.
Onog trenutka kada smo usvojili da je klasa jedinica enkapsulacije, je trenutak kada je sve krenuloop nizbrdoop. - Zabeleške o Java bekend primeru
Sastavio sam mali primer SpringBoot/JPA/Kafka/OpenAPI bekend projekta. - SRP & Doc
Nisam odavno video dobru tehničku dokumentaciju. Razlog je narušen SRP princip. Koga ste, garantujem, bar jednom čuli objašnjenog na pogrešan način. - Paralelne ravni seniorstva
Besmisleno je izjednačavati senioritet inženjera sa domenskim senioritetom. Nepraktično je poravnati radne procese različitih nivoa seniornosti. - LoD, Paperboy & ISCAN
Dimitrijev (po "naški":) zakon govori o razdvajanju apstrakcija i labavom uvezivanju komponenti koda. Jedna je od programerskih praksi koja gotovo bez izuzetka rezultuje boljim kodom - bar kodom sa značajno manje bagova, kako su pokazala istraživanja do kojih sam došao. - Dan kada sam ignorisao loš kod
Prvo da postavim kulise: velika firma, mnoštvo timova. Jedan od zadataka je integracija sa novim spoljnim sistemom, trećom stranom. Deo integracije zahteva pisanje malog servisa koji periodično dostavlja potrebne podatke. - Boje koda
Kod se može obojiti. Takođe, prestanimo više da pišemo anemične servisne i repo klase, kao i da mislimo u imenicama. - Klika
Kako su posetioci tehnološke konferencije uz pomoć jedne umetnice stvorili podsetnik čemu tehnologija zapravo služi. - Ćorsokak kapaciteta
Postoji jedan apsurd iskustva za koji nema ni naznaka da ga prepoznajemo, a kamoli rešavamo. Nikada ne prestaj učiti, kažu. - Mitovi i legende
Koje metodologije je koristio Ahil? Da li je Gilgameš znao za TDD? Kako je Svarog držao sastanke? - ITluzija
Stotinjak knjiga fikcije u kućnoj biblioteci me ne čini piscem. Stotinjak odgledanih filmova me ne čini režiserom. Zašto se, onda, firme koje iznajmljuju IT radnike predstavljaju kao IT firme? - Deljeni razvoj
Poznat scenario: timovi rade u domenski bliskim projektima, u istom poslovnom eko-sistemu, na sličan način. Gde ima preklapanja, bude i ponavljanja. - Konceptualna kompresija
Iznova se vraćam na jedno od važnijih inženjerskih pitanja. Zanimljivo je da pitanje nema konačan odgovor. Divergetno, služi da mu se neprestano vraćamo, a odgovaranjem osmišljavamo, ni manje, ni više, dalji napredak. - Gugl efikasno kvari internet
"Moraš da se rastaneš sa svojim idejama odmah!" uporna je moja omiljena SEO menadžerka. Teško mi da priznam, u pravu je. Ćutim, škrgućem zubima i teram inat.
2021
- PR PogReška
Volim Pull Requestove (PR). Radim sam, bez ometanja, u vreme koje mi odgovara, svojim tempom. Pošaljem izmene, uradi se code review; kod svakako postane bolji posle par iteracija. Izmene zatim odu na glavnu granu; to je to, razvoj ide dalje. Izrečeno ništa nije dalje od istine. - Dugoročni uticaj programiranja na svakodnevni način razmišljanja
Svakako da ono čime se bavimo utiče na način kako razmišljamo. Samouvid je alatka kojom prepoznajemo obrasce mentalnog modela kojim se služimo, da bi razumeli kako ga koristimo. Kao kakav utabani puteljak kroz šumu, ovi obrasci nas usmeravaju u sigurnom, isprobanom pravcu, ali nam sakrivaju sve ono što nije nadomak puta. - Stilske Vežbe
Francuski pisac Rejmon Keno je u svom delu "Stilske vežbe" ispričao jednu scenu iz pariskog autobusa na 99 različitih načina. Dodajem još tri. - IT
Vic ide ovako: Programerova žena šalje muža u prodavnicu po hleb, te mu kaže: "Kupi jednu veknu hleba. Ukoliko ima jaja, kupi tuce." - Algoritma i igara!
Niklas Wirth 1976. objavljuje knjigu: "Algorithms + Data Structures = Programs". Švajcarac je dizajnirao nekoliko programskih jezika pre i nakon knjige, uključujući i Paskal. - Izeš više Web
Hoćeš mi reći da i dalje programiramo UI koristeći tehnologiju staru 30 godina, namenjenu umrežavanju tekstualnih dokumenata? - REST, opet
Učestvovao sam u zanimljivom razgovoru. Dotakli smo se teme API-ja i kompozicije modela čiji se sadržaj vraća kroz pozive. - Brzine razvoja
Stanje softverskog razvoja ne prestaje da mi održava pozornost. Imamo pregršt alata i praksi kojih nije bilo pre samo desetak godina, a opet, kao da nismo daleko odmakli. - Bezbojni Cukuru Tazaki je dr*adžija
Kada smo postali previše osetljivi? O, uživaćete u ovome. Ili ne. - Neostvareni umetnici razvoja
Postoji nešto čak i u najveštijima što neprestano teži da nas svrsta među umetnike. - Regulativa Interneta
Primetio sam osetljivost na pojam "regulativa". Upotrebio sam ga nedavno u kontekstu potrebne promene u vezi tehnoloških proizvoda kojima smo nakrcali svakodnevnicu. - Dobar kod je onaj koji radi
Nevažno je kakav je kod, u suštini. Ako radi ono što je predviđeno - to je sasvim dovoljno, zar ne? - Kako komitovati ružan kod?
Prolazim još jedared sveže napisani kod. Bolno je ružan. Vidim probleme u najavi. Pun je ponavljanja. Nema testova. Nema dokumentacije. Zastajem kurzorom miša iznad dugmeta za "Commit". Deo mene nemo pati, zadržava odluku da pustim kod. - Dilema oko Socijalne dileme
Ako ste nakon gledanja ovog dokumentarca isključili notifikacije - bravo, ništa nismo postigli. - 22 min or less
Sve što imaš da kažeš može da stane u `22` minuta ili manje. Zameni 'može' sa 'mora'.
2020
- Zašto pristajemo na loš softver?
Imam jednu noćnu moru. Sanjam da smo neprestano okruženi digitalnim uređajima i servisima koje je neko tamo negde programirao. A onda spoznajem kako je sve isprogramirano. - Maska proaktivnosti
"Budi proaktivan!" je mantra koja se provlači u razvojnim timovima. Često i nameće. - Mnogougaona arhitektura
Koncept je jednostavan; ništa novo sada ne delim. Skrećem pažnju na efikasnu arhitekturu, jer mi izgleda da je često propuštamo na projektima - a nema razloga za time. - Vlasnost
Pisati kod je lako. Razviti projekat je je*eno teško. Verujem da ne znamo da pravimo softver, već se razvoj nekako desi. - REST in pieces, REST
Kada pomenemo REST, najčešće pomislimo na CRUD operacije nad nekakvim skupom resursa. - Algosritam
Ako konsultuješ softverskog inženjera, reći će da je algoritam opis rešenja, niz koraka za rešavanje problema. Naučeni smo da algoritme tako posmatramo: kao precizne navode, dokazive, izmerljive, ispravne. - Zadužbina
Jednu planetu na samom kraju Galaksije, Asimovljev junak naseljava enciklopedistima čiji je zadatak da sačuvaju najvažnije tekovine, znanja i veštine civilizacije. - Kako vlada Otvorena vlada
Vlada varljivo vlada, vidimo vazdan. Vagaju vešto, verno vabe vaši, vonjaju više. Varošane vredne vukovi vrebaju: vrtlog, vakuum, vezane vizije. - Baštensko crevo programiranja
Jednom kada se savladaju osnove, kompozicija postane najvažnija veština baštovanstva. - Posekoše nam šume otvorenog koda
Prete da nam poseku šume. Čin je toliko bezuman da svako istinski shvata sramnu težinu dela: i mi kojima seku i oni koji nam seku. Dižemo glas, pišemo peticije, štitimo kako znamo. - Zaštiti ili omogućiti
Sledeće parče koda je preuzeto iz živog projekta (imena su izmenjena, kao u svakom dobrom filmu). Reč je o delu zajedničke biblioteke koja se koristi u svim mikroservisima. - Merenje izmene
Rešavaš grešku na produkciji. Spreman si da komituješ ispravku. Utom uočiš prost, ali ne i trivijalan 'code smell' koji bi da počistiš. - UI tamnica
Po ko zna koji put greškom pritiskam dugme za završetak razgovora, umesto za isključenje kamere. - Licemerje narcisoidnosti
Znamo šta nam je činiti. Narcisoidni, ne prihvatamo se toga. Uljujkani u komfor, postajemo licemerni. - Kratkoživeći objekti i drugi bauci
Postoji ne tako mali broj onih koji smatra da new treba štedeti. Pravljenje nove instance je, jelte, skupa operacija, te ga treba pažljivo konzumirati; pa, možda, čak i na ušrtb dizajna koda. - Prolećno čišćenje
Koji je presek tebe i tvog digitalnog postojanja? Da li on daje smisao? Evo jednog opita. - Tačka bez povratka
Koji je najvažniji trenutak u razvoju projekta? Gde je ta granica posle koje nema više povratka? - Tezej ponovo jaše
Gotovo godinu i po dana je Tezej čekao da se njegova potraga za Minotaurom prekodira na drugačiji način. - Stranputica (softverskog) razvoja
Grebe me dugo, ne uspevam da rešim osećaj da nije sve kako treba; zavaran plemenitim odsjajem esnafa. Konačno, nakon mnogo godina, osećaj postaje misao, a reči nalaze put. - DFE FTW!
Precvetali svet razvoja softvera kao da je fanatično opsednut efikasnošću i rapidnom proizvodnjom; sve dok neko, kao u onoj priči, ne poviče "Car je go" i ukaže na višak priče, a manjak rezultata. U vezi toga postoji jedna važna praksa za koju se, koliko uočavam, slabo mari: DFE. - Opsednutost primitivnim
Postoji jedan _code smell_ na koji naročito obraćam pažnju. I gotovo je sigurno da ste koliko danas naišli na ovaj nepoželjni obrazac u programiranju i olako prešli preko njega. - Anemični servisi, krcati domeni
Program pišemo ili u anemičnim servisima ili u nakrcatim domenima. Nikako ne uspevam da se pomirim sa time, neprestano u potrazi za boljim pristupom. - Iluzija decentralizovanog
Halapljivo konzumiramo apsurd: decentralizovanu mrežu razapetu između nekolicine moćnih centara. - Olako shvaćeni pokloni otvorenog koda
Naučeni da samo tražimo, ne prepoznajemo kada nam se nešto nudi. Kada uzimamo, zaboravljamo da vratimo. - TDD kuglanje i teča Bob
Postoji jedna TDD kata koja mi naročito privlači pažnju. Često imam problem s njom na radionicama. A pomalo i sa tečom Bobom. - Ko boli Kobol
COBOL je programski jezik koji je dizajniran pre 60 godina, a koji je i dalje u upotrebi. - Virus koji je pojeo otvorene podatke
Namera se najbolje očitava u vanrednim okolnostima. I kada se sve zatvori, podaci _moraju_ ostati otvoreni. - Apstrakcija: umrljan sjaj besprekornog uma
Bez puno razmišljanja, reci šta ovo predstavlja: []? Kakve veze ima smajli sa programiranjem? A i sa AI? Konačno, zašto pogrešno doživljavamo programiranje kao umetnost. - Reasonable defaults vs Unreasonable abstraction
Premisa "reasonable defaults" zvuči tako sjajno. Izvoli uobičajene postavke, besplatne su. Kao i prvi fiks. Sve radi odmah, primenjena magija na delu. Uostalom, svi ih koriste; ukoliko ti ne, onda nisi dobar programer, niti ćeš ikada biti. - Code Review aplikacije еПорези
Tek sam nedavno osvestio da postoji aplikacija ePorezi. Odlučih da zvirnem u kod. - Buka je u modi
Vozim prateći naznačenu putanju Gugl-mape. Nalazim se u sporoj koloni vozila; gužva se pojavila kada joj vreme nije. Pratim alternativne pravce; kako imam vremena da posvetim pažnju prikazu na telefonu, uočavam oznaku izvesne radnje za venčanice na Gugl mapi. - Manifest organizovanog softverskog razvoja
Neretko razmišljam o postojanju obrazaca u razvoju softvera: na sličan način kao što postoje programerski obrasci, sigurno moraju postojati nekakvi obrasci samog softverskog razvoja i grupa koje učestvuju u njemu. - Krug nes(a)vršene dekade
Crtice u vezi tehnološke stvarnosti koje nisu našle neko bolje mesto da budu zabeležene.
2019
- Šta bi bio Nike softverskog inženjerstva?
Hajde da, zabave radi, napravimo paralelu između nekih softverskih rešenja s firmama koje se uopšte ne bave softverskim razvojem. - Možemo li popraviti polomljeno?
Gospodin Tim Berners-Lee podseća pomalo na Viktora. Učestvovao je u stvaranju nečega što je trebalo da služi ljudskom rodu; slično kao što je i Viktor pokušao da pronikne u tajne biološkog života. - Kami2 vs. Oblac
Kami 2 je zanimljiva logička igrica koja mi drži interesovanje već neko vreme. Izazova radi, pokušao sam da napišem program koji pronalazi rešenje za njene zagonetke. - Paušalno oporažena savest
Dobar pokazatelj šta nam je važno je kada prestanemo da ćutimo dok nam se uzima. Tako je bilo i u kraljevstvu Jitututu. - W.H.O.R.E.
Nemoguće je zanemariti prelivanje srećnih radnih okruženja i razdraganih radnih timova sa poslovnih mreža i oglasa za posao. Nikada mi nisu prijali. Odnedavno imam i trik kako ih zaobilazim. - OO programiranje je...
Ukoliko OOP doživljavate kao dobre, temeljne principe, čitanje ovog članka može izazvati poremećaj sna ili emocija prema meni. Nema na čemu, u oba slučaja. - Metodologijom ćeš me, metodologijom ću te
Scrum, PRINCE2, ITIL, AgilePM... Upoznajte novu metodologiju: ZDRUM™. Kida. - Sociologija, čas sa kojeg su mladi preduzetnici bežali
Ova inovativna aplikacija će učiniti svet boljim mestom! - Kratka studija dizajna funkcije
Zadatak je jednostavan. Dat je skup resursa. Svaki resurs treba proveriti istim setom pravila; rezultat provere pravila je nekakva ocena. Sve ocene resursa se čuvaju, a proračunava se i finalna ocena resursa. To je sve. - Jodd, jedna open-source priča
Zamislite malo poznat skup Java alata i frameworka otvorenog koda, proizvedenih u Beogradu, koji se preuzimaju milion puta mesečno. - Zakoni razvoja
Dosta više s nasumičnim razvojem. Ne pričamo više o pravljenju sajta za taštu ili aplikacije za lokalni video klub. Reč je o našoj svakodnevici. - VertX i greška u arhitekturi
VertX je event-driven i non-blocking web server i framework. Nekada možeš da pogrešiš u arhitekturi mikroservisa usled nerazumevanja prirode platforme. - Ti si ono što kodiraš u slobodno vreme
"Ovo je tvoja poslednja prilika. Posle ovoga, nema povratka. Ukoliko uzmeš plavu pilulu - priča se završava, probudiš se u svom krevetu i veruješ u šta želiš da veruješ. Ukoliko uzmeš crvenu pilulu - ostaješ u Zemlji čuda, i videćeš dokle doseže vrednost. Ništa više". - Nadziranje nije sloboda
Da li znaš da te nadziru? Neko tamo čuva tvoje obrasce kretanja, ponašanja; analizira; procenjuje; sve bez tvog znanja ili odobrenja. "Briga me", kažeš, "nemam šta da krijem." - Heapcon intro
Ukoliko ste prisustvovali otvaranju Heapcon konferencije 2018. godine, možda se sećate animacije koja se vrtela tokom uvodnog performansa. U jednom trenutku se iscrtavalo preko 15000 animiranih linija i krugova u 1920x1080 rezoluciji sa 60fps. Animacija je napisana u Javi. Da li sam pridobio vašu pažnju? - Data Fornication
Big data. Small data. Lični podaci. Tajni podaci. Prosečni rezultati. Šareni grafikoni i gladne pita karte. Tabele i redosledi. Mašinsko učenje. Podaci koji prave nove podatke. Meta-podaci. I beskonačan broj fotki mačaka. - Naj 12 knjiga koje morate pročitati
Svako malo osvane članak o najboljim knjigama koje morate pročitati da bi postali bolji programer. Evo zato i moje preporuke za dvanaest izuzetnih knjiga koje nipošto ne bi trebalo propustiti. - Baštovan, Algoritmi i Strukture podataka
Hleba i igara! Algoritama i struktura podataka! To je sve što treba nama.
2018
- Otpor OOP: Nasleđivanje
Svaka knjiga koja uči moderne programerske jezike veliča OOP. Na fakultetima je OOP temelj zdravog i modernog načina pisanja koda. Bez OOP se nikako ne može; tako su nas učili. - Otvoreni podaci
Pre par (!) godina prijatelj Saša mi kaže: Igore, da živimo negde drugde to što pričaš o otvorenim podacima bi zvučalo sjajno. - Šta je to digitalizacija?
Dođi, prihvati ovaj poklon: bićeš digitalizovan. Tvoj posao će procvetati. Dobićeš mesto na Internetu. Tvoje poslovanje će biti asimilovano u digitalnu eru. Doživećeš transformaciju. Ko pa može da kaže ne digitalizaciji? - Tezej protiv Minotaura
U praksi se retko susrećemo sa pravim programerskim izazovima. Jedan lep problem je zadatak iz finala ACM takmičenja iz 1995: Tezej i Minotaur. - Ne učite decu programiranju
Uvodi se informatika u osnovne škole. Dajte odmah dve kile programiranja! - Volatile nije programiranje
Ključna reč `volatile` označava varijablu koju Java "čuva u glavnoj memoriji." Ukoliko ne znaš ništa o ovome, čitaj dalje. Ukoliko znaš, ipak čitaj dalje, - Brutalno rešavanje robota
Kratak primer optimizacije _brutal-force_ pristupa korišćenog za rešavanje logičkog problema u igrici "Little Broken Robots". - Razumevanje koda
Svi mi koji razvijamo kod se zavaravamo da veći deo vremena provodimo u _pisanju_ koda. Istina je drugačija: veći deo vremena provodimo u čitanju koda - tačnije, u pokušaju da _razumemo_ kod. - Interfejs projekata mikroservisa
Mikroservisna arhitektura je karakteristična po tome da se kod za svaki mikroservis drži odvojeno: u zasebnom repozitoriju (multi-repo) ili u istom, ali zasebnim modulima (mono-repo). - Izgubljena suština
Predstaviću dve činjenice koje imaju dalekosežne posledice; tiču se tehnoloških kompanija i ljudske prirode. Krenimo redom. - Dragi startapi, vi ste...
Suočen sam bio s iskustvima nekoliko tehnoloških preduzetničkih poduhvata (dakle, startapa) u poslednje vreme. To me je podstaklo na razmišljanje. - Besmisao sastanaka
Komunikacija, iako neophodna, upravo zato što nam je uvek dostpuna lako postane neefikasna. Sastanak bi trebalo da predstavlja pobedu komunikacije kao alata za sporazumevanje. Često to nije slučaj. - UX Svuda
Tehnologija prožima, sve više. Sve je više uređaja i ekrana; to je neminovnost. Gde nam je ostalo iskustvo? - Zamisao dokumentacije
Šta biste više voleli? Projekat bez ikakve dokumentacije ili Projekat sa zastarelom i neadekvatnom dokumentacijom? - Dokumentovanje odluka
Dokumentovanje odluka u vezi arhitekture sistema je važan deo projekta koji ne radiš.
2017
- Pisanje programa: umetnost ili nauka?
Hajde, jednom za svagda, da rešimo ovu dilemu: da li je pisanje programa umetnost ili nauka? - Usamljenost singletona
Singleton nije tako lako napraviti kao što se čini. To, i Bloch za nešto nije u pravu. - Prezentacije koje to jesu
Najlakše je napraviti preentaciju. Najteže je napraviti prezentaciju koja će biti zapamćena. - Brojimo zajedno
Zahtev ne može biti jednostavniji: odrediti ukupan broj poseta skupu stranica na prometnom sajtu, kako bi se obračunala naplata određene usluge. - Koji si percentil?
Srednja vrednost je neupotrebljiva mera za ocenu performansi sistema. Percentili su mnogo bolji izbor. - NLP bot za pet dana
Pokušaj da se za pet dana napravi bot koji crpi znanje iz tekstualnog fajla i daje odgovore na pitanja u vezi teksta. - Iskoristi konferenciju!
Kako iskoristiti konferenciju na najbolji način, a da nije pasivno slušanje i aktivno gutanje hrane. - DM2 - app preuzeta četvrt miliona puta
DM2 je Windows aplikacija koju sam napisao pre mnogo godina. Nedavno je prešla brojku od 250.000 preuzimanja. - Makro problemi sa mikroservisima
Arhitektura zasnovana na mikroservisima donosi svoje izazove. Ko bi rekao? - Optimizacija i realizacija
Premature optimization is the root of all evil. Da li mislimo samo na brzinu izvršavanja koda? - Ko je oblac?
Postoji puno raznolikog sadržaja na mreži. Zahvalan sam što čitaš moj. Pišem prvenstveno o tehnologijama i softverskom inženjerstvu... Ništa manje, ništa više.