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

02.10.2023. ·
4 min

Unity - kako je zajedništvo (donekle) pobedilo korporativnu pohlepu

12. Septembar 2023. godine ostaće većini (dotadašnjih) korisnika Unity Game Engine-a kao jedan od najgorih dana od kada koriste taj alat. Tog dana je Unity Technologies, kompanija koja stoji iza pomenutog engine-a, odlučila da naprasno objavi najkontroverznije ažuriranje svog cenovnika koje je ikad viđeno u IT industriji. Novi cenovnik je podrazumevao da ukoliko vaša igra pređe 200 hiljada instalacija (znači ne kupovina, nego instalacija) i 200 hiljada dolara zarade, a koristie Unity Personal (besplatnu verziju), morali biste, na svaku novu instalaciju Unity-ju da dajete 20 centi. Za plaćene verzije Unity-ja (Unity Pro i Enterprise), granica je pomerena na milion instalacija i milion dolara zarade i oni bi plaćali manju naknadu po instalaciji. Činjenica jeste da ovakvo ažuriranje cenovnika ne bi zahvatilo čak 90% korisnika samog engine-a. Prva stvar oko koje se zajednica pobunila bila je činjenica da bi se ta naknada po instalaciji naplaćivala retroaktivno, iako, u uslovima korišćenja koje su korisnici prihvatili kada su instalirali datu verziju, to nigde nije pisalo. Druga stvar koja je bila apsurdna je činjenica da ni ljudi iz Unity-ja, koji su doneli ovu odluku, nisu ni znali na koji način će pratiti instalacije. Takođe, neki jutjuberi su radili predikcije za svoje i tuđe igre, pa su ustanovili da bi neke kompanije koje bi morale da poštuju takav model naplate mogle da odu u bankrot. Interna nezadovoljstva i protivljenje zaposlenih Ono što je najviše pogodilo zajednicu, pored činjenice da kompanija može naprasno da promeni svoje uslove korišćenja retroaktivno, jeste činjenica da je apsolutna većina zaposlenih bila strogo protiv ovakvog modela, kao i da je većina studija i nezavisnih kreatora kojima je ovo predočeno dan ranije, bilo takođe protiv ovoga, ali je viši menadžment ipak, po svaku cenu, želeo da ovakav plan ugleda svetlost dana. O Unity-jevom menadžmentu ne treba trošiti puno reči, ali je bitno reći da je trenutni izvršni direktor Unity-ja “gospodin” koji je takođe bio izvršni direktor EA Games-a, i koji je u jednom svom obraćanju izjavio kako bi bilo dobro da ukoliko ljudi provedu šest sati igrajući Battlefield, poznatu pucačinu, da bi trebalo naplaćivati jedan dolar za dodatnu municiju. Već u prvih nekoliko dana, određeni broj razvojnih studija (među kojima su i kreatori popularne igre Among Us) su saopštili Unity-ju da će u potpunosti napustiti njihov ekosistem ukoliko ne revidiraju ili promene tako kontroverznu odluku. Usledio je, zatim, odgovor najprofitabilnijih studija koji su koristili Unity Ads kao provajdera za prikaz reklama na mobilnim igrama. Isključili su prikazivanje reklama koje dolaze od Unity-ja. Unity je verovatno u tom trenutku shvatio da bi trebalo reagovati, pa je kompanija na društvenoj mreži X saopštila da “čuje šta zajednica misli i da će narednih dana predstaviti revidirani model plaćanja”. Nove opcije plaćanja i koncesije Nakon nedelju dana čekanja, zajednica je napokon dobila ažurirani cenovnik. Najbitnija stvar je da se uslovi korišćenja neće primenjivati retroaktivno, već će uslovi biti vezani za verziju Unity-ja koju koristite. U njemu i dalje postoji Installation fee, ali samo za pro i enterprise korisnike, i ti korisnici će sami prijavljivati koliko instalacija su imali tokom tog meseca kao i zaradu koju su ostvarili. Pored toga, dodata je i opcija da procenat od zarade (2.5%) od igre date Unity-ju. I koja god da je od dve cifre manja (ukupan installation fee ili 2.5% od zarade) tu cifru plaćate Unity-ju. Takođe, developeri će takođe moći da uklone čuveni “made with Unity” početni ekran, u zavisnosti od verzija engine-a koji koriste. Šta nam ova epizoda govori o moći zajednice Kao dugogodišnji profesionalni korisnik ovog sjajnog engine-a moram završiti ovaj tekst sa nekim svojim mišljenjem. Jasno mi je da Unity Technologies kao kompanija uopšte nije profitabilna i da posluje sa stotinama miliona dolara u gubicima svaki kvartal, ali postoje neke granice u poslovanju. Unity-ju će biti potrebne godine da povrati svoju reputaciju koju su u veoma kratom roku izgubili. Takođe, i dalje sam čvrstog stava da je toj kompaniji potrebna igra koja će direktno izaći iz njihove “kuhinje” jer je to jedini pravi način da se iskustvo game developera u engine-u poboljša, i kako bi se otkrilo kroz koje sve probleme developeri prolaze prilikom razvoja igara u Unity-ju. Prošle godine je ekipa iz Unity-ja baš i krenula u takav poduhvat, i cela zajednica je bila oduševljena time. Ali naravno, viši menadžment je posle nekoliko meseci obustavio projekat, rastavio ceo tim i svi su dobili otkaze.

