Vue lecture

Plus sécurisé, plus rapide - Quand Rust dépoussière les commandes Linux de base

Vous êtes un warrior ! Normal, vous utilisez Linux depuis des années. Et vous aimez beaucoup toutes vos petites commandes du quotidien, ls, cat, base64… Vous le savez, tout ça fonctionne avec du bon vieux code C aussi vénérable que solide. Du code robuste, certes, mais qui pourrait bien se faire dépasser par plus moderne. Hé oui, parce qu’une bande de développeurs a décidé de refaire tout uutils Coreutils en Rust, et en prime, leurs nouvelles versions sont largement plus rapides que les originales.

Les benchmarks parlent d’eux-mêmes : l’utilitaire base64 mouline maintenant en 3,146 secondes là où GNU Coreutils prend 4,901 secondes. La version Rust est donc clairement plus rapide, mais le plus fou, c’est que la version précédente de Rust Coreutils mettait encore 5,998 secondes. En gros, ils ont pratiquement doublé la vitesse entre leurs deux versions mineures.

Alors comment ils ont fait ça ? Et bien en intégrant la bibliothèque base64-simd qui exploite les instructions SIMD des processeurs modernes. Pour faire simple, au lieu de traiter les données octet par octet comme un escargot asthmatique, le nouveau code traite plusieurs octets en parallèle, comme un guépard qui serait abonné à la chaine de Tibo Inshape. SSE4.1, AVX2, AVX-512 pour les processeurs Intel et AMD, et ARM NEON pour les puces ARM comme les Apple Silicon… ce sont toutes ces architectures qui profitent de l’accélération.

D’ailleurs, ce n’est pas qu’une histoire de performance brute. Ubuntu prévoit d’intégrer ces outils Rust dans sa version 25.10. Et Canonical ne fait pas ça pour suivre la mode du Rust… Non, ils voient un vrai intérêt qui est la sécurité mémoire garantie par Rust. Cela élimine toute une catégorie de bugs qui hantent le code C depuis des décennies, à savoir les buffer overflows, les use-after-free…etc, tout ce folklore de développeur devient impossible avec Rust.

Et Sylvestre Ledru , le développeur principal du projet uutils, n’a pas juste optimisé base64. Par exemple, la commande tr qui était 9,8 fois plus lente que GNU dans les anciennes versions est maintenant 1,58 fois plus rapide par rapport à sa propre version précédente !

Bon après, je vais faire plaisir aux grincheux qui n’aiment pas le changment, oui, tout n’est pas rose non plus. Sur les 600 tests de la suite GNU, Rust Coreutils n’en passe que 500 environ. Il reste donc un peu de boulot pour avoir une compatibilité parfaite. Mais avec l’attention que le projet reçoit en ce moment et le soutien d’Ubuntu, ça devrait s’améliorer rapidement.

Ça fait plaisir de voir ce bon vieux code C qui fait tourner nos systèmes depuis des millénaires est en train d’être challengé par du Rust. Et non pas parce que c’est à la mode, mais parce que dans certains cas, c’est objectivement meilleur : plus rapide, plus sûr, plus maintenable.

Pour les dev parmi vous qui veulent tester, la nouvelle release 0.2.2 est disponible sur GitHub . Et pour ceux qui se demandent si c’est vraiment utile d’optimiser des commandes qui s’exécutent en quelques secondes, rappelez-vous que ces outils sont appelés des milliers de fois par jour dans des scripts, des pipelines CI/CD, des conteneurs Docker… Chaque milliseconde gagnée, c’est donc un gros paquet d’énergie économisée et du temps machine libéré !

Alors, prêts à voir vos vieilles commandes Linux carburer au Rust ?

Source

  •  

Ouf, les 54 jeux de l'iPod Click Wheel sont sauvés !

En septembre de l’année dernière, une mission d’apparence impossible s’est achevée avec succès ! Tous les 54 jeux iPod classic / nano équipés de la molette cliquable (Click Wheel) ont été sauvés de l’extinction numérique par une équipe de développeurs passionnés . Le dernier rescapé, Real Soccer 2009, a même rejoint récemment cette arche de Noé numérique après des mois d’efforts acharnés.

