miercuri, 12 noiembrie 2008

Ce este Ajax?

Raspunsul la aceasta intrebare este simplu, nu stii ce e Ajax cauta pe Google sau cum se mai spune "Google it!". Termenul Ajax poate fi asociat mai multor arii de interes, incepand de la detergent pentru baie si bucatarie care iti schimba viata - binecunoscutul TV advertising, continuand cu succes pe taramul Olandei, mai precis echipa de fotbal Ajax Amsterdam si terminand, insa nu mai prejos, cu prescurtarea Asynchronous Javascript And XML.
Bineinteles, in acest articol nu voi vorbi nici despre online advertising nici despre cate goluri a marcat echipa Ajax sezonul 2008-2009 (acest lucru se poate afla usor de pe Youtube), ci voi incerca sa aduc in prim plan principalele caracteristici ale acestui limbaj de programare. Poate e un pic prea mult spus limbaj de programare, hai mai bine sa ii zicem tehnica de programare.


Domnul Google, pe prima pagina de cautare, ne invita sa citim articolele de pe Wikipedia atat in engleza cat si in romana, de unde aflam ca AJAX reprezinta o tehnica de programare pentru crearea de aplicatii web interactive. Scopul este dinamizarea paginilor web si cresterea interactivitatii, vitezei si usurintei. AJAX reprezinta un conglomerat de tehnologii, si anume HTML sau XHTML pentru structura semantica a informatiilor, CSS pentru layout-ul informatiilor, XML pentru transferul datelor intre server si client si obiectul XMLHttpRequest pentru schimbul si manipularea informatiilor, intr-o maniera asincrona cu server-ul web. Nu ma consider un bun cunoscator al acestei tehnici, nici pe departe, dar parerea mea este ca AJAX se poate numi ca fiind un "JavaScript cu steroizi"; pai la asemenea flux de tehnologii web, mi se pare destul de potrivit.


Ajax a fost facut popular in preajma anului 2005 de catre Google, dar si de alti mari dezvoltatori web. In principal Ajax nu este un limbaj de programare, ci mai degraba un atu in realizarea unui website, atu care daca il folosesti cum trebuie ai numeroase avantaje. Cel mai bun exemplu, sa zicem ca vrem sa avem acces la o baza de date, sau vrem sa trimitem informatii. In mod normal, ar trebui sa folosim un formular HTML pentru a lua informatii de pe server. Apoi trebuie sa apasam un buton de confirmare gen submit si sa asteptam serverul sa raspunda, pentru ca mai apoi sa incarce o noua pagina cu rezultate. Cu siguranta multi dintre voi au facut acest lucru de multe ori si cunoasteti sentimentul de nerabdare pe care il procura asteptarea in fata unui server lent sau supraincarcat. Aici intervine Ajax, facand posibila comunicarea libera cu serverul, fara sa fie nevoie sa incarce o noua pagina reducand astfel timpul de asteptare.

Acesta ar fi unul din multele avantaje ale acestei tehnici denumite Ajax. Internet-ul este plin cu tutoriale si documente referitoare la aceasta tehnologie, asa ca dupa parerea mea Ajax este o modalitate de a aduce interactivitate paginilor web care merita studiata si invatata.

marți, 11 noiembrie 2008

Javascript Quiz Multichoice

Un quiz poate sa fie o parte interesanta de integrat intr-un site educational iar varianta multichoice e potrivita pentru ca :

  • e usor de implementat pentru administratorii sitului
  • scrierea unui nou quiz necesita modificari minime in sursa
  • poate fi testat si acasa fara vreo instalare in plus (cum ar fi fost nevoie pentru scripturile php de instalarea apache php server), direct in browser
  • e agreabila pentru utilizatori pentru ca raspunsul corect este la vedere, chiar daca trebuie selectat dintre cele gresite
  • poate fi parcurs foarte rapid si ofera o solutii chiar si oaspetilor grabiti pe site

Un quiz (din multe altele disponibile pe internet) se gaseste la adresa http://javascript.internet.com/miscellaneous/multiple-choice-quiz.html si contine, pe langa codul sursa, o demonstratie online a functionalitatilor sale. La cerere, scriptul e trimis pe adresa de mail.

Am implementat acest gen de script pe propriul site si va invit sa il vizitati, sa il rezolvati si sa imi lasati comentariile cu privire la el aici pe blog.

Quiz tehnologii web : http://interfete-web.dap.ro/quiz.html