11.09.2023. ·
2 min

Zašto većina programera treba da nauči osnove funkcionalnog programiranja

Objektno-orijentisano programiranje (OOP) dominira većim delom savremene softverske industrije. Jezici kao što su Java, C++, C# i Python pružaju moćne alate i paradigme koje omogućavaju razvoj sofisticiranih aplikacija. Međutim, postoji još jedan pristup programiranju koji dobija sve veću popularnost - funkcionalno programiranje (FP). I dok se možda čini da su OOP i FP dijametralno suprotni, oni se zapravo mogu međusobno dopuniti. Evo nekoliko razloga zašto bi programeri koji praktikuju OOP trebali da se upuste u učenje nekog od funkcionalnih jezika. Razumevanje različitih paradigmi: Programiranje nije samo o sintaksi i alatima. Ono je i o načinu razmišljanja. Učenjem funkcionalnog programiranja, programeri se izlažu drugačijem načinu razmišljanja i rešavanju problema. Ova raznolikost može poboljšati sposobnost programera da bira pravu paradigmu za određeni problem. Bezbednost i pouzdanost koda: Funkcionalno programiranje često naglašava neizmenljivost i čiste funkcije (funkcije koje ne izazivaju sporedne efekte). Ovi koncepti mogu značajno smanjiti greške u kodu, čineći softver stabilnijim i predvidljivijim. Povećana produktivnost: Mnogi funkcionalni jezici nude snažne apstrakcije koje omogućavaju brži razvoj softvera. Haskell, na primer, pruža moćne tipove podataka i funkcije višeg reda koje mogu značajno smanjiti količinu potrebnog koda. Lakše paralelno izvršavanje: U vreme kada se hardver sve više oslanja na višejezgarnu arhitekturu, sposobnost paralelnog izvršavanja postaje ključna. Funkcionalno programiranje, sa svojim naglaskom na neizmenljivost i čiste funkcije, prirodno je prilagođeno paralelnim operacijama. Unapređenje veština: Baš kao što učenje novog jezika može poboljšati vaše sposobnosti u maternjem jeziku, učenje funkcionalnog programiranja može unaprediti vaše veštine u OOP. Možete početi da ugrađujete neke od principa FP-a u vaš OOP kod, čineći ga efikasnijim i čistijim. Interoperabilnost: Savremeni softverski projekti često kombinuju različite tehnologije i paradigme. Na primer, Scala je jezik koji kombinuje objektno-orijentisano i funkcionalno programiranje. Poznavanje oba pristupa može vam pružiti prednost kada radite na takvim projektima. Priprema za budućnost: Dok je OOP trenutno dominantna paradigma, trendovi u industriji se stalno menjaju. Funkcionalno programiranje postaje sve popularnije, posebno u određenim oblastima poput distribuiranih sistema, analize podataka i web programiranja. Iako objektno-orijentisano programiranje nudi mnoge prednosti, postoji mnogo toga što programeri mogu naučiti iz funkcionalne paradigme. Učenje funkcionalnog programiranja može vam pružiti nove alate, tehnike i perspektive koje će obogatiti vaše veštine kao programera. U današnjem brzo evoluirajućem svetu tehnologije, prilagodljivost i kontinuirano učenje su ključni, a razumevanje više paradigmi je korak u pravom smeru.

