iBeacon dans les transports

Une visite chez Milky, une agence d'innovation digitale qui expérimente notamment iBeacon m'a permis de me mettre à jour sur cette technologie. 

iBeacon, c'est, essentiellement :
  • Un format d'information émis par des balises Bluetooth Low Energy (BLE). Le coût des balises est faible (de l'ordre de 10€), leur portée paramétrable est d'une dizaine de mètres et et leur autonomie d'une dizaine de mois sur batterie L'information diffusée est "statique" et se limite, en gros, à un identifiant de la balise.
  • Une fonctionnalité de iOS qui permet des interactions : notification ou "réveil" d'une application, lorsque le mobile est suffisamment proche d'une balise.
Les applications sont nombreuses dans le domaine du marketing "mobile to mortar", visant à inciter les utilisateurs de mobiles à consommer dans des boutiques. Ces services reposent sur l'exploitation d'informations contextualisés grâce à l'identifiant de la balise. 
C'est intéressant, notamment parce que c'est beaucoup plus simple que des mécanismes existant de type "flashcode" ou cibles NFC, le geste client est beaucoup plus simple et la technologie BLE est présente sur la majorité des téléphones. 
La vidéo ci dessous donne quelques bons exemples de services :


Exemples pour les transports  : 
  • vous entrez dans un bus, un train, une gare et votre téléphone vous propose une notification qui vous donne accès aux prochains arrêts desservis ou les horaires des prochains trains au départ,
  • vous faites la queue devant un automate ou un guichet et on vous propose des solutions alternatives :autres guichets ou automates moins fréquentés, services en lignes...
  • vous oubliez votre bagage, dès que vous vous éloignez de plus de 10 mètres, votre téléphone vous alerte...
  • dans un souterrain ou un espace dans lequel le GPS ne fonctionne pas, les balises iBeacon peuvent vous permettre de vous localiser...    
J'ai pu poser quelques questions aux experts de Milky :
  • Cela fonctionne t il avec des téléphones Androïd ? Oui, Android peut aussi fonctionner avec toutes sortes de formats provenant de balises BLE. En revanche, les notifications sur iOS ne peuvent être déclenchées que par du iBeacon.Google propose d'ailleurs, sous le nom de physical web, un concept prometteur utilisant le BLE pour interfacer le "monde réel" et votre portable.Ce concept prend le contre pied de iBeacon sur les notifications.
  • Quid de la sécurité ? les signaux publics diffusés par iBeacon ne sont pas sécurisés. On peut donc les copier et les reproduire ailleurs (spoofing). Le résultat obtenu est que les applications peuvent être "trompées" par une fausse balise. Elle vont se réveiller ou proposer une notification dans un contexte qui n'est pas forcement celui imaginé au départ. On peut aussi imaginer que votre concurrent paramètre son application pour qu'elle se réveille à proximité de vos beacons. Par exemple pour proposer des services concurrents. Il existe déjà des "cartes" de iBeacon qui permettent de récupérer les informations nécessaires.
  • N'y a t il pas un risque lié à la protection de la vie privée ? Les apps lorsqu'elles se réveillent peuvent "pinger" le serveur avec l'identifiant du client et laisser une trace de son passage sans que cela ne corresponde à une action consciente de sa part. Avec la multiplication des balises,  et l'apparition probable d'opérateurs de iBeacon opérant pour plusieurs marques, il peut y avoir un risque...

Bitcoin, agents ou entreprises distribués autonomes et mobilité

