-
(odobreno u dogovoru sa administracijom foruma)
Predgovor
Dugo sam se mislio ima li smisla uopće pisati ovako nešto na forumu gdje ima pravih programera, ljudi koji su cijeli život u tome i žive od toga, ali moje razmišljanje je bilo sljedeće:
- Forum je ionako podosta mrtav po pitanju kreiranja iole ozbiljnijeg sadržaja u zadnje vrijeme (mimo nekih forumaša koji se trude, poput tomeka@vz i dr.), a mi samo idemo sve stariji i na kraju ćemo svi biti ionako pod zemljom, pa zašto ne?
- Dosta mojih RL prijatelja su također programeri koji žive od toga i nekima nije svejedno, a neke boli briga za AI
- Ja sam na vašoj strani i ❤️ vas (no homo)

- Smatram da vas AI neće još dugo zamijeniti i da ćete nam još dugo trebati
- Vjerovali ili ne, nekoć davno sam htio biti kao vi. Krenuo od DOS-a i Basica, pa na Pascal i onda je sve otišlo kvragu i zaglavio na Windowsima sljedećih skoro 30 godina
- Sada više nemam ni vremena ni volje učiti programirati, tako da je ovo ujedno i neki moj pokušaj da ponovo proživim tu fazu, uz velika "pomoćna kola" (jebiga)
- Neloš je osjećaj ostaviti nešto (makar upitne korisnosti) zajednici s kojom si skoro 20 godina
Uvod
Prije nekih mjesec dana krenuo sam iz čiste znatiželje ispitivati koliko su današnji AI modeli zapravo sposobni – bez ikakvog predznanja iz programiranja.
Istražujući tako o njima po raznim forumima i socijalnim platformama, vidio sam da ljudi dosta hvale aplikaciju "Cursor", pa rekao idem isprobat.
Pogledao par tutorijala na YT, skinuo app i malo se igrao. Rekao iz zajebancije "idem vidit jel ovo čudo sposobno samostalno napraviti aplikaciju" (jer ja ne znam).
Fast-forward tjedan dana kasnije, i morao sam kupiti subscription da bih dovršio aplikacije koje sam započeo raditi
Tj. možda malo nije fer govoriti da sam ja započeo raditi te aplikacije, jer jedino šta sam ja radio je davao naredbe AI-u i pisao promptove u kojima sam mu pokušavao objasniti šta točno želim postići.
Iskustva s AI modelima
No, iako možda zvuči trivijalno, i nije baš. Tokom procesa kreiranja aplikacija koristio sam više modela koje Cursor ima u svojoj ponudi, od o3 preko svih Sonnet modela, do nekog defaultnog Cursorovog za kojeg nema informacija koji je (ali je dosta brz i katkad dovoljno pametan).
Ono šta je meni bilo zanimljivo, osim gledati ih kako grade kompletnu aplikaciju od nule (i katkad kompletnu aplikaciju skoro natrag u nulu), je promatrati njihov proces razmišljanja, sposobnost detekcije problema, sposobnost razumijevanja mojih želja, te sposobnost integriranja toga u soluciju koja bi riješila problem.
Naučio sam nekoliko stvari intenzivno se "družeći" s njima zadnjih mjesec dana:
- Ne postoji model koji je konkretno najbolji u nečemu, iako ćete po netu čitati da su npr. Claude Sonnet modeli najbolji za coding. Ja sam imao situacije koje Sonnet nije uspio riješiti, dapače stvorio je još problema, a onda sam switchao na o3 ili default i problem je bio instant riješen.
-
- Demencija modela. Ne znam jel to do Cursora kojem limitiraju potpuni access modelima ili do samih modela, ali primijetio sam da većina modela često potpuno zaboravi nešto šta smo radili prije tipa sat vremena ili dan prije. Kao da imaju neki pozadinski memory saving pa si brišu sjećanja. Iz tog razloga, prije rada bi ih često morao podsjećati na rad koji smo obavljali prije sat, dan. Tek kad bi potvrdili "da, sjećam se da smo radili na tome i tome", onda bi krenuo dalje.
-
- Nastavno na demenciju, primijetio sam da je rad s njima najbolji kada se izvodi kontinuirano i bez dužih prekida. Drugim riječima, dobro rade dok su u konstantnom pokretu.
-
- Efikasnost. Ovo će zvučati malo čudno, ali najefikasniji su i najbolje rade kroz jutro po našem vremenu, pa tamo do 14-15h po našem vremenu. Kasnije počnu freezati, treba im dugo za odgovor, memorija im dodatno degradira. Slutim da bi to moglo biti do toga šta ih Amerikanci preopterete kada se probude (a možda je i throttling problem sa Cursorom, ne znam)
-
- Često haluciniraju i poblesave. Mislim da je ovo opet povezano sa demencijom, jer katkad čak i kada sve ide u redu, oni počnu ubacivati, modificirati, brisati stvari iz koda koje nisam uopće tražio. Reda radi, to znaju biti nebuloze poput upisivanja totalno izmišljenih i sa projektom nepovezanih stvari u readme.md, do brisanja i modificiranja kompletnih sekcija u kodu koje su savršeno funkcionirale i bile su potrebne da bi aplikacija radila. Na taj način stvore dodatne probleme i gurnu vas u spiralu ispravljanja problema koje su sami stvorili.
-
- Neki modeli imaju "karakter" dok su drugi isključivo hladno profesionalni. Znam, opet zvuči glupo, ali recimo od o3 modela sam doživio izjave od kojih bi gledao u ekran i smijao se kako je brutalan. Pri tome mislim na situacije tipa kad smo istraživali da li aplikacija krši ToS određenih platformi. Prompt je bio jednostavan, tipa "Research ToS of <platforms>, then read our complete source code and tell me if our app is violating their ToS". Drugi AI-jevi bi odmah odgovorili "Understood, I will now analyze...", pa bi onda dali komentar na svaki svoj korak, i na kraju bi dali neko svoje mišljenje. o3 bi bez riječi samo počeo radit (u Cursoru bi samo vidio u chatu "Generating...", "Reading ToS..", "Reading UrlProcessor.kt", itd.) i na kraju bi hladno dao odgovor u stilu da se ne trebam brinuti oko ničeg jer to šta naša aplikacija radi ne krši ToS nijedne platforme, uz objašnjenje zašto, i na kraju kao da te potapša po leđima sa završnom izjavom tipa "You may continue working on your app worry free". Naravno da mu nisam odmah povjerovao, pa su istu analizu radili i drugi modeli i svi imaju isti zaključak, no o3 je imao taj neki "karakter".
-
- Nekonzistentna efikasnost. Isto tako, isti taj o3 kao da bi mijenjao svoju ćud tokom dana, pa o3 ujutro ne bi bio isti kao o3 popodne. Nije zajebancija. Ovaj jutarnji model bi bio pametan i brutalan, a popodnevni kao da je njegova zbunjenija verzija, totalno dezorijentiran i beskoristan. Doslovno ne bi mogao riješiti jednostavne probleme u kodu (tipa formatting .yml fajla) i uporno bi se vrtio u krug ne znajući kako to riješiti. Solucija bi bila jednostavno promijeniti model, no ni onda ne bi bilo garancije da će npr. Sonnet 3.7 koji vam je jučer radio odlično, i sada raditi odlično. Kao da je neki faktor randomizacije intelekta uključen ovdje. Može ponovo biti do demencije ili do Cursora. Moja teza je da Cursoru throttlaju API callove kada dođe velika gužva, pa posljedično isti dobija smanjene sposobnosti modela, ali to je samo moja teorija.
No...
Unatoč svemu tome, uspjeli smo napraviti par aplikacija koje će zauvijek biti free, iz više razloga:
- Eto, jer mogu i želim + trenutno mi je ovo zabavno
-
- Nije mi cilj zarađivati na njima (iako neke imaju donate opciju, ali to nije za vas i ne želim da mi se išta uplaćuje. Ukoliko ih više ljudi po svijetu počne koristiti, onda nek oni uplaćuju ako žele, ali nema konkretne potrebe). Cilj mi je bio zadovoljiti vlastite potrebe (svakodnevno su u pogonu sve aplikacije), te ih usput podijeliti s drugima ukoliko ih nađu korisnima.
-
- Ja nisam programer. Nisam napisao linije koda u ovim aplikacijama. AI je čak izmislio ime fiktivne firme, logo, kreirao kompletan website, napisao opise svih aplikacija i text unutar aplikacija (doduše uz moju pomoć) i 100% koda je njegovo. Ja sam samo malo modificirao readme fajlove, neke ikone i sl. sitnice, pa ne bi bilo fer tako nešto nekome naplaćivati jer sam mišljenja da bi se konkretan ljudski napor trebao naplaćivati, a ne pisanje prompta, pa AI sve odradi. Ovime ujedno i smatram, znajući sve šta sam do sada naučio, da su programeri i dalje nezamjenjivi i da će to još dugo biti tako.
-
- Aplikacije su potpuno experimentalne i napravljene što iz vlastite potrebe, što iz zabave, pa nisu ni materijal koji bi se mogao naplaćivati pošto sličnih već ima gro po netu.
Tako da eto, ako nekome budu korisne, super, samo za kraj moram još neke stvari napomenuti:
Ukoliko ih odlučite isprobati
Iz svih gore navedenih razloga nadam se da shvaćate da u potpunosti prihvaćate korištenje istih na vlastitu odgovornost, te nema nikakve garancije da aplikacije nemaju bugove i da se neće ponašati čudno. Ja sam ih više puta testirao i analizirao pomoću AI-a i trebale bi biti stabilne i funkcionalne, ali s obzirom da ja osobno nemam pojma o kodu koji je unutra, može se desiti da se sruše ili ne funkcioniraju kako je opisano/očekivano.
Aplikacije nemaju nikakav skriveni kod unutar sebe koji će vam pokupiti plaću s banke, preuzeti golišave slike i slično s uređaja, no ljepota open sourcea je upravo u tome da su vam sve aplikacije potpuno otvorene na mom Githubu, pa ih slobodno sami provjerite (ili dajte nekom AI-u da ih analizira za vas

). Zapravo biste to trebali napraviti svejedno, tako da ne morate nikome vjerovati.
Dapače, cijenio bih kada bi neki pravi programer bacio pogled na bilo koju od njih pa mi dao svoje mišljenje, bez obzira kakvo bilo, kritike su dobrodošle.
Volio da su aplikacije ipak em ispravne, em korisne ljudima, te da imaju šta manje bugova i sl.
Također, ukoliko imate neki dobar prijedlog za sljedeću aplikaciju koja bi svima mogla biti korisna, a koja već ne postoji, slobodno javite pa procijenim hoće li krenuti u izradu (nešto normalno i legalno naravno)
Behind the Scenes - fails
Evo malo da se nasmijete. Čisto da vidite jedan od bisera AI-a (a bilo ih je još).
Ovo je slika sučelja Cursora, a ovo je napravio nakon šta sam mu rekao "now clean up all the temporary files and folders you created during this process".
Srećom pa mi se Timeshift snapshoti rade svakih sat vremena, no naravno da je on ovo executao u 56-oj minuti od snapshota, tako da je sat vremena posla otišlo u nepovrat i sav trud za cijelu jednu verziju propao:
Žalio sam se Cursoru na ponašanje njihovog AI-a, ostali su zaprepašteni, rekli da ozbiljno shvaćaju ovakve incidente, te da to moraju proslijediti "tech teamu". Od tada se više nisu javljali (ali i dalje šalju promidžbene materijale).
I jedna na moj račun...
Radili smo updateu FixupXera sa 1.3.0 na 1.3.1 (mislim).
Tokom upgradeanja appa, stvorilo se dosta temporary fajlova i duplikata (pogotovo kada on testira nešto, pa da to ne radi u main direktoriju, onda kreira duplikat).
S obzirom da ja ni s Linuxom nisam baš na "ti", išao sam rm -rf-ati te duplikate, i uspio...barem sam tada mislio da sam uspio.
Odmah sam kopirao cijeli direktorij u mirror na drugom disku i pushao "promjene" na Github, te maintainerima na Gitlab.
Sve je bilo dobro dok mi maintainer sa Gitlaba nije javio da mi se opet vratio jedan bug u build.gradle.kts fajlu kojeg znam da sam bio ispravio (dependenciesInfo blok). Pitajući se kako je to moguće, shvatio sam šta sam napravio... rm -rf-ao sam kompletan novi build, a backupirao i pushao stari i tako pregazio sve promjene. Proveo cijeli sljedeći dan vraćajući nazad poboljšanja na kojima smo radili...
Toliko u prvom postu i idemo na drugi.