Showing posts with label interfete evoluate. Show all posts
Showing posts with label interfete evoluate. Show all posts

Tuesday, December 4, 2007

XHTML

XHTML - EXtensible HyperText Markup Language
XHTML este compatibil cu HTML 4.01.
Toate browserele noi au support pentru XHTML.

XHTML este un limbaj care foloseste markere si are aceeasi putere de expresie ca si HTML dar mai are in plus un avantaj, acela de a respecta sintaxa XML.
Pe cand HTML este o aplicatie de tip SGML (Standard Generalized Markup Language), care este un limbaj foarte flexibil, XHTML este o aplicatie a XML care este un subset mult mai restrictiv al SGML.
Documentele XHTML trebuie sa fie bine formate, de aceea ele permit ca procesarea automata sa fie facuta cu unelte standard XML, spre deosebire de HTML care necesita un parser destul de complex, tolerant si personalizat.

XHTML poate fi gandit ca intersectia HTML cu XML, pentru ca chiar a fost gandit ca o reformulare a HTML in XML. XHTML a devenit o recomandare a W3C (World Wide Web Consortium) pe 26 ianuarie 2000. Versiunea XHTML 1.1 a devenit recomandare a W3C pe 31 mai 2001. XHTML poate fi considerat a fi succesorul HTML.

Nevoia de reformulare a versiunii HTML a fost simtita datorita faptului ca informatiile World Wide Web trebuiau furnizate mai multor tipuri de dispozitive mobile (telefoane mobile, PDA-uri etc) diferite de cele traditionale desktop, unde nu puteau fi dezvoltate resursele suplimentare de care HTML avea nevoie. In practica totusi browserele care suportau HTML pentru astfel de dipozitive s-au dezvoltat mai repede decat suportul de XHTML pentru browserele traditionale de desktop.

Un alt motiv care facea atractiva noua tehnologie a XHTML era faptul ca se reducea cererea de parsere si agenti de utilizare. Cu HTML, agentii de utilizare (motoarele de cautare gen Google :) si restul) aveau sarcina dificila de a corecta erorile documentelor publicate. Aici XML aducea un suflu nou pentru ca cerea agentilor de utilizare sa dea o eroare fatala la intalnirea unui document XML gresit formatat. Aceasta inseamna ca un browser XHTML poate teoretic sa omita codul de recuperare din eroare, chiar daca are nevoie de mai multe verificari de detectie a erorilor. Recomandarea ca browserele sa posteze o eroare mai degraba decat sa incerce sa repare un continut gresit formatat ar trebui sa ajute la eliminarea greselilor din aceste documente. Chiar si atunci cand autorii nu isi valideaza codul, la un simplu test intr-un browser XML, erorile critice ale documentului vor fi scoase la iveala si astfel vor fi mai usor de corectat.

O caracteristica speciala a XHTML mostenita din XML sunt namespace-urile. Cu ajutorul acestor namespace-uri, autorii si comunitatile isi pot defini propriile elemente XML, atribute si modele de continut pe care le pot insera in documentele XHTML. Acest lucru este similar cu flexibilitatea semantica a atributului "class" intr-un element HTML, dar cu mai putine restrictii. Anumite namespace-uri/scheme W3C XML care pot fi incluse in XHTML, includ MathML pentru marcarea semanticii matematice, Scalable Vector Graphics pentru marcarea vectorilor grafici si RDFa pentru includerea datelor RDF.

Schimbarile de la HTML la XHTML versiunea 1.0 sunt foarte mici si sunt in principal facute pentru a asigura compatibilitatea cu XML. Cea mai importanta schimbare este aceea ca documentele sa fie bine formate si ca toate elementele sa fie inchise in mod explicit asa cum cere standardul XML. In XML toate numele de elemente si atribute sunt case-sensitive, astfle incat XHTML a abordat aceasta problema prin a defini toate numele tagurilor ca fiind lowercase.
In XHTML toate valorile atributelor trebuie inchise intre apostrofuri sau ghilimele in contrast cu HTML unde numai valorile de tip string trebuiau inchise cu ghilimele, valorile numerice sau booleene erau scrise pur si simplu, fara ghilimele.
In XHTML toate elementele trebuie sa fie inchise in mod explicit, inclusiv elementele goale cum ar fi img sau br: <img> si <br>.

