PACK Kiosk GNU/Linux Magazine & HS 2019


  • Kiosk Online


  • Kiosk Online


  • Kiosk Online


  • Kiosk Online


  • Kiosk Online


  • Kiosk Online


  • Kiosk Online


  • Kiosk Online


  • Kiosk Online


  • Kiosk Online


  • Kiosk Online


  • Kiosk Online


  • Kiosk Online


  • Kiosk Online


  • Kiosk Online


  • Kiosk Online


  • Kiosk Online

Chroot, machine virtuelle ou conteneur ?

Que choisir et pourquoi ?

  • Les différentes solutions disponibles
  • Mise en œuvre avec des exemples concrets

sommaire

Actus & Humeur

p. 06  Empaquetez (facilement) votre projet avec upt
p. 12  Après le code source, le code moral !
p. 16  Faut-il nécessairement réfléchir pour programmer ?

IA, Robotique & Science

p. 24  Confrontation de plans cadastraux et de photos satellite avec OpenCV

IoT & Embarqué 

p. 42  Retrouvez le plaisir du test HDL avec Cocotb

Kernel & Bas niveau  

p. 52  Une introduction à LuaJIT

Système & Réseau 

p. 58  Chroot, machine virtuelle ou Kubernetes ?
p. 71  Imprimer en ligne de commandes

Mobile & Web 

p. 78  Le langage Dart et les Web Apps

Sécurité & Vulnérabilité

p. 92  Découvrez ou redécouvrez Ansible-Vault

édito

Pendant longtemps je n'ai utilisé que les commandes « naturelles » du Shell. Jamais un alias ni de scripts ne contenant ne serait-ce que deux ou trois lignes pour être certain d'être opérationnel en toute situation, sur n'importe quelle machine. Pourtant il est possible de devenir beaucoup plus productif en utilisant ces outils correctement. Pourquoi alors se restreindre à un usage somme toute fort limité du Shell ?

