luni, 3 decembrie 2007

RSS - de ce apare pe toate siturile

Tot mai des vedem pe diferite situri ca apare RSS feed. Putina lume stie ce înseamnă si la ce poate folosi. Astfel căutând puţin am descoperit ca RSS iţi aduce noutăţile care te interesează, de care ai nevoie, de asemenea te poate apăra de spam, aducându-ti doar ştirile de care ai nevoie si nu in ultimul rând poate aduce si trafic, oferindu-ti posibilitatea sa-ti creezi propriul canal de ştiri.

Mai tehnic - RSS este o metoda care foloseşte XML pentru a distribui conţinutul unui site web, pe mai multe alte situri web. De asemenea RSS permite distribuirea rapida a noutăţilor si update-urilor pe web.( www.w3schools.com/rss).

Ce este RSS?

  • RSS vine de la Really Simple Syndication
  • RSS iţi permite înscrierea conţinutului site-ului intr-un „sindicat”
  • RSS permite vizualizarea si distribuirea de titluri si conţinuturi de articole
  • Documentele RSS pot fi updatate automat
  • RSS permite personalizarea unor situri

De ce sa folosim RSS?

Fara RSS, useri vor trebui sa verifice situl in fiecare zi pentru a afla de eventualele noutati. Aceasta ar consuma timp prea mult. Insa cu RSS ei pot sa verifice situl mult mai rapid, folosind un RSS „aggregator” – un site sau un program care aduna si sorteaza RSS feed-ul. De vreme ce datele RSS sunt mici si uşor de încărcat, va fi uşor de folosit la telefoane mobile sau PDA-uri.

Cum functioneaza RSS?

Cu RSS, iţi înregistrezi conţinutul la companii numite „aggregator”. Astfel mai intai trebuie creat documentul RSS cu extensia .xml, apoi se upload-eaza documentul pe situl tău. Apoi te înregistrezi la un „aggregator”. In fiecare zi acesta va căuta pe siturile înregistrate la el după documente RSS, va verifica link-ul si va arata informaţie despre feed astfel incat clienţii vor merge spre documentele care ii intereseaza.

Despre sintaxa.


Elementul "channel" - folosit pentru descrierea RSS feed. Acest element are trei fi necesari:

Fiecare element "channel" are unul sau mai multe elemente "item". Fiecare element "item" va defini un articol in RSS feed. De asemenea are trei fi necesari:

Cel mai bun mod de gestionare a feed-ului RSS este gestionarea proprie, dar care poate lua mult timp daca ai multa informatie noua, de aceea se poate apela la un RSS automat cum ar fi MyRSSCreator sau FeedFire.

YUI - ca sa nu trebuiasa sa reinventezi roata

YUI (Yahoo User Interface) reprezinta o librarie Open Source de JavaScript si CSS care vine in ajutorul programatorului WEB.

Ai astfel acces, fara prea multa munca la definirea propriilor evenimente si a modului in care acestea sunt tratate, poti simula foarte usor modelul drag&drop cu obiectele definite de tine, iti poti crea propriul calendar sau chiar poti sa-l integrezi pe acesta intr-o unealta mai dezvoltata care sa tina locul unui editor de text de genul editorului de pe acest blog.

Cu alte cuvinte ai totul de-a gata, dar cum totul se plateste si aici e un mic pret de platit. Desi vine cu o serie de exemple destul de bune YUI, este foarte greu sa parasesti tiparul definit in exemple, aceasta in primul rand datorita documentatiei destul de firave si a unui numar foarte mare de functii disponibile.

Oricum daca vreodata ai nevoie sa adaugi un calendar sau cine stie, sa ai de editat un text sau un obiect cadrul aplicatiei tale web, atunci cu siguranta o sa-ti para bine ca cineva ofera open source asemenea widgeturi si ca nu este nevoie sa mai "reinventezi roata".

Google Web Toolkit...un pas mai aproape de AJAX

Google Web Toolkit (GWT) este un framework opensource de dezvoltare Java care faciliteaza scrierea aplicatiilor AJAX. Acestea se pot dezvolta si verifica in limbajul Java folosind uneltele de dezvoltare preferate, iar apoi compilatorul GWT transforma aplicatia Java in cod JavaSCript si HTML care pot fi interpretate de browsere.

