miercuri, 12 noiembrie 2008

De unde vine sunetul de dial up?

De ce dura atat de mult conectarea prin dial up si de unde veneau sunetele acelea ciudate?

marți, 11 noiembrie 2008

Google Youtube Data API

Este vorba un API dezvoltat de Google pentru a usura integrarea functiilor YouTube intr-o aplicatie. Printre functionalitati:
  • informatii despre profilul unui utilizator;
  • relatii gen Friends sau Subscriptions;
  • flux de videoclipuri, inclusiv Favorites, legaturi între videoclipuri, comentarii ale videoclipurilor;
  • posibilitatea de a interactiona: transmitere de mesaje, postare de comentarii, publicare de noi videoclipuri.
API-ul inca nu suporta obtinerea fluxului Subscribers pentru un utilizator (se poate obtine numai numarul acestora din statistici). Aceasta optiune este inca pe lista de asteptare.

Biblioteci exista pentru Java, .NET, PHP si Python. Pentru Java este necesara mai intai instalarea bibliotecilor servlet.jar si mail.jar. Daca se foloseste o versiune de Java SE anterioara versiunii 6, este nevoie si de JavaBeans Activation Framework.

In principiu, datele sunt stocate sub forma arborescenta.

Primul lucru care trebuie creat este un serviciu YouTube, cu numele aplicatiei; apoi, informatii despre relatii de orice fel si videoclipuri se obtin prin cereri la un URL de genul "http://gdata.youtube.com/feeds/api/users/nume_utilizator/tip_de_relatie". De exemplu, pentru prietenii utilizatorului user URL-ul este "http://gdata.youtube.com/feeds/api/users/user/friends".

Ce se primeste la o astfel de cerere este un obiect de tip Feed, care poate fi iterat obtinand obiecte de tip Entry. Acestea contin informatia dorita si pot fi accesate sau modificate prin metode de tip getter si setter. Majoritatea operatiilor de modificare a datelor, ca si unele operatii de acces, de exemplu citirea mesajelor unui utilizator, necesita autentificarea utilizatorilor.

Mai multe informatii mai mult sau mai putin tehnice se pot afla si de pe blogul lor.
::

duminică, 9 noiembrie 2008

Poveste cu pesti

Cautand pe Google poze cu pesti (pt un proiect secret :p), dau peste urmatoarea:



Sursa: SEO Speedwagon
::

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.

::