mercredi 8 septembre 2010

Conception d'un service pour Mac OS : raccourcisseur d'URL

Le service web : bit.ly / j.mp

Bit.ly (qui existe aussi sous le nom J.mp[1]) est un outil web pour raccourcir les URL. Comme beaucoup d'autres outils web similaires, il propose une API qui permet d'interagir avec lui de façon automatisée.

About bit.ly
bit.ly allows users to shorten, share, and track links (URLs). Reducing the URL length makes sharing easier. bit.ly can be accessed through our website, bookmarklets and a robust and open API. bit.ly is also integrated into several popular third-party tools such as Tweetdeck. A more full list of third party tools can be found on the bit.ly blog. Unique user-level and aggregate links are created, allowing users to view complete, real-time traffic and referrer data, as well as location and metadata. Tracking stats are available after users shorten their long links with bit.ly by clicking on the “Info+” link on bit.ly, or just adding a “+” sign to the end of any bit.ly link (for example, http://bit.ly/n0og+).
[2]

J'utilise j.mp[3] au quotidien car il propose des outils intéressants pour le suivi et l'archivage des raccourcis créés. Il est tout à fait possible d'utiliser un autre outil à la place.

Code

Pour créer le service, nous allons utiliser l'IDE Automator d'Apple. Automator permet de combiner des « briques » élémentaires logicielles pour construire un workflow basic. Il s'agit donc d'un outil pour concevoir aisément des tâches automatisées. Service web Mac OS - j.mp - création de projet

Les services sont des processus contextuels disponibles dans Mac OS X. Ils acceptent du texte ou des fichiers de l’application actuelle ou du Finder. Les services apparaissent dans le menu Services.

Service web Mac OS - j.mp - code Le code en lui-même est très court : alimenté par le sélecteur automatique d'URL, on effectue une requête http sur l'API du service web pour récupérer l'adresse raccourcie; on la place alors dans le presse-papier du système. Cela signifie combiner deux briques d'Automator : exécution d'un script UNIX, et placer un élément dans le presse-papier.

Le script est une simple requête CURL utilisant en entrée les données fournies par le sélecteur : /usr/bin/curl "http://api.bit.ly/v3/shorten?login=IDENTIFIANT&apiKey=CLÉAPI&format=txt&domain=j.mp&longUrl=$1".

Avertissement : cette méthode implique de mettre en dur dans le code l'identifiant et la clé de l'API. Cela ne pose pas un problème en soit dans le cadre d'une utilisation personnelle, car le service que nous créons (J.mp) est stocké dans le profil de l'utilisateur : ~/Library/Services/J.mp.workflow. Toutefois, en cas de partage il faudra songer à changer les identifiants de connexion au service web; cela peut se faire directement avec un éditeur de texte dans le fichier Contents/document.wflow. Pour un déploiement plus large (plusieurs machines, mise à disposition globale à tous les utilisateurs de la machine, etc), un mécanisme de paramétrage sera à mettre en place (on peut songer à un fichier de préférences dans ~/.config/).

Un fois le code source enregistré dans Automator, le service est immédiatement opérationnel. En effet, MacOS stock directement le service dans ~/Library/Services/ sans demander à l'utilisateur où placer le projet. Pratique, mais inhabituel.

Références

Notes

[1] pour les personnes qui desperately need those two additional free characters in order to make your point, comme l'annonce le blog

[2] source

[3] prononcer jump

mercredi 9 juin 2010

Comparaison appliquée des principaux outils web de calcul d'itinéraire

J’ai eu récemment à faire un déplacement sur Vienne (Isère). Étant un villeurbannais sans voiture, mon choix s’est naturellement porté sur le train pour m’y rendre. Ne connaissant pas du tout Vienne, je me suis tourné vers les outils gratuits du web pour organiser le trajet depuis la gare de Vienne jusqu’à mon lieu de rendez-vous. Leur comparaison sur ce cas concret en dehors des grandes agglomérations fortement couvertes me laisse songeur sur la qualité des zones peu peuplées.

Informations sur le trajet à effectuer :

  • Départ : la gare d'Estressin, à Vienne, en France
  • Arrivée : le 49 avenue Marcelin Berthelot, à Vienne, en France
  • Mode de déplacement : piéton

Google maps

Réglages : Tester soi-même

  • Départ : Gare Estressin, Vienne, France
  • Arrivée : 49 avenue Marcelin Berthelot, Vienne, France
  • Option : piéton

Problème immédiat : Google ne connait pas la gare d'Estressin

# Gare de Vienne‎ - plus d'infos » Place Pierre Semard, 38200 Vienne

# Gare de Givors-Canal‎ - plus d'infos » Avenue du 11 Novembre 1918, 69700 Givors

# Gare de Givors-Ville‎ - plus d'infos »

# Gare du Péage-de-Roussillon‎ - plus d'infos » Place de la Gare, 38550 Péage de Roussillon (Le)

# Gare d'Oullins‎ - plus d'infos » 69600 Oullins

# Gare de Saint-Clair-Les Roches‎ - plus d'infos »

# Gare Saint Paul‎ - plus d'infos » Place Saint-Paul, 69005 Lyon

# Gare de Vénissieux‎ - plus d'infos »

# La Gare 12 Route Nationale, 69560 Sainte-Colombe

Lancer une nouvelle recherche de commerces et services à proximité pour afficher les 7 484 résultats pour Gare Estressin, Vienne

Et son mauvais mappage carte ↔ terrain lui fait placer le n°49 de l'avenue Berthelot à l'endroit du n°8. Vérifier soi-même

Résultat : la proposition d'itinéraire est complètement râtée. C'est dommage, car le mode Street View est extrêmement pratique pour se répérer durant le trajet.

Via Michelin

Réglages : Tester soi-même

  • Départ :
    • ville : Vienne (France)
    • emplacement : gare Estressin
  • Arrivée :
    • ville : Vienne (France)
    • emplacement : 49 avenue Marcelin Berthelot
  • Option : piéton

Suivent aussitôt deux questions & un nettoyage automatique :

  1. confirmer dans une liste que ma ville de Vienne se trouve bien dans l'Isère (38) ? Aucune idée, je dis oui
  2. « gare Estressin » est corrigé automatiquement en « Gare d’Estressin »; ah ben… merci
  3. confirmer dans une liste que ma ville de Vienne se trouve bien dans l'Isère (38), et que 'est bien le 49 avenue Berthelot que je demande ? Je dis oui

Résultat : il est immédiat et délicieux.

  • cartes : globale, détail du départ, détail de l'arrivée, détail sur chaque changement de direction
  • feuille de route très lisible (continuer sur… prendre à droite sur…), avec les distances en kilomètres et en temps
  • possibilité d'imprimer une version papier très lisible et complètes : principales cartes, directions, etc.
  • possibilité d'envoyer les information par email, ou sur un GPS (6 grands fabricants supportés)

Bref, yabon. On sent bien l’efficacité des bases de connaissances de Michelin : les détails sont précis et conformes à la réalité, les informations ultraclaires et tout a été pensé pour faciliter le déplacement de l’utilisateur.

Mappy

Réglages : Tester soi-même

  • Départ : Gare Estressin, Vienne, France
  • Arrivée : 49 avenue Marcelin Berthelot, Vienne, France
  • Option : piéton

Le formulaire de saisie me demande de préciser mon lieu de départ en choisissant entre le Parking de la gare d'Estressin, et la Gare d'Estressin; va pour la gare.

Résultat : il est sans appel.

  • Mappy interprète ma gare d'Estressin comme étant en fait la gare de Vienne, située à l'autre bout de la ville. Ce n'est pas du tout le résultat attendu. Pire, c’est même un résultat trompeur. Pourtant, j'aurais cru que… mais non. Et si je choisis à la place de la gare le parking de la gare d'Estressin, à Estressin, Mappy m'impose la gare de Vienne comme interprétation.
  • L'itinéraire proposé est du coup complètement faux, même s’il est très bien présenté : directions à prendre, distances en mètres et en temps, cartes locales… Mais il est faux.

Yahoo! maps

Réglages : Tester soi-même

  • Départ : Gare Estressin, Vienne, France
  • Arrivée : 49 avenue Marcelin Berthelot, Vienne, France

Résultat : What. The. Fuck. L’envoi de ma recherche est intercepté par un bulle d'aide jaune, à la Windows.

Le lieu que vous avez demandé est introuvable. Voulez-vous essayer avec cette adresse proche : 49, avenue Marcellin Berthelot ? Conseils :

* Vérifiez l’orthographe.

* Spécifiez une nouvelle valeur d’adresse (rue), de ville et de région (département/province/état), ou un code postal.

* Pour signaler une erreur de la carte, cliquez sur ce lien.

J'ai envie de dire « Mais pourquoi ? POURQUOI ? ».

Je valide la bulle d'aide et obtiens le résultat de ma recherche d'itinéraire, avec l'adresse telle que je l'ai demandée.

L'itinéraire proposé est correct, sans plus, car il est surtout adapté aux voitures. La présentation est touffue et les points de passages ne sont pas détaillées (panneaux à suivre, cartes, etc). La carte proposée pour visualiser le trajet est uniquement en mode « plan », aucune photo aérienne ou satellite n'est disponible pour afficher cette zone.

Splendide raté de Yahoo! Maps, car même s'il a trouvé un itinéraire je ne peux que difficilement l’utiliser.

Bing Cartes

Réglages : Tester soi-même

  • Départ : Gare Estressin, Vienne, France
  • Arrivée : 49 avenue Marcelin Berthelot, Vienne, France
  • Option : piéton

Ah ben ça commence bien. Ma gare de départ est inconnue de Bing.

Nous n'avons trouvé aucun résultat correspondant à votre recherche.

Aller, je lui donne un coup de pousse et corrige en « Gare Estressin, France » et je valide.

Résultat : Sans sourciller, Bing m'annonce que :

Aucun itinéraire aussi long n'est disponible pour les piétons. Modifiez vos préférences.

Ce qui est plutôt normal au vu du fait qu'il a interprété ma gare de départ comme étant « Gare, Nord, France ». Tout en quittant Bing, j'apprend en soupirant que Gare est un petit village situé à l'Est de Cambrais; qui se trouve effectivement dans le Nord.

Échec sans appel. En plus, la carte de résultat est moche. Aucun regret.

Conclusions

J'utilise les outils de préparation d'itinéraires depuis de nombreuses années, et je n'ai jamais eu à me plaindre des résultats pour les grandes villes : indication des stations de métro, des sens uniques ou encore des voies piétonnes, photos aériennes des changements de directions, calcul des distances au mètre prêt, etc, le résultat est presque toujours parfait; la différence entre les outils se fait alors sur leur ergonomie et fonctionnalités annexes.

Mais en ce qui concerne les zones moins peuplées (petites villes de province, campagnes, bords de mer, etc) les plans sont très souvent approximatifs. En effet, les outils de cartographie travaillent automatiquement à partir de photos aériennes et satellite, couplées à des données GPS collectées de façon assez cavalières.

Des projets comme OpenStreetMap permettent de réparer ces imprécisions en construisant des cartes libres à partir de différentes sources, libres elles-aussi. La prochaine étape pour améliorer les outils de calcul d'itinéraires sera logiquement de croiser ces bases de connaissances libres avec des bases de connaissances privées de qualité, telles que celle de Michelin.

vendredi 9 avril 2010

Première version du prototype de l'OGVIT

J'ai l'immense plaisir, l'honneur et la joie de vous annoncer qu'une première version de développement de l'OGVIT (Outil générique de Visualisation Interactive de Traces) tourne.

Oh, certes, c'est du brut de décoffrage et il manque encore plusieurs choses, mais la tuyauterie est en place (malgré un problème clairement identifié et contourné), et il est possible de charger une trace produite pour la consulter, et même la tripoter un petit peu.

On peut découvrir sur la capture d'écran :

  • en haut à gauche : le debug du KTBS; on voit les requêtes entrantes et sortantes
  • à droite du KTBS : le collecteur de traces faisant le lien entre weechat et le KTBS; on voit les données internes et le traitement
  • à droite du collecteur de traces : weechat-traces, le client IRC instrumenté pour produire des traces; on voir l'activité dans le chat
  • en bas à droite : le debug de l'OGVIT; on y voit sa détection de l'affichage d'éléments partiellement ou complètement superposés
  • en travers de tout : l'OGVIT qui affiche la trace de weechat; on voit l'axe du temps, les observés codés par couleur (bleu : frappe clavier; rouge moche : connexion)

Première démonstration de l'OGVIT

mardi 13 octobre 2009

Jouer avec un SGBT, c'est possible !

Il m'aura fallu un peu de temps, mais voici enfin deux scripts simples qui permettent de tester le KTBS de PA :

  • lancer_le_ktbs : démarre le KTBS en local
  • initialiser_le_ktbs : alimente le KTBS avec :
    • 1 utilisateur : alice
    • 1 modèle de trace : weechat
    • 1 trace : t01
    • 4 observés :
      1. joindre un canal
      2. envoyer un message
      3. recevoir un message
      4. quitter le canal

Avec ces scripts, il est possible de faire tourner un SGBT contenant des données afin d'interagir avec lui : demande d'observé, transformation, etc

Comment utiliser les scripts ? Facile.

-1) mettez en place un support IPv6 sur votre machine. Une adresse en fe80:* suffit