(N.B. Cet article a été mis à jour le 31/12/2014 pour clarifier le mécanisme "scellant" le blockchain)
On a beaucoup parlé de Bitcoin et souvent pour de mauvaises raisons : son caractère spéculatif (voir l'évolution du cours ci dessous), les trafics qui peuvent y recourir.


Cours du Bitcoin en $ (source Google)

D'après Google Trends on en parle moins, mais on a peut être tord aussi. En effet, les mécanismes qui sous tendent Bitcoin, en particulier BlockChain ont des vertus dont on est loin d'avoir imaginé toutes les conséquences.

L'objectif général est de sécuriser les transactions numériques. Classiquement, elles fonctionnent de la façon suivante :
  • au départ vous disposez d'une valeur, 
  • un acheteur se présente, vous vous mettez d'accord sur un contrat qui, en général, définit que vous transférez la propriété de la valeur une fois reçu un paiement de l'acheteur. 
  • L'acheteur, procède à un paiement électronique via un système dans lequel vous avez confiance. Plus précisément, il obtient que sa banque vous remette un certificat sécurisé attestant que la transaction est faite.
  • En cas de litige ou d'escroquerie, le tiers de confiance peut être saisi et dans certains cas il assumera financièrement une partie des pertes.
Une des innovations principales de BitCoin est le BlockChain. Il s'agit d'un registre sécurisé des transactions qui garantit l'authenticité des transactions sans recourir à un tiers de confiance.
Le registre est au contraire très largement diffusé, accompagné d'un sceau numérique (en anglais hash, et en français : "hachage") garantissant l’intégrité du registre. Lorsque vous disposez du sceau et du registre il est facile de vérifier si ils correspondent ou pas grâce à un algorithme rapide.
Dans le cas du BlockChain, la construction d'un sceau correspondant à un registre est, volontairement, très coûteuse en temps de calcul.
Entre deux versions du registre, les nouvelles transactions sont transmises à l'ensemble des dépositaires du registre. Chaque dépositaire vérifie que ces transactions sont légitimes (ie : que le compte de l'acheteur est solvable et  permet bien de réaliser la transaction).
Périodiquement, le calcul de chaque nouveau sceau pour chaque nouvelle version du registre est assuré par un grand nombre de contributeurs qui offrent une puissance de calcul suffisante.
Au début, la communauté est réduite, les sceaux sont plus faciles à calculer et les contributeurs sont rémunérés. Plus la communauté grandit moins les contributeurs sont rémunérés et plus le coût de caclcul des sceau augmente. Mais ceux qui disposent de BitCoins, ont de plus en plus intérêt à contribuer à la protection de leur pactole.
En régime de croisière, BitCoin oppose la puissance de calcul de la communauté "légitime" à celle d'un éventuel hacker ou plus probablement à une communauté d'attaquants. La description complète du mécanisme est disponible en anglais ici.
Ces mécanismes permettent de bénéficier des avantage suivants :
  • La confiance dans un tiers n'est pas nécessaire, seule compte la taille de la communauté.Ces systèmes dits "trustless" échappent ainsi aux vulnérabilités inhérentes aux tiers de confiance. Dans un monde où les technologiques, économiques et géopolitiques évoluent rapidement, cette caractéristique a de quoi séduire...
  • Le système est réparti et est à l'abri de la défaillance d'un de ses participants ou d'un attaque locale c'est plus sûr que les espèces ou qu'un compte en banque.
  • Les utilisateurs sont anonymes. Le registre des transactions est publique, mais l'identité des intervenants reste secrète. Le lien entre la transaction et les parties qui la réalisent n'est pas accessible sans l'accord des parties elles mêmes.Dans un mécanisme bancaire classique, les transactions sont aussi secrètes, mais le protection du secret dépend d'un tiers de confiance. 
  • Dans un système qui n'a plus à gérer l'établissement de relation de confiance, les coûts de transaction restent faibles, potentiellement nuls, ce qui n'est ni le cas des espèces, ni celui des monnaies bancarisées,
  • Les transactions sont facilement programmables, ce qui pourrait sans doute être le cas des monnaies bancarisées, mais qui est en quelque sorte "natif" pour Bitcoin. Des contrats sophistiqués peuvent être signés, qui donneront lieu à des transactions conditionnelles. Un exemple est donné par Simulfunding : il permet à des participants à une collecte d'indexer le montant de leur donation sur la donation des autres. Certains imaginent déjà de véritables entreprises "programmées" qui produiraient des services payant, en rémunérant ses sous traitants, sans autre intervention humaine que leur programmation initiale. 
    • Les plateformes de services de mobilité, qui rapprochent la demande et l'offre et qui sous traitent à des conducteurs et vendent à des passagers ou à des chargeurs, sont des candidats pour ces agents autonomes et programmés.
    • Un autre exemple "classique" imagine un futur proche ou lles automobiles les plus pressées proposeraient de micro-payer automatiquement celles qui leur laissent la priorité.
  • Enfin, ces mécanismes sont génériques, ils peuvent s'appliquer à une monnaie, mais ils peuvent aussi être mis en oeuvre pour d'autres schémas qui ne fonctionnent, pour le moment, que via un "tiers de confiance". C'est aujourd'hui le cas de la grande majorité des services numériques. Ils reposent sur des échanges bilatéraux entre un client local et un "serveur central". Cette relation est asymétrique. Le serveur est le seul à voir "toutes les transactions", il est seul garant de la confidentialité et de la sécurité du service. On peut imaginer une nouvelle génération de service dont la sécurité (confidentialité et intégrité des données des utilisateurs, intégrité du service) sont garanties par une vaste communauté activement impliquée dans l'utilisation du service. 
