Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
Hier — 9 mai 2026Flux principal

Google Workspace CLI - Pour piloter tous les services Google avec votre IA

Par : Korben ✨
8 mai 2026 à 16:52

Justin Poehnelt, Senior Developer Relations Engineer chez Google, vient de balancer sur Github un outil en ligne de commande (CLI), codé en Rust qui permet de faire un truc trop pratique, à savoir piloter entièrement Workspace depuis le terminal. Ce logiciel nommé GWS est donc capable de gérer Gmail, Drive, Calendar, Sheets et sept autres services Google d'un coup. Et en plus, comme il a été conçu pour les agents IA, donc c'est pas juste pour vous et votre terminal !

Une fois installé via npm, cargo, brew ou un binaire pré-compilé, vous tapez gws auth login pour vous authentifier via OAuth et vous pouvez ensuite attaquer onze services depuis votre shell : Drive, Gmail, Calendar, Sheets, Docs, Chat, Admin, Apps Script, Tasks, Workspace Events et Model Armor.

Niveau archi, au lieu de hard-coder chaque commande dans le binaire, gws interroge tout simplement le Discovery Service de Google au démarrage et reconstruit son arbre de commandes à la volée. Du coup quand Google ajoute un endpoint à l'API Sheets, le CLI le voit apparaître tout seul. C'est trop bien parce que ça évite de devoir attendre une release pour utiliser un éventuel nouveau service de Google. Et pour un agent IA qui re-fetch le schéma à chaque run, c'est plutôt une bonne idée.

Donc en plus de démarrer en moins d'une seconde, GWS crache des sorties en JSON structurées, y'a un mode --dry-run qui montre la requête sans l'envoyer, et de l'auto-pagination via --page-all. Et côté commandes utilitaires, vous avez aussi les + qui sont des helpers cousus main tels que gws gmail +send, gws drive +upload, gws calendar +agenda, gws sheets +append, gws gmail +triage et un gws gmail +standup-report qui résume vos mails de la semaine en quelques lignes.

Le repo embarque aussi 40+ skills d'agent prêts à l'emploi du type "résume mes mails non lus" ou "génère mon rapport", une extension Gemini CLI qui s'installe avec gemini extensions install https://github.com/googleworkspace/cli, et le helper +sanitize-response qui fait passer la sortie par Model Armor (le filtre anti-prompt-injection de Google Cloud) pour éviter les réponses bizarres.

En gros, c'est un outil pensé pour faire piloter votre Workspace par Claude, Gemini ou n'importe quel agent. Comme ça vous allez pouvoir écrire un workflow qui lit vos mails non lus, en fait un résumé, le poste dans un Chat et classe tout ça proprement dans Drive... sans avoir à toucher à la souris ni avoir à utiliser votre cerveau léthargique. Elle est pas belle la vie ?

Sauf que. Le projet porte le disclaimer "This is not an officially supported Google product", et un employé Google a confirmé sur le thread Hacker News (presque 1000 points, quand même) que c'est un projet DevRel. Comprendre : pas de SLA, pas de roadmap garantie, pas d'équipe SRE qui veille au grain. Vous savez comment ça finit chez Google avec ce genre de statut !

Bref si vous êtes chaud pour tester, le binaire est dispo ici . Maintenant reste à voir si Google lui donnera un statut officiel ou si GWS s'éteindra discrètement comme tant d'autres projets internes oubliés...

À partir d’avant-hierFlux principal

DirPlayer - L'émulateur qui ressuscite Shockwave

Par : Korben ✨
2 mai 2026 à 07:38

Flash à sa grande époque c'était quand même tout un truc, mais est-ce que vous vous souvenez de Shockwave ? Le grand frère de Flash (techniquement c'était une autre techno bâtie sur Director mais bref...), qui était capable de faire tourner des trucs bien plus complexes que les vieux .swf ?

Et ben l'équipe derrière DirPlayer s'est tapé tout le reverse-engineering du moteur Director from scratch pour le ressusciter grâce à Rust et le rendre à nouveau fonctionnel dans nos navigateurs modernes !

Faut savoir qu'Adobe a débranché Shockwave Player en avril 2019 et Flash un peu plus tard, et avec eux c'est un pan entier du web rétro qui s'est retrouvé inaccessible du jour au lendemain. Du genre tous ces jeux qui tournaient sur Shockwave.com ou les vieux portails de mini-jeux des années 2000, paf, d'un coup plus moyen d'y rejouer.

Alors heureusement, pour Flash, y'a déjà Ruffle qui fait tourner les bons vieux .swf. Hé bien ici c'est le même principe avec DirPlayer pour les .dcr Shockwave.

L'outil se décline sous 3 formes. D'abord une extension Chrome qui détecte automatiquement les balises Shockwave qui traînent encore sur les vieux sites web, ce qui peut être sympa pour redécouvrir des sites des années 2000.

Y'a aussi une version standalone construite avec Electron qui embarque carrément un debugger Lingo (le langage de scripting de Director, super pratique si vous voulez bidouiller du contenu existant). Et enfin un polyfill JS auto-contenu qui réécrit les et directement sur votre site web.

Perso, pour vous faire une idée, je vous invite surtout à jeter un oeil à la démo web pour tester rapidement parce qu'il n'y a rien à installer. Mais dès que vous voudrez analyser ou debugger un vieux jeu en profondeur, faudra plutôt opter pour la version standalone.

Notez que DirPlayer utilise Ruffle en submodule Git donc les 2 projets sont liés et bonus côté sécurité, le tout tourne en WebAssembly avec le sandboxing du navigateur, donc y'aura plus toutes ces failles qu'on pouvait retrouver à l'époque sur l'ancien plugin Shockwave Player.

Pour les sites qui hébergent encore des applis ou des jeux Shockwave (genre archive.org, avec des musées interactifs ou des jeux des années 2000), c'est une nouvelle corde à leur arc. Et si vous avez de vieux .dcr planqués sur un disque dur, la démo web devrait pouvoir les avaler aussi (faudra tester quoi...).

Bref, grâce à Ruffle pour Flash et DirPlayer pour Shockwave, le web des années 90-2000 n'est pas encore tout à fait mort ! Un peu comme moi finalement ^^

KULA - Le monitoring serveur Linux qui tient dans un seul binaire

Par : Korben ✨
1 mai 2026 à 06:53

Ouais, je sais, on est le 1er mai, et je suis pas censé bosser mais que voulez-vous on ne se refait pas ^^. Et si j'ai ouvert l'ordi ce matin, c'est pour vous parler de KULA !

KULA est un binaire tout simple qui permet de monitorer très facilement votre serveur Linux en temps réel, sans aucune dépendance. c0m4r , le dev derrière le projet, l'a codé en Go avec une obsession claire : Que ça marche partout sans rien installer à côté !

C'est vrai que les outils de monitoring temps réel sur Linux ont tendance à grossir avec le temps. Netdata est passé par exemple d'un script léger à une plateforme SaaS.

KULA veut faire exactement l'inverse ! Parce que si vous avez un VPS à 5 balles, un Raspberry Pi ou trois homelabs qui ronronnent dans le placard, c'est pas la peine de sortir un bazooka quand il y a ce petit binaire qui fait tout aussi bien.

Vous le posez sur la machine, vous lancez ./kula, et c'est plié ! Il y a même un installeur guidé en une commande (nia nia nia lisez le contenu du .sh avant de le lancer, nia nia nia, je me répète, je sais):

bash -c "$(curl -fsSL https://raw.githubusercontent.com/c0m4r/kula/refs/heads/main/addons/install.sh)"

Côté technique, le projet va chercher ses infos directement dans /proc et /sys toutes les secondes. Comme ça y'a pas besoin d'un programme "agent" séparé à installer, ni besoin de vous lancer dans du scraping HTTP. C'est juste KULA qui tourne en daemon et qui lit ce qui se passe au niveau du kernel.

Les données passent ensuite dans un moteur de stockage maison : un ring-buffer avec trois niveaux (1 seconde brut, 1 minute agrégé, 5 minutes agrégé), chacun ayant une taille max fixe (250 Mo, 150 Mo, 50 Mo par défaut). Et quand la limite est atteinte, les nouvelles données écrasent les vieilles. Comme ça l'usage disque est maîtrisé, et y'a pas besoin de faire de ménage.

Niveau métriques, c'est plutôt complet je trouve... CPU, GPU (VRAM, charge, conso), mémoire, swap, load average, processus par état, températures CPU/GPU/disque, batteries, entropie système, sync horloge. Le réseau remonte les débits par interface, les paquets par seconde, les erreurs, les drops, les retransmissions TCP, les connexions établies...etc.

Et côté disque c'est par composant : IOPS, lectures/écritures par seconde, octets/s, plus l'usage des systèmes de fichiers. Et bien sûr tout ce qui est containers Docker, podman, et même ces cgroups bruts dont vous êtes si fiers ^^, pour ceux qui font tourner des trucs sans Docker.