Pasii pentru dezvoltarea de aplicatii cu GWT sunt urmatorii:
1) Scrierea aplicatiei Java folosind librariile GWT
2) Compilarea aplicatiei de catre compilatorul GWT ; rezulta un set de fisiere JavaSCript si HTML

Ce ofera GWT:
* componente de interfata dinamice, reutilizabile
* RPC: comunicare intre aplicatie si server se realizeza prin clase Java serializabile
* gestionare a istoriei a browserului
* compatibilitate cu browsere
* suport pentru folosirea API-ului Google in aplicatii GWT (in curs de dezvoltare)

Dupa cum arata si primul exemplu de folosire a GWT , elementele de interfata oferite sunt cele traditionale: butoane, check boxes, meniuri, panels, liste, popups.

Clasele de baza reprezinta o abstractizare foarte aproape de DOM, si exista si un set de clase care impacheteaza obiectul XMLHttpRequest pentru a facilita interactiunea cu serverul.

Iata parerile unui dezvoltator web dupa ce a utilizat GWT cateva luni:

* Curba de invatare: odata ce proiectul functioneaza in Eclipse si poti rula codul in mod "gazda" (fara a te conecta la un server extern), esti pe drumul cel bun. Conceptele de baza pentru clasele de UI se pot intelege in cateva zile, iar modelul de programare este asemanator cu Java Swing, dar are legaturi apropiate si cu programarea AJAX.

*Productivitate:
- testarea compatibilitatii cu browserele este redusa comparativ cu JavaScript;
- refactorizare: verificarea tipurilor de date oferita de Java este de ajutor atunci cand este necesare modificare codului pentru a indeplini noi cerinte legate de interfata

* Dimensiunea codului: compilatorul GWT reduce dimensiunea codului deoarece minimizeaza spatiile albe, maparea functiilor si numele de variabile la valorile lor minime posibile si produce versiuni de cod specifice fiecarui browser, care sunt downloadate dupa ce scriptul determina tipul de browser folosit de utilizator. (compilatorul nu include clase Java care sunt in acelasi pachet, dar care nu sunt referite de codul aplicatiei)

* Ce se intampla mai departe: Java s-a schimbat considerabil dupa 1.4. Este mult mai complex, si se indeparteaza din ce in ce mai mult de JavaScript. Apare astfel intrebarea daca merita efortul de a tine GWT la curent cu ultimele specificatii Java.

In concluzie, GWT este una dintre cele mai bune variante pentru implementarea aplicatiilor AJAX in care clientul interactioneaza frecvent cu serverul.

vineri, 30 noiembrie 2007

A aparut si Tema 3

Se cere sa se implementeze o componenta Javascript la alegere dintre cele ce vor fi prezentate mai jos. Dupa ce sunt prezentate la laborator si dupa ce trece termenul de predare al temei, scripturile vor fi integrate pe site-ul proiectului. Ca si la tema precedenta 2 studenti care lucreaza la acelasi proiect nu vor putea sa-si aleaga aceeasi tema.
Fiecare tema are 2 variante - varianta mai simpla presupune numai utilizarea javascript si o tema facuta perfect poate obtine maxim 7p din 10. Varianta mai complexa presupune si utilizarea unui limbaj server-side (java, asp, php, etc.) + ajax si poate aduce 14 (tot din 10) smile

Temele sunt urmatoarele:

a) implementarea unui calendar pe site (folosind YUI).

  • varianta simpla - numai javascript: In calendar trebuie sa apara cu o culoare diferita datele cand au fost adaugate posturi pe blogul proiectului si la click pe una din zilele astfel subliniate sa se deschida pagina cu postul respectiv. maparea intre posturi linkuri si date se face static folosind un fisier de configurare.
  • acelasi comportament dar maparea intre posturi, linkuri si date se face dinamic folosind o baza de date si Ajax pentru incarcarea url-ului numai la click
