joi, 30 octombrie 2008

Vindem teme? De "interfete web"

... adică NU. Vindem cunoștințe. Si le vindem ... gratuit.
De fapt, nu chiar gratuit. Noi va arătăm, și voi petreceți un pic de timp pe site-ul nostru. Cam asta e prețul.

Cam în asta consta proiectul nostru de interfețe-web. Sa încercam sa vindem, sa ne facem reclama, sa ne facem cunoscuți și sa aparem în "history"-ul google.

Btw, ceva super legat de interfețe-web. Am observat ca google ofera pe blogger.com suport pentru corectarea greșelilor(pe mine ma ajuta foarte mult asta la diacritice). Partea buna e ca dicționarul e dinamic, adică eu ca user pot adăuga noi reguli. Partea proasta ca e pot adăugă lucruri proaste. Si asta nu știu dacă are efect doar asupra dicționarului meu, sau e peste tot. Partea și mai proasta e ca nu recunoaște diacriticele majuscule.
Si ce nu îmi place e ca se aseamănă cu dicționarul ala super vechi de corectare de la MS Word. La el ma=ma, chiar dacă de fapt e "mă". Deci e doar un fel de lexer.

Nah, cam atât.

miercuri, 29 octombrie 2008

Tehnologia XPath

XPath 1.0 vs XPath 2.0

XPath este un limbaj folosit pentru interogarea fisierelor XML, sau, mai corect spus, XPath 1.0 este asa. Varianta 2.0 este mult mai complexa, si poate lucra pe mult mai multe tipuri de date. O definitie mai buna pentru 2.0 ar fi: un limbaj pentru procesarea secventelor, care ofera si un suport pentru interogarea fisierelor XML.

(expression language for processing sequences).

XPath 2.0 a aparut din combinarea XSLT 2.0 si XQuery 1.0.

De ce a fost nevoie de un upgrade?

- era nevoie de mai multe functii pentru a se usura anumite task-uri

- se dorea compatibilitatea cu XML Schema

- era nevoie de performante mai ridicate

Astfel, XPath 2.0 este un supraset al XPath 1.0, dar un subset al XQuery.

Ce aduce nou?

  • Mai multe tipuri de date care pot fi procesate: pe langa multimi de noduri, string-uri, valori booleene si numere, au fost introduse tipuri ca date calendaristice (year, month etc), URI-uri, tipuri derivate, precum si conversii intre ele. Bineinteles, odata cu ele, au fost introduse functii, constructori si operatori asociati.

De exemplu, in versiunea 1.0 aveam tipurile:

String, boolean, number, nodeset

iar in 2.0:

· toate tipurile (simple si complexe) din W3C XML Schema

· tipuri derivate din XML Schema

· valori atomice

  • Avem in continuare diferite tipuri de noduri organizate intr-o structura de arbore:

- elemente

- atribute

- noduri document (un element nou introdus – pana acum era cel radacina)

- avem tipuri de date specifice XML Schema pentru aceste noduri

De asemenea, testarea nodurilor se face dupa felul sau numele lor, precum si dupa tipul lor.

  • Expresiile XPath intorc intotdeauna secvente, si s-au definit o serie de reguli legate de acestea:

R1. Totul este o secventa.

Chiar daca, aparent, expresiile intorc un nod, sau un string, ele de fapt intorc o secventa care contine un nod, respectiv un string.

R2. Nu existe secvente imbricate.

De exemplu, expresiile (2, 4, (1,2,3), 6) si (2, 4, 1, 2, 3, 6) se evalueaza la aceeasi secventa. (virgula este un operator de concatenare a secventelor)

R3. Secventele sunt ordonate (conteaza ordinea elementelor secventei)

In XPath 1.0 aveam notiunea de “multime de noduri”. Aici, aceasta notiune devine “secventa de elemente” (“sequence of items”). Secventele, spre deosebire de multimi, pot contine duplicate si sunt ordonate (sunt un fel de multiset-uri).

  • In XPath 2.0 se pot aplica operatori asupra secventelor.

Exemple:

     for $x in /order/item return $x/price * $x/quantity
     (10, 1 to 3)   se evalueaza la (10, 1, 2, 3)
     1 to count($alta_secventa)
     reverse(5 to 10)

  • In versiunea 2.0 exista cuantificatori – some , every
        some $x in /students/student/name satisfies $x = "Fred"

(every)

In XPath 1.0, daca scriam /students/student/name = “Fred”, se returna “true”

