Cuprinsul şi introducerea lucrării Programare RSS, Atom şi Podcast, publicată la sfârşitul lunii septembrie 2008 la editura Institutul European din Iaşi.
Programare RSS Atom şi Podcast - cuprins şi introducere
1. 5
Cuprins
Cuprins ............................................................................................................... 5
Introducere....................................................................................................... 11
Capitolul 1 De la Gutenberg la Internet........................................................ 17
1.1 Materiale tipărite ..................................................................................... 17
1.1.1 Cărți................................................................................................. 17
1.1.2 Ziare ................................................................................................ 18
1.1.3 Reviste............................................................................................. 19
1.2 Media de difuzare .................................................................................... 20
1.2.1 Radio ............................................................................................... 20
1.2.2 Televiziune...................................................................................... 21
1.3 Internet..................................................................................................... 22
1.3.1 Scurt istoric al Internetului .............................................................. 23
1.3.2 Serviciul de poştă electronică.......................................................... 24
1.4 World Wide Web..................................................................................... 27
1.4.1 Introducere în Web.......................................................................... 27
1.4.2 Vechiul Web.................................................................................... 30
1.4.3 Noul Web (ce-i al meu e şi al tău)................................................... 31
1.4.4 Bloguri. Microbloguri ..................................................................... 33
1.4.5 Mediatizare Web. Fluxuri de ştiri.................................................... 38
Capitolul 2 Limbajul XML............................................................................. 41
2.1 Caracteristicile limbajului XML.............................................................. 41
2.2 Familia de limbaje XML ......................................................................... 42
2.3 Structura documentelor XML.................................................................. 42
2.3.1 Declarația XML............................................................................... 43
2.3.2 Elemente.......................................................................................... 43
2.3.3 Atribute ........................................................................................... 45
2.3.4 Entități ............................................................................................. 46
2.3.5 Secțiuni CDATA ............................................................................. 46
2.3.6 Instrucțiuni de procesare ................................................................. 47
2.4 Spații de nume XML ............................................................................... 48
2. 6
2.5 Documente XML bine formatate şi valide .............................................. 50
2.5.1 Documente XML bine formatate .................................................... 50
2.5.2 Documente XML valide.................................................................. 50
2.6 Utilizarea limbajului XML ...................................................................... 51
Capitolul 3 Introducere în RDF ..................................................................... 53
3.1 Web-ul semantic...................................................................................... 53
3.1.1 Aspecte reprezentative .................................................................... 53
3.1.2 Arhitectură. Niveluri ....................................................................... 54
3.2 Specificarea metadatelor folosind RDF................................................... 55
3.2.1 Modelul de bază .............................................................................. 55
3.2.2 Containere RDF............................................................................... 58
3.2.3 Vocabulare de metadate .................................................................. 59
3.2.4 Vocabularul Dublin Core ................................................................ 60
Capitolul 4 Formatul RSS............................................................................... 63
4.1 Istoricul RSS............................................................................................ 63
4.1.1 Precursori RSS ................................................................................ 63
4.1.2 RSS: un acronim cu multiple semnificații....................................... 64
4.2 Formatul RSS 1.0 .................................................................................... 66
4.2.1 Introducere ...................................................................................... 66
4.2.2 Elemente RSS 1.0............................................................................ 66
4.3 Formatul RSS 2.0 .................................................................................... 71
4.3.1 Spaţii de nume în RSS 2.0............................................................... 72
4.3.2 Elemente RSS 2.0............................................................................ 72
4.4 Extensii RSS............................................................................................ 80
4.4.1 Extensii RSS 1.0.............................................................................. 80
4.4.2 Extensii RSS 2.0.............................................................................. 84
4.4.3 Extensii comune .............................................................................. 90
4.5 Utilizarea formatului (X)HTML în RSS ................................................. 94
4.5.1 Utilizarea secvenţelor escape .......................................................... 94
4.5.2 Utilizarea secţiunilor CDATA......................................................... 95
4.6 Validarea documentelor RSS................................................................... 96
4.7 Utilizarea RSS în aplicaţiile mashup ....................................................... 97
3. 7
4.7.1 Aplicaţii mashup ............................................................................. 97
4.7.1 Aplicaţii geo-mashup ..................................................................... 98
Capitolul 5 Feed-uri Podcast. Extensii media RSS 2.0............................... 103
5.1 Introducere în podcast ........................................................................... 103
5.1.1 Dicţionar de termeni...................................................................... 103
5.1.2 Redarea feed-urilor Podcast .......................................................... 105
5.1.3 Utilizarea podcast-urilor................................................................ 106
5.1.4 Podcasting vs. streaming ............................................................... 106
5.1.5 Crearea feed-urilor Podcast ........................................................... 107
5.2 Yahoo! Media RSS................................................................................ 108
5.3 Apple iTunes Podcast ............................................................................ 111
5.4 Un exemplu de utilizare a extensiilor media ......................................... 115
5.5 Validarea feed-urilor Podcast ................................................................ 117
Capitolul 6 Formatul Atom .......................................................................... 119
6.1 Istoricul Atom........................................................................................ 119
6.1.1 Atom 0.3........................................................................................ 119
6.1.2 Atom 1.0........................................................................................ 119
6.2 Formatul şi protocolul Atom 1.0 ........................................................... 120
6.2.1 Formatul Atom 1.0 ........................................................................ 120
6.2.2 Protocolul Atom 1.0 ...................................................................... 126
6.2.3 Utilizarea modulelor în documentele Atom .................................. 126
6.2.4 Validarea documentelor Atom ...................................................... 126
6.3 hAtom.................................................................................................... 126
6.3.1 Introducere în microformate.......................................................... 127
6.3.2 Feed-uri hAtom ............................................................................. 130
Capitolul 7 Formatul OPML ........................................................................ 133
7.1 Documente OPML................................................................................. 133
7.1.1 Secţiunea antet............................................................................... 133
7.1.2 Corpul documentelor..................................................................... 134
7.1.4 Directoare OPML.......................................................................... 136
7.1.5 Tipuri MIME ................................................................................. 136
7.1.6 Validarea documentelor OPML ................................................... 136
4. 8
7.2 Liste de feed-uri..................................................................................... 136
7.2.1 Atribute obligatorii........................................................................ 137
7.2.2 Atribute opţionale.......................................................................... 137
Capitolul 8 Crearea feed-urilor şi a listelor OPML ................................... 141
8.1 Crearea manuală a feed-urilor ............................................................... 141
8.2 Generarea automată a feed-urilor .......................................................... 142
8.3 Crearea feed-urilor RSS folosind aplicaţii Open Surce......................... 142
8.3.1 Generarea feed-urilor RSS folosind PHP şi MySQL .................... 142
8.3.2 Generarea feed-urilor RSS folosind FeedCreator ......................... 150
8.4 Crearea feed-urilor folosind instrumente online.................................... 152
8.5 Crearea feed-urilor folosind aplicaţii desktop ....................................... 153
8.6 Crearea listelor de feed-uri folosind instrumente online ....................... 153
8.7 Crearea feed-urilor podcast ................................................................... 154
Capitolul 9 Publicarea, căutarea şi managementul feed-urilor................. 155
9.1 Publicarea feed-urilor şi listelor OPML ................................................ 155
9.1.1 Utilizarea butoanelor XML, Atom, RSS şi OPML ....................... 155
9.1.2 Utilizarea legăturilor ..................................................................... 157
9.1.3 Activarea autodescoperirii............................................................. 157
9.1.4 Directoare de feed-uri.................................................................... 158
9.1.5 Directoare de podcast-uri .............................................................. 159
9.2 Căutarea în feed-uri şi în documentele OPML...................................... 160
9.2.1 Creare RSS de căutare................................................................... 160
9.2.2 Motoare de căutare pentru feed-uri ............................................... 160
9.2.3 Motoare de căutare pentru documente OPML .............................. 162
9.2.4 Motoare de căutare pentru podcast-uri.......................................... 162
9.3 Managementul feed-urilor. FeedBurner ................................................ 163
9.3.1 Contorizarea abonaţilor ................................................................. 164
9.3.2 Optimizarea feed-ului.................................................................... 164
9.3.3 Publicarea feed-ului....................................................................... 164
9.3.4 Cum se pot face bani folosind propriul feed ................................. 165
9.3.5 Managementul feed-urilor podcast................................................ 165
9.3.6 Două motive pentru a folosi FeedBurner ...................................... 166
5. 9
9.4 Publicarea podcast-urilor....................................................................... 167
Capitolul 10 Procesarea feed-urilor şi a listelor OPML............................. 169
10.1 Conversia feed-urilor în format (X)HTML folosind PHP................... 169
10.1.1 Procesor RSS folosind SAX........................................................ 170
10.1.2 Agregator RSS folosind lastRSS................................................. 175
10.1.3 Procesor RSS folosind MagpieRSS ............................................ 179
10.2 Conversia feed-urilor în (X)HTML folosind XSLT............................ 180
10.3 Conversia documentelor OPML în (X)HTML folosind XSLT........... 185
10.4 Integrarea în pagină a feed-urilor folosind tehnica AJAX................... 186
10.4.1 Procesarea pe client a feed-ului................................................... 188
10.4.2 Procesarea pe server a feed-ului.................................................. 196
10.5 Conversia feed-urilor Atom în RSS..................................................... 201
Capitolul 11 Abonarea la feed-uri şi la listele OPML ................................ 203
11.1 Agregatoare de feed-uri bazate pe Web............................................... 203
11.1.1 Agregatoare de sine stătătoare..................................................... 203
11.1.2 Agregatoare găzduite de motoarele de căutare clasice................ 204
11.2 Agregatoare de feed-uri pentru desktop .............................................. 204
11.3 Agregatoare de feed-uri incluse în aplicaţii......................................... 206
11.3.1 Browserele ca agregatoare........................................................... 206
11.4 Cele mai utilizate agregatoare pentru feed-uri..................................... 207
11.5 Cititoare OPML ................................................................................... 209
11.6 Cititoare de feed-uri pentru dispozitive mobile ................................... 210
11.7 Abonarea la listele de feed-uri. Grazr.................................................. 211
11.8 Abonarea la podcast-uri....................................................................... 212
Capitolul 12 Alte aplicaţii ............................................................................. 213
12.1 RSS-uri de grup ................................................................................... 213
12.2 Transformarea unei pagini Web într-un feed RSS .............................. 214
12.3 Notificare prin e-mail .......................................................................... 215
12.4 Afişare RSS într-o pagină Web ........................................................... 216
12.5 Transformarea RSS în Podcast ............................................................ 217
12.6 Personalizarea conţinutului.................................................................. 217
6. 10
12.7 Conversia feed-urilor în format PDF................................................... 217
Anexă Acronime ............................................................................................ 219
Bibliografie..................................................................................................... 223
7. 11
Introducere
Studiază mai întâi ştiinţa şi continuă apoi
cu practica născută din această ştiinţă.
Leonardo da Vinci
Preambul
Era informatică a determinat apariţia unor modalităţi de comunicare
necunoscute anterior. La începutul său a fost e-mail-ul! Acesta – devenit astăzi
ubicuu – reprezintă o modalitate eficientă de comunicare, fiind utilizat de un
număr foarte mare de oameni.
Următoarea schimbare revoluţionară în modalităţile de comunicare a fost
reprezentată de Web. Prin intermediul său, atât companiile cât şi indivizii oferă
informaţii tuturor celor interesați, de cele mai multe ori gratuit. Astăzi, Web-ul
este omniprezent în viața oamenilor, fiind folosit pentru comerţ, informare,
comunicare, socializare şi divertisment. Tipuri particulare de situri Web sunt
blogul (adică weblog: jurnal pe Web) şi microblogul. Nu întâmplător,
microblogging-ul este considerat de mulţi ca reprezentând tehnologia Web 2.0 a
anului 2008.
Deşi sunt utilizate pe scară largă, atât e-mail-ul cât şi Web-ul au propriile lor
probleme. Astfel, mesajele de e-mail reprezintă într-o proporție importantă
spam1. Costurile determinate de citirea/ştergerea mesajelor nedorite, exprimate
în timp şi alte resurse, sunt foarte mari, atât pentru firme cât şi pentru persoanele
particulare. Deşi informațiile oferite pe Web sunt adesea importante şi actuale,
căutarea lor implică efort şi costuri ridicate (într-un anumit sens, informaţiile nu
„vin” la utilizatori, ci – mai degrabă – aceştia „se duc” la ele).
Următorul pas în evoluția comunicării în era informatică l-a reprezentat
tehnologiile de mediatizare/sindicare a conţinutului. Acestea reprezintă
modalități de publicare/distribuire a informațiilor noi incluse în siturile Web,
sub forma unor feed-uri sau canale de ştiri, folosind formate structurate
standardizate (RSS şi Atom), în vederea partajării cu alte aplicaţii. Un tip
special de feed RSS – folosit astăzi din ce în ce mai mult – este podcast-ul,
utilizat în scopul distribuirii conţinutului multimedia.
1
Spamul reprezintă mesaje de e-mail nesolicitate, de cele mai multe ori cu caracter
comercial, de publicitate pentru produse și servicii adesea dubioase, distingându-se prin
caracterul agresiv și prin eliminarea dreptului la opțiune (de a le primi sau nu).
8. 12
În timp scurt, tehnologiile de mediatizare a conţinutului siturilor Web au devenit
foarte populare, fiind adoptate în special de bloguri, dar şi de majoritatea
publicaţiilor/ziarelor electronice, situri ale firmelor etc. Studii recente
demonstrează că aproape fiecare utilizator de Internet accesează zilnic cel puţin
un blog, de multe ori prin intermediul canalelor de ştiri asociate. Astăzi, nu se
mai pune probleme găsirii feed-urilor, acestea fiind practic omniprezente, ci a
selectării celor care prezintă interes pentru utilizator.
Serviciile şi aplicaţiile care gravitează în jurul tehnologiilor de mediatizare sunt
în continuă dezvoltare şi diversificare, fiind create instrumente de publicare,
cititoare/agregatoare, directoare şi motoare de căutare specializate, servicii
statistice etc.
Scopul cărții. Destinatari
Scopul avut în vedere la scrierea cărţii de faţă este acela de a oferi cititorilor un
îndrumar pentru înţelegerea şi utilizarea tehnologiilor de mediatizare a
conţinutului siturilor Web.
În ceea ce priveşte destinatarii, aceştia fac parte din trei categorii. În primul
rând, lucrarea se adresează programatorilor şi administratorilor Web,
îndrumându-i în activitatea de creare şi publicare a feed-urilor care vor fi oferite
vizitatorilor siturilor.
În al doilea rând, lucrarea are ca ţintă utilizatorii obişnuiţi, navigatori în spaţiul
virtual imens al Web-ului, aflaţi în căutarea unor informaţii aparţinând unor
domenii de interes specifice, care doresc să-şi organizeze
sursele de informare, aflate într-o rapidă creştere numerică si diversificare
tematică.
De asemenea, lucrarea poate fi utilă elevilor de liceu (mai ales celor care
studiază în clasele având specializarea matematică-informatică), studenţilor din
primii ani ai facultăţilor cu profil informatic şi înrudit cu acesta (matematic,
economic), cadrelor didactice (atât din învăţământul preuniversitar cât şi cel
universitar), autodidacţilor, precum şi celor care urmează studii de reconversie
profesională, inclusiv postuniversitare.
Ce conține cartea
Cartea include douăsprezece capitole, în care sunt prezentate subiecte de mare
interes pentru cititor, referitoare la aspecte particulare ale temei generale
abordate (tehnologiile de mediatizare a conţinutului siturilor Web), şi o anexă.
În primul capitol – De la Gutenberg la Internet – se realizează o scurtă trecere
în revistă a surselor de informare/comunicare utilizate de om (începând cu
9. 13
secolul al XV-lea), pornind de la materialele tipărite (cărţi, reviste, ziare),
continuând cu radioul şi televiziunea şi ajungând la Internet.
În capitolul al doilea – Limbajul XML – este prezentat pe scurt limbajul care stă
la baza tuturor tehnologiilor de mediatizare Web, precum şi modalităţi de
utilizare a acestuia (XML – Extensible Markup Language).
Capitolul al treilea al lucrării – Introducere în RDF – este dedicat prezentării
unor aspecte generale ale Web-ului semantic, precum şi limbajului RDF
(Resource Description Framework), acesta din urmă fiind utilizat în prima
tehnologie de mediatizare Web (din punct de vedere cronologic).
În capitolul al patrulea – Formatul RSS – este prezentată cea mai utilizată
tehnologie de mediatizare Web. RSS este un acronim cu multiple semnificaţii,
cea mai nouă fiind Really Simple Syndication (sau RSS 2.0). Tot în acest capitol
– în partea sa ultimă – este ilustrată folosirea formatului RSS (împreună cu
modulul de extensie GeoRSS) pentru furnizarea de informaţii aplicaţiilor geo-
mashup, create pe baza serviciul Google Maps.
Capitolul al cincilea – Feed-uri Podcast. Extensii media RSS 2.0 – este dedicat
prezentării unui subiect de mare actualitate, anume tehnologia feed-urilor
podcast/videocast, utilizată pe scară largă în educaţie, dar şi de către posturile
de radio/televiziune pentru difuzarea pieselor muzicale/video/clipurilor şi a
ştirilor. Aceste feed-uri pot fi accesate atât pe calculatoare desktop/laptop, cât şi
pe dispozitive mobile (PDA-uri şi telefoane inteligente – smartphones).
În capitolul al şaselea al lucrării – Formatul Atom – este prezentată o tehnologie
de mediatizare Web apărută relativ recent, precum şi microformatul hAtom din
care pot fi derivate prin procesare feed-uri Atom.
În capitolul al şaptelea al lucrării – Formatul OPML – este abordat subiectul
listelor de feed-uri, modalitate eficientă de utilizare simultană a mai multor
canale de ştiri.
După prezentarea tehnologiilor de mediatizare Web realizată în primele opt
capitole ale lucrării, în ultimele patru capitole sunt prezentate modalităţi de
creare, publicare şi procesare a feed-urilor şi a listelor OPML, precum şi de
abonare la acestea.
Capitolul al optulea – Crearea feed-urilor şi a listelor OPML – este dedicat
prezentării unor modalităţi de obţinere a feed-urilor şi a listelor de feed-uri, prin
intermediul unor aplicaţii diverse (online şi desktop).
Capitolul al nouălea – Publicarea, căutarea şi managementul feed-urilor –
oferă cititorului modalităţi de publicare şi căutare a feed-urilor RSS, Atom,
10. 14
Podcast şi a listelor OPML. De asemenea, este prezentată aplicaţia online
FeedBurner, utilizată pentru managementul feed-urilor.
În capitolul al zecelea – Procesarea feed-urilor şi a listelor OPML – sunt
abordate modalităţi de conversie a feed-urilor şi a listelor OPML în format
(X)HTML, folosind limbajele PHP (PHP: Hypertext Preprocessor) şi XSLT
(XSL Tranformations). De asemenea este oferită cititorului o modalitate de
integrare a conţinutului feed-urilor în paginile Web şi de actualizare asincronă a
acestuia folosind tehnica AJAX (Asynchronous Javascript and XML).
Capitolul al unsprezecelea – Abonarea la feed-uri şi la listele OPML – îndrumă
cititorul în găsirea celor mai utilizate instrumente pentru abonarea la feed-uri.
Sunt prezentate atât agregatoare online şi desktop, dar şi unele folosite în
dispozitivele mobile.
Ultimul capitol al lucrării – Alte aplicaţii – este dedicat prezentării unor
instrumente software utilizate în diverse scopuri (toate având legătură cu
tehnologiile de mediatizare a conţinutului Web), dintre care menţionăm
notificarea prin e-mail a actualizării feed-urilor, transformarea unei pagini Web
într-un feed RSS şi conversia feed-urilor în documente PDF.
În Anexă sunt prezentate acronimele termenilor utilizaţi în lucrare sau aflaţi în
legătură cu aceştia
Convenții de tehnoredactare
Pentru a facilita parcurgerea lucrării de faţă, au fost utilizate următoarele
convenţii de reprezentare a conţinutului acesteia:
• numele claselor/obiectelor, precum şi ale proprietăţilor, funcţiilor,
metodelor PHP au fost scrise folosind un corp de literă monospaţiat
(Courier);
• pentru scrierea numelor bazelor de date şi ale tabelelor MySQL,
numelor fişierelor şi aplicaţiilor, directoarelor, căilor de localizare şi
extensiilor de fişiere, precum şi a URL-urilor s-a utilizat stilul italic;
• documentele/scripturile/secvenţele de cod XHTML, XML, RDF, RSS,
Atom, OPML, XSLT, CSS, JavaScript şi PHP au fost delimitate printr-
o bară verticală plasată în partea stângă a acestora;
• pentru evidenţierea definiţiilor, analizelor, observaţiilor şi notelor
oferite cititorului în scopul asimilării corecte a informaţiilor prezentate
în carte, s-au folosit indicatori (pentru detalii, a se vedea secţiunea
următoare);
• e.g. este acronimul pentru exempli gratia (de exemplu, în limba latină);
• i.e. este acronimul pentru id est (cu alte cuvinte, adică în limba latină).
11. 15
Semnificația indicatorilor
În lucrare sunt utilizaţi cinci indicatori, aceştia având următoarele semnificaţii:
Indicatorului Atenţie îi corespunde un text care trebuie
parcurs obligatoriu de către cititor. Textul atrage atenţia
acestuia asupra unor greşeli/probleme posibile pe care le
poate săvârşi sau întâlni în activitatea sa de programator.
Indicatorului Important îi este asociat un text care, de
asemenea, trebuie citit obligatoriu de către cititor, pentru ca
acesta să-şi formeze o imagine corectă asupra subiectului
prezentat.
Indicatorului Notă îi corespunde un text care conţine
informaţii utile cititorului, dar nu indispensabile. Este indicat,
totuşi, a se citi şi notele incluse în lucrare, în scopul
consolidării cunoştinţelor prezentate.
Indicatorul Definiţie este asociat, după cum îi spune şi
numele, unui text care conţine definiţia unei noţiuni etc.
Indicatorului Istoric îi corespunde un text care prezintă pe
scurt istoricul unui concept, limbaj etc.
Software necesar
Pentru a verifica partea care se execută pe client a unor exemple prezentate în
lucrare, este util să se instaleze pe calculatorul cititorului unele browsere des
folosite (e.g., pe platforma Windows, alături de Internet Explorer pot fi instalate
Firefox, Safari şi Opera, iar pe platforma Linux, se pot utiliza Firefox, Mozilla
şi Konqueror).
În scopul execuţiei unor scripturi/aplicaţii propuse spre analiză, cititorul va
instala pe calculatorul său serverul Web Apache, serverul de aplicaţii PHP
(versiunea 5) şi sistemul de gestiune a bazelor de date relaţionale MySQL.
Pentru facilitarea managementului bazelor de date MySQL (4.1 şi 5.0) se poate
instala, configura şi utiliza aplicaţia open source phpMyAdmin, atât pe
platforma Windows, cât şi pe UNIX/Linux.
Aplicaţiile prezentate în lucrare vor fi salvate în subdirectorul programarerss
creat în directorul desemnat ca DocumentRoot (rădăcina documentelor), pe
platforma Windows acesta fiind – implicit – C:/Program Files/Apache
Group/Apache2/htdocs.
Traian Anghel, Brăila, iunie 2008