Cette généralisation du blockchain semble être un des objectifs d'Etherum une plateforme qui fera peut être l'objet d'un prochain article, mais dont on parle déjà beaucoup : içi, là en français, ou .
Pour ceux qui doutent encore du sérieux des "crypto monnaies", je suggère la lecture d'un rapport du sénat français

Quelques ressources DataViz pour le transport public et à la mobilité

Voici quelques sites intéressants si vous vous intéressez à la DataViz dans le domaine du transport et de la mobilité :

  • Le site et le blog d'Etinne Come comeetie, des DataViz de Vélib notamment, 
  • Le site Visual Complexity qui propose des centaines d'exemples de DataViz dont une section sur les réseaux de transport.
  • Design et innovation dans les transports : Attoma
  • La veille de Loïc Haÿ avec beaucoup d'exemples sur la ville, les cartes et la mobilité, 
  • ITO World, une société britanique spécialisée : un monde de transport public...
  • Sur les distorsions introduites dans les cartes de transport : metrography de Benedikt Groß
  • Dans un registre humoristique et général et parce qu’il est souvent utile de voir des erreurs pour ne pas trop en faire : WTF DataViz

Une sélection d'articles sur Transid :

Il en existe bien sûr beaucoup d'autres, si vous êtes fan, n'hésitez pas à me les signaler en commentaires de cet article ou sur twitter @transid.

Le lien entre le retard des trains et l'affluence de voyageurs visualisé sur mbtaviz

Les transports publics, pour autant qu'ils aient ouverts leurs données, se prêtent bien à des visualisations innovantes. Mais le travail réalisé par  Michael Barry et Brian Card dans le cadre du cours de Data Visualization de WPI (Matthew Ward) est une vraie réussite.

C'est une data visualisation qui illustre un phénomène important et souvent mal compris : les perturbations dans les systèmes de transports ferroviaires denses. Le phénomène est expliqué en trois temps :

1/ un train en retard retarde les trains le suivent

Dans un système urbain dense, aux heures de pointes, les trains se suivent pour offrir une capacité maximale. La sécurité des circulations impose, néanmoins, une distance minimum entre les trains. Plus on est proche de cette limite plus la capacité théorique du système est élevée, mais moins le système est résistant. En effet, un train en retard va, presque immédiatement, retarder ceux qui le suivent.

Pour illustrer ce phénomène à partir des données réelles de MTBA, la visualisation présente la marche des trains sur un diagramme temps espace bien connu des cheminots (les auteurs mentionnent, élégamment,  Etienne Jules Marey qui s'est passionné pour l'étude des mouvements et du temps).

Sur ce diagramme, chaque couleur représente une ligne du réseau de transport (ici ligne rouge, bleue et jaune). Chaque ligne de couleur représente l'heure  (axe des y) de passage d'un train donné en fonction de sa distance depuis le point de départ (axe des x). Plus les lignes sont horizontales plus les trains sont rapides... Plus elles sont verticales plus ils sont lents.

Sur le site, la visualisation est interactive et facilite la compréhension.

2/ Certaines lignes sont "structurellement perturbées"

La visualisation suivante compare les marches des trains sur une même mission. Les écarts entre les trains les plus lents et les plus rapides créent des faisceaux plus ou moins larges. La ligne rouge est visiblement, en moyenne plus perturbée que la bleue ou la jaune...


