Olivier Mengué – Code & rando

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

vendredi 4 juillet 2008

À Vélib’, pratiquez-vous la « chronoculture » ?

Depuis le 14 juin Vélib’ a ajouté une caractéristique au compte abonné : le « Bonus V’+ ». Le principe est de récompenser les utilisateurs qui ramènent des Vélib’ aux stations les plus dépourvues : celles situées en haut des collines de Paris. Découvrez la chronoculture !

Lire la suite...

mercredi 23 janvier 2008

Sous le capot d'une station Vélib’

Ce soir, j'ai assisté par hasard au reboot d'une station Vélib’.

Lire la suite...

lundi 3 septembre 2007

Paris Bluetooth MobiGuide : première réaction sur la forme

Je viens de découvrir ce soir que la Mairie de Paris a commencé une expérimentation de diffusion de contenu par Bluetooth à partir des stations Vélib’ : le Paris Bluetooth MobiGuide. Voici mes premières réactions, plutôt d'un point de vue technique (comme souvent ici), c'est à dire sur la forme plutôt que sur le fond et notamment du point de vue d'un utilisateur de Nokia N800.

Il y a quelques mois j'avais déjà reçu par Bluetooth une image JPEG de l'affiche du film Spiderman 3 en passant à coté d'un panneau d'affichage sur le boulevard Haussmann. J'ai repéré un panneau semblable du côté de la rue de la Gaîté. Dans le cas du MobiGuide, c'est potentiellement, pour le récepteur, une utilisation plus intéressante de la technologie Bluetooth.

Le MobiGuide est disponible de plusieurs façons :

  • pour consultation hors-ligne sur un téléphone mobile, sous la forme d'une application Java à installer après téléchargement :
    • par diffusion vers le téléphone mobile depuis des fontaines Bluetooth placées à des stations Vélib' ;
    • par téléchargement depuis en allant naviguer sur http://mobile.paris.fr/ ;
    • par téléchargement avec un ordinateur sur paris.fr ;
  • par consultation en ligne sur http://mobile.paris.fr/.

Ma première réaction : malgré la multiplicité des moyens d'accès, aucun ne me permet d'accéder facilement au MobiGuide avec les appareils dont je dispose :

  • L'application Java ne fonctionne que sur appareils mobiles, pas sur PC.
  • Le Nokia N800 est un appareil mobile qui dispose d'un chip Bluetooth, mais il n'a pas de machine virtuelle Java.
  • Mon téléphone mobile (Nokia 3100) n'a pas la capacité mémoire suffisante pour stocker l'application. 300 Ko, c'est trop pour lui !
  • Le site en ligne est inaccessible aux navigateurs web standards à cause d'un bête problème de configuration du serveur :
    C:\>curl -I http://www.v2asp.paris.fr/v2/mobile/bluetooth/site_PB1er/index.xhtml
    HTTP/1.1 200 OK
    Server: Microsoft-IIS/5.0
    Date: Sun, 02 Sep 2007 22:04:48 GMT
    Content-Type: application/octet-stream
    Accept-Ranges: bytes
    Last-Modified: Mon, 30 Jul 2007 14:25:45 GMT
    ETag: "20399984b5d2c71:86e"
    Content-Length: 1383
    Le Content-Type devrait être « application/xhtml+xml; charset=iso-8859-1 ». Ce simple paramètre bloque la consultation sur le N800 ou sur un PC (MSIE, Firefox) : au lieu de simplement montrer le fichier, le navigateur propose de le télécharger. Quant aux téléphones mobiles, le navigateur intégré de mon Nokia 3100 indique « Réponse inconnue », et Opera Mini signale « Opera Mini Basic ne supporte pas les téléchargements. Ignore "index.xhtml" avec le type "application/octet-stream". »

