ponedjeljak, 22. lipnja 2009.

Lumberžak

Profesor i student na dotnetaškom predmetu...

Profesor: Kolega, objasnite mi kakav je ovo kod.

Student:

Profesore, imam taj jedan neopisivi strah kada vidim .Net. Kada sam bio mlađi, mrzio sam vidjeti .Net aplikaciju, čak i sam spomen na nju. Moja majka mislila je da sam glup, i da je jedini lijek da upišem FER i počnem raditi u .Netu. MOŽETE LI I ZAMISLITI KAKO JE TO PISATI .Net KOD CIJELI SEMESTAR NA FERu? Ne možete ni zamisliti kako je to ... pisati kontinuirano retardisan kod (ili povremeno samo drag'n'dropati) CIJELI BOŽJI SEMESTAR!!!

Iovako ionako ne htjedoh biti .Net programer.

Htjedoh biti drvosječa!
Skačući s drveta na drvo dok plutaju moćnim rijekama i jezerima naše Like!
Divovski hrast! Moćni dalmatinski bor!
Sa svojom draganom uz mene!
I pjevali bismo, pjevali ...

Dosta je rada

Kad će više ovaj faks završiti pa da se pošteni student može početi baviti nečim interesantnim? :-(

nedjelja, 7. lipnja 2009.

Vidoviti Milan u Noćnoj mori?!

...a očekivali ste da će biti samo programerskih stvari, a? Pa jesmo programeri, ali ... :)

Ok, sjedim sad u 1:00 i "stara majka" na Z1 gleda emisiju Noćna mora Željka Malnara. I vot d fak ... "VIDOVITI MILAN"!

Straašno :) :)

četvrtak, 4. lipnja 2009.

Prijatelji i jezici

Inače sam n00bek u web developmentu al Java, kolko se meni čini, ima pun potencijala u razvoju web aplikacija. Osim apleta, Java nudi servlete. Servleti su web aplikacije razlomljne na dva dijela: jsp stranicu i aplikacijski dio. Jsp stranice su na sličnu foru kao i PHP, malo pišete HTML pa otvorite tag i pišete server side kôd, u ovom slučaju Java kôd, pa zatvorite tag i nastavite s HTML-om. Aplikacijski dio je .class datoteka koja komunicira sa jsp stranicom i obrađuje njene zahtjeme. Ta podjela je napravljena zato da se server side kôd lakše odvoji od client sidea, jednostavno napravite svu obradu podataka u čistom Java razredu i potom gotove podatke servirate jsp stranici. Moje veliko negativno iskustvo s ovom tehnologijom je ubitačno nezgrapno debugiranje. Da bi Tomcat server mogao raditi s vašim servletom, morate ga prvo spakirati, prebaciti u direktorij (eh da, prvo je trebalo napravit xml datoteku koja Tomcatu opisuje di je, tko je, šta je i što može) i onaj najgluplji dio: resetirati server. Naime Tomcat dok se pokreće kopira sve servlete na neko svoje skriveno mjesto i od tamo ih koristi. Naravno dok je upaljen povremeno provjeri da li ste vi promjenili sadržaj direktorija u kojem mu zadajete aplikaciju, al ta provjera se nikad ne dogodi onda kad treba. Dakle, potencijalno moćno al ne bi ja ak ne moram il bar dok se ne razvije malo spretniji mehanizam osvježavanja aplikacijskog dijela.

ASP.Net sam bio slušo na jedom predavanju koje je držao kolega s faksa, al pošto ne radim ništ u vez weba, pozaboravljo sam. Ono što se sjećam je bila finta da izrada web aplikacije izgleda skoro identično izradi obične desktop aplikacije.

