luni, 14 ianuarie 2008

Ruby on Rails sau viitorul ?

RoR sau Ruby on Rails sau noua metoda super productiva de a dezvolta aplicatii web.

Ruby - este un limbaj de programare orientat pe obiect cu o sintaxa foarte curata care face progarmarea eleganta. Ruby combina eleganta conceptului Smalltalk, usurinta invatari si folosiri a Python-ului si pragmatismul din Perl. A aprut in Japonia in anii '90 iar in ultimi cativa ani a inceput sa se dezvolte o data cu aparitia documenetatiei in limba engleza

Rails - este un framework open source pentru Ruby pentru dezvoltarea de aplicatii web ce folosesc baze de date. Desi sunt numeroase alte framework-uri mult mai vechi si consacrate Rails se va inpune prin usurinta mai mare cu care se poate face o aplicatie (se zice ca pana la 10 ori mai repede fara a pierde din calitatea aplicatiei). Aceasta se datoreaza in parte programarii in Ruby.

Multe lucruri imposibil de facut in alte limbaje sunt foarte simple in Ruby si Rails profita din plin de asta.

Rails are doua principii less software si convention over configuration.

Less software - inseamna sa scri mai putine linii de cod pentru implementare, asta ducand la mai putine buguri si o mai rapida implemantare, intelegere mai usaora, usor de mentinut si modificat.

Convention over Configuration (CoC) - in loc de fisiere de configurare o aplicatie Rails foloseste cateva conventii simple de programare care permit sa iti dai seama de tot necesarul doar prin gandire. Codul aplicatiei si baza de date va contine dejaoerice Rails trebuie sa stie.

Download Ruby
Cu Ruby vine si RubyGems si cu comanda gem install rails --include-dependencies se instaleaza si Rails.
Mai e nevoie doar de o baza da date si de multe tutoriale :P.

Lomboz - plugin J2EE pentru Eclipse

Cateva zile in urma am cauta pe net dupa un plagin de J2EE pentru Eclipse. Spre marea mea surprindere nu am gasit numai contra cost, ceea ce nu prea m-a incantat. Totusi am gasit multe pagini cu Lomboz.
De fapt ce este Lomboz? Este un plugin Eclipse gratuit pentru mediul J2EE. Cu Lomboz se pot dezvolta si testa apicatii Web, Servicii Web, Java, J2EE si EJB. Lomboz a fost dezvoltat de ObjectWeb.
Ce ofera Lomboz:
-mediu pentru creare si asamblare de module J2EE
-editor pentru JSP
-suport petru JBoss, WebLogic, Apache Tomcat, JOnAS si JRun
-generator de cod bazat pe XDoclet
-generator de cod bazat pe Apache Axis.




Puteti downlada Lomboz de aici .
Pagina Lomboz este aici.

Cand nu vrei sa mergi la doctor? WEBMD - Symptom checker

Nu are neaparat cu tehnologiile web, poate doar prin vastitatea si totusi usurinta cu care se foloseste. Este un portal de sanatate, cu toate cele care se gasesc de obicei pe un astfel de site: sfaturi, idei, raspunsuri la intrebari, si o gramada de optiuni pe care nici nu te-ai gandi sa le cauti. Se numeste WEBMD.com

Ce mi-a atras mie atentia a fost o aplicatie pentru cei mai mult sau mai putin ipohondri. Acestia pot petrece destul timp butonand in cautarea afectiunii lor.

Aici este punctul de plecare al cautarii. Se incepe prin selectarea unei zone a corpului, iar apoi se extinde aceasta selectie.

Pe masura ce se selecteaza simptome,se filtreaza posibilele cauze si afectiuni. Daca se selecteaza una dintre acestea, se afiseaza un articol complet cu linkuri spre alte articole despre selectia facuta.

Ce mi s-a parut interesant la aceasta aplicatie este ca atat simptomele, cat si cauzele sunt foarte bine documentate si chiar au o baza medicala solida. De fapt, am gasit oameni care spuneau pe blogurile lor ca diagnosticul pus a fost corect.

Cu toate acestea, eu nu sunt cred ca o astfel de aplicatie poate inlocui un doctor bun. Poate doar daca ai o incredere nemarginita in calculator.

XML-RPC in SL

