Archive for Web development

Internetics 2008: Gustos.ro si ZeList.ro

Abia ne-am intors de la Internetics 2008 unde am castigat mai multe premii ce sunt rezultatul eforturilor si a muncii unei echipe cu adevarat dedicate. Poate faptul ca cele doua proiecte premiate sunt proiecte personale ne face si mai fericiti.

Gustos.ro si ZeList.ro sunt cele doua proiecte, Gustos.ro castigand la categoria ,,Lifesyle” iar ZeList.ro la categoria ,,Servicii – Altele” si premiul special ,,Microsoft pentru inovatie”. Aceste doua proiecte fac parte dintr-o serie mult mai larga la care TreeWorks a lucrat si/sau lucreaza si care primesc fiecare cea mai mare atentie.

Gustos.ro este nu doar cel mai bun portal gastromic ci si o comunitate in sine unde utilizatorii schimba informatii si impartasesc experientele lor, o larga baza de date cu restaurante, dar si un site cu articole de interes, sfaturi si un newsletter foarte popular. Recent, Gustos.ro a lansat un micro-site dedicat alimentatiei sanatoase, sanatos.gustos.ro si promite noi surprize in perioada urmatoare.

ZeList este un proiect impunator ce doreste sa ofere un top al blogurilor romanesti calculat in funtie de ,,link love” cu peste 20.000 de bloguri calculate. ZeList.ro nu este un simplu top in functie de trafic al blogurilor ci un top al importantei blogurilor in functie de aparitiile in blogroll-uri, trackback-uri, importanta acestora la randul lor etc. De curand, ZeList s-a imbogatit cu un widget ce poate fi downloadat pe blog pentru a arata pozitia in top si cu un barometru lunar.

Si pentru ca aceste premii merita sarbatorite ca atare, plecam maine dimineata in team-building unde promitem sa lasam spirtoasele pentru a pune la cale noi proiecte cu care ne vom mandri la editia viitoare a Internetics.

Comments

Ca sa nu credeti ca vorbim de hype

Am aruncat o privire pe postul anterior si mi-am dat seama ca poate fi citit si in cheia hype/pompieristica. Behold the Grid Computing!

Uite un fragment din (celebra, dar prea putin citita) What is Web 2.0 a lui Tim O’Reilly:

Operations must become a core competency. Google’s or Yahoo!’s expertise in product development must be matched by an expertise in daily operations. So fundamental is the shift from software as artifact to software as service that the software will cease to perform unless it is maintained on a daily basis. Google must continuously crawl the web and update its indices, continuously filter out link spam and other attempts to influence its results, continuously and dynamically respond to hundreds of millions of asynchronous user queries, simultaneously matching them with context-appropriate advertisements. It’s no accident that Google’s system administration, networking, and load balancing techniques are perhaps even more closely guarded secrets than their search algorithms. Google’s success at automating these processes is a key part of their cost advantage over competitors.

It’s also no accident that scripting languages such as Perl, Python, PHP, and now Ruby, play such a large role at web 2.0 companies. Perl was famously described by Hassan Schroeder, Sun’s first webmaster, as “the duct tape of the internet.” Dynamic languages (often called scripting languages and looked down on by the software engineers of the era of software artifacts) are the tool of choice for system and network administrators, as well as application developers building dynamic systems that require constant change.

Daca admitem ca etapa software-ului ca artefact s-a dus, iar locul i-a fost luat de software-ul ca serviciu, e evident ca si pe partea de hardware e nevoie de mult-mult mai multa flexibilitate. Practic, grid computing asta asta face: include hardware-ul in aplicatie.

Comments (2)

Cautam web-developeri, centauri si nemuritori

Pe scurt cautam persoane care stiu sa faca lucruri misto, care sunt persoane misto, care inteleg un misto rafinat si care vor sa se simta misto alaturi de noi.

Daca pe langa calitatile de web-developer mai sunt si centauri (de preferinta cu degete functionale la cele patru picioare pentru eficientizarea codului) sau nemuritori, e perfect.

Anunturile sunt aici si aici. Avem proiecte misto, avem knowhow tare, avem knowledgebase, colegi cu care sa schimbati idei tari, mediu bun, teambuildinguri, beri, provocari si recompense, si ce mai vreti. Iar daca nu avem ceva si ne dam seama ca ar fi trebuit sa avem, atunci vom avea repede.

Comments

“TV screen” cum zice si maestrul Bregovic

“Forget it all
The TV screen
TV screen makes you feel small
No life at all

Now that you have turned it off
It’s harder than you thought
No one wants to give a damn
Or even hear a thought “

Gandul asta a pornit de la Radu si de la noul site PROTV pe care l-am lansat (acum nu ma laud ca firma noastra l-a facut, dar chiar foarte complex si oamenii de acolo au o super-echipa care o sa-l sustina cu content din tot trustul).

