Pixel Crafter

31 iulie 2005

Standing by sau cum se schimbă o direcţie

Proiectul PixelCrafter a luat o pauză. Cel puţin până ce o să fim ceva mai pregătiţi, şi poate, cu ceva mai mult timp în faţă. Pentru moment ne-am decis să încercăm şi noi, ca şi restul echipelor, să implementăm un client de Jabber . Sper să iasă bine şi să învăţăm cât mai multe. Oricum, cel puţin în acest domeniu, nici un lucru ştiut nu poate să dăuneze :). Cu atât mai mult cu cât de o mare parte din tehnologiile pe care preconizam că o să le folosim pentru PixelCrafter ne-am izbit şi în realizarea acestui client de Jabber (şi mă refer aici la XML, .NET 1.1/2.0, WindowsForms, networking). Aşa că până la urmă sper să ieşim cu onoare din acest SummerActivities (pentru moment se pare că suntem în urmă, dar să nu ziceţi la nimeni ;-) ), iar la anu', la SummerActivities Reloaded :p, well... unii spun să o să facem senzaţie cu PixelCrafter :p
Care au fost motivele care au determinat acest standby? Unul din ele a fost că era un proiect de o destul de mare anvergură, şi cu unele mici excepţii (Ştefan), nici unul nu avea experientţa necesară administrării unui asemenea proiect. În plus erau foarte multe de învăţat, într-un timp foarte scurt - pe lângă cele menţionate mai înainte se adaugă şi grafică 3D şi DirectX. Şi mai ales, nu vroiam să facem treaba asta de mântuială. [În ceea ce mă priveşte ar mai fi un motiv şi acela că pe mine, de când am început să mai mişc ceva prin programare, m-a pasionat mai mult partea asta de reţea/aplicaţii web & co., astfel că atunci când am auzit că se va lucra la un client de Jabber (care pe deasupra mai era şi ideea mea - clientul, nu Jabber-ul :p), toate îndoielile pe care le aveam au devenit mai puternice. ]
Aşa că în continuare pagina noastră s-a mutat la http://fp-jabnet.blogspot.com/

La bună "reauzire"
Mihai Balan

20 iulie 2005

One more to go...

Astăzi am trecut de al doilea seminar de săptămâna asta din cadrul Summer Activities (şi din suita generală, având în vedere faptul că încă nu se ştie nimic legat de programul săptămânilor următoare). Cu ce am rămas după astea două seminarii? În primul şi în primul rând, mi-a fost dat să văd un mod de a ţine o "prelegere" aşa cum sunt slabe şanse să (mai) văd prea curând în facultatea asta (şi îmi pare rău să zic asta). Am spus "prelegere" şi nu seminarii - aşa cum erau ele trecute în original în program pentru că, în ceea ce mă priveşte, cel puţin, unele lucruri acum le-am auzit pentru prima dată.
Aşa că în continuare o să încerc că trec în revistă aceste două "seminarii" cu ce a fost mai bun sau mai puţin bun în ele.
Din câte am văzut până acum, se pare că sunt printre puţinii cărora le-a plăcut seminarul de marţi. Poate fiindcă eu sunt undeva în adâncul meu şi puţin poet, mie mi s-a părut ca binevenită o abordare mai "filozofică" a conceptelor din POO, şi o prezentare a modului de a vedea lucrurile, nu doar în P, ci OO în general ;). E adevărat că Andrei nu ne-a oferit nici un SilverBullet care să ne facă, dintr-o dată, să gândim OO, dar mie mi-a ridicat nişte probleme despre a căror existenţă nici nu mi-am pus vreodată problema. (Până ieri, legătura dintre POO adevărat şi lumea reală se termina cu exemplele de modelare a unei, să zicem, maşini în Java, care are nişte roţi şi un motor. Aplicaţiile real-world însă, mi se păreau cu totul şi cu totul o altă mâncare de peşte :D). Trebuie însă să recunosc că Andrei m-a cam pierdut când a început să folosească cuvintele alea lungi, ca hermeneutică (ar fi trebuit sa ştim ce e aia, chiar şi foarte vag??) sau antropomorfizare (la ăsta totuşi am înţeles ce vrea să zică şi chiar am apreciat ideea). Dar over-all seminarul lui Andrei mi s-a părut unul bun, şi mai ales, care şi-a atins scopul declarat (în proporţie de să zicem 90%). Că, din nefericire, acest scop nu a fost clar pentru toată lumea, e altă discuţie, care se leagă de aspecte ceva mai profunde ;)
Legat de seminarul de azi... Nu pot să nu precizez, că deşi marţi toată "instalaţia" a funcţionat bine (după juma' de oră de gâdilat switch-uri şi rezoluţii) şi teoretic a fost lăsată în aceeaşi configuraţie, azi a trebuit sa mai pierdem încă o oră(!!) ca să o facem să meargă, şi chiar şi aşa cu sughituri. Din cauza asta, prima parte a prezentării lui Alex Ghiondea a fost cam gonită de turci dacă îmi permiteţi expresia. E adevarat că unele lucruri erau destul de self-explanatory, dar secţiuni ca prezentarea platformei .NET meritau ceva mai multă atenţie. Totuşi se pare că "audienţa" nu a fost nemulţumită. Ce mi s-a părut însă really cool a fost aplicaţia (mai mult sau mai puţin) real-life, scrisă de la 0, de faţă cu noi. (Poate şi unde timp de 2 semestre un anume profesor - nu dăm nume :p - ne-a servit destule slide-uri cu bucăţele de cod cam fără cap şi fără coadă - ce să mai zicem de funcţionalitate reală) Partea asta mi s-a părut cea mai instructivă atât pentru că a ilustrat câteva din facilităţile platformei .NET dar şi pentru că a fost, involuntar sau nu, o prezentare în situaţii de real-life a feature-urilor VisualStudio 2005. Care sincer să fiu, mi se pare o sculă cu adevărat sculă :)).
S-ar putea să vi se pară ciudat şi să comentaţi faptul că am avut de zis numai de bine despre aceste seminarii. E adevărat că au fost şi chestii mai puţin OK, dar mie mi se pare important şi potrivit să subliniez şi / sau apreciez efortul, şi punctele bune din tot ce au făcut aceşti oameni, până acum (Între noi fie vorba, am adus şi critici, dar personal ;) dar să nu mai ziceţi la nimeni)
Acum o să trag pe dreapta având în vedere că e deja destul de târziu...