Cam toata lumea de pe Web a auzit de jocul Second Life (SL). O lume virtuala cu posibilitati nemarginite in care se poate face orice, dar orice. Pe langa comunitatea extrem de numeroasa pe care o are, lumea este intr-o continua evolutie. Fiecare personaj interactioneaza cu celelalte personaje si poate sa isi aleaga dintr-o multime de optiuni si gadget-uri, astfel incat sa devina unic.

Pana aici toate bune si frumoase. Inca o comunitate, intr-adevar mult mai de succes decat orice comunitate online, dar inca o comunitate. Ce treaba are cu XML-RPC. Simplu: Miyaoka Hitchcock s-a gandit ca ar fi frumos daca ar putea sa faca Second Life sa comunice cu restul Web-ului, sa nu mai fie o comunitate inchisa.

Miyaoka a folosit XML-RPC pentru a putea controla si genera obiecte in Second Life. Aceste obiecte depind de parametrii generati de un script PHP pe care il detine. Rezultatul... Nu prea spectaculose:) Alieni care pica dintr-un UFO. Posibilitatile pe viitor... Nemarginite in Second Life.

Filmuletul desigur:

Usability - sa ne gandim si la altii

Vorbeam de curand cu cineva despre site-uri incarcate, in care este imposibil sa te descurci printre atatea butoane si menuri redundante, sau in care dimpotriva, nu gasesti nimic numai pentru ca trebuie sa admiri creativitatea celui care a proiectat site-ul. Asa mi-am adus aminte de un termen pe care l-am auzit la inceputul acestui an scolar: usability si cum se aplica in web.

Definitia pentru web usability este urmatoarea: aplicarea usability in acele domenii in care pentru construirea unei interfete pentru comunicarea cu utilizatorul se foloseste paradigma (metafora) de "web browsing". Aceasta definitie tot nu spune destul, pentru ca intrebarea imediata este "Si ce inseamna usability?"

Usability este un termen care denota usurinta cu care oamenii pot folosi o "unealta" sau orice obiect construit de cineva. De asemenea, se poate folosi pentru a studia motivele pentru care un obiect este perceput ca eficient sau elegant.


In stiinta calculatoarelor si in interactiunea om-calculator, termenul se refera la eleganta si claritatea proiectarii acestei interactiuni. Am descoperit ca exista si un site dedicat in intregime acestui subiect, Usability.gov. Site-ul contine sfaturi, pasi de urmat, metode si exemple. Una dintre sectiunile acestui site prezinta o descriere detaliata a ceea ce presupune proiectarea unei pagini web completa din acest punct de vedere. Si, deoarece in curand probabil voi scrie aplicatii, m-am ingrozit putin. Va spun doar atat: schema de urmat avea...31 de pasi.

Totusi, cred ca acest concept este din ce in ce mai necesar in conditiile in care aplicatiile (nu numai cele web) sunt din ce in ce mai vaste si mai complexe, ofera mai multe optiuni si se adreseaza unui numar din ce in ce mai mare oameni.

Ce este de fapt web-ul semantic?

W3.org incepe descrierea web-ului semantic astfel: "Web-ul semantic este un web de date.". Explicatia este urmatoarea: sunt foarte multe informatii pe care le folosim in fiecare zi, dar care nu fac parte din web. De exemplu: cineva isi poate verifica situatia bancara pe internet, de asemenea poate vedea pozele sale, si poate verifica intalnirile dintr-o agenda. DAR: se pot vedea pozele intr-un calendar astfel incat o persoana sa isi aduca aminte ce facea in momentul cand a fost facuta poza? Se pot vedea informatiile dintr-un extras bancar intr-un calendar?

De ce nu sunt posibile aceste actiuni? Pentru ca nu exista un web de date. Pentru ca datele sunt controlate de aplicatii, si fiecare aplicatie retine aceste date pentru ea.

Web-ul semantic este descris de doua concepte:
- formate comune pentru integrarea si combinarea datelor extrase din surse diverse, pe cand web-ul original se concentreaza pe interschimbarea de documente;

