PACK PAPIER LINUX MAGAZINE 2020


  • Magazine Papier
  • Flipbook (liseuse HTML5)


  • Magazine Papier
  • Flipbook (liseuse HTML5)


  • Magazine Papier
  • Flipbook (liseuse HTML5)


  • Magazine Papier
  • Flipbook (liseuse HTML5)


  • Magazine Papier
  • Flipbook (liseuse HTML5)


  • Magazine Papier
  • Flipbook (liseuse HTML5)


  • Magazine Papier
  • Flipbook (liseuse HTML5)


  • Magazine Papier
  • Flipbook (liseuse HTML5)


  • Magazine Papier
  • Flipbook (liseuse HTML5)


  • Magazine Papier
  • Flipbook (liseuse HTML5)


  • Magazine Papier
  • Flipbook (liseuse HTML5)

Passez vos réseaux de neurones à la vitesse supérieure avec l'Intel Neural Compute Stick 2


SOMMAIRE :

Actus & Humeur

p. 06 Retour sur le DevOps D-Day 2019
p. 10 Passez vos réseaux de neurones à la vitesse supérieure avec l’Intel Neural Compute Stick 2

IA, Robotique & Science

p. 28 Informatique quantique : l’empire des chats morts-vivants

Système & Réseau

p. 39 Du legacy dans Kubernetes avec Kubevirt

Kernel & Bas Niveau

p. 52 C++ Moderne : C++17 (partie 2)

Libs & Modules

p. 58 Coder une interface CLI avec des selectbox, des barres de progression, de la complétion... le tout en Python

Mobile & Web

p. 70 Scriptez Google Sheets pour envoyer des mails automatiquement

éDITO :

Linus Torvalds qui prend ses distances avec le kernel [1], Guido Van Rossum qui se retire du processus de décision de l'évolution de Python et rend son titre de BDFL (Benevolent Dictator For Life - Dictateur bienveillant à vie) [2], Richard Stallman qui démissionne de son poste au MIT et de la présidence de la FSF (Free Software Foundation) qu'il a créée en 1985 [3]... mais que se passe-t-il dans le monde du logiciel libre ?

Je ne reviendrai pas sur ces faits qui se sont succédé depuis fin 2018. Nous pouvons noter un point commun entre ces trois grandes pointures du logiciel libre : leur personnalité. Et je pense qu'une déclaration de Linus Torvalds de 2015 à la Linux.conf.au en Nouvelle-Zélande [4] pourrait s'adapter à chacun d'eux : « I'm not a nice person, and I don't care about you. I care about the technology and the kernel — that's what's important to me. » (« Je ne suis pas quelqu'un de sympa, et je n'en ai rien à faire de vous. Ce qui m'importe c'est la technologie et le kernel »). En fait, ces trois personnages mettent d'abord en avant le travail avant de se pencher sur un quelconque autre critère. C'est la méritocratie : la hiérarchie s'établit par le mérite et si ce que tu fais pour le projet est bon, je n'ai pas à me préoccuper de ta vie personnelle, je ne collabore avec toi que dans le cadre d'un projet d'informatique. Il ne vous aura pas échappé, au travers de nombre de nouveaux codes de conduite de logiciels libres, que la méritocratie est de plus en plus remise en cause aux États-Unis et qu'on lui préfère la diversité. Pourtant, le code n'a pas de genre, pas de couleur, etc. ; un code est bon ou mauvais, ce n'est que du code. Et si vous vous demandez jusqu'où on peut aller, lisez la suite…

Tout le monde connaît le geste « ok » des plongeurs consistant à former un cercle avec son pouce et son index. Il n'y a aucun mal à le faire, d'ailleurs vous avez certainement vu le commandant Cousteau réaliser ce geste dans l'un de ses documentaires (bon, pour les plus jeunes peut-être pas, mais il y a certainement d'autres plongeurs célèbres). Eh bien non, la Ligue Anti-Diffamation Américaine (ADL : Anti-Defamation League) a classé ce signe dans la liste des symboles haineux : on peut y lire un W comme « White » et un P comme « Power » [5]. Pourquoi ? Simplement pour avoir cru un hoax de 2017 initié par des utilisateurs du forum 4chan [6] amplifiant la déformation de ce symbole...

Et quelle est alors la signification du poing fermé et du pouce levé vers le haut ? Certainement pas un signe d'approbation ! Moi j'y verrais un d minuscule, d comme « dead » : une menace de mort ! Il suffirait donc que quelques individus détournent des symboles courants pour en faire des signes proscrits, car haineux ou menaçants ? Jusqu'où le puritanisme américain, et nous à sa suite, va-t-il aller ? Pour ma part, dans le cadre d'un projet, qu'un code soit écrit par un alien nain, borgne, unijambiste et lépreux ou par une plantureuse blonde, ce qui va m'intéresser, c'est la qualité du code et le fait qu'il atteigne son objectif, certainement pas le fait d'avoir atteint un hypothétique quota de blonds, de nains, etc. ayant contribué au projet. Et cela vaut également pour le magazine que vous tenez entre vos mains : les articles y ont été sélectionnés pour leur qualité et non pour introduire une diversité factice d'auteurs. Bonne lecture !

Tristan Colombo


[1] Message de Linus Torvalds du 16 septembre 2018 : https://lkml.org/lkml/2018/9/16/167

[2] G. VAN ROSSUM, « Transfer of power » : https://mail.python.org/pipermail/python-committers/2018-July/005664.html

