Blog Autori Nikola Garabandić, DressCode
Nikola Garabandić, DressCode

Nikola Garabandić, DressCode

14

Od malena opsednut IT-em i svim što ima veze sa njim. Pored aktivnog pisanja postova za DressCode, profesionalno se bavi Game Developmentom u Unity-u kao i učenju drugih da koriste ovaj Game Engine. Jedini je sertifikovani Unity Instruktor u Srbiji.

Svi tekstovi autora

17.06.2024. ·
1 min

Novi programski jezik Bend: fleksibilan na CPU i GPU

Paralelno programiranje je dugo bio sveti gral performansnog računarstva. Da je jednostavno implementirati paralelne procese, moderni programski jezici ne bi zahtevali koncepte kao što su semafori, zaključavanja i mutexi. Bend je novi programski jezik koji se ističe po tome što poseduje tri različita runtime-a. Prvi je napisan u C-u i ne podržava paralelno programiranje. Drugi je napisan u Rust-u i omogućava paralelizam, dok je treći pisan u CUDA-i, jeziku razvijenom specijalno za GPU programe, što nije iznenađujuće s obzirom na to da ga je razvila Nvidia. Jedna od ključnih karakteristika Benda je njegova inherentna paralelnost. Ne morate se previše brinuti o tome da li je vaš kod paralelan - ono što može biti izvršeno paralelno, biće izvršeno paralelno. Na primer, izraz ( ( (1 + 2) + 3 ) + 4) ne može se izvršiti paralelno zbog zavisnosti između operacija. 3 mora sačekati da se izvrši 1 + 2, a 4 mora sačekati da se završe prethodni izrazi. Međutim, ako bismo grupisali zagrade drugačije, kao u ( (1 + 2) + (3 + 4)), tada bi 1, 2 i 3, 4 mogli biti izračunati paralelno, a zatim konačno sabrani. Iako Bend automatski brine o paralelizmu, ipak je potrebno obratiti pažnju na strukturu koda. Sintaksa Benda podseća na Python, što olakšava učenje i upotrebu. Važno je napomenuti da Bend još uvek nije u konačnoj verziji - njegove single-thread performanse su trenutno slabije u odnosu na konkurenciju. Tim programera koji stoji iza ovog jezika obećava poboljšanje performansi sa svakom novom verzijom.  

08.04.2024. ·
2 min

XZ Backdoor - opasan propust open source zajednice

Da li ste se ikada zapitali zašto neka rutinska akcija na vašem računaru, poput otvaranja programa, odjednom traje duže nego obično? Mislili ste možda da je to zbog toga što je računar tek uključen ili "nije se još zagrejao". No, jedan inženjer iz Majkrosofta našao se u sličnoj situaciji, ali sa znatno ozbiljnijim posledicama, koje su mogle uticati na sigurnost celog interneta. Inženjer je primetio da kada izvršava ssh komandu (protokol za sigurnu komunikaciju sa serverima) u terminalu, ona se izvršava sa zakašnjenjem od pola sekunde i koristi znatno više procesorske snage nego uobičajeno. Ovaj neočekivani pad performansi podstakao ga je na detaljnu istragu, koja je postala njegova "zečija rupa" u potrazi za odgovorom. U srcu problema našao je xz, popularan alat za kompresiju podataka u Linux okruženju, koji se koristi ne samo za kompresiju fajlova u kompaktne arhive već i kao eksterna biblioteka za mnoge programe, uključujući i ssh. Na njegovo iznenađenje, otkrio je da je backdoor ubačen u xz-ov kod nekoliko meseci ranije, od strane developera koji je bio aktivan učesnik u razvoju xz-a više od dve godine i koji je uživao veliko poverenje zajednice. Ova osoba uspela je da ubaci zlonamerni kod koji je bio dovoljno dobro "zamaskiran" da prolazi pregled kodova, uprkos tome što su drugi programeri bili zbunjeni njegovom svrhom. Ovaj incident naglašava koliko bi posledice mogle biti katastrofalne da problem nije otkriven na vreme, uzimajući u obzir da Linux serveri pokreću više od 90% interneta. Svaki program koji koristi xz za kompresiju podataka bio bi izložen riziku, omogućavajući napadaču potpuni pristup sistemu. Ovaj događaj nas podseća na to da su ljudi često najslabija karika u sigurnosnom lancu sistema. Takođe, postavlja se retoričko pitanje: Ako je ovaj propust otkriven slučajno, zbog neoptimizovanog koda, koliko još takvih neotkrivenih backdoor-ova postoji unutar Linux-a, a da korisnici o tome nemaju pojma?