L’histoire commence en réalité il y a près de deux décennies. En 2006, Apple lance les premiers jeux pour iPod via l’iTunes Store. 9 titres débarquent d’abord : Bejeweled, Cubis 2, Mahjong, Mini Golf, Pac-Man, Tetris, Texas Hold ‘Em, Vortex et Zuma.

Mais voilà le drame. Apple stoppe la vente de l’iPod équipé de cette molette en 2011, supprimant les jeux de l’iTunes Store. Les propriétaires ne peuvent plus re-télécharger leurs achats et pire encore, le système DRM Fairplay d’Apple lie chaque jeu à la fois au compte iTunes ET à l’ordinateur qui l’a téléchargé. Un double verrouillage insurmontable et à 4,99 $ pièce, ça représente quand même 270 $ pour la collection complète des jeux. Les boules.

Mais c’est là qu’intervient Olsro, développeur français à qui la communauté des fans d’iPod doit cette prouesse. Avec l’aide de Quix, un autre passionné, ils découvrent une faille dans le système de protection d’Apple. Ainsi en créant une machine virtuelle QEMU, ils parviennent à autoriser et synchroniser les jeux sur n’importe quel iPod compatible.

La VM stocke alors les clés de déchiffrement et peut fonctionner entièrement hors ligne et cela garantit que les jeux resteront accessibles “pour l’éternité”, même si Apple décide de fermer définitivement ses serveurs d’authentification.

La quête du dernier jeu, Real Soccer 2009, a même tourné au cauchemar technique. Disques durs défaillants, corruption de données, échecs répétés mais la persévérance a payé et le saint Graal a finalement rejoint la collection.

Ce projet de préservation des jeux **iPod **fonctionne avec les iPod Nano 3G à 5G et les iPod Classic 5G à 7G, ce qui couvre l’essentiel du parc iPod capable de faire tourner ces jeux.

Mais au-delà de l’exploit technique, cette initiative soulève encore une fois la question de la propriété numérique. Combien de logiciels, de jeux, d’œuvres numériques disparaissent chaque année faute de préservation ?? Ces 54 titres iPod représentent pour les historiens du jeu vidéo un moment charnière dans l’histoire du divertissement portable, juste avant l’avènement de l’écosystème iPhone.

Heureusement, ce projet GitHub rassemble aujourd’hui tous les outils nécessaires. Machine virtuelle pré-configurée, instructions détaillées, fichiers de jeux et la communauté peut désormais synchroniser ces pépites du gaming portable sur leurs iPod vintage.

Voilà, si vous avez l’un de ces vieux iPod qui traine dans un tiroir, vous allez pouvoir lui réinstaller vos jeux préférés payés rubis sur l’ongle très facilement !

Source

  •  

TailGuard - La solution Docker qui marie WireGuard et Tailscale pour du VPN surpuissant

Vous en avez marre de jongler entre différents clients VPN selon vos appareils ?

Alors ça tombe bien puisque je viens de tomber sur TailGuard , un projet open source qui est une application Docker, mise au point par un certain Juho Vähä-Herttua qui sert de passerelle entre WireGuard et Tailscale .

Si vous n’avez jamais entendu parler de ces deux technologies, laissez-moi vous faire un petit récap rapide… WireGuard, c’est LE protocole VPN moderne ultra-rapide dans le vent, et Tailscale, c’est LA solution mesh VPN qui fait un carton en ce moment.

Et le truc chouette avec TailGuard, c’est qu’il résout ce casse-tête des appareils qui ne peuvent pas faire tourner Tailscale nativement. Vous savez, ces vieux routeurs, ces IoT un peu bizarres ou ces environnements restreints où installer un client VPN moderne c’est plus compliqué que d’avoir un Premier Ministre décent. Mais avec TailGuard, vous créez ainsi un pont entre votre infrastructure WireGuard existante et le réseau mesh de Tailscale. Pas besoin de tout refaire de zéro, c’est plutôt bien pensé.