- un limbaj pentru inregistrarea legaturilor dintre date si obiectele din lumea reala. Acest limbaj permite unei persoane (sau unei masini) sa porneasca de la o baza de date si sa viziteze apoi un numar nelimitat de baze de date, conectate prin legaturi logice (vorbesc despre acelasi lucru). Un astfel de limbaj este RDF (Resource Descriptor Framework), un limbaj de adnotare care permite descrierea informatiilor si a resurselor din web.

O alta explicatie, usor de inteles este urmatoarea, oferita de bunul nostru prieten, W3schools.com. Web-ul semantic este o retea care poate descrie informatiile astfel incat acestea sa fie intelese de calculatoare.
Enunturi ca:
* Beatles au fost o formatie faimoasa din Liverpool
* John Lennon a fost un memebru al Beatles
* Beatles au inregistrat discul "Hey Jude"
pot fi intelese usor de oameni, dar cum pot fi ele interpretatea de calculatoare

Enunturile sunt construite dupa niste reguli sintactice. Sintaxa unui limbaj defineste regulile pentru construirea propozitiilor. Dar cum poate deveni sintaxa semantica? Asta vrea sa realizeze web-ul semantic.

El nu este despre legaturi intre pagini, desrie relatii intre elemente: (A face parte din B si Y este un membru al Z) si proprietati ale lucrurilor (dimensiune, greutate, varsta, pret).


"Daca HTML-ul si Web-ul au facut ca toate documentele online sa arate ca o carte imensa, atunci RDF-ul, schemele si limbajele de inferenta vor face ca toate datele din lume sa arata ca o imensa baza de date"
Tim Berners-Lee

duminică, 13 ianuarie 2008

Google si trend-urile

Ce face Google cand nu lucreaza cel mai folosit motor de cautare? Creeaza. Una din aceste creatii este Google Trendalyzer. Un tool care inca nu se publica de notorietatea produselor Google. Acest tool nu a devenit nici macar oficial. Putem vedea doar un demo la urmatoarea adresa:
http://www.gapminder.org/world/

De la prima vedere tool-uri impresioneaza. In primul rand ca toate produsele Google este simplu si ofera exact ceea ce isi doreste. O privire de ansamblu asupra trendurilor din lume. Metoda de afisare grafica a trendurilor prin bule de marime variabile pe parcursul unui interval de timp este uimitoare. Pana si un copil poate cu usurinta sa faca o analiza intre parcursul unei tari pe un anumit set de indicatori fata de alta tara.

Dupa ce acest produs a fost prezentat la TED, Google se pare ca a inceput sa investeasca in el. Vom vedea pe viitor daca Trendalyzer va fi integrat in suita Google sau va ramane doar la stadiul de proiect.

AJAX ca si tool

Conceptul AJAX, si intreaga filozofie din spatele acestei tehnologii, devine din ce in ce mai cunoscuta de catre intreaga comunitate Web. Mult timp cea mai mare dorinta a programatorilor Web a fost sa indoaie bariera fizica si sa poata face scripturile executate pe client sa comunice cu scripturile executate server side. Mult timp acest lucru nu a fost posibil (a fost o regula foarte bine pusa la punct: Ce se ruleaza pe client nu mai poate comunica cu serverul).

Si apoi a aparut AJAX. Ideea este simpla. Scripturile Javascript pot sa comunice cu serverul. De aici lucrurile in Web au explodat. Au aparut o multime de componente care fac practic experienta utilizatorului mai placuta. Aplicatiile Web au devenit transparente pentru utilizatori, au devenit normale. Programatori au acum tool-urile necesare pentru a putea oferii utilizatorului ceea ce acesta are nevoie, fara a fi ingraditi de reguli.

Iata un mic exemplu de drag&drop care nu putea fi posibil la acest nivel fara tehnologia AJAX.



GAIA ONLINE

GAIA Online reprezinta o comunitate online foarte bine pusa la punct. Ce are in plus pe langa restul de comunitati online pe langa cei 95791 de GAIA-ni online? O interfata la care pana si cel mai mic detaliu este acoperit. O grafica exceptionala la nivel de animatii si o multime de detalii ce creeaza o lume online cu care se poate interactiona pe deplin.

