2024

  1. Iznuđeno duplo nasleđivanje
    Iz života programera.
  2. Voight-Kampff test
    Pre bilo kakve diskusije, nužno je da programer-sagovornik bude podvrnut empatijskom testu.
  3. Kao
    Razvoj softvera je poput plovidbe morem.
  4. Jappo
    Prvi Java open-source projekat koji mi nisu koristili samo tetka Savka i ludi Mane.
  5. Tab vs Spaces? Meh.
    Postoje druga dva simbola koja su kontroverznija.
  6. 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.
  7. Clapper
    Primer web aplikacije sa bazom u Haskellu
  8. 8900400
    Ovoliko poruka protrči za 2.2 sekunde kroz Tatsugō.
  9. Bolji od dva
    Koji je od dva koda bolji i zašto?
  10. Obrazac M97/CC, šalter 4
    Hteo si da rešiš svoj PR i pridružiš ga ostatku projekta? Imaš li potvrdu BOB22/R?
  11. Mex
    Dat je niz celih brojeva. Pronađi najmanji broj koji nedostaje u poretku vrednosti niza.
  12. Koristi sealed interfejse za opšte Java dobro
    Ako koristiš Javu 17+, vreme je za ADT.
  13. Game of Life
    Programiraš li, eventualno, Igru Života?
  14. 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?
  15. Udoban ili precizan kod?
    Da li bi želeli da radite sa udobnim ili preciznim kodom?
  16. Oop, kakav tip, reče klasa
    Klase i tipovi nisu isto.
  17. Legat Dobrih Inženjera
    Zašto piše to što piše ispod svakog mog teksta?
  18. Višeznačje
    Iz života programera.
  19. 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.
  20. Kako ređaš parametre, tako misliš
    Funkcije i metode pravimo svaki dan. Postoji li dogovor oko imenovanja? Oko redosleda parametara?
  21. 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.
  22. 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.
  23. 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.
  24. Imenovanje namera i interpretacija
    Početak mudrosti je nazvati stvari njihovim pravim imenom.
  25. Kognitivna entropija
    Ako bih sumirao suštinu razvoja softvera u jednoj rečenici.

2023

  1. ⏸️
    Bolje je da učim više, a ćutim duže.
  2. 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?
  3. StopWatch
    Kako bi modelovali štopericu u programu?
  4. Listanje 29 miliona filmova
    Kako pročitati 29 671 440 filmova iz baze?
  5. 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?
  6. 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...
  7. 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?
  8. U galeriji savremene umetnosti
    ...postavljene su slike na temu "Razvoj softvera".
  9. 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.
  10. Tok misli, moduli, demistifikacija
    Razmišljanja programera.
  11. 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.
  12. Lutajuća razmišljanja
    Neskuvane i nepovezane ideje, koje imaju naznaku smisla.
  13. Samo Skram Srbina Spasava
    Da li stanje jednog naroda pravi razliku u tumačenju i primeni metodologija?
  14. PP, FP, OOP, Imp
    Programiranje bi trebalo da je jednostavnije nego što jeste.
  15. Klikni ako smeš
    Manojlo se našao pred nemogućim izborom.
  16. O razumevanju koda, opet
    Dođeš do nekih uvida, dosađuješ ljudima o tome, a potom dobiješ potvrdu od relevantne strane. Dobar osećaj.
  17. Bez dva Malca nema udarca
    Gru ima dva pomoćnika na projektu. Iz života programera.
  18. Unrelated #744
    Nepovezano.
  19. No Else, No Cry
    Nema više Elze.
  20. 34 taskova
    "Milooooojko! Uspela sam!"
  21. Pa, pa, Pajton
    Udavi dave.
  22. Tokovi razvoja
    Razvoj se ne dešava svuda odjednom sve u isto vreme. Zabeleška uočenog obrasca.
  23. Pokerica
    Prva sekunda je prošla... Milorad je nesvesno zagrizao donju usnu.
  24. Value/Effort
    Da li je prijava na sistem use-case?
  25. CEO briga
    Izvršni rukovodilac svetski poznate američke firme u obraćanju zaposlenima kaže sledeće.
  26. UPSET with JPA
    Iz života programera.
  27. ka i zen
    Iskreno: pojma nemam šta tačno znači "Kaizen". Nikada nisam pročitao ništa značajno na tu temu.
  28. return;
    Bolje saksija u ruci, nego bašta na grani.
  29. 2119
    Pazi kako govoriš, ostvariće se.
  30. Für Elise
    Da li je Eliza Doolittle zaista ikada postala dama, ili je samo naučila da je oponaša?
  31. Markes, Ana, relacije, parovi i kompot
    Ana Grigorjevna Dostojevska čita knjigu pisca Gabrijel Hose de la Konkordija Garsija Markesa.
  32. Modulacije
    Iz života programera.
  33. Pomoz' Bog!
    Kako je religija učinila da promenim podnaslov na LI.
  34. Rendgenski snimak projekta
    Iz života programera.
  35. 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.
  36. 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.
  37. 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.
  38. Lica AI
    Knedla stoji u grlu, traži da se misli spuste na papir. Nije zameranje, nije osuda, nije pametovanje.
  39. 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?
  40. Obrasci
    Kako vreme odmiče, sve je manje toga što vredi izdvojiti kao zaista važno. Tako je i sa softverskim razvojem.