Pendant mes études, dans ce qui s’appelait alors une Licence d’Informatique (et qui est maintenant un L3),   j’ai eu la chance d’avoir un professeur en « Système et Réseau » qui nous a obligés à n’utiliser que les commandes naturelles du Shell, à n’écrire nos programmes qu’à l’aide de Vi (ou à l'extrême rigueur avec Xemacs), à utiliser Awk, Sed et autres outils indispensables, mais peu engageants de prime abord. S’il n’avait pas été là à nous pousser dans cette direction qui n’était pas la voie la plus simple, aurions-nous réellement découvert tout le potentiel de ces outils ? Les aurions-nous simplement utilisés alors qu’ils semblaient si rébarbatifs ? Bien entendu, comme dans chaque promotion il y a bien eu le groupe des « petits rigolos » qui utilisaient nedit en douce et faisaient semblant d’employer Vim. Les mêmes qui, passant de Pascal à C, ajoutaient des macros pour pouvoir continuer à écrire du Pascal, mais en C :

code-edito.jpg

Oui, c'est horrible, mais il y a vraiment des gens qui ont fait ça dans leur vie et ne se sont jamais remis en question… et même certains qui ont eu leur diplôme et continuent probablement à sévir en contribuant au développement de diverses applications et services que nous utilisons (et là ça fait peur, même si tout de suite on comprend mieux bon nombre de dysfonctionnements). 

Je pense en tout cas que pour la majorité des étudiants de l'époque, le fait d'être contraints à une utilisation stricte de ces outils a été bénéfique. Et tant pis pour les autres...

Ce n'est pourtant que 20 ans après (ouch !) que je me rends compte de l’intérêt pédagogique de cette approche... mais j’en ai peut-être été tellement marqué que j'ai tardé à utiliser des scripts et des alias. La peur de ne pas être capable de se débrouiller sans Internet (qui en était à ses balbutiements à l'époque), d’oublier les commandes ? Et puis un jour ce fut la révélation : il était désormais trop tard pour oublier ces commandes, elles étaient ancrées en moi. Ma décision fut prise et je passai aux alias et aux mini-scripts qui me firent gagner un temps non négligeable !

Cette réflexion m’a amené plus loin : dans mes enseignements, je propose régulièrement à mes étudiants de les aider pour tester Linux (ils sont bien sûr majoritairement sous Windows), de les accompagner dans l’apprentissage de Vim ou de LaTeX. Sans succès ! Mes UEs portent sur des projets algorithmiques, de la Programmation Orientée Objet ou du développement Web et je me voyais mal imposer quelque chose sans lien direct avec le cours. Mais finalement, il y a des cas où si personne n’est là à nous pousser, à nous faire « mal », nous n’avançons pas. Donc cette année mes étudiants vont souffrir : ils rendront leur projet sous LaTeX ! Ainsi, ils pourront choisir en connaissance de cause avant d’utiliser LibreOffice ou même Word. Une fois dans leur vie, ils auront goûté à LaTeX et peut-être qu’un jour, après m’avoir haï pour certains, ils me remercieront...

Apprendre, ça fait mal. Espérons que vous ne souffriez pas trop à lire GNU/Linux Magazine :-) !

Tristan Colombo

« Compiler » ses scripts Python

Pour Windows, Linux et macOS

  • Embarquez l'interpréteur Python dans vos scripts
  • Distribuez vos programmes quelle que soit la plateforme
  • Générez des paquets autonomes exécutables avec fbs

sommaire

Actus & Humeur

p. 06 Are you safe ?

Système & Réseau

p. 14 La livraison continue avec Gitlab CI

IoT & Embarqué

p. 20 Yocto/OE et Qt MQTT : le duo gagnant

Kernel & Bas niveau

p. 39 Implémentation et exploitation de la fonction backtrace() en C

Hack & Bidouille

p. 48 Gérer son argent avec un fichier texte

Libs & Modules

p. 64 Comment distribuer des exécutables Python ?
p. 76 Du Lua dans du LaTeX ? C’est LuaLaTeX !

édito

Quel est l'intérêt des avancées technologiques ? Étrange question pour débuter un magazine dédié à l'informatique, non ?

Pourtant, nous avons des ordinateurs capables d'effectuer de plus en plus rapidement un nombre impressionnant de calculs, nous pouvons accéder à Internet pratiquement depuis n'importe où grâce à nos smartphones qui ont eux aussi des microprocesseurs multicœurs très performants… mais à quoi cela sert-il vraiment ? Ne sommes-nous pas finalement asservis par la technologie ?

En se promenant simplement dans la rue, on peut se rendre compte de certains comportements aberrants : lecture/écriture de textos/mails par certains automobilistes, voire certains piétons qui, absorbés par la consultation d'un site de réseau social traverseront sans se rendre compte qu'une voiture vient de les éviter (sans le faire exprès puisque le conducteur consultait lui-même son smartphone). Vous pouvez voir à ce sujet une publicité venant d'Afrique du Sud qui résume bien la situation : https://youtu.be/h5lkvQSJiZ4.

Cet asservissement à l'information (mails, textos, réseaux sociaux, etc.) provoque également des dégâts collatéraux : qui n'a pas été confronté de nos jours au cas d'un préposé quelconque (secrétariat médical, caisse de supermarché, etc.) qui utilise son smartphone (quel qu'en soit l'usage) au lieu d'accomplir son travail. Le lien à la réalité est brisé.

Mais peut-être n'est-ce que la partie émergée de l'iceberg. Quand on rentre dans le code de certains programmes ou plus simplement que l'on utilise certaines applications (souvent Web), on se dit que les développeurs ne devaient pas être pleinement concentrés sur leur tâche. Surtout que pour nous la distraction, l'appel des notifications incessantes, est encore plus oppressant, étant quasiment soudés au Web par le biais de nos doigts s'agitant à longueur de journée sur le clavier. La procrastination guette : je ferai ça tout à l'heure, je vais vite jeter un coup d’œil aux actus. Une heure plus tard, après avoir analysé l'ensemble des actualités, juste au moment de se remettre au travail, paf, une notification Facebook ! Ça serait dommage de ne pas aller voir, non ? Oh, un nouveau tweet ! Et ainsi passe la journée…

À la base la technologie n'est-elle pas là pour servir l'être humain, lui permettre de faire d'autres découvertes en lui libérant du temps de réflexion ? Mais que se passe-t-il lorsque de grands groupes vont chercher à happer du temps de concentration humain pour y intégrer de force de la publicité numérique, pour « reprogrammer » l'humain pour qu'il soit toujours disponible à ingérer ces données ? Comme la drogue, l'utilisateur prend goût aux différentes sollicitations et réagit par instinct lorsqu'une notification de son téléphone l'interpelle, un peu comme un animal dressé à répondre à un stimulus. Et comme avec la drogue, on se laisse dévorer par elle ou on se bat avant qu'il ne soit trop tard. Il n'est pas difficile de désactiver l'ensemble des notifications et de se rendre sur une application quand on l'a décidé et non pas au moment où « Diablo42# vous a attaqué ! Allez vite vous venger ! », « Samantha a également commenté sa photo », etc.

Allez, il est l'heure ! N'avez-vous pas reçu la notification de votre smartphone ? « Votre GNU/Linux Magazine vient de paraître ! Allez vite le lire ! ». Et si vous coupez vos notifications, votre lecture n'en sera que meilleure… :-)

Tristan Colombo

SDR, Radio logicielle, Traitement de signaux

Mettez Linux à l'écoute des ondes !

  • Comprendre les bases
  • Quel matériel choisir
  • Utilisez les bons outils

SOMMAIRE :

Actus & Humeur

p. 06  Petite réflexion sur le typage en Python
p. 11  Browser Wars - Nouvel épisode

IA, Robotique & Science

p. 14  Quelques fondements théoriques pour aborder la radio logicielle
p. 30  Matériel pour la radio logicielle
p. 48  Quelques outils en ligne de commandes pour la SDR

Système & Réseau 

p. 54  Mesh Arena : Istio par l'exemple

Hack & Bidouille  

p. 66  Modifier un programme pour y cacher des traitements

Mobile & Web 

p. 70  Plongée dans l’OPcache

éDITO :

L'autre jour, alors que je consultais un site internet, quelle ne fut pas ma surprise de voir s'afficher une publicité ! Le coup fut rude : on s'habitue très vite à ne plus être importuné par ces affichages parasites grâce à la mise en place d'un bloqueur de publicités et là, après des années d'usage intensif de différents plugins, c'est le drame ! Le cadre de pub qui passe à travers les filtres ! Ni une, ni deux, je m'attelle à la tâche : comment cette pub a-t-elle pu passer à travers les mailles du filet ?

Tout d'abord, je remarque qu'il s'agit d'une catégorie particulière de pubs : le système adyoulike (https://www.adyoulike.com/). Comme si on pouvait liker les ads qui finissent par prendre plus de place sur la page que le contenu lui-même ! Pourquoi uBlock Origin a-t-il laissé passer ce cadre qui réapparaît à chaque rafraîchissement de la page, en changeant de pub, comme pour me narguer ? J'ai voulu en savoir plus sur cet adyoulike.

Adyoulike effectue du marketing comportemental (on peut lire « Native Advertising » sur leur site), c'est-à-dire qu'ils vont analyser votre comportement sur le Web en faisant simplement du tracking, en analysant vos cookies : https://www.adyoulike.com/privacy_policy_fr.php. On pourrait penser qu'il suffit alors de bloquer tous les cookies, mais on ne peut malheureusement pas (ou difficilement) le faire de nos jours sans pâtir d'une dégradation de notre expérience utilisateur sur de nombreux sites. De même, effectuer un ménage régulier des cookies apporte beaucoup d'inconvénients avec la suppression de cookies d'authentification et du coup pratiquement personne ne le fait.

En allant sur une page du National Geographic qui liste les cookies qu'ils utilisent  (https://www.nationalgeographic.fr/les-cookies-test), j'ai pu constater qu'il y a seulement 3 cookies de fonctionnalités pour 17 cookies de ciblage publicitaire ! Pratiquement 6 fois plus ! C'est certainement un reflet de ce qui se pratique sur la plupart des sites, mais lorsque l'on utilise un bloqueur de pubs, on est bien loin de s'imaginer cela, étant « protégé » de ce type d'espionnage.

Les recherches que j'ai effectuées pour éclaircir ce problème de publicité apparaissant malgré uBlock Origin m'ont amené à prendre connaissance du cas Adblock Plus, le bloqueur de pubs... qui laisse passer les publicités des annonceurs qui le payent : c'est une sorte de parrain mafieux de la pub sur Internet ! Si c'est le bloqueur que vous utilisez, ne vous étonnez pas si des pubs apparaissent : elles se seront acquittées de la « taxe ».

Pour en revenir à mon problème, comment l'ai-je résolu ? Simplement en ajoutant un filtre dans uBlock Origin... un faux positif a dû échapper au programme pour la première fois en deux ou trois ans d'utilisation. J'en ai profité pour vérifier la configuration de mon navigateur et je me suis rendu compte que j'avais même installé Privacy Badger, le bloqueur de trackers tiers de l'EFF (Electronic Frontier Fondation) : je ne peux pas faire beaucoup plus.

Cet affichage inopportun de publicité n'était donc finalement pas très grave et m'a permis de me rendre compte de la réalité du tracking publicitaire. N'ayez crainte, vous pouvez continuer à lire GNU/Linux Magazine sans anti-tracker sur papier (cela va de soi) ou même sur Connect : il n'y a aucun tracker publicitaire ou plutôt, en termes plus marketing, de système de natural advertising ! Bonne lecture !

Tristan Colombo

Découvrez Prometheus :

Le monitoring simple, efficace et scalable !


SOMMAIRE :

Actus & Humeur

p. 06  Comment bien transmettre ses mots de passe...
p. 10  Découvrez en avant-première l’opérateur « morse » du futur Python 3.8

IA, Robotique & Science

p. 14  Les bases des communications numériques avec GNU Radio

Système & Réseau 

p. 24  Soyez en feu grâce à Prometheus

Hack & Bidouille

p. 34  Utilisation d’une « corbeille » avec vidage automatique en CLI

Libs & Modules

p. 38  Pensez à l’ergonomie de vos scripts CLI en Python -épisode 1/2 : PyInquirer
p. 44  À la découverte de gRPC

Portabilité

p. 58  Les limites du développement d’applications mobiles multi-plateformes avec Cordova

Sécurité & Vulnérabilité

p. 68  Sécurisez vos noms de domaine avec DNSSEC

éDITO :

Ce mois-ci je vous propose de nous attarder quelque peu sur un monde féerique, un monde magique : le Cloud ! En effet, qu’y a-t-il de plus beau qu’un service disponible dans le Cloud ? Rien ! Vous n’avez plus à passer des heures en installation et configurations diverses, plus à vous soucier de la sécurité de votre infrastructure, tout fonctionne immédiatement et sans accroc ! Les utilisateurs ne s’y sont pas trompés et ils usent et abusent de services variés : gestion de mails / photos, traitement de texte / tableur en ligne, etc. Il suffit de se connecter au service où que l’on soit pour avoir accès à toutes les données qui sont conservées avec amour par les différentes entreprises proposant ces services, parfois même gratuitement ! Comment avons-nous pu vivre sans Cloud ?

Bien entendu, il se trouvera toujours des esprits chagrins qui viendront dénigrer cette magnifique avancée sociétale et qui poseront des questions qui n’ont pas lieu d’être :

  • Qu’est-ce qui se passe sur un service de musique si le service décide qu’une chanson qui nous plaît ne doit plus figurer dans le catalogue (conflit avec l’éditeur, etc.), comment l’écouter ? N'y a-t-il pas comme la possibilité pour la société de service d'exercer une censure ?
  • Dans le cas d’un service proposant des outils bureautiques en ligne, l’entreprise peut décider, du jour au lendemain, de modifier complètement l’interface, impactant par là même les habitudes de travail (suppression de la classification des documents en répertoires par exemple, etc.). Des milliers de personnes ne vont-elles point se retrouver ralenties ?
  • Et que dire de la propriété des données si l’on imagine des conditions d’utilisation qui auraient la forme suivante : « Lorsque vous importez, soumettez, stockez, envoyez ou recevez des contenus à ou à travers nos Services, vous accordez à notre entreprise une licence, dans le monde entier, d'utilisation, d'hébergement, de stockage, de reproduction, de modification, de communication, de publication, de représentation publique, etc. » ?

Le fait de pouvoir profiter très simplement de certains services qu'il fallait précédemment installer, sécuriser et maintenir est très certainement une grande avancée... mais il ne faudrait pas perdre de vue que si ces services sont le plus souvent gratuits, c'est que nos données ont une valeur financière. Notons au passage que certains fabricants de disques durs vont encore plus loin en proposant des disques durs NAS intégrant une gestion des données via leur service dans le Cloud... service qui est donc payé lors de l'achat du disque dur !

Et si nous imaginions qu'après des années d'utilisation d'un service « gratuit » comme un gestionnaire de mails, les utilisateurs se rendent compte que, finalement, l'espace disque qui leur était fourni et donné pour « quasiment infini » ne l'était pas tant que ça... quelle serait leur réaction si on leur proposait de pouvoir continuer à profiter de leur service « gratuit », celui sur lequel se trouvent toutes leurs données, avec lequel ils ont leurs habitudes, contre paiement ? Ne seraient-ils pas tentés de payer pour conserver tous leurs avantages et cela ne s'apparenterait-il pas à une sorte de vente forcée ?

Nous utilisons tous au moins l'un de ces services. Si, si, ne le niez pas, vous aussi ! Même si nous savons mettre en place ces solutions de gestion de mails et autres, il est tellement tentant de se décharger d'une activité ingrate pour pouvoir se consacrer à d'autres tâches plus « nobles ». Donc nous aussi, nous les employons, mais le tout est de les utiliser avec parcimonie, en étant bien conscient des conséquences et puis d'aller lire de temps à autre quelques contrats d'utilisation : ça remet toujours les idées en place rapidement... Sur ce, nos conditions d'utilisations étant extrêmement concises : tournez les pages pour poursuivre votre lecture de GNU/Linux Magazine !

Tristan Colombo

Déploiement automatique de Linux

grâce à PXE, BOOTP & TFTP


SOMMAIRE :

Actus & Humeur

p. 06  Prise en main de TLS 1.3 avec OpenSSL 1.1.1

IA, Robotique & Science

p. 16  Décodage d’images numériques issues de satellites météorologiques en orbite basse : le protocole LRPT de Meteor-M2 (partie 1/3)

Système & Réseau 

p. 36  Automatisez vos installations : TFTP et DHCP

Kernel & Bas Niveau 

p. 46  Interfaçage de code C++ pour Ruby et Python avec SWIG

Libs & Modules 

p. 58  Pensez à l’ergonomie de vos scripts CLI en Python - épisode 2/2 : prompt_toolkit
p. 66  Introduction rapide à Ruby

Portabilité

p. 76  Adosser des services Kerbérisés Linux à Active Directory

éDITO :

Je pensais que nous avions encore quelques années devant nous avant de voir fleurir diverses offres nous proposant des réductions en échange de nos données… mais en fait c'est déjà le cas (et visiblement les assureurs s'y essayent depuis quelques années). Pour ceux qui, comme moi, tomberaient des nues, voilà de quoi il est question : acceptez d'être espionné (il n'y a pas d'autre terme), et en échange, si vous conduisez correctement, vous aurez droit à une réduction sur le montant de votre assurance auto. Grâce à une application installée sur votre smartphone, l'assurance récoltera votre position GPS, vos accélérations et freinages et, à l'aide de prestataires, vous attribuera un score. Bien entendu, ces informations ne sortiront pas de la société d'assurance ni des prestataires sélectionnés par celle-ci (promis, juré, craché !).

Avec ces offres d'assurance dégressives, ne nous retrouvons-nous pas un peu dans le même cas de figure que ces personnes condamnées à des peines de prison ferme qui peuvent bénéficier d'une mesure d'aménagement leur permettant d'effectuer leur peine à domicile en acceptant de porter un bracelet électronique ? Si vous ne pouvez pas payer l'assurance au prix fort, alors il vous suffit d'accepter de porter un « bracelet électronique » pour revenir à un montant plus en adéquation avec vos moyens. Avec un tel système, il est évident que certaines personnes renonceront à une part de leurs libertés pour bénéficier d'avantages financiers arguant des classiques « je n'ai rien à cacher », « ça ne me dérange pas que l'on sache où je vais, ce n'est pas secret », ou plus prosaïquement « je ne peux pas faire autrement, je n'ai pas les moyens de payer plus cher ».

Pour l'instant, nous pouvons encore choisir, mais que se passera-t-il lorsque les assurances parviendront à des accords avec les constructeurs de voitures et que ceux-ci installeront le matériel de traçage directement dans les véhicules ? Il ne nous restera plus qu'à rouler en voiture de collection ou en vélo électrique. Le côté positif de la situation serait d'y voir une solution malicieuse à la pollution... pourtant ça ne fonctionnera pas avec les voitures de collection qui, bien que particulièrement esthétiques, ont tendance à consommer beaucoup d'essence !

Tout ceci, c'est pour l'assurance auto, une assurance qui n'a rien d'obligatoire puisque l'on peut justement choisir de ne pas posséder de voiture. Par contre, le même schéma se dessine pour les assurances santé : faites du sport et vous dépenserez moins. Du coup, en tant que sportif justement, j'ai une question un peu naïve : quand on fait du sport, malheureusement, il arrive que l'on se blesse et, suivant la blessure, la convalescence peut durer plusieurs mois. Que se passe-t-il alors ? Je vais être pénalisé (ou pas) parce que j'ai suivi les directives qui m'étaient imposées ?

Pour se défendre, les assureurs certifient que ces systèmes de contrôle ne pénalisent pas les personnes qui ne les acceptent pas. Mais rien ne nous garantit que le montant « standard » ne sera pas augmenté pour que la remise obtenue permette seulement d'atteindre cet ancien montant.

Puisque pour le moment vous n'avez pas encore à scanner vos lectures pour vous assurer qu'elles soient « saines » et fassent diminuer le montant de votre assurance maladie, profitez-en pour lire votre GNU/Linux Magazine en toute quiétude (vous pouvez même manger des chocolats en même temps ; promis, nous ne dirons rien !).

Tristan Colombo

Sécurisez votre code Java avec des conteneurs grâce à Quarkus


SOMMAIRE :

Actus & Humeur

p. 06  Comment pourrir sa Debian
p. 10  L’amplification de tests pour DevOps
p. 22  K3s : mini, mini, mini, tout est petit dans notre vie

IA, Robotique & Science

p. 35  Décodage d’images numériques issues de satellites météorologiques en orbite basse : le protocole LRPT de Meteor-M2 (partie 2/3)

Système & Réseau 

p. 52  Ansible en local ou comment ne plus perdre de temps lors des réinstallations

Hack & Bidouille 

p. 60  Synchronisez votre ordinateur fixe et votre portable pour vos déplacements

Libs & Modules 

p. 66  Quarkus : sécurisez votre code Java avec des conteneurs

Sécurité & Vulnérabilité

p. 76  Validez vos certificats avec DANE

éDITO :

C'est le matin. Comme tous les matins, j'allume mon ordinateur et je commence par consulter mes mails. Mais ce matin-là, une surprise m'attend :

Your account is hacked ! Modify your pswd right now !

Ouhla, ça à l'air sérieux ! Continuons :

I'm ahacker who openedyour email boxand digital devicesa few months ago.

Donc si je comprends bien, un « hacker » handicapé ayant sans doute subi une amputation du pouce de la main droite et ne pouvant pas utiliser correctement la touche <Espace>, a piraté ma boîte mail. Bien entendu tout cela s'est déroulé il y a quelques mois, mais il a préféré attendre un peu avant de m'alerter. Pourquoi ? Lisons la suite pour comprendre :

I have installed special program to the adult vids (porno) site and suppose that you visited this site to have a good time (you realize what I really mean).

During you were taking a look at content, your internet browser started functioning as a RDP (Remote Control) that have a keylogger that granted me access to your display and camera.

You have put passwords on the websites you visited, I already caught all of them.

Mais c'est vraiment sérieux ! Le gars s'y connaît, c'est sûr, on peut voir des termes hyper techniques ! En plus avec son keylogger, il a récupéré tous mes mots de passe ! Et s'il a attendu quelques mois sans les utiliser, c'est par bonté d'âme, pour ne pas vider tous mes comptes en banque et commander sur des dizaines de sites. En plus il est tellement fort qu'on peut cliquer sur le texte de son mail et qu'on ne peut pas sélectionner le texte… c'est une image ! Ça c'est vraiment de la maîtrise technique !

En poursuivant le mail, le « hacker » demande 1000 $ en bitcoins sous deux jours sans quoi il transmettra des fichiers vidéos compromettants à tout mon entourage. Ça fait peur !

Mais qui, en 2019, peut encore tomber dans le panneau ? Même si on ne comprend rien à l'informatique, comment imaginer qu'un type disposant de tous vos mots de passe attende patiemment quelques mois pour vous extorquer seulement 1000 $ alors qu'il pourrait sans doute obtenir bien plus par ailleurs ? Pourtant, ces pratiques doivent fonctionner puisque ce genre de spam continue à proliférer et que de nouvelles versions en français, allemand, espagnol, etc. ont été détectées. Ce type de spam, qualifié de « sextorsion », est toujours aussi mal fait que les spams indiquant un remboursement des impôts ou d'un service quelconque pour peu que l'on fournisse bien entendu quelques menus renseignements confidentiels. Si le nombre d'envois de ces spams de sextorsion augmente, c'est qu'ils doivent être plus efficaces que leurs prédécesseurs et que le pourcentage de consommateurs de sites pornographiques doit être suffisamment conséquent pour pouvoir atteindre aléatoirement les gens qui se sentiront visés, qui prendront peur à l'idée que leurs connaissances puissent apprendre qu'ils consultent en secret ces sites... et qui paieront. Le thème étant sensible, les gens auront d'autant plus tendance à se laisser duper. Et pendant ce temps nous recevons des mails inutiles...

55% à 95%, ce serait, d'après les éditeurs de solutions anti-spam, le pourcentage de spam par rapport à l'ensemble des mails envoyés (les données détaillées de signal-spam.fr sont intéressantes à ce sujet) : la dépense énergétique est vraiment considérable pour du déchet ! Alors plutôt que de perdre du temps à effacer les spams qui passent à travers les mailles des filets anti-spams, lisez votre GNU/Linux Magazine !

Bonne lecture !

Tristan Colombo

Simulez un ordinateur quantique

  • Découvrez les fondements de la logique quantique
  • Réalisez votre tout premier programme quantique et exécutez-le !

sommaire

Actus & Humeur

p. 06 KubeCon EU 2019 - Rétrospective
p. 12 Simulez un calculateur quantique sur votre ordinateur

IA, Robotique & Science

p. 22 Quantum Computing : et si on passait aux tests avec IBM Q Experience ?
p. 28 Décodage d’images numériques issues de satellites météorologiques en orbite basse : le protocole LRPT de Meteor-M2 (partie 3/3)

Système & Réseau

p. 42 Les Opérateurs Kubernetes

Kernel & Bas Niveau

p. 50 Gestion de timers en langage C

Mobile & Web

p. 60 Automatiser la production de PDF avec Chromium

Sécurité & Vulnérabilité

p. 68 Le VPN du pauvre…

IoT & Embarqué

p. 74 Démarrez avec MicroPython

éDITO :

Au début, il n’y avait rien. Puis le Big Bang, les étoiles, les planètes, notre planète, les bactéries, les invertébrés, les vertébrés, les dinosaures, les mammifères et enfin, les humains. Les Hommes se sont développés en exploitant leur environnement : dans un premier temps, sans réel impact sur celui-ci puis, dans un second temps, en laissant des traces indélébiles de leur passage : exploitation de ressources non renouvelables, pollution atmosphérique, etc. Les Hommes préhistoriques [1] laissaient des traces de leur passage en peignant les murs des grottes, l’homme moderne préfère laisser derrière lui des immondices ; jusque dans l’espace où nombre de débris de satellites et fusées sont en orbite autour de la Terre [2].

Mais tout cela ne se limite pas à des espaces physiques, il en va de même pour les espaces virtuels qui impactent par la suite notre environnement. Les services de Google, par exemple, qui sont si pratiques à utiliser :

  • Gmail stocke vos mails sans que vous ayez à faire le ménage ;
  • Google Photo stocke vos photos (automatiquement si vous n’avez pas modifié les paramètres par défaut) et  Apple n’est pas en reste avec Photos pour iOS ;
  • La barre de recherche sur les smartphones permettant à une bonne majorité d’utilisateur de ne plus taper directement une URL connue, mais d’effectuer une recherche avant de cliquer sur un lien qu’il connaissait déjà ;
  • L’assistant vocal Google Home (ou Amazon Echo, ou Apple Homepod) qui vous espionne^W^W^W^W^W^W^W^W écoute en permanence [3] ;
  • etc.

Vous êtes-vous déjà questionné sur l’impact de ces technologies ? L’empreinte carbone relative à la conservation des données et les multiples recherches est loin d’être nulle : les capacités de stockage et de traitement augmentent et requièrent de plus en plus de matériel qui devra être refroidi et entraînera une consommation énergétique supplémentaire. Alors, si vous utilisez ces services pour leur côté pratique puisqu’en tant que lecteur de GNU/Linux Magazine vous ne pouvez ignorer les risques liés à la confidentialité des données [4], pourquoi ne pas profiter des vacances pour faire un peu de ménage ? En seulement deux minutes j’ai par exemple éliminé environ 10 000 mails de pub qui dormaient bien sagement dans une boîte, correctement étiquetés « Pub ». En passant quelques minutes de plus on peut retrouver toutes les annonces de livraison, ou les mails de notification de diverses applications : l’occasion de créer de nouveaux filtres pour éliminer tous ces contenus qui n’ont aucune raison d’être archivés… et ne pas sombrer une fois de plus dans la facilité en utilisant des services de nettoyage (CleanFox, Unroll Me, etc.) qui auraient eux aussi accès à l'ensemble de vos données sous prétexte de supprimer les mails inutiles…

Et puis supprimer des mails sur des boîtes de type Gmail c'est retirer une source d'information sur vos activités (voir l'historique des achats en ligne conservé par Google sur https://myaccount.google.com/purchases). C'est les vacances ! Prenez un peu de temps pour faire le ménage… et lire votre Linux Mag ! Je vous souhaite une bonne lecture et je vous retrouverai avec plaisir à la rentrée !

Tristan Colombo


[1] D’après de récentes études, il s’agirait d’empreintes laissées par des femmes préhistoriques : https://www.hominides.com/html/actualites/mains-prehistoire-realisees-par-des-femmes-0762.php

[2] Space Debris - NASA Headquarters : https://www.hq.nasa.gov/office/hqlibrary/pathfinders/debris.htm

[3] Amazon paie des employés pour écouter et analyser les conversations pour améliorer l’assistant vocal Alexa : https://edition.cnn.com/2019/04/11/tech/amazon-alexa-listening/index.html

[4] On savait que Google analysait les mails, et certains résultats comme les achats effectués sont accessibles depuis votre compte : https://www.cnbc.com/2019/05/17/google-gmail-tracks-purchase-history-how-to-delete-it.html

Tirez le meilleur de GIT

Intervenez à chaque étape du traitement des données avec les hooks


SOMMAIRE :

Actus & Humeur

p. 06 European GNU Radio Days 2019
p. 14 Pourquoi Docker est obsolète

Système & Réseau

p. 20 Du bon usage du sémaphore
p. 24 Personnalisez Git à l’aide d’un git hook

Hack & Bidouille

p. 40 Créez une commande de sonorisation pour vos scripts Shell

Libs & Modules

p. 44 (Re-)Découvrir Fortran
p. 58 Service ReST ultrarapide avec Quarkus

Mobile & Web

p. 74 Automatisation de l’extraction d’information d’une page web nécessitant une authentification

éDITO :

Lorsqu’un élément matériel se met brusquement à dysfonctionner, c’est agaçant (qui plus est en rentrant de congés). Lorsque ce matériel est utilisé de manière continue pour travailler, c’est énervant. Et si en plus, ledit matériel ne peut pas être réparé, ça devient rageant !

Après 5 ou 6 ans de bons et loyaux services, mon clavier m’a « lâché ». Attention, il est toujours utilisable… mais la touche <Backspace> ne tient en place plus que d’un côté et à chaque appui elle se relève, ce qui est particulièrement horripilant :

Quel est le problème ? Deux minuscules ergots au dos de la touche ont cassé. Quelle est la solution ? Changer la touche ? Cela me paraissait évident !

Mon clavier n’est pas un clavier chinois, c’est le fer de lance d’une grande marque suisse de périphériques informatiques. Plus de 80€ pour un clavier de bureau c’est un peu cher, mais il faut reconnaître que c’est un très bon produit. J’ai donc contacté le SAV pour pouvoir réparer mon clavier :

« J'ai acheté mon clavier il y a 5 ou 6 ans et l'une des touches (backspace) vient de se casser. L'ensemble du clavier fonctionnant correctement, j'aurais souhaité acheter une touche de remplacement, mais je ne trouve pas sur quelle page effectuer mon achat. »

À quoi il m’a été répondu qu’il n’y avait plus de pièces en stock, car mon modèle de clavier était obsolète. Je pouvais donc aller voir sur Amazon ou Ebay pour acheter une touche de rechange, mais que l’entreprise ne pouvait garantir la provenance des pièces…

Ce fameux clavier est toujours en vente sur le site du constructeur (normal, c’est leur meilleur clavier). Donc c’est un peu comme si l’acheteur d’une Bugatti Chiron crevait et qu’on lui répondait que son modèle est obsolète et qu’il n’y a plus de pneus disponibles…

Le constructeur ne veut pas que l’on répare ses claviers donc essayons leur suggestion et passons par le Web. On y trouve soit des touches génériques chinoises (avec l’incertitude d’acheter un bout de plastique inutile), soit un vendeur sur Ebay qui propose des touches d’occasion à… 10€ la touche ! Le calcul est vite fait, mon clavier de 105 touches coûte plus de 1050€ ! Et si une de mes touches s’est cassée, les autres risquent de suivre et rien ne me dit qu’il n’en sera pas de même sur les touches d’occasion…

J’ai donc acheté un nouveau clavier et je possède dorénavant un véritable trésor : un jeu de 104 touches de rechange issues de mon précédent clavier. Vive la société de consommation !

Que vous achetiez votre Linux Magazine en version papier ou numérique, même en cas de défaillance de votre clavier vous pourrez continuer à le lire ! C'est quand même une bonne nouvelle… tant que nous avons des claviers pour l'écrire :-)

Tristan Colombo


Reconnaissance d'objets :

Créez votre premier cortex visuel


SOMMAIRE

Actus & Humeur

p. 06 Et si nous calculions « mieux » que les machines ?

IA, Robotique & Science

p. 14 Réseaux de Neurones Convolutifs : un cortex visuel virtuel pour la reconnaissance d’image
p. 30 Informatique quantique : c’est simple avec les nombres complexes

Système & Réseau

p. 40 RISC-V, une architecture de microprocesseur libre et ouverte

Hack & Bidouille

p. 56 Organisez le lancement de vos applications au démarrage avec WmCtrl

Libs & Modules

p. 60 Validez vos données avec Cerberus
p. 64 Exécutez des commandes Shell depuis vos scripts Tampermonkey/Greasemonkey

Mobile & Web

p. 76 Introduction à socket.io

éDITO 

« Windaube ? Ben justement, c’est de la daube ! »

« Linux ? Mais rien ne marche ! Il faut tout faire en ligne de commandes comme au siècle dernier ! »

« Moi si c’est pas Mac, je ne regarde même pas, ça pique les yeux ! »

La petite guéguerre Windows/Linux/Mac a toujours existé et continuera sans doute à perdurer encore longtemps. Pourtant, force est de constater que les temps ont (légèrement) changé. En effet, si l’opposition règne toujours quant au système d’exploitation lui-même, nos amis windoziens et maqueux se rendent-ils comptent qu’ils utilisent de plus en plus de technologies open source ? Je ne vais pas parler ici de bureautique, mais de développement :

  • pour les technologies web ? HTML, JavaScript, CSS, NodeJS, AngularJs, Dart, etc.
  • les bases de données ? MySQL/MariaDB et PostgreSQL.
  • pour les conteneurs ? Docker, Ansible et autres.
  • les serveurs ? Apache, NGinx et consorts !
  • les langages de programmation ? Python, C/C++, etc.
  • et pour les smartphones ? Là effectivement, en dehors de la plateforme Android qui utilise Java, il faudra soit utiliser des solutions propriétaires pour du développement natif, soit se tourner vers le multiplateforme avec PhoneGap, Xamarin, etc.

Ainsi, l'ensemble des technologies énumérées précédemment sont sous licence open source et sont multiplateformes. Je me sens nécessairement plus à l'aise à développer sous Linux, mais s'il me faut utiliser Windows pour un travail spécifique où mes utilisateurs n'auront accès qu'à cette plateforme, je le ferai sans rechigner et ceci sera d'autant facilité par les nombreuses technologies multiplateformes qui tissent une trame entre les différents systèmes d'exploitation.

Ce rapprochement est d'autant plus criant que Microsoft a annoncé la disponibilité prochaine d'un véritable noyau Linux dans Windows 10 ! Alors, n’hésitez pas à faire lire GNU/Linux Magazine à votre voisine windozienne ou à votre collègue maqueux, ils devraient y trouver un certain intérêt… Bonne lecture !


Tristan Colombo

Créez votre première application Blockchain


SOMMAIRE :

Actus & Humeur

p. 06 Réalisez votre première application décentralisée sur Ethereum

IA, Robotique & Science

p. 26 Les filtres de Bloom : un peu de bruit pour beaucoup !

Système & Réseau

p. 36 Isolation de conteneurs : You Are NOT Safe

Kernel & Bas Niveau

p. 44 C++ Moderne : C++11 & C++14

Libs & Modules

p. 58 Créez des templates pour vos projets Python avec Cookiecutter
p. 66 Utiliser Quarkus avec Panache
p. 78 Pytype versus Mypy : quel outil pour vérifier les types en Python ?

éDITO :

« [...] dans le passé, aucun gouvernement n'avait le pouvoir de maintenir ses citoyens sous une surveillance constante. L'invention de l’imprimerie cependant, permit de diriger plus facilement l'opinion publique. Le film et la radio y aidèrent encore plus. Avec le développement de la télévision et le perfectionnement technique qui rendit possibles, sur le même instrument, la réception et la transmission simultanées, ce fut la fin de la vie privée. »

George Orwell, 1984

Lorsqu’il y a quelques semaines nous apprenions via un article sur le site de la Nasa (retiré ensuite) que des chercheurs de Google affirmaient avoir atteint la « suprématie quantique », les réactions ont pu être variées :

  • certains ont pu se dire, à l’instar de Sheldon Cooper dans « The Big Bang Theory », « La physique quantique me comble de bonheur. C’est comme regarder l’univers tout nu. J’en ai des frissons. » ;
  • d’autres ont pu y voir une avancée majeure pour la recherche, le fait que la publication ait lieu sur le site de la Nasa n’étant pas anodin ;
  • et les derniers ont pu simplement s’interroger sur ce que pouvait bien signifier la juxtaposition des mots « suprématie » et « quantique ».

Voir les termes « suprématie » et « Google » associés nous ramène nécessairement à « 1984 » de par les connotations politiques et militaires auxquelles ce terme nous ramène : suprématie de la race aryenne, suprémacisme blanc, suprématie des chevaliers au Moyen-Âge, etc. Mais essayons de rester objectifs et de définir précisément la suprématie quantique : il s’agit du nombre de qubits au-delà duquel aucun super calculateur ne peut rivaliser avec son équivalent quantique (un calculateur équivalent, mais utilisant la technologie quantique). À partir de 50 qubits, cette rivalité est donnée pour physiquement impossible et c’est donc à partir de là que l’on atteint la fameuse « suprématie quantique ». Intel avait déjà atteint 49 qubits en 2018, mais l’informatique quantique était sans doute moins à la mode pour que cela ait autant de répercussions qu’avec Google.

Depuis la publication de l'information, l'équipe de chercheurs de Google se mure dans le silence et ne valide ni ne dément l'information. En retirant l'article (en le « dépubliant »), Google réalise un beau coup de pub et crée le buzz tout en gagnant du temps avant de publier un article dans un journal scientifique.

Mais revenons aux implications du fait que Google aurait donc atteint la suprématie quantique (vous noterez le conditionnel, les délais de publication faisant que cet édito est écrit bien avant que vous ne le lisiez et l’article de l'annonce initiale de Google n’étant plus en ligne à cette heure, début octobre). L’ordinateur de Google aurait réussi à effectuer un calcul en 3 minutes et 20 secondes là où le plus puissant de nos super calculateurs actuels mettrait quelque 10 000 ans. Concrètement, cela signifie que lorsque ces machines seront réellement fonctionnelles, il ne servira à rien de chiffrer des données qui pourront être déchiffrées quasiment instantanément. Et, surtout, Google ayant amassé des Pio et des Pio de données personnelles depuis des années, le seul véritable frein à leur exploitation restait jusqu'alors la puissance de calcul permettant de les traiter et de les analyser. Avec un ordinateur quantique, Google atteindra peut-être effectivement la suprématie, mais pas nécessairement seulement quantique...

Tristan Colombo

Découvrez les 10 principales nouveautés de Python 3.8 !


SOMMAIRE :

Actus & Humeur

p. 06 Python 3.8 : beaucoup mieux qu’une simple mise à jour !
p. 16 Témoignage : Golang vs Python... le retour de l’XP !

IA, Robotique & Science

p. 22 Informatique quantique : jouez au billard quantique !

Système & Réseau

p. 34 Tests unitaires pour script avec Bats
p. 48 Toute votre infrastructure Debian en YAML avec DebOps

Kernel & Bas Niveau

p. 58 C++ Moderne : C++17 (partie 1)

Hack & Bidouille

p. 70 Conservez l’historique de vos commandes pour chaque projet

Mobile & Web

p. 76 Conservez l’historique de vos commandes pour chaque projet

éDITO :

La démocratisation des smartphones 4G et le développement de l’ADSL et de la fibre optique ont permis de faciliter l’accès à Internet. Désormais, pratiquement où que l’on soit, il est possible de se connecter au réseau dans de bonnes conditions, de consulter des pages web et d’avoir ainsi accès à des tonnes d’informations. C’est pratique, cela permet de travailler beaucoup plus vite, mais cela présente également quelques inconvénients…

Devant la masse de données, certains ont tendance à « baisser les bras » et on retrouve de plus en plus souvent des informations non vérifiées, partielles, voire complètement erronées sur des sites censés être fiables. Par effet boule de neige ces informations sont ensuite relayées via les différents réseaux sociaux que sont Twitter, Facebook et autres et gagnent ainsi leurs galons de véracité aux yeux du grand public : « si tout le monde le dit, c’est que c’est vrai ».

Autre phénomène : devant la multiplication d’hoaxes tous plus gros les uns que les autres, même les gens avertis finissent par ne plus vérifier l’information et la propagent d’autant plus facilement que l’information en question abondera dans le sens de leurs convictions. Pourtant, généralement quelques secondes suffisent pour faire éclater la vérité : une recherche sur https://hoaxbuster.com/ et le tour est joué ! En effet, ces canulars circulent pour la plupart sur la toile depuis des années et ont bien été identifiés.

Ces hoaxes ne sont pas nécessairement réalisés de manière pernicieuse : tout le monde peut écrire ce qu’il veut et propager ainsi des informations non valides. Cet été par exemple un agriculteur a malencontreusement déversé sur ses terres en Camargue un mélange noirâtre [1]. Aussitôt les réseaux sociaux se sont emballés, dénonçant une immonde pollution dans un parc protégé ! Alors bien entendu, si c’est noir, c’est que c’est malsain, ça représente les ténèbres voire le diable (si en plus on avait pu en mesurer la radioactivité, ça aurait été encore mieux) ! Il se trouve qu’en fait il s’agissait de « jus de cave », un mélange de jus de raisin et de compost, quelque chose de tout à fait naturel. Mais le mal ayant été fait, les tentatives de « rétro-pédalage » tardives ne peuvent pas venir corriger la vision du plus grand nombre des internautes ayant vu l’information initiale et qui ne liront pas le rectificatif. Il est facile d’agir avant de réfléchir, surtout lorsque l’on fait partie de la masse…

Pour aller plus loin, l'information précédente est issue d'un journal national et je devrais donc la considérer comme véridique, d'autant plus qu'elle sert mon propos… Pourtant des zones d'ombre subsistent :

  • une recherche d'image se basant sur l'article ne donne qu'un seul lien : l'article lui-même ;
  • une recherche de discussion sur le sujet ou d'une référence quelconque (image ou vidéo) ne donne aucun résultat.

Il s'agit donc sans doute d'un groupe à accès restreint, mais du coup, il est impossible de vérifier l'information et je propage peut-être un hoax tout simplement, car l'information va dans le sens qui m'arrange. Ici cet exemple nous montre que même sur une information a priori sans enjeu particulier, lorsque les sources ne sont pas clairement mises à disposition, il est intéressant de s'interroger quelque peu.

Pouvoir communiquer, transmettre simplement des informations à des milliers de personnes est fort séduisant. Pourtant, à bien y regarder, on s’aperçoit que les réseaux sociaux servent majoritairement d’espace de critique non constructive. Avez-vous déjà envisagé de féliciter un SAV sur Twitter pour leur réponse rapide et satisfaisante ? Il est toujours plus simple de critiquer, la preuve en est… cet édito :-)

Tristan Colombo


[1] https://www.laprovence.com/article/societe/5659881/emballement-autour-dun-epandage-de-compost-en-camargue.html

Deep Learning

De la théorie à la pratique


sommaire

Actus

p.06 IPython 7.0, la nouvelle version du shell interactif Python survitaminé
p.08 Côté livres...

Repères

p.10 Quel IDE pour analyser vos données en Python ?

Dossier : Deep Learning

p. 20 Le Deep Learning, en fait rien de nouveau
p. 38 Computer Vision : le traitement des images par Machine Learning
p. 52 Kaggle, la Data Science en compétition
p. 60 Génération d’articles à l’aide de réseaux de neurones
p. 78 Le Machine Learning portable : écrivez une IA de jeu de morpion en Go, distribuez-la en Wasm
p. 102 Journal de bord d’un hackathon, dans la peau d’un Data Scientist

Témoignages

p.110 Deep Learning et humanités numériques, Entretien avec Daniel Stökl Ben Ezra

Système

p.118 Supervision à petite échelle avec Conky et Collectd

Préface :

« Comment fer cuire un neuf ? »

« Kel tant pour un neuf molé ? »

« Cé ki le prézident ? »

Ce qui est intéressant avec le Machine Learning ou le Deep Learning, c’est la faculté du programme à apprendre par lui-même. Ce qui est dangereux, ce sont les données que nous lui fournissons pour son apprentissage. Prenez un moteur de recherche tel que Google et soumettez-lui les requêtes précédentes : vous obtiendrez des réponses sensées. Pourquoi ? Parce que l’intelligence artificielle qui se cache derrière le moteur de recherche a appris à répondre à ce genre de requêtes. La question qui se pose alors est : d’où peuvent bien provenir des inepties pareilles ? Si je veux connaître le temps de cuisson pour un œuf mollet, je tape : « temps cuisson œuf mollet »

Donc comment la machine a-t-elle pu déduire une telle déformation de langage ? En fait, elle a appris des milliers de requêtes d’utilisateurs et de leur navigation pour en déduire ce qu’ils recherchaient. Le facteur incontrôlable de cet apprentissage permanent ce sont donc « les gens ». Le service devant répondre à la masse il s’adapte, il mute et éventuellement pourrait ne plus reconnaître à terme des requêtes correctement formulées. Lorsque votre recherche par mots-clés échoue, essayez de la réécrire sous forme dysorthographique, vous aurez parfois des surprises et ça fait froid dans le dos. Imaginez une voiture autonome apprenant en se basant sur le comportement des conducteurs humains : demi-tour au milieu de la route, dépassement par la droite, stationnement dans un rond-point, non-respect des distances de sécurité, etc. Au lieu de nous retrouver face à une machine qui, sauf défaillance technique, se comporte de manière rationnelle et prévisible, nous nous retrouverions face à des véhicules à la conduite erratique, semblable à ce que peut faire un conducteur humain. Quel serait alors le gain pour la Société ?

La question que je pose donc en préambule de ce hors-série est la suivante : est-il toujours nécessaire d’apprendre en se calquant sur le comportement du plus grand nombre ? L’Histoire nous a montré à de nombreuses reprises (Galilée démontrant l’héliocentrisme - la Terre tourne autour du Soleil - pour ne citer qu’un seul exemple) que le plus grand nombre n’a pas toujours raison. Est-il donc judicieux de laisser des systèmes apprendre par eux-mêmes et remettre en cause leurs connaissances en se basant sur des comportements de masse ? Tant que l’ensemble d’apprentissage est maîtrisé, l’algorithme va tendre vers un résultat « connu » : classer des photos d’ophrys (des orchidées) en fonction des différentes espèces par exemple. Mais si l’on commence à intégrer à l’ensemble d’apprentissage les observations de citadins incapables de distinguer une marguerite d’une edelweiss, on va aboutir à une nouvelle classification des espèces d’ophrys, une classification qui n’aura plus rien de scientifique, mais qui correspondra au plus grand nombre. Les données sont donc comme toujours à traiter avec beaucoup de prudence. Le Machine Learning et le Deep Learning ne sont pas des méthodes magiques, une préparation des données et un paramétrage précis seront nécessaires et ce sont bien des prédictions que l’on obtiendra et non un résultat. En étant conscients de cela, nous disposons tout de même d’un formidable outil qui sera au cœur du dossier de ce hors-série. Bonne lecture !

Tristan Colombo

Big data & data mining

Analysez vos données !


SOMMAIRE :

Actus

p.06 PyText, le framework de traitement du langage de Facebook passe en Open Source
p.08 Côté livres...

Repères

p.10 Évolution de PostgreSQL en version 11

Dossier : Big data & data mining

p. 20 Les « spurious correlations » ou comment faire dire absolument n'importe quoi à ses données
p. 40 Orange, un outil graphique pour analyser ses données en toute simplicité
p. 62 La création d'add-ons pour Orange en Python
p. 70 Identifier des groupes de données par classification
p. 92 Quels outils pour représenter graphiquement des données ?

Témoignages

p.104 Entretien avec Christian Surace, responsable du Centre de données astrophysiques de Marseille

Système

p.118 Google Knative : le futur standard du déploiement d'applications serverless ?

Préface :

Il y a des chercheurs et des ingénieurs qui, dans un travail long et fastidieux, cherchent des corrélations complexes, qui veulent faire parler les données et les lier entre elles. Leur objectif est d’extraire un maximum d’informations et de bien comprendre les articulations existant entre celles-ci.

Et puis, il y a l’expérience de sites web administratifs ou d’entreprises qui détiennent sur nous tous des milliers de données. En nous rendant sur des sites proposant différents services, il n’est pas rare de s’interroger sur la réflexion qui a eu lieu quant à l’usage de données complètement basiques telles que l’état civil. Que dire en effet lorsque vous contactez un service client par téléphone (nécessairement parce que l’option chat/mail est défaillante sur le site) et que le serveur vous communique votre numéro de contrat à transmettre au téléconseiller qui va vous répondre ? Pour connaître ce numéro de contrat, le serveur a effectué une requête à partir de votre numéro de téléphone ; et, c’est ce même serveur qui va vous mettre en relation avec un téléconseiller... Alors pourquoi ne transmet-il pas directement le numéro de contrat à notre interlocuteur qui doit lui aussi être identifié dans la base ?

J’avais déjà exprimé mon étonnement lorsqu’après avoir rempli une demande de carte d’identité il faut donner les mêmes renseignements pour obtenir un acte de naissance (GNU/Linux Magazine n°214). On ne se retrouve pas ici dans des cas où l’on tente d’inférer de nouvelles connaissances depuis un jeu de données existant, il faut simplement transmettre l’information entre applications ! Il est assez sidérant de constater la cassure entre ces deux mondes : d’un côté, on va utiliser couramment des méthodes de prédiction, du clustering, etc., et de l’autre les requêtes SQL de base ne sont pas mises en place.

Imaginons parallèlement des sociétés maîtrisant tous les processus d’analyse de données et conservant les informations relatives au comportement de ses clients. Cela semble irréel, mais c’est un bon exemple... restons dans l’imaginaire et supposons qu’une telle entreprise puisse exister. Cette société vendrait un peu de tout et elle aurait donc accès aux informations suivantes :

le nom, le prénom et l’adresse de ses clients, ce qui peut facilement conduire à une estimation du niveau de vie en fonction du quartier dans lequel se trouve le logement et du type de celui-ci ;

la liste des recherches des clients ainsi que, bien entendu, leurs commandes. En supposant que la société vende vraiment toutes sortes de produits, on peut en déduire :

- les habitudes alimentaires ;
- les goûts musicaux, littéraires et cinématographiques ;
- les hobbies et éventuellement la profession.

Imaginez toutes les informations qui pourraient en être inférées : allergies, tendances politiques, etc. ! Tout cela pouvant éventuellement être renforcé en proposant des services complémentaires d’écoute de musique et de visionnage de films et séries à la demande. Bien entendu, ladite société arguerait du fait que toute l’analyse n’est effectuée que dans le but d’améliorer l’expérience utilisateur en lui proposant des produits adaptés à ses envies. Et nous pourrions imaginer pire avec une entreprise ayant accès à des données plus « sensibles » : mails, photos, position, recherches sur le Web, etc. Heureusement que tout cela ne reste que pure spéculation !

Dans ce numéro hors-série, nous ne vous proposerons pas de simplement transférer des données entre applications, ça nous savons que vous savez le faire ! Nous ne développerons pas non plus de programme permettant de profiler les gens. Nous nous attacherons à comprendre comment extraire des connaissances d’un jeu de données et quels outils employer. Et si par hasard vous croisez l’un des sombres individus responsable de ces applications inergonomiques, n’hésitez pas à lui prêter votre magazine pour porter la bonne parole ! Sur ce, je vous souhaite une bonne lecture !


Tristan Colombo

Scripts Shell

Bonnes pratiques et techniques avancées


SOMMAIRE :

Actus

p.06 Sortie de la version 3.1 du moteur de jeu Open Source Godot
p.08 Côté livres...
p.10 Réflexion sur l'apprentissage de la programmation

Développement

p.14 Centralisez vos petits services Python

Dossier : Scripts Shell

p. 20 Les bases du Shell
p. 44 Maîtrise des expressions régulières avec Sed
p. 60 Édition de flux de données avec Awk
p. 74 Bonnes pratiques et outils pour vos scripts
p. 88 Cas pratique : automatisation du paramétrage d’une suite de tests

Témoignages

p.98 L'importance des scripts Shell dans le milieu professionnel, entretien avec Oliver Falk, responsable technique de compte chez Red Hat

Décryptage

p.102 Retour d'expérience sur l'étude de la base MNIST pour la reconnaissance de chiffres manuscrits

Préface :

Pour être en accord avec l’air du temps, nous aurions pu choisir un autre titre pour ce hors-série et les articles qu’il contient. Voici ce à quoi vous avez échappé :

« Il essaye d’écrire un script Shell, ça tourne mal... »

« Découvrez ces 10 astuces que les développeurs de scripts Shell veulent vous cacher... la troisième va vous laisser sans voix ! »

« Écrire un script Shell en 3 secondes ? Oui, c’est possible grâce à un savoir ancestral ! »

« Entretien : ce qui est arrivé à ce développeur de scripts Shell est tout simplement ahurissant ! »

« Impressionnant ! Il écrit un script Shell et devient millionnaire ! »

Vous avez remarqué comme ces titres racoleurs, réservés jusqu’à présent à une certaine catégorie de sites connus pour leur tendance à faire dans le sensationnalisme, ont tendance à se propager à des sites de médias plus « respectables » ? On les retrouve même dans nos quotidiens ou nos magazines. Alors certes, la presse ne se porte pas très bien, les ventes chutent continuellement, mais peut-être faudrait-il conserver un minimum de professionnalisme et de sens critique. Il y a quelques semaines j’ai été fort intrigué par un titre d’article d’un quotidien régional qui était de la forme « Tuerie de XXX : 105 ans de prison pour les accusés ». 105 ans ? Pourtant le fait divers se déroulait en France et non aux États-Unis ! J’ai donc lu l’article et découvert qu’il y avait en fait six prévenus, que quatre d’entre eux avaient écopé de 20 ans de prison, un autre de 15 ans et un dernier de 10 ans. Bravo : 4 x 20 + 15 + 10 = 105, bel exemple de résumé journalistique !

On peut également trouver des punchlines « amusantes » sur certains magazines (les punchlines ce sont ces filets mis en avant sur les couvertures). Par exemple, pour un magazine de pêche : « Le seul magazine écrit par et pour les pêcheurs ». On se rend compte par la suite en lisant le magazine que dans lesdits « pêcheurs » il y a un gamin de 15 ans (« aux âmes bien nées la valeur n’attend point le nombre des années », certes, mais malheureusement ce n’est pas toujours le cas), un journaliste (spécialisé dans la pêche, mais pas pêcheur), que le rédacteur en chef de par sa formation et son expérience ne doit pouvoir prétendre qu’au titre de « pêcheur de girelles » (les girelles sont ces petits poissons de roche qui viennent manger n’importe quoi, une sorte de « rat des mers » que n’importe qui peut attraper pour peu qu’il dispose d’un hameçon, d’un bout de fil et d’un appât quelconque).

Attirer le lecteur à tout prix, voilà ce à quoi certains « journalistes » en sont réduits. Dans GNU/Linux Magazine, nous n’avons pas besoin de ça : faites une recherche sur Internet sur nos auteurs et vous verrez s’ils pêchent des girelles ou s’ils écrivent des scripts Shell...


Tristan Colombo


Si vous vous apercevez à la lecture de ce hors-série qu’il vous manque quelques bases de développement en script Shell, vous pouvez vous reporter à notre hors-série n°89 « Maîtrisez la programmation de scripts Shell » disponible sur notre boutique (https://boutique.ed-diamond.com) ou notre plateforme Connect (https://connect.ed-diamond.com/GNU-Linux-Magazine/GLMFHS-089).

Développez des Extensions & Plugins pour améliorer vos applications


SOMMAIRE :

Actus

p.06 Première photo d'un trou noir… merci Python !
p.08 Côté livres...

Développement

p.10 Utilisez vos librairies C avec Go

Repères

p.26 Scylla (DB), l’autre monstre grec

Dossier : Extensions & Plugins

p. 38 Créez vos extensions Chromium/Google Chrome ou Mozilla Firefox en JavaScript
p. 56 Étendez VLC grâce à Lua
p. 68 La génération de documents LibreOffice : le cauchemar de tout développeur résolu !
p. 92 Interagissez automatiquement avec absolument tout ce qui est visible sur votre écran !

Décryptage

p.110 Développer sur microcontrôleur sans microcontrôleur : les émulateurs

Préface :

Nous vivons dans une société où les évolutions techniques sont quasi quotidiennes. D’un point de vue marketing, on nous abreuve de messages publicitaires pour consommer « mieux », c’est-à-dire consommer plus et à outrance, même si le besoin n’est pas réel. Pour étayer mon propos, je vais prendre deux exemples.

Il y a quelques semaines, me déplaçant en voiture, j’ai garé cette dernière dans un parking souterrain. La procédure est classique : on arrive à la barrière et on prend un ticket servant d’horodatage et permettant d’ouvrir la porte piétonnière extérieure lorsque l’on veut récupérer son véhicule. Il s’agit d’une simple carte avec un ruban magnétique comme on en utilisait déjà il y a des dizaines d’années. Mais à cette époque, pour une opération aussi simple de lecture d’un code sur la carte pour déverrouiller une porte, on n’utilisait pas un ordinateur, c’était bien trop cher (et surtout ça ne sert à rien). Maintenant si ! Du coup, si l’application buggue, une fenêtre affichant un message d’erreur apparaît sur l’écran et le déverrouillage de la porte est impossible (non, Windows n’y est pour rien, c’est bien l’application qui a planté). Eh oui, pour ouvrir une porte avec une carte à bande magnétique il faut au moins un ordinateur et un écran ! Il est tellement plus simple de vendre un matériel surdimensionné, capable de faire un peu tout plutôt que de s’adapter à des contraintes. Bientôt lorsque vous voudrez acheter un interrupteur on vous vendra un micro-ordinateur…

L’arrivée du réseau 5G s’inscrit dans la même dynamique : a-t-on réellement besoin de ces antennes là où la 4G fonctionne correctement ? Nous non, mais pour que Kimberlay et Brandon puissent regarder avec leurs camarades du collège les vidéos sur YouTube de Yoyo-les-pieds-bleus en 8K et sans aucun lag sur leur dernier smartphone pliable-jetable, cela ne fait aucun doute. Pour qu’ils puissent jouer à tout moment à des jeux de plus en plus gourmands en ressources réseau, il faut la 5G ! Les composants des anciennes antennes 4G feront comme les smartphones antiques de 2018, ceux qui ne peuvent pas exploiter la 5G, et iront rejoindre un continent de plastique dérivant dans l’océan atlantique ou pacifique (il n’y a malheureusement pas un seul continent de plastique). Ils seront rapidement rejoints par les composants des antennes 5G dès l’avènement de la 6G. Commercialement parlant c’est bien joué : on change à la fois les antennes et les smartphones puisque pour les « plus anciens » - comprendre quelques mois - ceux-ci ne sont pas compatibles 5G.

Ce ne sont plus les besoins qui font naître les technologies, mais les services marketing qui créent des besoins qui engendrent une surconsommation. On ne se pose plus la question de l’optimisation :

  • Un programme est trop lent ? On change de machine !
  • Une application stocke trop de données (inutiles) ? On ajoute des disques durs, c’est ça le big data !
  • Un programme n’a pas assez de bande passante ? C’est nécessairement du côté matériel qu’il faut résoudre le problème ! Les images doivent forcément avoir une résolution de 7680 x 4320 (8K) pour un jeu de démineur !

Quand il y a un problème, il y a deux façons de le traiter : soit on utilise ses neurones, soit on choisit la solution la plus simple, mais aussi la plus polluante, et on sort les billets. À GNU/Linux Magazine, nous avons choisi les neurones… et vous allez pouvoir faire fonctionner les vôtres en lisant la suite. Bonne lecture !

Tristan Colombo

Conteneurs

Utilisation avancée et microservices


SOMMAIRE :

Actus

p.06 Transformez vos notebooks Jupyter en applications autonomes
p.08 Côté livres...

Repères

p.12 Du bon usage de PEP 8

Développement

p.26 Les 5 règles pour écrire du code maintenable

Dossier : Conteneurs - Utilisation avancée et Microservices

p. 48 De l'architecture monolithique aux conteneurs
p. 56 Simplification des opérations grâce au chef d'orchestre
p. 74 Kubernetes et son écosystème
p. 88 Observabilité des applications : monitoring, logging et tracing
p. 104 Intégration, déploiement et livraison ? Continuous, Continuous et Continuous...

Décryptage

p.110 Améliorez votre processus de prise de décision avec Jupyter !

ÉDITO :

La recherche scientifique permet d’avancer dans nos connaissances. En ce qui concerne l’informatique et les mathématiques, elle nous permet d’accroître notre savoir sur tout ce qui touche aux algorithmes, à la complexité, etc. Tous les articles que vous pouvez lire dans nos magazines, même ceux qui ne sont que des mises en pratique, sont toujours à rattacher à une part de théorie. Accéder à la littérature présentant cette théorie, c’est-à-dire aux journaux scientifiques, c’est pouvoir bénéficier des dernières avancées pour étayer ses propos ou, éventuellement se rendre compte que l’on fait fausse route. Malheureusement, à l’heure actuelle, il est très difficile d’y accéder lorsque l’on n’est pas rattaché à un organisme de recherche. Or, cet été, une nouvelle de grande portée vous a peut-être échappé alors que vous étiez écrasé par la chaleur : l’Université de Californie a décidé de résilier son abonnement aux publications scientifiques d’Elsevier (propriétaire d’environ 3000 journaux scientifiques tels que The Lancet, Genomics, Proteomics and Bioinformatics, Journal of Computational and Applied Mathematics, Cortex, etc.). En quoi cette nouvelle nous concerne-t-elle ? Petite explication...

Elsevier est l’un des nombreux éditeurs scientifiques. Ces éditeurs publient les journaux contenant des articles scientifiques indispensables à tout chercheur, tant pour se tenir informé que pour diffuser les résultats de leurs travaux. Le processus de publication est le suivant :

1. Soumission de l’article.

2. Transmission de l’article pour relecture à un groupe de reviewers (spécialistes du domaine dans lequel s’inscrit l’article) qui évaluera la validité scientifique de l’article et indiquera si l’article peut être accepté pour publication, s’il est refusé ou s’il nécessite des modifications.

3. Tant que l’article nécessite des corrections, le ou les auteurs modifient l’article et repassent par les étapes 1 et 2 ; ce qui peut parfois être très long et conduire à la publication d’un article qui est déjà dépassé par rapport à l’état d’avancement des recherches du ou des auteurs, mais qui a le mérite d’être - normalement - exempt de toute erreur…

4. Publication de l’article.

Dans le monde de la recherche, ce passage par la publication d’articles est obligatoire pour obtenir la reconnaissance internationale d’une expertise dans un domaine. Par contre, pour accéder à ces articles chez ce type d’éditeur, les chercheurs doivent payer (très cher) pour avoir accès au fruit de leur propre travail ! Par ailleurs, dans certains cas, pour publier un article en accès libre les éditeurs demandent de payer une forte somme en sus et les plateformes en open access existantes n’offrent pas le même impact factor (indicateur de la visibilité scientifique d’un journal).

Dans ce système, l’éditeur est rémunéré (logique), mais les reviewers - qui relisent et commentent les articles - comme les auteurs ne touchent pas de salaire (à part celui de leurs sociétés/organismes de rattachement respectifs), cela constitue un commerce très lucratif… et la décision de l’Université de Californie va nécessairement en entraîner d’autres ainsi qu’une mutation du secteur favorisant les revues en open access. Les éditeurs devront trouver un nouveau modèle économique, car rappelons une fois de plus que « libre » n’implique pas nécessairement « gratuit ».

Aujourd’hui, pour accéder à ces informations, il faut soit passer par ces fameux journaux scientifiques, soit par des magazines spécialisés (comme Linux Magazine), soit par des livres. Un accès libre et simplifié aux articles scientifiques sera nécessairement bénéfique à tous et notamment à la qualité des articles de votre Linux Magazine qui, tout en restant appliqués, y trouveront un étayage théorique supplémentaire. En attendant de voir comment évoluent les choses, je vous souhaite une bonne lecture !

Tristan Colombo

Conteneurs

Spécial Devops – La boîte à outils indispensable !


SOMMAIRE :

Actus

p.06 Mozilla Common Voice : rendre la reconnaissance vocale ouverte et collaborative
p.08 Côté livres...

Développement

p.10 Enfouissement de données dans un document LibreOffice

Système

p.22 Patroni, un cluster PostgreSQL simple et rapide

Dossier : Spécial Devops

p.48 Du sysadmin au dev : Des commandes Shell pour les développeurs
p.62 Du dev au sysadmin : Apprenez à concevoir et distribuer vos applications sur plusieurs plateformes avec CMake
p.78 Du sysadmin au dev : Git, le gestionnaire de versions pour tous les développeurs
p.102 Du dev au sysadmin : Automatisez les tests et évitez les régressions

Repère

p.116 Web crawler / pilote web Selenium : comment automatiser des tâches répétitives d'accès à un site web

ÉDITO :

Tout est toujours une histoire de compromis en informatique :

  • Vais-je privilégier la vitesse d’exécution ou minimiser l’utilisation de la RAM ?
  • Utiliser une architecture complexe et fortement maintenable ou développer rapidement un petit script « jetable » ?
  • Etc.

Récemment j’ai dû configurer mon nouvel ordinateur portable avec toutes les galères inhérentes à l’installation d’un Linux (et plus encore une Debian) avec des drivers propriétaires pour le moindre composant. J’ai pris l’habitude de chiffrer mon disque dur, ce qui paraît d’autant plus logique sur un matériel nomade que l’on peut plus facilement perdre ou se faire voler. Et c’est là qu’apparaît une nouvelle fois la question du compromis :

  • Est-ce que je vais chiffrer la partition /home et utiliser LUKS et LVM ?
  • Ou est-ce que je vais me contenter de chiffrer mon répertoire utilisateur ?

Le premier cas sera plus sécurisé, mais il ne sera pas nécessairement le plus pratique : je vais devoir taper deux clés de vingt caractères minimum chacune à chaque démarrage (il faut nécessairement chiffrer également la partition de swap, d’où les deux partitions). Si je ne veux pas les taper, je pourrai les enregistrer sur une clé USB que j’insérerai au démarrage. Question : je suis en déplacement, je suis fatigué, j’ai oublié mes clés kilométriques (il suffit d’une erreur sur un caractère, ce qui est vite arrivé, je parle d’expérience…), et j’ai perdu ma clé USB ; comment est-ce que je fais pour travailler ?

Le deuxième cas sera moins sécurisé, mais simplement avec mon login et mon mot de passe je pourrai déclencher le déchiffrement du répertoire. L’opération sera donc tout à fait transparente pour moi et je n’aurai pas la hantise de me retrouver coincé loin de mes pénates avec un ordinateur parfaitement inutilisable.

La sécurité des données est quelque chose d’important, mais ne doit pas venir alourdir notre vie de tous les jours. J’ai donc choisi la deuxième configuration.

Cette expérience m’a rappelé une discussion que j’avais eue avec une bibliothécaire qui, dans le cadre de son travail, devait se connecter au site polars-addict.com mais qui a dû émettre une demande spéciale de connexion au site, celui-ci étant bloqué (eh oui, il y a le mot « addict » - soit « accro » ou « toxicomane » - dans l’URL !). Deux mois plus tard, elle a pu accéder au site et poursuivre son travail : la magie des whitelists ! Il est vrai que pour le responsable de la sécurité c’est beaucoup plus simple à gérer... par contre pour les utilisateurs du réseau, il est tout de suite beaucoup plus compliqué de travailler !

Je me répète souvent, mais n’oubliez pas que les applications que nous développons ou les outils que nous mettons en place sont la plupart du temps dédiés à des utilisateurs et qu’il faut les adapter à leurs besoins et à leurs compétences ! Nous forgeons leurs outils et, certes, ils auront moins de risques de se blesser avec une petite cuillère qu’avec un corsèque, mais contre un dragon ce sera nettement moins efficace ! Il faut choisir le juste milieu...


Tristan Colombo

Acheter ce pack


Référence : PF_LM&HS_2019

129,00 €

176,30 €

Nouveaux produits