18 iulie 2005

What if ? - sau - O poveste care ar putea deveni adevarata :)

Intrucat niste specificatii abstracte si niste diagrame cateodata nu pot fi concludente pentru un proiect atat de mare precum Pixel Crafter, m-am gandit la o "poveste" care ar putea explica cat de cat cam unde tinteste aplicatia.

Sa presupunem ca Pixel Crafter ar ajunge la o versiune release, si ca ar fi atat de tare incat ar fi ales de NASA pentru continutul multimedia de pe site-ul sau public legat de expeditiile robotizate care au loc pe Marte. Sa presupunem ca suntem in pielea unui utilizator oarecare, care a intrat pe net tocmai ca sa vada site-ul respectiv...

Prima data browser-ul ii va incarca o pagina insipida, care il anunta ca daca vrea sa vada continutul paginii va trebui sa downloadeze un plugin de Pixel Crafter Player, disponibil de pe site-ul Pixel Crafter. Plugin-ul e indeajuns de compact incat sa nu necesite mult timp de download, si indeajuns de destept incat sa ruleze rapid pe sitemul utilizatorului nostru, sa detecteze placa video si ce capabilitati suporta, si ce DirectX sau OpenGL foloseste. Bine inteles, toate acestea au loc intern, utilizatorul doar astepand ca fereastra de install sa-i zica "Setup complete" :).

Patruns de curiozitate, utilizatorul intra din nou pe site-ul NASA, pentru ca de data aceasta, in loc de o interfata plata, bidimensionala, cu butoane si poze pe ea, sa descopere intregul sistem solar, animat, cu planetele invartindu-se in jurul soarelui si cu un cer impanzit de stele. Bine-nteles totul este tridimensional - intr-un colt al ferestrei, intr-un chenar pentru informatii, utilizatorul este indemnat sa traga cu mouse-ul pe toata suprafata ferestrei pentru a roti sistemul, sa apese pe diverse taste pentru a face zoom in si zoom out, sau sa faca click pe o planeta pentru a afla mai multe detalii.

Utilizatorul este socat de realismul scenei. Pentru ca are o placa video destul de performanta si DirectX 9 instalat in calculator, Pixel Crafter a reusit sa redea toate efectele grafice cu care aceasta a fost inzestrata de designeri. Soarele emite un "glare" subtil, fiecarei planete i se poate vedea textura suprafetei si ceata atmosferica, si bolta cereasca poate fi admirata in toata splendoarea ei, din orice directie.

Mai mult, cand utilizatorul se duce cu mouse-ul deasupra unei planete sau a Soarelui, aceasta se acopera cu un wireframe si un mesaj care-i indica numele planetei si o scurta informatie. Cand face click pe una dintre ele, imaginea se muta gradual si se centreaza pe planeta, cuprinzand-o pe toata fereastra. Apoi, in chenarul de informatii apar diverse date despre ea.

