joi, 27 noiembrie 2008

Websiteuri cu asistenta vocala

Acum vreo doua luni a fost lansat primul site cu asistenta vocala ce apartine unei institutii publice.
Este vorba despre siteul ministerului Comunicatiilor si Tehnologiei Informatiei (MCTI). Situl a ramas in esenta nemodificat doar ca ofera o noua optiune ce reda audio, prin sintetizare vocala, continutul siteului.
In ciuda costurilor ridicate, implementarea costand 40.000 ron, aceasta initiativa mi se pare laudabila oferind accesul la informatie si unei categorii defavorizate destul de importante, existant circa 240.000 de persoane cu deficiente de vedere in Romania.
Mai mult se pare ca MCTI a realizat si un ghid, numit "Ghidul privind realizarea paginilor web pentru autorităţile şi instituţiile administraţiei publice centrale şi locale din România" care prevede si implementarea de optiuni ce vin in ajutorul persoanelor cu dizabilitati.

Pentru a vedea cum functioneaza concret noua optiune vizitati http://www.mcti.ro/ si accesati optiunea Accesibil

miercuri, 26 noiembrie 2008

Remarci asupra impactului vizual al unei pagini

Ca orice student in anul 4 la automatica am destula experienta de google-ing. De-a lungul timpul a trebuit sa caut cele mai neimportante informatii pe net. In felu asta am intrat pe cele mai obscure site-uri. Am putut sa vad multe site-uri care pur si simplu sunt deranjante vederii. Am facut o lista de cateva lucruri care nu ar trebui sa se regaseasca in designul unei interfete web.

Care este primul lucru care ne izbeste atunci cand deschidem o pagina web? Culoarea paginii :) E un aspect care inconstient ne face sa avem o anumita senzatie fata de respectiva interfata. Culorile sunt mult mai importante decat am crede. Ele au anumite implicatii psihologice.
De exemplu o pagina pe un fundal albastru deschis, evoca calm,liniste si nu te face sa cauti disperat combinatia alt+tab pentru a schimba pagina.
Pe de alta parte o interfata cu un rosu aprins pe fundal evoca agresivitate si iti "invadeaza" linistea din fata monitorului. Un alt lucru pe care il regasesc deranjant la anumite pagini este o "salata" de culori. Aceasta diversitate iti atrage atentia dintr-o parte in alta a
paginii, ingreunand urmarirea paginii.

Dupa ce trecem de prima impresie data de culoarea paginii, incepem sa cautam informatia prin textul expus pe site. Astfel, ajungem la alt capitol important pentru o pagina, textul. Pentu mine un lucru important este dimensiunea textului. Urasc site-urile care ma fac sa imi pun
ochelarii. La fel de mult urasc site-urile care nu aleg bine culoarea textului pentru fundalul paginii. O combinatie "perfecta" este un text rosu pe un fundal verde, sau orice combinatie de doua culori deschise sau inchise. O sugestie ar fi existenta unei modalitati de highlight a unor
cuvinte cheie pentru a nu forta utilizatorul sa apese ctrl+f. De asemenea, sugerez ca in design-ul unei interfete sa se foloseasca capital letters doar pentru titluri si nu pentru text normal.

Cam astea ar fi lucrurile care ma deranjeaza cel mai tare la paginile web. Am exclus din discutie flash-urile(gasesti un articol mai jos).

Proiectarea unei aplicatii: definirea interactiunii utilizatorului cu aplicatia

Prima intrebare care se pune in proiectarea unei aplicatii este... evident... ce ar trebui sa faca aplicatia.
Inca din aceasta faza incipienta, se traseaza, in linii mari, interactiunea dintre om si aplicatie. Practic se concep informatiile ce trebuie introduse de catre utilizator (fie elemente de autentificare, fie informatii relevante etc) si cum reactioneaza aplicatia la primirea acestor informatii.
In acest stadiu se pot stabili elementele de proiectare ce nu tin neaparat de design ci mai mult de functionalitate. Astfel se pot construi propozitii cum ar fi: Utilizatorul apasa pe butonul de login, introduce username-ul si parola, apasa pe butonul de submit, iar aplicatia ii afiseaza pagina lui personala.
Este clar ca aceste constructii sunt esentiale in proiectarea aplicatiei, acestea ajutand atat pe partea de design (stabilind elementele ce vor trebui sa fie prezente in design) cat si pe partea de implementare (definind elemntele de implementare, stabilind functionarea elementelor, oferind detalii despre interfetele publice ce trebuie sa fie implementate pentru fiecare element etc.).
Solutia de a scrie astfel de propozitii intr-un document si salvarea lor pe disk este una viabila. Totusi pot aparea (mai ales in cazul unor aplicatii mari) o serie de ambiguitati si inadvertente ce vor ingreuna dezvolatarea aplicatiei. Astfel se simte nevoia folosirii unei aplicatii care sa ajute la translatarea acestor propozitii intr-o forma standardizata.
Un astfel de utilitar este CCTE. Aplicatia este implementata in java, deci functioneaza pe orice sistem de operare, este gratuita si poate fi descarcata de pe http://giove.cnuce.cnr.it/ctte.html. Aceasta aplicatie ofera posibilitatea de a defini vizual elementele de interactiune a utilizatorului cu calculatorul precum si raspunsurile calculatorului. Definirea se face sub forma unui arbore ce se detaliaza pe masura ce se avanseaza pe nivel inferioare. De asemenea este obligatorie stabilirea de relatii intre nodurile de pe acelasi nivel cu acelasi parinte (aceste relatii ajuta la implementare ele stabilind ordinea si modul in care utilizatorul poate executa actiunile dorite). De asemenea CCTE ofera si mecanisme de verificare si de testare a diverselor scenarii posibile. Astfel se elimina inca din aceasta faza de proiectare ambiguitatile si inadvertentele ce pot aparea ceea ce reduce riscurile aparitiei de situatii neprevazute