14.08.2023. ·
4 min

Freelancing platforme - koju izabrati

Bilo da već radite kao programer za domaću firmu i želite da zaradite dodatni dinar, ili želite u potpunosti da se posvetite freelancingu, uvek je dobro informisati se o samim platformama, koje su im prednosti i koje su im mane. Pošto sam zadnjih 5 godina freelancer (od sveukupno 6 godina radnog iskustva), mislim da imam barem neki kredibilitet u pisanju ovog “izveštaja”.  😀 Pisaću samo iskustva o platformama na kojima sam i sam radio. Upwrok Apsolutno najpopularnija freelancing platforma kod nas. Karakteriše je ogroman broj klijenata kao i ogroman broj freelancera. Ovo je bila moja prva freelancing platforma na kojoj sam krenuo da radim. Trebalo mi je dva tri meseca (uzmite u obzir da sam imao tek malo jače od godinu dana iskustva) da nađem prvog klijenta, sa kojim sam i radio najduže - skoro godinu dana. Kriterijumi za ulazak na platformu:  Praktično nepostojeći, bilo ko ko ima pristup internetu i ima nekog elementarnog znanja iz oblasti za koju se prijavljuje, može da se prijavi.  Satnice: Najmanja satnica za koju znam je 5$/hr. Najiskusniji frilenseri imaju satnice preko 40$/hr. Moja satnica, dok sam bio najaktivniji tamo, je bila 15$ (od sredine 2018 do sredine 2019) Provizija: Provizija se naplaćuje direktno od vašeg rada sa klijentom i trenutno iznosi 10%. Prednosti: Ogroman broj poslova, relativno lako se može doći do posla uz nekakvo iskustvo Mane: Baš zbog same veličine platforme i broja poslova i frilensera, vrlo je slaba kontrola  klijenata kao i frilensera. Čuo sam za dosta slučajeva gde su se frilenseri žalili da su bili scamovani od strane klijenata. Takođe, time tracking aplikacija meni lično ne odgovara iz razloga što mi skrinšotuje apsolutno sve što radim, koliko puta sam pritisnuo dugmiće na tastaturi kao i koliko pomeranja miša je bilo. Proxify Švedski startup Proxify je krenuo značajno da se širi i ono što ih karakteriše jeste da uglavnom traže evropske freelancere jer su im klijenti mahom iz Evrope. Tamo nažalost posao još nisam ni našao. Kriterijumi za ulazak na platformu: Za razliku od Upworka, ovde postoji više faza kroz koje prolazite. Prvo je razgovor sa HRom, onda nakon toga imate tehnički intervju i poslednji korak je zadatak koji morate da uradite i koji im posle toga šaljete Satnice: Ovde su satnice mnogo bolje, ali nažalost, koliko znam, gornja granica je postavljena na 32 EUR/h. Provizija: Provizija se ovde naplaćuje klijentu, a vi dobijate ceo iznos za koji ste radili. Prednosti: Ukoliko dobijete klijenta, to su uglavnom dugoročni projekti (6 i više meseci), za razliku od upworka gde zavisi od klijenta do klijenta da li je long ili short term projekat Mane: Vrlo malo poslova. Na toj platformi sam već par meseci i za poziciju Unity Developera je naišao samo jedan posao. Verujem da je za neke popularnije stack-ove izbor veći, ali ne bih da se zakunem da se posao može naći toliko lako čak i sa popularnijim tech stackom.  Toptal Toptal se po internetu reklamira kao freelancing platforma na kojoj se nalaze “Top 3%” freelancera iz celog sveta. Nakon uspešnog prolaska svih krugova, uspeo sam da nađem posao na platformi za svega nedelju dana. Kriterijumi za ulazak na platformu: Identični kao za ulazak na Proxify, s tim da se ovde tehniči intervju sastoji od dva dela, prvi je test gde radite zadatke bez bilo kakvog nadzora na codility platformi i imate 90 minuta da završite 3 zadatka. Drugi deo tehničkog zadatka je Live Screening gde imate nekoga ko gleda dok vi radite, i ti zadaci se uobičajno rešavaju za oko 5 do 10 minuta svaki. Bitno je da napomenem da su zadaci ovde drastično teži nego na proxifyu te je moj savet da pre apliciranja barem mesec dana svaki dan radite zadatke na leetcode-u ili njemu sličnim platformama, zato što zadaci uopšte neće biti naivni. Satnice: Baš zbog toga što se reklamiraju kao platforma za top 3% freelancera, satnice su u skladu sa tim. Minimum je ako se ne varam oko 25$, a što se maksimuma tiče - nebo je granica 😀 Provizija: Provizija je ista kao na Proxifyu, naplaćuje se klijentu i vi kao freelancer nikad ne znate koliki je to % a vama sleduje pun iznos vaše satnice. Prednosti: Po mom iskustvu, zaštićeni ste kao beli medved. Uvek na raspolaganju imate svog support agenta kome možete uvek da se obratite za bilo kakve nejasnoće/poteškoće. Klijenti su uglavnom dugoročni (6+ meseci) i satnice su stvarno visoke. Mana: Napsram prethodnih, nema toliko 😀 Jedina veća mana za ljude koji žele da pristupe platformi u ovom momentu je taj što je lista čekanja po nekoliko meseci (to ja lično pripisujem trenutnoj krizi na IT tržištu). Ukoliko želiš da se više informišeš o prednostima i manama freelance rada, baci oko na naš drugi blog na temu Da li je danas isplativije (i koliko) raditi kao frilenser ili kao regularno zaposlen?  