Je suis finalement arrivé (mais c'est laborieux) à accéder au contenu hors-ligne entièrement depuis mon N800 en bidouillant ainsi :

  1. téléchargement par wifi de Paris1.jar (j'aurais aussi pu aller me rendre à une fontaine Bluetooth pour récupérer le fichier, mais bon, j'habite pas à côté) ;
  2. renommage de Paris1.jar en Paris1.zip ;
  3. décompression de Paris1.zip dans le répertoire Paris1 ;
  4. lancement du navigateur web (l'extension .xhtml n'est pas reconnue directement depuis le Gestionnaire de fichiers) ;
  5. menu Page Web, Ouvrir fichier... pour ouvrir Paris1/microsite/index.xhtml ;
  6. ça y est ! J'accède au contenu XHTML.

Le résultat : j'obtiens un site qui ne prend même pas un quart de l'écran parce que la largeur est fixée en dur sur chaque page à 176 pixels (alors que l'écran du N800 fait 800 pixels). Et j'aboutis à des impasses telles que http://www.v2asp.paris.fr/v2/mobile/bluetooth/site_PB1er/622_ballades.xhtml où les liens pointent vers des fichiers texte qui sont probablement utilisés par l'application Java pour afficher des cartes, mais qui ne sont visibles ni dans le N800 ni sur le PC.

En résumé, c'est plutôt un fiasco. Faut que ça mûrisse encore pour être disponible sur un plus grand nombre de plateformes.

vendredi 24 août 2007

Pipes Vélib’ sur mobile

Suite à mon billet sur Vélib’ et Yahoo! Pipes, j'ai testé un pipe Yahoo! dans le navigateur de mon téléphone mobile (un Nokia 3100, plutôt bas de gamme de Nokia, mais que j'exploite bien plus que l'utilisateur lambda). Ça fonctionne dans Opera Mini, même si ce n'est pas génial. Chez Yahoo! ils n'ont pas encore pensé à adapter le format.

J'en profite pour faire la pub pour Opera Mini, le navigateur que j'utilise. Il est gratuit et est disponible pour la plupart des téléphones disposant d'une machine virtuelle Java. Et malgré la faible capacité mémoire de mon téléphone, il fonctionne très bien (à part quelques erreurs "Mémoire insuffisante") pour lire des actualités. Et il sait même lire les flux RSS.

Pour faciliter la saisie de l'URL du pipe, j'ai utilisé tinyurl.com pour créer une URL courte : http://tinyurl.com/2o26e6.

Et pour avoir vos directement stations favorites (plutôt que le formulaire de saisie) vous pouvez créer vos propres URL courtes. Ainsi, pour obtenir les informations sur les stations 5026, 5027, 13001 et 13005 j'ai mis dans mes favoris l'URL courte http://tinyurl.com/3dmx5b pointant vers http://pipes.yahoo.com/pipes/pipe.run?_id=YGAJFE5L3BGsu_WZtiI0fw&_render=rss&station1=5026&station2=5027&station3=13001&station4=13005.

Les pipes peuvent aussi être reçu au format RSS en ajoutant "&_render=rss" à l'URL. Opera Mini sait aussi lire les flux RSS. Mais malheureusement, tinyurl.com ne renvoie pas le type MIME correspondant au document original et cela perturbe le navigateur. Donc pas de tinyurl pour les RSS.

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...

dimanche 12 août 2007

Stations Vélib’ : v2.0

Voici une nouvelle version de mon script de conversion des stations Vélib’ en base POI pour Maemo Mapper sur Nokia N800 (voir mon post précédent).

Parmi les améliorations :

  • un script pour automatiser le processus de transformation 
  • le renseignement du champ poi_id, ce qui corrige le problème d'édition des POI 
  • un index sur la table POI sur les champs latitude, longitude en espérant que cela améliore les temps d'accès. En pratique, je n'ai constaté aucune amélioration ;
  • 4 catégories de POI au lieu d'une seule, pour créer votre propre base des stations : Station Vélib’, Station Vélib’ corrigée, Station Vélib’ validée, Station Vélib’ erronée ;
  • des modifications d'implémentaiton XSLT : l'utilisation de xsl:foreach et un traitement exhaustif des caractères de l'adresse de la station.

Lisez la suite pour le nouveau code...

Lire la suite...

lundi 6 août 2007

Bilan d'une semaine de Vélib’

Il y a une semaine, j'ai souscrit un abonnement Vélib’ 7 jours attaché à mon passe Navigo.

Le bilan est simple : je suis accro ! Vélib’ est le complément idéal au métro, et même un substitut pour certains trajets. Et puis c'est aussi LE vélo du geek : les clés d'antivol, c'est has-been ! C'est la magie du passe sans contact qui libère le vélo. Enfin, cela me donne l'occasion d'utiliser mon N800 comme jamais !

J'avais emprunté 5 vélos dès le premier jour, mardi dernier. Je me suis calmé ensuite en m'en tenant à 2 par jour. Pour le dernier jour, j'en ai emprunté 8 !!! Un ce matin pour mon trajet habituel de la Gare d'Austerlitz aux Gobelins, malgré la petite pluie (j'ai pu constater comment cela effraye les utilisateurs : les stations étaient quasiment pleines). Deux ce midi pour aller faire une course du côté de la rue Montgallet. Et cinq ce soir pour une rando Vélib’ à travers Paris, en alternant vélo et marche à pied, de façon à rester dans la limite des 30 minutes gratuites et à laisser passer 10 minutes entre deux emprunts. Le point culminant fut l'ascension de la Bute Montmarte, avec un passage devant le Sacré Cœur. Un peu plus tard j'ai pu frimer avec mon plan électronique des stations lorsqu'un autre cycliste m'a demandé si je savais où étais la station la plus proche. Mais j'ai merdé sur l'un des trajets : je n'ai pas vu le temps passer le long du canal Saint-Martin et j'ai rendu le vélo à 30 minutes et 42 secondes (j'ai le reçu), donc 1 € facturé, d'après la consultation de mon compte sur la borne. On verra si c'est effectivement débité.

J'ai pu mettre en action le GPS Bluetooth Globalsat BT-359W acheté ce midi. Très petit, il tient dans la poche de chemise. Il a été directement détecté par le Nokia N800 et a presque immédiatement alimenté Maemo Mapper (le temps de « fix » initial m'a un peu fait peur). Heureusement parce que le seul logiciel de diagnostic fourni est un logiciel pour Pocket PC, donc d'aucune utilité pour moi.

Le GPS est l'outil indispensable pour optimiser ma balade dans des quartiers que je ne connais pas. Je peux profiter au maximum des 30 minutes de vélos (le GPS permet d'éviter de chercher les noms des rues sur le terrain puis sur le plan) en localisant à la dernière minute la station la plus proche. Ensuite, marche ou flânerie (selon le quartier) de 10/15 minutes vers une autre station pour reprendre un vélo. Le tout sauvegardé en trace GPX. Enfin presque tout, car Maemo Mapper a planté et m'a donc perdu la première heure de trace. Il a aussi tendance à planter lorsque j'éteins le GPS.

