PROJET AUTOBLOG


Le blog de ValVin

Site original : Le blog de ValVin

⇐ retour index

Mise à jour

Mise à jour de la base de données, veuillez patienter...

Privamics - #01 - Rien à cacher, mini-BD sur la vie privée

vendredi 14 avril 2017 à 22:40
Privamics - #01 - Rien à cacher, mini-BD sur la vie privée

Grâce au projet Pepper&Carrot et sa communauté, j'ai repris l'envie de dessiner. Bien entendu, je n'ai pas un talent artistique très élevé mais comme j'ai plusieurs passions qui me tiennent beaucoup à coeur, pourquoi pas les lier ?

Je me suis lancé le défi, non pas de faire une BD mais plus une série de strip sur la thématique de la vie-privée.
L'idée est donc de mettre en avant les dangers du non respect de la vie-privée en vulgarisant avec un peu d'humour. Par contre, je dois avouer que j'ai un parti pris, je ne suis pas certains de faire dans la nuance ... mais je vais essayer de ne pas non plus être extrêmiste dans mes propos.

J'ai décidé de nommer ce projet Privamics pour Privacy Comics.

Je vous propose donc le premier épisode de Privamics :

 Rien à cacher

Privamics - #01 - Rien à cacher, mini-BD sur la vie privée Privamics - #01 - Rien à cacher, mini-BD sur la vie privée

Nothing to hide

Privamics - #01 - Rien à cacher, mini-BD sur la vie privée Privamics - #01 - Rien à cacher, mini-BD sur la vie privée Ce contenu est mis à votre disposition sous licence CC-BY-SA 4.0.
Les sources sont disponibles sur Framagit : ici

Je remercie tout particulièrement David Revoy (auteur de Pepper&Carrot), Craig Maloney et Nicolas Artance (contributeurs de Pepper&Carrot) qui m'ont apportés de nombreux conseils et m'ont encouragés à de nombreuses reprises.

LinkedIn - attention à vos emails !

mercredi 1 mars 2017 à 21:03
LinkedIn - attention à vos emails !

Je dispose d'un compte LinkedIn qui comme tout réseau social a pour premier objectif de collecter des données pour mieux vendre votre profil.

Même si c'est mal d'un point de vue vie-privée, je le conserve car cela reste une vitrine professionnelle et qui sait cela peut toujours servir.

Récemment, je suis aller faire un tour sur le site pour regarder ma quarantaine d'invitation en attente pour accepter les personnes que je connais réellement.

Bien entendu, ma curiosité m'a orienté vers la rubrique Les connaissez-vous? et je voies des personnes que je connais mais qui n'ont pas de compte LinkedIn (Inviter au lieu Se Connecter). Et donc je me demande comment ont-il récupérer cette information?

Il s'avère qu'il s'agit d'une erreur de jeunesse, à l'époque ou j'utilisais tous le services Google parce que c'était bien. J'avais installé l'application LinkedIn Android qui par défaut demande l'accès au contact du téléphone qui, à l'époque bien entendu, étaient synchroniser à mon compte Gmail. L'application a donc récupéré l'ensemble de ces informations pour améliorer l'expérience utilisateur rentabiliser sa base de données et essayer d'étendre son réseau.

Voici comment obtenir ces données que j'ai découvert en réglant mes options de confidentialité. Il suffit d'utiliser la fonctionnalité "Archives de vos données"

LinkedIn - attention à vos emails !

Si on demande les données rapides, on obtient une archive contenant plusieurs fichiers CSV. J'avoue que j'ai été surpris des données que j'ai trouvées même si après coup, il n'y a rien d'exceptionnelle. (j'ai fait la demande des données complète, il y a peut être d'autres choses intéressantes)

Je vous conseille de regarder le fichier Contacts.csv qui correspond aux données récupérées soit par l'application mobile ou import manuel. Les données sont minimales : Prénom, Nom, Mail. Dans mon cas, j'ai pas mal d'adresse mail sans prénom ni nom, ce qui est représentatif des collectes de mails Gmail. (tout au moins de l'époque)

Ensuite, il y a le fichier Connections.csv, il s'agit de l'ensemble de vos relations. On retrouve les informations suivantes Prénom,Nom,mail,Société,Mission,Type relation
Ce qui m'a surpris c'est la possibilité de récupérer les adresses mails de l'ensemble de ses contacts alors que je pensais ne pas avoir l'information sur linkedin ... mais en fait je me trompais, l'adresse mail est bien affiché sur chaque profil en tout cas lorsque l'on est contact de 1er niveau.

Pour ceux que ça intéresse, voici mon paramétrage confidentialité qui par défaut est ... très orienter exploitation des données :

LinkedIn - attention à vos emails !

Tenir un blog, ce n'est pas facile

dimanche 26 février 2017 à 14:25
Tenir un blog, ce n'est pas facile

Effectivement, il y a un peu plus d'un an, j'ai lancé ce blog. Même si je l'avais préssenti en le lançant, je ne suis pas assez assidu pour écrire un blog.