XHTML 1.1 - este cea mai recenta recomandare W3C. Prezentarea este controlata numai de Cascading Style Sheets (CSS). Aceasta versiune a XHTML permite deasemenea folosirea de caractere de marcare ruby pentru limbile est-asiatice.
Modularizarea XHTML permite refolosirea unor mici chunkuri de XHTML de catre alte aplicatii XML intr-o maniera bine definita si permite extinderea XHTML in scopuri specializate.
XHTML 1.1 adauga conceptul de stricta conformitate a documentelor: astfel ca un document nu poate angaja anumite caracteristici, trebuie sa fie un document complet care contine numai elementele definite in modulele cerute de XHTML 1.1.
XHTML 2.0 in 2007 este inca in lucru dar este deja controversat pentru ca se desprinde de compatibilitatea backward cu versiunile anterioare.
XHTML 2.0 poate fi parsat in acelasi fel in care un agent utilizator ar parsa XHTML 1.1, folosind un parser XML si un document CSS conform cu specificatiile versiunii noi 2.0.

Noile add-uri aduse de XHTML 2.0 sunt:

  • formele HTML vor fi inlocuite cu XForms, o specificatie de informatie introdusa de utilizator de tip XML care permite afisarea corecta de diferite dispozitive de interpretarea a informatiei
  • HTML frames vor fi inlocuite cu XFrames
  • DOM Events vor fi inlocuite de XML Events care foloseste Document Object Model
  • un nou element de tip lista, tipul nl, va fi inclus pentru a proiecta o lista ca lista de navigatie, lucru care poate fi folosite in crearea meniurior imbricate
  • orice element va fi capabil sa se comporte ca un hyperlink similar cu XLink, de exemplu <li href="articles.html">Articles</li>
  • orice element va fi capabil sa refere o media alternativa cu atributul src, de exemplu: <src="tree.jpg" type="image/jpeg">Oak</p> este acelasi obiect ca si <object src="tree.jpg" type="iamge/jpeg"><p>Oak</p></object>
  • atributul alt al unui element img a fost inlaturat: un text alterntiv poate fi dat in continutul unui element img, asemanator cu elementul object, de exemplu: <img src="abc_abecedar.jpg">ABC <em>Abecedar</em></img>.
  • un singur element head (h) va fi adaugat. Nivelul acestor headinguri va fi indicat de elementele sectiunilor imbricate, fiecare avand propriul sau heading h
  • elementele i, b, tt vor fi si ele inlaturate din versiunea 2.0, numai elementele de subprezentare de tipul sup si sub (adica superscript si subscript) pentru ca ele sunt necesare in anumite limbaje. Toate celelalte taguri se intentioneaza sa fie semantice (de exemplu <strong> pentru text strong si boldat), in timp ce permite agentilor utilizatori sa controleze prezentarea cu elemente CSS.
  • adaugarea RDF triplu cu proprietatea si atributele care usureaza conversia de la XHTML la RDF/XML.

Cativa membrii ai familiei XHTML:

  • XHTML Basic: o versiune light a XHTML pentru dispozitive care nu suporta dialectele XHTML mai mari si mai complexe folosita pentru handheld-uri si telefoane mobile (este o inlocuire a WML si C-HTML).
  • XHTML Mobile Profile: bazat pe XHTML Basic, acest OMA (Open Mobile Alliance) efort tinteste in special catre telefoanele de mana adaugand elemente specifice telefoanelor mobile la XHTML Basic.
  • XHTML+Voice: XHTML combinat cu Voice XML pentru a suporta interactiuni audio video.

Monday, November 5, 2007

Interfete evoluate in literatura si cinematografie

Motivul interfetelor evoluate este omniprezent in literatura, mai ales in cea science fiction. Robotii prezenti in acest gen de carti interactioneaza cu oamenii prin niste interfete evoluate. Aceste interfete pot fi fie prin viu grai, fie printr-un afisav evoluat, rareori robotii fiind comandati print telecomenzi. Si computerele au interfete evoluate accesibile prin comenzi de voce sau prin ecrane, cel mai celebru fiind computerul central din star trek. Uneori, nici nu e nevoie de un ecran pe care sa fie afisate niste interefete evoluate, acestea aparand sub forma unor holograme, interfata fiind mult mai naturala astfel.

