Gérer un serveur à la main, c'est nginx à configurer, les certificats à renouveler, les sauvegardes à planifier et les conteneurs à surveiller... C'est beaucoup de travail. Mais vous allez avoir de l'aide grâce à DockPanel, d'Ovidiu Drobotă, qui met tout ça derrière une jolie interface web tenant dans 19 Mo de RAM.
L'installation se colle en une ligne sur un VPS frais et vous récupérez un panneau d'admin sur le port 8443. Ubuntu, Debian, Rocky, Fedora ou Amazon Linux, en x86_64 comme en ARM64.
À partir de là vous créez des sites en PHP, Node ou Python, avec nginx configuré tout seul et les certificats Let's Encrypt qui se renouvellent sans y penser. Les bases MySQL et PostgreSQL vont avec, navigateur SQL intégré et restauration à un instant T via les journaux binaires.
Ensuite, c'est surtout le catalogue Docker qui fait le gros du travail. Environ 150 modèles en un clic répartis sur 14 catégories, WordPress, Postgres, Grafana, n8n ou Immich, et le reverse proxy, le SSL et le réseau se câblent automatiquement derrière. Les conteneurs inactifs peuvent même se mettre en veille tout seuls pour libérer la machine.
Côté déploiement, vous poussez votre code et ça part en production, avec bascule atomique par lien symbolique et retour arrière en un clic quand le déploiement du vendredi tourne mal. Nixpacks reconnaît plus de 30 langages, donc pas de Dockerfile à écrire, et chaque branche peut avoir son environnement de préversion.
Il y a aussi un serveur mail complet, Postfix, Dovecot et DKIM, avec Roundcube en webmail et Rspamd contre le spam. La partie DNS pilote Cloudflare et PowerDNS, avec vérification de propagation, DNSSEC et les tunnels Cloudflare. Un module CDN gère BunnyCDN et Cloudflare, purge du cache comprise.
Pour la surveillance, des sondes HTTP, TCP et ping, une gestion d'incidents avec chronologie et post-mortem, une page de statut publique à laquelle vos utilisateurs peuvent s'abonner, et des alertes qui partent sur Slack, Discord ou PagerDuty. Un point de collecte Prometheus est dispo, avec un tableau Grafana prêt à importer.
La sécurité est activée par défaut avec pare-feu applicatif ModSecurity par site, Fail2Ban, durcissement SSH en un clic, connexion par passkey ou 2FA, et chaque image Docker déployée peut être scannée à la recherche de CVE avec grype, avec refus de déploiement au-dessus du seuil que vous fixez. Les sauvegardes passent par Restic, chiffrées et dédupliquées, vers S3, SFTP, B2 ou GCS, avec vérification de restauration.
Le reste ensuite, c'est que du confort. Terminal web avec enregistrement de session, gestionnaire de fichiers, palette de commandes en Ctrl+K, 6 thèmes, boîte à secrets chiffrée, passerelle à webhooks et une ligne de commande. La configuration complète s'exporte en YAML pour être rejouée ailleurs. Si vous gérez plusieurs machines, un seul panneau les pilote toutes, avec des comptes revendeur en marque blanche pour ceux que ça intéresse.
Deux choses à savoir avant de lancer l'installation quand même... En mars, une injection de commande dans le formulaire de création de site a permis à un visiteur de passer root sur la machine de l'auteur. C'est corrigé depuis, mais l'agent tourne en root par conception puisque c'est lui qui touche à Docker, à nginx et aux certificats.
L'autre point, c'est la licence. DockPanel est en Business Source License 1.1, ce qui n'est pas de l'open source même si la page d'accueil le présente comme ça. L'usage est libre et gratuit sur vos propres serveurs, mais la revente en service hébergé est interdite. Une bascule en MIT est quand même programmée pour mars 2030.
Voilà, je me suis dit que ça pourrait vous intéresser.
Vous tapez dans votre terminal ssh late.sh et c'est tout. Votre clé SSH fait alors office de carte de membre et vous voilà dans un salon peuplé de gens qui tapent sur leur clavier depuis un peu partout sur la planète. C'est ce qu'a imaginé Mateusz Piórowski, un dev polonais, qui a passé ces derniers mois à ressusciter le BBS.
Vous atterrissez dans THE LATE BAR, un vrai décor en ASCII où vous marchez en utilisant les flèches du clavier ou les touches hjkl. Vous vous asseyez avec s, vous faites coucou avec w, et la touche i ouvre la ligne de saisie pour parler. Y'a un barman, un jukebox, un salon à côté, des habitués affalés aux tables et une porte mystérieuse marquée DOORS...
THE LATE BAR, vu depuis la démo web en lecture seule de late.sh
Le reste du club tient dans le même terminal avec une radio qui tourne en fond, un tableau ASCII collaboratif dont chaque case garde le nom de qui l'a peinte, des profils pour dire sur quoi vous bossez, un fil de news et une arcade avec 2048, sudoku, nonogrammes et solitaire. Il y a même un bonsaï qui pousse pendant que vous codez.
Mais je reviens un peu sur cette porte mystérieuse dont je vous parlais juste avant… Derrière se cachent ce qu'on appelle les door games. Pour les moins de 40 ans, dans les années 90, un "door" c'était le jeu externe qu'un BBS lançait pour vous, le temps de votre session. C'était le cœur social de ces machines, et si vous voulez goûter un peu à l'ambiance de l'époque,
l'opération Sundevil
vous en donnera un bon aperçu. Le bien inspiré Piórowski les a donc remis en ligne ! Et ce sont les vrais, hein, pas des remakes.
On y trouve par exemple NetHack, Dope Wars, Dungeon Crawl Stone Soup ou encore Usurper. Chaque jeu a sa crate Rust dédiée qui lance le vrai binaire Unix sur un PTY et vous le proxifie dans votre session SSH.
Vous pouvez également faire tout tourner chez vous en clonant le dépôt puis en faisant un make start, puis vous connecter en ssh localhost -p 2222. Un CLI compagnon gèrera alors la lecture audio en local avec un visualiseur synchronisé.
Côté vie privée, sachez que le serveur garde l'empreinte de votre clé, et pas la clé publique entière, et vos scores comme vos messages n'y sont rattachés que par cette empreinte. Il n'y a aucun log d'IP ni d'analytics mais si vous restez méfiant vous pouvez générer une clé jetable et vous connecter avec :
Après c'est pas l'open, source, puisque le code est publié sous licence FSL-1.1-MIT. Vous pouvez donc lire, auditer, modifier, forker et contribuer, mais pas monter un service public concurrent. Quoi qu'il en soit, chaque version bascule ensuite sous licence MIT, 2 ans après sa sortie. Piórowski assume ça très bien et le documente dans son dépôt.
L'autre limite, c'est la taille car toute l'infra tourne sur un seul nœud Kubernetes plafonné à 1000 connexions simultanées, donc autant dire que le service va rapidement être victime de son succès
NVIDIA a débranché GameStream, son système maison pour envoyer les jeux de votre PC vers une Shield ou un laptop. Sauf que le protocole, lui, n'est pas mort :
Moonlight
, le client open source qui le réimplémente, tourne toujours sur Windows, macOS, Linux, Steam Link, Raspberry Pi 4, Apple TV et Xbox, et même sur des Switch et des Vita en homebrew.
Et surtout, Hans Gaiser bricole depuis début 2024 une pièce qui manquait côté serveur,
Moonshine
, qui commence à être sérieusement utilisable.
Moonlight n'étant qu'un client, il affiche l'image et renvoie votre clavier, votre souris et votre manette. Derrière, il faut donc forcément une machine qui capture le jeu et qui encode la vidéo en temps réel.
Bref, comme je vous le disais, depuis que NVIDIA a rangé GameStream au placard début 2023, ce rôle revient à des serveurs communautaires. Le seul que la FAQ Moonlight recommande, c'est
Sunshine
, du collectif LizardByte. C'est codé en C++ sous licence GPL-3 et ça tourne sous Windows, Linux, macOS et FreeBSD. Sauf que Sunshine capture une session de bureau existante ce qui veut dire que sur une machine sans écran, il faut composer avec ça, et c'est de là que vient toute la littérature sur les dongles HDMI factices et autres écrans virtuels...
Alors que Moonshine, lui, est codé en Rust et prend un autre chemin. En fait, chaque session de streaming tourne dans son propre environnement isolé, qui est totalement séparé de votre bureau. Du coup, vous n'avez plus besoin de session active du tout... Une simple tour sans écran fera parfaitement le boulot.
Voilà, si vous avez une machine Linux qui dort dans votre placard avec un GPU dedans, ça peut vous permettre de lancer Moonlight depuis votre canapé à distance, et c'est le serveur qui gérera la session rien que pour vous.
Après, c'est du Linux uniquement, testé sur Arch même si ça remonte que ça tourne aussi sur d'autres distribs, avec systemd obligatoire pour lancer et gérer tout ce qui est processus. Et du côté du GPU, il vous faudra de l'encodage vidéo Vulkan, donc, vous l'aurez compris, une Nvidia RTX ou une AMD RDNA2 ou plus récente, voire une Intel Arc pour les plus motivés.
Voilà, toutes vos vieilles GTX resteront sur le banc de touches... Sans oublier que vous aurez besoin du client Moonlight en version 6.0.0 minimum et que la compatibilité avec les portages non officiels n'est pas garantie.
Les codecs supportés, c'est du H.264, H.265 et AV1, avec du HDR en 10 bits. L'AV1 est marqué expérimental et Hans Gaiser prévient lui-même qu'il fait gonfler la taille des images au fil du temps sur les cartes NVIDIA. Sauf que c'est réglé depuis : NVIDIA a sorti le correctif dans son pilote Vulkan beta 595.44.3.0 et Hans Gaiser a confirmé début avril, mesures à l'appui, que la qualité était revenue à la normale. Son README, lui, n'a pas suivi et vous conseille encore de rester en H.264 ou H.265. Donc si l'AV1 vous tente, prévoyez le pilote Vulkan beta, pas celui de votre distrib.
Notez aussi que Moonshine n'est pas conçu pour être utilisé sur des réseaux publics puisque le protocole GameStream sous-jacent a des limites qui font que le trafic n'est pas entièrement chiffré au niveau applicatif. Donc, si vous vous y mettez, n'exposez jamais les ports de Moonshine directement sur internet. Préférez passer par
Tailscale
ou un WireGuard par exemple.
Bref, Moonlight, Sunshine, Moonshine... si comme moi, vous vous emmêlez dans les noms, c'est parfaitement normal. N'empêche que c'est un super truc, encore en dev, certes, mais ça promet pour le futur...
Logitech Options+, vous connaissez ce délire, je pense... Pour régler 3 boutons de souris, on vous pousse à créer un compte, à partager vos data, et à laisser une usine à gaz tourner H24 en tâche de fond. Le dev AprilNEA en a eu marre, du coup il a écrit OpenLogi en Rust et son truc fait le même boulot côté réglages, mais sans rien envoyer chez Logitech.
Si vous me lisez régulièrement, ça devrait vous rappeler
Mouser
, dont je vous parlais en mars dernier. C'est la même philosophie, sauf que Mouser restait coincé, à l'époque, sur la MX Master 3S en Bluetooth uniquement, sans SmartShift et sans Linux. OpenLogi reprend donc le flambeau et va beaucoup plus loin.
Alors, qu'est-ce que vous pouvez faire avec ?
Hé bien d'abord remapper vos boutons (41 actions prêtes à l'emploi, quand même), régler le DPI, activer le SmartShift, ce fameux défilement en roue libre. Vous pouvez aussi créer des profils qui basculent tout seuls selon l'appli active. Et tout ça cause directement avec le protocole HID++ de Logitech à votre
MX Master
, sans jamais lancer le pilote maison.
Peu importe comment la bête est branchée d'ailleurs, récepteur Bolt, clé Unifying, Bluetooth ou un bon vieux câble, les quatre passent ! Toute votre config ensuite se trouve dans un simple fichier TOML posé en local, que vous pouvez versionner dans un Git si ça vous chante. L'outil dispose d'une interface graphique, mais vous pouvez également l'utiliser en ligne de commande.
Pour l'installer sous macOS, c'est facile, il suffit de faire un brew install --cask openlogi et voilà ! Quant à Linux, vous avez des paquets .deb et .rpm. Notez que ça tourne aussi sous Windows, mais uniquement en beta.
OpenLogi est compatible avec les MX Master 4, 3S et 3, MX Anywhere 3, Signature M650, Ergo M575 et le code est libre sous double licence Apache 2.0 et MIT au choix.
Voilà, si Options+ vous gonfle de fou, OpenLogi mérite sans doute un petit test de votre part. C'est
par ici
, et le code est
sur GitHub
.
Votre Nextcloud sait tout de vous. L'admin du serveur (vous, ou pire, quelqu'un d'autre) peut ouvrir n'importe quel fichier stocké dessus, parce que le chiffrement de bout en bout reste une option planquée dans un plugin.
C'est pourquoi
Hoodik
, un projet de Tibor Hudik, prend le problème à l'envers. Parce que chez lui, le chiffrement, ce n'est pas une case à cocher, c'est l'architecture au complet.
Grâce à sa solution, vos fichiers sont chiffrés dans votre navigateur, avant même de partir sur le réseau, et à aucun moment le serveur ne voit vos fichiers en clair, ni ne reçoit les clés de chiffrement.
Votre clé privée ne quitte donc pas votre machine, et comme ça, même une intrusion sur le serveur ou un vol ne livrera jamais vos fichiers en clair.
L'interface web, sobre et sans fioritures
Et là où beaucoup d'outils chiffrés deviennent pénibles à l'usage, celui-ci garde les trucs du quotidien super pratiques. Y'a du partage entre comptes avec des rôles (lecture, édition, co-propriétaire), des notes Markdown chiffrées avec historique de versions, et même des aperçus photo et vidéo sans rien déchiffrer côté serveur, HEIC de l'iPhone compris.
La recherche fonctionne aussi alors que le serveur ne voit rien… En fait, votre navigateur découpe les noms de fichiers en petits morceaux, les hashe, et le serveur ne compare que ces empreintes, et jamais de texte en clair. Quant au partage public, la clé de déchiffrement voyage dans le fragment de l'URL, cette partie après le # que votre navigateur n'envoie jamais au serveur.
Au niveau de la crypto, le boulot se divise en deux, il y a d'un côté une paire RSA 2048 qui ne sert qu'à faire circuler les clés, et de l'autre, AEGIS-128L qui chiffre vos données, calculé en direct par le navigateur grâce à WebAssembly (du code quasi natif quoi...). Et avant que vous leviez un sourcil sur ce cipher au nom de Pokémon, AEGIS-128L est finaliste de CAESAR, un concours international de crypto, et est en cours de standardisation à l'IETF. Vous pouvez par exemple le retrouver implémenté dans
libsodium
. C'est du sérieux, donc.
L'autre bonne surprise, c'est le poids plume de l'app. Le serveur est écrit en Rust (Actix-web) avec un front en Vue 3 et il tourne autour de 20 Mo de RAM au repos, alors que votre Nextcloud réclame ses 200 à 500 Mo pour afficher 3 photos de vacances.
Hoodik est dispo sous la forme d'une image docker pour AMD64 et ARM donc vous pouvez l'installer sur n'importe quoi, un
Raspberry Pi
, un vieux NAS, un vieux PC, ce que vous voulez...
Pour vos téléphones, il y a également des applications Android et iOS dont le chiffrement tourne en Rust compilé dans l'appli elle-même (et pas une page web déguisée en application, on a assez donné...). Par contre elles passent en payant après 30 jours d'essai, sans tarif affiché publiquement sur le site... c'est le modèle économique du projet.
Autrement, c'est sous licence Creative Commons, le code est dispo sur
GitHub
, mais par contre notez bien que l'usage commercial est interdit sans l'accord de l'éditeur. Ajoutez à ça un projet encore jeune et aucun audit de sécurité indépendant publié, contrairement à
Cryptomator
qui est en GPLv3 et audité. Après ma comparaison s'arrête là par contre, parce que Cryptomator chiffre par-dessus un cloud existant alors que Hoodik c'est vous qui l'hébergez.
Quoi qu'il en soit, pour votre dossier de photos de famille, vos sauvegardes ou vos documents sensibles, le compromis se défend largement. Et si vous voulez explorer d'autres pistes, jetez un œil à
OpenCloud
pour du Nextcloud-like allégé, ou à
Picocrypt
pour chiffrer des fichiers à l'unité.
Allez, y'a plus qu'à ressusciter le vieux NAS qui prend la poussière et suivre
le guide d'installation
pour lancer votre docker compose up.
Nomlings, c'est un Tamagotchi qui vit à côté de votre terminal, et dont la seule nourriture, ce sont les tokens que crament vos sessions Claude Code. Vous bossez, il mange. Vous glandez, il patiente.
Et pendant que vous regardez votre usage fondre comme neige au soleil, bah lui il se régale !!
La bestiole s'appelle un Munchling, un "tokivore" quoi, qui s'affiche sur un écran de 64 pixels et chaque tâche terminée lui rapporte +10 XP et un snack.
Quand un outil plante, il fait la gueule et quand Claude attend une réponse de votre part depuis un moment parce que vous êtes parti vous refaire un café, il vous alerte pour que vous reveniez bosser. Bref, c'est une créature en pixels qui vous fera culpabiliser de procrastiner, ce qui peut-être pas mal quand on est un indé à son compte et grosse feignasse en même temps ^^.
Derrière tout ça, le soft digère en réalité les événements de vos sessions, en se branchant sur les hooks officiels de Claude Code (SessionStart, PostToolUse et Stop), qui transitent uniquement en local. Si l'app n'est pas lancée, ces hooks ne font strictement rien, donc aucun ralentissement à craindre. Ça marche un peu comme
Notchi
pour ceux qui connaissent.
Côté élevage, votre Munchling démarre donc dans un œuf et évolue jusqu'à l'âge adulte, en gagnant d'abord une antenne, puis une deuxième (la classe ^^). Il reçoit un goûter à chaque tâche terminée, plus un snack qu'il part fourrager tout seul toutes les 30 minutes, même app fermée, avec un maximum de 5 en réserve. Y'a aussi un bouton FEED qui vous laisse le nourrir quand il fait les yeux doux. Et rassurez-vous, contrairement au Tamagotchi de votre enfance retrouvé mort au fond du cartable, celui-là ne peut pas mourir !
Ah vous n'utilisez pas Claude Code ?
Pas grave, y'a un mode companion prévu pour vous. Dans ce mode, le serveur de hooks et le watcher de transcript ne démarrent jamais, et rien n'est écrit dans votre ~/.claude. La bestiole se nourrit à la place des tâches que vous effectuez et des interactions que vous déclenchez dans Nomlings. Par exemple, cocher une tâche rapporte +10 XP et un snack, exactement comme une session Claude. Ça me rappelle Codachi, ce
Tamagotchi qu'on adopte dans VSCode
pour coder moins seul, sauf qu'ici pas besoin d'éditeur particulier.
En tout cas, c'est rigolo et c'est gratuit, sauf si vous optez pour le pack cosmétique qui débloque 9 espèces supplémentaires (dragon, poussin, fantôme, robot, grenouille, abeille…), ainsi que 9 coques pour habiller le boîtier et des couleurs à choisir librement.
Maintenant, reste LE point qui fâche : pour l'instant, Nomlings tourne uniquement sous Windows. Ouais désolé, c'est la vie !
Bref, si vous pensez que tous les tokens que vous cramez sur Claude Code méritent une fin plus glorieuse qu'un simple compteur qui vous fout la pression, c'est
par ici
que ça se passe.
niri
, c'est un compositor Wayland écrit en Rust par Ivan Molodetskikh, et il a un drôle de kink qui est de ne jamais redimensionner vos fenêtres dans votre dos. Jamais !!
Ainsi, quand vous ouvrez une nouvelle appli, elle vient se coller à droite de la précédente sur une bande horizontale qui s'étend à l'infini. Pas de grille rigide, pas d'empilement façon Tetris, vous scrollez simplement vers la droite pour balader votre regard sur vos fenêtres, comme on fait défiler une pellicule photo.
Ce concept vient de PaperWM, une extension GNOME que pas mal de gens vénèrent sauf que Molodetskikh a préféré tout réécrire de zéro en Rust car PaperWM galérait fort à isoler les espaces de travail par écran. Grâce à ça, maintenant chaque écran a sa propre bande de fenêtres, totalement indépendante des autres.
Pour l'installer, y'a des
paquets
pour la plupart des distros (Fedora, Arch, NixOS), ou vous compilez avec cargo si vous aimez vivre dangereusement. Comptez 10 minutes de mise en place pour un truc fonctionnel et comme niri est juste un compositor, il vous faudra aussi une barre et un lanceur par-dessus, genre DankMaterialShell ou Noctalia.
Avec niri, Les espaces de travail s'empilent verticalement à la GNOME, y'a une vue d'ensemble qui dézoome pour voir tout votre bazar d'un coup, des fenêtres flottantes, le scaling fractionnaire au pixel près, et même les gestes sur le touchpad. Puis la config se recharge à chaud, donc vous bidouillez votre fichier comme vous voulez, sans avoir à relancer quoi que ce soit.
Et contrairement à pas mal de compositors Wayland qui font la gueule dès qu'ils croisent une carte NVIDIA, niri tourne nickel dessus. Il s'en sort même très bien sur un Eee PC 900 de 2008 (Je dois encore avoir le mien quelque part...).
Maintenant, ce genre de scroll infini ça ne plait pas à tout le monde car comme vos fenêtres partent hors écran à droite, vous ne savez pas toujours s'il vous reste 2 fenêtres ouvertes ou 50. On se perd un peu au début, juste le temps de prendre le réflexe d'ouvrir la vue d'ensemble mais après c'est du bonheur !
Côté compatibilité, les vieilles applis X11 passent via xwayland-satellite et si toute cette histoire de X11 contre Wayland vous parle, j'avais causé aussi y'a un moment de
Wayback
qui fait le pont dans l'autre sens. Et puis si c'est juste le
tiling
qui vous tente mais que vous êtes coincé sous Windows, jetez un œil à
Seelen
.
Bref, si vous en avez marre de réorganiser vos fenêtres à la main et que l'idée de scroller votre bureau vous botte, niri vaut le coup, en plus c'est gratuit et sous licence libre.
Cult of the Dead Cow
, un des plus vieux collectifs hacktivistes encore en activité, ne se contente pas que de balancer des manifestes politiques depuis 1984. Ils codent. Et leur dernier bébé en date s'appelle
Veilid
, et c'est un framework P2P qui veut faire à vos apps ce que Tor a fait à votre navigateur.
Histoire de vous expliquer, vous prenez Veilid, vous l'intégrez dans votre app mobile ou web, et d'un coup tout votre trafic passe par un réseau pair-à-pair (P2P) chiffré de bout en bout. Cela veut dire qu'il n'y a pas de serveur central qui stocke vos messages.
Concernant votre IP, celle-ci n'apparaît alors plus au niveau applicatif (le routage privé l'obfusque entre pairs), et chaque nœud est identifié par une clé publique Ed25519 256-bit. Donc autant dire un truc carrément impossible à brute-force.
Le projet a été annoncé à
DEF CON 31 en août 2023
par Christien "DilDog" Rioux et Katelyn "Medus4" Bowden, 2 membres historiques de cDc, et près de trois ans plus tard, ça continue d'évoluer toujours à un rythme régulier.
L'idée technique vous la connaissez si vous avez déjà touché à du décentralisé : Une table de hachage distribuée (DHT, en fait un annuaire éclaté entre tous les nœuds du réseau) gère le routage, chaque nœud relaie du trafic chiffré qu'il ne peut pas lire, et les pairs s'échangent des données sans jamais révéler leur IP.
Perso, c'est l'approche qui me semble vachement plus saine pour faire du social sans Mark Zuckerberg dans la boucle. C'est dans le même esprit que Tor et qu'
IPFS
, sauf que Veilid est pensé dès le départ pour les développeurs d'applications. Donc c'est pas fait pour anonymiser de la navigation web ou stocker des fichiers. C'est un Tor des applications si vous préférez...
Le framework est codé en Rust avec des bindings Flutter et Dart pour le mobile ainsi qu'une cible WebAssembly pour le navigateur. Vous pouvez donc carrément déployer une app Veilid sur Linux, macOS, Windows, Android, iOS, et même directement dans Chrome ou Firefox via WASM.
Le code, lui, est découpé en plusieurs composants : veilid-core pour le moteur, veilid-tools pour les utilitaires, veilid-flutter pour le mobile, veilid-wasm pour le navigateur et veilid-server qu'on installe sur un VPS Debian ou Fedora pour faire tourner un nœud public. Voilà, et le tout est sous licence Mozilla Public License 2.0, donc copyleft mais compatible si vous y ajoutez du code propriétaire par dessus.
L'app phare qui tourne déjà sur ce framework, c'est
VeilidChat
, une messagerie type Signal mais sans aucun serveur, sans numéro de téléphone et sans annuaire centralisé. Vous échangez votre clé publique avec un pote, et hop, c'est parti.
Si ça vous dit d'y jeter un oeil, sachez que le code de Veilid n'est pas sur GitHub mais sur
GitLab
. Après c'est encore assez nouveau, ce qui veut dire que ça bouge beaucoup de release en release. Donc si vous voulez coder votre prochaine app par dessus ce framework, va falloir vous accrocher car ça cassera souvent.
Mais si vous codez du décentralisé et que vous en avez franchement marre de bricoler libp2p à coup de colle forte Python, Veilid mérite un sérieux coup d'œil. Et même si vous codez pas, gardez l'œil sur VeilidChat car le jour où une appli grand public sortira là-dessus, ça va vraiment envoyer du lourd.
Séparer la voix, la batterie ou la basse d'un morceau, ça relevait du rêve d'audiophile il y a encore quelques années. Fallait installer Python, se taper Spleeter, galérer avec les dépendances CUDA... bref, un super truc de barbu. Mais ça, c'était avant, les amis !
Demucs-rs
, une réécriture en Rust du modèle HTDemucs v4 de Meta, tourne maintenant directement dans votre navigateur grâce au WebGPU. Batterie, basse, voix, tout le reste..., chaque élément se retrouve ainsi isolé dans son propre fichier WAV. Et y'a rien à installer, puisque tout se passe côté client, sur votre machine.
Pour vous en servir, vous pouvez aller sur
la web app
, vous glissez-déposez votre fichier MP3 (ou WAV, FLAC, OGG, M4A... ça bouffe à peu près tout), et vous patientez... Le premier lancement télécharge le modèle (~84 Mo pour le standard), donc prévoyez une connexion correcte.
L'interface de la web app - vous glissez votre fichier et c'est parti
Comptez alors quelques minutes selon la durée du morceau. En sortie, vous aurez alors plusieurs fichiers WAV séparés que vous pourrez écouter, jouer en solo ou télécharger individuellement.
Les pistes séparées, prêtes à écouter ou télécharger
Trois modèles sont dispos. Le mode 4 pistes suffit dans 90% des cas. Il y a aussi le modèle 6 stems, ou plutôt htdemucs_6s, qui est pas mal pour du rock ou du jazz. Et pour les obsessionnels de la qualité, y'a le fine-tuned à 333 Mo... mais prévoyez une pause café, parce que ça va être long de fou !
Voilà, comme ça, si vous voulez faire un karaoké maison, vous virez la voix et vous gardez l'instrumental. Ou si votre truc c'est de sampler une ligne de basse d'un vieux morceau de funk ou encore pratiquer la guitare en jouant par-dessus le morceau original sans la partie guitare, c'est entièrement possible !
D'ailleurs, si vous aviez testé
Spleeter avec Ableton
à l'époque, c'est le même principe mais en BEAUCOUP plus simple !!
Perso, le fait que ça tourne dans le navigateur, c'est top, sans parler du fait que vos morceaux restent sur votre disque.
Maintenant, si la version navigateur vous semble un peu longue, y'a le CLI natif qui exploite Metal sur Mac et Vulkan sur Linux/Windows. Pour l'installer, clonez le repo et lancez make cli (Rust requis) :
git clone https://github.com/nikhilunni/demucs-rs
cd demucs-rs && make cli
Le binaire atterrit dans target/release/demucs, 24 Mo. Le modèle se télécharge au premier lancement.
Côté utilisation, c'est du gâteau :
demucs song.mp3 # 4 pistes dans ./stems/
demucs -s vocals chanson.mp3 # juste la voix
demucs -m htdemucs_6s -s guitar solo.flac # isoler la guitare
demucs -m htdemucs_ft morceau.mp3 # qualité max
En sortie, chaque stem est un fichier WAV. Vous virez le vocals.wav, vous gardez le reste... et tadaaa, karaoké instantané pour votre voix de casserole ! C'est carrément plus rapide qu'en WebAssembly.
Et si vous bossez dans un DAW sur macOS, y'a aussi un plugin VST3/CLAP pour faire la séparation directement dans Logic ou Reaper (sauf que bon, c'est macOS only pour l'instant, quoi).
Après sachez que sur certains passages très chargés, la voix peut baver un peu dans la piste "other" ou inversement mais pour du remix amateur ou du sampling, ça suffit largement !
D'ailleurs, j'sais pas si vous vous souvenez, mais
les plugins IA d'Audacity
embarquent aussi Demucs v4. Mais là avec Demucs-rs c'est natif et surtout indépendant d'Audacity.
Et bien sûr, tout est open source sous licence Apache 2.0 !
Si vous utilisez Ubuntu 26.04, vous avez peut-être remarqué un truc bizarre dernièrement en tapant votre mot de passe sudo... Ouiiiiii, y'a des petites étoiles qui apparaissent !! Pas de panique, c'est "normal". Enfin, c'est nouveau...
En effet, sudo-rs, la réécriture en Rust de la bonne vieille commande sudo, a décidé d'activer pwfeedback par défaut. En gros, quand vous faites un sudo apt install bidule, au lieu du trou noir habituel, vous voyez maintenant des ***** défiler pendant la saisie du mot de passe. C'est un changement qui casse une convention vieille de 40 ans... et ça, forcément, ça fait du bruit !
Pour rappel, Ubuntu a basculé sur sudo-rs (le remplaçant en Rust du bon vieux sudo en C) depuis la version 25.10. Ça fait partie du même mouvement de réécriture des outils système en Rust,
comme les coreutils
dont je vous avais parlé. Et la 26.04 vient de "cherry-picker" comme on dit, un patch upstream qui active le feedback visuel par défaut.
Un bug report sur Launchpad (
#2142721
) est bien sûr arrivé direct, en mode vénère genre "*ÇA FAIT DES DÉCENNIES qu'on n'affiche pas la longueur du mot de passe pour empêcher le shoulder surfing ! C'est quoi ce bordel !!?? *"
Et la réponse des devs : Won't Fix. Circulez les relous !
En fait, leur argument c'est que le bénéfice sécurité est "infinitésimal". Parce que bon, votre mot de passe sudo c'est le même que celui de votre session (celui que vous tapez à l'écran de login, devant tout le monde). Et le bruit des touches trahit déjà la longueur de toute façon. Du coup, ils ont préféré régler le problème UX qui paume les débutants depuis le début des années 80.
Perso, le truc qui me gonfle c'est pour les tutos vidéo. Quand vous faites un screencast, les astérisques révèlent la longueur de votre mot de passe à tous vos spectateurs. Du coup faut aller reparamétrer chaque machine avant de filmer ou faire du masquage en post prod. C'est pas la fin du monde, mais bon, la flemme...
Alors pour désactiver ces jolies zétoiles :
sudo visudo
Et ajoutez cette ligne à la fin de /etc/sudoers :
Defaults !pwfeedback
Sauvegardez (Ctrl+X sous nano), et c'est réglé. Attention, ne touchez à rien d'autre dans ce fichier, une erreur de typo et sudo ne marchera plus. Grâce à cette manip, ce sera retour au trou noir ! Youpi !
MinIO, tout le monde ou presque connaît car c'est LE truc quand on veut du stockage objet S3-compatible auto-hébergé sous Linux. Sauf que voilà... la licence AGPL, ça pique pour pas mal de boîtes qui ne veulent pas se retrouver à devoir ouvrir leur code.
Du coup, y'a un nouveau projet qui débarque dans le tiek et qui devrait en intéresser plus d'un. C'est
RustFS
, codé en Rust (comme le nom le laisse deviner mes petits Sherlock) et 100% compatible S3. En gros, vous prenez votre stack MinIO existante, vous remplacez par ce truc, et en fait tout continue de fonctionner pareil... Vos buckets, vos applis, vos scripts Python, boto3... tout pareil !
La licence c'est de l'Apache 2.0 comme ça y'a pas de contrainte virale, vous faites ce que vous voulez avec. Et c'est d'ailleurs sûrement la raison numéro un pour laquelle le projet cartonne.
Côté perfs, les devs annoncent 2,3x plus rapide que MinIO sur des petits objets de 4 Ko (testé sur un modeste 2 coeurs Xeon avec 4 Go de RAM). Bon, c'est un benchmark maison, à prendre avec des pincettes hein... mais finalement Rust pour du I/O intensif, ça se tient comme argument, car y'a pas de garbage collector qui vient foutre le bazar.
Et voilà, l'API tourne sur le port 9000 et la console web sur le 9001 (identifiants par défaut : rustfsadmin/rustfsadmin, changez-les vite fait hein). Y'a aussi du Kubernetes via Helm, un script d'install one-click, du Nix, ou un bon vieux git clone pour compiler vous-même (attention, sur macOS faut un ulimit à 4096 sinon ça ne marche pas).
Le conteneur Docker tourne en non-root (UID 10001), donc c'est plutôt propre niveau sécu. Pensez juste à faire un petit chown -R 10001:10001 data logs sur vos répertoires avant de lancer, sinon ça casse au démarrage.
Petit bonus appréciable, y'a aussi de la détection de corruption intégrée, et même du versioning de buckets pour les plus méfiants côté intégrité des données. D'ailleurs, côté monitoring, c'est déjà câblé pour envoyer vos métriques dans Grafana, vos traces dans Jaeger et le reste dans Prometheus. Un petit docker compose --profile observability up -d et c'est plié.
Par contre, on est encore en alpha et le mode distribué et le KMS sont en phase de test. Donc c'est PAS le genre de truc que vous mettrez en prod demain matin pour vos données critiques... mais pour du dev, du lab, ou des tâches pas trop sensibles... ça tourne impecc !
Bref, si l'AGPL de MinIO vous gave et que vous cherchez une alternative S3-compatible, en Rust, sous licence + permissive, allez jeter un œil à RustFS.
Vous vous souvenez de l'époque où rien que de lire un texte sur un écran noir suffisait à notre bonheur ? C'était un temps où chaque pixel comptait et où la souris était encore en option... Alalala, hé bien, pour ceux qui ont gardé cette âme pure ou qui passent la plupart de leur temps dans un shell, je vous ai déniché Bookokrat, un lecteur EPUB conçu EXCLUSIVEMENT pour votre terminal.
Vous allez voir c'est super pour lire des livres pendant le boulot discretos ^^.
L'outil propose une interface en "split-view" avec les EPUB de votre répertoire courant à gauche et votre lecteur à droite. Et malgré le côté austère du terminal, Bookokrat ne fait pas de compromis puisqu'il gère comme un chef le MathML pour les formules mathématiques et affiche même les images !
Attention toutefois, le rendu dépendra de votre terminal. Par exemple sur Kitty, Ghostty ou iTerm2 c'est le top ! Mais sur Alacritty ce sera un peu moins bien, quand au Terminal.app de macOS qui ne supporte pas bien les protocoles graphiques, je vous laisse imaginer la lose.
Côté navigation, c'est du classique avec des raccourcis inspirés de Vim (hjkl pour les intimes ^^) afin de scroller, changer de chapitre ou chercher dans le texte. L'outil gère aussi les signets automatiques ce qui est pratique quand on n'a pas le temps de finir "Guerre et Paix" d'une traite et vous pouvez même ajouter des notes directement dans le texte pour ne rien oublier.
Y'a aussi un "zen mode" (Ctrl + z) pour ceux qui ont du mal à se concentrer, même si je trouve qu'il est un peu inutile, et comme c'est codé en Rust, c'est fluide de fou !
Maintenant, pour l'installer, c'est facile... Sous macOS, un coup de Brew :
brew install bookokrat
Sinon, via Cargo :
cargo install bookokrat
Voilà si vous cherchez un moyen propre de lire vos ebooks sans quitter votre shell, Bookokrat fera grave bien le taff. Puis je trouve que ça redonne un petit goût de
nostalgie façon Edit
à la lecture et c'est pas pour me déplaire.
Vous avez des dossiers sensibles que vous aimeriez chiffrer avant de les balancer sur un cloud ou un disque externe ? Ça tombe bien, je vous ai trouvé un petit outil en Rust qui va vous plaire.
Obsidenc, c'est son nom, est un utilitaire de chiffrement que son créateur qualifie de "paranoid-grade". Et après avoir jeté un œil au code source, je peux vous dire que c'est pas du marketing puisque ce truc archive votre répertoire en TAR et le chiffre avec XChaCha20-Poly1305, un
algorithme AEAD
moderne qui assure à la fois la confidentialité et l'intégrité de vos données.
Côté dérivation de clé, ça utilise Argon2id conforme à la RFC 9106. Pour les non-initiés, Argon2id c'est l'algo qui a gagné le Password Hashing Competition et qui est spécifiquement conçu pour résister aux attaques par GPU et circuits spécialisés (ASIC). L'outil adapte automatiquement les paramètres à votre machine en utilisant 85% de votre RAM disponible (entre 512 Mo minimum et 2 Go maximum) afin de rendre le brute-force astronomiquement coûteux. Et si vous avez moins de RAM dispo, il compense en augmentant le nombre d'itérations.
C'est du code Rust bien propre qui utilise les bibliothèques cryptographiques RustCrypto (bien auditées par la communauté) et le code implémente des bonnes pratiques de sécurité comme le memory locking (mlock sur Unix, VirtualLock sur Windows) pour éviter que vos clés se retrouvent dans le swap, et le
zeroize
pour effacer la mémoire sensible après utilisation.
Vous compilez ça avec cargo build --release, puis pour chiffrer un dossier :
Le mot de passe doit faire minimum 20 caractères (pas de négociation possible, déso pas déso) et vous devez le confirmer deux fois. Vous pouvez aussi ajouter un fichier de clé en plus du mot de passe pour du 2FA old-school.
L'outil a aussi quelques protections défensives sympas. Par exemple, il refuse les symlinks (vecteur d'attaque classique), limite le nombre de fichiers à 1 million et la longueur des chemins à 4096 caractères pour éviter les zip bombs. Sur les systèmes Unix, il vérifie même que votre fichier de clé n'est pas lisible par tout le monde (chmod 600 obligatoire).
Cet outil part du principe qu'un attaquant peut avoir accès à votre fichier chiffré et dispose de temps illimité pour tenter de le casser, du coup, tout est conçu pour rendre l'attaque offline la plus douloureuse possible.
Bref, si vous cherchez un moyen de sauvegarder vos dossiers sensibles de manière vraiment sécurisée avant de les balancer sur un cloud ou un disque externe,
obsidenc
fait le taf et en plus c'est open source (MIT/Apache 2.0) !
J’sais pas si vous lisez des mangas de temps en temps mais si vous êtes à jour, vous avez peut-être envie de lire la suite, mais malheureusement, souvent c’est pas encore traduit en français. Alors vous 3 solutions… soit vous patientez, soit vous apprenez le japonais… Soit, soit…
Soit vous installez Koharu, un logiciel de traduction de mangas propulsé par IA. C’est hyper bien foutu puisque ça détecte automatiquement les bulles de dialogue, ça lit le texte japonais via OCR, ça efface proprement le texte original avec de l’inpainting, ça traduit le tout avec un modèle de langage aux petits oignons et ça replaque le texte traduit dans la bubulle.
Tout ça en quelques clics, évidemment, sinon ce serait pas drôle !
Le projet est développé par
mayocream
et c’est du 100% Rust avec une interface Tauri. Pour ceux qui ne connaissent pas,
Tauri
c’est un peu l’équivalent d’Electron mais en plus léger et plus performant. Le moteur d’inférence utilisé, c’est
Candle
de HuggingFace, ce qui permet de faire tourner des modèles IA localement sans avoir besoin d’envoyer vos data dans le cloud.
Côté modèles, Koharu embarque plusieurs outils spécialisés. Pour la vision par ordinateur, on a
comic-text-detector
pour repérer les bulles (avec
le petit modèle custom de mayocream
),
manga-ocr
pour la reconnaissance de caractères et
AnimeMangaInpainting
pour effacer proprement le texte original. Pour la traduction, c’est vntl-llama3-8b-v2 ou Sakura-GalTransl-7B-v3.7 qui s’y collent et c’est sans galère puisque ces modèles se téléchargent automatiquement au premier lancement.
Et Koharu supporte évidemment l’accélération GPU donc si vous avez une carte NVIDIA, vous pouvez profiter de CUDA et pour les fans d’Apple Silicon avec un M1 à M5, Metal est également supporté. Bref, ça dépote et le logiciel gère aussi la mise en page verticale pour les langues CJK (Chinois, Japonais, Coréen), ce qui est plutôt indispensable quand on traduit des mangas.
Les sources sont dispo sur
Github
et y’a des binaires pour Windows et macOS directement sur la page des releases. Pour les autres plateformes, faudra compiler vous-même avec Rust et Bun.
Voilà, si vous rêvez de traduire ce manga obscur qui dort au fond d’un forum japonais, Koharu va vous plaire. Et un grand merci à Lorenper pour l’info !
Marre de passer par WeTransfer ou Google Drive pour envoyer un fichier à quelqu’un ? Bah ouais, faut se créer des comptes, attendre que ça upload sur un serveur tiers, et puis est ce que vous savez ce qu’ils font réellement de vos données ?
Ça tombe bien alors car
AltSendme
est fait pour vous ! C’est un fork
C’est une application desktop open source (sous licence AGPL-3.0) qui permet d’envoyer des fichiers directement d’un ordi à un autre en peer-to-peer. Pas de serveur intermédiaire, pas de stockage cloud, pas de compte à avoir, vous déposez simple votre fichier sur l’app et celle-ci génère un code de partage (un “ticket”) que vous devez ensuite envoyer à votre destinataire par le moyen de votre choix (mail, SMS, chat, pigeon voyageur…), et le transfert se fait en direct !
Le truc cool avec AltSendme c’est que ça utilise,
tout comme SendMe
, la techno
Iroh
pour le networking P2P avec du QUIC + TLS 1.3 pour le chiffrement. Donc vos fichiers sont chiffrés de bout en bout et ne transitent jamais par un serveur tiers. Et si la connexion directe entre les deux machines n’est pas possible (becoz du NAT un peu capricieux), l’app fait du hole punching automatique et peut basculer sur un relais chiffré en fallback.
Côté performances, ça peut monter jusqu’à 4 Gbps en théorie ce qui est pas mal pour du P2P. Et si votre connexion saute en plein transfert, pas de panique les amis puisque les téléchargements peuvent reprendre là où ils en étaient.
L’application est dispo sur Windows, macOS et Linux et le code est sur
GitHub
. Y’a même une interopérabilité possible avec l’outil CLI sendme pour ceux qui préfèrent le terminal. Notez aussi que le dev accepte les dons via Buy Me a Coffee ou GitHub Sponsors si vous voulez soutenir le projet.
Bref, si vous cherchez une alternative à WeTransfer qui respecte votre vie privée et qui ne fait pas transiter vos fichiers par des vilains serveurs d’américains, AltSendme vaut le détour !
Depuis quelques années, dès qu’un outil open source devient un peu vieux ou bancal, un dev Rust débarque et dit “Attendez mes petits poulets, je vais vous refaire ça au propre”. Ça a commencé avec les outils système comme
ripgrep
qui a remplacé grep, puis
fd
qui a ringardisé find, et maintenant ça arrive dans l’impression 3D.
Hé oui,
MicroCAD
est la preuve que même OpenSCAD, ce vénérable langage de modélisation paramétrique qui existe depuis 2010, n’échappe pas à cette mode de réécriture systématique en Rust.
OpenSCAD, tout le monde le connaît dans le monde des makers et de l’impression 3D car c’est un super IDE / langage qui permet de programmer ses modèles 3D plutôt que de les dessiner à la souris dans Blender. Vous écrivez quelques lignes de code pour générer un engrenage, une brique de Lego, ou n’importe quelle forme géométrique complexe, et en théorie, c’est génial, sauf qu’en pratique, la syntaxe a vachement vieilli, les performances sur les gros modèles sont bofs, et l’écosystème est un peu figé dans la pâté.
Bref, OpenSCAD a 15 ans maintenant, et ça se sent. (Un peu comme moi et mes 21 ans de Korben… Snif la poussière ^^)
C’est pourquoi une équipe de développeurs allemands a décidé de tout reprendre de zéro. Le projet s’appelle µcad (prononcez ça microcad), et c’est la même philosophie qu’OpenSCAD, mais avec une syntaxe moderne inspirée de Rust, avec évidemment de meilleures performances, et une architecture plus solide. Vous pouvez donc toujours composer des formes basiques pour créer des géométries complexes, faire des opérations booléennes, et exporter vos modèles en .STL pour l’impression 3D ou en SVG pour la découpe laser.
L’installation est hyper simple si vous avez Rust sur votre machine :
`cargo install microcad`
Ensuite vous lancez
`microcadexport./examples/bricks/brick.µcad`
et vous avez votre fichier STL prêt à imprimer.
Les
exemples sur leur site
incluent un spirographe, des briques Lego, et des engrenages donc rien de révolutionnaire, mais c’est le hello world de la modélisation 3D.
MicroCAD est soutenu par le
Prototype Fund
, un programme qui finance 25 à 30 projets open source tous les six mois. C’est un fond géré par l’Open Knowledge Foundation Deutschland et financé par le ministère fédéral de l’Éducation et de la Recherche allemand. C’est donc une vision stratégique à long terme de la souveraineté numérique de l’Allemagne par l’open source.
Voilà, pendant qu’en France on subventionne des licornes et des startups qui font des apps de livraison, l’Allemagne finance tranquillement son infrastructure logicielle open source. Ils préfèrent bâtir des fondations solides plutôt que de balancer des paillettes au visage de tout le monde.
Le projet vient de sortir en
version alpha 0.2.14
, juste à temps pour leur DemoDay. A tester d’urgence donc et on verra à terme si MicroCAD arrive à remplacer OpenSCAD dans le cœur des makers (le fameux Makœur ^^).
Si vous avez déjà utilisé
Everything
sous Windows, vous savez à quel point c’est relou de ne pas avoir d’équivalent sur Mac. Spotlight c’est bien gentil, mais pour faire une recherche de fichiers précise avec des filtres avancés, c’est pas vraiment ça.
Heureusement, y’a
Cardinal
qui vient combler ce vide !
Cardinal c’est donc un outil de recherche de fichiers ultra-rapide pour macOS qui reprend la même syntaxe de recherche que ce qu’on retrouve dans Everything. Vous tapez vos critères, et pouf, les résultats apparaissent instantanément. Ce projet est développé par un certain Donough Liu, codé en Rust avec Tauri pour l’interface, et distribué, évidemment, sous licence MIT.
Alors qu’est-ce qu’on peut faire avec ?
Bah déjà, la syntaxe de recherche est hyper puissante. L’espace sert d’opérateur AND, donc si vous tapez “brouillon rapport” vous obtenez tous les fichiers qui contiennent les deux mots. Vous pouvez aussi filtrer par extension avec “*.pdf briefing*” pour ne voir que les PDF, ou par taille avec “.zip size:>100MB” pour trouver les grosses archives zip.
Y’a aussi le filtre “infolder:” pour limiter la recherche à un dossier spécifique. Et si vous voulez exclure certains types de fichiers ou utiliser des regex, c’est possible aussi. Bref, y’a tout ce qui manque cruellement à Spotlight.
Et les raccourcis clavier sont bien pensés, je trouve. Cmd+Shift+Space pour afficher Cardinal depuis n’importe où (comme vous le faites avec Spotlight), Espace pour prévisualiser le fichier sélectionné avec Quick Look, Cmd+R pour afficher vos trouvailles dans le Finder, Cmd+C pour copier le chemin. Que du classique !
Pour l’installer, téléchargez le .dmg depuis les
releases GitHub
et installez le. L’app supporte aussi plusieurs langues grâce à un bouton dans la barre de statut, ce qui est top si vous préférez une interface en français.
Le seul truc à garder en tête, c’est que Cardinal doit indexer vos fichiers pour être rapide, donc la première indexation peut prendre un peu de temps selon la taille de votre disque, mais ensuite c’est instantané !
Vous avez combien de messages iMessage sur votre Mac ?
10 000 ? 50 000 ? Plus ????
Vous en avez des amis, dites moi ! Et maintenant, petite question piège : Combien de ces messages pouvez-vous réellement exploiter en dehors de l’app Messages d’Apple ?
Hé bien la réponse va vous surprendre (non) : zéro !
Hé oui, car vos conversations sont stockées dans une
base SQLite quelque part sur votre disque dur
, mais Apple a fait en sorte que vous ne puissiez rien en faire. Les pièces jointes sont planqués dans des dossiers obscurs avec des noms aléatoires, les métadonnées sont éclatées sur une quinzaine de tables, et les timestamps sont au format Apple (pas Unix). Vous pouvez donc ouvrir la base avec DB Browser si vous voulez, mais vous allez juste pleurer du sang devant votre écran et perdre votre joie de vivre.
Et le plus beau dans tout ça c’est qu’Apple ne propose AUCUN moyen d’exporter vos messages. Y’a rien. Y’a des boutons d’export pour vos photos, pour vos mails, pour vos contacts, mais pour vos SMS et iMessages, c’est podzob !
Donc si vous voulez quitter l’écosystème Apple et migrer vers Android (mais qui fait ça ??? lol), bonne chance pour récupérer ces 10 ans de conversations torrides avec Monique de la compta. Et si vous avez besoin d’archiver des échanges professionnels pour raisons légales, à part faire des centaines de captures écran ou de copier coller, j’vois pas.
Heureusement, un dev nommé
ReagentX
en a eu marre de cette situation et a créé imessage-exporter, un outil open source en Rust qui fait exactement ce qu’Apple refuse de faire à savoir vous donner accès à VOS propres données dans un format lisible et portable.
L’outil tourne sur macOS évidemment, mais aussi sur Linux et Windows. Comme ça, même si vous avez viré votre Mac depuis 3 ans, vous pouvez quand même récupérer votre ancienne base iMessage et l’exporter tranquillement depuis votre machine Ubuntu ou Windows.
Et au niveau des formats d’export, vous avez le choix entre du txt et du html. Le format html est particulièrement bien foutu parce qu’il recrée l’interface visuelle d’iMessage avec vos bulles bleues et grises, les heures d’envoi, et surtout il préserve tous les médias : photos, vidéos, audios, tout y passe. Vous vous retrouvez avec un site html statique que vous pouvez ouvrir dans n’importe quel navigateur et parcourir comme si vous étiez dans l’app Messages, sauf que là c’est rien qu’à vous et personne peut vous le reprendre (sauf le karma ^^).
Pour l’install, si vous êtes à l’aise avec Rust, hop, un simple cargo install imessage-exporter fera l’affaire. Sinon y’a un package Homebrew (brew install imessage-exporter) ou des binaires précompilés sur
la page du projet
pour Mac Intel et Apple Silicon.
Notez qu’il vous faudra aussi installer ImageMagick et ffmpeg pour la conversion des pièces jointes, mais rien de sorcier. Ensuite, côté utilisation, c’est de la ligne de commande pure et dure. Par exemple, pour exporter toutes vos conversations en html avec les médias dans votre dossier personnel, vous tapez :
imessage-exporter-fhtml-cclone
Si vous voulez exporter uniquement les conversations avec un contact spécifique, vous pouvez filtrer par numéro de téléphone :
imessage-exporter-fhtml-cclone-t"0612345678"
Et si votre base iMessage est corrompue ou que vous soupçonnez des problèmes, l’outil intègre aussi une fonction diagnostic qui va scanner la base et vous remonter les anomalies.
Et l’outil gère iMessage, RCS, SMS, MMS, les conversations de groupe, les messages formatés, les threads de réponse, les messages édités, les traductions, les sondages, les votes, et même les arrière-plans de chat custom. C’est ouf ! Et ça c’est parce que ReagentX maintient ce projet depuis des années et suit les updates Apple en temps réel, ce qui n’est franchement pas une mince affaire vu qu’Apple change régulièrement le schéma de leur base.
Normal que ce projet cartonne !
Voilà si vous tenez un minimum à vos données, allez faire un tour sur
le repo GitHub d’imessage-exporter
… çaa prend 10 minutes à installer, et vous dormirez mieux en sachant que vos échanges et autres souvenir seront conservés bien au chaud sur votre prochain backup.
Et un grand merci à Lorenper de m’avoir signalé ce projet.
TwoFace
est un outil développé par
Synacktiv
qui permet de créer des binaires Linux ayant 2 comportements bien distincts. Un comportement parfaitement inoffensif qui s’active dans 99% des cas et un comportement malveillant qui ne se déclenche que sur une machine ciblée spécifiquement pour l’occasion.
Comme ça, votre sandbox verra toujours la version “propre” parce qu’elle n’aura pas le bon UUID de partition.
D’après la doc de Synacktiv,
voici comment ça fonctionne
: Vous avez deux binaires en fait… Y’en a un qui est inoffensif et un autre malveillant. TwoFace les fusionne alors en un seul exécutable. Ainsi, au moment du build, le binaire malveillant est chiffré avec une clé dérivée depuis l’UUID des partitions disque de la machine cible. Cet UUID est unique, difficile à deviner, et stable dans le temps ce qui est parfait pour identifier une machine spécifique.
Ensuite au lancement, quand le binaire s’exécute, il extrait l’UUID du disque de la machine. Pour ce faire, il utilise HKDF (Hash-based Key Derivation Function) pour générer une clé de déchiffrement depuis cet UUID et tente de déchiffrer le binaire malveillant caché. Si le déchiffrement réussit (parce que l’UUID match), il exécute le binaire malveillant. Par contre, si ça échoue (parce que l’UUID ne correspond pas), il exécute le binaire inoffensif.
Le projet est écrit en Rust et c’est open source ! Et c’est une belle démo (PoC) d’un problème que tous ceux qui font de l’analyse de binaires ont. En effet, d’ordinaire, pour révéler le vrai comportement d’un malware on l’exécute dans une sandbox et on peut ainsi observer en toute sécurité ce qu’il fait, les fichiers qu’il crées, les connexions réseau qu’il établit etc…
Mais avec TwoFace ça casse cette façon de faire. Et c’est pareil pour les antivirus qui verront toujours la version inoffensive tant que l’UUID ne correspond pas.
Techniquement, TwoFace utilise memfd_create() pour exécuter le binaire déchiffré en mémoire, sans toucher au disque, ce qui veut dire zéro trace sur le système de fichiers. Le binaire malveillant apparaît directement en RAM, s’exécute, puis disparaît. Et si vous utilisez io_uring pour l’écriture mémoire, il n’y a même pas de trace syscall visible via strace.
Et ça, c’est la version basique car le document de Synacktiv mentionne également d’autres techniques avancées possibles comme du déchiffrement dynamique page par page du binaire ELF, des mécanismes anti-debugging, des chained loaders multi-niveaux…etc…
Le parallèle avec la
backdoor XZ Utils
backdoor est très instructif car celle-ci a failli compromettre des millions de serveurs Linux parce qu’un seul mainteneur a poussé du code malveillant dans une lib compressée. Elle a alors été découverte parce qu’un dev a remarqué un ralentissement SSH bizarre et a creusé… Et TwoFace montre qu’on peut faire encore pire sans toucher à la supply chain.
Pas besoin de corrompre un mainteneur de projet, de pousser un commit suspect chez Github. Là suffit d’écrire du code parfaitement propre, de le compilez avec TwoFace pour une machine spécifique, et de le déployez. Le code source sera alors auditable ainsi que le binaire mais l’audit ne révèlera rien parce qu’il se fera dans un environnement qui n’aura pas le bon UUID.
Après, techniquement, une défense existe. Vous pouvez par exemple détecter les appels à memfd_create(), monitorer les exécutions en mémoire, tracer les déchiffrements crypto à la volée…etc., mais ça demande du monitoring profond, avec un coût performance non-négligeable. Et ça suppose aussi que vous savez ce que vous cherchez…
Bref, si ça vous intéresse, c’est dispo sur
GitHub
!
Je suis dégoûté parce que je viens de payer un abonnement pour un logiciel qui fait exactement ça, sauf que bah là,
Handy
, c’est gratuit. L’idée derrière ce logiciel, c’est un outil de speech to text qui fonctionne uniquement en local. Pas d’abonnement, tout est gratuit, et pas de cloud… il faut juste configurer un raccourci clavier. Et ensuite vous parlez et le texte apparaît comme par magie.
A la base, l’idée de cet outil est venue d’un accident. CJ se casse le doigt et il est plâtré pendant six semaines. Du coup il lui est impossible de taper normalement. Il cherche alors des outils de transcription vocale.
Par exemple, Dragon NaturallySpeaking, mais bon, 100 balles, ça fait chier. Google Docs aussi propose ce genre de fonctionnalités, mais uniquement en ligne. Et ça envoie tout dans le cloud, donc bonjour à confidentialité. Quant à Windows Speech Recognition, c’est bugué et assez limité. Bref, toutes les alternatives qu’il a trouvées étaient soit payantes, soit nécessité une connexion permanente vers des serveurs tiers.
Alors CJ a fait ce que font les devs quand un problème les agace. Non pas aller sur Reddit pour dire de la merde random sur moi, mais plutôt coder une solution qui fonctionne super bien !
Et au lieu de la garder pour lui ou de la rendre payante lui il a décidé de tout mettre en open source avec une licence MIT.
Et ce que vous êtes en train de lire précisément maintenant, et bien je suis en train de le dicter. Et ça marche dans les emails, les formulaires web, les éditeurs de texte, peu importe. Et comme je vous le disais, toute la transcription se fait localement sur votre machine. Et tout ça grâce à quoi ? Et bien grâce à Whisper d’OpenAI, dont je vous ai déjà parlé beaucoup de fois.
Handy est codé en Rust pour la performance et la sécurité et surtout cross plateforme, c’est-à-dire qu’il marche ou Linux, macOS et Windows. Et au niveau de la config, il y a quelques options comme le choix de la langue ou le mode d’enregistrement avec le raccourci clavier, soit vous faites du push to talk, soit vous faites une écoute en continu.
Ce truc est génial aussi bien pour l’accessibilité que pour la reconnaissance vocale en elle-même qui est plutôt utile dans la vie de tous les jours. D’ailleurs, il y a plusieurs modèles IA disponibles, comme tous les modèles Whisper, mais aussi un modèle que je ne connaissais pas, qui s’appelle Parakeet et qui franchement fonctionne très bien. C’est celui que j’utilise actuellement.
Testez si ce truc fonctionne bien sur votre vieux PC mais moi en tout cas sur mon Mac de dernière génération c’est encore plus rapide que ce que j’avais avec un modèle Whisper sur mon outil payant.
Voilà, si vous cherchiez un outil de reconnaissance vocale, vous pouvez vous arrêter là parce que vous venez de trouver. Et non pas parce qu’il est parfait, mais parce que comme c’est open source, vous pouvez vous-même le rendre parfait pour vos usages (Le code est sur
GitHub
).
Merci à Lilian pour le partage de ce projet absolument génial !
Article dictée intégralement à l’aide de Handy (et corrigé manuellement pour les quelques erreurs de transcription)
Quand je bossais comme consultant y’a genre 10 000 ans, je devais tracker le temps que je passais pour chaque client dans un fichier Excel. Et ça mes amis, c’était super chiant mais nécessaire. Après peut-être que vous de votre côté, vous n’êtes pas tropfliqué mais vous vous imposez l’envoi de messages Slack stratégiques juste avant de vous déconnecter, ou vous faites partir des emails à 23h pour montrer que vous êtes un esclave acharné du capitalisme ?
Bienvenue dans l’ère du grand théâtre de la productivité.
Après quand on est freelance ou qu’on essayer de bien équilibrer son temps de travail, c’est sympa aussi de pouvoir tracker ce qu’on fait en temps réel, pour nous-même, sans forcement que personne d’autre ne regarde.
Hé bien c’est exactement ce que propose
Neura Hustle Tracker
qui est un tracker de temps open-source, écrit en Rust, qui tourne dans votre terminal et stocke TOUT en local sur votre machine dans un PostgreSQL. Comme ça, aucune donnée ne quitte votre ordinateur.
L’idée, c’est donc de reprendre le pouvoir sur vos propres données de productivité en enregistrant automatiquement les applications que vous utilisez, le temps passé sur chacune, et afficher ça sous la forme de graphiques directement dans votre terminal.
Comme ça vous verrez le temps pharamineux que vous passez sur Korben.info ou Slack au lieu de vraiment bosser. Pour l’installer, ça marche sous Windows, macOS et Linux et ça peut tourner dans un Docker.
La doc est ici.
Vous pouvez même le lancer au démarrage de l’ordi, comme ça, le tracking démarre instantanément dès que vous commencez à bosser. Par contre, n’oubliez pas de le couper quand vous voulez faire un truc en dehors des radars hein ^^.
Le projet est encore jeune, mais il évolue rapidement. Adolfo, le développeur principal, a d’ailleurs récemment ajouté des commandes pour naviguer dans l’historique complet (touches h pour history et b pour breakdown) et améliore régulièrement la qualité des visualisations.
Voilà, donc si vous en avez marre que votre productivité soit transformée en KPI pour votre manager, et que vous voulez juste comprendre comment vous passez vraiment votre temps sans avoir à rendre de comptes à personne, Neura Hustle Tracker mérite le coup d’oeil. C’est gratuit, et c’est open-source !
Vous vous souvenez de ce samedi après-midi de 1995 où vous avez modifié CONFIG.SYS pour la première fois ? Les mains moites, le coeur qui bat, parce que si vous vous plantiez, Windows ne démarrait plus. L’écran bleu (le bon vieux bleu DOS hein, pas le blue screen of death), le curseur blanc qui clignote, et cette interface minimaliste où chaque caractère comptait. MS-DOS Edit.
C’est fou ! L’équipe Windows Terminal annonce en effet qu’Edit est maintenant pré-installé dans Windows 11. Plus besoin de le télécharger donc… vous ouvrez votre terminal, vous tapez “edit”, et hop, vous y êtes.
230 kilo-octets seulement, comme à l’époque c’est chouette ! Et le truc marrant, c’est que Edit n’est pas juste un coup de comm nostalgique.
Non, Microsoft comble en réalité un vide qui dure depuis plus de 20 ans, car les versions 32-bit de Windows avaient MS-DOS Edit mais les versions 64-bit n’avaient rien ! Aucun éditeur en ligne de commande par défaut. Snif !
Ainsi, si vous vouliez modifier un fichier config en SSH, fallait forcement installer vim, nano, ou se débrouiller avec notepad.exe en mode graphique comme un sauvage.
Sauf que voilà, les terminaux reviennent en force ! Les devs passent leur vie dans WSL2, PowerShell est devenu cross-platform, et même les utilisateurs lambda doivent parfois mettre les mains dans un fichier texte via la ligne de commande. Finalement, après toutes ces années à vous prendre le chou avec “ouvrez un terminal” par ci, “lancez une commande” par là…etc., ça fait de moi un visionnaire ! ^^
Bon, bref, avoir un éditeur accessible et simple, qui ne nécessite pas un doctorat en raccourcis clavier vim, en 2025 ça a du sens ! D’ailleurs, MS-DOS Edit, dans les années 90, c’était la drogue douce qui menait aux drogues dures. On commençait par modifier AUTOEXEC.BAT pour optimiser notre RAM, parce qu’un jeu ne se lançait pas et deux ans plus tard on se retrouvait sous Linux à compiler un kernel à 3 heures du matin. Edit n’était pas juste un outil, c’était le Bifröst de la bidouille… le moment où on passait d’utilisateur à “celui qui comprend comment ça marche”.
Ce nouvel Edit
garde donc cette philosophie avec son interface minimaliste, mais rassurez-vous sous le capot c’est du moderne. C’est écrit en Rust, c’est open-source sous licence MIT, et avec des keybindings inspirés de VS Code. Par exemple Ctrl+P pour switcher entre fichiers, Ctrl+F pour chercher… etc. Il supporte même la souris et l’unicode fonctionne.
Si ça vous dit de tester, vous pouvez l’installer via winget si vous n’êtes pas sur la dernière preview de Windows 11. Un simple “winget install Microsoft.Edit” et c’est réglé. Ensuite vous tapez “edit” dans votre terminal, ou “edit fichier.txt” pour ouvrir directement un document et voilà…
Vos enfants, ceux qui grandissent avec des interfaces tactiles, des assistants vocaux, et ChatGPT partout vont peut-être faire leurs premiers pas de bidouilleurs avec le même outil que nous à l’époque… Qui sait ?
Vous savez ce moment où vous regardez votre historique Git et vous vous demandez qui est le débile qui a écrit ce code dégueulasse ?
Ah bah ouais, c’était vous il y a 3 mois ^^. Eh bien
GitType
a trouvé la meilleure des thérapies qui est de vous faire retaper tout ça, lettre par lettre, comme une punition de primaire version développeur, totalement gamifiée avec des points, un chrono, et la possibilité de mesurer à quel point vos doigts sont devenus flasques depuis que Copilot fait tout le boulot à votre place.
Le tagline du projet, c’est “Show your AI who’s boss: just you, your keyboard, and your coding sins”. Et c’est pas une blague, c’est un manifeste car pendant que Copilot, ChatGPT, Claude Code et compagnie écrivent du code à notre place, GitType vous fait faire exactement l’inverse… il vous force à retaper du code pour redevenir bon !
Et contrairement aux tests de frappes classiques comme
Ttyper
ou
tt
qui vous font taper du texte générique, GitType utilise du VRAI code source. Votre code, celui de vos repos préférés, ou des repos trending de GitHub. Comme ça, vous ne vous entraînez pas sur du “the quick brown fox jumps over the lazy dog” à la con, mais sur vos propres merdes spaghettico-syntaxiques en Rust, TypeScript, Python ou Go.
Le jeu vous propose plusieurs modes. Y’a le mode Normal pour vous échauffer tranquillement, le Time Attack quand vous voulez vous mettre la pression, et des niveaux de difficulté de Easy à Zen pour ceux qui veulent méditer en tapant du code. Le tout avec un tracking en temps réel de votre WPM (words per minute) et de votre précision. Comme ça, plus vous progressez, plus vous montez dans le ranking avec des titres de développeur qui évoluent.
GitType supporte plus de 15 langages de programmation et propose plus de 15 thèmes visuels en mode Dark ou Light, avec possibilité de personnaliser le vôtre. L’installation est simple…
Ou via Brew, ou avec un téléchargement direct de binaires. Ça prend 30 secondes chrono. Autre truc sympa aussi, vous pouvez cloner n’importe quel repo GitHub directement depuis le jeu pour vous entraîner dessus.
Comme ça, vous pourrez réaliser votre fantasme le plus humide, à savoir retaper le code de Linus Torvalds !
Cet outil va comme ça l’air de rien vous réapprendre à taper du code vous même, parce que faut bien le reconnaitre, depuis que tout le monde s’est mis au vibe coding, c’est difficile de dire à nos doigts et nos cerveaux de s’y remettre. Avec GitType, vos doigts retrouvent leurs réflexes, vous mémorisez mieux la syntaxe, vous devenez plus rapide au clavier, votre haleine redevient fraiche et vous chopez enfin des matchs sur Tinder, c’est SÛR !!
Ce projet est dispo en
open-source sous licence MIT
et franchement, vu comment nos IA nous assistent de partout, c’est pas plus mal de garder un peu de muscle mémoire au cas où…
Vous scrollez tranquillement
r/rance
à 2h du mat’ pour tuer le temps avant de dormir, vous lisez quelques posts, regardez des memes, rigolez sur un truc débile. Mais savez-vous que Reddit enregistre chaque post que vous lisez, chaque image que vous ouvrez, chaque seconde que vous passez sur chaque thread ? Et ça, ils le font même si vous n’avez pas de compte y compris si vous êtes en navigation privée.
Bienvenue dans le monde merveilleux du tracking obligatoire !
Heureusement, pour lutter contre ça, sans se priver de Reddit, il existe
Redlib
, un front-end alternatif open source, codé en Rust, qui va vous permettre de lire Reddit sans que Reddit ne sache que vous existiez. Pas d’inscription, pas de JavaScript, pas de pubs, pas de tracking. Vous remplacez juste “reddit.com” par “redlib.tiekoetter.com” dans l’URL et hop, vous avez le même contenu sans la surveillance.
D’ailleurs, petite histoire rapide pour comprendre pourquoi Redlib existe…
En 2023, Reddit a décidé de tuer toutes les apps tierces populaires comme Apollo ou BaconReader en rendant son API hors de prix. Le vrai objectif n’était pas de monétiser l’API, mais plutôt de forcer tout le monde à passer par leur app officielle bourrée de trackers et de pubs. À cette époque, il existait Libreddit, un projet similaire à Redlib qui permettait de lire Reddit en privé mais Reddit a commencé à imposer des rate limits agressifs qui ont tué Libreddit… Projet tragiquement décédé, fin de l’histoire…
Sauf que non. Un dev a décidé de ressusciter Libreddit sous un nouveau nom : Redlib. Et là, coup de génie technique, au lieu de se connecter normalement à l’API Reddit, Redlib utilise une technique appelée OAuth token spoofing.
En gros, Redlib se fait passer pour l’application officielle Android de Reddit. Il envoie les mêmes headers HTTP, utilise les mêmes tokens d’authentification, et imite le comportement de l’app officielle. Du coup, Reddit pense que c’est son app qui fait des requêtes, et laisse tout passer sans bloquer. Alors évidemment, la première question qui vous vient surement c’est : Est ce légal ??
Et bien comme pour toutes les bonnes choses de la vie, techniquement, on est dans une “zone grise”. Mais après éthiquement parlant, vous lisez du contenu public que les gens ont posté gratuitement sur une plateforme publique, donc j’imagine que pour le concepteur de Redlib, y’a pas mort d’homme.
Donc pour utiliser Redlib, vous avez donc cette instance publique
redlib.tiekoetter.com
qui vous permet de libérer n’importe quel lien Reddit. Mais pour les plus geeks d’entre vous, ceux qui sont à fond dans l’auto-hébergement parce qu’ils ont beaucoup de temps libre (lol), vous pouvez le mettre en place chez vous également avec Docker.
Le repo GitHub
explique tout, c’est assez rapide à mettre en place.
La différence avec l’expérience Reddit normale est d’ailleurs flagrante car sur reddit.com, vous êtes bombardé de popups “Install our app”, de bannières de cookies, de pubs…etc. Le site est lourd, lent, et essaie constamment de vous pousser vers l’app mobile alors qu’au contraire, sur Redlib, c’est du contenu pur et dur. Pas de JavaScript, pas de popups, juste les threads et les commentaires. Et c’est super rapide !! Même les images passent par le serveur Redlib, donc Reddit ne voit jamais votre IP quand vous chargez une photo.
Maintenant, faut quand même savoir que Reddit n’est pas content de cette situation. Ils essaient régulièrement de bloquer les instances Redlib en bannissant des adresses IP. C’est pour cela que certaines instances publiques rencontrent parfois des erreurs du style “Failed to parse page JSON data”, mais la communauté Redlib réagit en général très vite, change d’IP, ajuste les tokens OAuth, et le service repart.
Bref, je vous conseille de tester, surtout si vous en avez marre de vous faire harceler par des messages vous incitant à installer l’app mobile.
Reddit, c’est bien mais Reddit sans surveillance, c’est mieux !
Shai, c’est un collègue développeur qui ne dort jamais, qui ne râle jamais quand vous lui demandez de déboguer votre code à 3h du matin, et qui vit littéralement dans votre terminal. C’est un outil qui s’inscrit dans la même lignée que Codex ou Claude Code et qui est 100% français puisque proposé par OVHcloud.
Terminé donc les outils qui nécessitent des interfaces graphiques lourdes ou des plugins IDE complexes puisqu’ici, tout se passe dans le terminal.
L’installation tient en une seule ligne :
curl -fsSL https://raw.githubusercontent.com/ovh/shai/main/install.sh | sh
Et en quelques secondes, vous avez un assistant IA fonctionnel, prêt à vous épauler dans vos tâches quotidiennes. Pas de configuration complexe, pas de dépendances infernales à gérer. Bien sûr, comme pour tout script téléchargé, pensez à vérifier le contenu avant exécution.
Vous l’aurez compris, SHAI ne se contente pas d’être un simple chatbot qui répond à vos questions. Il peut véritablement prendre le contrôle et exécuter des commandes, créer des fichiers, déboguer votre code, et même automatiser des workflows complets. Vous pouvez lui demander de créer un site web complet, de convertir des fichiers d’un format à l’autre, ou de corriger cette commande shell que vous n’arrivez jamais à mémoriser correctement.
La philosophie “written in Rust with love” inscrite dans le code du projet n’est pas non plus qu’une simple formule marketing car le choix de Rust garantit des performances exceptionnelles et une sécurité mémoire à toute épreuve. Avec 99,2% du code en Rust, les développeurs d’OVHcloud ont clairement misé sur la robustesse et la rapidité d’exécution. Je tiens quand même à dire qu’au cours de mes tests, j’ai quand même eu quelques plantages de l’application. Mais elle est encore jeune, donc j’espère que ça va s’améliorer.
Ce qui distingue vraiment SHAI des autres assistants IA, c’est sa capacité à fonctionner en mode “headless”. Vous pouvez simplement lui envoyer des prompts via un pipe Unix : echo "crée-moi un hello world en Python" | shai. Et rien que cette fonctionnalité ouvre des possibilités infinies pour l’automatisation et l’intégration dans des pipelines CI/CD existants.
Plus impressionnant encore, le mode “shell assistant” transforme SHAI en véritable garde du corps de votre terminal. Une fois activé, chaque fois qu’une commande échoue, SHAI intervient automatiquement pour vous proposer une correction. Plus besoin de chercher sur Stack Overflow pourquoi votre commande tar ne fonctionne pas comme prévu.
Pour réussir tout ça, il utilise par défaut Qwen3-32B mais rassurez vous, y’a moyen de changer de provider. L’aspect multi-provider est donc crucial et heureusement SHAI n’est pas verrouillé sur un seul modèle d’IA. Vous pouvez donc configurer différents providers selon vos besoins, vos préférences ou vos contraintes de confidentialité. Mais par défaut, OVHcloud propose un accès anonyme (avec limitation de débit) pour que tout le monde puisse tester l’outil sans engagement. Perso, j’ai éclaté la limite au bout de quelques minutes d’utilisation. Snif.
Lors de mes tests, j’ai aussi constaté que les commandes qu’on appelle normalement avec le “/” n’ont pas fonctionné chez moi et concernant le thème de l’interface de Shai, en fonction des couleurs de votre terminal, ça peut vite être illisible. C’est dommage mais j’imagine que ça va se bonifier avec le temps…
Voilà, avec
Shai
, OVHcloud mise clairement sur cette approche minimaliste mais puissante pour séduire les développeurs qui veulent de l’IA sans les complications habituelles et surtout qui tourne sur le sol français, dans le respect de vos données personnelles.
Ce serait pas foufou quand même si votre vieux PC sous Windows XP pouvait faire tourner des applications Rust compilées en 2025 ?
Bah c’est totalement ce que permet de faire Thunk, un outil qui réconcilie le passé et le présent pour les dev Rust qui veulent que leur app fonctionne partout, y compris sur de vieux Windows.
L’histoire commence avec ce constat simple : des millions de machines tournent encore sous Windows XP. Usines, hôpitaux, distributeurs automatiques, systèmes industriels… Ces dinosaures refusent de mourir, principalement parce qu’ils font tourner des logiciels critiques impossibles à migrer. Du coup, le souci c’est qu’il est impossible de développer de nouvelles applications pour ces systèmes avec les outils modernes.
Enfin, c’était impossible avant Thunk.
Car le créateur de Thunk, connu sous le pseudo felixmaker sur GitHub, a eu une idée trop cool. Plutôt que de forcer les développeurs à utiliser de vieux compilateurs et des langages datés, pourquoi ne pas adapter les outils modernes pour qu’ils produisent du code compatible avec les anciens systèmes ?
Son astuce repose sur deux bibliothèques chinoises méconnues :
VC-LTL5
et
YY-Thunks
. La première, VC-LTL5, fait quelque chose de très utile puisqu’au lieu d’embarquer toutes les dépendances runtime dans votre exécutable (ce qui le rend énorme), elle se branche directement sur les DLL système de Windows comme msvcrt.dll ou ucrtbase.dll. Du coup, vos binaires perdent entre 30 et 50% de leur taille.
La seconde bibliothèque, YY-Thunks, c’est la MacGyver des API Windows. Quand votre application appelle une fonction qui n’existe pas sur Windows XP (comme GetTickCount64 par exemple), YY-Thunks intercepte l’appel et propose une alternative. Comme ça, si la fonction existe, elle l’utilise. Sinon, elle improvise avec ce qui est disponible. C’est du bricolage, certes mais c’est intelligent et ça fonctionne vraiment bien.
L’atout dans la manche de Thunk c’est donc sa simplicité d’utilisation. Il est juste disponible sous 2 formes. Soit en ligne de commande, soit comme dépendance dans votre projet.
Ensuite, pour compiler une application Rust pour Windows XP, trois lignes suffisent :
cargo new build_for_xp
cd build_for_xp
thunk --os xp --arch x86 -- --release
Et voilà, votre application moderne tournera sans souci sur une machine de 2001. C’est presque de la magie noire, sauf que c’est documenté et surtout open source. Et vous savez comme j’aime l’open source !
Bien sûr,
felixmaker prévient dans sa documentation
: “USE AT YOUR OWN RISK!” en majuscules car il n’y a aucune garantie que tout fonctionne. Certaines fonctionnalités modernes peuvent rester inaccessibles, et les performances peuvent varier d’une machine à l’autre et d’un programme à l’autre. Mais pour beaucoup de cas d’usage, notamment dans l’industrie où la stabilité prime sur les dernières nouveautés, c’est un compromis, je trouve, acceptable.
L’outil supporte surtout une impressionnante gamme de systèmes : Windows XP (x86 et x64), Vista, Windows 7, 8 et même Windows 10. Oui, vous pouvez optimiser vos applications Windows 10 pour qu’elles soient plus légères ce qui est particulièrement intéressant pour les applications embarquées ou tous les systèmes avec peu de ressources.
Bref, Thunk répond à un réel besoin notamment des entreprises. C’est aussi pour ça que je vous en parle, parce que j’imagine que dans vos entreprises, vous avez peut-être des vieux bazars que vous aimeriez faire évoluer sans tout péter. Donc c’est l’occasion de faire du code propre qui tournera sous XP, Vista et j’en passe. Et pour les copains passionnés de rétrocomputing, c’est aussi l’occasion de créer des applications modernes pour vos machines vintage
Maintenant pour l’installer, il vous faudra Rust :
cargo install thunk-cli
pour la version ligne de commande, ou
cargo add thunk-rs --build
pour l’intégrer sous forme de lib dans vos projets. Il vous faudra aussi télécharger les binaires de VC-LTL5 et YY-Thunks et configurer quelques variables d’environnement, mais la documentation explique tout clairement.
Voilà, je trouve ça plutôt cool que Rust, un langage créé en 2010, puisse maintenant produire du code pour un système d’exploitation sorti en 2001. C’est un genre de pont temporel qui défie la logique habituelle de l’obsolescence programmée.
En ce moment, les développeurs s’extasiaient sur un truc appelé Jujutsu, ou “jj” pour les intimes. Au début, j’ai cru à une énième tentative de réinventer la roue puis j’ai creusé, et j’ai compris pourquoi ça fait autant parler.
Vous connaissez cette frustration avec Git ? Quand vous galérez avec l’index, que vous oubliez de stash vos modifs avant de changer de branche, ou que vous priez pour ne pas foirer votre rebase ? Eh bien, Martin von Zweigbergk, ingénieur chez Google et ancien contributeur Mercurial, a décidé qu’on méritait mieux.
Du coup, il a créé Jujutsu, un système de contrôle de version qui garde tous les avantages de Git en supprimant ses complexités.
Le principe de Jujutsu tient en une phrase : votre répertoire de travail EST un commit. Poh Poh Poh !!
Pour installer jj, vous avez plusieurs options selon votre OS. Sur macOS avec Homebrew :
brew install jj
Sur Linux, utilisez le gestionnaire de paquets de votre distribution ou installez via Cargo :
# Via Cargo (nécessite Rust)
cargo install --locked jj
# Sur Arch Linux
pacman -S jujutsu
# Sur NixOS
nix-env -iA nixpkgs.jujutsu
Sur Windows, utilisez Winget ou Scoop :
# Via Winget
winget install --id martinvonz.jj
# Via Scoop
scoop bucket add extras
scoop install jujutsu
Une fois installé, configurez votre identité (comme avec Git) :
jj config set --user user.name "Votre Nom"
jj config set --user user.email "vous@example.com"
Premiers pas avec Jujutsu
Pour initialiser un nouveau repo jj ou coexister avec un repo Git existant :
# Créer un nouveau repo jj
jj git init myproject
# Coexister avec un repo Git existant
cd existing-git-repo
jj git init --git-repo=.
# Cloner un repo Git avec jj
jj git clone https://github.com/user/repo.git
Concrètement, ça change tout. Plus besoin de git add, plus de git stash avant de changer de contexte, plus de commits temporaires pour sauvegarder votre travail en cours. Jujutsu traite votre copie de travail comme n’importe quel autre commit dans l’historique, ce qui simplifie drastiquement le modèle mental.
Voici les commandes de base pour travailler avec jj :
# Voir l'état actuel (équivalent de git status + git log)
jj st
jj log
# Créer une nouvelle branche de travail
jj new -m "Début de ma nouvelle feature"
# Modifier des fichiers (pas besoin de git add !)
echo "Hello Jujutsu" > README.md
# Les changements sont automatiquement suivis
# Voir les modifications
jj diff
# Créer un nouveau commit basé sur le précédent
jj new -m "Ajout de la documentation"
# Revenir au commit précédent
jj edit @-
# Naviguer dans l'historique
jj edit <change-id></change-id>
Gestion des conflits façon Jujutsu
Le système gère aussi les conflits différemment car là où Git vous force à résoudre immédiatement,
jj peut sauvegarder les conflits directement dans l’arbre de commits
, sous forme de représentation logique plutôt que de marqueurs textuels. Vous pouvez donc reporter la résolution et vous en occuper quand vous avez le temps. Une fois résolu, jj propage automatiquement la solution aux commits descendants.
# Merger deux branches (les conflits sont sauvegardés si présents)
jj new branch1 branch2
# Voir les conflits
jj st
# Les conflits sont stockés dans le commit, vous pouvez continuer à travailler
jj new -m "Travail sur autre chose pendant que le conflit existe"
# Revenir résoudre le conflit plus tard
jj edit <conflict-commit-id>
# Après résolution manuelle
jj squash # Pour intégrer la résolution</conflict-commit-id>
Manipulation de l’historique
L’outil brille aussi par sa puissance d’annulation. L’operation log dépasse largement les reflogs de Git en gardant une trace atomique de toutes les modifications de références simultanément. Comme ça, vous pouvez expérimenter sans crainte, sachant qu’un simple jj undo peut rattraper n’importe quelle erreur.
# Voir l'historique des opérations
jj op log
# Annuler la dernière opération
jj undo
# Revenir à un état précédent spécifique
jj op restore <operation-id>
# Réorganiser des commits (équivalent de rebase interactif)
jj rebase -s <source> -d <destination>
# Éditer un commit ancien
jj edit <change-id>
# Faire vos modifications
jj squash # Pour intégrer dans le commit actuel
# Split un commit en plusieurs
jj split</change-id></destination></operation-id>
Workflow quotidien avec Jujutsu
Voici un exemple de workflow typique pour une journée de développement :
# Commencer une nouvelle feature
jj new main -m "feat: ajout authentification OAuth"
# Travailler sur les fichiers
vim auth.js
vim config.js
# Pas besoin de git add ! Les changements sont auto-trackés
jj diff # Voir ce qui a changé
# Créer un checkpoint pour continuer
jj new -m "wip: OAuth provider setup"
# Oh, un bug urgent à fix sur main !
# Pas besoin de stash, on switch directement
jj new main -m "fix: correction crash login"
# Fix le bug
vim login.js
# Revenir à notre feature OAuth
jj edit @- # Revient au commit précédent
# Finaliser la feature
jj describe -m "feat: authentification OAuth complète"
# Pusher vers Git
jj git push
Intégration avec Git
Côté compatibilité, c’est du 100% Git. Jujutsu utilise les dépôts Git comme backend de stockage, ce qui signifie que vos collègues peuvent continuer avec Git classique sans même savoir que vous utilisez jj. Et si vous changez d’avis, supprimez juste le dossier .jj et tout redevient normal.
# Synchroniser avec le remote Gitjjgitfetch# Pusher vos changementsjjgitpush# Créer une branche Git depuis un change jjjjbranchcreatema-featurejjgitpush--branchma-feature# Importer les changements depuis Gitjjgitimport# Exporter vers Git (automatique généralement)jjgitexport
Commandes avancées utiles
Selon les retours d’utilisateurs
, même les experts Git qui maîtrisent parfaitement les rebases complexes découvrent qu’ils n’ont plus peur de manipuler l’historique. Réordonner des commits, corriger une modification ancienne, jongler avec plusieurs branches non mergées… tout devient trivial avec jj.
# Voir l'historique en mode graphique
jj log --graph
# Chercher dans l'historique
jj log -r 'description(regex:"fix.*bug")'
# Travailler avec plusieurs parents (merge commits)
jj new parent1 parent2 parent3
# Abandonner des changements locaux
jj abandon <change-id>
# Dupliquer un commit ailleurs
jj duplicate <change-id> -d <destination>
# Voir les changements entre deux commits
jj diff -r <from> -r <to>
# Créer un alias pour une commande fréquente
jj config set --user alias.l 'log --graph -r "ancestors(., 10)"'
jj l # Utilise l'alias</to></from></destination></change-id></change-id>
Configuration et personnalisation
Pour personnaliser jj selon vos besoins :
# Définir votre éditeur préféré
jj config set --user ui.editor "code --wait"
# Activer les couleurs dans le terminal
jj config set --user ui.color "always"
# Configurer le format de log par défaut
jj config set --user ui.default-revset "@ | ancestors(@, 10)"
# Voir toute la configuration
jj config list --user
# Éditer directement le fichier de config
jj config edit --user
Le projet évolue rapidement et l’équipe travaille sur plusieurs backends, y compris un natif qui pourrait dépasser Git en performance sur de gros dépôts.
Évidemment, Jujutsu reste expérimental. L’écosystème est plus petit, les intégrations IDE limitées (bien qu’il y ait déjà des extensions VSCode et Vim), et la terminologie différente demande un temps d’adaptation. Mais pour ceux qui cherchent une approche plus intuitive du contrôle de version, ça vaut franchement le détour.
Pour aller plus loin, je vous conseille de parcourir le
tutoriel officiel
qui couvre des cas d’usage plus avancés, ou de rejoindre le
Discord de la communauté
où les développeurs sont très actifs et répondent aux questions.
Bref, vous l’aurez compris,
jj ne remplace pas Git dans l’immédiat
. Il le sublime en gardant la compatibilité totale. C’est une approche intelligente qui permet d’adopter progressivement un workflow plus fluide sans perturber les équipes de dev.
Vous la connaissez cette fatigue de quand vous lancez votre serveur de dev et que ce satané message d’erreur EADDRINUSE vous annonce que le port 3000 est déjà utilisé ? Et bien moi oui, et visiblement je ne suis pas le seul puiqu’un développeur de talent a décidé que c’était la goutte d’eau et a créé Port Kill, une petite app macOS qui vit tranquillement dans votre barre de menu et qui surveille les ports ouverts comme le vigile de Franprix vous surveille.
Comme ça, au lieu de jouer au jeu du chat et de la souris avec lsof, netstat et kill dans votre terminal, Port Kill scanne automatiquement tous les ports entre 2000 et 6000 toutes les 5 secondes et vous dit ce qui est ouvert. Alors pourquoi cette plage ? Hé bien parce que c’est là que la plupart d’entre nous faisons tourner nos serveurs de développement. React sur 3000, Vue sur 8080, votre API custom sur 5000… Vous voyez le tableau.
Ce qui est sympa avec Port Kill, c’est l’interface. L’icône dans la barre de menu change de couleur selon le nombre de processus détectés. Vert quand tout est clean, rouge quand vous avez entre 1 et 9 processus qui traînent, et orange quand ça part en cacahuète avec plus de 10 processus. Un clic sur l’icône et vous avez la liste complète avec la possibilité de tuer chaque processus individuellement ou de faire table rase d’un coup.
Techniquement, c’est du solide puisque c’est écrit en Rust (hé oui parce qu’en 2025, si c’est pas du Rust, c’est has-been), l’app utilise les commandes système lsof pour détecter les processus. Et la stratégie de kill de l’outil est plutôt intelligente puisqu’il fait d’abord un SIGTERM poli pour demander gentiment au processus de se barrer, et si au bout de 500ms ce dernier fait le têtu, PAF, un SIGKILL dans les dents. C’est la méthode douce-ferme, comme quand vous demandez à votre chat de descendre du clavier.
Le contexte, c’est qu’on a tous galéré avec ça.
L’erreur EADDRINUSE
est un classique du dev web. Vous fermez mal votre serveur avec Ctrl+C, ou pire, vous fermez juste la fenêtre du terminal, et hop, le processus continue de tourner en arrière-plan comme un zombie. Sur macOS, c’est encore plus vicieux depuis Monterey avec AirPlay qui squatte le port 5000 par défaut.
Il existe d’autres solutions, bien sûr. Par exemple,
Killport
est autre un outil en ligne de commande cross-platform écrit aussi en Rust qui fait un job similaire.
kill-my-port
est un package npm qui fait la même chose. Mais ces outils nécessitent de passer par le terminal à chaque fois. Port Kill, lui, est toujours là, discret dans votre barre de menu, prêt à dégainer.
L’installation est simple : vous clonez le repo GitHub, un petit cargo build --release si vous avez Rust installé, et vous lancez avec ./run.sh. L’app tourne en tâche de fond, consomme quasi rien en ressources, et met à jour son menu contextuel toutes les 3 secondes. Pas de fenêtre principale, pas de configuration compliquée, juste l’essentiel.
Pour les puristes du terminal, oui, vous pouvez toujours faire lsof -ti:3000 | xargs kill -9. Mais franchement, avoir une interface graphique pour ce genre de tâche répétitive, c’est pas du luxe. Surtout quand vous jonglez entre plusieurs projets et que vous ne vous rappelez plus quel port utilise quoi.
Le seul bémol, c’est que c’est limité à macOS pour l’instant donc les développeurs sur Linux et Windows devront se contenter des alternatives en CLI. Mais bon, vu que le code est open source, rien n’empêche quelqu’un de motivé de faire un portage.
Voilà, donc si comme moi vous en avez marre de cette danse répétitive pour trouver et tuer le processus qui squatte votre port,
Port Kill
mérite que vous y jetiez un oeil.
Si comme moi, vous jonglez avec une dizaine de serveurs SSH différents et que votre fichier ~/.ssh/config ressemble à un roman de Marcel Proust, je vous ai trouvé un petit outil bien sympa qui pourrait vous faciliter grandement la vie. Ça s’appelle SSH-List et c’est un gestionnaire de connexions SSH codé en Rust et équipé d’une jolie une interface TUI (Text User Interface) plutôt bien pensée.
Ce qui me plaît avec SSH-List, c’est sa philosophie minimaliste car contrairement à certains mastodontes comme
Termius
,
Tabby
ou
SecureCRT
qui essaient de tout faire, lui reste focus sur l’essentiel, à savoir gérer vos connexions SSH, point. Et pour beaucoup d’entre nous qui passons notre vie dans le terminal au détriment de notre famille, c’est exactement ce qu’il nous faut.
L’outil a été développé par Akinoiro et propose toutes les fonctionnalités de base dont vous avez besoin telles que ajouter, éditer, copier et trier vos connexions SSH. Vous pouvez même définir des options SSH personnalisées et exécuter des commandes directement sur vos hôtes distants. Et cerise sur le gâteau, il peut importer automatiquement vos hôtes existants depuis votre fichier ~/.ssh/config.
Pratique pour migrer en douceur.
Un point sécurité qui mérite d’être souligné c’est que SSH-List ne stocke aucun mot de passe. L’outil vous encourage même à utiliser des clés SSH pour l’authentification, ce qui est de toute façon la bonne pratique à adopter en 2025. Toute votre configuration est sauvegardée dans un simple fichier JSON ici ~/.ssh/ssh-list.json, donc vous gardez le contrôle total sur vos données.
Maintenant, pour l’installation, vous avez l’embarras du choix. Si vous êtes sur Arch Linux, un petit paru -S ssh-list via l’AUR et c’est réglé. Sur Ubuntu ou Linux Mint, il y a un PPA dédié :
Pour les puristes ou ceux sur d’autres distributions, vous pouvez l’installer via Cargo (le gestionnaire de paquets Rust) avec un simple cargo install ssh-list, ou compiler directement depuis les sources si vous êtes du genre à aimer avoir la main sur tout.
L’interface TUI est vraiment intuitive. Vous naviguez dans votre liste de connexions avec les flèches, vous appuyez sur Entrée pour vous connecter, et vous avez des raccourcis clavier pour toutes les actions courantes. C’est simple, efficace, et ça reste dans l’esprit terminal qu’on aime tant.
Ce qui différencie SSH-List des autres gestionnaires de connexions SSH disponibles, c’est justement cette approche sans chichi. Pas de fonctionnalités inutiles, pas d’interface graphique lourde, juste ce qu’il faut pour bosser efficacement. C’est un peu l’antithèse de solutions comme
MobaXterm
ou
mRemoteNG
qui essaient de gérer tous les protocoles possibles et imaginables.
Si vous cherchez une alternative légère à des outils comme
sshs
ou sgh (qui font à peu près la même chose mais avec des approches différentes), SSH-List mérite également le détour et le fait qu’il soit écrit en Rust garantit des performances au top et une utilisation mémoire minimale. Deux points non négligeables quand on passe sa journée avec 50 onglets de terminal ouverts.
Alors non, SSH-List ne va pas changer drastiquement votre façon de travailler, mais il va clairement la simplifier.
Vous recevez un fichier Word et votre premier réflexe, en bon libriste, c’est de lancer LibreOffice qui met 30 minutes à démarrer, juste pour lire trois paragraphes. Ou pire, vous êtes en SSH sur un serveur et là, c’est le drame total, impossible de lire un doc Word là bas. Hé bien ce bon Ben Greenwell en a eu marre de cette galère et a créé doxx, un outil écrit en Rust qui affiche vos .docx directement dans le terminal.
Ce concept m’a rappelé
Glow
, vous savez, ce magnifique renderer Markdown pour terminal créé par l’équipe de Charm, sauf qu’ici, on s’attaque à un format bien plus casse-pieds : les fichiers Word.
Doxx gère donc non seulement le texte formaté, mais aussi les tableaux avec de jolies bordures Unicode, les listes, et même les images si votre terminal le supporte (Kitty, iTerm2, WezTerm). Et comme c’est écrit en Rust, il parse le XML des fichiers .docx en un clin d’œil.
Pour utiliser l’outil, rien de plus simple :
doxx rapport.docx
Et boom, votre document s’affiche. Vous cherchez quelque chose ?
doxx contrat.docx --search "paiement"
Et il vous surligne toutes les occurrences. Il peut aussi exporter vers d’autres formats comme le Markdown, le CSV pour les tableaux, le JSON pour les devs, ou du plain text pour les puristes.
Pour l’installer, si vous êtes sur macOS avec Homebrew, c’est
brew install doxx
Et pour les rustacés :
cargo install doxx
Les utilisateurs d’Arch ont leur paquet AUR, et il y a même une option Nix et Conda. Bref, peu importe votre setup, vous devriez pouvoir l’installer.
Alors comment ce truc fonctionne pour afficher le format de Microsoft dans le terminal. Et bien c’est simple vous allez voir. En fait, les fichiers .docx sont des archives ZIP contenant du XML. Donc techniquement, vous pourriez les dézipper et parser le XML vous-même avec sed ou awk. Mais qui a envie de faire ça ?
C’est pourquoi doxx utilise la bibliothèque docx-rs pour le parsing, ratatui pour l’interface terminal interactive, et viuer pour l’affichage des images. Bref, c’est solide. Il y a même déjà un port en Go créé par keskinonur qui maintient la parité des fonctionnalités.
Alors oui,
Doxx
ce n’est pas un éditeur mais juste un viewer mais je trouve quand même que c’est bien pratique ! Donc si vous en avez marre de lancer des applications lourdes juste pour consulter un fichier Word, cet outil mérite clairement le détour.
Vous connaissez Rust, ce langage de programmation dont tout le monde dit le plus grand bien ? Mais si, c’est celui qui est censé révolutionner la sécurité informatique grâce à sa gestion ultra-safe de la mémoire ?
Bah figurez-vous que les pirates informatiques l’ont aussi compris, et ils s’en servent maintenant pour créer des malwares encore plus vicieux…
Quand Mozilla a pondu Rust y’a quelques années, l’idée était géniale : créer un langage qui éliminerait enfin tous ces bugs de corruption mémoire qui pourrissent la vie des développeurs depuis des décennies. Fini les buffer overflows, les use-after-free et autres joyeusetés qui permettent aux pirates de prendre le contrôle de nos systèmes. En théorie, c’était parfait…
Bon, accrochez-vous bien parce que ce que je vais vous raconter là, c’est du lourd. Des chercheurs britanniques viennent de lancer un projet complètement dingue : créer un génome humain à partir de rien. Genre vraiment à partir de zéro, molécule par molécule. Le truc s’appelle SynHG (Synthetic Human Genome Project) et ils viennent de recevoir 11,7 millions de dollars du Wellcome Trust pour démarrer.
Alors oui, je sais ce que vous pensez. On dirait le début d’un film de science-fiction qui finit mal. Et franchement, vous n’avez pas totalement tort de flipper un peu car jusqu’à maintenant, personne n’osait vraiment se lancer là-dedans à cause des risques évidents : bébés sur mesure, modifications génétiques hasardeuses pour les générations futures, tout ça tout ça.
Si votre machine rame comme un vieil escargot devant une commission d’enquête au sujet de l’affaire Bétharram, alors j’ai un super outil pour vous. Ça s’appelle NeoHTop et ça permet de visualiser l’ensemble des processus qui tournent sur votre système ainsi que les ressources disponibles, tout ça au travers d’une interface moderne, jolie, et surtout super rapide puisque c’est codé en Rust !
Donc si vous en avez marre des interfaces en mode années 90 de top ou htop, ou si le Moniteur d’activité de macOS vous donne envie de pleurer à chaque fois que vous devez trouver quel processus bouffe toute votre RAM, NeoHtop va vous réconcilier avec le monitoring système.
Chrome c’est le navigateur dont je ne voudrais même pas sur mon ordinateur tellement il est pourri comparé à Firefox alors imaginez ma surprise quand j’ai appris qu’OpenAI voulait racheter cette bouze ! Et pas n’importe comment !! Ils le veulent uniquement si la justice américaine force Google à s’en séparer suite à ce fameux procès antitrust qui a déclaré Google comme détenteur d’un monopole illégal sur la recherche web.
Si vous passez vos journées, le nez dans un terminal, ce serait-y pas trop cool de pouvoir également y écouter vos livres audio et vos podcasts ?
On évite ainsi les interfaces flashy, les notifs et autres animations inutiles et on se concentre sur l’essentiel, à savoir la simplicité monacale du terminal. Bref, si vous êtes de ceux qui pensent qu’une journée sans taper une commande est une journée perdue, il faut que je vous présente Toutui !
rPGP c’est un bibliothèque Rust qui va vous permettre de jouer avec OpenPGP comme des grands ! Plus besoin de vous taper des kilomètres de C pour avoir un bout de code qui chiffre trois mails bourrés de fautes. Maintenant, on a le droit à une implémentation 100% Rust, avec une API minimaliste mais qui fait le taf. Et en plus, c’est sous licence libre, donc on peut en faire ce qu’on veut !
Le top du top, c’est que rPGP gère tout ce qu’il faut pour être compatible avec Autocrypt 1.1. Si vous ne connaissez pas, c’est une spécification pour chiffrer les mails qui est censée être facile à utiliser pour monsieur et madame tout-le-monde.
Côté technique, rPGP est mis à jour régulièrement en tant que crate pgp (oui, ils ont pensé à nous, les flemmards qui ne veulent pas taper plus de trois lettres). Et pour la partie RSA, ça vit tranquillou sous le parapluie collectif RustCrypto. Et pour les petits malins qui voudraient se la jouer elliptique, pas de panique : le support ECC est assuré par la crate Curve25519-dalek. J’adore le nom 🙂
Bon, après, faut avouer que la doc de l’API est encore un peu légère mais si vraiment vous séchez, vous pouvez toujours ouvrir une issue sur GitHub. Les devs sont sympas, ils répondent (des fois).
D’ailleurs, rPGP s’est payé un petit audit de sécurité indépendant en 2019, réalisé par les gars d’IncludeSecurity et pas de failles critiques ! Bon, quelques trucs à corriger par ci par là, mais globalement, c’est du solide. Si vous voulez jeter un œil au rapport, c’est par ici.
Notez que rPGP est utilisé en prod par Delta Chat, l’app de messagerie basée sur les mails et ça tourne nickel sur Windows, Linux, macOS, Android et iOS, en 32 et 64 bits. Que demande le peuple ?
Et si vous êtes du genre à tout vouloir faire tourner dans votre navigateur (ou dans Node.js, on ne juge pas), rPGP a même pensé à vous avec une feature wasm ! Par contre, les bindings sont encore expérimentaux, mais tout se trouve dans le repo rpgp/rpgp-js.
Allez, je vous laisse, j’ai des messages secrets à chiffrer moi !
Je sais, convivial c’est un mot bizarre pour parler d’un outil de débogage, mais celui-ci va vous faire kiffer si vous codez en Rust. Ça s’appelle BugStalker et c’est juste le debugger qu’il vous faut pour traquer les bugs vicieux dans vos programmes puisqu’il comprend toutes les subtilités du langage.
Ça veut dire qu’il sait gérer les types Rust complexes comme les vecteurs, les pointeurs intelligents et même les variables locales des threads. Et il ne fait pas que les afficher joliment, il vous permet carrément d’interagir avec !
Vous pouvez poser des breakpoints où vous voulez dans votre code, que ce soit sur une ligne précise, une fonction ou même une instruction assembleur. Et quand votre programme s’arrête sur un breakpoint, vous pouvez contrôler son exécution pas à pas, rentrer dans les fonctions ou les sauter, tout ça à la volée.
Et si vous avez besoin d’inspecter les données de votre programme, il a ce qu’il vous faut dans le ventre. Vous pouvez par exemple évaluer des expressions pour afficher les variables locales et globales, les arguments des fonctions, et même découper des tableaux ou des vecteurs pour voir ce qui se cache dedans.
L’outil vous propose deux interfaces au choix : une classique en ligne de commande, et une interface graphique en mode TUI (Text User Interface) qui claque. Et le kif, c’est que vous pouvez passer de l’une à l’autre quand vous voulez pendant une session de débogage !
Ah et j’allais oublier un truc énorme : les Oracles ! Non, je ne parle pas de la boîte qui fait des bases de données, mais d’une fonctionnalité trop stylée de BugStalker. En gros, c’est des modules qui viennent se greffer au debugger pour vous filer des infos sur des aspects spécifiques de votre programme. Par exemple, l’Oracle Tokio vous donne des insights sur le runtime Tokio si vous faites de l’asynchrone, sans avoir à modifier votre code. Trop fort !
Bon allez, je vais pas vous faire languir plus longtemps. Si vous voulez essayer, c’est tout simple, vous installez ça avec cargo :
cargo install bugstalker
et hop, vous êtes prêts à déboguer comme des pros. Et si jamais vous avez un souci avec la dépendance libunwind, y a même une version sans, mais entre nous, libunwind c’est quand même mieux.
Franchement, je « ne contracte pas » quand je vous dis que BugStalker c’est le debugger qu’il vous faut pour vos projets Rust. Avec lui, traquer les bugs c’est presque devenu un sport national, alors go sur https://github.com/godzie44/BugStalker , votre code Rust vous dira merci !
Allez, sur ce je vous laisse, j’ai un programme à déboguer moi (non, mon code est parfait).
Vous cherchez un moyen simple et efficace de sécuriser vos fichiers ?
Ça tombe bien, je vous ai déniché un petit outil bien pratique nommé File-Encryptor qui est un programme développé en Rust vous permettant de chiffrer et déchiffrer vos fichiers en un clin d’œil.
Ce programme utilise l’algorithme de chiffrement AES-GCM(Advanced Encryption Standard-Galois/Counter Mode), connu pour être très robuste, avec une clé de 256 bits. Le gros avantage de File-Encryptor, c’est qu’il supporte le chiffrement basé sur un mot de passe. Comme ça, pas besoin de vous trimballer une clé USB avec votre précieuse clé de chiffrement. Il vous suffit de choisir une phrase secrète, et hop, vos fichiers sont chiffrés en un rien de temps. Et si vous voulez rajouter une couche de sécurité supplémentaire, vous pouvez même ajouter des données d’authentification en bonus (comme votre mail par exemple).
Bref, si vous avez des documents sensibles à envoyer par email ou via une clé USB ou si vous voulez faire une sauvegarde bien sécurisée de vos précieux fichiers sur un cloud ou un disque dur externe, et bien un petit tour avec notre ami File-Encryptor et vous pouvez dormir sur vos deux oreilles.
Allez, assez parlé, je vous fais une petite démo pour que vous compreniez comment ça marche.
Première étape : générer une clé de chiffrement.
Ouvrez un terminal et tapez :
file-encryptor keygen > mykey.key
Vous pouvez aussi utiliser l’option -p ou --password pour générer une clé à partir d’un mot de passe de votre choix. Par exemple :
Notez bien que la clé AES256 générée est obtenue en hashant votre mot de passe avec l’algorithme SHA256. Bon à savoir !
Maintenant, passons au chiffrement proprement dit. Mettons que vous ayez un fichier texte nommé « secret.txt » à chiffrer. Rien de plus simple :
file-encryptor seal secret.txt < mykey.key > secret.encrypted
Et si vous voulez ajouter des données d’authentification, rajoutez l’option -a suivie d’une chaîne de caractères. Par exemple votre email :
file-encryptor seal secret.txt -a "james@bond.mi6" < mykey.key > secret.encrypted
Pour déchiffrer votre fichier, c’est tout aussi facile. Il vous suffit de taper :
file-encryptor open secret.encrypted < mykey.key > secret.decrypted.txt
Et n’oubliez pas de préciser les données d’authentification si vous en aviez utilisé lors du chiffrement :
file-encryptor open secret.encrypted -a "james@bond.mi6" < mykey.key > secret.decrypted.txt
Et voilà, le tour est joué ! Vous savez désormais comment chiffrer et déchiffrer des fichiers comme un pro avec File-Encryptor. Franchement, c’est pas sorcier et ça peut dépanner dans un tas de situations.
Vous en aviez marre des analyseurs de code Python plus lents qu’un escargot sous Xanax ? Et bien dites bonjour à pylyzer, la nouvelle star de l’analyse statique ! 🚀
Ce p’tit truc est écrit en Rust, ce qui lui permet d’être en moyenne 100 fois plus rapide que ses concurrents comme pytype ou pyright. En plus de la vitesse, pylyzer se distingue par son analyse ultra détaillée. On parle pas juste de type checking basique là, pylyzer est capable de détecter les accès hors limites à des listes ou les accès à des clés inexistantes dans des dictionnaires.
D’ailleurs, contrairement à ce qu’on pourrait penser, pylyzer n’est pas qu’un simple type checker. C’est un véritable couteau suisse de l’analyse statique ! Il fait aussi office de linter pour vous aider à garder un code propre et consistant.
Bon après, faut pas se leurrer, pylyzer a ses limites. Déjà, il suppose que votre code est potentiellement statiquement typé, donc oubliez les exec, setattr et compagnie. Ah et le typage de l’API standard de Python n’est pas complet donc vous risquez de voir des erreurs du genre « cette API n’existe pas », soyez prévenus ! Enfin, vu que le type checking de pylyzer est conservatif dans son approche, vous risquez de voir pas mal de faux positifs. Si ça vous saoule, désactivez les diagnostics, on ne vous en voudra pas (mais je vous le déconseille quand même) ! 😅
En parlant d’accès, vous n’aurez aucun mal à accéder aux rapports d’erreur de pylyzer car contrairement à certains, ils sont clairs comme de l’eau de roche ! Fini le charabia illisible, on vous montre exactement où se situe l’erreur et on vous explique le problème sans prise de tête. Et côté fonctionnalités, pylyzer ne fait pas les choses à moitié. Le support LSP est hyper riche, de la complétion au renommage en passant par plein d’autres features bien cool. Tout ça grâce à l’adaptation du serveur de langage de Erg. Et si vous voulez en profiter directement dans VSCode, pas de souci ! L’extension est dispo sur le Marketplace et hop, c’est réglé ! 😎
Maintenant vous allez me dire « OK c’est bien beau tout ça, mais pylyzer il sert à quoi comparé à Ruff par exemple ?« . Alors oui, Ruff est aussi un outil d’analyse statique pour Python écrit en Rust, mais lui se concentre uniquement sur le linting tandis que pylyzer fait du type checking et sert de serveur de langage. En gros, on ne mélange pas les torchons et les serviettes !
Si vous voulez savoir comment ça marche dans le détail, sachez que pylyzer utilise le type checker de Erg en interne, en plus de ses propres capacités de vérification de type. Il convertit l’AST Python en AST Erg avant de le passer au type checker, puis il adapte les résultats pour Python. Malin ! 😏 Par contre, Erg n’est pas un langage transpilé en Python comme on pourrait le croire, il peut tourner directement sur la machine cible.
Malgré ces petits défauts, pylyzer gère quand même un paquet de trucs : type checking sur les variables, opérateurs, fonctions, méthodes et classes, inférence de type, résolution des modules et packages, les types des collections (list, dict, tuple), une bonne partie de typing, les types génériques et variance, les type guards, le type narrowing (qui peut se faire avec is et isinstance mais pas que), les assertions de type (via typing.cast par exemple)… Bref, ça en fait des belles jambes dis donc ! 🦿
Alors vous attendez quoi pour tester ce petit bijou ?
Voici un outil qui va changer votre façon de bidouiller avec le son. Oubliez les interfaces compliquées et les logiciels gourmands, place à la ligne de commande avec Asak !
Il s’agit d’un outil audio multiplateforme, écrit dans le langage du moment, j’ai nommé Rust. Léger, rapide et diablement efficace. Le genre de truc qui vous donne envie de ressortir votre vieux Termina pour jouer.
Asak permet d’enregistrer, lire, et même appliquer des effets en temps réel, le tout via son interface en ligne de commande ou son interface utilisateur textuelle (TUI) super intuitive. Fini les clics à n’en plus finir, ici on tape des commandes comme un vrai hacker du dimanche.
Pour l’installer, rien de plus simple.
Assurez-vous d’avoir Cargo installé, puis lancez un petit
cargo install asak
et hop, vous voilà prêt à en découdre avec les ondes sonores. Si vous n’avez pas encore Cargo, pas de panique, suivez simplement le guide d’installation et vous serez paré en un rien de temps.
Ensuite, si vous voulez enregistrer un message pour votre répondeur façon années 80, c’est facile :
asak rec hello
Et si vous ne précisez pas de nom de fichier, pas de panique, Asak vous demandera gentiment de le faire, avec un nom par défaut.
Maintenant pour écouter votre chef-d’œuvre :
asak play hello.wav
Et si vous ne vous souvenez plus du nom, un petit coup d’œil dans le répertoire courant et Asak vous proposera gentiment de choisir parmi les fichiers .wav disponibles.
Mais Asak ne s’arrête pas là. Vous pouvez paramétrer l’appareil d’enregistrement et de lecture avec -r et -p, la durée avec -d, la fréquence d’échantillonnage avec -s, les canaux et le format avec -ch. Bref, vous avez le contrôle total.
Et que serait un outil audio digne de ce nom sans la possibilité de jouer avec le son en temps réel ? Asak vous propose de régler le volume avec -a, d’appliquer des effets comme la réverbération ou le délai avec -f, et même de faire du passthrough avec des effets live grâce à -z. Bref, de quoi transformer votre bureau en studio d’enregistrement lo-fi tendance.
Côté formats, Asak supporte les classiques WAV, AIFF et FLAC, en entrée comme en sortie. Et s’il vous prend l’envie de bidouiller avec plusieurs flux audio simultanés, pas de souci, Asak gère ça comme un chef.
Sur ce, je vous laisse, j’ai une soudaine envie d’aller bidouiller avec des samples de vieux films de science-fiction. Que la force du son soit avec vous !
Vous êtes développeur Rust et vous cherchez un moyen d’optimiser votre workflow, Bacon peut vous aider !
Cet utilitaire génial s’occupe de vérifier votre code en arrière-plan pendant que vous travaillez, vous permettant ainsi de vous concentrer sur l’essentiel. Il tourne discrètement à côté de votre éditeur de code et vous avertirra en cas d’erreur, d’avertissement ou d’échec de test dans votre code Rust. Et le tout sans que vous ayez à lever le petit doigt !
Un des gros avantages de Bacon, c’est qu’il met en avant ce qui compte vraiment. Les erreurs sont affichées avant les avertissements, et les plus récentes en dernier comme ça pas besoin de scroller pendant des heures pour trouver un message important noyé au milieu de la console !
Et pas non plus besoin de vous rappeler de 150 commandes différentes, puisque les plus essentielles sont listées en bas de l’écran.
Pour installer Bacon, rien de plus simple :
cargo install --locked bacon
Et pour le lancer, tapez juste :
bacon
Et voilà, Bacon se chargera de lancer la commande par défaut, généralement cargo check, et de surveiller votre code. Maintenant si vous voulez plutôt lancer les tests, faites :
bacon test
Pendant que Bacon tourne, vous pouvez alors afficher les avertissements de Clippy avec « c », revenir à la tâche précédente avec « Esc », ou encore ouvrir la doc (cargo doc) dans votre navigateur avec « d ». Et ce n’est qu’un aperçu des possibilités !
Bacon gère également très bien la configuration via deux fichiers : prefs.toml pour vos préférences globales (raccourcis clavier, mode résumé, etc) et bacon.toml pour les réglages spécifiques à chaque projet (tâches personnalisées, exemples, réglages de Clippy…).
Bref, c’est pratique et personnalisable et cela que vous travailliez sur un petit projet perso ou sur une grosse application pro.
Vous rêvez de créer votre propre livre électronique ou une bonne grosse documentation technique mais vous ne savez pas par où commencer ?
Ne cherchez plus, mdBook est là pour vous !
Il s’agit d’un outil codé en Rust, qui a l’aide de quelques commandes simples, vous permettra d’initialiser la structure de votre ouvrage, de rédiger votre contenu en Markdown, de personnaliser le rendu et de le mettre en ligne. Voici un exemple de ce que ça peut donner comme rendu.
Pour démarrer votre aventure avec mdBook, rien de plus simple. Installez l’outil en suivant les instructions sur le site officiel, puis lancez la commande suivante dans un terminal :
mdbook init mon-premier-livre
Et voilà, le squelette de votre chef-d’œuvre est prêt et vous n’avez plus qu’à rédiger !
mdBook regorge de fonctionnalités pour mettre en forme votre contenu. Vous pouvez organiser vos chapitres dans le fichier SUMMARY.md, ajouter une page d’introduction dans README.md, créer votre propre template, et même inclure des images et autres ressources. Et une fois votre prose finalisée, vous pourrez donner vie à votre livre à l’aide de la commande :
mdbook serve
Celui-ci va alors générer une version web interactive accessible via un serveur web, avec une navigation et moteur de recherche intégré, de vos écrits. Et la commande
mdbook build
… vous permettra de générer une version HTML de votre bouquin.
Je trouve ça très satisfaisant de passer par le markdown pour la rédaction et la mise en forme. Je le faisais pour des prez style Powerpoint mais full markdown à l’époque où je faisais des confs, et c’était un vrai gain de temps.
Mais le véritable atout de mdBook, c’est sa capacité à automatiser la publication de votre livre. Grâce à l’intégration continue, chaque modification que vous apportez peut être instantanément mise en ligne. Comme ça, fini les mises à jour manuelles bien reloues !
Bref, vous l’aurez compris, mdBook est un excellent outil pour les auteurs qui aiment partager leur travail avec leur communauté. Ah, j’allais oublier ! Si vous avez besoin d’inspiration, n’hésitez pas à explorer la documentation officielle de mdBook. Vous y trouverez des astuces, des exemples et même des témoignages d’auteurs conquis.
Un interpréteur Python 3 flambant neuf, entièrement réécrit en Rust, ça claque, non ? Pour ceux qui hibernent, Rust, c’est le langage de programmation qui monte, qui monte et qui cartonne notamment grâce à sa rapidité légendaire et son bon niveau de sécurité.
Et en fusionnant avec Python, on obtient le meilleur des deux mondes, puisque ça permet d’utiliser Python comme un langage de script dans vos applications Rust. Vous pourrez ainsi, grâce à RustPython, profiter de la simplicité et de l’expressivité de Python, tout en bénéficiant des performances et de la robustesse de Rust.
RustPython peut aussi être compilé en WebAssembly, ce qui permet d’avoir du Python directement dans votre navigateur, sans installer quoi que ce soit et ainsi, votre code s’exécutera à la vitesse de la lumière. Évidemment ce projet est open-source et libre comme l’air et pour l’utiliser, c’est simple comme bonjour.
Tout d’abord, assurez-vous d’avoir installé Rust sur votre machine. Si ce n’est pas le cas, filez sur rustup.rs dare-dare ! Ensuite, clonez le dépôt GitHub de RustPython :
Placez-vous dans le répertoire RustPython fraîchement cloné, puis lancez la démo :
cd RustPython cargo run --release demo_closures.py
Et voilà, vous venez d’exécuter du code Python à la vitesse du son grâce à RustPython ! Notez que cet outil dispose également d’un compilateur JIT expérimental qui compile les fonctions python en code rust natif.
Tiens, Microsoft nous prépare un nouveau bébé baptisé Zero Trust DNS, ou ZTDNS pour les intimes. Alors c’est quoi encore ce truc ? Eh bien c’est tout simplement un système permettant de sécuriser le DNS sur nos chers Windows.
Pour ceux qui auraient loupé un épisode, le DNS c’est un peu comme l’annuaire téléphonique d’Internet. Il permet de traduire les noms de domaine tout mignons comme korben.info en adresses IP bien moins sexy. Le problème, c’est que jusqu’à présent, le DNS c’était un peu le maillon faible de la sécurité. Les communications n’étaient pas chiffrées, ce qui ouvrait la porte à plein de menaces comme l’espionnage, le détournement de trafic ou même les attaques de type « DNS spoofing« . D’ailleurs, selon une étude de Cisco, plus de 70% des attaques de phishing utilisent des techniques de DNS spoofing pour tromper leurs victimes.
Mais ça, c’était avant ! Avec ZTDNS, Microsoft promet de changer la donne. Déjà, toutes les communications entre les clients Windows et les serveurs DNS seront chiffrées et authentifiées grâce aux protocoles DNS over HTTPS (DoH) ou DNS over TLS (DoT), ce qui devrait rendre la vie plus difficile aux vilains cyber criminels qui voudraient mettre leur nez dans nos petites affaires.
Ensuite, et c’est là que ça devient vraiment intéressant, ZTDNS va permettre aux admins réseau de contrôler finement quels domaines peuvent être résolus par les serveurs DNS. En gros, si un domaine n’est pas sur la liste blanche, et bien le client Windows ne pourra tout simplement pas s’y connecter !
Mais attention, mettre en place un truc pareil, ça ne va pas être une partie de plaisir. Il va falloir bien planifier son coup pour éviter de tout casser, du genre bloquer sans faire exprès l’accès à des services importants ! Mais bon, c’est le prix à payer pour renforcer la sécurité et se rapprocher doucement d’un modèle « Zero Trust » où on ne fait confiance à personne par défaut.
Alors concrètement, comment ça va marcher ?
Eh bien déjà, il faudra que les serveurs DNS supportent les protocoles de chiffrement comme DoH ou DoT. Ça tombe bien, ZTDNS est conçu pour être compatible avec tout ça. Pas besoin de réinventer la roue.
Ensuite, lorsqu’un client Windows aura besoin de résoudre un nom de domaine, il va discuter avec un des fameux serveurs DNS « protecteurs » et si le domaine est autorisé, le serveur lui filera l’adresse IP correspondante. Et hop, le pare-feu Windows sera dynamiquement mis à jour pour autoriser la connexion vers cette IP. Par contre, pour le reste, c’est niet ! Le trafic sera bloqué direct !
Bon après, faut quand même avouer qu’il y aura des trucs qui vont morfler à cause de ZTDNS. Tous les protocoles réseaux un peu exotiques qui n’utilisent pas le DNS, comme le multicast DNS (mDNS) par exemple, ça va être coupé. Pareil pour les partages de fichiers sur le réseau local ou les imprimantes qui utilisent des protocoles de découverte archaïques. Ça risque donc de râler dans les chaumières !
Mais heureusement, les ingénieurs de Microsoft ne sont pas nés de la dernière pluie et ont prévu pas mal de mécanismes pour « mitiger » ces problèmes. Par exemple, on va pouvoir définir des exceptions pour autoriser certaines plages d’adresses IP sans passer par le DNS. Ou encore favoriser des solutions plus modernes et sécurisées, comme l’impression via Universal Print qui passe, lui, gentiment par le DNS.
Un autre truc à prendre en compte, c’est que certaines applications un peu spéciales risquent de ne plus fonctionner du tout avec ZTDNS. Celles qui utilisent des adresses IP codées en dur ou des mécanismes de résolution maison, c’est mort. Mais bon, ce sera l’occasion de faire le ménage et de moderniser tout ça.
Microsoft a d’ailleurs prévu un mode « Audit » qui permet dans un premier temps de voir ce qui serait bloqué par ZTDNS, sans pour autant péter la prod. Comme ça, on peut analyser tranquillement les flux réseau et identifier les applications ou les flux problématiques. C’est un bon moyen d’anticiper les éventuels soucis avant de passer en mode bloquant !
Bon après, faut pas non plus se voiler la face. Même avec ZTDNS, il restera toujours des failles de sécurité potentielles. Les connexions VPN ou SASE/SSE par exemple, qui encapsulent le trafic dans un tunnel chiffré, pourront toujours passer entre les mailles du filet si on n’y prend pas garde. Sans parler des technologies de virtualisation qui court-circuitent carrément la pile réseau de Windows !
Mais bon, rien n’est parfait et il faut bien commencer quelque part… ZTDNS représente déjà une sacrée avancée pour renforcer la sécurité réseau des parcs Windows et avec un peu de rigueur et de persévérance, les admins sys pourront en tirer le meilleur parti.
Pour l’instant, ZTDNS est en preview privée chez Microsoft. On ne sait pas encore exactement quand il débarquera dans nos Home Sweet Home. En attendant, je vous invite à aller jeter un œil à l’article sur le blog Techcommunity qui rentre dans les détails techniques de la bête. C’est dense mais ça vaut le coup de s’y plonger si vous voulez être informé.
Aujourd’hui, on va parler d’un truc qui s’appelle LSD, mais attention hein, je parle pas de votre dernière soirée chemsex hein… C’est plutôt un clone open-source de la commande ls en mode survitaminé ! Développé par la communauté et écrit en Rust, il rajoute plein de fonctionnalités hyper stylées comme les couleurs, les icônes, la vue en arbre, des options de formatage en pagaille…
L’idée vient du projet colorls qui est vraiment super aussi. Mais LSD pousse le délire encore plus loin. Déjà il est compatible avec quasi tous les OS : Linux, macOS, Windows, BSD, Android…
Et hyper simple à installer en plus… un petit
apt install lsd ou brew install lsd
et c’est réglé.
Ensuite il est ultra personnalisable. Vous pouvez faire votre thème de couleurs et d’icônes sur mesure juste en bidouillant des fichiers de config en yaml. Et il supporte les polices Nerd Font avec des glyphes spéciaux trop classes ! Bon faut avoir la bonne police installée sur son système et le terminal configuré, mais c’est pas bien compliqué. Et si vous êtes sur Putty ou Kitty, y’a des tweaks spécifiques à faire, mais c’est expliqué dans la doc.
Mais attendez c’est pas fini ! LSD gère aussi les liens symboliques, la récursion dans les sous-répertoires (avec une profondeur max en option), des raccourcis pour les tailles de fichiers plus lisibles, des indicateurs pour les exécutables, les dossiers, etc. Il peut même vous sortir des infos de git sur les fichiers de ton repo si vous activez l’option ! Et pleins d’autres trucs que j’ai même pas encore testés…
Depuis que je l’ai installé et que j’ai changé mon alias ls, je me régale à chaque fois que je liste un dossier. J’ai l’impression d’être dans un vaisseau spatial avec des néons partout ! Bon j’exagère à peine, mais franchement ça envoie du lourd.
Allez je vais pas tout vous spoiler non plus, je vous laisse le plaisir de découvrir LSD par vous-même et customiser votre expérience du terminal. Moi en tout cas je suis fan, et je dis pas ça parce que je plane ! 😄
Vous en avez marre de jongler avec une multitude d’outils de gestion de paquets sur vos différents systèmes Linux et Unix ? apt sur Debian, dnf sur Fedora, pacman sur Arch, emerge sur Gentoo, pkg sur FreeBSD… Et je ne parle même pas de Homebrew sur macOS ou Scoop sur Windows ! Bref, un vrai casse-tête pour s’y retrouver et se rappeler de toutes les commandes spécifiques à chaque plateforme.
Heureusement, y’a un p’tit dev malin qui a décidé de nous faciliter la vie. Un certain Sigoden a créé upt, pour Universal Package-management Tool. L’idée c’est d’avoir une interface unique pour gérer ses paquets, quelque soit le système utilisé. Sous le capot, upt se base sur le gestionnaire natif de chaque OS mais vous permet d’utiliser une syntaxe commune pour les opérations de base : rechercher, installer, mettre à jour ou supprimer un paquet.
Bon alors techniquement, c’est écrit en Rust donc faudra passer par l’installation de cargo et de quelques dépendances. Mais rassurez-vous, c’est assez simple et bien documenté sur le dépôt GitHub du projet. Une fois que c’est fait, vous pourrez utiliser la commande upt de la même façon sur tous vos systèmes. Voici quelques exemples :
upt update pour mettre à jour le gestionnaire upt install package_name pour installer un paquet upt upgrade package_name pour le mettre à jour upt remove package_name pour le désinstaller upt search keyword pour chercher un paquet
Plutôt cool non ?
Fini les prises de tête à se rappeler si c’est apt search ou dnf search, pacman -S ou emerge… Maintenant on fait tout pareil avec upt !
Et ça supporte tous les outils suivants sous Linux, macOS, Windows, BSD :
Bon, j’avoue qu’il y a quelques petites limitations. Déjà upt n’est qu’une surcouche, donc il faudra quand même connaître les noms exacts des paquets pour chaque distrib. Pas de nom universel type « python3-dev » qui fonctionnerait sur Ubuntu comme sur Fedora.
Ensuite, si un même paquet est dispo dans plusieurs formats (deb, snap, flatpak…), upt va suivre un ordre de priorité pour choisir lequel installer. Mais vous pouvez outrepasser ça en définissant la variable d’environnement UPT_TOOL avec le nom du gestionnaire souhaité.
Par exemple, pour forcer upt à utiliser les paquets snap pour VLC plutôt que apt ou autre :
export UPT_TOOL='snap' upt install vlc
Dernier point, certaines commandes un peu plus avancées ne seront pas gérées directement par upt. Il faudra alors repasser par le gestionnaire natif. Mais pour une utilisation basique au quotidien, ce petit outil vous fera gagner pas mal de temps et de neurones.
Après, je dis pas que c’est la solution révolutionnaire qui va unifier une bonne fois pour toutes le monde des paquets sur Linux et Unix. Y’a encore du taf pour ça. Mais en attendant, upt est bien pratique pour ceux qui doivent régulièrement passer d’un système à l’autre.
Et puis soyons honnêtes, nous les linuxiens on est un peu maso sur les bords. On aime bien quand c’est compliqué et qu’il faut batailler pour faire un truc. Alors un outil qui simplifie les choses, ça va en rebuter plus d’un ! Mais je suis sûr que ça peut rendre service à pas mal de monde malgré tout.
En attendant, amusez-vous bien et n’oubliez pas : dans le doute, RTFM ! 😄