3/ Les voyageurs se déplacent presque tous aux mêmes moments

Les données de validation fournies par les tourniquets d'entrée dans les gares permettent de repérer les flux de voyageurs dans l'espace et dans le temps. La visualisation suivante révèle les "heures de pointes" du réseau et met en évidence le fait que ces heures de pointes varient en fonction des jours de la semaine, mais aussi des gares.

4/ Le surplus de voyageurs retient les trains en gare

En effet, plus il y a de voyageurs sur le quai et dans le train plus le train va devoir rester immobilisé en gare pour permettre l'embarquement et le débarquement, et donc plus il va aggraver son retard et, en période de pointe, ceux des trains qui le suivent. De ce point de vue, les systèmes ferroviaires urbains ont tendances à être instables.
Ce constat, assez intuitif, est conforté par la visualisation ci dessous qui permet de vérifier qu'il y a souvent corrélation entre l'affluence en gare et les retards. Inversement, en dehors des heures de pointe, les trains plus espacés et les quais moins chargés permettent au système d'amortir les aléas.


Au total, cette dataviz est exemplaire : elle raconte une histoire intéressante mais complexe, elle permet aux internautes d'expérimenter de façon interactive, elle reste très simple et chaque élements a un sens et joue un rôle dans la démonstration.

C'est un travail rigoureux qui montre qu'il existe souvent une corrélation entre les retards et l'affluence de voyageurs.Pour ceux que cela intéresse, les auteurs ont aussi publié ce document comme un "making of" de leur dataViz qui explique leur démarche et donne des informations techniques pour ceux qui voudraient se lancer ou adapter leur code.

Annonces d'Apple au WWDC 2014 : HealthKit et Extensions

En général je suis plus intéressé par les news de Google, mais, une fois n'est pas coutume, je reviens sur quelques annonces d'Apple faite au dernier WWDC et qui me semblent avoir une portée intéressante. 

Certains observateurs ont été déçu de l'absence d'annonce importante dans le domaine du hardware. Effectivement, à un moment où il devient impossible pour les grands du web de répondre à la diversité des innovations en matière d'équipements connectés : montres, lunettes, voitures, bijoux... Apple se concentre sur le soft et, surtout, sur les données. C'est cela qui me semble nouveau et intéressant.


 Les App Extensions 

Apple propose une série de mécanisme permettant de réaliser des liaisons entre applications. Prenons l'exemple d'une application transport permettant de consulter des horaires, de calculer un itinéraire, de visualiser une carte...
Les app extensions permettent à chaque utilisateurs de cette application de paramétrer les autres applications qu'il souhaite utiliser par exemple pour :
  • partager son itinéraire : typiquement des applications de type mails, sms ou réseaux sociaux...
  • rajouter quelques commentaires sur la carte avec une application de retouche d'image, 
  • mémoriser l'itinéraire et s'assuré qu'il apparaîtra le jour dit sur le "résumé des notifications quotidiennes" proposé par IOS.
D'autres choix sont possibles comme par exemple votre application de stockage en ligne (DropBox, Google Drive...) ou encore votre clavier intelligent...

Cette souplesse entre applications devrait dynamiser le passage d'un app à une autre et permettre à chaque app de se concentrer sur ce qu'elle fait le mieux.Chaque utilisateur dispose d'une interface lui permettant de choisir ses extensions préférées et d'en paramétrer les droits. Sur ce point, et pour le moment, les propositions de Google me semblent moins facilement généralisables et donc moins claires et moins ouvertes.

Cette stratégie va aussi permettre à Apple de s'enrichir des données d'échanges entre ces applications et de mieux comprendre son écosystème.

HealthKit

Apple annonce une initiative "verticale" pour les applications du domaine de la santé au sens large. Il s'agit des multiples applications de fitness et de sports, de celles qui permettent de surveiller votre poids et votre alimentation, de celles, moins répandues en France, qui permettent de maintenir un lien avec le corps médical (comme cette intéressante application de la clinique Mayo), etc, etc...
Pour toutes ces applications, mais aussi, pour les fabriquant d'équipements connectés,  Apple offre un cadre permettant aux utilisateurs de stocker les données et d'en gérer le partage. Vous constatez que vous êtes fatigué ? Alertez votre médecin et donnez lui accès à l'ensemble de vos entraînements passés pour qu'il évalue vos performances mais aussi à l'évolution de votre poids et à vos mesure de tensions régulières...