Tuesday, October 30, 2007

Cum se foloseste Ajax pentru interfete evoluate

Ajax este tehnologia care este acum la moda pentru crearea de interfete evoluate. De fapt, in domeniul web-based, interfete mai evoluate decat cu ajax nu exista. E hip sa-ti scrii interfetele web cu Ajax.

Dar destula vorbarie: ce este Ajax, in definitiv? Este o modalitate noua de a crea aplicatii web prin evolutia interactivitatii dintre utilizator si interfata: mai exact: atunci cand utilizatorul actioneaza asupra interfetei, aceasta nu reincarca o alta pagina, ci doar face o anumita cerere serverului, printr-o functie javascript, XMLHttpRequest, iar acesta raspunde cu anumite date, care sunt afisate de interfata.

Cu alte cuvinte, daca s-a schimbat un rand dintr-o pagina cu o mie de randuri, serverul trebuie sa trimita doar acel rand, nu o mie de randuri, ceea ce face ca aceste interfate cu ajax sa fie mai rapide decat cele normale.

Datele sunt trimise de server in formatul XML, iar acesta este prelucrat de javascript pentru a fi afisat de interfata ca HTML sau eventual XHTML.

Avantajele unor astfel de interfete evoluate sunt evidente: nu se iroseste latime de banda cu retransmiterea de informatii care interfata clientului le stie deja, este mai rapid pentru utilizator,  refreshul se poate realiza in background, fara a deranja utilizatorul care lucreaza.

De exemplu, un procesor de texte gen microsoft word ar putea ca in timp ce utilizatorul scrie un document, ca din cand in cand in cand sa-l transmita la server pentru a-l salva.

Astfel, in acest caz, aceste interfete evoluate se vor gasi in cadrul unei ferestre de browser, permitand accesarea lor dintr-un "thin client", prelucrarile complexe realizandu-se pe server, in timp ce clientul putand sa fie un calculator slab.

Aceasta este util pentru prelucrarea unei imagini in photoshop, de exemplu, din interfetele unui pocketpc, care are un procesor lent, prin folosirea resurselor serverelor evoluate.

Ce sunt acelea interfete evoluate?

O interfata este evoluata atunci cand aceasta are un mod evoluat de comunicare cu utilizatorul. Aceste interfete pot fi in cadrul unei aplicatii evoluate de sine statatoare sau o interfata din cadrul unei alte aplicatii, de exemplu, interfata unui browser.

In timp ce pentru interfata utilizator a unei aplicatii win32 sau linux nu exista nici un curs la facultatea de automatica, pentru interfata web se evolueaza un curs evoluat numit IE, sau interfete evoluate.

Scopul acestui curs este de a invata folosirea HTML-ului si al XML-ului pentru a crea interfete web. In ultimii ani, interfetele web au devenit din ce mai folosite, inlocuind aplicatiile clasice pentru multe din taskurile curente.

De exemplu, acum cu gmail, care foloseste ajax, un amestec de html, css si javascript nu mai este nevoie de un client pop de mail. Avantajul este evident: interfatele acestuia pot fi accesate de pe orice calculator, indiferent de sistem de operare, fara a fi nevoie sa instalam programul.

Aceasta compatibilitate universala este un lucru de care se teme Microsoft: daca toate programele vor fi evoluate in asa fel incat interfetele lor sa fie accesibil de pe orice sistem de operare, atunci nu va mai fi nevoie de windows.

In orice caz, trendul este ca aceste interfete evoluate sa foloseasca din ce in ce mai mult webul: hartile cu ajax, precum google maps inlocuiesc aplicatiile de sine statatoare, google investeste si intr-o varianta office pentru web, iar adobe chiar o interfata photoshop web-based. 

Viitorul interfetelor evoluate este clar: vor fi pe web, accesibile din browser, pe orice calculator sau 
device conectat la internet, din orice colt al pamantului.