Et le truc auquel je ne m'attendais pas mais que j'aurais pu anticiper parce que c'est à la modeuuuuh, c'est l'assistant IA via Ollama. Vous configurez une instance Ollama locale, et le dashboard vous laisse causer à un modèle de votre choix qui peut analyser les courbes en cours, exporter du CSV par graphique, et même faire appel à une fonction get_metrics pour interroger les données en mode agent.

Tout ça en local bien sûr. C'est plutôt sympa pour debugger par exemple un pic de CPU récurrent à 3h du matin sans devoir vous taper des heures de graphes !

Le déploiement Docker c'est comme ça :

docker run -d --name kula --pid host --network host
 -v /proc:/proc:ro -v kula_data:/app/data c0m4r/kula:latest

Notez le paramètre --pid host et /proc:/proc:ro : car KULA a besoin de voir l'hôte et pas le container.

Bah ouais, c'est logique, sinon il va monitorer juste son propre container, ce qui n'a aucun intérêt, hein...

Notez que si vous êtes sur un VPS LXC mutualisé bas de gamme, certains hébergeurs restreignent l'accès à /proc du host... et là, malheureusement, KULA ne pourra remonter que ce qu'il voit ce qui est souvent pas grand-chose... sniiif.

Pour les puristes, y'a aussi des paquets .deb, .rpm, AUR pour Arch, et du multi-arch (amd64, ARM, RISC-V). Ça couvre à peu près tout ce qui se croise sur un homelab !

Et côté auth, c'est désactivé par défaut (le port par défaut est le 27960, pas le 80), mais quand vous l'activerez vous tomberez sur de l'Argon2id avec des jetons de session hashés en base.

Par contre, même si y'a quelques alertes internes (clock sync, low entropy, overload), vous n'aurez pas de notifications natives (pas de mail, ni Slack, ni webhook...etc). Et pas de support multi-node non plus puisque KULA monitore une machine à la fois.

Donc si vous avez 30 serveurs, faudra vous farcir 30 instances et 30 dashboards séparés. Pas glop ! Et bien sûr, c'est Linux only parce que tout repose sur /proc et /sys.

C'est encore un projet un peu jeune, donc à voir comment ça vieillit mais pour votre petit VPS perso d'amour ou une machine dans un setup d'auto-hébergement , c'est top pour esquiver à la fois htop qui est trop minimaliste et Grafana qui est trop usine à gaz.

Si vous voulez voir la démo, y'en a une ici : demo.kula.ovh !

Source

CANviz - Analyser le bus CAN de sa voiture dans le navigateur

Par : Korben ✨
23 avril 2026 à 13:30

Vous voulez comprendre ce qui se passe dans le cerveau de votre bagnole ? Hé bien pour cela avant, il fallait du matos pro et des suites logicielles à licence annuelle. Mais maintenant, y'a CANviz .

Un pip install canviz, un module USB à quelques balles branché sur le bus CAN de la voiture, et hop, vous accédez à tous les secrets de votre voiture simplement en ouvrant votre navigateur sur localhost:8080. Toutes les trames qui circulent sur le réseau interne du véhicule s'affichent en direct dans un tableau qui défile sans ramer à 2000 fps si j'en crois le README, donc ça envoie !

Ce projet signé Chanchal Dhiman tourne sur n'importe quelle config équipée de Python 3.10 ou supérieur, et côté matériel, CANviz se branche sur plein de bazars tels que les modules à firmware Candlelight (genre FYSETC UCAN autour de 8 balles ou CANable 1.0 autour de 15), les périphériques slcan via port COM, et du matériel sérieux type PEAK PCAN-USB, Kvaser, Vector ou même socketcan sur Raspberry Pi. En gros, si votre clé USB CAN est compatible avec python-can, CANviz la gère !

L'interface décode alors les fichiers DBC (le format de base de données du CAN), donc au lieu de lire des paquets hexadécimaux chelous, vous voyez directement "vitesse moteur = 1450 rpm" ou "position accélérateur = 34%". Vous pouvez aussi filtrer par ID ou par nom de signal, et le filtre se garde dans l'URL. Comme ça, vous pouvez partager une vue à un pote en copiant simplement le lien.

Le truc vraiment pratique, c'est surtout la partie enregistrement. Vous capturez une session en .asc ou .csv, et vous la rejouez plus tard à vitesse variable (de 0.5x pour décortiquer lentement, jusqu'à 10x pour survoler), ou vous forgez vos propres trames depuis l'interface pour tester la réaction d'un module donné. Une API REST et du WebSocket ouvrent aussi la porte aux bricolages en Python, avec une doc interactive accessible sur /docs.

Autre truc malin, vu que c'est un serveur web derrière : vous pouvez déployer CANviz sur un Raspberry Pi planqué dans la bagnole et le consulter à distance en SSH. Par contre, pas de WebUSB ici. L'auteur a explicitement fait le choix de passer par python-can côté serveur pour des raisons de sécurité. L'accès USB reste donc dans le sandbox Python, et le browser ne touche rien. J'avoue, je préfère.

Le projet est sous licence MIT, et est encore jeune, mais l'approche est éprouvée. Pour ceux qui cherchent des alternatives desktop, y'a bien sûr CANgaroo côté Qt, ou SavvyCAN qui tourne aussi en natif. Et si vous voulez bidouiller votre voiture comme Charlie Miller l'a fait avec la Jeep , y'a toujours le Panda de Comma sorti en 2017 avec son soft Cabana.

Bref, pour quelques euros de module USB et un pip install des familles, vous pouvez transformer votre laptop en analyseur CAN niveau pro et ça c'est plutôt classe !

Source

Lastversion - Trouver la dernière version de n'importe quoi

Par : Korben ✨
23 avril 2026 à 12:37

Vous bossez sur un Dockerfile et vous avez besoin de la dernière version de nginx. Vous ouvrez GitHub, vous cliquez sur Releases, vous copiez-collez. Et 3 minutes plus tard, rebelote pour curl. Puis pour PHP. Sans parler du fait que dans votre script d'auto-update, vous avez hardcodé une "v3.2.1" qui dort là depuis 2023 parce que personne n'a pris le temps de mettre à jour le fichier.

Lastversion , c'est le petit CLI Python signé Danila Vershinin qui remplace cette corvée par une seule ligne. Vous tapez lastversion apache/incubator-pagespeed-ngx et vous récupérez le numéro de la dernière version.

Le truc marche sur GitHub, GitLab, BitBucket, PyPI, Wikipédia, les flux RSS, les plugins WordPress, Helm charts, Gitea, SourceForge... et même sur des sites qui publient leurs versions comme ils veulent, genre nginx.org.

La beauté du bazar, c'est qu'il comprend les humains, parce que, c'est vrai, les mainteneurs font un peu n'importe quoi avec leurs tags. Ils étiquettent release-1.2.3 au lieu de 1.2.3, ils marquent des release candidates en stable sans le faire exprès, ils changent de format entre v20150121 et v2.0.1 sans prévenir. lastversion détecte toutes ces incohérences et vous renvoie la véritable dernière stable, celle que vous vouliez dès le départ. C'est pénible à gérer à la main quand vous avez vingt dépendances à suivre. Maintenant c'est réglé tout seul avec ce petit bidule.

Et les sources exotiques, c'est tout un délire. lastversion windows vous crache le build Windows en cours, lastversion ios pour iOS, lastversion rocky vous renverra 8.4 et lastversion https://en.wikipedia.org/wiki/Rocky_Linux aussi, parce que le bidule va carrément parser la page Wikipédia pour vous.

Alors certains d'entre vous me diront que ce n'est pas utile au quotidien. Peut-être jusqu'au jour où vous devez scripter une vérif de version d'OS sans dépendre d'un outil système. Par contre, si vous enchaînez cinquante requêtes par heure sur un token GitHub anonyme, faudra pas s'étonner de manger un rate limit dans la tronche.

Côté one-liners qui tuent, y'a déjà de quoi faire.

wget $(lastversion --assets mautic/mautic) télécharge direct la dernière archive.

lastversion --pre Aircoookie/WLED --format assets --filter ESP32.bin -d ESP32.bin récupère le dernier firmware ESP32 WLED.

Pour Nginx, lastversion https://nginx.org --major stable renvoie 1.16.1 pendant que --major mainline renvoie 1.17.9.

Vous voyez l'idée, c'est du pipe-friendly pur jus.

Et le mode install, c'est un autre délire. Vous tapez lastversion install mailspring et hop, il récupère l'AppImage ou le RPM du dépôt, il l'installe, et c'est fini. Attention quand même, sur les dépôts un peu bordéliques il va parfois se vautrer sur le packaging et juste vous balancer le tarball brut. Bon, c'est pas la mort, vous dézippez à la main et vous passez à la suite...