2022

  1. Komunikaci
    Kratak recept za unapređenje prenosa informacija: ukloni "ja".
  2. Č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.
  3. Scala je...
    ...kul.
  4. Crtica o nasleđivanju
    Kratka zabeleška o nasleđivanju pred spavanje.
  5. Commitment Contract Open Source
    Postoji aspekt otvorenog koda (i autorskog sadržaja) koji zahteva pažnju.
  6. Apple ne voli macOS
    Eplu, bre, kada ćeš više zavoleti macOS? Zapisi iz razvoja.
  7. Tri vikend projekta
    Nekoliko ideja za vikend projekte. Imam s čim, nemam s kim :) Bacim u blog, pa idemo dalje.
  8. 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.
  9. Optimizacija StackOverflow
    Propušteno zicer pitanje.
  10. A onda su došli DevOpsi
    Kao da sve nije već bilo dovoljno komplikovano.
  11. Boy Scout vs Broken window
    Može li mali izviđač da popravi slomljeni prozor?
  12. Razvoj, rukovođenje, vizije
    Iz života programera.
  13. Babe & Žabe
    Osuću drvlje i kamenje; upozoreni ste na vreme.
  14. 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.
  15. 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.
  16. Command pattern u dobru i zlu
    Iz života programera.
  17. Letnji almanah
    Od virusa do formule dejlija. Razmišljana za ostatak leta.
  18. Č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.
  19. 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?
  20. Tri jezika za dve bitange i ribicu
    Leto je vreme kada se gustiraju novi programski ukusi.
  21. 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.
  22. Imaš STD?
    STD vrlo jasno govori o radu organizacije.
  23. 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!
  24. 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.
  25. Specifikacija itd.
    Kako znaš da funkcija radi šta i kako treba?
  26. while(true)
    Iskodirao sam trivijalnu `while(true)` petlju za dovlačenje svih elemenata kolekcije po stranicama. Nije mi se dopalo to što sam napisao.
  27. Modeli itd.
    Modeli su domenski tipovi: klase koje oslikavaju domen u kodu. Tako nekako; nisam vičan definicijama.
  28. Moduli itd.
    Onog trenutka kada smo usvojili da je klasa jedinica enkapsulacije, je trenutak kada je sve krenuloop nizbrdoop.
  29. Zabeleške o Java bekend primeru
    Sastavio sam mali primer SpringBoot/JPA/Kafka/OpenAPI bekend projekta.
  30. Dnevni boravak za programere
    Samo da nam je plate, igara i duhovitih za*ebancija.
  31. 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.
  32. Paralelne ravni seniorstva
    Besmisleno je izjednačavati senioritet inženjera sa domenskim senioritetom. Nepraktično je poravnati radne procese različitih nivoa seniornosti.
  33. Rezolucija je ubila UX
    Način da unapredimo UX je da smanjimo upotrebljivu površinu.
  34. Ugrožene vrste
    Važno! Obrati pažnju! Sačuvajmo životinje!
  35. Alan Key vs Alan Ford
    Za Alana, OOP čine samo tri stvari.
  36. 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.
  37. Kada nastupa programiranje?
    Skala veština razvoja.
  38. 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.
  39. Soketi, strimovi
    Crtica iz svakodnevnog programerskog života.
  40. 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.
  41. Auth usporava razvoj
    Sjajan način da pucaš projektu u nogu.
  42. Klika
    Kako su posetioci tehnološke konferencije uz pomoć jedne umetnice stvorili podsetnik čemu tehnologija zapravo služi.
  43. Ć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.
  44. TDD ili ne
    Pitanje je sad.
  45. Mitovi i legende
    Koje metodologije je koristio Ahil? Da li je Gilgameš znao za TDD? Kako je Svarog držao sastanke?
  46. 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?
  47. 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.
  48. 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.
  49. 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

  1. 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.
  2. 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.
  3. Filip Višnjić, guslar projekta
    Bože mili! Čuda velikoga!
  4. 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.
  5. 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."
  6. Op, hop, OOP
    Crtica iz koda OO programera.
  7. OOP Boja
    Nedavno sam naišao na članak koji naglašava nepotrebnost statičkih metoda.
  8. Zajednički čas
    Šta radite petkom u 15 časova? Zašto ne bismo zajedno?
  9. Dina
    Postoji li paralela između novog filma i softverskog razvoja?
  10. OpenAPI priče
    Par priča iz svakodnevnog života softverskih inženjera.
  11. Svaki početak
    Svaki početak je propuštena prilika.
  12. 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.
  13. 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?
  14. Dva mirisa
    Iz svakodnevnog života programera.
  15. 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.
  16. Kvadrat vs Pravougaonik
    Hajde da dizajniramo OO model pravouganika i kvadrata. Jednostavno, zar ne?
  17. Kopilote, slomio si mi krila
    GitHub Copilot liči da je mnogo toga.
  18. 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.
  19. Señor Don Kihot
    Dan kada je Don otpisao karijeru i postao senior Kihot, programer vetrenjača.
  20. Non-blocking zvrčka
    Jedna mala inženjerska ilustracija za podeliti.
  21. Budi rockstar programer
    Da odmah razvejem očekivanja: svaka reč iz naslova je pogrešna.
  22. IKEA ❤ open space
    Firma je kupila transportni kontejner i od njega napravila open space.
  23. Jadi mladog Vertera
    Verter ima pristup Internetu. Verter pati.
  24. Stilske vežbe
    Tri stilske vežbe preuzete iz pravih projekata i jedna fusnota.
  25. Insta-Bez-Gramiteta
    Ne znam ni zašto sam došao, reče Instagram. Sa mnom je sve u redu.
  26. Problem treba rešiti sada
    Jedna mala inženjerska ilustracija za podeliti.
  27. Varljivo leto '68
    O ovome ne učimo u školama.
  28. Tri stigmate
    Paraleni uverzumi; ili šbbkbb.
  29. Bezbojni Cukuru Tazaki je dr*adžija
    Kada smo postali previše osetljivi? O, uživaćete u ovome. Ili ne.
  30. Nema zemlje za stare programere
    Zdravo, imam 30 godina i ja sam star programer.
  31. Opasna reč po tim
    Floskula kaže: 'There is no I in the Team'. Slatkorečiva prozaična besmislica.
  32. Okvir za sastanke (OKSA)
    Kažite mi kako vodite sastanke, reći ću vam kako vrednujete projekat.
  33. Neostvareni umetnici razvoja
    Postoji nešto čak i u najveštijima što neprestano teži da nas svrsta među umetnike.
  34. 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.
  35. 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?
  36. 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.
  37. Imperija imperativa
    Programer Mirko je napisao sledeći kod. U čemu je pogrešio?
  38. Lego
    Lego kockice, dosada i razvoj.
  39. Dilema oko Socijalne dileme
    Ako ste nakon gledanja ovog dokumentarca isključili notifikacije - bravo, ništa nismo postigli.
  40. 22 min or less
    Sve što imaš da kažeš može da stane u `22` minuta ili manje. Zameni 'može' sa 'mora'.
  41. Unrelated #021
    Nepovezano.