Faza este ca intr-adevar s-a schimbat conceptul cu televiziunile:

1. S-a dus naiba televizorul pentru o parte a populatiei (aia mai cu banuti).
2. Dar televiziunea ca forta mediatica a ramas (de fapt chiar e un paradox – audienta scade in lume, dar profiturile cresc: vezi HBO care a avut in 2005 cea mai mica audienta, dar cele mai mari incasari – bine HBO merge pe abonamente, dar si cei care traiesc in publicitate o duc la fel de bine).
Baietii din liga grea sunt gata sa pompeze bani frumosi in online pentru ca inteleg ca televiziunea este noul radio (ca s-o spun mai eufemist ca Radu). Viitorul este highly-personalized content with highly-targeted ads. Si in care se pot face bani mult mai frumosi decat din cele o suta de feluri de a spune “detergent” gospodinelor. Uite un post misto pe tema TV advertising de la Eugen. Combinatia de TV + Internet permite sa distribui publicitate si la ceasuri Vacheron nu numai la Swatch. Si baietii grei or sa se prinda.

3. Televiziunea si trusturile mari de presa in genere or sa inceapa si in .ro lupta cu companiile pur-online. De vazut cat marketshare vor castiga. Cel putin pe continut eu zic ca nu au cum sa piarda. Si my feeling este ca nu vor cumpara. Pentru ca nu au de ce. Sau it’s better to build than to buy in their case. Parerea mea este ca firmele pur-online nu au ajuns la nivelul necesar ca sa fie investitii sigure (inca sunt mult-mult prea antreprenoriale si pot fi dizlocate relativ usor de trusturile media care au expunere mediatica mare.)
4. Strategia PROTV-ului de a baga video e o idee buna (trebuie bagat un pic mai mult continut text pentru oamenii care se afla la munci si nu vor sa dea play la orice – vezi CNN). Deoarece continutul video este complet copyrightabil (adica siturile de agregare nu il vor putea lua ca pe cel textual). Plus ca se diferentiaza si de ziare.

5. Aplauze si pentru increderea in dezvoltator (adica TreeWorks). Eu zic ca a fost o colaborare foarte buna. Si pentru deschiderea la sugestii.

Succes asadar. Si asteptam si alte initiative romanesti la acelasi nivel de complexitate si de sustinere cu continut.

Comments (6)

Wiring the web

Titlul articolului nu-mi apartine si de altfel nici ideea :). Care intre noi fie vorba este absolut geniala. Initiatorul subiectului este Ray Ozzie iar postul original il gasiti pe blogul actualului Chief Software Arhitecture de la Microsoft si anume aici.

Despre ce este vorba… Ei bine, in mare despre “give power to the people”. 

Pornind de la ideea ca viitorul Internetului consta in interconectarea serviciilor, proceselor si in general a informatiilor intre situri si ca la momentul actual acest proces este disponibil doar specialistilor din domeniu (dezvoltatori, programatori etc. care reusesc acest lucru prin aplicatiile proiectate), Ray Ozzie propune o metoda prin care si utilizatorii obisnuiti sa poata realiza usor schimbul informatiilor continute in propriile situri/pagini prin importarea/copierea informatiilor dorite direct din alte situri.

Solutia gasita este inspirata din tehnologia care a stat la baza interconectarii aplicatiilor de desktop si anume “clipboard”-ul. Ray Ozzie propune “Live Clipboard“, tehnologie bazata pe javascript, Ajax si structuri XML care permite siturilor care o implementeaza sa faciliteze copierea anumitor structuri de informatii intre aceste situri. De ce structuri? Pentru ca daca se doreste doar copierea punctuala a unui simplu text acest lucrul se realizeaza folosind varianta binecunoscuta, low-end (de desktop) a clipboard-ului si anume: selectarea textului, apoi copy (ctrl+c) si apoi paste (ctrl+v) acolo unde se doreste copierea textului original. Dar avand in vedere ca exista deja structuri predefinite de date ca evenimente, contacte, profile etc. este interesant pt un utilizator sa poata copia intreaga structura si nu doar fragmente pe care apoi sa le integreze manual la locatia dorita. Si cum poate sa realizeze acest lucru? Pai foarte simplu, folosind acelasi model de la clipboard (Select/Cut/Copy/Paste) dar selectarea initiala nu se mai face prin selectarea manuala a textului ci prin intermediul icon-ului special LiveClipboard Icon creat pentru LiveClipboard (special in sensul de conceptie/design pentru a arata utilizatorului ca aplicatia este LiveClipboard Enabled si nu pentru ca ar avea niste proprietati deosebite fata de un gif obisnuit 🙂 ) si pe care userul da click si selecteaza actiunea dorita (copy, cut sau paste).
In spatele interfetei programarea face totul si la clickarea pe iconul respectiv se marcheaza vizual structura corespunzatoare, urmand ca la selectarea unei actiuni (sa spunem) de copiere, din javascript se serializeaza structura xml care defineste obiectul informational in cauza si care apoi se pastreaza in clipboard-ul calculatorului propriu. La actiunea de “paste” pe icon-ul unui container in care dorim sa salvam obiectul informational aflat in clipboard, tot din javascript se face deserializarea si importarea in containerul respectiv si salvarea (asta daca se doreste) in baza de date prin intermediul Ajax-ului. 
Stiu, la prima vedere nu pare ceva extraordinar dar asta pentru ca nu aveti imaginea completa :). Pe care puteti sa v-o faceti prin urmarirea exemplului complet functional care exista aici.