Cel mai impresionant lucru este cat de usor se adapteaza creatorii site-ului. Cu putin dupa ce librarile YUI au aparut GAIA a fost modificata folosindu-se aceste tehnologii. Acesta este un exemplu foarte interesant de folosire YUI intr-un mod creativ. Nu s-au luat componentele si doar s-au integrat in comunitate, ci componentele YUI au fost folosite pentru a crea un browser de lumi online, in care jucatorul poate interactiona cu lumea imaginara din browser.

Filmuletul de mai jos prezinta cateva momente din aceasta experienta:

Comentarii cu tehnologii web

In momentul de fata personal imi este foarte greu sa discut documente cu persoanele din jurul meu. Documentele pe care le primesc sosec in formate diferite si nu toate aceste formate suporta comentarii. In momentul in care aceasta optiune nu este disponibila singura cale prin care pot discuta un document este sa il discut "live" cu persoana respectiva, numind identificatori precum paragraful x, alineatul y sau randul z. Acest lucru poate fi extrem de deranjat si poate face ca ideea pe care incerc sa o impartasesc sa nu fie inteleasa cum trebuie.

De curand am descoperit o aplicatie care prin tehnologii web (YUI, Ajax, ASP .NET) reuseste ca majoritatea aplicatiilor web sa faca exact ceea ce utilizatorul are nevoie. In cazul meu sa ofere o modalitate foarte usoara si intuitiva pentru a putea scrie comentarii pe un set de documente. Aplicatia poate inlocui foarte usor si sistemele de adnotari din aplicatiile de lucru cu text-ul specializate (Word etc...)

In continuare un scurt filmulet cu aplicatia in actiune:

Flex nu e doar pentru Web

Primul contact cu Flex m-a facut sa admir ideea celor de la Adobe. Flex ofera practic la prima vedere eye-candy-ul flash-ului combinat cu puterea limbajelor server side gen PHP. O multime de componente foarte bine gandite pot fi ordonate foarte rapid pentru a forma o aplicatie puternica cu care poti prezenta cifrele companiei unor investitori sau iti poti atrage noi utilizatori pe site oferindu-le un set de statistici foarte atractive. Flex este extrem de usor de folosit iar rezultatele sunt exceptionale. Componentele se pot adauga prin meniuri drag&drop sau se pot scripta printr-o interfata similara Ecllipse.

Totul foarte ok pana aici si nota 10 la nivel de Web. Dar cei de la Adobe au decis sa faca un pas mai departe si sa creeze o intreaga interfata pentru un sistem de operare in Flex. Ce a rezultata puteti vedea in filmuletul de mai jos. Pe langa faptul ca arate foarte foarte bine, intreaga interfata este extrem de usor de folosit. Daca observam cu putina atentie putem vedea unele elemente prezente de acum in Windows Vista, ce au fost mai intai implementate prin Flex in Tiger OS.

Internet acasa daca ai un telefon fix

Nu vreau sa fac reclama Romtelecom-ului, ci vreau sa dau daoar cateva indicatii daca doriti sa instalati un kit ClickNet si sa nu va chinuiti degeaba cum m-am chinuit eu cateva ore :P.

Daca aveti un telefon fix acasa din reteaua Romtelecom, puteti avea si internet prin doua metode.

Dial-up
-pentru asta aveti nevoie de un modem la calculatorul personal; va trebui sa setati un numar de telefon, si anume 0870222222, si username-ul si parola la clicknet si sa mai conectati modemul la priza telefonului cu un cablu la fel cu cel de la telefon; daca ati facut totul bine ar trebui sa reusesca conectarea.
-avantaje nu aveti nevoie de un abonament, dar ve-ti plati cat ve-ti sta conectat
-dezavantaje (foarte multe) aveti nevoie de foarte mult calm deoarece se misca extrem de greu (e dial-up doar), e destul de scump (parerea mea) - aveti grija sa va deconectati cand nu mai aveti nevoie sa nu platiti degeaba, nu se pune problema de download ca merge mult prea greu, linia telefonica este blocata cat timp se foloseste internetul.


Broadband
-va trebui sa va faceti un abonament la Romtelecom (puteti suna la 930 de pe fix); va trebui sa mergeti la un centru Romtelecom si sa semnati contractul, dupa care veti lua modemul. Acesta este insotit de un CD si de un manual foarte bun de instalare. La calculatorul personal ve-ti avea nevoie de o placa de retea.
-avantaje viteza buna, internet non stop, nu se blocheaza linia telefonica
-dezavantaje abonament lunar fix.