[3] FSF, « Richard M. Stallman resigns »https://www.fsf.org/news/richard-m-stallman-resigns

[4] L. TORVALDS, Keynote, Linux.conf.au, 2015 : https://youtu.be/bAop_8l6_cI (à 10mn55s)

[5] ADL, « Okay hand gesture »https://www.adl.org/education/references/hate-symbols/okay-hand-gesture

[6] Opération O-KKK (en référence aux initiales du Ku Klux Klan) : https://archive.4plebs.org/pol/thread/114482325/

Comprenez le trucage facial :

Créez votre premier deepfake !


Sommaire :

Actus & Humeur

p. 06 Bien préparer le développement de son application !
p. 13 AlphaFold, la réponse au problème le plus complexe de l’univers ?

IA, Robotique & Science

p. 20 Réalisez vos deepfakes avec les réseaux génératifs antagonistes
p. 40 Un oscilloscope pour le traitement de signaux radiofréquences : gr-oscilloscope pour GNU Radio 3.7 et 3.8

Kernel & Bas Niveau

p. 59 C++ Moderne : C++20 et au-delà
p. 65 Mise en œuvre d’autotools

Libs & Modules

p. 71 Générez des documents LibreOffice depuis des templates grâce à Python

éDITO :

Vous êtes sans doute abonnés à une multitude de sites proposant des informations sous diverses formes. Avez-vous déjà constaté à quel point ces sites ne vous permettent pas de faire des découvertes ? Les algorithmes utilisés pour vous proposer des articles ont la fâcheuse tendance à se focaliser sur une information. Dernièrement, j’ai par exemple consulté un article scientifique intitulé « Dinosaurs of France ». Cet article était mis à disposition sur un site de partage d’articles scientifiques, site sur lequel j’avais jusqu’alors consulté essentiellement des articles de bio-informatique, d’astrophysique et de logique (CSP). À partir du jour où j’ai lu cet article sur les dinosaures, j’ai reçu régulièrement des mails m’invitant à lire « A new Titanosaur genus (Dinosauria, Sauropoda) from the Late Cretaceous of southern France », « Preliminary Magnetostratigraphic Study of the Late Cretaceous Dinosaur Site from Villeveyrac Mèze Basin, Southern France », etc. Pourtant mes centres d’intérêt n’ont pas changé et je ne reçois plus que ce type de propositions de lecture.

Autre site, autre exemple. Cette fois-ci il s’agit d’un site spécialisé sur les technologies informatiques. Je me suis intéressé à Flutter dans la perspective d’écrire un article. Vous vous doutez bien que la plupart de mes consultations portent sur Python… Or donc, je lis un article sur Flutter (oui un seul !). À partir de là, 80% des propositions de lecture que je reçois concernent Flutter. Mais pourquoi ? On ne peut même pas se dire qu'il s'agit d'un biais du système de promotion par like, puisqu'ici il n'y en a pas (pour rappel le système de likes est pernicieux, car plus un article est liké, plus il apparaît en tête de classement et donc il est nécessairement plus visible et sera plus liké : le serpent se mord la queue...).

Il est impossible de savoir quels sont les algorithmes de recommandation qui sont employés, mais force est de constater qu’ils ne sont pas particulièrement performants ! C’est un peu comme avec les sites marchands (lorsque l’on ne désactive pas les traceurs) : il suffit de consulter un produit pour être poursuivi par celui-ci sur l’ensemble des sites que l’on consulte. Sauf que dans ce cas, on peut comprendre la démarche : j’avais potentiellement envie d’acheter un produit, je ne l’ai pas fait et on me harcèle donc jusqu’à ce que je passe à l’acte. Mais dans le cadre d’articles scientifiques quel est le but ? Faire en sorte que je ne développe plus qu’avec Flutter des applications de classification de dinosaures du sud de la France ?

Dans GNU/Linux Magazine, nous essayons de faire en sorte que vous puissiez trouver des articles sur les technologies qui vous intéressent, mais pas seulement ! Il faut également que vous puissiez faire des découvertes et nous ne vous proposons donc pas seulement des articles ciblés sur des technologies précises : c'est dans la diversité que l'on peut puiser l'inspiration et les idées novatrices. Alors, bonne lecture !

Tristan Colombo

Crypto & Python :

Explorez Enigma !


SOMMAIRE :

Actus & Humeur

p. 06 Hyper terminal : mais pourquoi vouloir changer de terminal ?

IA, Robotique & Science

p. 10 Et si on déchiffrait la machine Enigma...
p. 19 Simulation de machine Enigma : des pistes pour une version objet

Outils & Système

p. 26 Quels outils pour le développeur ?

Kernel & Bas Niveau

p. 38 Les arbres binaires équilibrés en C

Hack & Bidouille

p. 53 Interaction avec Google Calendar depuis un script Bash

Mobile & Web

p. 64 Apprendre à développer sous Android - partie 1 : afficher et interagir avec une image

Sécurité & Vulnérabilité

p. 74 Tomoyo, le contrôle d’accès facile

éDITO :

L'autre jour, au restaurant, j'étais attablé derrière une table de développeurs. J'étais donc incognito, et c'est alors que d'une oreille distraite je pus les entendre fustiger les choix patronaux d'employer des développeurs indiens. Et là je me dis : tiens, voilà un bon sujet d'édito ! En effet, cela fait déjà quelque temps que le développeur indien sévit sur nos terres... mais que lui reproche-t-on au juste ?

