Octobre / Octobre 2018

GNU/Linux Magazine 219

Humain ou robot ? Créez et testez votre chatbot !

  • Programmation d'un agent conversationnel en Python
  • Apprentissage des réponses sur un jeu de règles
  • Votre chatbot peut-il passer pour un humain ?
En savoir plus

7,90 € TTC

Anciens Numéros

LIVRAISON OFFERTE en France Métropolitaine à partir de 50€
GNU/Linux Magazine 279

GNU/Linux Magazine 279

Janvier / Février 2026
9,90 €
GNU/Linux Magazine 278

GNU/Linux Magazine 278

Novembre / Décembre 2025
9,90 €
GNU/Linux Magazine 277

GNU/Linux Magazine 277

Septembre / Octobre 2025
9,90 €
GNU/Linux Magazine 276

GNU/Linux Magazine 276

Juillet / Août 2025
9,90 €
GNU/Linux Magazine 275
9,90 €
GNU/Linux Magazine 274

GNU/Linux Magazine 274

Mars / Avril 2025
9,90 €
GNU/Linux Magazine 273

GNU/Linux Magazine 273

Janvier / Février 2025
9,90 €
GNU/Linux Magazine 272

GNU/Linux Magazine 272

Novembre / Décembre 2024
9,90 €
SOMMAIRE

Actus & Humeur

p. 08  Le cerveau de Peter
p. 11  Script Shell de comparaison de deux arborescences

Système & Réseau 

p. 30  Testez votre infrastructure comme vous testez votre code avec Test Kitchen
p. 35  Générer vos conteneurs et machines virtuelles de manière automatisée avec Packer

IoT & Embarqué 

p. 40  Mise à jour d’un système Linux embarqué « Over The Air » : comment intégrer et utiliser « Mender » pour vos déploiements

Kernel & Bas niveau

p. 62  Comment démarrer manuellement le noyau Linux 

Libs & Modules

p. 72  Votre chatbot peut-il passer pour un humain ?

Mobile & Web

p. 82  Qt on the Web

Sécurité & Vulnérabilité

p. 92  PaSSHport, bastion SSH

édito

Avez-vous remarqué comme, étrangement, de plus en plus d'applications et de sites en ligne dysfonctionnent ? Je pense avoir enfin trouvé un élément de réponse à ce phénomène qui se généralise… mais avant de vous exposer mon hypothèse, je vous propose de revenir sur deux exemples concrets auxquels j'ai été confronté au cours de la même semaine.

Tout d'abord, je reçus un appel de détresse de ma mère qui ne parvenait pas à acheter des places d'opéra sur Internet. Rien que de très habituel : elle n'avait sans doute pas vu où cliquer ou avait dû se tromper de champ de formulaire… Je pris donc le temps de refaire la manipulation avec elle en utilisant chacun un navigateur différent à savoir Chromium (Google Chrome) et Firefox. Nous obtînmes le même résultat et nous retrouvâmes dans l'impossibilité de sélectionner une place sur le plan qui s'affichait (le clic ne produisait aucun évènement). Trouvant cela vraiment étrange, je décidai de tester sur un autre navigateur. Sur iPad avec Safari le résultat fut le même… mais sous Android avec Chrome (version Mobile 67), je pus achever la réservation.

Quelques jours après, je voulus effectuer une commande sur un site marchand. Il ne s'agissait pas d'un de ces monstres de la vente par correspondance, mais d'une enseigne de taille moyenne aux États-Unis. La commande se déroula sans accroc, le paiement également et mon colis fut expédié. Jusque-là pas de problème. C'est après que les complications apparurent : la commande partant de Los Angeles et n'étant pas un envoi prioritaire, au bout de quelques jours, comme nous en avons tous pris l'habitude, je cliquai sur un lien me permettant de suivre mon colis et j'aboutis sur une page... blanche ! Un petit problème de serveur, ça peut arriver et je décidai donc d'attendre le lendemain… pour un résultat identique. Me souvenant de mon expérience précédente, je tentai sans trop y croire une visualisation sur mon smartphone. Et là, ô miracle, les informations apparurent comme par enchantement !

On ne peut bien entendu pas tirer de généralités de ces deux expériences, mais elles soulignent un point important : bien souvent les applications et services ne sont pas purement et simplement buggées, elles ne sont pas testées ! Dans ces deux cas, on peut facilement imaginer qu'un seul navigateur a été employé et que la validation en mise en production a pu se produire de la manière suivante :

  • côté développeurs : « si ça marche chez moi c'est que ça marche chez tout le monde ! » :
  • côté client : « ils savent ce qu'ils font, ça doit fonctionner ».

