luni, 12 ianuarie 2009

You may be suffering from a rare case of XSSitis

Pentru ca mi-a luat ceva pana sa gasesc un API decent de JS cand am lucrat la tema 3 si pentru ca wikipedia stie link-uri bune si pentru ca articolul de pe wikipedia are o sectiune destul de mare despre gaurile de securitate din JS si pentru ca m-am trezit cu vreo 12 tab-uri deschise la un moment dat, am descoperit o foarte interesanta punere in practica a cunostintelor de JS (in afara de tema 3). E vorba de un mic exploit scris in JS de un anume Samy Kamkar, care dupa ce a platit ceva daune si a facut ceva munca in folosul comunitatii (pentru crima de a fi un virtual "free huggs giver" type of thingy, person, whatever... si pentru faptul ca a provocat un denial of service pe situl MySpace) , a postat si o explicatie a codului care a infestat cateva mii de useri de MySpace cu ...Samy.

Samy s-a gandit sa isi faca cativa prieteni cu forta (god damn hippy), si a scris un mic script prin care se adauga la lista de heroes a user-ilor de MySpace. Iata si reteta, in 11 pasi direct de la sursa http://namb.la/popular/tech.html .

greyt idea

Desi inca sunt tanar, imi urmaresc cu atentie semenii si ma incanta sa vad entuziasmul celor mai mici ca mine. Stiu ca si eu eram asa..
Pe masura ce trece timpul si ma documentez mai mult in legatura cu lumea care ma inconjoara imi pierd entuziasmul. Lucrurile nu mai sunt frumoase.. naturale.. simple.
Eu am definit eleganta (din experienta proprie) ca fiind eficienta obtinuta prin simplitate. In ziua de azi se face compromis la cel putin una din cele doua.
Ma ingrijoreaza faptul ca mai ales in domeniu IT incercam sa facem lucrurile cat mai simple pentru ceilalti.. evident nu mai avem timp sa invatam sa folosim si aplicatii.. avem destule pe cap si asa.. trebuie sa fim buni la ceea ce facem noi zi de zi.. trebuie sa fim automati.
Ne straduim asa de mult sa gandim toate cazurile pentru ca utilizatorii sa nu mai gandeasca.. De fapt noi suntem destepti pentru ca majoritatea sa se prosteasca. Si apoi ne punem intrebari de ce e lumea asa..
Facem compromisuri de performanta pentru a obtine simplitatea.
Pe cealalta parte, pentru a obtine o performanta cat mai mare fortam lucrurile.. incercam sa depasim pana si limitele fizice. Complicam totul. Pornim de la adevaruri pe care le acceptam de bune, pentru ca nu ar avea sens sa reinventam roata.. nu?
Dar, daca nu o reinventam, si o luam ca atare, dar nu intelegem exact cum functioneaza, construind mereu pe ea, s-ar putea sa cedeze, fara ca noi sa ne dam seama. Aparitia unor probleme nu este foarte usor de depistat daca nu esti familiar cu temelia pe care construiesti. S-ar putea sa nici nu le observam.
Evident.. puteam sa va scriu despre niste tehnologii noi.. dar sunt sigur ca puteti sa cautati si singuri. Tehnologiile tot or sa apara.

duminică, 23 noiembrie 2008

Utilizarile utilitarului CTTE

This page intentionally left blank.

CTTE este utilitarul pe care trebuie sa il folosesc pentru tema la IE. Atat. Si asta nu vine dupa nervi tociti ca se misca norisorii in pagina. Nu am cearcane si nu tip. E un mic efort de a intelege la ce e bun CTTE in lumea reala (adica lumea aia cu oameni care fac ceva ce le produce o oarecare placere sau ceva care le aduce niste bani cu care sa faca ceva care le face o oarecare placere sau bani cu care sa faca bani cu care sa ....).