Daca exista cel putin un student cu numele Fred. Cuantificatorii din versiunea 2.0 rafineaza expresia.

  • Exista expresii conditionale (if)
if (test-expression)
    then expression 
    else expression

  • Mai multe noduri pot fi testate in acelasi timp

//persoana/student/text() | //persoana/profesor/text() din versiunea 1.0 devine:

//persoana( student | profesor)/text()

Un tool free pentru testarea expresiilor XPath 2.0 poate fi gasit la http://saxon.sourceforge.net/

De asemenea, informatii despre operatori, functii etc:

http://www.w3.org/TR/2001/WD-xquery-operators-20011220/

Bibliografie:

http://www.xml.com/pub/a/2002/03/20/xpath2.html

http://www.mulberrytech.com/papers/XPath-2-0-User-Grp-HTML/contents.html

joi, 23 octombrie 2008

Google dupa "Interfete Web"

Nu sunt de acord cu stringul de cautare.
(Vorbind cu cineva care se pricepe la astea) am ajuns la concluzia ca este un string comun.
Sunt curioasa, ce rezultat dadea google pentru "interfete web", inainte ca toti sa ne facem site-uri si blog-uri unde sa tag-uim sintagma asta.
Eu am cautat abia acum doua zile si surpriza: din alea primele 10 pozitii, 8 nu aveau nicio legatura cu proiectul nostru. Acum sunt curioasa cum o sa se puncteze pe baza asta.

Am aflat ca in cazuri din astea, cautarea se face practic dupa stringul dupa care vrem scris invers:
"interfete web" -> "etefretni bew" sau "bew etefretni"
Asa s-ar fi asigurat o competitie "eleganta" numai intre participanti. Ei, bine, probabil ca site-urile ar fi avut niste denumiri foarte ciudate :) ... la fel si articolele noastre, cand vroiam sa spunem de "interfete web".

Gata ?

Trebuie sa anuntam si oficial ...

Alex, Maria, Ruxi si Sinziana au (cel putin) un site, in care vor incerca sa va explice, asa cum stiu ei mai bine, ce inteleg prin "interfete web" ( acum e doar un string de cautare ).

Asta e: http://interfete-web-online.com

Enjoy

miercuri, 15 octombrie 2008

[Interfete-web] Avem echipa ...

... si o sa avem si site, cat de curand.
Asa ca URL-ul acestui blog va fi schimbat.

Go, go, go Gadget! [un inspector pe care il vom face sa aiba si css-uri la discretie].

P.S. In curand o sa apara si temele la IOM.

sâmbătă, 11 octombrie 2008

XML?

A fost odata ...

"XML – (eXtensible Markup Language) este un limbaj de adnotare/structurare a datelor. Istoria aparitiei sale porneste de la SGML (Standard Generalized Markup Language) aparut in anii 80. Acest limbaj isi propunea la aparitie sa creeze documente ce pot fi analizate de catre masini prin introducerea de marcaje (sau taguri). SGML nu a fost un succes deoarece era foarte complex si astfel crearea de programe care sa-l analizeze.
In anii 90 la CERN a aparut HTML-ul (HyperText Markup Language). La baza acestui limbaj a fost SGML-ul si scopul sau a fost marcarea documentelor astfel incat sa poata fi transmise prin retea. Unul din primele documente care au stat la baza WWW-ului si respectiv HTML-ului le puteti gasi la [1]. Una din ideile acestui document este ca browserele trebuie sa ignore marcajele si atributele pe care nu le inteleg. Aceasta idee a avut ca efect din cate cred eu aparitia unui limbaj mai simplu care sa poata fi parsat rapid de catre browsere. Si astfel s-a dezvoltat HTML-ul.

XML-ul este un limbaj cu o sintaxa simpla si care permite doar structurarea datelor intr-o maniera proprie prin definirea propriilor taguri. Aceasta facilitate de structurare a datelor a permis folosirea sa pentru a dezvolta limbaje noi precum si pentru a fi folosit in noi standarde de stocare a datelor. Nu in ultimul rand XML-ul poate fi folosit pentru a schimba date intre aplicatiile care au nevoie de a comunica intr-un limbaj comun.
Chiar si in ciuda dezavantajelor pe care le are (overhead) calitatile XML mai sus mentionate ii permit sa fie folosit cu succes in multe domenii si sa fie piatra de temelie pentru si mai multe domenii.

P.S. Probabil o sa fie singurul post clasic. Dupa, cred ca aplicam altceva. :)

Helllo world!

Un "Hello world!" nu printat la consola, ci editat cu HTML.

Enjoy our posts!