Tester un programme n'est pas une activité plaisante, mais elle est nécessaire. Elle paraît pourtant être souvent négligée. Même lorsque j'indique à mes étudiants en développement web que les tests feront partie des critères de notation d'un projet, environ 50% d'entre eux ne teste absolument rien (que ce soient les saisies utilisateur ou l'exécution sur différents navigateurs). Pourtant, même lors de calculs basiques on peut s'assurer de la validité d'un résultat. En simplifiant à l'extrême, avec x + 1 = 2, on peut dire que x = 10… On s'aperçoit vite que 10 + 1 ne vaut pas 2, mais pour cela il faut prendre le temps de tester le résultat obtenu et peut-être encore plus important avoir l'humilité de se dire que l'on a pu faire une erreur : « Errare humanum est ».

La prochaine fois qu'une application dysfonctionne, pensez donc à tester des choses basiques puisque les tests ne sont plus à la mode. En attendant, vous pouvez toujours lire GNU/Linux Magazine et vous astreindre à tester TOUS vos codes...

Tristan Colombo

Le magazine de référence technique pour les développeurs sur systèmes open source et les ingénieurs R&D !

GNU/Linux Magazine s'adresse aux professionnels et aux particuliers désireux de mieux maîtriser les techniques et problématiques liées à la programmation et à l’utilisation de solutions open source. Tous les deux mois avec ses articles techniques, la publication couvre les thématiques suivantes : programmation système, algo, bas niveau, sécurité du code, développement web...

Btrfs, le système de fichiers nouvelle génération
GNU/Linux Magazine n°149
Le système de fichiers btrfs a gagné en fonctionnalité et en stabilité au fil des dernières versions du noyau Linux. Appelé à remplacer ext3 et ext4 dans un avenir de plus en plus proche, cumulant les fonctionnalités d'un système de fichiers moderne et la flexibilité d'un gestionnaire de volumes logiques comme LVM, btrfs suscite un intérêt croissant pour ceux qui souffraient du manque de flexibilité des solutions actuelles. Sachant que le stockage a été amené à subir de très importantes évolutions ces dernières années, les nouvelles fonctionnalités de btrfs sont donc très attendues.Nous présenterons dans cet article les fonctionnalités importantes de btrfs que les administrateurs de système GNU/Linux et les utilisateurs avancés utiliseront bientôt au quotidien.
Traitement du signal sur système embarqué : application au RADAR à onde continue
GNU/Linux Magazine n°149 Free
La décomposition en série de Fourier, et plus généralement la transformée de Fourier [1], est un outil incontournable du traitement du signal visant à décrire des propriétés fréquentielles (spectrales) d’un signal. Au-delà de la maîtrise de l’outil mathématique qui fera l’objet de la première partie de cette présentation, son utilisation sur un système embarqué peut paraître complexe, voire rédhibitoire. Nous analyserons, dans la seconde partie, une note d’application qui démontre l’utilisation en virgule fixe de tables pré-calculées pour effectuer rapidement un calcul apparemment complexe, et ce pour un résultat compatible avec tout microcontrôleur proposant quelques kilo-octets de mémoire. Enfin, nous appliquerons cette méthode de calcul à quelques exemples plus ou moins triviaux. Nous mettrons en œuvre ces concepts, et l’échantillonnage périodique de signaux pour fournir les informations à traiter, sur architecture ARM Cortex-M3 telle qu’implémentée par ST sur le STM32, traitant les signaux issus d’un RADAR à onde continue.
Migen, une « boîte à outils » en Python pour concevoir des circuits logiques complexes
GNU/Linux Magazine n°149 Free

La conception de circuits logiques en VHDL ou Verilog est souvent perçue comme rébarbative. Les débutants sont régulièrement perdus dans la masse de détails à maîtriser en une seule fois pour obtenir un circuit fonctionnel. Les utilisateurs expérimentés pourraient être plus productifs en automatisant certaines tâches au lieu d'éditer trop souvent le code bas niveau à la main. Cet article donne une (courte) introduction à Migen, une bibliothèque Python permettant de manipuler et générer plus facilement des circuits logiques complexes.

Ce magazine est intégralement disponible sur Linux Magazine Connect
© 2026 - LES EDITIONS DIAMOND