b) contor (pe langa cel de la trafic sau de la google analytics)
  • varianta simpla ce foloseste numai javascript: la accesul pe site este afisat tipul browserului utilizatorului si de cate ori a mai accesat site-ul (se folosesc cookies si obiectul navigator http://www.w3schools.com/js/js_browser.asp )
  • varianta complexa - se foloseste ajax pentru a pastra vizitele intr-o baza de date si se actualizeaza live pe site (o data la 30 de secunde) numarul de pagini vizitate si de vizitatori unici
c) topul articolelor
  • varianta simpla - numai javascript: intr-o pagina a site-ului este prezentata lista cu titlurile articolelor publicate pana in acel moment. utilizatorul poate sa ordoneze articolele respective dupa preferinta si la sfarsit apasand pe butonul "save" sa reafiseze intr-un tabel linkurile in ordinea data de utilizator
  • varianta mai complicata: la sfarsitul ordonarii utilizatorul sa-si salveze alegerea si folosind AJAX sa i se afiseze lista articolelor in ordinea preferintelor globale ale utilizatorilor (se va folosi un sistem de scor - de exemplu primul primeste 10p, al doilea 8, al treilea 6, etc.) si scorul fiecaruia
d) autocomplete (exemplu: http://www.google.com/webhp?complete=1&hl=en)
  • varianta simpla: intr-un input de tip text se tiparesc caractere. Pe masura ce se tiparesc se cauta articolele dupa titlu intr-o lista initializata static si se ofera utilizatorului o lista cu articolele al caror titlu incepe cu caracterele tastate. dupa selectarea articolului se afiseaza linkul catre articolul respectiv.
  • varianta complexa: acelasi comportament dar cautarea se face intr-o baza de date folosind Ajax.
Dupa cum mi s-a atras atentia sunt si proiecte la care participa 5 persoane. numai pentru aceste grupe mai este valabila urmatoarea optiune:
e) implementarea unui select cu numele participantilor la proiect
  • varianta simpla (doar javascript) - la selectarea unuia dintre participanti se afiseaza un tabel cu linkuri catre toate temele sale (dintr-o lista initializata static)
  • varianta complexa - acelasi comportament dar folosind o baza de date si Ajax.

marți, 13 noiembrie 2007

TEMA CURS

Tema de curs la Interfete Evoluate ne-a rezervat o surpriza: pentru prima oara nu ne-am ales noi colegii de echipa, ci am fost repartizati aleator. Rezultatele se vor vedea ceva mai tarziu, planificarea etapelor temei fiind urmatoarea:

Etapa 1 - studiu termen 20 noiembrie
Etapa a 2-a - conferinta chat termen 26 noiembrie
Etapa a 3-a - adnotare termen 10 decembrie

Etapa 1 presupune sa cautam pe web informatii despre avantajele, dezavantajele, instrumentele de sprijinirea interfatarii cu bloguri, conferinte chat, forumuri de discutie si wiki, precum si despre posibilitatile de utilizare in lucrul si invatamantul colaborativ.

Etapa a 2-a va reprezenta o conferinta chat in echipe de cate patru, folosind sistemul ConcertChat.

Iata si componenta echipelor din care face parte fiecare membru al proiectului nostru:

1)
Ioan Corneliu Brad
Maria Cristina Anton
Irina Cristina Boldea
Cristian Grigore

2)
Anca Jeanina Floarea
Elena Lorena Danciu
Ovidiu Catalin Silica
Stefan Dragan

3)
Florin Nedelcu
Lucian Daniel Stanciu
Caludia Ioana Tanase
Sebastian Truca

4)
Oana Gabriela Secasiu
Mihaela Roxana Petcu
Cosmin Mihai Raianu
Cezar Florin Belghiru



Tema2

TEMA2 : 1 noiembrie 2007 - 19 noiembrie 2007


Enunt:

Pe internet exista un mare numar de comunitati online. Prin comunitate pe internet intelegem o multime de oameni ce efectueaza o activitate impreuna (scriu mesaje pe un forum, joaca un joc multiplayer, etc.). Pe baza acestor activitati se formeaza retele sociale – grafuri de mari dimensiuni ale relatiilor online dintre membrii comunitatii. Pentru a extrage un astfel de graf dintr-o aplicatie online metoda uzuala este de a scrie un program care analizeaza paginile web ale site-ului comunitatii si extrage datele referitoare la colaborarile dintre persoane. Acest program trebuie sa-l faceti voi ca temaJ

