vineri, 7 noiembrie 2008

Netiquette 2.0

Cred ca ati auzit cu totii termenul de Netiquette. Denumirea vine de la "network" si "etiquette" si este destul de veche, de pe vremea cand se folosea email in mod text.
Netiquette insemna o serie de "reguli de buna purtare pe net". Evident, nu esti obligat sa le folosesti, dar, daca le urmezi, dovedesti tuturor ca esti civilizat. Cele mai cunoscute exemple sunt:
  • evitarea scrierii cu CAPS LOCK a propozitiilor, deoarece se creeaza impresia de tipat;
  • folosirea "bottom-posting" sau "inline-posting" pe listele de discutii;
  • faptul ca persoana de la campul Cc: este doar un martor la discutie, nu un destinatar direct.
S-a creat chiar si un RFC pe tema asta: RFC 1855, Netiquette Guidelines.

Odata cu aparitia Web 2.0, au aparut noi forme de comunicare (blog-uri, wiki-uri, forum-uri) si s-au creat comunitati. Evident ca Netiquette nu prea mai erau un concept suficient, asa ca internautii si-au redefinit asteptarile, rezultatul fiind un soi de "Netiquette 2.0".

La ce se refera Netiquette 2.0? La bloguri, instant messaging, comentarii, chiar si avatare.

De exemplu, daca scrii un articol in care imprumuti idei din alta parte, trebuie sa citezi sursa (indiferent ca e un blog, site, carte tiparita etc.). Din pacate, de multe ori se incalca aceasta regula nescrisa, atat pe bloguri personale, cat si pe site-urile unor companii de stiri.

Cine sa fie de vina? Comoditatea? Indiferenta?

Cred ca ar fi cazul sa scriem un nou RFC: "Codul bunelor maniere in Web 2.0". Cine se baga?


Interfete Web care inghit orice!

Toata lumea stie ca daca mananci orice si oricat s-ar putea sa ai unele probleme de digestie. Interesant e ca acelasi lucru e valabil si pentru interfetele web.

V-am cam bagat in ceata, asa-i? Iata si povestea din spate:
Ieri a fost ziua 2 (si ultima) a Ciscoexpo. Pe la mijlocul zilei a fost o prezentare cu titlul "Warriors of the Net", in care un tip de la Cisco ne-a aratat diverse vulnerabilitati comune pe care le au sistemele informatice ale companiilor.
Si poate cele mai vizibile sisteme informatice sunt site-urile. Adica niste interfete web.

Sa trecem la lucruri concrete: Avem un site, hostat pe Apache, sub Linux. Ca multe alte site-uri, are un login box. Sa zicem ca in spate sta un script (in bash, perl, python, ce vreti voi) care face autentificarea. Si primeste ca parametru username-ul si parola introduse de user, astfel:

auth.sh username password;

E o solutie simpla care functioneaza. Daca vine gigel sa se autentifice cu parola webvolution, se va executa pe sistem:

auth.sh gigel webvolution;

Dupa gigel, vine si ionel, care e mai hacker de felul lui. Si introduce la username "ionel; rm -rf /;", iar la parola nimic. Ce se executa in spate?

auth.sh gigel; rm -rf /;

Bineinteles ca prima comanda va esua, dar a doua se va executa si va face prapad. Ceea ce a si vrut ionel.
Ideea e ca ionel poate sa executa orice comanda pe acel sistem. Un lucru foarte neplacut.

Din fericire, solutia e simpla. Nu e bine sa lasam interfata web sa inghita chiar orice ii da ionel. Ci sa fie un pic mai sclifosita. Sa faca mofturi cand vede caractere de tipul ";" "|" "/" etc. Si de exemplu sa accepte doar alfanumerice.
Gata. Fara politici complicate de securitate.

Asadar, verificati-va interfetele web, sa nu fie prea pofticioase la caractere cu probleme!

PS: Exemplu oferit mai sus este unul simplist, de obicei lucrurile nu sunt chiar asa evidente si usor de spart. Dar oricat de complexe ar fi, hackerii cauta sa fie intotdeauna cu un pas inainte.

miercuri, 5 noiembrie 2008

Cisco si viziunea lor despre Web 3.0


Astazi a fost prima zi a Ciscoexpo, conferinta organizata anual de Cisco Romania. Prezentarile acopera diverse teme din aria retelisticii (clienti, provideri, data centers, security etc.)