17.07.2023. ·
2 min

Photon Quantum - revolucija u razvoju Multiplayer igara

Ukoliko se bavite game developmentom na bilo kom nivou, sigurno ste nekada pomislili kako bi bilo dobro napraviti multiplayer igru. Međutim, pravljenje multiplayer igre je daleko teže nego pravljenje singleplayer igre jer, pored vaših veština pravljenja samih mehanika za igre, potrebno je znati kako optimizovati samu igru da šalje što manje saobraćaja kroz mrežu, kako da svi klijenti budu u sinhronizaciji konstantno, kako rešiti problem ljudi koji kasnije ulaze u sam meč i još mnogo, mnogo toga. Firma Photon, koja je veteran u pravljenju frameworka za razvoj multiplayer igara, pre nekoliko dana je izbacila svoj najnoviji proizvod - Photon Quantum.    Photon Quantum predstavlja potpuno determinističk framework, baziran na ECS šablonu (za ljude koji koriste Unity, ovo nema nikakve veze sa Unityevim ECSom 😄) , za pravljenje multiplayer igara. Šta tačno znači to deterministički? Znači da za određeni input koji korisnik kreira, identičan (što je najbitnije, u decimalu) će se taj input reflektovati na svakoj mašini koja se trenutno nalazi u tom meču. Zašto je to inače teško proizvesti? Zbog same prirode floating-point aritmetike na modernim računarima gde se većina decimalnih brojeva ne može prikazati baš takvi kakvi jesu već se zaokružuju na nekoj od poslednjih decimala.   Inženjeri iz Photona su to rešili tako što su napravili potpuno novu numeričku strukturu podataka koja se koristi umesto standardnih floating-point struktura kao što su float i double. Time se osigurava upravo to, da svaki otkucaj (eng. tick) simulacije na svim računarima izgleda isto. Takođe, Photon je morao da napravi i svoj endžin za fiziku baš iz tog razloga što svi komercijalni endžini za fiziku mahom koriste float i double za svoja računanja, pa je ipak bilo lakše da naprave svoj od nule nego da neki postojeći prilagode svojim potrebama.    Pored toga, baš zato što sama simulacija prihvata samo input, mogućnost cheat-ovanja je sveden na minimum, a ukoliko se koristi još i neki custom server, prema rečima Photonovih ljudi, ta mogućnost je ravna nuli.  Photon Quantum trenutno postoji samo za Unity, ali se aktivno razvija framework i za Unreal. 

17.05.2023. ·
3 min

Etičko Hakovanje, White Hat i Black Hat hakeri 