Alors, comment ça marche ?

Et bien en gros, vous avez un serveur WireGuard qui tourne quelque part, avec ses configurations et ses clés et TailGuard, lui, vient se greffer dessus via Docker et expose automatiquement vos sous-réseaux WireGuard sur Tailscale. Du coup, tous vos appareils Tailscale peuvent accéder à vos ressources WireGuard, et inversement. C’est du routage bidirectionnel automatique, avec support IPv4 et IPv6.

Pour l’installation, c’est un jeu d’enfant. Vous téléchargez votre config WireGuard client, vous la sauvegardez en wg0.conf, vous créez un réseau IPv6 Docker et vous lancez le container avec les bons volumes.

docker network create --ipv6 ip6net
docker run -it \
 -v ./wg0.conf:/etc/wireguard/wg0.conf -v ./state:/tailguard/state \
 --cap-add NET_ADMIN --device /dev/net/tun \
 --sysctl net.ipv4.ip_forward=1 --sysctl net.ipv6.conf.all.forwarding=1 \
 --sysctl net.ipv4.conf.all.src_valid_mark=1 \
 --network ip6net -p 41641:41641/udp \
 --name tailguard juhovh/tailguard:latest

Et en quelques minutes, votre passerelle est opérationnelle. Et le petit plus, c’est que vous pouvez personnaliser pas mal de paramètres via des variables d’environnement : nom des interfaces, clé d’authentification Tailscale, routes spécifiques, hostname, etc.

L’un des gros avantages de cette approche, c’est la centralisation de la gestion des clés. Plus besoin de distribuer des configs WireGuard à tous vos appareils. Tailscale gère l’authentification avec votre provider d’identité préféré (Okta, Google, GitHub, etc.) et TailGuard fait le lien avec votre infra WireGuard. Cette architecture mesh a aussi le gros avantage d’éliminer les points de défaillance uniques des VPN traditionnels.

Et en termes de sécurité, on est sur du solide car chaque connexion reste chiffrée de bout en bout avec WireGuard, réputé pour sa robustesse cryptographique. Et Tailscale ajoute sa couche de zero-trust avec authentification continue et politiques d’accès basées sur l’identité. Comme ça, plus besoin de faire confiance au réseau, puisque chaque requête est vérifiée.

Et pour ceux qui ont des besoins plus spécifiques, TailGuard offre la possibilité de créer des architectures plus complexes. Vous pouvez par exemple router certains sous-réseaux spécifiques, gérer plusieurs tunnels WireGuard, ou même créer des passerelles redondantes pour la haute disponibilité.

Un truc que j’ai trouvé pas mal du tout en testant, c’est la possibilité de faire du SSO (Single Sign-On) sur des équipements qui normalement ne le supportent pas. Votre vieux serveur Linux avec WireGuard devient soudainement accessible via votre compte Google ou Microsoft, grâce à la magie de Tailscale. Pratique pour les équipes qui souhaitent standardiser leurs accès sans tout migrer.

Et si vous vous demandez pourquoi ne pas utiliser directement Tailscale partout, la réponse est simple : Parfois, c’est juste impossible ou trop compliqué. Certains environnements embedded, certains OS propriétaires ou certaines architectures exotiques ne peuvent pas faire tourner le client Tailscale.

TailGuard vient donc combler ce gap en utilisant WireGuard comme protocole universel de base.

Voilà, c’est encore une fois un projet sous licence MIT qui est activement maintenu sur GitHub. Bref, si vous cherchez une solution pour unifier vos VPN sans tout casser, TailGuard mérite vraiment le coup d’œil !

  •  

1517 clones open source de vos jeux cultes préférés - Le trésor caché des gamers nostalgiques

Depuis que j’ai découvert OSGameClones, je kiffe chercher et retrouver certains de mes jeux d’enfance en version open source et bien sûr gratuite !