Depuis quelques années l’Inde est devenue une sorte de Géant de la sous-traitance informatique mondiale. Avec des salaires particulièrement bas, l’offre indienne est particulièrement attractive… mais à quel prix ? Le développeur indien étant vu comme un développeur low cost, on pourrait supposer qu'il doit nécessairement être moins bon que le développeur européen (français en l’occurrence), ne pas respecter les conventions de codage, ne pas écrire de commentaire, ni même de test unitaire, etc. C’est en tout cas ce que j’ai entendu, n'ayant jamais eu à collaborer avec de tels développeurs.

Pourtant, si l’on réfléchit quelques instants, qu’est-ce qui pourrait différencier le développeur français du développeur indien ? Même si les formations ne sont sans doute pas équivalentes, les fondamentaux restent les mêmes et « ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément » (Nicolas Boileau) ! Cet extrait de « L'Art poétique » expliquant comment bien écrire en français peut être transposé dans notre domaine en « ce que l'on conçoit bien s'énonce clairement, et le code pour l'écrire arrive aisément ». C'est d'ailleurs la base de la méthodologie de débogage dite du Rubber Duck ; j'ai découvert son nom à la rédaction de cet éditorial, je l'ai toujours appelée méthode du Teddy Bear : expliquez votre problème à un ours en peluche (ou tout autre objet inanimé) et la solution vous apparaîtra comme par miracle (pas toujours, mais souvent). Or donc, si le problème est énoncé clairement, quel que soit le développeur (bon ou mauvais), il produira toujours un meilleur résultat que si le projet reste flou. Donc pour un développeur français ou indien d'un niveau faible - comprendre incapables de prendre une initiative en termes de programmation - sans structuration claire des tâches à effectuer il sera utopique d'espérer un code convenable.

Si, comme chez nous, il y a de mauvais développeurs indiens, comme chez nous, il doit nécessairement y en avoir des bons... Il y a fort à parier que tout comme pour les bons développeurs français il faudra les payer correctement sous peine de les voir s’envoler vers d’autres cieux et que ce ne sont donc pas eux les fameux « développeurs indiens » dénigrés par les développeurs de la table voisine.

Où se situe alors le problème puisque finalement les profils sont équivalents ? Le problème est qu’il y a de plus en plus de besoins de développeurs, mais pas nécessairement de candidats ayant le bon profil ou de proposition salariale en adéquation avec les attentes du poste et qu’à choisir entre un mauvais développeur payé en France et un mauvais développeur payé en Inde, économiquement parlant le calcul sera vite fait. Il faut donc continuer à apprendre et à s'améliorer.

Dans GNU/Linux Magazine, nous continuons à penser qu’il faut comprendre comment fonctionnent les choses pour pouvoir les coder. Ce mois-ci avec l’exemple du simulateur d’une machine Enigma nous le montrons encore, alors bonne lecture et n’oubliez qu’au final nous sommes tous le « développeur indien » de quelqu’un…

Tristan Colombo

Systèmes multi-agents 

Simulez la propagation d'un virus


SOMMAIRE :

Actus & Humeur

p. 06 Accès aux attributs et méthodes en Python : une autre voie est-elle possible ?

IA, Robotique & Science

p. 16 Introduction aux systèmes multi-agents pour étudier les effets des paramètres d’un problème

Outils & Système

p. 28 Apprenez à utiliser kubeadm
p. 40 SpaceVim, une distribution de Vim prête à l’emploi

Libs & Modules

p. 53 Un jeu de logique en Python

Sécurité & Vulnérabilité

p. 64 SameSite, une protection contre les attaques CSRF

Mobile & Web

p. 70 Apprendre à développer sous Android - partie 2 : de la logique, de l’affichage et des tests unitaires

éDITO :

Scandaleux ! Comment GNU/Linux Magazine a-t-il pu tomber aussi bas et surfer sur la peur du 2019-nCov ? Tout d'abord, pour être tout à fait précis, de nombreux termes ayant circulé dans les médias, 2019-nCov est le premier nom donné au virus qui serait apparu la première fois sur le marché de Wuhan en Chine en 2019, d'où le nom de 2019-nCov pour nouveau Coronavirus 2019. Ce virus a été rebaptisé SARS-CoV-2 pour CoronaVirus du Syndrome Aigu Respiratoire Sévère 2 (car apparenté au coronavirus du SRAS). Enfin, la Covid-19 n'est pas le troisième nom employé pour un même virus, mais le nom de la maladie provoquée par le SARS-CoV-2 : Coronavirus disease (maladie) et 19 pour l'année d'apparition, 2019. Tout cela étant posé (pour peu qu'aucune nouvelle nomenclature ne soit apparue depuis l'écriture de cet édito), nous pouvons reprendre nos lamentations.

GNU/Linux Magazine fait sa une sur la simulation de la propagation d'un virus en pleine crise sanitaire mondiale : c'est lamentable ! En fait, il faut savoir que le sujet initial, c'est-à-dire l'introduction à la simulation multi-agents, a été décidé il y a déjà de nombreux mois, à une époque où les médias ne nous tenaient pas informés heure après heure du décompte du nombre de morts et d'hospitalisations pour chaque virus en circulation, du simple rhume à Ebola. C'est donc en toute innocence que cette une a été choisie. L'exemple utilisé pour illustrer la mise en place d'une simulation multi-agents a immédiatement été un virus, car pendant de nombreuses années j'ai utilisé l'exemple d'un virus imaginaire H12N27 (une mutation d'une grippe aviaire H1N1) dans un sujet de projet que je proposais à mes étudiants. Par jeu, H12N27 est devenu le GuinnessVirus par rapport au CoronaVirus (cette fois-ci oui, il y a un rapport).