De nouveau c'est prometteur pour les éditeurs d'application, les constructeurs d'équipements, les utilisateurs et bien sûr pour Apple. Il s'agit d'une mise en oeuvre pratique du fameux container de données personnelles, gérées confidentiellement par chaque utilisateur, mais permettant de donner un accès sécurisé et limité à différents tiers en fonction des besoins.

Ce concept a fait couler beaucoup d'encre mais pour le moment il n'y a pas eu de réussite visible. Des tentatives comme Google Health stoppé en 2011 ou Microsoft Health Vault qui propose actuellement une compatibilité avec 16 applications et 233 équipements (de la balance connectée, au tensiomètre).

Si cette initiative fonctionne, elle fera sans doute tâche d'huile vers d'autres domaines : données financières, environnementales ou données de mobilité !

Tango : l'arme absolue de la navigation indoor ?

Le GPS ne fonctionne pas à l'intérieur des bâtiments... C'est une limitation sérieuse pour qui empêche de guider les clients vers les bons rayons dans les centres commerciaux et les voyageurs vers le quai de départ dans les gares. Plusieurs industriels et différentes technologies sont sur les rangs pour vaincre la difficulté.
Une des technologies les plus prometteuse est aussi aussi l'une des plus intuitive : utiliser les images et les capteurs d'accélération du téléphone pour mémoriser puis pour reconnaître les espaces intérieurs. C'est ce que proposait Slam en 2011 mais c'est aussi ce à quoi s'attaque Google avec le projet Tango.
Pour le moment peu d'information disponible mais une vidéo vendeuse et intéressante :



A votre avis tient on la solution en matière de navigation indoor ? 

Carte déformée des transports en Ile de France

Les cartes des transports en Ile de France sont des cartes anamorphosées qui présentent l'offre de transport de façon claire sans se préoccuper de la géographie sous-jacente, mais petit à petit, ces cartes déformées modifient notre perception du territoire.

Je me suis amusé avec une carte de l'Ile de France pour rendre compte de la déformation  :


  • Voici une carte des communes d'Ile de France colorée en fonction du département "à l'échelle" (disons à peu près à l'échelle, car je ne suis pas géographe !)  :

 



  • Voici une version classique de carte des transports (récupérée par exemple sur transilien.com) :



  • Voici la première carte déformée pour se rapprocher de la transformation de la carte des transports :




Tous les modèles sont faux... Certains sont utiles !
Pour ceux que cela amuse, j'ai réalisé ces cartes à partir de Notebook iPython qui est vraiment un outil simple et performant pour analyser des données. J'ai, notamment utilisé les librairies : Matplotlib, Pandas. Il existe plusieurs "distributions" associant  au moins une partie de ces outils, j'ai essayé Pyzo, Enthought ou Anaconda... et, bien sûr, les données "opendata" des limites communales d'Ile de France.

Data Visualisation du temps de mobilité quotidienne : l'empreinte de mobilité journalière !

J'ai poursuivi l'analyse de mes traces Google Location History et je vous propose cette visualisation. 

Elle représente le temps moyen passé dans les différents modes de transport pour chaque heure de la journée.

A chaque colonne correspond une heure de la journée. Plus la colonne est fine, moins je passe de temps à me déplacer sur ce créneau horaire. 
Les rectangles rouges foncés représentent le nombre de relevés "inVehicle" c'est à dire en transport (ou en voiture), pour l'heure qui figure en haut de chaque colonne, en rouge clair, le nombre de relevés "onFoot"  (à pied), et en rouge "moyen" les relevés en vélo.