Hint-uri pentru instalarea folosind Broadband:
- daca doamna de la Romtelecom uita sa va spuna ca abonamentul se va activa dupa vreo 2-3 zile ( :(( cum a uitat sa-mi zica mie) sa stiti voi asta:P, adica va trebui sa treaca minim 48 de ore pana sa se activeze contul si sa va mearga netul (doar e secolul vitezei :D).
-cititi cu atentie manualul de instalare. Acolo se arata cum trebuie conectat modemul la priza de telefon si apoi la calculator (are toate cablurile de care aveti nevoie).
-respectati in tocmai indicatiile din carte (adica modemul nu trebuie sa fie alimentat si conectat initial pana vi se va cere (altfel ve-ti avea probleme - cel putin eu asa am patit) );
-in contractul pe care-l semnati e un username si o parola pe care vi le va cere la instalare;
-in rest e foarte simplu

Spor la treaba si navigare placuta.

Pentru mai multe informatii vizitati situl www.romtelecom.ro si www.clicknet.ro

Tehnologia la tara :)

Acest articol nu va prezenta nici o noua tehnologie, ci o intamplare hazlie pe care am trait-o in vacanta si care cred ca merita povestita. Ca de obicei imi peterc vacantele undeva la tara langa muntii Apuseni. Aici nici macar semnal la telefoanele mobile nu gasesti, dar totusi poti avea internet deoarece este o retea Romtelecom. Asa ca un prieten (care nu se prea pricepe la tehnica) m-a rugat sa-l ajut sa-si instaleze si el internetul acasa. Cu greu am reusit sa semnam un abonament (deoarece din ce stiu tanti-le de la ghiseele Romtelecom nu le poti scoate :(( si ne-au plimbat de ne-am saturat - dar asta e o alta poveste).
Avand modemul si CD-ul de instalare ne apucam noi sa intindem cabluri la prieten acasa. Bunicii lui (oameni la vreo 80 de ani, care in loc de scoala au trecut prin razboi) se uitau curiosi la noi, doar puneam internetul :P. Dupa vreo jumatate de ora dupa ce am terminat de instalat, in camera intra curioasa bunica pritenului. Cu ochelarii pe ochi ne spune hotarata : "Vreau sa vad si eu internetu' ala!". Eu sincer nu am mai avut nici o replica. Ce puteam sa-i arat sa fie multumita, ca ea deabia ce stia sa citeasca si sa socoteasca. Am incercat sa-i explic ca nu pot sa ii arat ceva concret, ca folosim internetul sa vorbim intre noi, sa cautam ce ne intereseaza si mi-am amintit ca pot sa-i arat satul pe wikimapia.com. I-am aratat casa ei si satul si a plecat dezamagita. Probabil cand a mesrs la sotul ei i-a zis : "Iara strica astia banii degeaba. Se putea trai si fara internetul ala!"
Dupa vreo doua zile eram la mine acasa cu inca doi prieteni. La televizor erau stirile pe care bunicul meu nu le pierde in nici o zi. Printre altele la stiri anuntau ca Ion Iliescu, Elena Udrea si nu mai stiu ce politicieni si-au scris pe blog ce au facut de Craciun si Anul Nou.
Eu vrand sa rad putin de bunicul meu si el tot pe la 85 de ani, doar cu vreo 4 clase terminate, il intreb ce e acela un blog. El se uita serios la noi si ne zice: "Pai stiu si eu ... "BLOCU"... o fi acolo unde sta Iliescu, o fi scris pe usa la intrare". Noi ne punem pe ras, dar bunicul continua "Ce credeti ma ca nu stiu ca e un fel de jurnal pe iternetu' ala a vost. Credeti ca e prima data cand aud de Blog?... Credeti ca eu ma uit dejeaba la televizor, credeti ca eu nu pricep nimica din ce vad aici?", apoi razand : " De ma enervez va pun sa-mi faceti si mie un blog!".
Prieteni mei s-au uiatat razand la mine, eu nemaiavand ce sa zic. Mi-am luat-o, vrand sa fac misto de alti am picat eu in plasa.
Ca o mica concluzie "Omul invata cat traieste."