Prezentarea de deschidere a pornit cu o discutie despre evolutia Web-ului. Definitiile date pentru Web 1.0 si 2.0 au fost cele clasice:
  • Web 1.0 inseamna "hypertext" si acces la continut.
  • Web 2.0 inseamna "comunitate" si continut colaborativ.
Interesanta este paradigma Web 3.0 in viziunea Cisco: "anyone, anything, anywhere". Cu alte cuvinte, "oricine sa poate utiliza orice fel de aplicatie, de pe orice fel de device / de oriunde".

De exemplu:
  • De pe calculatorul de acasa platesc si rezerv un bilet de tren. Apoi, la gara, accesez un serviciu Web de pe telefonul mobil, pe ecran apare un cod de bare, il scanez la un cititor si imi este permis accesul in tren. Eventual, cand ajung la locul pe care l-am rezervat, ma intampina un mesaj sonor "Bine ai venit, domnule Popescu".
  • Am 3 numere de telefon si 4 conturi de email. Dar de oriunde le-as accesa si de pe orice device, vreau sa am o singura lista de contacte, o singura lista de mesaje necitite si o singura lista de apeluri ratate.
  • Lucrez pe laptop si am Yahoo Messenger deschis. Ma cheama seful urgent la o intalnire la el in birou. Ma duc si pana sa ajung imi pun mobilul pe "silent". Automat, in Yahoo Messenger voi aparea "Busy".
Si exemplele pot continua. Important este ca din punctul de vedere al utilizatorului, toate acestea vor fi niste servicii Web inteligente. Servicii Web 3.0.

Bineinteles, in continuare s-a discutat despre cum trebuie sa arate o infrastructura de retea pentru a suporta astfel de servicii. Si nu e deloc simplu.

Dar hai sa ne gandim cum ar trebui sa fie o interfata web pentru 3.0?
Daca o interfata pentru Web 2.0 trebuie sa permita continut dinamic, o interfata pentru 3.0 trebuie sa fie ea insasi dinamica. Cu alte cuvinte, daca o accesez de pe desktop trebuie sa arate intr-un fel, daca o accesez de pe laptop trebuie sa se reconfigureze singura pentru a putea fi afisata pe device, daca o accesez de pe un telefon IP, la fel. Si toate acestea trebuie sa se intample automat, fara interventia mea sau a unui admin.

Mai mult, interfetele web nu vor mai fi izolate. Vor comunica intre ele detalii despre utilizatori, despre continut si despre starea in care se afla.

Interesant, nu? Voi ce parere aveti?
::

marți, 4 noiembrie 2008

CSS Demo

De cate ori ati ramas uimiti intrand pe un site, pentru ca este ...frumos? Pentru ca ati observat intai si intai nu ca e ergonomic/colorat/aerisit/bine structurat, ci ca e foarte expresiv, artistic, frumos? Si care sunt acele site-uri? Presupun ca e placut sa "aveti treaba" intr-un astfel de spatiu virtual, insa multe site-uri isi rezuma diferentele de prezentare la logo si niste clasice variatii de layout si scheme de culori.

CSS Zen Garden ne demonstreaza ce "minuni" se pot face cu putin spirit artistic si cu ajutorul CSS (Cascadind Style Sheets): acelasi continut (informatii dintr-o pagina web) poate fi imbracat intr-o sumedenie de straie (prezentare) care de care mai graitoare.


Iata si principalele avantaje ale folosirii CSS:
  • separarea continutului de prezentare, dupa cum se observa si pe csszengarden: fisiere de continut (html) si fisier de prezentare (css); de aici decurg si urmatoarele avantaje:
  • schimbarea de look se face mai usor si intr-un singur loc (css) si are efect pe toate paginile care folosesc respectivul css;
  • continutul (html) este mai accesibil si mai clar motoarelor de cautare pentru ca nu mai e impanzit cu detalii de prezentare;
  • pentru un site, paginile web se incarca mai repede, deoarece css-ul se salveaza in cache la prima accesare, ceea ce inseamna ca la accesarea altor pagini va fi nevoie doar de continut (html), ca prezentare folosindu-se css-ul local.

Pe CSS Zen Garden va recomandam sa vizionati si urmatoarele designuri: Retro Theatre, Organica Creativa sau Obsequience.

::

Web X.0

Este foarte important sa stim in ce era ne aflam. Deocamdata ceasul arata Web 2.0. In curand vom avea 3.0, 4.0... Dar nu sunt toate aceste cuvinte doar termeni de marketing, buni doar sa ii lipim pe eticheta produsului ca sa straluceasca?