Etičko hakovanje odnosi se na legalno i dobroćudno prodiranje u računarske sisteme kako bi se testirala njihova bezbednost i eventualno otkrile ranjivosti. Etički hakeri, poznati kao "white hat" hakeri, koriste svoje veštine u skladu sa zakonom i sa dozvolom vlasnika sistema. Čak i ukoliko nemaju dozvolu vlasnika sistema, a pronađu potencijalnu pretnju po bezbednost unutar aplikacije, najčešće pokušavaju da stupe u kontakt sa vlasnikom sistema i pružaju informacije o propustu na koji su naišli.  Oni rade na prevenciji i otkrivanju neovlašćenog pristupa informacijama, zaštiti podataka i održavanju bezbednosti informacionih sistema. Nasuprot njima, "black hat" hakeri koriste svoje veštine za nelegalne i zlonamerne svrhe, kao što su krađa podataka, finansijske prevare ili nanošenje štete organizacijama.  White Hat (Etički) hakeri White Hat hakeri su stručnjaci za informacionu bezbednost koji koriste svoje znanje i veštine kako bi pomogli organizacijama u zaštiti svojih informacionih sistema. Oni sarađuju sa vlasnicima sistema kako bi pronašli i otklonili ranjivosti, pre nego što to učine zlonamerni napadači. Etički hakeri često koriste metode i alate slične onima koje koriste "black hat" hakeri, ali njihov cilj je poboljšanje bezbednosti, a ne eksploatacija ranjivosti.   Organizacije širom sveta angažuju white hat hakere kako bi testiralei svoje sisteme i aplikacije i, kako bi se osiguralei da su njihovi podaci i korisnici zaštićeni. Etičko hakovanje obuhvata različite aspekte kao što su:  Testiranje proboja (penetration testing): Ovo podrazumeva simulaciju napada na računarske sisteme kako bi se identifikovale ranjivosti i preporučile odgovarajuće mere zaštite.  Revizija bezbednosti: Etički hakeri procenjuju politike i procedure organizacija kako bi osigurali da su one u skladu sa standardima industrije i zakonodavstvom.  Obuka i svest o bezbednosti: Etički hakeri često obučavaju zaposlene u organizacijama kako bi ih naučili da prepoznaju i izbegnu potencijalne pretnje, kao što su phishing napadi.  Black Hat (Neetički) hakeri Black Hat hakeri su pojedinci koji se bave neovlašćenim prodiranjem u računarske sisteme i mreže, sa ciljem krađe, sabotaže ili iznuđivanja. Oni koriste svoje veštine za ličnu korist, bez obzira na štetu koju mogu naneti drugima. Black hat hakeri često koriste sofisticirane alate i tehniku kako bi ostali neotkriveni i ostvarili svoje zlonamerne ciljeve. Neki od najčešćih ciljeva black hat hakera uključuju:   Krađa podataka: Black hat hakeri često ciljaju organizacije kako bi ukrali osetljive informacije, kao što su finansijski podaci, lični identifikacioni podaci ili korporativne tajne.  Finansijske prevare: Nelegalno pristupanje bankovnim računima, kreditnim karticama ili drugim finansijskim instrumentima kako bi se preusmerila sredstva ili izvršile neovlašćene transakcije.  Ransomware: Ovo je zlonamerna vrsta softvera koji šifruje podatke žrtve i zahteva otkupninu kako bi se podaci oslobodili. Black hat hakeri često koriste ransomware kako bi iznudili novac od pojedinaca ili organizacija. Jedan od primera ransomware napada je bio napad na Republički Geodetski Zavod sredinom prošle godine.   Distribuirani napadi odbijanja usluge (DDoS): Ovi napadi se koriste za preopterećenje mrežnih resursa ili usluga, što može dovesti do pada sistema ili mreže. Cilj ovih napada može biti nanošenje štete konkurenciji, iznuđivanje ili aktivizam.  Etičko hakovanje kao profesija  Dok se etičko hakovanje uvek ne smatra "glamuroznom" karijerom, ono nudi mnoge mogućnosti za stručnjake iz oblasti informacione bezbednosti. Etički hakeri mogu raditi kao konsultanti, zaposleni u korporacijama ili čak kao članovi vladinih agencija. Industrija informacione bezbednosti brzo raste, a potražnja za etičkim hakerima se povećava kako se organizacije sve više oslanjaju na tehnologiju i internet.  Edukacija i sertifikacija Postoji nekoliko sertifikata i obuka koje etički hakeri mogu steći kako bi unapredili svoje veštine i dokazali svoju stručnost. Jedan od najpoznatijih sertifikata je Certified Ethical Hacker (CEH), koji pruža obuku i znanje o različitim tehnikama hakovanja i alatima. Osim toga, postoje i drugi sertifikati kao što su CompTIA Security+, Offensive Security Certified Professional (OSCP) i GIAC Penetration Tester (GPEN).