duminică, 23 noiembrie 2008

Viitorul WEB interactiv

In ziua de astazi majoritatea programelor sunt gandite ca aplicatii online (over the internet). In modul acesta se poate garanta un acces rapid al utilizatorilor, dar si autentificarea acestora si, astfel , reducerea pirateriei. Mai mult de atat, un update se va realiza rapid, pe server, cu implicarea exclusiva dezvoltatorului software.
Modalitatea de interactiune cu aceste aplicatii se face, evident, prin sistemul WEB. Astfel, functionalitatea oferita clientului va depinde mult si de tehnologiile puse la dispozitie de comunicarea intre un browser si server.
Traim acum era AJAX, care a eliminat acele deranjante si inutile reincarcari de pagina la fiecare click, insa, in opinia mea este inca prea putin. Comunicarea asincrona poate oferi nenumarate facilitati de programare insa nu realizeaza o conexiune completa cu programul CGI ce ruleaza pe server.
Practic aceasta comunicare server-browser va trebui vazuta ca o colabarare complete intre doua programe complementare ce ruleaza in paralel nu doar o simpla succesiune de tranzactii HTTP.
Schimbul acesta de mesaje ar trebui sa fie mai dinamic, mai flexibil, sa permita de exemplu o cerere sau un raspuns in mai multe etape interemediare. Probabil multe din concluziile trase in studiul sistemelor distribuite vor fi aplicate si pentru indispensabilul WEB.
Desi, in general, comunicare WEB se bazeaza pe simplitatea HTTP este posibil ca acest lucru sa se schimbe in viitor (deja a inceput prin CSS, FLASH, AJAX etc) pentru a lasa loc unor posibilitati sporite de programare web based.

luni, 17 noiembrie 2008

Fara click-uri

Petrecem foarte mult timp in fata calculatorului. Tastam mii de caractere, dam mii de click-uri. Pe mine unul ma deranjeaza aceste click-uri intr-o oarecare masura deoarece folosesc mousepad-ul, iar acesta adauga un grad de discomfort. Cei mai carcotasi veti spune sa imi iau un mouse. Dar nu poti tot timpul folosi un mouse (un exemplu ar fi cand, in lipsa unei mese (a se citi suprafata plana), stai cu laptop-ul pe genunchi). Mi-ar fi mult mai usor daca as putea atat sa navighez atat pe internet, cat si in propriul sistem de operare folosind doar miscari de mouse (mouse gestures).


Mozilla a pus la dispozitia clientilor un add-on ce inregistreaza miscarile de mouse, si indeplineste o anumita sarcina, pe baza acestor miscari. Insa pentru a-l activa trebuie tinut apasat click-dreapta, ceea ce din nou este putin dificil pe un mousepad. Add-on-ul se numeste FireGestures si il gasiti aici.


Don't click.it este un site cu o interfata deosebita. Navigarea in cadrul acestui site se face cu doar un singur click (cel de intrare pe site). Site-ul este construit in intregime in flash si inregistreaza miscarile mouse-ului. Va invit sa experimentati acest site atat cu mouse-ul cat si cu mousepad-ul si sa decideti singuri daca e mai bine fara click-uri.

duminică, 16 noiembrie 2008

Aplicatii Desktop vs Aplicatii Online

Din ce in ce mai la moda, aplicatiile online sunt in plina ascensiune si castiga teren rapid fata de cele desktop. De cand cu noile tehnologii si platforme ce folosesc ajax, site-urile web au un look & feel din ce in ce mai atractiv si se aseamana din ce in mai mult cu aplicatii desktop.
Daca pana acum trebuia sa folosesti flash ca sa faci un site atractiv ceea ce aducea foarte multe dezavantaje (cele mai importante fiind faptul ca zonele in general nu erau selectabile, nu mergea tabul, nu mergea functia de back a browserului decat intre paginile flash care de obicei reprezentau sectiuni ce contineau mai multe pagini) acum pastrezi toate avantajele unei pagini web html cu posibilitatea de a incarca doar anumite zone dintr-un site facandu-l astfel mult mai rapid si in multe privinte asemanator cu o aplicatie desktop.