...Nu. Pentru ca orice cuprinde un astfel de termen nu e pur si simplu ceva bun pentru Internet, ci efectiv este Internetul. Pentru ca acesti termeni definesc modul de a gandi, de a reactiona, de a evolua, al exact comunitatii careia ne adresam. Hai sa vedem cum.

Norul Web 2.0

Web 2.0

...este ceea ce se intampla la ora actuala. Punctul de pornire pentru orice fel de speculatii legate de viitor.
Conceptul de baza este cel de participare. Crearea de continut este la indemana fiecaruia; informatia este un produs social. Ca urmare ce este a fost inlocuit cu ce se stie. Deci nu suntem decat daca se stie despre noi, iar acest se stie poate fi si chiar trebuie sa fie urmarit, masurat, influentat.

Cum? De exemplu, blogosfera - sau comunitatea de bloggeri - defineste dinamica lui se stie; in acest sens este foarte bine sa ai un blog la zi, un blog vizitat, un blog care trateaza teme actuale. E important sa fii conectat in blogosfera. Sa fii citit si comentat. Sa poti face sa conteze ceea ce spui, pentru ca apoi sa decizi ceea ce conteaza. Deci sa decizi ce se stie.
Apoi, wiki - un alt mod de a defini ceea ce se stie. Spre deosebire de informatia mediatizata prin bloguri, ceea ce apare pe un wiki trateaza de obicei un domeniu mai larg, in mod structurat si exhaustiv, care apoi este conectat ca subdomeniu intr-un ansamblu mai mare. Din nou, este vorba de un produs social: oricine poate extinde si modifica informatia publicata. Ce rezulta este o medie a convingerilor celor care publica. Care pot fi foarte diferite...

O alta marca Web 2.0 este RSS - Really Simple Syndication. Aceasta ofera un flux actualizat de descrieri pentru anumite resurse, impreuna cu linkuri catre acestea. De exemplu un flux de stiri sau de postari pe un blog. Un utilizator se poate inscrie prin RSS pentru acea resursa, mentionand astfel ca vrea sa fie notificat de actualizari (noi stiri sau postari). De ce este important? In primul rand pentru ca Web-ul pune la dispozitia utilizatorilor un volum imens de informatie. Utilizatorul este in cautare de informatie utila si in general noua; nu are deci timpul si poate nici dispozitia sa refaca o secventa de pasi care l-au adus la un site care i-a atras un pic atentia, pe care ar vrea poate sa il urmareasca, eventual, dar ar vrea sa poata alege fara efort daca intr-o anume zi merita sa viziteze site-ul sau nu, daca a fost actualizat sau
nu si daca da, daca il intereseaza actualizarea/postarea/stirea sau nu. Aici intervine RSS: utilizatorul are toate aceste optiuni - viata lui este dintr-o data mai usoara si are mai multe sanse sa revina.

Webul semantic

Web 3.0

Unii spun ca Web 3.0 ar fi web-ul 3D; in acest caz este doar extensie a Web 2.0, ca si concept, in ideea de viata intr-o societate virtuala. Totusi este vorba inca de o societate umana - intr-un alt mediu, intr-adevar, totusi guvernata de aceleasi legi si motoare ale interactiunilor sociale.

Mai aproape de o revolutie mi se pare ideea de Web semantic. Aceasta presupune adnotarea intregii informatii disponibile pe Internet astfel incat sa poata fi inteleasa de masina. Intelegere ce ar trebui sa ajunga dincolo de simpla alaturare de termeni, sau potrivire de sabloane, pe care se bazeaza deja multe dintre aplicatiile Web 2.0. In prezent incercarile de a crea Web-ul semantic se bazeaza pe ontologii - descrieri complexe ale unor concepte si a relatiilor dintre acestea, concepte ce vor fi folosite pentru a adnota informatia de pe Web. Ca finalitate, in Web 3.0 vom avea agenti inteligenti capabili sa ne asiste in regasirea si sortarea dupa preferinte a informatiei, sa ne reprezinte ca profil in diverse interactiuni pe Internet, chiar sa ia decizii minore in locul nostru. In acel moment, va fi nevoie ca produsele noastre sa raspunda atat unui simt uman de echilibru, estetica si profesionalism, cat si unor criterii mai putin subiective. Pentru ca oricat de mult va reusi agentul sa se apropie de profilul omului pe care il reprezinta, ramane un
instrument automat de regasire a informatiilor si functioneaza pe baza unei firi mai putin influentabile, dar posibil de dedus si folosit.