Le GPS m'a servi également à collecter les « vraies » coordonnées de quelques stations. En effet certaines coordonnées de stations sont incorrectes sur le site web. Celle de la rue du Chevaleret (13054) par exemple.

J'ai eu plus de mal à configurer l'accès au GPS depuis Ubuntu. Alors que tout était graphique sur le N800, la configuration sur Ubuntu est manuelle : il faut récupérer l'adresse MAC du périphérique (sudo hcitool scan) et le numéro de canal (sudo sdptool records), éditer /etc/bluetooth/rfcomm.conf pour ajouter la définition de rfcomm0 et enfin lancer la création du périphérique (sudo rfcomm bind /dev/rfcomm0). On peut vérifier que ça fonctionne avec « cat /dev/rfcomm0 ».

jeudi 2 août 2007

Une carte des stations Vélib’ sur Nokia N800

Vélib’, c'est génial ! Abonné depuis deux jours et déjà accro ! Vive le vélo Plug'n Play ! Vive le vélo jetable !

Néanmoins, un outils devient vite indispensable : la carte des stations.

Je suis l'heureux propriétaire d'un Nokia N800 : c'est une « tablette Internet », avec connexions wifi, Bluetooth et un écran 800x480. Le tout fonctionne avec un système ouvert : Linux. Et ça tient dans la poche.

Le logiciel Maemo Mapper pour le N800 permet de télécharger des fonds de carte (Google Maps notamment) et de les afficher. Ces cartes peuvent aussi être récupérées dans un cache pour consultation hors-ligne. Ainsi on peut avoir tous les plans de Paris de Google Maps dans la poche, sans connexion Internet. Maemo Mapper peut aussi afficher les informations d'un GPS Bluetooth.

J'ai donc créé une base de points d'intérêt (POI) pour afficher les stations Vélib’ dans Maemo Mapper.

Mais ma source des données pour les emplacements des stations n'est pas libre : il s'agit du fichier XML publié sur le site officiel (http://www.velib.paris.fr/service/carto, voir ce forum). Je préfère donc éviter de distribuer le fichier terminé. Je vais par contre vous expliquer comment recréer vous-même ce fichier.

Photo de mon N800 avec Maemo Mapper affichant un plan de Paris avec les stations Vélib'

Lisez la suite de ce post pour voir le code...

Lire la suite...