Car oui, le projet OSGameClones c’est un peu la caverne d’Ali Baba pour tous ceux qui ont grandi avec une manette dans les mains (ou un clavier pour ma part). Le site répertorie méticuleusement tous les remakes, clones et réimplémentations open source de jeux commerciaux, et le meilleur c’est que la plupart sont jouables sur des machines modernes, y compris Linux et même votre Steam Deck.

Vous y retrouvez donc des pépites comme OpenRCT2 pour RollerCoaster Tycoon 2, qui non seulement fait tourner le jeu original mais ajoute le support des hautes résolutions et du multijoueur. Ou encore OpenMW qui réimplémente complètement le moteur de Morrowind avec des graphismes améliorés. Sans oublier CorsixTH pour Theme Hospital, qui fonctionne maintenant sur n’importe quel OS moderne.

Le projet est hébergé sur GitHub , et est activement maintenu. Tout est organisé dans des fichiers YAML structurés qui catégorisent les jeux par langages de programmation (50+ langages différents !), genres (30+ catégories), et même par thèmes comme fantasy ou sci-fi.

Ce qui est vraiment cool je trouve, c’est surtout la distinction que fait le site entre les différents types de projets. Un “remake” c’est quand l’exécutable et parfois les assets sont recréés en open source. Un “clone” c’est un jeu très similaire ou inspiré par l’original. Et parfois on trouve même des “projets officiels” où les créateurs originaux ont libéré le code source eux-mêmes.

D’ailleurs, pour les fans de jeux de stratégie, vous avez OpenXcom qui réimplémente UFO: Enemy Unknown et X-COM: Terror From the Deep. Pour les amateurs d’action, DevilutionX fait revivre Diablo sur pratiquement n’importe quelle plateforme. Et si vous êtes plutôt RPG, Daggerfall Unity a recréé tout Daggerfall dans le moteur Unity avec des mods et des améliorations graphiques de malade.

Tous ces projets sont utiles pour les joueurs ayant des machines peu puissantes ou pour ceux qui veulent faire tourner leurs classiques préférés sous Linux. C’est aussi top pour la préservation du patrimoine JV, vu que beaucoup de ces vieux jeux ne fonctionnent de toute façon plus sur les systèmes modernes.

Un autre aspect sympa, c’est que comme tout est open source, n’importe qui peut contribuer à améliorer ces jeux. Vous pouvez donc corriger des bugs qui existaient dans l’original, ajouter de nouvelles fonctionnalités, ou même porter le jeu sur de nouvelles plateformes.

Et pour ceux qui veulent explorer d’autres ressources similaires, il existe aussi Awesome Game Remakes sur GitHub, qui est une liste maintenue activement de remakes open source ainsi que cette page de SensCritique qui recense des remakes open source vraiment chouettes, même si la plupart nécessitent les données du jeu original pour fonctionner.

Puis quand on voit des projets comme Julius pour Caesar III, fheroes2 pour Heroes of Might and Magic II, ou OpenTTD pour Transport Tycoon Deluxe, je le dit que la communauté open source fait un boulot incroyable pour préserver et améliorer ces classiques. Ces développeurs permettent à toute une génération de redécouvrir ces jeux mythiques sans avoir à galérer avec DOSBox ou des émulateurs.

Le plus impressionnant reste peut-être re3 et ses dérivés qui ont reverse-engineered GTA III et Vice City, même si Rockstar n’a pas vraiment apprécié l’initiative et l’a fait disparaitre. Ou OpenJK qui maintient et améliore Jedi Academy et Jedi Outcast pour la communauté Star Wars.

Voilà et si vous cherchez par où commencer, le site propose des tags “complete” et “playable” pour identifier rapidement les projets les plus aboutis. Vous pouvez aussi filtrer par langage de programmation si vous voulez contribuer à un projet dans votre langage de prédilection.

Bref, OSGameClones c’est la ressource ultime pour tous les nostalgiques du gaming qui veulent revivre leurs souvenirs d’enfance tout en profitant des bénéfices du monde de l’open source !

  •  