Nous savons que nos lecteurs sont intelligents et qu'ils ne se fourvoieront pas dans une nouvelle théorie complotiste : non, ce n'est pas une expérience ratée de GNU/Linux Magazine qui a relâché le SARS-CoV-2 dans la nature. Nous ne parlons ici que d'un exemple, d'une simulation, tout comme la simulation de pandémie Event 201 menée en octobre 2019 par la Fondation Bill et Melinda Gates et le Forum Économique Mondial au Centre John Hopkins ne doit être prise que pour ce qu'elle est : une simulation [1].

Les temps sont durs et ce sont justement dans de tels temps qu'il faut parvenir à analyser la situation avec sang froid. Depuis quelques mois, l'autre actualité qui nous préoccupe, nous gens de presse, c'est la modification du système de distribution de la presse et la mort annoncée de Presstalis (ex NMPP, créée après guerre suite à la loi Bichet) [2]. Pourtant ,ce n'est pas la modification du mode de distribution de la presse qui va nous amener à rechercher à faire des unes « sensationnelles » pour vendre à tout prix. Nous continuons comme toujours à faire notre travail du mieux que nous le pouvons. Il se peut toutefois que dans les mois à venir vous rencontriez des difficultés pour trouver votre magazine en kiosque : cela ne dénotera pas une baisse de tirage, mais une mauvaise distribution totalement indépendante de notre volonté. Pour être assuré de pouvoir lire votre magazine au format papier ou numérique, il reste l'abonnement ou l'achat en ligne (https://boutique.ed-diamond.com/).

Après cet édito sur les virus, je vous souhaite de vous porter bien et de prendre du plaisir à lire votre GNU/Linux Magazine, en espérant que nous soyons tous là pour le prochain numéro ! :-)


Tristan Colombo



[1] Communiqué de presse du Centre John Hopkins : http://centerforhealthsecurity.org/newsroom/center-news/2020-01-24-Statement-of-Clarification-Event201.html

[2] R. LE VERN, « S'ils tombent, tout le monde tombe : la crise de Presstalis donne des sueurs froides à la presse écrite », LCI, 28 février 2020 : https://www.lci.fr/social/s-ils-tombent-tout-le-monde-tombe-la-crise-de-presstalis-donne-des-sueurs-froides-a-la-presse-ecrite-2146656.html

Programmation multithread

Exploitez vraiment votre processeur !


SOMMAIRE :

Actus & Humeur

p. 06 Programmation réactive avec Quarkus

IoT & Embarqué

p. 18 Reprenez le contrôle ! Faites tourner Linux nativement sur vos téléphones et tablettes

Kernel & Bas niveau

p. 31 Faites du multithreading avec OpenMP

Outils & Système

p. 48 Google Skaffold

Libs & Modules

p. 56 Erlang, programmation distribuée et modèle acteur
p. 68 Écrire un client en Ruby pour un service ou une API en TDD

Mobile & Web

p. 74 Apprendre à développer sous Android - partie 3 : splashscreen et gestion de données

éDITO :

Le Ministère de l'Économie et des Finances a récemment lancé le site TerMef sur https://terminologies.finance.gouv.fr. TerMef est présenté comme le gestionnaire des référentiels terminologiques… en clair un gros dictionnaire des termes associés à des domaines « pointus ». On aurait pu s’attendre à ce que ce type d’informations soit plutôt rattaché au Ministère de la Culture ou au Ministère de la Recherche… quoi qu’il en soit, en étudiant de plus près le contenu du site, on se demande quel est le public visé. Les domaines (appelés référentiels) présentés sur le site allant de l’Agriculture et la Pêche jusqu’à l’Énergie Nucléaire, nous allons nous attarder, et cela ne vous surprendra pas, à l’Informatique. Ce référentiel est sous-divisé en Automatique, Bioinformatique, Informatique (encore), etc. qui sont eux-mêmes encore sous-divisés. Pour nous plonger dans le monde merveilleux des référentiels terminologiques, je vous propose un scénario survenant dans le domaine Informatique > Informatique > Internet.

Imaginons donc un client qui serait au fait de ce référentiel et qui s'adresserait au développeur en charge de son projet :

« L’arrière-guichet fonctionne très bien, mais pour le guichet nous souhaiterions ajouter plus de vignettes actives et la possibilité d’ouvrir une fenêtre de causette. Pour une meilleure expérience utilisateur, nous avions également pensé à l’intégration d’une diffusion systématique sur la toile. »

Je vous laisse imaginer la tête de n’importe quel développeur à l’écoute de ce charabia… et vous, avez-vous compris quelque chose ? Il faut savoir que l’arrière-guichet est le back-end, le guichet fatalement est le front-end, et que les vignettes actives sont des widgets. Pour la fenêtre de causette, je l’avoue, j’ai été joueur : il s’agit d’une forme désuète, remplacée par « fenêtre de dialogue en ligne » depuis 2006 (le sens est alors assez simple à inférer, il s’agit d’une fenêtre de chat). Enfin, la diffusion systématique sur la toile peut être abrégée en diffusion réticulaire, ce qui est tout de suite beaucoup plus parlant, non ? À moins que vous ne préfériez le terme de webcasting ?