Evident ca in continuare exista diferente majore intre cele doua tipuri de aplicatii.
In ceea ce priveste aplicatiile desktop, avantajele incep sa nu mai fie intr-atat de importante.
Daca pana acum era important sa poti sa lucrezi offline, existand ca si conexiune de internet doar dial-upul in care orice minut in plus insemna un cost aditional, acuma nu prea mai este cazul de asa ceva, conexiunile fiind permanente.
Dezavantajele aplicatiilor desktop sunt faptul ca trebuie instalate, de cele mai multe ori trebuie sa ai privilegii de administrator pe sistem ca sa le poti instala, si nu sunt accesibile decat pe statia respectiva in general. Sigur exista si varianta de a te conecta remote (la distanta) dar asta presupune ca statia sa fie deschisa deci apar alte inconveniente.
Ceea ce ramane specific aplicatiilor desktop este accesul la resursele calculatorului. O aplicatie desktop se poate folosi de toate librariile sistemului, la care o aplicatie web, din motive de securitate, nu are acces.

In concluzie este clar ca aplicatiie web castiga teren, ele oferind mult mai multa flexibilitate si o accesibilitate sporita, dar in continuare cele mai puternice aplicatii vor fi cele desktop, rulate local.

Urasc Flash-urile

Daca ma deranjeaza ceva mai mult decat orice la un site este sa vad fel de fel de filmulete Flash tasnind in mijlocul paginii. Sunt absolut deranjante si agresive. Inteleg notiunea de publicitate dar uneori intrec masura. Un Flash poate dinamiza pagina, ii poate spori functionalitatea si poate creste gradul de interactivitate cu utilizatorul. Dar atunci cand acopera o mare parte din articol si refuza sa dispara cand apesti obsesiv pe salvatorul X, devine un motiv foarte intemaiat de a parasi site-ul. Orice am face in numele marketing-ului nu trebuie sa uitam de ca utilizatorul nu cauta pe paginile noastre publicitate, ci informatii.
Si daca in schimb gaseste un filmulet sacaitor, nu va pune cu siguranta url-ul nostru ca bookmark.

DIV sau TABLE

Pentru un vizitator comun ale unor pagini web o asemenea problema este total neinteresanta. Ba mai mult, exista probabil multi detinatori de site-uri care nu inteleg natura unei astfel de discutii: atat timp cat pagina arata asa cum se doreste, ce conteaza ce e in spatele ei? Exista un excedent de putere de calcul sau de transfer in internet care exclud chiar si ideea de optimizare...
Ei bine, am avut ocazia sa ma conving ca browserele vad o diferenta intre cele doua metode. O structura complexa a paginii va determina folosirea excesiva a tabelelor imbricate (nested tables). Aceste lucru se reflecta se pare nu doar in viteza de interpretare a codului HTML ci si in modul in care IE isi face cache-ul local. Pur si simplu dand Back pe o pagina aceasta "explodeaza", copia locala fiind corupta. Solutia pentru rezolvarea acestei situatii a fost, evident, rescrierea paginii folosind divuri, caz in care browserele se comportau impecabil.
Asadar, un mic sfat, daca pagina voastra are un grad mare de complexitate (sau va avea pe viitor) renuntati din start la tehnica "tabele in tabele".

luni, 10 noiembrie 2008

Analiza unei comunitati web

Acesta a fost subiectul primei teme la IOM.. Mi-am dat seama imediat ca nu este ceva asa complicat precum suna: trebuiau extrase doar niste link-uri din pagini web sau XML-uri, pe post de prieteni sau fani.
Primul pas.. sa caut o aplicatie, cat se poate de rapid, fiindca nu e timp de pierdut. M-am oprit la Yahoo 360. Pagina parea destul de simpla: comentarii, prieteni, id-uri utile sa poata fi parsata repede. Dar surpriza.. SAX parser insira o groaza de erori deoarece paginile nu erau validate. Google peste Google, dar degeaba.. nu am gasit nicio metoda sa determin parserul sa ignore problemele de sintaxa HTML.
Mi-au venit in cap doua solutii: sa validez intreaga pagina folosind o librarie jar ce trebuia atasata proiectului sau, mai interesant, sa gasesc eu o solutie direct pe codul HTML. Am ales sa parsez cu SAX doar anumite portiuni din pagina web care ma interesau. Citind linie cu linie fluxul de text am corectat pe aceste portiuni cele cateva probleme de validare: tag-uri img invalide, atribute neinchise in ghilimele etc. Si, spre bucuria mea, a mers..
Care ar fi concluzia? Ce fel de anagajati are Yahoo care scriu un cod HTML atat de oribil? Tocmai ei care gestioneaza un motor de cautare... Surprinzator totusi...

joi, 6 noiembrie 2008

Poza Zilei