Nixite - Une webapp qui génère des scripts bash pour installer tous vos logiciels Linux d'un coup

Ce serait quand même bien quand on réinstalle Linux from scratch pour la énième fois, qu’il y ait un moyen rapide de résinstaller tous nos outils préférés sans avoir à se retaper toutes les commandes d’installation une par une.

Et bien, si vous avez le même rêve que moi, vous allez adore Nixite , un petit outil qui va faire plaisir aux linuxiens.

Le principe est simple. Vous cochez les logiciels que vous voulez installer sur une interface web , et Nixite vous génère un script bash prêt à l’emploi. Ce script gère automatiquement l’installation de tous vos programmes, que vous soyez sur Ubuntu ou Arch Linux.

Ce qui est vraiment cool, c’est que Nixite ne se contente pas d’enchaîner bêtement des commandes apt ou pacman. L’outil choisit intelligemment la meilleure méthode d’installation pour chaque logiciel. Si un programme est mieux maintenu sur Flatpak, il utilisera Flatpak. Si c’est un snap qui est plus à jour, il partira sur snap. Et pour les cas particuliers, il peut même exécuter des commandes bash personnalisées.

L’interface web propose déjà une belle collection de logiciels organisés par catégories : navigateurs web, outils de communication, développement, gaming, productivité… Vous avez Discord, Zoom, VS Code, Steam, GIMP, VLC et des dizaines d’autres. En gros, tout ce dont vous avez besoin pour transformer une installation Linux toute fraîche en un système fonctionnel pour votre boulot.

Chaque logiciel est défini dans un simple fichier TOML dans le dépôt GitHub et vous pouvez spécifier des instructions communes pour toutes les distributions ou des commandes spécifiques pour Ubuntu et Arch. Par exemple :

install_system = "firefox" # Utilisera apt sur Ubuntu, pacman sur Arch

[ubuntu]
install_system = "firefox-esr" # Version spécifique pour Ubuntu

[arch]
install_system = "firefox-developer-edition" # Version pour Arch

L’outil gère aussi les installations via Flatpak avec flatpak = true, Snap avec snap = true ou snap = "classic", et même des commandes personnalisées avec install_command. Pour éviter de réexécuter une installation custom, vous pouvez ajouter skip_if_exists = "/chemin/vers/fichier" qui vérifiera si le logiciel est déjà installé.

Le gestionnaire de paquets Pacman est généralement plus rapide que apt pour les installations en masse et Nixite sait tirer partie de cette rapidité en supprimant automatiquement les prompts de confirmation, ce qui permet d’avoir une installation réellement sans intervention humaine.

Une fois votre sélection faite, vous téléchargez le script nixite.sh et vous lancez simplement bash nixite.sh et le script s’occupe de tout : configuration du système, ajout des dépôts nécessaires, installation des logiciels dans l’ordre optimal. C’est hyper pratique quand vous devez configurer plusieurs machines ou que vous réinstallez souvent votre système.

Le projet inclut aussi un script nixite-updater qui met à jour tous vos gestionnaires de paquets et logiciels d’un coup comme ça plus besoin de jongler entre apt update, flatpak update, snap refresh… Une seule commande et tout est à jour.

Voilà, avec Nixite, vous préparez votre script une seule fois et vous pouvez le réutiliser à l’infini. L’outil est encore en développement évidemment, et Aspizu, son créateur, est ouvert aux suggestions donc n’hésitez pas !

  •  

Indiana Jones et le prototype perdu du Commodore 64

Je viens de tomber sur une pépite qui va faire chavirer le cœur des nostalgiques du Commodore 64 !

Le site Games That Weren’t a déniché un prototype jouable d’Indiana Jones and the Last Crusade ! Mais attention, ce n’est pas un prototype officiel de l’époque. Il s’agit d’une conversion fan-made de la version aventure point-and-click propulsée par le moteur SCUMM que les adeptes du C64 n’ont jamais eu la chance d’essayer à l’époque.

