Back from one leg land

Vacanţa de iarnă e de obicei pentru mine un moment deosebit de destindere, de reîntâlnire cu prieteni, de mers la munte, la ski … Anul ăsta nu s-a apropiat de nimic de genul ăsta. Aveam o problemă mai veche la piciorul drept (pentru prieteni, „Creierul”) şi îmi propusesem să o repar în 2008 (asta e o problema pe care o am de minim 8 ani), ceea ce s-a şi întâmplat. Faptul că am fost şchiop două săptămâni după operaţie efectiv m-o scos din uz, pentru că parte din procesul de gândire la mine înseamnă plimbatu din stânga-n dreapta cu pixu-n gură.

Singurul lucru care l-am făcut cu adevărat vacanţa asta a fost să dorm. Mult. Prea mult. Atât de mult încât creierul meu a devenit o murătură.

Mi-a fost foarte greu să îmi revin la timp să trimit tema 3 la LPD, şi nici după săptămâna asta de presesiune nu mă simt complet în formă. Dar am făcut şi am văzut lucruri interesante, şi pentru mine asta e întotdeauna un lucru care mă entuziasmează. O să scriu în posturi viitoare despre aventurile programatice cu webservices, cu freakin’ java, cu o interfaţă pentru o aplicaţie scrisă cu php şi js în quick & dirty mode, cu un motor de căutare de ştiri scris de pe la un 0 în java, cu un pic de yPHP, cu noi experiente prin C# …

Colinde pentru părinţi

Vă ziceam de curând că exploratorii noştri vor cânta la biserică colinde pentru părinţi. Azi la 18 s-a întâmplat chestia asta, şi din ce am văzut, am auzit şi mi s-a povestit, a ieşit nemaipomenit. Au fost acolo şi explo, şi temerari şi lideri şi seniori. Evenimentul a avut loc la biserica din centru (a domnului preot Vanca). Vă las în compania cercetaşilor de la Alba Iulia :) :

meeting JavaScript

Tema 3 la Interfeţe Evoluate ne-a cerut să scriem, folosind Javascript pentru scripting, un webbased thingie care sa faca highlight pe cuvinte / fraze dintr-o pagina web, încărcată dinamic (eventual folosind Ajax). Ceva foarte simplu, menit să ne familiarizeze, presupun, cu Javascript.

Eu fug de Javascript încă de la începuturile experimentărilor mele web-astice, pentru ca ce am văzut atunci arăta foarte foarte aiurea pentru mine. E drept, cred, ce se spune despre Javascript, că e un limbaj Ok de scripting, dar care e folosit în cel mai hidos mod. Acum ceva vreme era folosit pentru nenorociri de-alea de animaţii de prost gust, ceasuri ascii care fug după mouse şi alte nenorociri care nu au ce căuta într-o intefaţă bună.

Acum vedem însă tot mai puţine utilizări negative (cel puţin din punct de vedere vizual) a Javascript, şi tot mai multe exemple pozitive. Nu ştiu exact istoria, şi sunt sigur că o călătorie scurtă pe wikipedia vă poată lămuri mai bine ca mine, dar eu cred că Javascript a început să devină widely accepted ca un limbaj de scripting serios odată cu trecerea la Web2.0, care, printre alte calităţi, se defineşte prin interfeţe web mult mai responsive. Dezvoltarea Javascript-ului ca limbaj a permis Web2.0 să existe, şi, la fel, nevoia de creştere a calităţii interfeţelor a dus la dezvoltarea limbajului. Cele mai populare trăznăi ce le folosim azi, Gmail, Y!Mail, Noul WordPress, dar şi vechiul, aproape tot ce e Google-ish, toate folosesc la greu Javascript.

De ce avem aşa super nevoie de Javascript? Well, înainte de web2.0 şi de toată nebunia cu superinterfeţele web, problema comunicării cât mai responsive cu clientul se putea rezolva în două moduri. Prima strategie era cea locală (client-side scripting): aveai un script care încărca totul în pagina curentă, în javascript, şi atunci puteai interacţiona cu utilizatorul (să validezi date, să îi dai nişte opţiuni diferite în funcţie de alegerile pe car ele face …) într-o manieră limitată la informaţiile care existau la încărcarea paginii. Şi cum să trimiţi toate posibilităţile înseamnă cantitate mare de date şi cantitate mare de date e un big no-no pentru interfeţe web, interacţiunea era limitată.

