7,74 € TTC
p. 06 Apprenez RUST et appuyez sur le champignon !
p. 14 L’accouchement dans la douleur du Projet de Loi Renseignement
p. 20 Programmation récursive ou itérative ? Faites votre choix...
p. 26 Construire son cluster HPC
p. 32 Surveillez vos équipements réseau avec le protocole TR-069
p. 40 Lire des mails avec l'API Gmail
p. 48 Construire un service REST de cache avec Wildfly et Infinispan
p. 56 Cartographier le bout du monde
p. 64 libnavajo : intégrez des interfaces Web à vos projets C++
p. 70 Haxe pour le développement Web
p. 76 Android : Cachez ce code que je ne saurais voir
Voici venue la fin des vacances et d’ici peu ne resteront plus que les souvenirs, bons et moins bons. Pour ma part, je suis parti quelque temps à la montagne en voiture. Elle n’est certes pas récente mais contient suffisamment d’électronique pour se rendre compte de tous les désagréments que cela peut engendrer lors d’un éventuel dysfonctionnement. Dans le monde de l’automobile, la tendance depuis quelques années est de nous vendre des voitures de plus en plus autonomes (l’aide au parking en est un bon exemple). D’ici 2030, on nous promet même des véhicules sans conducteur dirigés seulement par la puissance, le pouvoir (!) d’un GPS. Pendant mon voyage, mon GPS a plus d’une fois perdu ma trace allant même jusqu’à me situer sur une route parallèle. Là, j’ai fait ce que tout individu sain d’esprit aurait fait : j’ai éteint mon GPS qui m’intimait l’ordre de faire demi-tour dans les plus brefs délais (dans d’autres conditions il peut aussi s’entêter à choisir un itinéraire que j’ai refusé). Que serait-il advenu si je n’avais pas été aux commandes... ?
Autre question liée à l’électronique et à mon expérience de cette année : j’étais donc à la montagne avec une voiture qui a refusé de monter à plus de 1700m d’altitude, qui n’affichait plus la vitesse ou la quantité de carburant disponible à cause d’un écran de tableau de bord qui ne s’allumait plus... Oh, joie de l’électronique ! Mais comment faisions-nous avant d’en avoir tant dans nos véhicules ? Ah, oui ! Simplement nous regardions une aiguille sur un cadran qui nous indiquait la vitesse, une autre pour le carburant, etc. Ces informations, à moins que le mécanisme de l’aiguille ne soit bloqué (chose assez rare quand même), résistaient à des centaines de milliers de kilomètres et des pannes diverses ! Il serait bon que l’on se rappelle que toutes les améliorations électroniques ou informatiques sont là pour apporter un confort supplémentaire à l’utilisateur et que le véhicule devrait pouvoir être utilisé dans de bonnes conditions sans toutes ces « fioritures », simplement en les désactivant. De plus, sur ces modèles, les constructeurs se débrouillent pour que l’on ne puisse plus mettre les mains sous le capot : l’aspect « propriétaire » est poussé à l’extrême. Là où il y a quelques années un simple tournevis cruciforme et une demi-heure suffisaient, il faut maintenant disposer d’une mallette pleine d’outils et d’une demi-journée. Et je ne parle que des composants « physiques » ! L’accès aux réglages de l’ordinateur de bord vous est bien entendu interdit. Tant que l’on n’est pas confronté à un pépin, c’est quelque chose que l’on sait mais que l’on garde enfoui au fond de notre inconscient... Mais quand la panne arrive et que l’on ne peut absolument rien faire... et bien c’est trop tard (un peu comme avec un projet de loi sur lequel je ne reviendrai pas...).
Nous savons bien que nous retrouvons cette même tendance à la « propriété » dans le domaine de l’informatique mais elle apparaît également de plus en plus dans les objets du quotidien qui inondent le marché. Il est inadmissible que les fonctionnalités de base d’un logiciel (ou d’un objet) soient rendues inaccessibles par d’autres éléments non vitaux. La technologie oui mais à la condition qu’elle reste au service de son utilisateur et que la relation ne s’inverse pas. Être bloqué en raison d’un composant qui auparavant se réglait à coup de tournevis et qui aujourd’hui nécessite l’immobilisation du véhicule semble être une amélioration aussi aberrante que certaines mises à jour logicielles empêchant l’utilisation des fonctionnalités précédentes ou introduisant de nouvelles failles de sécurité pour en corriger une seule....
Concluons tout de même sur un point positif : vous aurez remarqué que les évolutions de votre magazine continuent avec un changement de couverture et l’ajout du courrier des lecteurs. N’hésitez pas à nous écrire (lecteurs@gnulinuxmag.com) : dites-nous ce qui vous plaît (ou pas), les sujets que vous aimeriez voir traiter, les articles qui vous ont aidé, etc. Et en attendant de vous lire... bonne lecture !
Tristan Colombo
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...

Soyons clairs, je ne suis pas fan de Lua en tant que langage de programmation. Le simple fait que les tableaux débutent à l'indice 1 me perturbe totalement et constitue pour moi une véritable aberration. Mais, d'un autre côté, Lua est aussi le langage par excellence lorsqu'il s'agit d'embarquer des fonctionnalités de scripting au sein d'une application ou d'un outil. Du moins, c'est ce que tend à montrer sa popularité dans ce domaine et, si l'on n’a jamais tenté l'expérience, on peut se demander pourquoi. La réponse est évidente après quelques lignes de code et on se surprend soi-même à dire, à haute voix qui plus est, « Ah ! Mais c'est excellent, en fait ! ».
Si vous croyez que le format ASCIIZ (aussi appelé « chaîne de caractères à terminateur nul » à la base du langage C et d’UNIX) est le pire péché originel de l’informatique, accrochez-vous. Il est amplifié par un autre péché bien plus grave, commis au nom du minimalisme, excusé au nom de la compatibilité et perpétué par l’oubli des alternatives. Si vous avez lu l’article de mars 2023 [1] jusqu’au bout, vous avez probablement compris que la plupart des langages de programmation actuels n’utilisent qu’une seule pile. C’est la source de nombreux problèmes (de sûreté, de sécurité, de complexité et bien d’autres) aux origines de failles variées (représentant peut-être un cinquième des CVE) que nous sommes habitués à mitiger, sans les résoudre vraiment. Dans cette première partie lovecraftienne, nous irons jusqu’au fond de l’impasse pour démontrer l’absurdité, les difficultés et les dangers imposés par ce système.
Cet article constitue le premier volet d’une série consacrée à la gestion du temps sous GNU/Linux. Après une vaste introduction, évoquant différents aspects du temps et nécessitée par la complexité du sujet, il présentera l’interface de programmation en C.