Tous ces termes ne sont pas nouveaux. Ils sont issus de réflexions de la Commission d’enrichissement de la langue française, et ont été publiés au Journal Officiel pour la plupart depuis 1999. Sachez que cette commission, relevant cette fois de manière plus logique du Ministère de la Culture, dispose d’un site, FranceTerme, équipé d’une boîte à idées (http://www.culture.fr/franceterme/boiteidees) dans laquelle vous pourrez faire des propositions pour les termes qui n’auraient malheureusement pas encore d’équivalent en français (et avouez que c’est dommage !). Le quantum computing n’a ainsi pas encore officiellement d’équivalent ! Précipitez-vous pour proposer quelque chose d’original !

Limiter l’emploi d’anglicismes peut évidemment être une priorité… tant que cela ne tourne pas au ridicule. Quitte à employer ce référentiel, nous pourrions aussi imaginer traduire nos codes en français (certains s’y sont déjà essayés - voir le Wlangage). Mais à ce moment-là, quid de l'universalité du code ? Seuls les développeurs parlant la même langue pourraient collaborer ?

Dans GNU/Linux Magazine, nous pensons que le contenu de nos articles est déjà suffisamment dense et pointu pour ne pas l'alourdir inutilement avec un langage qui pour nous serait peu courant. Je vous souhaite une bonne lecture !

Tristan Colombo

Oubliez Autotools et Make...

Cmake & Ninja le duo gagnant !


SOMMAIRE :

Actus & Humeur

p. 06 Évolutions récentes de PHP : les nouveautés des 15 dernières années

Outils & Système

p. 18 Y a une panne de secteurs !

Kernel & Bas niveau

p. 28 Compilez efficacement vos énormes projets avec CMake et Ninja

IoT & Embarqué

p. 36 Reprenez le contrôle ! Ajoutez un environnement graphique à votre GNU/Linux sur smartphone

Libs & Modules

p. 48 Automatiser les tâches de conception de circuits imprimés : greffons pour KiCAD et FreeCAD
p. 60 Memoization : quel est l’intérêt de la mise en cache ?

Sécurité & Vulnérabilité

p. 70 Sécurisation d’un serveur NGINX

éDITO :

Mais où s’arrêteront les spammeurs ? Certains d’entre vous ont peut-être vu apparaître comme par enchantement des pubs dans leur agenda Google. Le premier réflexe est de se dire qu’il n’y a rien d’anormal, après tout c’est Google et la pub vient nécessairement de chez eux après analyse de nos mails. Mais lorsque l’on s’intéresse au libellé de l’événement, « You Have Won IPhone X Max From AppleStore »,  suivi d’un lien, là on se dit que ça ressemble quand même bigrement à du phishing. On découvre donc là une nouvelle technique de spam utilisant une fonctionnalité légitime de Google permettant d’ajouter une invitation à un événement et à l’intégrer dans un agenda en y ajoutant un rappel.

Première chose à faire : désactiver cette fonctionnalité au plus vite ! Les agendas sont configurés par défaut pour accepter ces invitations. Pour « annihiler » ce mécanisme, il faut aller dans Paramètres > Paramètres des événements > Événements ajoutés à partir de Gmail et décocher Ajouter automatiquement dans mon agenda les événements issus de Gmail ou alors il faut abandonner Google Agenda pour passer à Framagenda ou autres, à vous d’établir la balance du pour et du contre.

Avant de changer de service d'agenda, sachez tout de même que d'autres solutions sont également ciblées puisque j'ai pu observer le même comportement sur un calendrier d'iPhone. Il semble donc que ce phénomène tend à se généraliser sur de multiples plateformes. En termes de logiciel je n’ai pu tester réellement que le cas de Google Agenda, mais Google Drive, Google Analytics, Google Photos et Google Forms seraient également la cible de tels spams. Comme toujours, j’ai beaucoup de mal à comprendre comment de telles campagnes peuvent engendrer des gains pour leurs auteurs et comment des gens qui emploient les outils numériques arrivent à se laisser piéger aussi bêtement, après des années d’expérience de spams et de tentatives de phishing. Il faut reconnaître qu'une fois que l'on a été ciblé, l'agenda n'est plus guère utilisable donc soit l'utilisateur parvient à supprimer les messages frauduleux, soit il n'utilise plus son agenda et dans les deux cas l'objectif du spammeur (vol d'informations personnelles ou d'argent) ne sera pas atteint.

Du coup, des fonctionnalités que l'on pensait réservées aux mails apparaissent dans de nombreux services et il est par exemple possible de déclarer un événement comme étant du spam. J'en reviens alors à ma question de départ : mais où s'arrêteront les spammeurs ? Les services proposant de la diffusion de musique comme Deezer, Amazon Music ou autres vont-ils bientôt être eux aussi la cible de spammeurs et diffuser des messages frauduleux ? Ou verrons-nous dans le futur du spam intégré dans les flux vidéos de nos séries préférées ? Tant que la tentative de phishing n'est pas réalisée de manière intelligente en ciblant les personnes visées, quel que soit le média il sera facile de ne pas tomber dans le panneau. Par contre, si vous n'avez jamais été victime d'une « attaque » sur votre agenda et que le premier événement ajouté à votre agenda est forgé intelligemment, vous risquez fort de vous laisser prendre… Pensez donc à toujours désactiver les fonctionnalités qui ne requièrent pas votre approbation, quel que soit le service utilisé.

Pour lire votre GNU/Linux Magazine, pas besoin d'autorisations spécifiques à valider ou à désactiver… alors bonne lecture !

Tristan Colombo

IA : Créez une Fake Cam et son réseau de neurones manipulant une vidéo en temps réel !


SOMMAIRE :

Actus & Humeur

p. 06 Machine Learning sur des objets connectés avec TensorFlow Lite pour l’agriculture verticale
p. 16 Meurtre à distance Une enquête de J. S. Gramiet

Kernel & Bas niveau

p. 24 Les namespaces ou l’art de se démultiplier

IA, Robotique & Science

p. 42 L’exponentielle : sa vie, son œuvre
p. 54 Créez une fake webcam pour modifier l’image de vos visioconférences

Mobile & Web

p. 68 Évolutions de PHP et de son écosystème : impact sur la compatibilité

éDITO :

Pratiquement deux ans se sont écoulés depuis la dernière enquête de J. S. Gramiet. Écrire une nouvelle, qui plus est contenant des informations techniques authentiques, demande nécessairement plus de travail qu’un « simple » article technique. L’enquête présentée dans ce magazine a ainsi été relue plusieurs fois par cinq personnes différentes et a connu à peu près autant de versions. Je tiens à remercier particulièrement Laurence Arnaud pour sa traque du détail improbable, du grain de sable qui vient enrayer l’intrigue et pour ses diverses propositions de modifications (certaines des phrases du récit que vous allez lire sont d’ailleurs de son fait) ainsi qu'Anne-France Claeyman pour sa relecture attentive et ses précieux conseils.

Mais pourquoi parler plus particulièrement de cet article qui n’est pas technique dans cet édito ? Comme je l’ai dit, écrire un polar geek prend du temps, mais je trouve que cela permet de casser un peu la monotonie pour vous de la lecture du magazine, et pour moi de l’écriture. Je prends honnêtement un certain plaisir à imaginer les aventures de J. S. Gramiet néanmoins j'ai besoin de vous pour savoir si ce type d'article vous plaît ou non. Aussi, n'hésitez pas à me faire vos retours sur tristan@gnulinuxmag.com !

Cette « parenthèse » étant faite, il ne me reste plus beaucoup de place pour mon édito proprement dit. Ce mois-ci je ne pourrai pas râler, pester, à propos d’un quelconque sujet. Voilà qui est bien dommage ! D'un autre côté, confinement aidant, les sujets d'inspiration ne furent pas particulièrement variés sur ce point. En ce qui concerne les articles techniques par contre, ce temps de télétravail imposé a ouvert de nouvelles pistes et de nouvelles questions que vous pourrez découvrir dans les mois à venir. Dès ce mois-ci, vous saurez ainsi comment remplacer en temps réel l'arrière-plan d'une scène filmée par votre caméra. De nombreuses techniques sont mises en œuvre et même si vous n'avez pas l'utilité d'un tel programme, cela vous permettra de manipuler Python, JavaScript, OpenCV, Docker, et différents appels système. Une sorte de révision de bon nombre d'articles déjà parus dans ces colonnes.

La fonction exponentielle ayant été remise au goût du jour grâce ou à cause des nombreuses courbes publiées journalièrement durant la crise du SARS-Cov-2, vous trouverez également un article vous invitant à la réflexion sur l'implémentation de cette fonction.

Je vous souhaite une bonne lecture, en espérant que tout le contenu du magazine vous plaise, y compris le polar geek… ;-)