0) faites un checkout du KTBS : $ svn co https://svn.liris.cnrs.fr/sbt-dev/ktbs-rest-impl/trunk

1) ouvrez un terminal, et lancez le script lancer_le_ktbs avec comme argument le chemin vers bin/ktbs que vous venez de récupérer

Par exemple :

  1. $ ./lancer_le_ktbs ../bin/ktbs
  2. === Using IPV6
  3. KTBS example at http://ip6-localhost:8001/

2) ouvrez un terminal, et lancez le script initialiser_le_ktbs. Admirez la sortie standard qui vous donne les valeurs de retour du KTBS (sauf celle de l'étape 2 qui est filtrée). Admirez également la sortie standard du KTBS qui vous indique les données reçues.

  1. ip6-localhost - - [13/Oct/2009 16:26:51] "POST / HTTP/1.1" 201 0
  2. ip6-localhost - - [13/Oct/2009 16:26:51] "POST /alice/ HTTP/1.1" 201 0
  3. ip6-localhost - - [13/Oct/2009 16:26:52] "PUT /alice/weechat/ HTTP/1.1" 200 386
  4. ip6-localhost - - [13/Oct/2009 16:26:52] "POST /alice/ HTTP/1.1" 201 0
  5. ip6-localhost - - [13/Oct/2009 16:26:52] "POST /alice/t01/ HTTP/1.1" 201 0
  6. ip6-localhost - - [13/Oct/2009 16:26:52] "POST /alice/t01/ HTTP/1.1" 201 0
  7. ip6-localhost - - [13/Oct/2009 16:26:52] "POST /alice/t01/ HTTP/1.1" 201 0
  8. ip6-localhost - - [13/Oct/2009 16:26:52] "POST /alice/t01/ HTTP/1.1" 201 0

Pointez maintenant votre navigateur préféré sur l'interface web du KTBS (http://ip6-localhost:8001/alice/t01/@obsels) et admirez votre trace (ou plus exactement celle d'Alice) de WeeChat conforme au modèle spécifié.



