9,90 € TTC
p. 06 Ruby : le pont entre ENV et votre code
p. 10 Migration de Vim à Neovim pour de la complétion efficace
p. 18 Automatisation avec Jenkins et OpenShift
p. 40 YAMS : encore un autre algorithme de tri !
p. 58 Comment détourner un programme de son chemin d’exécution ?
p. 66 Les codes fantastiques : lib et introspection
p. 68 Écrivons un module kernel pour NetBSD
« Oui, moi je programme en HTML ! »
Voici une affirmation généralement corrigée d’un vif « HTML est un langage de description, pas de programmation » par la plupart des personnes ayant un minimum d’expérience et de connaissances en ce domaine. S’en suivent généralement diverses explications plus ou moins animées autour de ce qu’est ou non un langage de programmation, qui a droit au titre ronflant de « programmeur » et qui dénigre honteusement le travail de qui...
Il y a malheureusement un paradoxe qui fait qu’argumenter n’a aucun sens. Expliquer à une personne ce qu’est un langage de programmation suppose des bases solides en informatique théorique, de part et d’autre du dialogue. La seule manière d’arriver à construire des argumentaires cohérents consiste avant tout à, au moins, se mettre d’accord sur quelques définitions claires. Partant de là, on peut évaluer le fait que HTML soit ou non un langage Turing-complet et si oui, sous quelles conditions (spoiler : l’ajout de CSS3 dans l’équation). Bien entendu, ceci à condition de définir également, sans équivoque, ce qu’est un système dit complet au sens de Turing, et nous voici repartis pour un tour dans la boucle d’un triste manège sans fin...
Bref, c’est une perte de temps. Tout comme discutailler de l’origine véritable de la phrase : « Argumenter avec des imbéciles, c’est comme jouer aux échecs avec un pigeon. Peu importe votre niveau, le pigeon va juste renverser toutes les pièces, chier sur le plateau et se pavaner fièrement comme s’il avait gagné. »
Mon conseil donc, ami développeur, en particulier depuis que les quatre lettres « YAML » ont remplacé « HTML » dans l’affirmation sus-citée, est simple, paisible et peu fatigant : souriez gentiment, acquiescez poliment de la tête et éloignez-vous discrètement.
Denis Bodor
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...
Il est parfois indispensable de modifier l'exécution d’un programme, sans en modifier le code source, pour l’adapter à des besoins spécifiques. Quels sont les moyens que nous offre Linux ?
L'écriture de pilotes et de modules noyau Linux est documentée en long, en large et en travers sous bien des formes, et ce depuis quelque temps déjà. Pourtant, ce n'est pas là que l'énergie et le temps nécessaire pour ajouter une fonctionnalité ou le support d'un matériel seront obligatoirement les mieux investis. La quantité de développeurs soumettant des contributions au noyau Linux est énorme et très souvent, la question consistant à se demander si un matériel est pris en charge ne se pose même plus. Quelqu'un a forcément développé quelque chose avant que vous ne rencontriez un tel problème. Ce n'est pas forcément le cas pour d'autres systèmes, et NetBSD en particulier. Là, apporter sa pierre à l'édifice est sans doute plus intéressant. Mais avant de pouvoir courir, il faut savoir marcher...
YAMS, ou « Yet Another Merge Sort », est un algorithme de tri hybride basé sur le bon vieux principe du tri fusion, modifié avec quelques astuces qui, à ma connaissance, n'ont pas encore été incorporées dans un algorithme de tri. C’est plus une évolution qu’une révolution, mais son étude et sa structure méritent de s'y attarder, surtout si vous ne connaissez pas encore la deque.