Tristan Colombo

Accélérez vos codes avec Numba !


SOMMAIRE :

Actus & Humeur

p. 06 De Smalltalk à Pharo : 40 ans d’innovations en génie logiciel

IA, Robotique & Science

p. 20 Analyse et réalisation d’un RADAR à bruit par radio logicielle

Outils & Système

p. 38 Utilisez Terraform pour vos projets Docker

Hack & Bidouille

p. 44 Comment arrêter un ordinateur sans crise de nerfs ?

Libs & Modules

p. 54 Accélération de Python avec Numba

Kernel & Bas niveau

p. 68 Les utilitaires relatifs aux namespaces

éDITO :

Depuis quelque temps déjà il se dégage une tendance forte dans le développement logiciel : l'emploi de méthodes de développement dites agiles. De la plus petite TPE/PME à la plus grosse multinationale, il semblerait que désormais tout le monde ne jure plus que par les méthodes agiles. Mais pourquoi donc ?

Les méthodes agiles posent pour base une plus grande implication du client dans le projet et une meilleure réactivité des équipes de développement face à ses demandes. Ainsi, le nombre d'itérations (livraison de versions opérationnelles du projet) sera plus important qu'avec une méthode classique de développement, et le client sera régulièrement consulté pour orienter l'avancée du projet. Or donc, pour une entreprise désireuse de mettre en avant ses processus de développement à des fins purement marketing, il est très rentable de « vendre » de l'agilité : le client ne se sent plus dépossédé de son projet, il peut régulièrement participer à son élaboration… mais sait-il que grâce à lui l'équipe de développement va gagner un temps précieux et permettre à son employeur d'économiser beaucoup d'argent ? En effet, certains ont eu tôt fait de faire le raccourci entre nombreuses itérations/participations du client et délégation des tests utilisateur ! Pourquoi réaliser ce travail fastidieux quand le client peut s'en charger ? En plus ce dernier sera ravi :

  • il y aura de nombreuses livraisons du projet ce qui, psychologiquement, aura un impact positif : « mon projet n'est pas mort, je vois bien que des gens travaillent dessus » ;

  • le client sera véritablement impliqué et écouté : « je viens de noter un bug à tel endroit, il va être corrigé ».