A doua strategie (server-side scripting) implica de cele mai multe ori reîncărcarea paginii şi procesarea opţiunilor cu server-ul. Necazul era că şi pe legăturile rapide (gen intraneturi) se observa reîncărcarea paginii, iar pe legăturile lente (sau no, normale) asta devenea o problemă serioasă.

Toate problemele astea au primit o soluţie unică, elegantă şi foarte foarte folosită azi de toate aplicaţiile web ce le folosim frecvent: AJAX. Asynchronous Javascript And XML. Deşi tehnologiile care fac AJAX posibil există de prin 95, W3C a propus un draft pentru chestia asta doar în 2006. Ideea e relativ simplă, AJAX se bazează pe un obiect Javascript  (da, JavaScript e şi OO :P) care face o cerere HTTP către un server şi înregistrează un handler (o funcţie) care se apelează în momentul când cererea întoarce ceva sau dă un timeout. Răspunsul cererii se presupune a fi un XML, deşi din ce am încercat eu se poate folosi şi HTML ca răspuns, dar nu sunt sigur de alte tipuri de date.

Avantajul cel mare e că toată bucătăria se întâmplă în culise, utilizatorul are o experienţă fluentă, care seamănă cu experienţele cu interfeţe ne-web. Există şi limitări. Deşi, teoretic, se pot cere fişiere oricât de mari, având în vedere că totul se întâmplă peste un mediu care are performanţe variabile indiferent de locaţie, se preferă ca răspunsurile să fie minime. O limitare de securitate care am observat-o (nu ştiu exact când a fost introdusă) este că cererile XMLttpRequest (obiectul de care vă ziceam) nu pot fi făcute decât către serverul de la care a fost încărcată pagina care execută scriptul.

Desigur, problema asta se poate rezolva urgent cu un urlfopen pe partea se server, şi asta e mirific la AJAX, posibilitatea de a trece peste limitările iniţiale impuse de modelul Web prin pasarea lor către partea celalată (client <-> server).

Anyway, pentru cine este interesat, tema mea 3 la IE este aici. Si, ca sa o testati, puteti incerca sa folositi pagina asta şi asta :)

Am devenit mult mai interesat după tema asta să investighez mai îndeaproape JavaScript şi, mai ales AJAX pentru yPHP (pentru început, un modul de formuri dinamice şi de verificare a formurilor pentru început :P). Vorbind de tehnologii, am înţeles că jQuery (ăla de aici, nu ăla care ţine de baze de date şi Java) e util. Are cineva vreo experienţă cu trăznaia asta? I will give it a try, and post here on the results :)

Lumina Păcii de la Bethleem

Lumina păcii de la Bethleem este un proiect care pentru mine exprimă cum nu se poate mai bine latura spirituală a cercetăşiei. Ideea este că în fiecare an în grota din Bethleem unde se presupune că s-ar fi născut Iisus se aprinde o lumânare, de unde se ia şi se poartă lumina în toată lumea.

Cercetaşii din România participă de câţiva ani buni la treaba asta (lumina se ia la Viena, în cadrul unei ceremonii speciale, citiţi aici detaliile), dar în ultimii ani am văzut tot mai multe centre implicate în treaba asta. Vreau să-i felicit pe Adi Secal şi pe ceilalţi oameni care au susţinut şi susţin astfel de iniţiative. Eu … am propriile idei (evident :P) când vine vorba de religie în cercetăşie dar tipul ăsta de manifestare este unul pe care îl consider foarte foarte bine venit.

La Alba Iulia, exploratorii au preluat lumina de la delegaţia noastră de la Viena acum câteva zile, şi de atunci au păzit-o fiecare la ei acasă, pe rând, în fiecare zi, iar mâine o vor duce în liceele lor, unde şi alţi oameni vor putea lua lumină.

Afiş lumina păcii
Afiş lumina păcii

Tot în spirit de Crăciun o să încercăm să organizăm un concert de colinde (aici Cătă e cu ideea) la biserica din centru din Alba Iulia, sau poate chiar la Catedrală, dacă suntem suficient de meseriaşi la cântat. Seniorii pleacă cu Cătă în weekend la Viena, la o treabă cu cadouri (n-am chiar prins eu şpilu, weekendu cadourilor, spătămâna cadourilor, festivalul cadourilor, ceva de genul ăsta :) ).

Eu încă nu am reuşit să intru in the Christmas spirit, deşi Gia şi Micvs or împodobit deja un brad la noi în cameră şi stă aici lângă mine. Poate dacă ninge mă las şi eu convins :)