7,90 € TTC
p. 06 La programmation audio multicœur avec Python
p. 16 Reconnaissance faciale
p. 32 Nix et NixOS
p. 38 Déploiement continu à l’échelle avec OpenShift
p. 48 Programmation embarquée sur Raspberry Pi sans sonde JTAG
p. 60 Programmer dans le monde UEFI
p. 70 Création d’un système de sauvegarde « maison »
p. 78 Étendre un serveur MySQL/MariaDB avec des fonctions compilées
p. 84 Libérez les données de vos utilisateurs avec RemoteStorage
p. 94 Return Oriented Programming
Il est temps de penser au grand nettoyage de printemps !
Comment ? Vous n'avez encore rien fait ? Alors il est possible que votre machine s'en charge pour vous ! C'est la mésaventure qui m'est arrivée lors de la réalisation de ce numéro, du hors-série sur la programmation Shell et du hors-série de Hackable sur l'apprentissage de la programmation Python sur Raspberry Pi... lorsque le destin veut se rappeler à votre bon souvenir, il choisit généralement toujours le meilleur moment (une variante de la loi de Murphy sans doute). Or donc, une veille de week-end, avant d'éteindre la machine, j'effectue de manière tout à fait fortuite une sauvegarde des derniers travaux en cours et c'est là, juste à la fin de cette sauvegarde, après avoir effacé certains fichiers de la corbeille, que le destin s'est dit « Tiens, allons nous amuser un peu... » : tous les fichiers de /home ont disparu, tous ! Sans doute une erreur mal placée et irrécupérable sur le disque, mais le résultat est là : la perte de tous les fichiers importants de l'ordinateur. Dans ces cas-là, on ne s'affole pas, il reste :
Oui... sauf que là, après une nuit passée à tester différents outils, il n'était possible de récupérer que des fichiers sans intérêt. Du coup, je me suis tourné vers la sauvegarde dans le cloud, un service auquel j'avais souscrit il y a une dizaine d'années et qui moyennant une cinquantaine d'euros par an me proposait de chiffrer et sauvegarder mes fichiers dans trois datacenters distincts. C'était la solution idéale, car après l'avoir testée, elle était très simple à installer, à utiliser et surtout non chronophage : tout était déjà prêt à l'emploi. Sauf que depuis 5 ans elle n'enregistrait plus rien... sans un message d'erreur ou un mail rapportant une anomalie (les clients de cette société aiment sans doute payer un service pour ne pas l'utiliser...).
J'ai perdu beaucoup de choses, et même sans doute plus que ce que je pense, car on se rend compte qu'au fur et à mesure des fichiers manquants. Après la période de frustration intense, on relativise : j'avais écrit ces documents et programmes, je peux donc le refaire. Certains articles sont définitivement perdus, mais d'autres prendront une nouvelle direction que je n'avais pas envisagée au moment de leur rédaction. Et puis, surtout, je vais pouvoir écrire tous ces petits outils qui facilitent la vie de tous les jours et pour lesquels on se dit toujours « c'est une bonne idée, mais je le ferai plus tard, là je n'ai pas le temps ». Pour commencer, j'ai donc écrit mon script de sauvegarde avec un suivi constant des opérations. Les autres scripts suivront au fur et à mesure et permettront de repartir sur des bases saines sans pâtir d'une architecture vieille de plus de dix ans et de scripts-rustines écrits à la hâte. Et puis cela m'a déjà permis d'écrire un article sur rsync que vous trouverez dans ce numéro... il faut bien trouver des points positifs à cette histoire :-)
Enfin, s'il fallait une ultime preuve que tout cela n'a pas été cataclysmique, tous les magazines ont pu sortir... même s'il faut reconnaître que la petite sauvegarde imprévue du vendredi soir a bien aidé :-) Votre GNU/Linux Magazine est bien là ! Je vous en souhaite une 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...
La reconnaissance faciale est l’art d’identifier une ou plusieurs personnes de manière fiable depuis une photo. Nous allons voir comment mettre en pratique cet art.
MySQL et MariaDB offrent la possibilité de développer des fonctions compilées, à utiliser comme toute autre fonction native dans vos requêtes SQL. Étudions la puissance et les dangers d'ajouter du code au serveur.