Les bénéfices sont énormes pour l'entreprise en charge du développement : le client est heureux de payer pour être intégré à l'équipe de développement au rang le plus bas qui soit, celui de testeur. Vous connaissez beaucoup de gens qui payent pour travailler et qui en plus sont contents ? Les développeurs n'ont plus à tester les nouvelles fonctionnalités qu'ils viennent d'ajouter : il leur suffit de signifier à leur client une mise à jour de la version en préproduction et le tour est joué ! Ce dévoiement de l'Agile (avec un A majuscule) montre l'agilité du commercial qui arrive à vendre tout et n'importe quoi à ses clients, ce qui est bien loin de l'aspect technique et cadrant proposé initialement par la méthode…

En suivant la même logique, nous aurions pu vous proposer des articles non relus, non formatés et non mis en page pour « validation » par vos soins de manière à vous impliquer dans le processus de réalisation de chaque magazine. Ce n'est bien sûr pas le cas, alors je vous souhaite une bonne lecture, sans travail supplémentaire et surtout, si vous employez une méthode agile dans votre travail, respectez-en l'essence !

Tristan Colombo



Analysez les tendances des recherches grâce à l'API Google Trends


SOMMAIRE :

Actus & Humeur

p. 06 WSL2 : cheval de Troie ou cadeau empoisonné ?

IA, Robotique & Science

p. 14 Jouons avec les tendances des requêtes de recherche de Google Trends en Python

Outils & Système

p. 24 Conservez l’historique de vos commandes pour chaque projet, le retour

Libs & Modules

p. 40 Système extensible et hautement disponible avec Erlang/OTP
p. 56 8 recettes pour accélérer vos développements en Python

Kernel & Bas niveau

p. 66 Utilisation de fonctions C à nombre variable d’arguments

Mobile & Web

p. 78 Implémentez un mécanisme de log pour vos Google Apps Scripts

éDITO :

Ne vous est-il jamais arrivé de recevoir un mail au contenu étrange ? Je ne vous parle pas du général Boumboumgo qui veut que vous l'aidiez à exfiltrer la somme de 5.000.000$ sous la forme de lingots d'or que vous devrez placer à la CocoNut Bank sur un compte discret, ni de Cindy qui désire ardemment avoir de vos nouvelles. Non, je parle de quelque chose de beaucoup plus extraordinaire, de quelque chose de vraiment incroyable ! Je parle de ça :

<img alt="" border="0" height="159" hspace="0" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAlgCWAAD/4Q8lRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAeAAAAcgEyAAIAAAAUAAAAkIdpAAQAAAABAAAApAAAANAAFuNgAAAnEAAW42AAACcQQWRvYmUgUGhvdG9zaG9wIENTMyBNYWNpbnRvc2gAMjAxMTowOToyMCAxMDowNjoxOAAAA6ABAAMAAAAB//8AAKACAAQAAAABAAACdqADAAQAAAABAAABTgAAAA...0f7gX37

Vu comme ça, cela peut paraître long, mais ce n'est rien à côté de la réalité ! J'ai compté 93 987 caractères dans le mail que j'ai reçu et qui ne contenait que cela. On se rend bien compte qu'il devait s'agir d'une image au vu des premiers caractères, mais visiblement quelque chose a échappé au développeur consciencieux qui a testé son application avant de la mettre en production…

Ce mail correspond en fait à la réponse à l'achat de billets pour un événement, ce mail va me permettre de rentrer dans la salle… ou pas. En tout cas, il m'a coûté une centaine d'euros et je trouve que ça valait vraiment le coup ! En effet, on a rarement l'occasion de tomber sur un tel modèle d'incompétence absolu ! J'ai quand même reçu mes billets sous la forme d'un fichier PDF, mais les développeurs ont-ils conscience de l'image qu'ils donnent de la société qui les a employés pour réaliser ce travail ? Ou même seulement de l'image qu'ils renvoient des informaticiens dans leur ensemble ? Comment voulez-vous que l'on ne nous prenne pas pour des guignols ?

Imaginez une personne peu versée dans l'utilisation de l'outil informatique et qui reçoit ce mail. Je vois très bien ma mère m'appeler, paniquée : « Je me suis fait pirater mon ordinateur ! On m'a volé les billets que je venais d'acheter, il faut faire quelque chose avant qu'on ne me vide mon compte bancaire ! ». Une fois la pression retombée, il faudra expliquer une énième fois que non, ce n'est pas tout ce qui est informatisé qui ne marche pas, ce sont certains des humains qui « informatisent » qui sont défaillants ! À mon sens, lire GNU/Linux Magazine ne leur ferait sans doute pas de mal...

Tristan Colombo

Techniques d'obfuscation de code

Comprendre les méthodes pour protéger ses sources


SOMMAIRE :

Actus & Humeur

p. 06 Les bases de LaTeX sous GNU/Linux et Windows

IA, Robotique & Science

p. 20 Résolution azimutale d’un RADAR à bruit : analyse et réalisation d’un RADAR à synthèse d’ouverture (SAR) par radio logicielle

Outils & Système

p. 38 Récit d’une réinstallation réussie (mais pas de tout repos)

Kernel & Bas niveau

p. 48 Principes de l’orienté objet en C++ : l’encapsulation

Libs & Modules

p. 56 Jouons avec l’obfuscation de code

Mobile & Web

p. 78 Créez un lecteur RSS avec PHP

éDITO :