Mais avant de vous en dire plus, je vous emmène avec moi en 1989. Lucasfilm Games sort 2 jeux Indiana Jones. D’un côté, il y a le jeu d’action / plateforme qui a bel et bien débarqué sur C64. Et de l’autre, le jeu d’aventure graphique qui tourne grâce au fameux moteur SCUMM (oui, celui de Monkey Island, pour les connaisseurs). Mais voilà, coup dur pour les fans du C64 c’est que cette version aventure ne s’est jamais frayé un chemin jusqu’à leur machine chérie. Elle est malheureusement restée l’exclusivité des ordinateurs 16 bits.

Et en 2012, un certain Thorsten Harth, alias “Brick Bambi”, développeur allemand audacieux de son état, se dit : “Et si je portais ce jeu SCUMM sur Commodore 64 ?” Un défi de taille quand on mesure les limitations techniques de la bécane 8 bits face à ses homologues 16 bits. Le bonhomme s’est acharné pendant plusieurs années sur cette conversion homebrew, jonglant entre graphiques bitmap et caractères pour optimiser la mémoire. Il avait même réservé 4K de RAM juste pour le son (de $A000 à $AFFF pour les experts).

D’ailleurs, côté musique, Joachim Wijnhoven avait été recruté en 2016 pour s’occuper de la bande-son. Thorsten lui avait commandé la “Raiders March” pour l’écran titre et de fin, mais aussi toute une série de thèmes spécifiques : la musique de la carte, de Venise, des catacombes, du château Brunwald, la marche d’Hitler, le piano d’Henry, la salle du Graal… Un travail de titan ! Roland Hermans, une autre recrure devait même s’occuper des effets sonores comme les coups frappés dans la bibliothèque, la cascade ou les étagères qui tombent. Le jeu devait alors alterner entre musique et effets sonores… Hé oui, pas les deux en même temps, question de limitations techniques.

Mais voilà, malgré l’aide apportée par d’autres personnes, la réalité a fini par rattraper notre développeur. Entre trois jeunes enfants à élever et un job à assurer, Thorsten se retrouve à court de temps. En 2017, une sortie cartouche avait même été discutée, mais Thorsten avait répondu que la complexité du jeu demanderait encore plusieurs années… le problème n’était pas les limitations de la RAM ou le CPU, mais bien les limites de temps. Du coup, en 2018, le projet est annoncé comme abandonné…

Snif…

A l’époque, son objectif initial c’était de boucler au moins le premier chapitre complet : Barnet College, la maison d’Henry, Venise, la bibliothèque et les catacombes. Tout ce qui précède le château Brunwald en fait. Et bonne nouvelle : c’est exactement ce que contient le prototype de Thorsten qui vient d’être retrouvé ! Joachim Wijnhoven, qui avait reçu une preview en décembre 2018, l’a généreusement partagée avec Games That Weren’t. C’est d’ailleurs une démo impressionnante avec beaucoup de contenu et d’interactions possibles.

Pour les fans de l’époque, l’absence de la version SCUMM d’Indy III sur C64 sonnait comme le glas et beaucoup ont commencé à lorgner du côté de l’Amiga ou du PC après cette déception. Alors voir aujourd’hui ce prototype homebrew refaire surface, même s’il date de 2012-2018 et non de 1989, c’est comme déterrer un trésor perdu digne du Dr. Jones lui-même.

Ce prototype de Thorsten est donc désormais archivé et dispo pour tous les nostalgiques qui souhaitent explorer ce qui aurait pu être l’une des conversions homebrew les plus audacieuses du Commodore 64. Et en bonus, pour les amateurs, les musiques composées par Joachim ont été publiées en 2023 dans une release appelée “Archimedes’ Dial” , et vous pouvez même retrouver les vidéos originales de Brick Bambi sur YouTube montrant le jeu en action.

Voilà, qui sait, peut-être qu’un jour quelqu’un reprendra le flambeau pour finir cette conversion légendaire…

  •  
❌