2020

  1. 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.
  2. Maska proaktivnosti
    "Budi proaktivan!" je mantra koja se provlači u razvojnim timovima. Često i nameće.
  3. 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.
  4. Vlasnost
    Pisati kod je lako. Razviti projekat je je*eno teško. Verujem da ne znamo da pravimo softver, već se razvoj nekako desi.
  5. REST in pieces, REST
    Kada pomenemo REST, najčešće pomislimo na CRUD operacije nad nekakvim skupom resursa.
  6. Baš, baš, ne volim ORM
    Ako ima jedno softversko rešenje koje bih hibernirao, to je ORM.
  7. TEO i TITO
    Tek trik kojim se uštedi pokoji tik-tak na satu.
  8. Četiri ukusa odluka
    Kako predlog postaje odluka?
  9. 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.
  10. 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.
  11. 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.
  12. Baštensko crevo programiranja
    Jednom kada se savladaju osnove, kompozicija postane najvažnija veština baštovanstva.
  13. Kod koji obara s nogu
    Pre nekog vremena sam napisao sledeće parče koda. Kako vam se čini?
  14. 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.
  15. Refactoring Enabled Development aka RED
    TDD programerska praksa je baš nesrećno nazvana.
  16. 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.
  17. Do Work Love
    Šta nedostaje ovoj misli: "Do what you love."
  18. Heapspause
    Bio jednom jedan JavaSvet. A onda Heapspace.
  19. 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š.
  20. UI tamnica
    Po ko zna koji put greškom pritiskam dugme za završetak razgovora, umesto za isključenje kamere.
  21. Shape-ologija
    Šta bi izmenili u kodu koji sledi?
  22. Zaposlite Cicu
    Zaposlite Cicu! Sada!
  23. Licemerje narcisoidnosti
    Znamo šta nam je činiti. Narcisoidni, ne prihvatamo se toga. Uljujkani u komfor, postajemo licemerni.
  24. Svetlo koje ne vidimo
    Sijalicu od 60W sam držao uključenom `30` minuta. Usred dana.
  25. plusplus a
    Na prvi pogled, pitalica koju sam nedavno postavio je lukava, ali ne toliko teška.
  26. 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.
  27. Heštag
    Tražim jedan heštag
  28. Ironija Stiva Džobsa
    Ili: šta bi bilo kad bi se svakome dalo da radi posao za koji je angažovan?
  29. Prolećno čišćenje
    Koji je presek tebe i tvog digitalnog postojanja? Da li on daje smisao? Evo jednog opita.
  30. Tačka bez povratka
    Koji je najvažniji trenutak u razvoju projekta? Gde je ta granica posle koje nema više povratka?
  31. Akcija : Reakcija
    U svetu prenaglašenih sila, važno je razumeti razliku između akcije i reakcije.
  32. Tezej ponovo jaše
    Gotovo godinu i po dana je Tezej čekao da se njegova potraga za Minotaurom prekodira na drugačiji način.
  33. 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.
  34. 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.
  35. 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.
  36. Unrelated #108
    Nepovezano.
  37. Video killed the text star
    Pogledaj ovamo. Nema dugmeta za pauzu.
  38. 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.
  39. Iluzija decentralizovanog
    Halapljivo konzumiramo apsurd: decentralizovanu mrežu razapetu između nekolicine moćnih centara.
  40. 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.
  41. 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.
  42. Unrelated #274
    Nepovezano.
  43. Ko boli Kobol
    COBOL je programski jezik koji je dizajniran pre 60 godina, a koji je i dalje u upotrebi.
  44. Darvinov test
    Zašto sam ovde? Pozvani ste da dokažete vaše postojanje.
  45. Virus koji je pojeo otvorene podatke
    Namera se najbolje očitava u vanrednim okolnostima. I kada se sve zatvori, podaci _moraju_ ostati otvoreni.
  46. 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.
  47. 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.
  48. CodÆrt
    Code koji nije art, Art koji nije code. Šta bi to moglo biti?
  49. Code Review aplikacije еПорези
    Tek sam nedavno osvestio da postoji aplikacija ePorezi. Odlučih da zvirnem u kod.
  50. Čuvajmo Zeke Peke
    Malo Zeke Peke, malo zakeranja, malo sertifikata, malo čačkanja. I Zdrum.
  51. 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.
  52. 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.
  53. Krug nes(a)vršene dekade
    Crtice u vezi tehnološke stvarnosti koje nisu našle neko bolje mesto da budu zabeležene.