03.04.2024. ·
2 min

Novi Google AI model pretvara crteže u 2D igre: Revolucija u razvoju video igara ili novi razlog za brigu?

Već smo navikli na generativne AI modele koji mogu da stvaraju tekst, slike, zvuke, a nedavno su nam najavljeni i kratki, fotorealistični video zapisi. Međutim, nedavni razvoj događaja otvara novo poglavlje u eri generativne veštačke inteligencije. Naime, predstavljen je AI model sposoban da generiše jednostavne 2D igre na osnovu crteža, čak i onih napravljenih na običnom papiru. Ovaj napredak, iako uzbudljiv, susreo se sa oprezom u zajednici developera video igara. Kao osoba sa više od šest godina iskustva u profesionalnom razvoju video igara, vest o ovakvoj tehnologiji dočekao sam sa određenom dozom strepnje, slično reakciji kada je jedan američki startap najavio razvoj AI-a pod imenom Devin. Devin je predstavljen kao potencijalna zamena za softverske inženjere, a na osnovu dostupnih snimaka, moglo bi se reći da je to daleka budućnost. Modeli poput ovog još uvek nisu spremni za praktičnu upotrebu, s obzirom na to da se njihovo "programiranje" video igara više čini kao generisanje video zapisa. Naime, ti modeli ne pišu pravi kod, ne reaguju na ulaze korisnika, niti mogu generisati nove pejzaže izvan postojećih slika. Jedan od glavnih izazova sa kojima se suočava ovakav generativni AI jeste njegova sklonost ka "halucinacijama", gde može spojiti dva objekta u jedan, što bi u realnoj igri bilo neprimenjivo. Na kraju, važno je istaći da i ja lično koristim generativni AI u svakodnevnom radu. Neophodno je prihvatiti da generativni AI neće nestati i da će nastaviti da nam pomaže u radu, olakšavajući nam procese. Stoga, nije potrebno da kao programeri i softverski inženjeri imamo veliku bojazan od gubitka poslova u budućnosti zbog ovih tehnologija. Uprkos početnim strepnjama, čini se da će generativni AI modeli nastaviti da oblikuju budućnost razvoja igara, ali ne na način koji bi u potpunosti zamenio ljudski doprinos. Kao i uvek, adaptacija i inovicija biće ključni za uspeh u ovoj dinamičnoj industriji.

02.04.2024. ·
1 min

Google i Reddit: Od rivalstva do partnerstva u ime AI inovacija

Od trenutka kada je trka u razvoju veštačke inteligencije postala centralna tema u tehnološkom svetu, nakon popularizacije ChatGPT-ja, dva tehnološka giganta, Microsoft i Google, započela su svojevrsno takmičenje. Cilj im je bio da razviju superioran AI model koji bi privukao korisnike svojom efikasnošću i inovativnošću. Microsoft je prvi napravio hrabar korak integracijom AI-ja u sve svoje proizvode, čak idući toliko daleko da je od proizvođača tastatura zatražio dodavanje posebnog AI dugmeta. Google nije zaostajao, sledio je sličan put, težište stavljajući na integraciju AI-ja u svoje aplikacije, s namerom da svaki unos korisnika doprinese unapređenju njihovih jezičkih modela. Međutim, fokusirajmo se na nedavni dogovor između Reddit-a i Google-a, koji označava značajnu prekretnicu u njihovim prethodnim odnosima. Istorijski gledano, odnosi između ove dve kompanije nisu uvek bili harmonični, budući da je Google ranije koristio Reddit za indeksiranje i pretraživanje sadržaja u svrhe poboljšanja vlastitog pretraživača i treniranja AI modela, često bez eksplicitnog partnerstva. Novim dogovorom, Google dobija ekskluzivan pristup Reddit API-jevima, što mu omogućava pristup bogatom korpusu podataka, uključujući i one za koje je ranije bila potrebna posebna dozvola, poput skrivenih podforuma. Ovo ne samo da poboljšava Google-ovu sposobnost treniranja AI modela, već i unapređuje kvalitet ponuđenih informacija. Za Reddit, ovaj dogovor ima dvostruku korist. Prvo, Google će Reddit-u plaćati 60 miliona dolara godišnje za ekskluzivni pristup informacijama, što predstavlja značajno finansijsko pojačanje. Drugo, s obzirom na to da se Reddit u tom trenutku spremao za izlazak na berzu, ovaj dogovor je definitivno pozitivno uticao na njegovu početnu tržišnu vrednost. Ovo partnerstvo nije samo dokaz rastućeg uticaja AI-ja u tehnološkom sektoru, već i pokazatelj kako strateška saradnja može dovesti do obostranih koristi za uključene strane.