Eh, game dev. Do ne tako davno, bio sam tvrdoglavi mali C-ovac koji je sve morao napraviti vlastitim trudom. Kakvi gotovi engine-i, wrapperi i dll-ovi. Al kako je faks uhvatio stiskat omču tako sam sve više prelazio na stav "sve je već napravio Švabo" (izreka profesora iz srednje škole), zašto bih ja metodom greške i pokušaja razvio sustav za detekciju i razriješavanje sudara i patio se sa specijalnim slučajevima kad su drugi dali besplatno da se koristi njihov engine za fiziku koji radi 100x bolje nego što bi se meni dalo radit. Tako sam Zvijezdojeca prebacio iz C++ u C# kako bi iskoristio gotova riješenja za grafičko sučelje skup sa obradom događaja (event handling-om). Projekt tako napreduje deset puta brže. Istina Bog, neću moći napraviti fensi šemi grafiku al bože moj, sklepat ću što mogu. Najbolje je otić na čim viši nivo apstrakcije i napraviti u izvjesnom roku nešto što radi, nego se kilaviti na nekoj niskoj razini ili pak izmišljati stvari koje već postoje. Python i Ogre su super kombinacija, pogotovo ako imate grafičara. C++ nije loš samo prije nego se upustite u izradu igre, prvo potražite gotova rješenja za GUI. C# je isto neloš, podržavaja standardni DirectX i XNA a ako radite nešto grafički jednostavno kao npr. Civilization 1 ne treba vam čak ni to. Jest da je .Net Microsoftov, al njega su stvarno dobro napravili. Ne odlično ali dobro.

Što god radili, raspolođivi alati za razvoj (počevši od editora) će vam puno više značiti nego jezik u kojem radite.

srijeda, 3. lipnja 2009.

Jezici i prijatelji

Koji jezik koristiti? Evo mojih preferiranih, pa let the flame wars begin :)

  • web development.
    • Nema do PHPa. Savršen balans između muke u hrpi koda i snage mogućnosti modifikacije kroz razumijevanje. Milijarda i jedna ekstenzija za sve (kreiranje slika, kreiranje PDFova, lakši pristup bazama podataka, ...) Samo paziš kako pišeš i možeš sve :)
    • U .Netu (C#, ...) možete raditi bez razumijevanja što se događa. Možda je moćan, ali ... ne :)
    • C je overkill. Možeš sve, ali dok se spojiš na bazu umreš. Nećeš valjda s fajlama raditi. A tek slaganje stringova... enđoj :)
    • Perl je ogavan, write only jezik. Osim ako si vrlo vrlo pažljiv. Funkcije ilitiga subovi su izvedeni na bolestan način. Ima ekstenzija za hrpu toga, kao i PHP, no stvarno, pisati u Perlu kao što neki sugeriraju i rade... ne :)
    • Java bi mogla biti interesantna no imam apsolutno nula iskustva s njom.
    • I konačno još jedan mejđor pro-PHP argument (doduše, i za .Net): hosting je svagdje dostupan. Ako nemaš vlastiti server, pozdravi se s C-om, a vjerojato i s Perlom.
  • game development. Uf, tu ima puno niche segmenata... al ajmo pogledati.
    • web igre - PHP + Javascript. Rijetko koja igra iskorištava činjenicu da se cijela igra može u Ajaxu napisati ... i danas već ličiti na nešto što je pred petnaestak godina bilo mainstream na desktopima. Za optimizacije backenda, napisati cijeli server u C-u, kako ne bismo ovisili o tome što je PHP relativno stateless nakon završetka procesiranja pojedinog requesta i što različiti sessioni mogu komunicirati samo preko baze.
    • 2D igre - C++ i SDL odnosno OpenGL (ovisno što se želi napraviti). Jako sam sretan čak i s SDLom ako ne trebam često reskalirati i rotirati sprajtove kada se jako gube performanse. Tada se treba baciti na OpenGL.
    • 3D igre - C++ i OpenGL, odnosno Python i Ogre3D (tj. PythonOgre). Prva varijanta ako se razvija kao hobby, ako treba biti jako portabilno, i ako se ne ovisi o jako jako jako puno optimizacijskih algoritama. PythonOgre je rješenje za komercijalne casual igre koje se trebaju rapidno razvijati.
  • business development
    • .Net je nesrušivi car. A ja ne volim .Net i Microsoft. Jednostavno, u bilo kakvom poslovnom okruženju gdje se dođe, vjerojatno će se biti natjeran da se radi s .Netom.
    • Mono može pomoći ako ne volite MS i ne želite ovisiti o njima - ali samo ako cijeli tim u daljoj budućnosti može raditi s Monom :)
    • Java je close contender po mom mišljenju. Opet, nemam iskustva s Javom pa nemam blage veze o čemu pričam... no imam osjećaj da je Java malčice nezgrapnija.
Moj pregled... kolega EmP, napadajte u postu; svi ostali, napadajte u komentarima :)