2019

  1. Š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.
  2. 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.
  3. 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.
  4. 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.
  5. Kuang2
    Zamalo sam bio izbačen sa fakulteta zbog lošeg koda.
  6. 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.
  7. 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.
  8. Plati unapred
    Da li daješ najbolje od... tehnologije?
  9. Metodologijom ćeš me, metodologijom ću te
    Scrum, PRINCE2, ITIL, AgilePM... Upoznajte novu metodologiju: ZDRUM™. Kida.
  10. Sociologija, čas sa kojeg su mladi preduzetnici bežali
    Ova inovativna aplikacija će učiniti svet boljim mestom!
  11. 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.
  12. 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.
  13. 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.
  14. 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.
  15. 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".
  16. 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."
  17. 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?
  18. 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.
  19. 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.
  20. Baštovan, Algoritmi i Strukture podataka
    Hleba i igara! Algoritama i struktura podataka! To je sve što treba nama.

2018

  1. Nova godina, 2019.
    Nekada... se dogodi sve to zajedno.
  2. 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.
  3. 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.
  4. Š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?
  5. 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.
  6. Ne učite decu programiranju
    Uvodi se informatika u osnovne škole. Dajte odmah dve kile programiranja!
  7. 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,
  8. Brutalno rešavanje robota
    Kratak primer optimizacije _brutal-force_ pristupa korišćenog za rešavanje logičkog problema u igrici "Little Broken Robots".
  9. 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.
  10. 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).
  11. Nerešena zagonetka performansi
    Način na koji rade dinamičke Java kolekcije; može li bolje?
  12. Izgubljena suština
    Predstaviću dve činjenice koje imaju dalekosežne posledice; tiču se tehnoloških kompanija i ljudske prirode. Krenimo redom.
  13. Olovka i cigla
    Uzmi olovku, ciglu i parče hartije. Uradimo sledeći ogled.
  14. 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.
  15. Precenjenost ideje
    Čekaš onu jednu, veliku ideju koja će promeniti sve. Čekaj, onda...
  16. Google, Pali AI
    Kako Gugl prodaje AI ispod tezge.
  17. List.toArray()
    Java ima nekih izluđujućih momenata, koji se ne vide na prvi pogled.
  18. 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.
  19. Snaga pojedinca
    Mnogo babica, kilavi projekat.
  20. Čemu se diviti
    Postoji jedan primer softverskog sistema koji me ne ostavlja ravnodušnim.
  21. Crnac i lopata
    Anegdota o radniku i lopati koju sam čuo od komšije.
  22. Odgovornost programera
    Jezik stvoren za sve, da spoji sve, da reši sve.
  23. UX Svuda
    Tehnologija prožima, sve više. Sve je više uređaja i ekrana; to je neminovnost. Gde nam je ostalo iskustvo?
  24. Ko je kralj?
    Brutalan zakon kaže: onaj ko te kupi, tvoj je vlasnik.
  25. Zamisao dokumentacije
    Šta biste više voleli? Projekat bez ikakve dokumentacije ili Projekat sa zastarelom i neadekvatnom dokumentacijom?
  26. Raznolikost koda
    Jednoličan kod, jednoličan razvoj. Da li je raznolikost koda važna?
  27. As a User, I want
    As a User, I want... o, toliko toga. Ali prvo...
  28. Odlučnost vizije
    Posledice vizije mogu biti dalekosežne.
  29. Pogon tima
    Šta goni tim, a šta ga progoni?
  30. Dokumentovanje odluka
    Dokumentovanje odluka u vezi arhitekture sistema je važan deo projekta koji ne radiš.