20.02.2024. ·
3 min

Nova pravila, stari problemi: Apple omogućava sideloading u EU, ali to će staviti developere u nezavidnu situaciju

Apple je u poznat kao kompanija koja se trudi da na sve načine potpunu kontrolu nad iPhone telefonima - svojim najprodavanijim uređajima je počeo da uvodi USB-C port kao standard na svojim laptopovima i tabletima još 2015. godine (prvi put sa MacBook Pro laptopom) odnosno 2018. godine (iPad Pro), dok je na iPhone uređaje USB-C stigao tek prošle godine, što je većina korisnika sa oduševljenjem dočekala. Razlog za takav potez su relativno novi zakoni Evropske unije. Tačnije, EU je donela zakon koji zahteva da svi uređaji ,koji će se od stupanja zakona na snagu proizvoditi, moraju da imajui USB-C standard kako bi se smanjila količina elektronskog otpada. Iako taj zakon ima svoje mane, deluje da je na duže staze bolji za sve korisnike. Nakon toga se šuškalo o još jednom važnom zakonu koji je bio donesen, a koji bi ozbiljno mogao da potrese Apple, a to je zakon koji zahteva od Apple-a da omogući sideloading. Naime, Akt o digitalnim tržištima (DMA) u Evropskoj uniji predstavlja regulatorni okvir koji zahteva od velikih tehnoloških platformi, poput Apple-a, da omoguće sideloading i pristup alternativnim prodavnicama aplikacija na svojim uređajima. Ovo bi moglo direktno da utiče na Apple-ovu praksu naplate provizije od 30% na transakcije unutar App Store-a, omogućavajući developerima da nude svoje aplikacije i usluge bez potrebe da plaćaju ove provizije Apple-u. Kao rezultat, DMA ima potencijal da smanji kontrolu koju Apple ima nad distribucijom aplikacija i digitalnim tržištima, nudeći više slobode i izbora korisnicima i developerima​​​​​​. Apple je krajem januara objavio blog post kojim objašnjava kako će se usaglasiti sa ovim zakonom u EU. Jedan deo tog teksta neodoljivo podseća na odluku koju je kompanija Unity donela (pa povukla) sredinom septembra prošle godine, a to je naplaćivanje 50 centi po svakoj instalaciji ukoliko je aplikacija premašila preko milion ukupnih instalacija te godine (Apple-u, za razliku od Unity-ja, ovo uopšte neće biti teško da prati). Uzmimo za primer Facebook, koji ima oko 400 miliona aktivnih korisnika u okviru EU, i neka oko trećina toga ode isključivo na iOS korisnike. Facebook bi godišnje morao da plaća Apple-u preko 60 miliona evra samo zato što ljudi koriste njihovu aplikaciju. Naravno, kompaniji Meta to ne bi predstavljao neki veliki trošak, ali zamislite da je Flappy Bird ostao na iOS-u - taj developer bi Apple-u bio dužan ozbiljan deo svoje zarade, dok gigant nije “prstom mrdnuo”. Većina developera je besna zbog ovakve odluke, uključujući i neke od najvećih igrača kao što su Spotify, Revoult i drugi. Uprkos otvaranju mogućnosti za sideloading i pristup alternativnim prodavnicama aplikacija, Apple naglašava da će developeri i dalje moći da distribuiraju svoje aplikacije preko Apple App Store-a, pridržavajući se postojećih uslova, uključujući i plaćanje standardne provizije od 30%. Na ovaj način Apple očigledno želi da primora developere da se oslone na njihov App Store, umesto da koriste alternativne prodavnice aplikacija, čime se developerima potencijalno nameće ekonomski manje povoljna opcija plaćanja fiksne takse od 50 centi po preuzimanju aplikacije u odnosu na standardnu proviziju od 30%. Šta vi mislite da će biti krajnji ishod svega ovoga? Pišite u komentarima!

