7,90 € TTC
p. 06 Principaux changements et améliorations de Django 1.10
p. 12 Radio Data System (RDS) : analyse du canal numérique transmis par les stations radio FM commerciales, introduction aux codes correcteurs d’erreur
p. 38 Déployez Kubernetes sur vos Raspberry Pi avec Kubeadm
p. 48 Programmez votre objet connecté RPi avec Python
p. 56 Programmation fonctionnelle en C++
p. 64 « Paie Ton Patch !™ » : Weboob
p. 70 Conctructions « with » en langage... bash !
p. 80 Et si la prédiction n’était plus le domaine réservé des oracles ?
p. 86 Créez votre propre saveur Markdown
p. 92 Address Space Layout Randomization
Il est parfois édifiant de constater à quel point une idée simple peut nous faciliter la vie. Cette idée apparaît comme par enchantement et l'on se demande comment on a pu vivre jusque-là sans elle... et surtout comment on a fait pour ne pas l'avoir avant, cette satanée idée ! Prenons un exemple tout simple : lorsque l'on travaille sur un Raspberry Pi et que l'on écrit un article sur un PC, on a deux claviers, deux souris et deux écrans. Immanquablement, lorsque l'on souhaite écrire sur le Raspberry Pi on utilise le clavier... du PC ! Ce qui conduit à des résultats quelque peu aléatoires... Lorsque l'on souhaite déplacer la souris du PC, on utilise la souris du Raspberry Pi ce qui l'amène généralement, de rage, à prendre son envol sur quelques dizaines de centimètres (ce qui permet de comprendre l'utilité du câble qui relie la souris à l'ordinateur...), etc. Alors qu'en fait, on pourrait utiliser un bête commutateur USB et un commutateur HDMI qui existent depuis bien longtemps (les plus fortunés pouvant même se tourner directement vers des switchs KVM pour Keyboard-Video-Mouse) ! Il fallait juste avoir l'idée au bon moment... Les machines ne peuvent malheureusement (ou plutôt heureusement) pas anticiper, prédire ces idées qui nous font défaut. Par contre, il est possible statistiquement de déterminer le prochain mot auquel vous allez penser. En effet, en analysant un ensemble de documents, on peut calculer la probabilité pour un mot d'apparaître connaissant le mot précédent (ou les n précédents). La qualité des documents utilisés pour « l'apprentissage » est donc essentielle ! Vous n'obtiendrez pas la même précision suivant que vous allez employer :
Dans le premier cas, vous allez réaliser une « grosse soupe » en mélangeant des époques, des langues et certainement des domaines (articles de presse, poésie, théâtre, etc.) et vous allez l'utiliser pour déterminer le prochain mot d'une phrase en français du XXIe siècle : un tirage purement aléatoire vous demandera moins de travail pour un taux de réussite à peu près équivalent.
Par contre dans le second cas, en travaillant de manière précise à l'élaboration de la base de documents, vous pourrez obtenir des résultats intéressants qui ne devront rien au hasard.
Ce mois-ci nous vous proposons d'étudier ce processus de prédiction dans son ensemble, depuis la création de la « base d'apprentissage » jusqu'à la proposition d'un mot devant compléter une phrase.
Vous pourrez également découvrir dans ce magazine comment réceptionner et décoder des trames RDS (mais oui, le RDS : les données numériques transmises sur les ondes FM), comment fonctionne le mécanisme d'allocation mémoire aléatoire du kernel et bien d'autres choses encore !
Je vous laisse prendre connaissance de ce contenu assez dense, je vous souhaite une bonne (lecture | année | soirée | journée)* et je vous retrouverai avec plaisir le mois prochain !
* Avec certains historiques de mots (comme « je vous souhaite une bonne »), la prédiction peut être difficile à effectuer... ;-)
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...
Brad Spengler, le leader du projet grsecurity, exprimait, lors de son intervention au SSTIC 2016, son agacement à lier la sécurité d'une application à son implémentation. Pour lui, la sécurisation d'une application ne doit pas se faire via la recherche de bugs dans cette dernière, mais doit être assurée par la plateforme sur laquelle elle s'exécute. L'ASLR fait partie de ces évolutions proposées par les systèmes d'exploitation, dans le but de complexifier l'exploitation de failles applicatives.