Ce este si mai extraordinar este faptul ca aplicatia respectiva functioneaza si intre doua browsere diferite (adica pot sa copiez structura unui contact in Internet Explorer si sa fac paste in Firefox). Asta inseamna ca practic se deschide o portita prin care, intr-un viitor nu foarte indepartat, o sa pot sa copiez aceeasi structura dintr-o aplicatie desktop (spre exemplu Microsoft Outlook) si sa-i dau “paste” intr-un site (si invers).

Sigur, deocamdata LiveClipboard este inca la stadiul de concept si multe lucruri (inclusiv standardele pentru tipurile de structuri) mai trebuie sa fie dezvoltate si mai ales acceptate pentru ca aceasta noua tehnologie sa fie folosita pe scara larga insa perspectiva este extrem de incurajatoare si fiti convinsi ca o sa mai auzim de LiveClipboard in viitor.

“Give power to the people!”  😉 

Comments (1)

Ajax & Web 2.0

Nu exista o definitie pentru Web 2.0, cel putin nu in dictionar. Web 2.0 se refera in general la serviciile care permit utilizatorilor sa colaboreze si sa schimbe informatiile online. Fata de versiunea anterioara, aplicatiile Web 2.0 sunt mult mai interactive oferind  utilizatorilor o experienta mult mai apropiata de aplicatiile desktop.

Se intampla la inceputul anului 2005 cand Google lansa propriul serviciu de free-email: Gmail. La momentul respectiv ideea de a avea un cont de email de 1Gb parea suficient de bun pentru a accepta superioritatea Google pe inca un domeniu decat “cautarea” si publicitatea web. Imediat insa Yahoo-ul a contraatacat si a marit conturile free la 250Mb si putin mai tarziu la 1Gb recastigand daca era cazul utilizatorii traditionali Yahoo care din dorinta de spatiu ar fi trecut la “inamic”.

Dar nu vom discuta aici despre razboiul dintre Google si Yahoo… Ce vreau eu sa scot in evidenta este faptul ca la inceputul anului 2005, prin folosirea Ajax-ului in noul serviciu Gmail, Google a introdus pe scara larga versiunea 2.0 a web-ului. Nu stiu daca va amintiti dar in momentul deschiderii unui cont nou la Gmail, verificarea daca adresa dorita era sau nu libera se facea automat la clickarea in afara campului respectiv si asta fara apasarea vreunui buton suplimentar. La momentul respectiv foarte impresionant… Nu sustin ca Google a inventat Ajax-ul. Tehnologia a devenit posibila in primul rand datorita faptului ca browserele in general si Internet Explorer-ul (deci Microsoft) in special au implementat obiectul XMLHttpRequest care permite incarcarea asincrona a continutului unei pagini fara a mai fi nevoie de reincarcarea completa a paginii respective. Sustin insa ca Google a fost primul dintre marii jucatori care a promovat aceasta tehnologie. Istoria Ajax-ului si mai multe detalii despre functionare gasiti aici sau cautand pe Google :).

Ajax este o tehnologie (de fapt un conglomerat format din mai multe tehnologii ca javascript, xhtml, html, css, xml etc) care potenteaza modul de functionare a web-ului prin faptul ca permite un nivel foarte ridicat de interactiune intre utilizatori si paginile web. Ajax inseamna interactiune si daca este folosit asa cum trebuie face experienta utilizatorilor mult mai usoara. Sigur, web 2.0 nu se limiteaza la Ajax. Web 2.0 inseamna si agregarea informatiilor din diverse surse (feed-uri, bloguri etc…), aparitia instrumentele colaborative de genul wiki-uri, practic existenta tuturor tehnologiilor care insumate permit colaborarea si interactiunea facila intre utilizatorii care au aceleasi interese. Dar Ajax-ul este motorul care asigura interactiunea atat de necesara la nivelul paginii web.