Ce n'est pas le manque de sujet à traiter, notamment sur la vie-privée qui me tient particulièrement à coeur ou même les logiciels libres en général. La vraie raison est que cela demande du temps et ma vie professionnelle et privée ne m'en accorde que le soir après le repas ...

J'ai commencé à plusieurs reprises des billets que je n'ai jamais publié car arrêté en cours de route. Il y en a un sur Android en entreprise ou encore le lancement d'un Waze like Open-source qui aujourd'hui est la seule application pour laquelle je n'ai pas trouvé d'alternative. Qui lui même a généré un brouillon sur pgRouting ... bref, plein de commencement sans arrivée.

J'ai envie de faire des articles pour partager ce que je découvre / comprend avec mes mots. Mais avec les articles sur les entrées DNS pour la messagerie, j'ai pu constater qu'il fallait consacrer une énergie considérable. Certainement la même énergie que doit consacrer un professeur lorsqu'il prépare un cours. Même si c'est clair dans sa tête, ce n'est pas si facile à mettre sur le papier.

Du coup, je me demande si je dois continuer à essayer ou tout simplement me dire que je ferais ça plus tard. J'avoue que des articles comme celui sur Android sans google est assez motivant vu le nombre de visite que j'ai eu l'occasion d'avoir.

D'autant que grâce à Pepper&Carrot, je me suis mis à dessiner avec pour objectif de lier mon loisir dessin avec mon côté militant pour la vie-privée... mais est ce que le résultat sera le même que pour ce blog ?

Bref, il faudrait inventer un système qui permette d'allonger le temps ... ou alors trouver une bonne organisation qui permette de transmettre tout en prenant du plaisir et sans y consacrer trop de temps...

Peut être que grâce à la nouvelle méthode GTD avec todo.txt (découverte grâce à Craig Maonley de P&C) je vais arriver à faire quelque chose de bien ? (tiens je pourrais en faire un article ...)

Crédits Photo : OpenClipart-Vector (Pixabay) CC0  

Utiliser jq pour parser le json d'une API REST

mardi 15 novembre 2016 à 21:21
Utiliser jq pour parser le json d'une API REST

Dans mon travail de tous les jours, je travaille sur des MDM (Mobile Device Managment) qui, selon l'éditeur, fournissent des APIs REST.
C'est le cas par exemple pour Airwatch.

Cet après-midi, je devais trouver le nombre de terminaux sur lesquels une application particulière était installée. J'ai essayé de trouver le résultat avec une commande curl et jq

J'avoue que finalement je n'ai pas réussi en ligne de commande et que j'ai opté pour un script nodejs mais j'ai tout de même appris des choses.

Le webservice fournit un résultat comme celui-ci :

"DeviceApps": [
    {
      "ApplicationName": "Adobe Reader",
      "Version": "10.3.1",
      "BuildVersion": "",
      "Status": 2,
      "Size": "0",
      "ApplicationIdentifier": "com.adobe.reader",
      "Type": "System",
      "IsManaged": false
    },
    {
      "ApplicationName": "AirWatch Agent",
      "Version": "4.3.6.595",
      "BuildVersion": "",
      "Status": 2,
      "Size": "0",
      "ApplicationIdentifier": "com.airwatch.androidagent",
      "Type": "Public",
      "IsManaged": false
    },
    {
      "ApplicationName": "Navigateur",
      "Version": "4.2.1-54",
      "BuildVersion": "",
      "Status": 2,
      "Size": "0",
      "ApplicationIdentifier": "com.android.browser",
      "Type": "System",
      "IsManaged": false
    },
    {
      "ApplicationName": "Calculatrice",
      "Version": "4.2.1-54",
      "BuildVersion": "",
      "Status": 2,
      "Size": "0",
      "ApplicationIdentifier": "com.android.calculator2",
      "Type": "System",
      "IsManaged": false
    },
    {
      "ApplicationName": "Chrome",
      "Version": "28.0.1500.94",
      "BuildVersion": "",
      "Status": 2,
      "Size": "0",
      "ApplicationIdentifier": "com.android.chrome",
      "Type": "System",
      "IsManaged": false
    },
    ...
  ]
}

Pour faire la requête, il fallait donc filtrer sur le nom du package ApplicationIdentifier et sur l'état Status (j'imagine que plein d'autre moyen plus simple existe avec sed / awk et cie)

Ma ligne de commande ressemble donc à cela :

curl -u user:pass -H Content-Type:application/json -H aw-tenant-code:key https://mdm.domain.tld/API/v1/mdm/devices/675/apps |jq '.DeviceApps[]| select(.ApplicationIdentifier == "com.xxxx.yyyy")| select(.Status == 2)|{ApplicationIdentifier,Version}'  

Par exemple pour Calculatrice, cela donnerait :

{
  "ApplicationIdentifier": "com.android.calculator2",
  "Version": "4.2.1-54"
}

Vu le temps passé à comprendre, je me suis dit que ça vallait le coup de partager.

Mattermost et un channel IRC c'est possible