Combiné avec cron, @daily /usr/bin/lastversion install mailspring -y et votre bureau sera toujours à jour sans passer par un store. Pour tous les outils qui ne sont ni dans apt, ni dans un snap, ni dans un flatpak, c'est l'alternative la plus propre à avoir sous la main.

L'install se fait via pip install lastversion sur à peu près tout, ou yum install lastversion après avoir ajouté le repo GetPageSpeed si vous êtes sur CentOS, RHEL, Rocky, Alma, Fedora ou Amazon Linux.

Le projet est publié sous licence BSD-2, codé en Python, et il y a aussi une API utilisable directement (from lastversion import latest) si vous préférez appeler ça dans vos scripts plutôt que de piper dans un subprocess.

Bref, un chouette outil à ranger entre vos redirections bash et votre gestionnaire SSH , catégorie petits trucs qui font gagner 10 minutes par semaine.

Hister - Un vrai moteur de recherche pour votre historique web

Par : Korben
3 avril 2026 à 09:14

Bon, j'ai la crève et y'a du bricolage qui m'attend, du coup aujourd'hui y'aura pas des centaines d'article. Mais faut quand même que je vous parle de Hister , le nouveau projet d'Adam Tauber (le créateur de Searx ) qui indexe localement tout ce que vous visitez sur le web pour le retrouver en texte intégral.

Vous installez l'extension Chrome ou Firefox, vous lancez le binaire Go sur votre machine (ça tourne sous Linux, macOS et Windows), et hop, chaque page que vous visitez est indexée en full-text. Du coup, quand vous cherchez ce tuto que vous aviez lu y'a 3 semaines mais dont vous avez zappé l'URL, vous ouvrez l'interface web locale de Hister, vous tapez un mot qui était dans le contenu de la page et ça ressort ! Si vous aviez testé Deeper History à l'époque, c'est le même concept mais en beaucoup plus costaud.

L'interface de Hister - sobre mais efficace

Sous le capot, Hister utilise blevesearch, un moteur d'indexation en Go qui gère le fuzzy matching et les requêtes booléennes. En gros, vous tapez "configuration nginx reverse proxy" et ça vous ressort cette page de doc que vous aviez consultée y'a un mois, même si vous ne vous souvenez que de 2 mots. Efficace donc. Et l'outil capture les pages telles qu'elles étaient au moment de votre visite donc si un site modifie son contenu ou si un article disparaît, vous aurez toujours la version d'origine. Y'a même un mode aperçu hors-ligne pour consulter ces snapshots sans connexion !

Côté vie privée (forcément, quand ça vient du mec qui a pondu Searx déjà en 2013... le temps file les amis ^^), tout reste sur votre machine. Et pour les domaines sensibles comme votre banque ou votre mutuelle, une blacklist permet même d'exclure certains sites de l'indexation. Enfin pour ceux qui ont déjà des années de navigation derrière eux, la commande hister import aspirera votre historique Chrome ou Firefox existant, comme ça pas besoin de repartir de zéro.

Pour installer ça, téléchargez le binaire depuis les releases GitHub , puis lancez le serveur et installez l'extension ( Firefox ou Chrome) qui va bien. Y'a aussi un Docker Compose pour ceux qui préfèrent tout conteneuriser. Prévoyez aussi quelques Go sur le disque pour la base d'index car ça se rempli vite...

Tauber dit avoir réduit sa dépendance à Google de moitié en un mois et demi juste avec ça. Et je trouve ça logique parce que quand vous avez déjà visité la bonne page une fois, ça ne sert plus à rien de redemander à Google de vous la remonter entre 3 pubs et une réponse IA à côté de la plaque. Autant récupérer ce que vous aviez déjà !

Voilà, je suis sûr que ça va vous plaire... Et si vous voulez tester avant d'installer quoi que ce soit, une démo tourne en ligne.

Allez, je retourne bricoler...

term.everything - Faites tourner Firefox dans votre terminal

Par : Korben
1 avril 2026 à 08:14

