Google assemble

Google est une société passée en maître de l’acquisition, l’organisation et le recoupement des données. Appréciée dès le milieu des années 1990 quand le WEB prenait son essor, la page de Google qui comporte une simple ligne – pas de fioriture, de GIF animés et de surcharge si tentantes aux débuts, a su s’imposer.

Et Google a organisé le grand foutoir de données qu’est le WEB. Mais maintenant, quand on lui donne la main, Google prend le bras. Comment ? par recoupement. Voici trois exemples.

Avec un login, la position est sue.

 

Lieu géographique

Google n’a pas numérisé que des documents ; mais aussi la géographie. Les mobiles ont le géoréférencement GPS possible. Une grande part d’entre eux sont doté de l’OS Androïd (créé par Google). Si vous l’enclenchez, Google connait votre position. Souvent pour faire des trucs amusants, comme vous demander quelle note vous donneriez à un bistro, dès qu’il repère que votre position est stable dans à son environ. Et par-là nourrir sa base de données et le « ranking » des établissements.

Amusant : lorsque je vais en visite chez mon fils puiné, qui habite en dessus d’un bistrot, j’enclenche le positionnement. Plus tard, Google me demande des trucs à propos du bistrot comme « Est-ce que les cartes sont acceptées comme moyen de paiement ?».

Donc le géant des données croise l’index de ma position et celle des commerces à proximité ; si la durée est suffisante, les interrogations – et probablement les propositions – interactives sont déclenchées et viennent alimenter son immense base de données. Mais que va-t-il faire, si ensuite je passe à la pharmacie… ? Ou à l’office des poursuites ? Ou au poste de police ?

Photo et position… supplémentaire

Au début de l’été, lors d’un pinique, je confie à mon fils cadet un appareil de photo. Ce modèle contient un GPS intégré : les images prises sont géoréférencées. On peut aussi enclencher un suivi en continu : il remplit alors un fichier de points. Comme la conversion des données n’est pas évidente, je lui fais la démonstration d’une transformation des coordonnées GPS d’un référentiel à l’autre, au moyen du programme GPSBabel https://www.gpsbabel.org/ . Après quelques tâtonnements, voilà le fichier KMZ créé. Après d’autres tâtonnements, on le charge sur Google map.

Surprise !

On y voit non seulement le pinique lorsque l’enregistrement est démarré ; mais aussi un tracé sur Genève que mon fils a fait le lendemain : ceci est attendu. Ce qui l’est moins, c’est l’entrelac à Lausanne ; Yverdon ; la Chaux-de-fonds ; aux Brenets ! En fait, les points ont été déposés avec mon compte Google (il faut un compte pour déposer des traces GPS) ; et Google y a joyeusement ajouté les positions de mon mobile que j’avais enclenché au début des vacances ; mais ces points sont issus de mon mobile, une semaine après le pic-nic…

Photo et positionnement… déduite

Lors d’un weekend prolongé, j’utilise un nouvel appareil de photo, cette fois non géoréférencé. Comme on ne sauve jamais trop ses « moments », je pousse les images sur Google photo (https://photos.google.com ), à partir de mon compte bien sûr. En principe, elles restent privées ; on peut les partager individuellement ou par album via un lien ad-hoc.

Surprise !

Les infos de la photo montrent un lieu estimé : Binn. Et effectivement, les photos ont été prises dans le Binnthal. Alors que sans géolocalisation, normalement Google pose la question « Où cette photo a-t-elle été prise ? ».

Dans ce cas, Google s’est reporté au infos GPS de mon mobile : j’étais à Binn. Les infos EXIF de la photo donnent la date et l’heure… Une position, un horodatage qui coïncide, et le tour est joué.

Yves Masur (9/2018)

 

Niveau de complexité

Introduction

LED (image: Adafruit)

Quelles peuvent être les niveaux de complexité d’un système (ou d’une combinaison de systèmes) permettant de faire clignoter, ou commuter une LED ? Voici un petit aperçu de ce que l’on pourrait voir comme une progression se pliant aux besoins (voir les devançant…) de l’utilisateur.

Niveau 0

Montage NE555 – exemple

Une LED clignote avec une électronique : un chip 555, associé à 2 résistances et un condo pour la base de temps du clignotement.

Niveau 1

Un Arduino (ou tout autre module) fait clignoter la LED à 50% avec une boucle software comportant 2 attentes, et une inversion de la sortie active ou arrêtée. Il faut retoucher le code source pour changer la période allumé/éteinte, le compiler et le recharger.

Exemple de programme Arduino: blink.ino (partiel)

Niveau 2

Des boutons de commande contrôlent la séquence : plus ou moins rapide. Les paramètres de boucle et de n° de sortie utilisée sont dans des variables, qui sont lues de la mémoire flash par le programme. Un bouton permet d’enregistrer la config ainsi modifiée. Le programme gère les interruptions, sans forcément être multitâche.

Niveau 3

Le module a une liaison série ou IP en SSH, à laquelle une console permet d’envoyer des commandes. Le programme a un mini interpréteur, qui réagit à des commandes série ou en SSH : ‘+’ et ‘-‘, ‘s’ = sauver ; ‘r’ = relire les temps, voire de modifier le rapport cyclique. On n’oubliera pas le help, avec le caractère ‘ ?’. Le programme est multitâche.

Niveau 4

Le module a un serveur de pages WEB. Une page contient des boutons et des champs permettant de régler les variables, de les enregistrer et de les sauver. Ceci à distance du module. Idéalement, ce mode d’action est compatible avec le niveau 2 et comporte les boutons hardware pour une action locale

Niveau 5A

Le module a un serveur WEB, une liaison sécurisée, une base de donnée (DB), une synchro NTP pour une mise à l’heure exacte. Il enregistre les événements, tels que les arrêt/démarrages du système, les connexions. Les manipulations sont dans la base de données. Il envoie un email d’alerte lorsque des tentatives d’intrusions sont faites.

source: selftaughtcoders.com

Niveau 5B

Le module fait partie d’un ensemble interconnecté. Il reçoit les paramètres selon son n° ou son nom de module. Tous sont enregistrés dans une DB centrale. Des logs centralisés sont consultables, ainsi que l’état du réseau. Des informations historiques peuvent être consultées.

Conclusion

Il n’y en n’a pas. La complexité élevée demande des compétences de programmation élargies et fait appel à des techniques qu’il faut dominer et mettre en œuvre. Elle demande plus de puissance, de la connectivité ; mais amène de la souplesse à l’utilisateur. Et son lot d’erreurs, de possibilités d’intrusion. Il s’agit de choisir le niveau d’abstraction et de réglage… avec du bon sens.

Yves Masur (8/2018)