Olivier Mengué – Code & rando

Aller au contenu | Aller au menu | Aller à la recherche

lundi 11 février 2008

Les programmes télé de Télérama en XMLTV

XMLTV est un format informatique pour les programmes de télévision. Ce format est utilisable dans un nombre grandissant d'applications. Le magazine Télérama propose sur son site une grille des programmes télé, mais juste consultable sur le web. Pas de XMLTV.

Je vous propose donc de combler ce manque avec un petit cours de reverse engineering sur le web et la démonstration de quelques outils pour arriver rapidement à vos fins. La grille de Télérama est une excellente cible pour ce genre d'exercice parce que, vous le verrez, la tâche n'est pas simple, mais possible. Elle donne l'ocassion de montrer l'usage de plusieurs outils (curl, XSLT, Perl) et c'est un exemple de ma démarche de prototypage rapide en utilisant le meilleur de chacun.

MàJ 2008-02-15 : j'ai profondément remanié l'introduction et la conclusion suite à quelques commentaires de lecteurs.

Lire la suite...

mercredi 15 août 2007

Vélib’ et Yahoo! Pipes : vive XML et les services Web !

Le site Vélib’ utilise des services web pour afficher les informations sur les stations :

  • la liste statique des stations : numéro, nom, adresse, latitude, longitude ;
  • les informations dynamiques sur une station : vélos disponibles, emplacements libres, impression de tickets.

Voilà donc une occasion d'expérimenter Yahoo! Pipes, l'application web de développement et d'hébergement de scripts de traitement de données du web.

J'ai réalisé ces quelques « pipes » utilisant les services web Vélib’ :

J'ai voulu créer un pipe recherchant toutes les stations autour d'une adresse donnée. Récupérer une adresse est facile avec le tuyau Location Builder. Mais j'ai rencontré un obstacle insurmontable lorsque j'ai voulu comparer les coordonnées latitude/longitude obtenues avec celles des stations : il impossible de manipuler des nombres flottants et même de convertir du texte en nombre.

Bilan de cette utilisation de Yahoo! Pipes dans Firefox globalement positif :

  • Le concept est génial : c'est la programmation fonctionnelle appliquée aux données structurées du web !
  • L'interface d'enchaînement des tuyaux est très intuitive. Le drag'n drop est parfait : on oublie que l'on est dans une appli web et on est vraiment dans un outil de développement.
  • Le debogueur est génial ! On visualise facilement le résultat de chaque étape de la plomberie.
  • C'est bien plus facile à développer et déboguer que XSLT !

Néanmoins l'étiquette « beta » reste de rigueur :

  • l'API, c.à.d. la liste des tuyaux disponibles, n'est pas très intuitive : je n'ai pas compris la logique du classement
  • la documentation des tuyaux est inexistante : Yahoo! ne propose qu'un exemple comme forme de documentation.
  • la documentation de l'affichage de la sortie des tuyaux est aussi inexistante : les éléments title ou y:location.lat/y:location/lon sont particuliers dans l'affichage final, mais il n'existe nulle part de liste complète de ces éléments.
  • l'API est plutôt incomplète : j'aimerais pouvoir traiter des nombres flottants tels que des coordonnées (latitude, longitude)
  • les regex soit-disant « Perl-like » ne le sont pas. Par exemple \L fonctionne pour mettre en minuscules, mais pas \E. Et comme rien n'est documenté...
  • les transformations de types sont laborieuses : le concept d'« item » est nouveau par rapport à d'autres langages de programmation, mais n'est expliqué nulle part. C'est un Item builder qu'il faut utiliser pour convertir du texte en item, mais il est rangé dans la catégorie des Sources. La réorganisation de l'arbre d'un item se fait en utilisant un tuyau Rename. Et il est impossible de convertir du texte en nombre...