09.01.2024. ·
1 min

Zašto merge-ovanje pull requestova traje dugo

Svi (ili bar većina 😀) programera želi da piše čitak i jasan kod koji se lako održava i svi želimo da naš dobro napisan (i istestiran) kod brzo stigne na main granu. Problem nastaje u tome što, koliko god da vi to želite da bude brzo, vrlo često zavisite od vaših kolega (što samih programera, što od strane QA) koji moraju da pregledaju i testiraju kod koji ste vi napisali. PR-ovi su preveliki U ovih nekoliko meseci, primetio sam veličinu samog PR-a kao veliki problem, jer vreme potrebno za odobravanje PR-a dosta zavisi i od njegove veličine. Od skoro smo u timu počeli da praktikujemo tokom sprint planning-a raščlanjivanje većih feature-a (koji i ovako pripadaju jednom epicu), na još sitnije celine, koje bi mogle da stanu u više manjih PR-ova. Nemanje vremena za pregledanje Bez obzira na veličinu PR-a, postoji velika šansa da će vas neko zamoliti da pregledate PR koji niste lično kreirali. U takvim situacijama može se pojaviti izazov, posebno ako ste u tom trenutku potpuno posvećeni svom radu, kucajući neke od najboljih linija koda u svojoj karijeri, ili ste zauzeti sastankom. U tim okolnostima, može biti teško odmah se posvetiti recenziranju zadatog PR-a. Jedno od rešenja koja je moj tim nedavno počeo da primenjuje, a koje se u protekle dve nedelje pokazalo kao efikasno, uključuje rezervisanje oko deset minuta u poslovnom kalendaru svakog člana tima, u najpogodnijem delu dana (idealno na početku i kraju radnog vremena), za pregled PR-ova koje su kreirale druge kolege. Dakle, svaki član tima posvećuje ukupno oko dvadeset minuta dnevno za ovu aktivnost. Razume se, potrebno je naglasiti da je ovo prilično specifičan scenario za moj tim, s obzirom da nas ima samo pet. Ipak, bio bih veoma zainteresovan da u komentarima pročitam mišljenja i iskustva kolega iz većih timova.

05.12.2023. ·
2 min

Šta se to, zaboga, događa sa najpopularnijim Game Engine-om na svetu