Vous pouvez maintenant travailler avec le KTBS.

vendredi 19 juin 2009

Outil de partage pour les supports visuels de présentation

SlideShare est un outil web de partage de support visuel de présentation (SVP).

Il permet simplement de mettre en ligne ses SVP afin de les diffuser. Mais il apporte en plus des fonctionnalités intéressantes, comme :

  • la notion de groupe, pour rassembler les membres d'une équipe
  • la définition d'une licence pour l'exploitation des contenus
  • des outils à la YouTube pour intégrer les SVP dans une page web
  • un système de commentaire pour obtenir des retours sur ses œuvres
  • des fonctionnalités d'exportation et de téléchargement
  • des fonctionnalités d'enrichissement possible par piste audio
  • le suivi de personnes et d'œuvres intéressantes
  • etc.
Bref, yabon. Fini de s'embêter avec le FTP, la construction (et maintenance !) de page d'index rassemblant le matériel... 3 clics et c'est fait.

En revanche, il ne faut pas oublier qu'un SVP n'est pas un document qui se suffit à lui-même. En effet, comme son nom l'indique c'est bien un support et non pas une ressource autoportée. J'en parle un peu ici.

Pour vous donner une idée de ce qu'il est possible de faire, voici une collection de mes SVP. Sexy, non ?

- page 1 de 3