Din punct de vedere timpului necesar imbogatirii unei pagini web cu acest quiz, dupa ce am gasit acest script care mi-a placut, compunerea unui quiz propriu a durat nu mai mult de 10 minute.

Exemplu de intrebare si raspunsul ei corect :

questions[0] = "1) JavaScript is ...";

choices[0] = new Array();choices[0][0] = "the same as Java";

choices[0][1] = "kind of like Java";

choices[0][2] = "different than Java";

choices[0][3] = "ther written part of Java";

answers[0] = choices[0][2];

Pentru a modifica enuntul unei intrebari se va modifica continutul elementului cu indicele dorit din vectorul questions. Pentru a modifica optiunile se va opera in matricea choices iar raspunsul corect este dat in vectorul answers prin prezenta valorii 1 in loc de 0 pe indicele raspunsului corect din choices.

Nu exisa o restrictie privind numarul de variante puse la dispozitie astfel incat daca vreti ca utilizatorii sa aiba de ales intre doua variante de raspuns sau 10, decizia va apartine prin marirea de coloane pentru o linie din vectorul choices.

A mai ramas doar formularea intrebarilor si quizul este gata.

luni, 10 noiembrie 2008

Parsare HTML in Java

In acest post voi prezenta o metoda de parsare a documentelor HTML prost formate (taguri neinchise sau incrucisate si alte moduri de nerespectare ale cerintelor XHTML).

Totul a pornit de la o tema la materia Interfete Evoluate, care cerea extragerea dintr-o retea sociala a tuturor prietenilor unui user, pornind de la id-ul acestuia. A parut simplu la inceput. nu aveam decat sa parsez pagina de profil si sa sar din link in link pana as fi epuizat reteaua de prieteni pana la o anumita adancime. Dificultatea temei a fost insa parsarea paginilordin interiorul retelei sociale. Parserul SAX din Java crapa din cauza erorilor din documentul XML...pentru ca ...o pagina HTML e foarte rar valida din punct de vedere al formatului XML.

Ceea ce am folosit pentru a parsa in Java paginile HTML a fost un parser gratuit, Jericho, care se poate downloada la adresa :
http://jerichohtml.sourceforge.net/.

Motivele pentru care recomand parserul HTML Jericho sunt :

  • e open source si gratuit
  • e simplu de inteles, fiind scris intr-un stil explicit si bine documentat
  • e simplu de folosit pentru ca vine cu o suita de exemple accesibile pentru diverse modele de utilizare
  • nu e nevoie sa cauti pe net exemple de cod pentru a folosi biblioteca, sunt suficiente sursele puse la dispozitie in pachet
  • gaseste erorile datorate proastei formatari a textului dar trece peste si incearca o parsare cat mai completa pentru restul documentului
  • intreaga arhiva jar are in jur de 300k, ceea ce e din punctul meu de vedere o dimensiune acceptabila

Pentru a face arhiva jar (libraria externa) disponibila unui proiect in Eclipse:

  • Project -> Properties -> Java Build Path -> Libraries -> Add External Jars -> Jericho.jar
Pentru mine acest parser a fost suficient, dar daca nu e chiar ceea ce cautati, alte sugestii ar fi:

Galerie pentru poze online in php