Les services informatiques proposés par différentes sociétés constituent une véritable mine inépuisable de sujets pour mes éditos. Je ne saurais trop remercier les informaticiens qui ont œuvré pour élaborer ces services tout en espérant secrètement ne jamais avoir été impliqués dans leur formation soit à l’université soit dans le cadre d’une formation professionnelle. Ces remerciements ayant été effectués en préambule, sans vous faire languir plus longtemps, passons maintenant au cas de ce mois-ci.

Il a récemment fallu que je commande en catastrophe du matériel électroménager (en général on est toujours très pressé quand une machine de lavage quelconque tombe en panne : ce n'est pas très amusant de faire la vaisselle ou de laver le linge à la main). Or donc, après avoir consciencieusement étudié les différentes offres, je fais mon choix, valide ma commande et paye. J'obtiens la page suivante :

figure_01-edito.png

Bon, on peut se dire que ce n'est pas très professionnel, mais que personne n'est à l'abri d'une erreur. Certes ! Mais le site sur lequel j'ai commandé n'est pas un obscur site marchand, ignoré de tous et développé comme il le pouvait par un petit commerçant indépendant : afficher les messages d'erreur sur un site en production constitue une erreur de sécurité de base. En effet, un pirate recherche un maximum d'informations lui permettant de limiter son champ d'investigation. Ici, simplement en tapant une recherche sur com.ibm.commerce.exception.ECApplicationException, on sait que le site exploite IBM WebSphere Commerce. Supposons qu'une faille ait été trouvée sur cette plateforme, le pirate n'a plus qu'à l'exploiter... bravo !

Afficher un message d'erreur n'engendrera pas nécessairement le piratage d'un site ou d'un système, mais pourquoi simplifier la vie des pirates alors qu'il suffit de générer des fichiers de log ? C'est à se demander si certains « informaticiens » ont réellement suivi un cursus informatique ! Le concept de crime d’écocide (destruction irrémédiable d’un écosystème intentionnellement ou non) est régulièrement débattu sans avoir été à ce jour adopté. Je propose un nouveau concept : le crime d’informaticide !

Pour vous remonter le moral, je vous laisse lire votre GNU/Linux Magazine de ce mois-ci... et je vous donne rendez-vous pour le prochain numéro !

Tristan Colombo

Basculez tous vos développements vers VSCode

  • multilangage

  • multiplateforme

  • open source


SOMMAIRE :

Actus & Humeur

p. 06 Utiliser Visual Studio Code pour coder en Python

IA, Robotique & Science

p. 14 Implémentation du calcul symbolique et de la dérivation en Java

Kernel & Bas niveau

p. 24 Principes de l’orienté objet en C++ : héritage et polymorphisme
p. 32 Les structures de données des namespaces dans le noyau

Libs & Modules

p. 50 Créer un Custom Resource Controller pour Kubernetes
p. 66 Générez la documentation technique de vos projets Godot

Mobile & Web

p. 78 Déboguez vos codes PHP

éDITO :

Créer un formulaire utilisateur n'est pas forcément à la portée de tout le monde. Dernièrement j'ai dû contacter le service client d'un hébergeur web bien connu à cause d'une erreur survenant sur un site et n'étant pas de mon fait. Aucune possibilité de contacter directement le support technique par mail, il faut nécessairement créer un ticket, jusque-là on ne peut trop rien dire, c'est plutôt bien organisé. Là où survient le problème, c'est lorsque l'on commence à créer le ticket : pas moins de 5 listes déroulantes permettant de cerner la cause de l'erreur. Chacune des listes propose entre 4 et 5 choix fermés : si votre problème ne se trouve pas dans la liste alors vous n'aurez d'autre choix que d'en sélectionner un s'approchant peu ou prou ou d'abandonner la création du ticket. Au total, il y a donc environ 55 soit 3125 combinaisons possibles... en supposant que dès le premier choix votre réponse soit une réponse approchée, au bout du cinquième choix vous serez bien loin d'avoir précisé votre problème (au contraire !).

Une fois l'étape redoutable du remplissage du formulaire passée, vous pouvez vous attendre à pouvoir saisir tout de même un peu de texte pour préciser que vous êtes conscient de ne pas avoir pu cerner votre problème et expliquer ce qui se passe réellement. Mais non, il y a une dernière étape à franchir où l'on vous propose automatiquement une réponse du style : « La page web de votre site est noire ? Avez-vous pensé à allumer votre ordinateur, ouvrir votre navigateur et taper la bonne URL ? ». Je veux bien croire que certains utilisateurs soient un peu limités, mais il y a peut-être justement des limites à ne pas dépasser…

Finalement, le sésame apparaît : la zone de texte ! Enfin ! Bien entendu, avant validation du ticket il vous est précisé que si vous n'avez pas correctement identifié la nature de votre problème à l'aide du formulaire, le traitement du ticket peut être considérablement ralenti. Tiens donc... et si le fait de contraindre un maximum les réponses aux diverses questions était voulu ? « Nous n'avons pas pu traiter rapidement le ticket, mais ce n'est pas de notre faute, vous avez été bien trop vague dans la description du problème ».

En ce qui concerne ma question, j'ai reçu une réponse rapidement... pour m'indiquer que l'incident provenait bien de l'hébergeur et que je ne pouvais donc rien faire d’autre qu’attendre. Le prétexte des informations imprécises n’a pas été utilisé cette fois.

En espérant que le contenu du présent magazine soit suffisamment précis tout en vous laissant une marge de créativité pour l'adapter à vos projets, je vous souhaite une bonne lecture !


Tristan Colombo

Acheter ce pack


Référence : PPAP_LM_20

67,58 €

95,89 €

Nouveaux produits