samedi 17 septembre 2016 à 21:45

Mattermost avec Framateam pour Pepper&Carrot

Mattermost et un channel IRC c'est possible

Framasoft m'a fait découvrir Mattermost au travers de leur service Framateam.

Mattermost est un Slack-like, open-source et qui peut s'autohéberger. Cela n'engage que moi, je le décrirais comme un IRC 2.0. On consitue une team qui peut être public ou privée et dans cette team on a la possibilité de créer des channels ou tous les membres de l'équipes peuvent échanger.
Le côté IRC 2.0 sont les suivants :

Mattermost et un channel IRC c'est possible

J'ai récemment découvert la BD open-source Pepper&Carrot qui a fait un bruit en raison de la sortie d'une version imprimée par l'éditeur Glénat. J'en parle dans mon billet précédent

Mattermost et un channel IRC c'est possible

Pour dialoguer avec la communauté autour de la BD, il faut aller sur le channel #pepper&carrot sur freenode.

Mattermost et un channel IRC c'est possible

J'ai proposé à l'auteur, David Revoy, de mettre en place Framateam pour justement bénéficier des avantages de Mattermost. Comme la communauté est déjà sur Freenode, on a convenu de tenter d'utiliser Mattermost comme canal francophone et voir ce que ça donnait (ça se passe ici). Cependant faire une passerelle vers IRC semblait être une évidence mais comment faire ?

Matterbridge

C'est la qu'intervient le projet Matterbridge qui dans sa version 0.6.1 permet de relier Mattermost avec :

Dans mon cas, j'utilise seulement la passerelle IRC et plutôt qu'utiliser la version webhook, il existe une version plus qui permet d'utiliser les dernières API Mattermost (3.3.0).

Mattermost et un channel IRC c'est possible

Le binaire

Il suffit donc de compiler, ou réccupérer le binaire de la version 0.6.1 : ici

Pour ma part, je ne suis pas certains que ce soit dans les règles de l'art mais je l'ai mis dans /opt/matterbridge avec son fichier de configuration dont je parle ci-dessous.

Pour le faire tourner avec systemd, j'ai repris un de mes services qui me sert à faire tourner du nodejs :

[Service]
ExecStart=/opt/matterbridge/matterbridge-linux64 -plus -conf /opt/matterbridge/matterbridge.conf  
Restart=always  
StandardOutput=syslog  
StandardError=syslog  
SyslogIdentifier=matterbridge  
User=matterbridge  
Group=matterbridge

[Install]
WantedBy=multi-user.target  

L'option -plus me permet d'utiliser les dernières API Mattermost, -conf permet de spécifier l'emplacement du fichier.

La configuration - Matterbridge.conf

Il faut le paramétrer avec le fichier matterbridge.conf à partir du template : ici qui contient quelque petites coquilles facilement corrigeable. Ca se passe au niveau des paramètres RemoteNickFormat dont les " ne sont pas fermées.

Voici donc les parties importantes de la configuration. Avant cela, même si c'est évident, il faut pour chaque section activer son fonctionnement avec Enable=true

Section IRC

Tout d'abord le serveur ou se trouve le channel que l'on veut lier à notre team. Ici freenode. Etonément le channel se paramètre ailleurs.

J'avoue que c'est pas beau, je n'ai pas encore basculé en TLS/SSL.

Server="irc.freenode.net:6667"  

Le Nick utilisé par notre passerelle et son identification si nécessaire.

Nick="matterbot"  
NickServNick="nickserv"  
NickServPassword="secret"  

La façon dont est retranscrit un membre de la team sur le channel IRC :

RemoteNickFormat="<{NICK}>: "  

Je me suis aligné sur le format déjà utilisé par une passerelle Telegram. Si j'envoie un message depuis Mattermost, il sera préfixé par <valvin>:

 Section Mattermost en mode plus

Le serveur qui héberge l'instance Mattermost

Server="framateam.org"  

La team correspondante

Team="peppercarrot"  

Le membre de la team utilisé pour la passerelle :

Login="mattermostUser"  
Password="mattermostPasswd"  

Pour avoir le nick d'un message en provenance d'IRC il faut activer ce paramètre qui par défaut est à false

PrefixMessagesWithNick=true  

Et pour le formattage, tout comme pour IRC on a ce paramètre :

RemoteNickFormat="**{NICK}** :"  

qui aura pour conséquence d'afficher le nick de l'utilisateur IRC en préfixe devant ces messages dans Mattermost comme ceci => valvin :

Section Channel

Ensuite, il faut relier le channel IRC à celui de Mattermost. Dans mon cas, le canal IRC Freenode est #pepper&carrot et le canal Mattermost est irc.
Attention, pour le canal Mattermost, c'est sensible à la casse et il faut bien reprendre l'identifiant du canal.

IRC="#pepper&carrot"  
mattermost="irc"  

Section General

Pour activer le mode plus, même si ça fait doublon avec le paramètre de l'éxecutable :

Plus=true  

Crédit photos : Pixabay - CC0 - David Revoy - CC-BY