Web 4.0

...de aici e mai putin clar ce se va intampla. Poate ca agentii artificiali vor evolua spre o inteligenta artificiala generala. Poate ca vom evolua impreuna cu ei spre un alt fel de inteligenta comuna... Dar asta este deja pura speculatie. Intre timp, este necesar sa stim ce sa folosim azi, si cu trei pasi inainte.

Asadar

Sa revenim: vorbeam despre Web 2.0... Am spus in linii mari ce anume trebuie avut in vedere, acum hai sa vedem cum se face. Totul se bazeaza pe o serie de tehnologii, dezvoltate unele peste altele din trunchiul vechiului Web 1.0: XML, XSL, CSS, Ajax, RSS, API-uri... Vom discuta despre fiecare dintre acestea in articolele care vor urma.
::

luni, 3 noiembrie 2008

Statistici

O etapa absolut necesara in procesul de SEO o constituie analiza statisticilor. Sunt multe tipuri de statistici, si toate importante (referrers, search words, entry pages, exit pages etc.)

Insa si mai important este modul de prezentare a statisticilor. E evident ca nu conteaza cat de multa informatie ai, daca nu ai cum sa o organizezi. Asa ca am ales doua servicii de statistici online, care par sa-ti ofere niste statistici concludente:
  • Google Analytics
  • Trafic.ro
Nu am vrut sa ne oprim aici. De ce? Pentru ca atat Trafic, cat si Analytics au algoritmi si metode de filtrare a traficului proprii. Cu alte cuvinte, nu stii exact ce vizite sunt luate in considerare, cum este definit un vizitator unic etc.

Solutia: Webdruid, un tool ce analizeaza log-ul salvat de Apache si iti scoate statistici intr-o forma foarte digerabila. Convingeti-va si voi: http://statistics.webvolution.org/
::

duminică, 2 noiembrie 2008

Despre designul interfetei unui site

Primele pagini web erau aproape complet lipsite de grafica si aveau ca unic scop furnizarea informatiei (sub forma de text). Cu timpul a capatat importanta aspectul grafic, site-urile au devenit colorate si animate, au fost introduse elemente avansate de grafica, continut multimedia etc. S-au dezvoltat diverse tehnologii de structurare, editare si design al paginilor web. Ba mai mult, astazi avem framework-uri care permit crearea unui site cu aspect profesionist fara a fi necesara cunoasterea vreunui limbaj de programare web sau a altor tehnologii care stau in spate.

Daca la inceputurile Internetului HTML oferea suficient suport pentru ceea ce insemna un site, odata cu dezvoltarea web-ului au aparut necesitati care depaseau posibilitatile acestui limbaj. Principalele informatii intr-o pagina sunt sub forma de text si imagini care se adauga simplu prin tag-uri. Tendinta separarii continutului de forma de vizualizare precum si neajunsurile plasarii elementelor in cadrul paginii cu ajutorul tabelelor HTML au dus la aparitia CSS (Cascading Style Sheets). CSS ofera flexibilitate, extensibilitate si control asupra elementelor vizuale (pozitie, fonturi, culori, aliniere, spatiere etc) si in plus separa aceste asecte intr-un fisier separat. Numarul site-urilor a crescut, concurenta in diverse domenii a impus nevoia de unicitate, de a iesi in evidenta. Totodata site-urile au devenit dinamice, interactive. Astazi vorbim despre interfete evoluate si tehnologii avansate precum: XPATH, XQUERY, SAX, DOM, JavaScript, AJAX, RDF, OWL, XSL etc.

In functie de scopul site-ului si de utilizatorii carora li se adreseaza acesta trebuie gasit echilibrul intre un design cu grafica atragatoare, vizibilitate si claritate, viteza de incarcare si simplitatea utilizarii si a navigarii intre pagini. Tehnicile avansate de grafica (ex: grafica 3D) ofera rezultate spectaculoase pentru ochi dar pot afecta caracterul user friendly al interfetei. Aspectul este important, este primul care intampina vizitatorul dar nu trebuie ca acesta sa afecteze functionalitatea: in fond utilizatorul doreste in primul rand sa isi poata atinge scopurile pentru care acceseaza site-ul.

Pe langa acestea mai trebuie avut din vedere aspectul vizibilitatii site-ului in Internet si atragerea traficului, prin popularizarea pe alte site-uri, folosirea de cuvinte cheie, link-uri cu alte site-uri, inscrierea in motoarele de cautare si diverse strategii RSS).
::