Intrucat site-ul este dedicat planetei Marte, cu totul altceva se intampla cand se face click pe ea. Planeta se mareste pentru a cuprinde intreaga fereastra, dar in fundal browserul incarca alte componente ale scenei, sporind rezolutia la care se poate vedea planeta si aparand pe suprafata acesteia etichete cu diverse titluri, pentru a fi mai departe explorate. Intre timp planeta se roteste in jurul axei, pentru a vedea toate etichetele intr-o perioada de revolutie, dar daca utilizatorul se duce cu mouse-ul deasupra planetei, constata ca poate singur sa o roteasca dupa preferinte, fara sa mai astepte o zi martiana ca sa faca click pe un loc ;).

Utilizatorul alege la intamplare o eticheta si, ca si cum ar fi intr-un satelit care se prabuseste brusc spre locul acela, "camera video" navigheaza intr-o scena martiana, arida, in care se poate vedea soarele si totul este impanzit de o ceata rosie care aduce a nori, si........

Povestea poate continua, dar banuiesc ca NASA ar avea mai multa imaginatie ca mine si in plus n-are rost sa umplu blog-ul cu niste chestii care (inca ;) nu s-au intamplat. Totusi sper ca am ilustrat intr-o oarecare masura cam unde tinteste Pixel Crafter, desi suntem convinsi ca in primele luni de dezvoltare a aplicatiei, nu vom putea realiza scene de o asemenea complexitate.

Poate ca va intrebati de ce am ales tocmai exemplul acesta. L-am ales pentru ca zilele astea am citit un articol din Scientific American legat de geologia planetei Marte si in plus am vazut ca site-ul NASA dedicat expeditiilor robotizate (care este existent! - click aici), incearca sa fie cat mai realist, insa este "limitat" de capabilitatile 2D ale Macromedia Flash :).

Dar pana cand vom reusi sa obtinem lucruri de genul asta, trebuie totusi sa trecem de faza de proiectare, iar aici intra in joc diagramele Visio si documentele de specificatie. That's some hard work to do, but eventually we'll get the job done. Bafta!

15 iulie 2005

Provocarea diagramelor

In sfarsit mi-am luat inima in dinti si m-am apucat si eu de proiect. Primul pas: punerea la un loc a structurii generale a proiectului (pe care am apucat din fericire s-o discutam mai mult sau mai putin in detaliu la Vlad, inainte sa plec), si apoi stabilirea formatului documentului(-lor) care or sa intervina in aplicatie. Apoi va urma design-ul aplicatiei, a claselor care vor interveni, a tehnologiilor folosite, si in final fiecaruia i se va da ceva de facut :D.
Pana atunci, am inceput sa schitez arhitectura generala a aplicatiei folosind Microsoft Visio, care btw mi se pare genial. Singura chestie care m-a durut a fost ca a trebuit sa astept o ora sa instalez Visual Studio 2005 ca sa pot instala apoi versiunea de Visio cu care vine DVD-ul :D. Regret ca nu l-am comandat de pe MSDN AA cat timp a fost in lista de produse...
Oricum, ideea e ca treaba merge destul de lejer cu el, desi imi dau seama ca nu stiu inca sa-l folosesc la toata capacitatea, si ca poate multe artificii vizuale pe care le incropesc s-ar putea sa fie deja implementate.
Cand o sa fie gata primul document, o sa vi-l trimit pe mail si astept sugestii si completari. Until then, have a nice time you all!

29 iunie 2005

Pe final...

E o mare onoare să scriu după Ştefan... El acum e foarte probabil undeva deasupra Statelor Unite, dacă nu cumva a ajuns deja ;). Noi, plebea, încă ne mai chinuim să trecem de sesiune. Abia aştept însă să se termine o dată, şi după o mică (şi binemeritată ieşire) la munte, să ne apucăm de treabă.

Promit să scriu cât de des, şi nu numai insipidităţi tehnice (s-ar putea să mă omoare Vlad pentru fraza asta - o să aflaţi mai multe despre echipă şi cam care sunt relaţiile dintre noi pe parcurs). Până atunci, am nevoie de multă baftă la fizică...

27 iunie 2005

Post-ul de inaugurare

Trebuie sa recunosc ca primul contact cu Google's Blogger poate fi sumarizat intr-un singur cuvant: "Woow!". Cu cat descopar ce posibilitati avem de a ne organiza proiectul si a comunica eficient intre noi si cu publicul larg, cu atat imi cresc convingerile ca am facut o alegere nemaipomenita.
Acesta este doar un posting de testare, ca sa vad si eu cum se face. In rest, ce sa mai zic... Happy posting! :)