Aplicatia se bazeaza pe urmatoarele proprietati ale acestor site-uri:

  • Paginile site-ului sunt generate dinamic => toate vor avea aceeasi structura.
  • Cea mai mare parte a linkurilor din aceste pagini duc tot in pagini ale site-ului.

Din aceste proprietati rezulta ca este suficient sa se scrie un script/clasa/functie care sa analizeze o pagina HTML si sa se aplice aceasta functie pe toate linkurile din interiorul site-ului.

Datele extrase din site-ul web vor fi salvate intr-o baza de date ce va avea urmatoarea structura:

model relational

In tabelul utilizator se salveaza datele despre un anumit utilizator (linkul catre profilul sau de pe site si username-ul – daca exista)

In tabelul colaborare se salveaza toate instantele de colaborari dintre 2 utilizatori, tipul colaborarii (pot fi mai multe tipuri in functie de tipul comunitatii – de exemplu pentru o comunitate unde se joaca un joc online pot fi urmatoarele tipuri de relatii – A joaca impotriva lui B, A joaca in echipa cu B, A ii da reply lui B pe forumul jocului, etc.), detalii colaborare – in functie de tipul comunitatii pot sa fie rezultatul jocului, mesajul schimbat, etc.

Exemple de comunitati online ce pot fi analizate:

  • Bloguri gazduite pe acelasi server (blogspot.com, wordpress.com, etc)
  • Forumuri (forumuri bazate pe phpbb, vBulletin, etc)
  • Jocuri online (hattrick.org, online.bridgebase.com/myhands, etc., sah sau pool de pe yahoo games)

Aplicatia poate fi realizata intr-un limbaj la alegere. Prima etapa a temei consta in a posta in forumul destinat temei (pana marti 06.11) a alegerii comunitatii facute (pentru a fi validata) si a descrierii tipurilor de interactiuni ce vor fi extrase.

Observatie1: membrii aceleiasi echipe de proiect nu au voie sa-si aleaga aceeasi comunitate pentru analiza.

Observatie2: Tema va va permite sa invatati urmatoarele lucruri

· Scrierea/utilizarea unui mic crawler web

· Analiza unui document formatat (SGML/XML) si prelucrarea datelor din acesta folosind metodele descrise la laborator

Tema 1

TEMA1 : 13 octombrie 2007 - 22 octombrie 2007

Enunt:
Sa se defineasca (folosind DTD) un format de fisier XML pentru descrierea profilului personal precum si al relatiilor sociale. Profilul personal ar trebui sa contina atat date de identificare personala cat si date despre studii, serviciu, etc. Datele despre relatiile sociale ar trebui sa refere alte profile si sa descrie tipul de relatie (prietenie, business, etc)
Sa se creeze un fisier XML (corespunzator cu fisierul DTD creat) care sa descrie profilul personal al autorului temei.

Se va uploada pe site tema ca fisier ZIP ce va contine 1 fisier DTD si 1 fisier XML. Numele fisierului ZIP va fi de forma Grupa_Nume_Prenume.zip

vineri, 9 noiembrie 2007

Google Reader

Google Reader a devenit din ce in ce mai popular, ajungand acum la 101.000 utilizatori. El functioneaza ca un email doar ca mesajele care ajung in contul tau nu sunt altceva decat continutul unor situri. Poti astfel sa fii informat despre ultimele noutati din diverse categorii precum: Tehnologie, Stiinta, Stiri, Sport, Distractii, Celebritati, Fotografie, Masini si multe altele.
Google reader face astfel legatura intre domeniile tale de interes si continutul inrtregului WWW.

Mai nou a fost implementata posibilitatea de a include un "blogroll" pe site-urile citite astfel incat prietenii, familia sau prietenii sa poata sa vada ce-mi place sa citesc.

marți, 6 noiembrie 2007

Bun venit

Bun venit pe blog-ul nostru.
Sunteti binevenit sa publicati orice articol referitor la tehnologiile web preferate, sa aduceti idei noi care cu siguranta vor ajuta alti colegi de breasla la realizarea unui site.