Foloseste cineva asa ceva? Am inteles ca e un model interesant, dar inainte sa te apuci sa scrii cod, cand iti dai seama ca o sa iti ia ceva timp sa termini de scris acel cod, te gandesti ca poate ar trebui sa multumesca si pe altcineva produsul final. E un soft ok pentru un produs cu o singura versiune. Ai vazut ca merge, nu a lesinat nimeni de nerabdare sa vada ce face, te-au mai aplaudat unii pe ici pe colo, tu te-ai bucurat si atat. Cand repari buguri si faci o a ciunshpea versiune deja inseamna ca ai o menire in viata, cineva depinde de eforturile tale, ai o armata de oameni care asteapta ca tu sa faci masinaria si mai buna. Altfel de ce te-ai mai chinui? Si totusi numarul de download-uri la CTTE se inzeceste cand vine tema la IE.

Nu am nimic de zis legat de implementare. E un soft mare sris si mentinut de un singur om. Crapa in multe locuri si e de inteles. Am mai vazut soft-uri dezvoltate in mod asemanator, din multa pasiune, dar avand in spate si convingerea ca faci ceva util - vezi ANTLR. Pentru o comparatie cat se poate de elocventa intre cele 2 soft-uri: google ANTLR vs. google CTTE ...q.e.d

De fapt tot postul asta a plecat de la faptul ca pana in momentul in care am terminat de citit tutorialul de pe curs.cs nu intelesesem ce face CTTE. De fapt nu intelesesem de ce s-a chinuit cineva sa il faca.

Utilitarul CTTE

"The ConcurTaskTree Environment" este utilitarul cu care trebuie realizata tema 2 la IE. In el se implementeaza regulile CTT (Concurrent Task Tree), creandu-se un arbore de decizii si actiuni pe care un utilizator al unei interfete (in cazul de fata un blog) trebuie sa le indeplineasca pentru a atinge diferite scopuri (aici trebuie modelata chiar postarea acestui articol pe blog). Exista 4 tipuri de taskuri posibile (USER TASK, APPLICATION TASK, INTERACTION TASK si ABSTRACT TASK) care sunt relationate temporat prin alegere, simultaneitate si multe altele... pentru mai multe informatii cautati pe site dezvoltatorilor... aici

sâmbătă, 22 noiembrie 2008

innerHTML sau cum sa schimbam continutul paginii mai rapid din JavaScript

Motivat de viteza cu care ne copleseste serverul nostru xhost, am incercat obtinerea unei imbunatatiri a experientei utilizatorilor pe situl nostru transferand sarcina de incarcare a paginilor vizitate catre client-side. Asadar, in acest articol voi vorbi putin despre JavaScript.

In momentul de fata, de fiecare data cand incerci schimbarea paginii pe situl nostru de interfete web, i se cere serverului web noua pagina. Ideea ar fi sa se incarce in browser de la bun inceput toate paginile si sa se schimbe doar o portiune din pagina afisata in concordanta cu optiunea utilizatorului.

Pentru a face acest lucru se poate folosi propietatea innerHTML a obiectelor din DOM. De notat ca aceasta nu este standardizata si prin urmare suportul sau in diferitele browsere este incert. Pentru o varianta standardizata, incercati innerDOM .

Implementarea este aparent simpla: se face in pagina un div, sa ii spunem "continut". La apasarea butonului de incarcare a unei pagini, se apeleaza o functie JavaScript care seteaza proprietatea innerHTML a divului "continut" la un string dat de noi... si asta este tot.

Problema insa intervine in momentul in care stringul nostru contine mai multe linii, ghilimele si alte elemente speciale (cum este si cazul unui string care codifica o pagina intreaga). Cautand pe net, am dat peste o pagina care contine o comparatie intre innerHTML si innerDOM. Interesant este ca si exemplul cu innerHTML reuseste sa imi actualizeze continutul unui div la un formular intreg. Din cate imi dau seama pana acum, diferenta intre ce am incercat eu si acest exemplu este ca acesta din urma ia codul HTML dintr-un textarea.value, care este de tip DOMString.

Voi incerca sa studiez problema, iar daca voi gasi o solutionare voi reveni cu un articol. Daca aveti o solutionare, please comment :)

sâmbătă, 8 noiembrie 2008