2017

  1. Kako Slack tiho ubija tvoj tim
    Nisu samo učestale notifikacije problem moderne komunikacije.
  2. Pisanje programa: umetnost ili nauka?
    Hajde, jednom za svagda, da rešimo ovu dilemu: da li je pisanje programa umetnost ili nauka?
  3. Ne koristi String equals()
    Nekada se greške pojavljuju gde ih ne očekujete.
  4. Zabrinutost napretkom
    Ko, na kraju, služi kome? Mašine ljudima ili ljudi mašinama?
  5. Anatomija svakog oglasa
    Šablon oglasa za posao na LI. Uzmi ili ostavi. Ili se prijavi.
  6. Matori senior
    Senior programer sa 5 godina iskustva protiv matorog programera.
  7. Usamljenost singletona
    Singleton nije tako lako napraviti kao što se čini. To, i Bloch za nešto nije u pravu.
  8. Prezentacije koje to jesu
    Najlakše je napraviti preentaciju. Najteže je napraviti prezentaciju koja će biti zapamćena.
  9. Prepoznavanje lica
    Prepoznavanje lica u realnom vremenu uz pomoć OpenCV biblioteke i malo Jave.
  10. Vreme je za dobar UX
    Najmanji mogući primer lošeg UX.
  11. 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.
  12. Asynchronous & Non-blocking
    Asinhronog i neblokirajućeg programiranje nije isto.
  13. Šta je zajednica?
    Termin "zajednica" znači ništa ili svašta, a uglavnom - ništa.
  14. Koji si percentil?
    Srednja vrednost je neupotrebljiva mera za ocenu performansi sistema. Percentili su mnogo bolji izbor.
  15. 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.
  16. Iskoristi konferenciju!
    Kako iskoristiti konferenciju na najbolji način, a da nije pasivno slušanje i aktivno gutanje hrane.
  17. 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.
  18. Makro problemi sa mikroservisima
    Arhitektura zasnovana na mikroservisima donosi svoje izazove. Ko bi rekao?
  19. Optimizacija i realizacija
    Premature optimization is the root of all evil. Da li mislimo samo na brzinu izvršavanja koda?
  20. 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.