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.