Cel mai simplu de inteles si in acelasi timp cel mai bun exemplu de folosire a Ajax-ului este chiar cel folosit initial de Google la Gmail: si anume utilizarea Ajax-ului pentru a verifica alegerea facuta de utilizator inainte ca acesta sa faca submitarea unui formular destul de stufos si astfel sa aiba experienta (neplacuta) de a fi intors la acelasi formular si a alege altceva si asta pentru ca alegerea facuta initial era deja facuta de un alt utilizator. In exemplul dat, folosirea Ajax-ului reduce practic timpul de completare (utilizatorul nu trebuie sa astepte o reincarcare a paginii de fiecare data cand alege ceva eronat) si duce la o curgere fireasca a procesului de completare a formularului respectiv (nu va fi lasat sa submiteze formularul decat daca alegerea lui este valida).

Evident ca exista atat motive pro cat si contra in folosirea Ajax. Motivele pro tin mai degraba de cresterea uzabilitatii (imbunatatirea experietei utilizatorilor) iar Jakob Nielsen (guru-ul uzabilitatii) desi nu pare interesat foarte mult de subiect, recunoaste ca utilizarea Ajax-ului este o practica recomandata atat timp cat nu creeaza confuzie in randul utilizatorilor (si anume cand se face clar diferentierea intre interactivitate si navigare – mai multe detalii despre acest lucru aici si discutia mai generala aici).  Motivele contra tin de faptul ca Ajax-ul depinde de javascript si prin urmare un utilizator fara javascript activat nu va putea sa utilizeze pagina respectiva. In plus trebuie avut in vedere latenta conexiunii de internet a utilizatorului pentru ca daca latenta este prea mare si nu se ia in considerare acest aspect prin atentionarea utilizatorului ca se intampla o actiune in background, respectivul utilizator nu va mai intelege ce se intampla si in felul acesta uzabilitatea urmarita va scadea dramatic.

Cat despre uzante si modul de folosire, la momentul actual Gmail foloseste foarte mult Ajax-ul dar functioneaza si fara acesta (evident anumite functionalitati nu mai sunt disponibile). Dar atentie! Yahoo! Mail Beta se bazeaza exclusiv pe Ajax. Asta inseamna ca fara javascript-ul activat nu veti putea utiliza aceasta aplicatie de webmail. Care aplicatie de webmail este de departe cea mai impresionanta (de pana acum) realizare bazata pe Ajax disponibila publicului larg (trebuie doar sa cereti s-o testati:) ). Yahoo! Mail Beta este de fapt o aplicatie extrem de vizuala care arata (la propriu) ce poate sa ne ofere web 2.0 si ce lucruri interesante se pot si vor fi realizate in viitor.
Faptul ca Yahoo! Mail are o functionalitate foarte apropiata de Outlook Express demonstreaza ca era aplicatiilor distribuite se apropie. Nu vom mai avea nevoie de aplicatii de desktop pentru ca totul va fi pe server… Nu ne mai lipsesc decat conexiunile bune la Internet … si evident aplicatiile distribuite. Dar nu mai avem mult pana acolo iar Yahoo! se pare ca are incredere totala in Ajax si potentialul pe care il ofera.

PS: Ca programator nu am avut niciodata prea multa incredere in javascript. Pe langa faptul ca nu poate fi controlat (ruleaza la client), exista in plus acele variatii de interpretare intre tipurile de browsere care fac dezvoltarea dificila si cu twitch-urile necesare fiecarei versiuni. Dar nici fara nu se poate iar in momentul actual exista suficiente frameworkuri de javascript care ajuta extrem de mult la  dezvoltarea aplicatiilor.  Dar acest subiect il vom dezvolta altadata :)…

Comments (3)

Introducere in tehnologie

Incepem azi seria “descoperirilor” tehnologice in web.
Sunt convins ca majoritatea subiectelor abordate aici sunt lucruri pe care poate le-ati gandit sau descoperit si singuri. Nu incercam sa ne prezentam ca “invatatori”. Vom incerca sa prezentam insa lucruri interesante atat pentru colegii din industrie cat si pentru potentialii clienti care vor sa afle mai multe despre tehnologiile web.
Topicurile nu vor fi extrem de tehnice (mai bine zis tehnicitatea nu va fi dusa la extrem) si, sper eu, nici extrem de plictisitoare :). Vom incerca sa sintetizam multimea importanta de informatii acumulate de-a lungul timpului si de ce nu, speram sa devenim mai buni prin feedback-ul pe care il asteptam de la voi.
Va propunem deci spre citire si dezbatere pareri, observatii, experiente traite si in general utilitatea diverselor tehnologii folosite in dezvoltarea unor prezente reusite pe web.

Comments