L'information est assez dense. Elle permet de constater que :
  • C'est à 8 heures (entre 8.00 et 9.00) que je me déplace le plus, puis à 19.00, puis 18.00, 7 et 12...
  • Je passe beaucoup plus de temps à marcher que dans les transports. A ce point, la proportion m'étonne, peut être est ce un biais de Google Location... Ou une conséquence du traitement réalisé sur les données brutes pour ne retenir que le mode le plus probable....
  • Il m'arrive très rarement de circuler en vélo (vrai depuis quelques mois), et c'est en général entre midi et deux (ce qu est juste).
  • Je me déplace beaucoup moins entre 21.00 et 1 heure du matin, et plus du tout entre 2 et 6 heures (ce qui semble aussi probable si la période étudiée n'est pas trop longue). 


Au total c'est une véritable "empreinte de mobilité journalière" qui est probablement aussi différente pour chacun d'entre nous que le sont nos empreintes digitales.

Et vous quelle est votre empreinte de mobilité ? 

Ce que révèlent les données de la géolocalisation de Google

Si vous êtes un utilisateur de Google Maps vous pouvez activer votre "historique de localisation" sur cette page. Google vous propose d'accéder aux données de localisation ainsi collectées (mais aussi à celles de nombreux autres services de Google) sur cette autre page.

J'ai récupéré mon historique de localisation et ai passé quelques heures à l'explorer (pour les nouveaux lecteurs, je l'avais déjà fait en 2010, mais de façon moins approfondie), voici ce que j'ai appris.

Les données sont dans un ficher "json" dont la taille dépend du nombre de localisations présentes dans votre historique. Le mien est composé de plus de 200 000 positions collectées entre fin 2009 et fin 2013... Mais la première surprise est que le nombre de point de mesure quotidien a très brutalement augmenté en 2013, comme le montre ce graphique du nombre de points relevés par jour :
Mesur de localisation Google par jour
Le nombre de points mesurés par jour augmente en 2013.
Je pense que cette augmentation correspond à une évolution du service, liée à la mise à disposition par Android d'informations plus complètes comme mentionné ici et à l'utilisation plus systématique des API de localisation par diverses apps. Si vous avez des idées sur la question, n'hésitez pas à me les indiquer en commentaires ou sur twitter.

Chaque position est décrite comme suit :

{"timestampMs" : "1389387648744",
   "latitudeE7" : 488109845,
   "longitudeE7" : 21917024,
   "accuracy" : 20,
   "activitys" : [ {"timestampMs" : "1389387648390",
                         "activities" : [ { "type" : "still", "confidence" : 85}, 
                                             { "type" : "inVehicle", "confidence" : 7}, 
                                             { "type" : "unknown", "confidence" : 7 } ]
                      } ]
  }

timestampMs est un indicateur de date et d'heure, on trouve, ensuite, la position : latitude et longitude, la précision (en mètre ?), et une suite d'indications concernant l'activité et en particulier la mobilité probable du porteur du téléphone. Les attributs proposés étant : still, inVehicle, onFoot, onBicycle et tilting. Voici la répartition des modes (en ne retenant que le plus probable pour chaque mesure) qui indique que les modes  inVehicle ou onBicycle sont très rarement les plus probables :
Répartition des modes dans Google Location History
Je me suis, ensuite, intéressé à la répartition horaire pour les différents jours de la semaine :
Historique de localisation Google par jour de la semaine
Historique de localisation Google par jour de la semaine
Ces graphiques semblent révèler un rythme hebdomadaire, avec des différences notables d'un jour à l'autre et qui mériterait d'être approfondi....

Enfin, je me suis intéressé à la répartition "spatio-temporelle" des relevés et ai essayé de retrouver des déplacements réguliers. Après quelques tâtonnements, voici un exemple où les localisations du Week End et celles de la semaine sont colorisées de façon différentes.
Google Location History sur une carte
Répartition spatio-temporelle colorée de positions relevées le WE et en semaine.
J'ai réalisé ces analyses relativement rapidement en utilisant le langage R et en m'inspirant d'un article d'Oscar Branson sur le même sujet. 

Les données semblent très riches et même si, comme souvent, leur interprétation nécessite beaucoup de prudence, il y a probablement de nombreux enseignements qui peuvent en être extraits. Si cela vous inspire d'autres axes d'analyse (ou d'autres sources)  n'hésitez pas à me laisser un message ci-dessous.