Et si je vous disais qu'on pouvait faire tourner Firefox dans un terminal ? Et pas un navigateur en mode texte, hein. Non, le véritable Firefox, avec ses onglets, les images, la totale... Hé oui c'est possible et que ça fonctionne via SSH, donc depuis un serveur distant. Bienvenue dans le futur (ou le passé, j'sais plus trop) !

Term.everything c'est un compositeur Wayland construit from scratch en Go qui, au lieu de balancer l'image sur votre écran, la convertit en caractères ANSI et l'affiche dans le terminal. Du coup, n'importe quelle app GUI Linux peut tourner là-dedans. Firefox, un gestionnaire de fichiers, un lecteur vidéo... et même Doom (parce que si ça peut pas faire tourner Doom, ça compte pas). Le binaire fait une poignée de Mo, c'est sous licence AGPL-3.0, et y'a zéro dépendance externe.

L'outil propose 2 modes d'affichage. Le mode basique qui convertit les pixels en blocs Unicode, et dont la qualité dépend du nombre de lignes et colonnes de votre terminal. Plus vous zoomez out (Ctrl+- sur Alacritty), plus c'est net... mais plus ça rame. Donc si votre terminal supporte le protocole image, genre Kitty ou iTerm2, l'autre mode, c'est du rendu pleine résolution et là non seulement c'est pas dégeu mais en plus ça marche bien !

Le truc vraiment dingue, c'est surtout le SSH parce que si vous avez un serveur Linux distant, vous vous connectez dessus en SSH, vous lancez term-everything firefox et hop, Firefox s'affiche dans votre terminal local. Pas de X11 forwarding relou à mettre en place ni de VNC / RDP zarbi.

Pour les admins sys qui gèrent des serveurs headless, c'est quand même sympa ! D'ailleurs si vous aimez les outils SSH bien pensés , celui-ci aussi va vous plaire.

Par contre, on est encore en bêta et certaines apps vont planter ou refuser de se lancer. C'est normal, c'est un compositeur Wayland complet écrit par un seul gars (chapeau l'artiste !). Ce n'est donc pas le genre de truc qu'on met en prod, mais pour du dépannage sur un serveur Debian distant ou juste pour la beauté du geste, ça envoie du pâté.

Le créateur de term.everything est d'ailleurs le même qui avait codé Fontemon , un jeu vidéo caché dans une police de caractères. On est donc clairement dans la catégorie "parce qu'on peut le faire et que c'est marrant".

Bref, si vous voulez épater vos collègues en lançant KDE dans un terminal par-dessus SSH, ou juste jouer à Doom dans tmux, c'est par là que ça se passe.

Amusez-vous bien et merci à Lorenper pour l'info !

Testez votre matos gaming dans le navigateur

Par : Korben
31 mars 2026 à 06:53

Votre manette qui drift comme dans Fast & Furious, votre clavier qui enfonce des touches fantômes, ou encore votre souris qui double-clique toute seule... Avant de tout balancer par la fenêtre parce que l'esprit malfaisant de papi est revenu hanter votre machine, sachez qu'il y'a peut-être moyen de diagnostiquer le problème facilement !

Comment ? Hé bien avec ControllerTest.io, qui est une suite de trois outils en ligne permettant de tester tout votre matos gaming directement dans le navigateur. C'est gratuit, sans pub et que vous ayez une manette Xbox, une DualSense, des Joy-Con ou un clavier mécanique de bobo à 150 balles, tout se gère depuis Chrome ou Edge sans rien télécharger. Suffit juste d'avoir un navigateur et un câble USB (ou une connexion Bluetooth).

Côté manette, le site détecte le drift des sticks en temps réel. Vous branchez votre pad en USB ou Bluetooth, ensuite vous appuyez sur un bouton, et l'écran affichera alors la position X/Y de vos sticks analogiques. Et si ça bouge alors que vous ne touchez à rien, c'est que c'est un souci de drift.

Y'a aussi un test de vibration avec quatre modes (heavy, light, burst, pulse) qui fait tourner les moteurs gauche et droit séparément. Le polling rate compare filaire vs Bluetooth, par exemple autour de 125 Hz en Bluetooth contre 500 Hz en USB sur une manette Xbox. Le mapping de tous les boutons et axes passe par l'API Gamepad de Chrome.

Pour les claviers, direction KeyboardTest.io . Le test de N-Key Rollover montre visuellement quelles touches sont en conflit quand vous appuyez sur plusieurs en même temps, ce qui est pas mal pour vérifier que votre clavier Cherry MX gère bien les combos en jeu ! Y'a aussi la détection de "chatter" qui se passe quand une touche s'enregistre deux fois d'affilée. C'est d'ailleurs souvent le signe d'un clavier fatigué.

Et pour la souris, MouseTester.io fait bien le boulot aussi. Polling rate en temps réel (le site affiche jusqu'à 8000 Hz, même si dans le navigateur c'est plus une estimation et pas une mesure de labo), détection de double-clic involontaire, et test CPS (test de clics par seconde). Par contre, attention, le test de polling rate ne marche pas toujours sur Firefox, et n'est pas forcément fiable non plus sur Safari, donc utilisez bien Chrome ou Edge pour vos tests. Et surtout ça tourne sur Windows, macOS et Linux sans problème, évidemment, vu que tout passe par le navigateur.

Le gros plus c'est que tout est traité localement dans le navigateur. Aucune donnée n'est envoyée à un serveur extérieur. Le JavaScript tourne en local via les API natives du navigateur, pas via un backend distant. Après y'a quand même une limitation qui est que les triggers adaptatifs de la DualSense ne sont pas supportés parce que l'API Gamepad standard ne le permet pas encore. C'est pas la faute du site, c'est juste le W3C qui traîne à faire évoluer la spec.

Si vous cherchez à tester spécifiquement votre manette, j'avais déjà parlé de Gamepad Tester mais ControllerTest.io va clairement plus loin avec la détection de drift, le polling rate et les tests de vibration séparés par moteur, donc autant passer à celui-là.

Voilà, la prochaine fois que votre gamepad fait des siennes, branchez le câble USB, ouvrez Chrome et allez sur ControllerTest.io . Comme ça, si c'est du drift, vous pouvez toujours tenter d'augmenter la deadzone dans les paramètres Steam ou dans les options du jeu avant de sortir la carte bleue !

Data-Shield - La blocklist qui vire les IPs pourries

Par : Korben
30 mars 2026 à 14:02

Quand on gère un serveur, y'a un truc qui rend dingue, c'est le bruit de fond de ces dizaines de milliers d'IPs qui scannent vos ports, qui tentent du bruteforce sur le port 22, qui cherchent des failles WordPress ou des phpMyAdmin oubliés... et surtout qui font tourner Fail2ban à plein régime dans les logs pour stopper ce qui peut l'être.

Fail2ban est d'ailleurs hyper réactif mais il attend qu'une IP fasse une connerie dans vos logs Apache ou SSH avant de la bloquer. Donc c'est quand même un peu tard.. Alors si on pouvait carrément virer le gros du trafic pourri avant même qu'il arrive à nos services ? Ce serait pas mieux ?

Hé bien c'est exactement ce que fait Data-Shield IPv4 Blocklist , un projet open source qui maintient une liste d'environ 100 000 adresses IP identifiées comme malveillantes. Le principe est simple... on colle l'URL RAW de la liste dans la config de son firewall (genre dans les alias d'OPNsense ou les External Block Lists de Fortinet) et hop, tout ce beau monde est filtré au niveau périmétrique. La liste (un simple fichier texte avec une IP par ligne) est rafraîchie toutes les 6 heures avec une fenêtre de rétention de 15 jours, du coup les IPs qui ne sont plus actives finissent par sortir automatiquement.

Côté compatibilité, c'est plutôt large : OPNsense, Fortinet, Palo Alto, F5 BIG-IP, Stormshield, Synology NAS, BunkerWeb... donc clairement, la plupart des pare-feu et WAF du marché peuvent ingérer la liste directement via une URL. Et pour les équipements un peu anciens qui ont des limites sur le nombre d'entrées, y'a même des listes splittées en paquets de 30 000 IPs.

Le projet est maintenu depuis 2023 par Duggy Tuxy, un CISO qui a visiblement décidé que ses week-ends aussi seraient consacrés à la threat intelligence. Presque déjà 4 000 commits sur le dépôt Git, soit des mises à jour quasiment tous les jours. Et c'est impressionnant car le taux de faux positifs affiché est de moins de 2 par mois, ce qui franchement, pour une liste de cette taille, est plutôt fou.

D'ailleurs, si vous utilisez déjà FireHOL pour vos listes de blocage, Data-Shield peut très bien venir en complément. L'idée c'est d'empiler les couches de défense... blocklist périmétrique au niveau iptables ou nftables en première ligne, puis CrowdSec ou Fail2ban pour le trafic qui passe quand même. Un défense en profondeur donc !

Attention par contre, la liste est pensée uniquement pour le trafic entrant (WAN vers LAN). L'appliquer en sortie bloquerait vos propres connexions légitimes. Et sauf si votre firewall gère le rechargement dynamique, pensez également à automatiser le refresh via un cron toutes les 6 heures.

Et pour assurer une haute disponibilité, le projet est distribué sur 5 miroirs : GitHub, GitLab, jsDelivr CDN, BitBucket et Codeberg. Du coup même si une source tombe, vos firewalls continuent à se mettre à jour.

Bref, si vous cherchez à réduire le bruit sur vos serveurs sans vous prendre la tête, allez, c'est gratuit, c'est sous licence GPLv3 et ça se configure en 2 minutes. Merci à Duggy Tuxy pour le tuyau !

PowerToys - Quand Microsoft corrige les manques de Windows

Par : Korben
24 mars 2026 à 12:25

Si vous êtes sous Windows 10 ou 11, vous avez forcément déjà ragé sur un truc tout bête. Genre redimensionner 50 photos d'un coup, renommer des fichiers en masse, ou juste organiser vos fenêtres proprement sur un écran ultra-large. Tout ça, Windows ne sait pas le faire nativement et c'est bien dommage ! Heureusement, c'est là que les PowerToys entrent en jeu... Si vous ne connaissez pas encore ça, sachez simplement qu'il s'agit d'un pack d'une trentaine d'utilitaires open source, maintenus par Microsoft eux-mêmes qui s'installent comme ceci dans un powershell lancé en admin :

winget install Microsoft.PowerToys -s winget

C'est gratuit, c'est dispo sur GitHub, et franchement, c'est à se demander pourquoi tout ça n'est pas intégré par défaut dans l'OS. C'est fou quand même !

Le premier truc qui change la vie, c'est FancyZones. Si vous avez un grand écran, le Snap Layout de Windows 11 c'est... limité. Avec FancyZones, vous créez vos propres zones de dépôt. Vous maintenez MAJ, vous glissez une fenêtre, hop, elle se cale exactement où vous voulez. Une fois qu'on y a goûté, impossible de revenir en arrière.

Autre indispensable c'est PowerToys Run. Tapez Alt + Espace et une barre de recherche épurée apparaît comme Spotlight sur Mac. Ça cherche vos applis, vos fichiers, ça fait calculatrice et conversion d'unités. Bref, vous pouvez oublier le menu Démarrer (et ses pubs).

Pour garder une fenêtre au premier plan quoi que vous fassiez, Win + Ctrl + T et c'est réglé. Always on Top, ça s'appelle et ça se matérialise sous la forme d'une bordure colorée qui apparaît pour vous montrer que la fenêtre est "clouée". Pratique quand vous suivez un tuto tout en tapant du code à côté.

Côté renommage de fichiers, PowerRename remplace avantageusement des outils comme Ant Renamer . Clic droit sur vos fichiers, search & replace avec support des regex pour les plus courageux. Du coup, fini le renommage un par un comme en 2003.

Y'a aussi Color Picker (Win + Maj + C) qui transforme votre curseur en pipette pour chopper n'importe quel code couleur à l'écran. Et Text Extractor (Win + Maj + T) qui fait de l'OCR instantané sur une zone de votre écran. Attention, ça marche pas toujours selon la police, mais ça évite de retaper du texte à la main.

Le plus dingue, c'est Crop and Lock. Vous faites Win + Ctrl + Maj + R et vous découpez une zone d'une appli pour en faire une fenêtre indépendante. Genre un graphique ou un flux d'infos. Sous le capot, ça crée une sorte de proxy visuel de la fenêtre originale, et vous pouvez même continuer à interagir dedans.

Et si vous avez deux PC côte à côte, Mouse Without Borders vous permet de les contrôler avec la même souris et le même clavier. Vous passez d'un écran à l'autre comme si c'était la même machine. Et d'ailleurs, si vous perdez votre curseur sur vos écrans géants, y'a aussi un utilitaire ici pour retrouver sa souris facilement.

Après j'ai pas tout listé. Y'a par exemple un éditeur de variables d'environnement hyper fastoche à utiliser, un aperçu du registre (pour éviter les bêtises), une fonction "Command Not Found" pour vous aider dans le terminal, un redimensionneur d'images intégré au clic droit...etc. Bref, à vous de fouiller mais ce que je retiens c'est que Microsoft a mis 30 ans à admettre que son OS avait des manques, et au lieu d'y répondre au cœur de Windows, ils ont fait ce side project devenu indispensable.

Et pour ceux qui veulent gérer leurs installs avec une interface graphique, allez voir WingetUI . C'est le complément parfait.

Voilà. Installez ça et remerciez-moi plus tard !

Claude Octopus - Faites débattre 3 IA sur votre code

Par : Korben
20 mars 2026 à 11:33

Claude Octopus , c'est un plugin Claude Code qui fait bosser trois IA ensemble sur le même problème. Codex pour l'implémentation, Gemini pour la recherche, Claude pour la synthèse, le tout avec un seuil de qualité à 75% qui bloque ce qui n'est pas au niveau.

En gros, au lieu de faire confiance à un seul modèle GPT ou Gemini, vous en mettez trois en parallèle et le plugin ne valide que si les résultats des trois moteurs convergent suffisamment.

Ça s'installe en deux commandes :

claude plugin marketplace add https://github.com/nyldn/claude-octopus.git
claude plugin install octo@nyldn-plugins

Et ensuite, faites un /octo:setup dans votre terminal et c'est parti.

Le truc fonctionne avec Claude seulement sous macOS, Linux ou Windows dès le départ, donc pas besoin de configurer Codex ou Gemini pour démarrer. Il vous guidera pour ça ensuite.

Le plugin embarque 39 commandes, 32 personas spécialisées (par exemple un auditeur sécu qui pense en OWASP, un architecte backend pour les API REST, un designer UI/UX basé sur BM25...etc) et 50 skills. Tout ça s'active ensuite automatiquement selon votre prompt. Vous tapez "wesh audite mon API ma gueule" dans votre terminal zsh et c'est le bon expert qui débarque. Et si vous ne savez pas quelle commande taper, /octo:auto fait le tri pour vous. C'est très pratique.

Le workflow principal suit la méthode Double Diamond (discover, define, develop, deliver) avec des quality gates entre chaque phase. Du coup un bout de code bâclé ne peut pas avancer au stade suivant. Pour les plus flemmards, y'a même un "Dark Factory Mode" qui prend un fichier Markdown en entrée et vous sort du code testé avec un score de satisfaction. Comme ça, vous n'avez qu'à relire que le rapport final au lieu de valider chaque PR manuellement.

Sous le capot, l'orchestrateur écrit en Bash lance Codex CLI et Gemini CLI en parallèle pour la recherche, puis Claude Sonnet 4.6 synthétise les deux réponses. Forcément, trois modèles en parallèle c'est plus lent qu'un seul donc faut compter 30 à 60 secondes par requête. Déso pas déso ^^.

Et pour la revue de code, c'est carrément, pardonnez-moi l'expression, "adversarial" puisque ce sont 4 agents (Codex logique, Gemini sécu, Claude archi, Perplexity pour les CVE ) qui postent des commentaires inline sur vos PR GitHub et y'a ensuite un "reaction engine" qui auto-répond aux échecs CI et aux review comments.

Ce projet c'est quasi l'œuvre d'un seul développeur dévoué et sa vélocité de développement est dingue... Ça vibe code à donf quoi ^^.

C'est gratuit, open source, par contre, chaque provider facture ses tokens normalement, du coup en mode multi-IA vous consommez mécaniquement 3× plus qu'avec Claude tout seul. Après si vous avez déjà un abonnement ChatGPT Plus ou Google AI Pro, les providers passent par OAuth sans clé API supplémentaire, donc ça sera inclus dans votre forfait.

Pour ceux qui utilisent déjà des plugins Claude Code au quotidien ou qui font tourner leurs agents dans des sandbox isolées , c'est le genre d'outil qui mérite un détour.

Bref, trois cerveaux valent mieux qu'un... reste à voir si besoins valent tout ce bordel à configurer !

Voicebox - Clonez des voix en local sans passer par le cloud

Par : Korben
20 mars 2026 à 11:22

Si vous cherchez un moyen de faire du clonage vocal en local sans filer vos fichiers audio à un service cloud, Voicebox devrait vous plaire. C'est un studio de synthèse vocale open source et gratuit qui tourne entièrement sur votre machine, et qui n'a rien à envier à ElevenLabs.

Concrètement, vous téléchargez l'app (dispo macOS, Windows et Docker), vous importez un extrait audio d'à peine 3 secondes minimum et hop, la voix est clonée. Pas besoin de compte, pas de limite d'utilisation, pas de "crédits" qui fondent comme neige au soleil !

Voicebox embarque 5 moteurs TTS différents plutôt que de tout miser sur un seul. Par exemple, Qwen3-TTS gère 10 langues avec des instructions en langage naturel du genre "parle lentement" ou "chuchote". Chatterbox Multilingual couvre 23 langues, de l'arabe au swahili en passant par le finnois.

LuxTTS lui est ultra-léger... genre 1 Go de VRAM et 150x plus rapide que le temps réel même sur CPU (anglais uniquement par contre) ! Et avec Chatterbox Turbo, vous pouvez injecter des tags comme [laugh], [sigh] ou [gasp] directement dans le texte pour que la voix rigole ou soupire à la demande (anglais aussi). Franchement, c'est pas mal du tout.

Tenez voici ce que ça donne avec ma voix (J'ai utilisé Qwen3)

Et pour ceux qui aiment bidouiller, y'a une API REST complète sur localhost:17493. Du coup, on peut intégrer la synthèse vocale dans ses propres scripts, automatiser la génération de podcasts ou monter un pipeline perso avec ffmpeg. Parce que bon, avoir un moteur vocal sans pouvoir l'utiliser dans ses projets, ça n'a pas d'intérêt.

Côté post-production, 8 effets audio sont dispos (pitch shift, reverb, delay, chorus, compression...) propulsés par pedalboard, la lib audio de Spotify. On peut aussi sauvegarder des presets et les appliquer par profil vocal. Y'a même un éditeur multi-pistes pour composer des conversations ou des narrations avec plusieurs voix sur une timeline.

Attention par contre, le projet est assez récent (c'est sorti en janvier) et côté Linux, y'a pas encore de binaires pré-compilés, faudra donc compiler from source mais je sais que vous adorez ça, les barbus ^^. Et le problème avec 5 moteurs différents, c'est que chacun a ses propres dépendances, donc ça prend pas mal en espace disque.

Sous le capot, c'est codé en Rust, ça utilise Tauri (pas Electron) car personne ne veut un genre de Chromium de 500 Mo pour lancer un simple outil audio. Sur Mac Apple Silicon, l'inférence passe par MLX et le Neural Engine et sur Windows et Linux, c'est CUDA, ROCm pour AMD, DirectML et même Intel Arc. D'ailleurs si vous voulez exploiter l'IA locale sur Mac pour d'autres usages, les Foundation Models d'Apple s'y prêtent aussi.

Si vous avez déjà joué avec MLX-Audio pour faire de la synthèse vocale en ligne de commande, Voicebox c'est finalement la version "app complète" avec interface graphique, gestion de profils vocaux et file d'attente de génération. C'est un peu le Ollama de la voix.

Voilà, si le clonage vocal en local vous branche, c'est sous licence MIT, c'est gratuit et ça tourne nickel ! Ah et si vous êtes un escroc qui cherche à cloner des voix pour arnaquer des gens, sachez que je viens de vous jeter un mauvais sort à travers la lecture de cet article. Attendez-vous à avoir des cheveux qui vous poussent sur la langue et des verrues dans les yeux, d'ici quelques semaines.

Merci à Lorenper pour la découverte.

Peon Ping - Donnez de la voix à vos agents IA

Par : Korben
19 mars 2026 à 14:12

"Something need doing ?" Si cette réplique vous file un frisson nostalgique, alors vous allez adorer Peon Ping !!

Il s'agit d'un outil CLI open source qui joue des voix de personnages de jeux vidéo quand vos agents IA ont besoin de votre attention. Vous lancez Claude Code, vous passez sur autre chose, et le moment venu, un peon de Warcraft III vous gueule "Work complete!" quand c'est terminé.

Concrètement, ce truc s'intercale via des hooks entre vous et votre IDE, comme ça, chaque événement (démarrage de session, fin de tâche, erreur, demande de permission) déclenche une réplique différente. Du coup le peon dit "Something need doing?" quand l'agent attend un input, et "I can't do that!" quand y'a une erreur.

Ça marche avec Claude Code, Cursor, Codex, et une dizaine d'autres outils (Kiro, Windsurf, Copilot, Gemini CLI, OpenCode, Antigravity, Rovo Dev CLI...), tout ça livré avec plus de 160 packs sonores dans 14 langues, de GLaDOS à StarCraft en passant par Zelda, Red Alert 2 ou Team Fortress 2.

Installation

Deux options principales. La plus propre, via Homebrew :

brew install PeonPing/tap/peon-ping

Sinon, le bon vieux curl :

curl -fsSL https://raw.githubusercontent.com/PeonPing/peon-ping/main/install.sh | bash

Et pour Windows, y'a un script PowerShell :

Invoke-WebRequest -Uri "https://raw.githubusercontent.com/PeonPing/peon-ping/main/install.ps1" -UseBasicParsing | Invoke-Expression

Par défaut, l'installeur télécharge 5 packs (Warcraft, StarCraft, Portal). Si vous voulez tout d'un coup :

curl -fsSL https://raw.githubusercontent.com/PeonPing/peon-ping/main/install.sh | bash -s -- --all

Attention par contre, sous WSL2, il faudra installer ffmpeg au préalable pour lire les formats audio autres que WAV.

Configuration

Une fois installé, lancez le setup :

peon-ping-setup

Ça détectera votre environnement, configurera les hooks et téléchargera les packs sonores en local. Ensuite, dès votre prochaine session Claude Code, vous entendrez un joli "Ready to work?" au démarrage.

Maintenant, si Warcraft c'est pas votre truc et que vous voulez changer de voix, genre passer à GLaDOS (une IA qui vous insulte pendant que vous codez avec une IA... ahahah), ça se fait en une commande :

peon packs use glados

Vous pouvez binder un pack à un dossier spécifique avec peon packs bind glados, comme ça, chaque projet a sa propre ambiance sonore, et si vous êtes du genre à aimer les trucs en français, il y a aussi des packs dans la langue du roi Arthur.

Moi j'en ai rien à foutre, j'installe les packs Age of Empires + Red Alert ou rien !!

Les commandes utiles

Tout passe par la commande peon :

peon status # Vérifier si c'est actif
peon volume 0.7 # Régler le volume
peon pause # Couper le son (réunion...)
peon resume # Remettre le son
peon packs list # Voir les packs installés
peon packs next # Passer au pack suivant
peon preview # Écouter un aperçu

Petit détail bien pensé, le système de "no repeats" fait qu'il ne jouera jamais le même son deux fois de suite dans la même catégorie. Et vous pouvez activer/désactiver chaque catégorie individuellement (greeting, acknowledge, complete, error, annoyed) si y'a des sons qui vous cassent les pieds.

En bonus, le terminal affiche le nom du projet et son statut dans le titre de l'onglet, avec un petit point indicateur quand c'est terminé. De grosses bannières desktop s'afficheront aussi quand un événement se produit, même si vous êtes sur une autre app.

Et si vous bossez en SSH ou dans un devcontainer, y'a un mode relay qui renvoie l'audio sur votre machine locale via peon relay --daemon. Pas mal du tout, hein ?

Le mode Peon Trainer

Maintenant, c'est là que ça part complètement en cacahuète car Peon Ping intègre un mode fitness qui vous rappelle de faire des pompes et des squats pendant que vous codez. L'objectif : 300 reps par jour, rien que ça !!

Dès que vous ouvrez une session, le Peon vous accueille avec un "Pushups first, code second! Zug zug!". Ensuite, toutes les 20 minutes environ, il vous relance. Et si vous ignorez, ça escalade jusqu'à "You sit too long! Peon say do pushups NOW!".

Pour logger vos reps en pleine session de code, pas besoin de quitter le terminal :

peon trainer on # Activer le mode trainer
/peon-ping-log 25 pushups # Logger 25 pompes
/peon-ping-log 30 squats # Logger 30 squats

Quand vous atteignez les 300, le Peon célèbre avec un "THREE HUNDRED! Human strong like orc now!" et vous laisse tranquille pour le reste de la journée. Pas mal comme incentive pour bouger un peu entre deux refactorisations, non ?

Pour ceux qui utilisent Claude Code au quotidien , y'a aussi un serveur MCP intégré qui permet à l'agent de choisir lui-même quel son jouer. L'agent qui communique en répliques de Warcraft... on vit une époque formidable ! Et si vous voulez aller plus loin, Claude Octopus permet carrément d'orchestrer plusieurs IA en parallèle.

D'ailleurs, les plus motivés peuvent carrément créer leurs propres packs via openpeon.com . Le format suit la spec ouverte CESP (Coding Event Sound Pack), comme ça n'importe quel IDE peut l'adopter.

Le Peon Pet

Et le truc le plus mignon du projet c'est ce petit orc animé qui squatte un coin de votre écran. Ce Peon Pet réagit en temps réel aux événements de Claude Code. Il dort quand rien ne se passe, se réveille au démarrage d'une session, tape frénétiquement du clavier quand l'agent bosse, et fait sa danse de la victoire quand la tâche est terminée. C'est du Electron + Three.js, le tout en open source bien sûr.

En résumé, c'est votre Tamagotchi de développeur, sauf qu'au lieu de le nourrir, c'est lui qui vous engueule pour bosser.

Voilà, si checker votre terminal toutes les 30 secondes pour voir si Claude Code a avancé dans sa life, ça vous saoule, c'est le genre de petit outil con mais génial qui change la vie.

Zug zug !

Z80 Sans, la police de caractères qui désassemble du code machine toute seule

Par : Korben
17 mars 2026 à 13:56

Un développeur a créé une police OpenType capable de convertir des opcodes hexadécimaux du processeur Z80 en instructions assembleur lisibles.

Il suffit de coller le code machine dans un traitement de texte, de changer la police, et les mnémoniques s'affichent en clair. Le projet, disponible sur GitHub, détourne les tables de substitution de glyphes de manière plutôt rigolote.

Une police, pas un logiciel

L'idée est en fait assez simple. Vous balancez une suite de caractères hexadécimaux dans LibreOffice Writer, puis vous sélectionnez cette police, Z80 Sans donc, et sous vos yeux ébahis, le texte se transforme en instructions assembleur.

Pas besoin d'installer un désassembleur, pas besoin de ligne de commande. La police fait tout le travail.

Derrière cette apparente simplicité, le développeur nevesnunes a exploité deux composants du standard OpenType que l'on retrouve habituellement dans des usages bien plus classiques : la table de substitution de glyphes (GSUB) et la table de positionnement (GPOS).

Ce sont les mêmes mécanismes qui permettent d'afficher correctement l'arabe ou de fusionner deux lettres en une ligature comme le "æ". Ici, ils servent à reconnaître des séquences hexadécimales et à les remplacer par les mnémoniques Z80 correspondants.

458 752 combinaisons à gérer

Le Z80 est un processeur 8 bits qui accepte des adresses sur 16 bits et plusieurs registres comme opérandes. Résultat : une seule instruction peut donner jusqu'à 458 752 combinaisons possibles.

Et comme les octets hexadécimaux sont encodés dans un ordre différent de celui dans lequel ils doivent être affichés en assembleur, le problème se corse vite. Les adresses en little-endian et les offsets signés en complément à deux ajoutent encore une couche de difficulté.

Pour s'en sortir, nevesnunes a construit un parseur par descente récursive qui génère automatiquement toutes les règles de substitution nécessaires. Chaque quartet (0 à f) dispose de ses propres glyphes, soit 96 au total pour la partie numérique.

Le tout repose sur une édition directe des fichiers .ttx, la représentation XML des données de police, à partir de Noto Sans Mono et Droid Sans Mono.

Du détournement de police à l'art de la bidouille

Z80 Sans n'est pas le premier projet à détourner les capacités des polices OpenType. On a déjà vu Fontemon, un jeu vidéo complet caché dans une police, ou encore Addition Font, capable d'additionner deux nombres rien qu'avec le rendu typographique.

Il y a même eu Llama.ttf, qui embarquait un modèle d'IA directement dans un fichier de police. Mais un désassembleur complet pour un jeu d'instructions entier, c'est quand même autre chose en termes de complexité.

Visiblement, le projet comporte encore quelques petits bugs d'affichage sur certaines instructions complexes, et le code est qualifié par son propre auteur de "qualité CTF", ce qui veut dire bidouille assumée.

Mais bon, on parle d'un type qui a réussi à faire rentrer un désassembleur Z80 dans une police de caractères. Les puristes de l'assembleur apprécieront le côté complètement absurde de la démarche, et les fans de rétro-informatique vont adorer.

Source : Lobste.rs

GB Recompiled - Vos ROMs Game Boy traduites en C natif

Par : Korben
16 mars 2026 à 12:01

La recompilation statique , je vous en avais parlé avec Zelda 64 et Sonic Unleashed. Le principe, en gros c'est qu'au lieu d'émuler bêtement le processeur et la mémoire d'origine, on traduit tout simplement le code assembleur du jeu directement en C natif. Du coup le jeu tourne nativement sur votre machine, sans couche d'émulation.

Et la bonne nouvelle du jour c'est que cette technique vient de parvenir jusqu'à la Game Boy avec GB Recompiled .

Vous filez à cet outil un fichier .gb et il vous sort OKLM un dossier avec du code C, un CMakeLists.txt et tout ce qu'il faut pour le compiler. Vous lancez cmake puis ninja, et votre vieux Pokemon Bleu tourne nativement sur votre PC plutôt que de passer par un émulateur qui simule le processeur Z80 à chaque frame.

Plutôt chouette non ???

Pour réussir ce tour de force, le recompilateur parse les opcodes Z80 de la cartouche, construit un graphe de contrôle de flux et résout les sauts indirects (genre les tables de jump, le truc qui rend la décompilation galère parce que l'adresse de destination dépend de la valeur d'un registre). Le taux de découverte dépasse alors les 98% même sur des RPGs bien touffus... pas mal pour de l'analyse purement statique !

Côté compatibilité, 7 jeux sont pour le moment validés : Tetris, Pokemon Blue, Donkey Kong Land, Kirby's Dream Land, Zelda Link's Awakening, Castlevania et Super Mario Land.

Par contre, attention, tous les jeux ne passent pas encore. Le runtime embarque un rendu PPU scanline , un système audio 4 canaux et les contrôleurs mémoire MBC1, MBC2, MBC3 et MBC5. Et comme tout ça tourne avec SDL2, du coup ça compile tranquillou sur macOS, Linux et Windows sans broncher !

Y'a aussi des outils de vérification assez bien pensés. Par exemple, un mode différentiel lance le binaire recompilé et un interpréteur Z80 côte à côte, puis compare l'exécution cycle par cycle avec une implémentation de référence. Tant que ça colle, le portage est fidèle !

Et y'a aussi un script Python basé sur PyBoy qui génère des traces d'exécution pour repérer les instructions que l'analyse statique aurait loupées. Voilà, ce que je veux vous dire c'est que c'est pas juste un traducteur tout bête. Y'a vraiment tout un pipeline de tests derrière pour assurer le meilleur portage possible.

Si vous avez suivi les autres projets autour de la portable de Nintendo, comme le GB Interceptor qui espionne le bus mémoire avec un adaptateur USB ou le Game Bub et son FPGA Xilinx, GB Recompiled choisit plutôt l'angle purement logiciel. Là où le FPGA reproduit les circuits et l'émulateur simule le CPU, la recompilation traduit le code source. Ce sont 3 philosophies différentes mais qui ont un seul et même objectif : Faire en sorte que ces jeux ne crèvent pas avec leurs cartouches en plastique gris.

Pour tester chez vous, c'est du classique : un petit terminal, un petit git clone, un cmake, un ninja, et vous passez votre fichier .gb au recompilateur.

git clone https://github.com/arcanite24/gb-recompiled.git
cd gb-recompiled
cmake -G Ninja -B build .
ninja -C build

# Générer le code C depuis la ROM
./build/bin/gbrecomp path/to/game.gb -o output/game

# Compiler la nouvelle version en C
cmake -G Ninja -S output/game -B output/game/build
ninja -C output/game/build

# Optionnel: Baisser ou augmenter le niveau d'optimisation
cmake -S output/game -B output/game/build -DGBRECOMP_GENERATED_OPT_LEVEL=2

# Et on lance !
./output/game/build/game

Voilà comment avec juste quelques commandes, votre bonne vieille cartouche GB peut enfin tourner nativement sur votre laptop. Notez que le support Game Boy Color est dans les tuyaux, ainsi qu'un build Android.

Le projet est franchement actif et ça sent très bon pour la suite !

WinCalls - L'appli qui raccroche au nez des démarcheurs

Par : Korben
16 mars 2026 à 10:55

Le démarchage téléphonique, on n'en peut plus !! Y'a bien Bloctel qui devait régler le problème... sauf que notre téléphone continue de sonner 3 fois par jour avec des histoires de CPF ou de panneaux solaires. Pas ouf quoi... Du coup, un enquêteur en fraude connu du web a décidé de créer sa propre appli Android pour raccrocher automatiquement au nez de ces FDP de spammeurs.

WinCalls , c'est le nom de la bête. Vous l'installez sur votre smartphone, vous activez la protection, et tadaaa, l'appli détecte les coups de fil de démarchage et raccroche toute seule avant même que votre téléphone ait le temps de sonner. Y'a même pas de notif, c'est clean ! Le spammeur parle dans le vide et vous, vous continuez votre vie peinard.

Le truc cool, c'est le bonhomme derrière. Centho , c'est un enquêteur spécialisé dans la fraude, qui traque les arnaqueurs au quotidien parce que c'est littéralement son métier, du coup forcément, il sait comment les démarcheurs fonctionnent et comment leur couper le sifflet.

Bon, vous allez me dire qu'Android a déjà un filtre anti-spam intégré. C'est vrai. et sur les Pixel, il peut même bloquer les démarcheurs automatiquement mais sur la plupart des autres smartphones, il se contente juste de vous signaler l'appel et c'est ensuite à vous de décider si vous décrochez ou pas. Donc ça reste relou.

La différence avec WinCalls, c'est donc la méthode car l'appli se base en autre sur les préfixes de numéros réservés au démarchage par l'ARCEP (genre les 0162, 0163...) pour identifier les appels commerciaux et raccrocher directement. Tout se fait donc en local sur votre téléphone. Contrairement à d'autres applis qui aspirent votre carnet d'adresses pour alimenter leur base (coucou Truecaller), ici zéro données transmises à l'extérieur. C'est propre ! Merci Centho !

Après c'est Android uniquement donc les possesseurs d'iPhone devront se débrouiller autrement (le filtre intégré d'iOS fait à vrai dire un boulot correct, mais c'est pas le même niveau... Moi j'utilise Begone et l'appli Orange Téléphone sous iOS).

Ah et surtout c'est totalement gratuit. Le projet fonctionne uniquement grâce aux dons des utilisateurs qui en ont marre de se faire harceler et y'a même une communauté Discord pour remonter des faux positifs ou poser vos questions, bref c'est bien fichu.

Si la sécurité de votre téléphone Android vous préoccupe de manière plus globale, c'est un bon complément. Et pour ceux qui se demandent comment se débarrasser définitivement des appels indésirables, la combo c'est de s'inscrire sur Bloctel (ça filtre les démarcheurs légaux... les 3 qui restent) et d'utiliser WinCalls qui agit à un niveau différent en bloquant via les préfixes ARCEP. Les deux se complètent plutôt bien.

C'est gratuit et c'est par là . Merci à Gotcha57 pour l'info !

Promptfoo - Fini le doigt mouillé pour tester vos LLM

Par : Korben
16 mars 2026 à 09:04

Si vous utilisez des LLM dans vos projets, vous savez que le plus flippant c'est pas de les faire fonctionner (quoique..lol) mais c'est de vérifier qu'ils ne disent pas n'importe nawak ! Et pour cela, il y a Promptfoo , un outil CLI open source qui permet de tester vos prompts, comparer les modèles et scanner les vulnérabilités de vos apps IA, le tout avec un simple fichier YAML.

Ça s'installe en une commande (npx promptfoo@latest init) et vous voilà avec un fichier promptfooconfig.yaml où vous définissez vos prompts, les modèles à tester et les assertions à vérifier.

Genre, vous voulez que votre traduction contienne bien "Bonjour le monde", Hop, un petit tour dans le YAML, assertion contains, et c'est terminé. Plus besoin de relire 200 outputs à la main en plissant les yeux ! Par contre, attention : le YAML peut vite devenir un plat de spaghetti si vous testez 15 prompts sur 8 modèles en parallèle. Commencez donc petit.

La matrice d'évaluation de promptfoo, sobre mais efficace

L'outil supporte plus de 60 providers différents comme OpenAI, Claude, Gemini, Llama via Ollama, Mistral... vous mettez tout ça dans le même fichier de config et promptfoo les fait tourner côte à côte. Vous voyez alors directement lequel hallucine le moins, lequel répond le plus vite, lequel coûte une blinde pour un résultat bof bof. Le tout avec des assertions typées : contains, llm-rubric (où un autre LLM note la réponse), javascript pour vos critères custom, et même cost et latency pour garder un œil sur la facture.

Après tester si votre chatbot traduit correctement, c'est sympa, mais vérifier qu'il se fait pas jailbreaker par un "ignore toutes tes instructions", c'est quand même plus critique ! Et c'est pourquoi Promptfoo embarque un scanner de vulnérabilités qui couvre plus de 50 types d'attaques : injections de prompts directes et indirectes, fuites de données personnelles, biais, contenu toxique, escalade de privilèges sur les outils...

Il utilise pour cela des techniques comme le Tree of Attacks with Pruning, un algo qui explore plusieurs chemins d'attaque en parallèle pour trouver les failles sans brute force. Si vous voulez creuser le sujet du red teaming LLM, DeepTeam est un bon complément côté Python.

Le dashboard red teaming de promptfoo avec les vulnérabilités détectées

C'est surtout cette intégration CI/CD qui fait la différence. Vous pouvez brancher promptfoo dans votre pipeline GitHub Actions ou GitLab et chaque pull request qui touche un prompt est automatiquement testée. Bah oui, on a des tests unitaires pour le code depuis 30 ans, mais pour les prompts, jusqu'ici c'est même plutôt le far west !

Bon après, faut pas se mentir non plus, écrire des assertions pour du texte non-déterministe, c'est un autre sport que du assertEqual. Le llm-rubric qui utilise un LLM pour juger un autre LLM, c'est pas con mais ça ajoute aussi une couche de "flou" donc à vous de trouver le bon dosage dans vos tests.

L'équipe a annoncé rejoindre OpenAI début mars ce qui est plutôt une bonne nouvelle pour le développement du projet... mais pas forcément pour l'indépendance quand on évalue les modèles OpenAI avec un outil OpenAI (on verra bien hein ^^ lol).

L'orchestration tourne en local sur votre machine (les prompts partent chez les providers pour l'évaluation, mais vos fichiers YAML, vos logs et résultats JSON restent sur votre disque dur), c'est sous licence MIT, et y'a déjà plus de 300 000 utilisateurs, ce qui est quand même pas mal !

Voilà, comme ça plutôt que de croiser les doigts à chaque déploiement, en espérant ne pas vous faire virer, autant tester ses prompts comme on teste son code.

OpenRAG - Le RAG clé en main qui vous évite 3 jours de galère

Par : Korben
16 mars 2026 à 08:19

Monter un pipeline RAG, c'est un peu le parcours du combattant... entre le choix de la base vectorielle, le modèle d'embedding, l'orchestrateur, le parser de documents, vous en avez pour des heures de config avant de pouvoir poser la moindre question à vos PDF.

Mais c'était sans compter sur OpenRAG qui emballe tout ça dans un seul paquet prêt à l'emploi !

En gros, c'est un package open source (Apache 2.0) qui vous colle un orchestrateur visuel, un moteur de recherche vectorielle et un parser de documents hyper costaud, le tout déjà branché ensemble. Bon, dit comme ça, on dirait juste un assemblage de trucs existants... sauf que l'architecture est propre (FastAPI derrière, Next.js devant) et que tout est câblé d'entrée.

L'installation tient en une commande : uv run openrag (il vous faudra Python 3.10+ et uv, le gestionnaire de paquets rapide en Rust) et ensuite vous aurez un serveur local avec une interface de chat prête à bouffer vos documents. Vous uploadez vos fichiers (PDF, Word, HTML, Markdown...), le système les découpe, les indexe, et vous pouvez commencer à poser des questions dessus. Pas besoin de choisir un modèle d'embedding, de configurer une base Chroma ou Qdrant, ni de câbler un pipeline LangChain à la main. C'est plutôt confortable comme outil !

Et c'est pas juste un chatbot documentaire puisque la plateforme déploie une couche agentique qui va bien au-delà de la simple recherche de similarité. En fait, quand vous posez une question, le système ne se contente pas de chercher le passage le plus proche dans vos documents... il reformule, il croise plusieurs sources, il re-classe les résultats par pertinence. Et tout ça se configure visuellement dans Langflow, en mode drag-and-drop, sans écrire une ligne de code.

L'interface d'OpenRAG

D'ailleurs, pour ceux qui veulent aller plus loin, y'a des SDK Python et JavaScript pour intégrer ça dans vos propres apps. Un petit pip install openrag-sdk et vous pouvez interroger votre base documentaire depuis n'importe quel script. Et l'autre truc super chouettos, c'est le serveur MCP intégré : un pip install openrag-mcp et vous connectez directement votre base de connaissances à Claude Desktop ou Cursor. J'utilisais pour ma part LEANN jusqu'à présent mais je pense que je vais basculer rapidement sur OpenRAG. Et grâce à ça votre IDE / Claude Code / Ce que vous voulez, a accès à toute votre documentation technique sans quitter l'éditeur.

Côté technique, le projet est porté par l'équipe de Langflow (DataStax), ce qui explique la qualité de l'intégration. Et le déploiement se fait aussi en Docker, Podman ou Kubernetes pour ceux qui veulent du plus fiable.

Après comme c'est une solution tout-en-un, ça embarque pas mal de dépendances. OpenSearch à lui seul est connu pour être gourmand en ressources et si vous avez déjà votre propre stack RAG bien rodée avec une base vectorielle légère comme LEANN , c'est peut-être overkill. En fait, OpenRAG s'adresse plutôt à ceux qui partent de zéro ou qui veulent un truc clé en main pour une équipe, parce que tout est déjà branché.

Prêt à chatter avec vos docs ?

Le vrai intérêt par rapport à un assistant comme Khoj , c'est le côté plateforme extensible. Langflow vous permet de construire des workflows RAG personnalisés visuellement, d'ajouter des étapes de filtrage, de brancher plusieurs LLM en parallèle, ou de créer des agents spécialisés par type de document. C'est donc clairement plus "usine" que "bricolage"... mais parfois c'est ce qu'il faut, surtout si vous bossez en équipe et que le bricolage perso finit toujours par casser au bout de 3 mois.

Si vous en avez marre de bricoler vos pipelines de recherche augmentée à la main, allez jeter un œil !

psmux - Le vrai tmux natif pour Windows (sans WSL)

Par : Korben
16 mars 2026 à 08:08

Splitter son terminal en plusieurs panneaux, gérer des sessions persistantes, le tout avec les mêmes raccourcis que tmux... mais sous un bon gros Windows des familles, nativement, en Rust et sans avoir besoin de se galérer avec WSL !

C'est exactement ce que fait psmux , un multiplexeur de terminal conçu pour PowerShell et cmd.exe qui utilise directement l'API ConPTY de Windows 10/11. Du coup, pas de couche d'émulation Unix, pas de Cygwin, pas de MSYS2... ça tourne direct sur votre bécane.

Pour ceux qui débarquent, un multiplexeur de terminal ça permet de découper votre console en plusieurs zones (des "panes" que j’appellerai "panneau" parce que merde c'est + français), de jongler entre plusieurs sessions, et surtout de retrouver votre boulot exactement là où vous l'avez laissé même après une déconnexion. Sous Linux, tout le monde utilise tmux pour ça mais sous Windows, jusqu'ici c'était soit WSL (installer tout un sous-système Linux juste pour splitter un terminal, c'est un peu overkill quand même !), soit des splits basiques via Windows Terminal qui ne gèraient ni les sessions persistantes ni le détachement. Snif...

psmux en action sous PowerShell

L'installation est rapide. Un petit winget install psmux et hop, c'est réglé. Ça passe aussi par Cargo, Scoop ou Chocolatey pour les puristes. Ensuite, vous tapez psmux dans PowerShell 7 et vous retrouvez vos marques : Ctrl+B pour le prefix, les mêmes commandes split-window, new-session, attach... L'outil implémente 76 commandes tmux avec plus de 126 variables de formatage. Et y'a même un mode copie Vim avec 53 raccourcis clavier.

Bref, si vous avez une mémoire musculaire ultra développée pour tmux, vous êtes chez vous !

Et le truc cool, c'est que psmux lit directement vos fichiers .tmux.conf existants. Du coup, vos raccourcis custom et pas mal de thèmes (Catppuccin, Dracula, Nord...) fonctionneront directement, même si les configs tmux les plus complexes avec des scripts bash ou TPM peuvent nécessiter des ajustements. Et y'a aussi Tmux Plugin Panel pour vous accompagner dans l'ajout de plugins et de thèmes.

Alors je vous connais les raloux sous OuinOuin, vous allez me dire "Windows Terminal fait déjà des splits avec Alt+Shift+D"... sauf que non, c'est pas pareil. Windows Terminal découpe votre fenêtre visuellement mais ne gère ni les sessions persistantes, ni le scripting, ni le détachement. Avec psmux, vous lancez une session le lundi, vous fermez votre terminal, vous revenez le mardi et tout est encore là : vos panneaux, vos processus, votre historique. C'est ça la vraie différence avec un simple split visuel.

D'ailleurs, si vous utilisez Claude Code ou d'autres agents IA en ligne de commande , psmux intègre un support pour les agent teams qui permet à chaque agent de spawner dans son propre panneau automatiquement.

Côté support souris, c'est complet : clic pour sélectionner un panneau, drag pour redimensionner les bordures, molette pour remonter dans l'historique du buffer. Tout est activé par défaut, pas besoin de rajouter set -g mouse on comme sous tmux. L'outil tourne sous Windows 10 et 11, et le projet est sous licence MIT.

Après c'est encore jeune et y'a quelques galères connues notamment le support des caractères CJK et UTF-8 multi-octets qui peut se planter comme une merde sur des textes longs. Et split-window -c ne préserve pas toujours le répertoire courant (oubliez pas de vérifier votre pwd après un split). Par contre, le dev répond en quelques heures, et des PR externes sont mergées régulièrement... donc c'est bon signe !

Bref, c'est propre, c'est natif, et ça lit vos .tmux.conf ! Que demande le peuple barbu emprisonné sous Windows, finalement ? Eh bien pas grand chose de plus pour être heureux.

❌
❌