Unity Technologies, kompanija koja stoji iza istoimenog engine-a, u poslednjih nekoliko godina je donela zaista vrlo upitne poslovne poteze, od svojih akvizicijskih “avantura” - kada su kupili ironSource koji je (bio) vrlo ozloglašen ad provajder kao i akvizicija  kompanije Wet Digital, čija tehnologija dosta podseća na Unreal-ov MetaHuman (razvijen od strane novosadskog 3Laterala), do donošenja vrlo kontroverznog  poslovnog modela koji bi od developera tražio nekoliko centi po instalaciji (deo odluke, su, ruku na srce, brzo povukli), o čemu smo već i pisali ranije. Po mom mišljenju, postoji nekoliko razloga za ovakve poteze. Prvi, i najbitniji, jeste da se ovim akvizicijama donesu veći prihodi samoj firmi. Činjenica je da je Unity Technologies već više od 3 godine na berzi, i da u te 3 godine nijednu godinu nisu završili u plusu (naravno da se C-level ljudima morao isplatiti višemilionski bonus i povrh toga). Akvizicijom ironSource-a, Unity je želeo da postane lider u medijaciji reklama, gde je trenutno firma AppLovin i dalje neprikosnoveni lider. Unity želi da im postane ozbiljan konkurent time što će installation fee spomenut gore, drastično smanjiti, ili potpuno ukinuti, pod uslovom da koriste Unity-jev sistem za medijaciju reklama, što mogu reći da je pomalo nekonkurentski potez, ali samo vreme će pokazati da li je ovo dovoljno da Unity-u donese dugoočekivanu profitabilnost. Drugi razlog leži u tome da Unity želi da se takmiči sa Unreal Engine-om u polju u kom, po mom mišljenju, Unity apsolutno nema šta da traži. To je kao da se porodični SUV takmiči sa nekim trkačkim autom. Jer ti taj svoj porodični SUV možeš da “budžiš” i unapređuješ koliko god želiš, ali nikad neće biti brz i okretan kao auto koji je od starta napravljen da bude brz i okretan. Pored toga, ekipa iz Unity-ja jako voli da izbacuje polugotove funkcionalnosti i da ih predstavlja kao gotove proizvode, dok sa druge strane, stara funkcionalnost koja stoji tu godinama, i dalje ima ogromnog prostora za napredak. (Rendering pipelines, UI…). Jedino svetlo na kraju ovog tunela vidim u imenovanju novog direktora, koji je ranije bio CEO RedHat-a, popularne linux distribucije koja je uglavnom namenjena enterprise korisnicima. Iako je Linux sam po sebi besplatan i otvorenog je koda, RedHat košta. Ja čvrsto verujem da će u narednih godinu ili dve, uz pomoć znanja i iskustva ovog CEO-a,ekipa iz Unity-ja uspeti da otvori svoj izvorni kod (i C++ i C# deo) za javnost i da će cela Unity zajednica uspeti da pomogne svom game engine-u da bude stabilan i prosperitetan, i da će sama kompanija napokon postati profitabilna.  

15.11.2023. ·
3 min

Kad percepcija postane stvarnost: Zanimljivi primeri placebo efekata u igrama

Igre, kao i svaki drugi softver, imaju bagove. Ti bagovi mogu biti razni, od sitnih bagova u korisničkom interfejsu, poznatijih kao UI bagovi, do velikih bagova koji u potpunosti mogu uništiti korisničko iskustvo. Ali, u nekim slučajevima, igrači mogu da umisle da nešto sa igrom nije u redu. Ovde ćemo navesti neke od najpoznatijih placebo efekata i na koji način su domišljati developeri uspeli da “reše” bagove (koji nisu ni postojali). Wolfenstein Enemy Territory U ovoj igri iz 2003. godine, igrači su se žalili da je čuvena Thompson puška bila daleko jača u odnosu na pušku suparničkog tima - MP40. Developeri su ostali u čudu iz razloga što su obe puške delile identične karakteristike (broj metaka, brzina reload-a, fire rate, itd). Jedine dve razlike koje su bile su 3D modeli i zvučni efekti koji su se puštali u trenutku kada se metak ispaljuje. Developeri su primetili da je zvuk Thompson-a bio glasniji od zvuka MP40. To je samim tim dovelo do toga da igrači podsvesno igraju agresivnije sa tom puškom, ostvarujući tako daleko bolji rezultat u odnosu na suparnički tim. I naravno, kada su developeri smanjili jačinu zvuka Thompson-a, za igrače je bag bio rešen. Counter Strike U starijim verzijama Counter Strike-a, igrači su počeli masovno da se žale na to da im je igračko iskustvo daleko lošije jer im se činilo da im je ping bili gori nego ikad ranije. Iako su ih developeri ubeđivali da ništa vezano za mrežnu arhitekturu i način na koji sama srž igre radi nije promenjen, igrači nisu odustajali. Jednom od developera Counter Strike-a pala je radikalna ideja na pamet. Da prikaz samog pinga na leaderboard-u smanji za 50 (Tako da ako ste u stvarnosti imali ping 60, igra bi prikazivala kao da imate 10). Igrači su naravno bili presrećni i oduševljeni, iako se doslovno ništa sem samo tog broja nije promenilo. Don’t Starve U jednom eksperimentu tokom razvoja igre Don’t Starve, igračima je rečeno da će igrati dve verzije jedne mape. Prva mapa će biti “obična”, a druga mapa će biti kontrolisana “adaptivnom veštačkom inteligencijom” koja može promeniti mapu na osnovu nivoa veštine igrača. Međutim, obe verzije igre bile su identično nasumične i doslovno se ništa u te dve mape nije razlikovalo. Kada su igrači mislili da igraju na mapi za koju im je bilo rečeno da je kontrolisana veštačkom inteligencijom, ocenili su je kao zanimljiviju i zabavniju. Placebo efekti u video igrama su fascinantna manifestacija ljudske psihologije i njenog uticaja na percepciju tehnološkog iskustva. Ovi primeri demonstriraju kako naše očekivanje može oblikovati doživljaj igara, čak i kada objektivne promene nisu prisutne. U slučaju igara Wolfenstein Enemy Territory, Counter Strike i Don’t Starve, igrači su reagovali na ono što su mislili da se dešava, a ne na stvarne karakteristike igara. Ovo ukazuje na važnost psiholoških faktora u dizajnu igara, gde čak i najmanje promene u prezentaciji mogu imati snažan uticaj na iskustvo korisnika. U svetlu ovih saznanja, developeri igara mogu da koriste ovakve efekte u svoju korist, prilagođavajući softverska rešenja tako da pojačaju pozitivne aspekte igračkog iskustva, čak i bez značajnih tehničkih izmena.

13.11.2023. ·
2 min

GPTs - šta nam donose novi, personalizovaniji GPT-jevi

OpenAI nam je pre nekoliko dana predstavio pregršt novih funkcionalnosti, među kojima se nalazi i tema današnjeg teksta, a to su personalizovani GPT-jevi. Korisnici će napokon moći da naprave svoju personalizovanu verziju ChatGPT-ja bez potrebe o znanju programiranja. Ukoliko vi kao korisnik ne budete imali inspiraciju kakav personalizovani ChatGPT želite, imaćete na raspolaganju GPT Store, na kom će se nalaziti gomila personalizovanih GPT-jeva, koji će moći da se koriste u najrazličtije svrhe. A ukoliko ipak shvatite da biste vašu verziju GPT-ja želeli da pokažete svetu, to će vam se i isplatiti, zbog toga što ćete preko Store-a moći i da zaradite na vašem personalizovanom GPT-ju. Tačni detalji oko toga kako će zarada funkcionisati nije još objavljena. A pak, ukoliko ste progamer, GPT-jevi će moći da se povežu i na vaše API-jeve, preko kojih će direktno moći da vuku podatke iz najrazličitijih izvora, od baza podataka, do sentimenata koje će kasnije vaš personalizovani GPT koristiti za potpuno autonomnu komunikaciju sa ljudima kojima, recimo, treba pomoć oko nekog proizvoda ili usluge koji vi prodajete. Takođe, pogotovo posle ove prethodne rečenice, prirodno se nameće pitanje da li će veštačka inteligencija u godinama koje su pred nama, zaista u potpunosti zameniti čoveka i da će u doglednoj budućnosti jedini način da ljudi budu društveno korisni biti ogledan isključivo u fizičkom, ali ne i u umnom radu? Kratak odgovor na to, sa moje tačke gledišta, je veliko ne. Istina je da po internetu kruže priče i članci u kom su neke firme drastično smanjile broj zaposlenih zato što ih je AI zamenio, ali ovde treba staviti akcenat na smanjenje zaposlenih, a ne na potpuno gubljenje čitavih departmana u kompanijama. Pre 70 godina, u mojoj porodici smo imali osobu koja je bila zaposlena u banci i njen jedini posao je bio da broji pare, jer mašine za brojanje para, koje danas vidimo na svakom koraku, nisu bile dostupne. Ta osoba danas sigurno ne bi mogla tim poslom da se bavi. AI revoluciju treba posmatrati na isti način na koji sa današnje tačke gledišta gledamo industrijsku revoluciju, gde su kompanije samo optimizovale svoj proces proizvodnje i smanjili potrebu za fizičkom radnom snagom.