In cazul in care vreti un utilitar simplu si gratuit pentru gestiunea pozelor pe situl propriu, prima mea recomandare este SPGM (Simple Picture Gallery Manager - http://spgm.sourceforge.net/ ) , pachet de scripturi care se poate downloada de la adresa http://spgm.sourceforge.net/redirect.php?to=7 .

Pachetul este usor de instalat si de integrat in orice site si ofera optiuni destul de folositoare. Pe situl sau oficial se gaseste si un portofoliu cu pagini web care implementeaza modulele si pot fi vizitate : http://spgm.sourceforge.net/?lg=us&id=demos .

O alta abordareeste scrierea unei aplicatii proprii pentru gestiunea colectiei de imagini. In cazul in care a lua ceva complet gata facut si a-l integra doar nu pare cea mai buna alegere poti oricand sa scrii propriile surse pentru gestiunea unei galerii "home made". Un site bun de inceput ar fi http://www.phptoys.com/e107_plugins/content/content.php?content.54 . La aceasta adresa se gasesc scripturi php si tutoriale destul de usor de inteles pentru mai multe tipuri de cerinteale utilizatorilor(forum, login, baze de date, photo slide show, etc.). Tutorialul este redus la elementele esentiale si e un punct bun de start pentru realizarea unei galerii originale.

marți, 4 noiembrie 2008

Parsare DOM in Python

Hello again,

Dragi cititori de blog, vreau sa va marturisesc faptul ca de ceva vreme am devenit fan Python si am renuntat cu nonsalanta la programarea in Java sau C++. De ce? Pentru ca mi se pare mai prietenos, mai usor de folosit, ofera nenumarate facilitati si pe langa asta este un limbaj de programare orientat pe obiecte foarte puternic.

Legat de pasiunea noastra comuna, Interfetele Evoluate, am scris in Python 2 programele care parseaza fisiere XML folosind DOM. In caz ca nu ati folosit pana acum si sunteti curiosi cum arata parsarea de XML in Python, sau din contra, daca ati gasit solutii mai inteligente decat ale mele, va invit sa vizitati articolul http://interfete-web.dap.ro/articol3.html si sa comentam impreuna pe marginea lui!

luni, 3 noiembrie 2008

O alta aplicatie didactica

Propun o continuare la mesajul precedent, 2008/11/web-20-la-picioarele-profesorilor.html, venind cu alt exemplu de aplicatie populara care foloseste tehnologii Web 2.0 si poate veni in sprijinul predarii in sala de clasa.

Utilitarul de grafice online se gaseste la adresa http://nces.ed.gov/nceskids/.
Scopul acestei unelte este de a realiza in cel mai usor mod posibil grafice atractive pentru diferite functii, furnizate sub forma de tabel de valori .

Rezultatul este asemanator cu formatul de grafice din Excel, insa mai usor de folosit si cu o interfata mai pretenoasa.

Pentru mai multe informatii privind aceasta aplicatie vizitati : http://interfete-web.dap.ro/articol1.html.


Web 2.0, la picioarele profesorilor

Multumim Cristinei pentru remarcile facute asupra conceptului de Web 2.0 in Internet(http://mist-iweb.blogspot.com/2008/10/web-20-atitudine-sau-tehnologie.html).

In continuare voi incerca sa completez articolul amintit, prin scoaterea in evidenta faptului ca tehnologiile Web 2.0 pot fi interpretate ca avand o inclinatie educativa. Cu putina imaginatie (si un minim de dotari constand in calculatoare si internet pus la dispozitie de scoala), orice profesor poate aduce tehnologia "pe bancile scolii", inviorand astfel rutina pedagogiei clasice.


Instrumentele gratuite pot fi adaptate in orice moment al lectiei, de la predarea lectiei pana la noatrea elevilor sau stabilirea unei activitati colective, pe grupe sau individuale pentru elevi. Noua tendinta in educatie este promovarea invatarii prin descoperire, iar noile softuri Web 2.0 pot fi adaptate pentru a facilita aceasta inclinatie. Interfetele prietenoase atrag chiar si elevii mai reticenti, actul de a invata devenind mai apropiat de joc decat de activitatea plictisitoare pe care o credeau.

Mi-am propus initierea cautarii softurilor Web 2.0 adaptabile ariei pedagogice prin incursiunea in domeniul documentelor colaborative. ThinkFree (http://www.thinkfree.com/) si GoogleDocs (http://docs.google.com) sunt doar doua exemple de softuri bine puse la punct si folosite intens de o multime de utilizatori, prin urmare de ce nu am incerca o adaptare a lor in scopul constructiv al educatiei.

Cateva exemple de utilizare ar fi colaborarea elevilor la teme date pe grupe, fara a fi nevoie de intalniri personale foarte dese, sau organizarea elevilor pentru lucrul in clasa la un document comun. O discutie mai elaborata asupra acestei teme o gasiti pe situl de interfete web al echipei la:

http://interfete-web.dap.ro/articol4.html - Aplicatii Web 2.0 in domeniul didacticii.

O problema este trecerea de la idee la realizare. Cum putem aduce tehnologia de ultima generatie in scoala Romaneasca? Initiativa nu trebuie neaparat sa porneasca de la profesori, ci chiar de la elevi care pot sugera cum softul lor preferat ar putea fi folosit pentru a impartasi cunoasterea colegilor.

Orice idee e bine-venita si voi raspunde oricui este interesat sa continue discutia, aici, pe blog.

Yellow Puppies Blogger Template | Template Design | Elque 2008