Barbatii sunt o specie pe cale de disparitie!

Citesc plin de entuziasm un articol in care sunt prezentate cu lux de amanunte faptul ca barbatii sunt o specie pe cale de disparitie si cum tot mai multi barbati se nasc cu defecte genetice si cum disproportia dintre populatia feminina si cea masculina este din ce in ce mai pregnanta.

Articolul in sine este plin de bullshit... dar ideile pe care le lanseaza in mintea oricarui barbat satul de toanele femeilor sunt naucitoare. Daca tot suntem o specie pe cale de disparitie de ce nu suntem protejati, lipsiti de stres, pastrati doar pentru rostul pe care ni l-a harazit natura: "procreerea". Barbatul nu ar trebui sa munceasca, ci ar trebui sa stea acasa si sa se pastreze pentru partenera(ele) sa(le) pentru cand aceasta(ea) vin(e) acasa. Toate parantezele de dinainte sunt din cauza celei de a doua idei care m-a "cucerit". O resursa pe cale de disparitie se reutilizeaza, se recicleaza, iar ca o singura femeie sa pastreze pentru sine un barbat "functional" este imoral si neortodox. Este ca si cum ai rupe o floare-de-colt.

NU... NU si iar NU... barbatii trebuiesc folositi cu cap... fiecare dintre noi trebuie ingrijit cu finetze si impartit cu alte femei... fiecare dintre ei sa aiba propriul harem. De asemenea, stresarea mascului sa fie o crima capitala...

Nu sunt misogin... doar tin la viitorul omenirii asa cum o stim noi. Si ca aceasta sa aiba o sansa, aceaste masuri ar trebui aplicate chiar de maine...

joi, 6 noiembrie 2008

Viitorul este mai cloudy decat oricand

Azi am ascultat bbc si am prins un subiect interesant..
m-am gandit sa scriu cate ceva despre el..
Chiar daca nu pare, "cloud computing" are cat se poate de multa legatura cu interfetele evoluate, mai ales in viitorul apropiat.. (10-20 ani).. se refera la punerea la dispozitia utilizatorilor a unor servicii de prelucrare date, sub orice forma ar fi aceasta.. ganditi-va cum ar fi daca nu v-ar mai trebui acasa un calculator performant pentru a va rula aplicatiile.. cum ar fi daca acestea ar fi rulate pe servere performante care ar avea stocate toate aplicatiile si datele voastre.. tot ce va trebuie este un terminal care sa va ofere interfata foarte friendly (si se pune mare accent pe asta) de conectare.
Tendinta asta este deja luata in serios de firme cu renume cum ar fi google - care vor sa ia painea microsoft, incercand sa aduca solutii cat mai complete pentru prelucrarea documentelor (se pare ca suita office a avut un rol crucial in dezvoltatea aplicatiilor marelui gigant) pentru a convinge firmele sa adere la o astfel de solutie, care de altfel este free :)
microsoft in schimb depune efort pentru crearea versiunilor sistemelor de operare Windows distribuite.
Un alt gigant care s-a orientat pe dezvoltarea de aplicatii online este Adobe - am asistat la o prezentare a lor chiar azi..
Presupun ca mai sunt multi altii care vad o imagine a viitorului nostru in care puterea de calcul va fi tratata ca un serviciu de utilitati casnice - ca apa de la chiuveta sau gazul.. vor exista niste furnizori de "computing" la care ne vom abona si ne vom bucura de serviciile oferite..
Normal.. se pune problema securitatii datelor, si modului in care acestea sunt folosite (profile utilizatori), disponibilitatea lor. Problema este in dezbatere.
Un alt aspect interesant este faptul ca pentru a tine astfel de clustere de servere, cel mai mare cost il presupune.. consumul de energie electrica.. de aceea aceste "computing sites" sunt construite langa surse de energie regenerabile sau foarte ieftine (am inteles ca google au niste servere prin tari unde energia electrica are un pret scazut).
Informatiile postate nu sunt de pe net.. daca vreti mai multe detalii.. cautati-le
ni se ofera deja un astfel de serviciu ;)