Lateo.net - Flux RSS en pagaille (pour en ajouter : @ moi)

🔒
❌ À propos de FreshRSS
Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
Hier — 24 octobre 2026Informatique & geek

eSIM Dubaï 2026 : comparatif des meilleures eSIM, prix et couverture data aux Émirats arabes unis

eSIM Dubaï : comparatif Ubigi, Holafly, GoMoWorld, Airalo, Saily. Prix, débits 5G, réseaux e& et du, blocage VoIP : choisissez votre eSIM !

L’article eSIM Dubaï 2026 : comparatif des meilleures eSIM, prix et couverture data aux Émirats arabes unis est apparu en premier sur Toms Guide.

eSIM Dubaï

full

eSIM Dubaï

thumbnail
À partir d’avant-hierInformatique & geek

Réduire sa facture de gaz : cinq outils pour mieux gérer votre consommation

On connaît le montant de sa mensualité de gaz, mais beaucoup moins ce que l’on consomme au fil des semaines. Grâce aux relevés du compteur communicant Gazpar, des outils gratuits peuvent vous aider à faire le lien entre vos habitudes et vos dépenses, pour faire des économies et éviter les mauvaises surprises.

L’article Réduire sa facture de gaz : cinq outils pour mieux gérer votre consommation est apparu en premier sur Toms Guide.

image

full

image

thumbnail

Test du SSD NVMe 1 To Fanxiang dans mon NAS

- Contient des liens affiliés Amazon -

Je vous parlais hier de mon NAS UGREEN DXP8800 Ultra , ce 8 baies dans lequel j'ai regroupé mes deux anciens serveurs et des dizaines de téraoctets de données. Fanxiang, une marque chinoise de stockage qu'on croise partout sur Amazon, m'a envoyé un SSD NVMe de 1 To au format M.2, cette petite barrette qui se branche directement sur la carte mère.

Ça tombe plutôt bien, le NAS garde justement deux emplacements M.2 en PCIe 4.0 à côté de ses huit tiroirs.

Les disques durs mécaniques encaissent très bien les gros transferts qui s'enchaînent, mais ils s'écroulent dès qu'on leur demande des milliers de petits fichiers d'un coup, et c'est exactement le genre de charge que génèrent les applications d'un NAS.

UGOS Pro, le système maison d'UGREEN, propose deux façons d'utiliser la barrette. Soit en cache, et la machine recopie alors toute seule les fichiers les plus consultés sur le SSD pour les servir plus vite, soit en volume de stockage à part entière. Un seul SSD limite le cache à la lecture, il en faut deux pour accélérer aussi les écritures.

De mon côté je pars sur un volume dédié, pour y installer mes conteneurs Docker, les bases de données des applications et les métadonnées de Plex, ces milliers de vignettes et de fiches que le serveur consulte en permanence. Les huit disques mécaniques ne travaillent plus que pour les fichiers eux-mêmes.

La gamme PCIe 4.0 de Fanxiang est donnée pour des pointes à 7 300 Mo/s en lecture. Sauf que dans un NAS, tout passe par le réseau, et mes deux ports 10 Gb/s plafonnent les transferts autour de 1 Go/s, soit sept fois moins que ce que la barrette sait encaisser. Le gain, il est ailleurs, sur ces fameux petits accès où n'importe quel NVMe écrase un disque mécanique.

Du coup, un modèle abordable comme ce Fanxiang me semble exactement le bon choix pour cet usage. Payer un SSD haut de gamme pour le coller derrière un réseau qui nivelle tout n'aurait aucun sens, d'autant que la marque annonce sur cette gamme 700 To d'écritures cumulées avant usure, de quoi voir venir.

Et si vous n'avez pas de NAS, la même barrette vous servira forcément. Elle se glisse dans un PC de bureau comme dans un portable récent, dans une PS5 à condition de lui ajouter un dissipateur, ou dans un boîtier externe qui la transforme en disque de poche très rapide pour un Mac.

Comptez entre 130 et 170 euros le To chez Fanxiang en ce moment, la flambée de la mémoire qui fait déjà grimper les disques durs n'épargne pas les SSD.

Prime Video : livraison de sueur froide avec le top des films d’horreur pour Halloween 2026

Pas besoin de perdre quarante-cinq minutes à faire défiler le catalogue pour trouver de quoi flipper cette année. Pour Halloween 2026, Prime Video aligne un cocktail d'épouvante particulièrement corsé. On fait le tri pour vous.

Meilleure eSIM Turquie : quels forfaits choisir pour rester connecté sans hors forfait ?

Quelle eSIM choisir pour la Turquie ? Comparatif des forfaits Ubigi, Holafly et GoMoWorld, prix, usages, avis et conseils avant le départ.

L’article Meilleure eSIM Turquie : quels forfaits choisir pour rester connecté sans hors forfait ? est apparu en premier sur Toms Guide.

Istanbul

full

Istanbul

thumbnail

Carafe - Pour lancer vos jeux PC directement sur la Switch

Par : Korben ✨

Hier, je suis tombé sur Carafe , une application pour Windows qui devrait vous intéresser si vous avez une Nintendo Switch crackée. En effet, son job c'est de transformer le dossier d'un jeu PC en titre compatible pour Nintendo Switch. Une fois installé, le jeu aura son nom et son icône présent dans le menu HOME de la console. Et surtout, il démarrera comme n'importe quel autre jeu Switch. Et tout ça, sans avoir de fichier à copier à la main sur la carte SD.

Mais qu'est-ce donc que cette sorcellerie me direz-vous ?

Eh bien au lancement, Carafe vous propose de choisir le répertoire où se trouve votre jeu ainsi que l'exécutable qu'il faut lancer, puis vous propose ensuite un nom, l'icône qui va bien et une config pour votre manette. Et ensuite il va fabriquer à partir de tout ça un NSP et il ne vous restera plus alors qu'à brancher votre Switch en USB avec DBI lancé dessus. Et Carafe copiera le fichier sur la carte SD ou dans la mémoire de la console directement.

En regardant plus près le contenu du NSP, vous y trouverez le jeu, ses réglages et un runtime construit sur Autorun , c'est-à-dire l'ancien Wine-NX qui fait tourner Wine sur le système de la Switch. La compatibilité revient donc à Autorun et n'est pas du fait de Carafe qui est juste un moyen de packager les jeux.

Autorun sait déjà créer un raccourci HOME Menu pour un jeu, mais il faut d'abord copier le dossier du jeu sur la carte SD (ou une clé USB), puis l'ajouter dans son lanceur. Carafe emballe ensuite tout ça dans un seul titre, avec sa propre sauvegarde gérée par la console comme pour un vrai jeu, et un écran de chargement pendant que Windows démarre, au lieu d'un écran noir.

Après, Autorun se déclare lui-même comme étant expérimental. Cela veut dire que certains jeux tournent bien, beaucoup démarrent puis s'arrêtent, et les jeux 3D gourmands ne tourneront peut-être jamais sur votre console de 2017 dont les 4 Go de mémoire sont partagés avec le système.

Carafe est un projet encore très jeune, puisqu'il est sorti il y a quelques jours seulement. Donc si vous voulez essayer, je vous conseille de commencer par un jeu un petit peu léger, et surtout d'aller consulter la page Compatibility du projet, qui vous permet à la fois de voir un peu ce que les autres ont fait avec cet outil, mais aussi de remonter votre propre expérience.

Côté prérequis, comme je vous le disais, il vous faut une Switch sous Atmosphère avec les sigpatches, DBI sur la console, et un PC sous Windows 10 ou 11 en x64 ou ARM64 (pas de macOS ni de Linux pour l'instant). L'installeur n'est pas encore signé, alors Windows va vous faire peur avec son "éditeur inconnu" (Faites donc "Informations complémentaires" puis "Exécuter quand même").

Et pour le risque côté Nintendo, l'installation de NSP homebrew est en général signal de bannissement immédiat, juste après la piraterie. Donc si vous êtes déjà banni, vous vous en foutez, mais si c'est pas le cas, faites bien attention. Et ça, c'est pour tous les NSP de ce genre, et pas seulement pour ceux de Carafe.

Donc pensez bien à couper le wifi pendant que vous installez ça, et pendant que vous y jouez. Carafe est sous licence GPL-3.0 ou ultérieure, et à récupérer sur GitHub pour ceux qui veulent tester !

Où regarder tous les films James Bond en streaming en France ?

Avis aux amateurs de martinis et de gadgets hors de prix : se faire un marathon 007 en France relevait encore récemment du casse-tête juridique. Entre contrats d'exclusivité temporaires et valse des droits, les 25 films officiels de la franchise se dispersaient régulièrement sur le Web. Où voir les films ?

Netflix : les meilleurs films d’horreur pour le parfait Halloween 2026

Octobre est là, le thermomètre se casse la figure et l'envie de se vautrer dans son canapé revient avec Halloween. Seul souci, le catalogue Netflix déborde de productions horrifiques insipides. Voici 9 films qui valent vraiment votre soirée.

Ventoy - La clé de secours du Steam Deck rejoint vos ISO

Par : Korben ✨

Ventoy , je vous en ai déjà parlé à de multiples reprises et vous connaissez ça mieux que moi ! C'est cet outil open source qui transforme une clé USB en clé bootable sur laquelle vous glissez vos ISO comme de simples fichiers, sans avoir à reformater à chaque fois. Et ça c'est super pratique puisque comme ça, au démarrage de votre ordi, vous avez un menu qui vous laisse choisir sur quoi démarrer... Windows 10 ? Windows 11 ? Un Linux ? Mais il lui manquait tout de même quelque chose ! Pouvoir lancer SteamOS !

Et c'est chose faite depuis aujourd'hui puisque Ventoy vient de se voir ajouter du support, encore expérimental certes, des images de récupération de SteamOS, c'est à dire celles que Valve propose sur son site d'assistance de Steam afin de réinstaller la console.

Le souci avec SteamOS venait de l'image elle-même, qui n'est pas une ISO mais un fichier .img contenant un disque GPT brut, et que Ventoy ne parvenait pas à démarrer convenablement. Mais c'était sans compter sur matte-schwartz, un des contributeurs au projet qui a proposé un correctif en juillet, sur lequel le développeur de Ventoy a ensuite apporté ses propres optimisations avant de l'intégrer définitivement dans le projet.

Par contre, "cuidado con el ISO" car Valve distribue cette image compressée, en .img.bz2 ou en .img.zip, et Ventoy ne lit PAS le .img.bz2. Donc vous devrez d'abord décompresser ce truc .img (avec bunzip2 pour le .bz2, par exemple), puis la copier sur la clé avec le reste.

L'autre gros morceau de cette nouvelle version de Ventoy concerne Linux. Maintenant, quand vous booterez une distrib live direct depuis votre clé USB, la partition qui contient vos ISO sera accessible directement depuis la barre latérale du gestionnaire de fichiers. Et ça c'est cool !

Cette partition Ventoy porte aussi désormais un nom stable, /dev/mapper/VentoyPart, et les icônes de disque en double qui encombraient la barre latérale de certaines distributions ont totalement disparu ! Et si la vôtre n'est pas dans la liste et vous répond "device busy", ne stressez pas, suffit juste de monter /dev/mapper/VentoyPart à la mano.

Et s'il n'existe pas, lancez ces deux commandes puis réessayez :

sudo udevadm trigger
sudo udevadm settle

Voilà et pour le reste des news, cette 1.1.18 corrige le démarrage de la bêta de Fedora 45, la vérification de version du Secure Boot qui échouait avec Windows et WinPE, ainsi que la persistance qui lâchait de temps en temps sous Ubuntu Desktop. Et CloneZilla peut maintenant monter la partition des ISO lui aussi.

Si ça vous chauffe de mettre à jour, récupérez la version sur la page GitHub de la release , puis passez par la mise à jour plutôt que par une nouvelle installation, comme ça vos ISO resteront alors en place.

Source : Neowin

AnyPS5 - En route pour la recompilation de jeux PS5

Par : Korben ✨

Une PS5, au fond, c'est juste un PC comme les autres. Elle a un processeur AMD x86-64 (c'est du Zen 2, en gros un Ryzen) ainsi qu'une puce graphique RDNA 2, ce qui est grosso merdo la même came que ce qu'il y a dans votre tour de gamer.

Et pour ça que le pari d' AnyPS5 est possible ! L'objectif de ce projet c'est qu'au lieu de lancer un n-ième émulateur qui "imite" la console pendant que vous jouez, l'outil prend le code binaire d'un jeu PS5, le décompile et le recompile intégralement sous la forme d'un vrai programme Linux ou Windows, que votre système peut ensuite lancer comme n'importe quel autre.

Pour y parvenir, ce projet repose sur 2 briques. D'abord il y a un "relinker", qui lit l'exécutable du jeu et le reconstruit au format natif de la cible, c'est à dire ELF pour Linux ou PE pour Windows. Mais comme le jeu continue d'appeler des fonctions système PS5 que votre PC ne connait pas, AnyPS5 réimplémente les bibliothèques de Sony, libc, libkernel et toute la famille libSce, en bibliothèques dynamiques que le chargeur de votre OS peut alors lier au programme converti.

Résultat, le jeu tourne comme un processus normal, sans runtime à part... C'est beau non ?

Mais tout n'est pas réécrit d'avance pour autant puisque côté graphique, le jeu envoie ses files de commandes comme s'il causait à la puce AMD de la console, et c'est donc la version maison du projet de libSceAgcDriver qui les interprète pendant l'exécution. Les shaders RDNA, eux, sont recompilés en SPIR-V pour Vulkan quand le jeu les demande, puis rangés dans un cache sur le disque pour les lancements suivants. Donc ça veut dire que certes, le code processeur tourne en natif, mais la partie GPU, elle, est traduite à la volée.

La conversion elle-même, après c'est juste une ligne de commande. Vous indiquez l'exécutable du jeu et son dossier sce_module côte à côte, et vous choisissez le nom du binaire cible (le .exe quoi) :

relinker source/input.elf app.elf
relinker --windows source/input.elf app.exe

Sur un processeur Intel, ajoutez le paramètre --to-intel, qui convertira les instructions propres aux puces AMD qu'il connaît.

Et quand le jeu touche à quelque chose que le projet ne gère pas encore, AnyPS5 lève une exception, en affiche la raison dans le terminal et le processus s'arrête. Ça veut dire qu'un jeu qui boote n'est pas forcément un jeu auquel vous pourrez jouer jusqu'au bout.

Et justement, qu'est-ce qui va jusqu'au bout ?

Hé bien la liste de compatibilité officielle est trèèès courte puisqu'elle ne contient qu'un seul jeu : Dreaming Sarah. C'est un jeu de plateforme 2D sorti sur Steam en 2015 et vendu moins de 5 € (1,49 € en promo au moment où j'écris).

Sous Windows, après recompilation, il est noté "in game, playable", à 60 images par seconde sur une GTX 1050 Ti et 36 sur une puce Intel HD 620 et sous Linux, on ne connait pas encore les stats même si l'ELF Linux a été généré.

Bien sûr, comme toujours avec ces projets de recompilation ou d'émulation, aucun firmware, ni jeu, ni clé n'est fourni. Et comme vous le savez, pour déchiffrer un jeu et l'extraire, il faut un exploit du firmware en cours, autrement dit une console débridée. Donc ça limite un peu les ambitions de pas mal de monde. Mais ça n'en reste pas moins possible pour qui a un peu de volonté (et une PS5 jailbreakée).

Sachez que ce projet AnyPS5 nécessite une carte graphique Vulkan 1.1, que les manettes Xbox ou PlayStation reconnues par SDL fonctionnent avec sticks et gâchettes analogiques, et que le clavier se remappe sans souci dans un fichier anyps5-input.ini que vous devez éditer.

Voilà... Les émulateurs PS5 dont je vous ai parlé, recréent la console autour du jeu alors qu'AnyPS5 tente de recréer le jeu pour n'importe quelle machine. On verra qui y parvient massivement en premier, mais en tout cas, la course à l'émancipation de la PS5 et de ses jeux est lancée !

Source : AnyPS5

QuoiVoir - Une sélection personnalisée de 3 films pour ce soir

Par : Korben ✨

Le soir, après une grosse journée de boulot, quand on a envie vraiment de se vider le cerveau, on ne sait jamais trop quoi regarder comme un film. Est-ce qu'on se met Les Misérables de Ladj Ly ? Les Fils de l'homme d'Alfonso Cuarón ? Detroit de Kathryn Bigelow ? ou Le Chagrin et la Pitié de Marcel Ophuls ?

Que choisir ?

Eh bien heureusement, il y a un super site qui s'appelle QuoiVoir qui répond à cette question du "on regarde quoi ce soir ?" en vous proposant simplement 3 films plutôt que de vous laisser scroller à l'infini dans un catalogue de bouzes. QuoiVoir contient pour le moment plus de 8500 films (pas de séries) et pour trouver LA pépite qui vous fera du bien, ça passe au choix, soit par un quiz, soit par une barre de recherche.

Le quiz, suffit de noter quelques films (5 avis suffisent pour démarrer, ou un import de votre historique Letterboxd), puis vous dites votre soir, seul, à deux, en famille ou entre amis, avec l'humeur, la durée et l'époque que vous souhaitez.

Ou alors la barre de recherche, où vous écrivez votre envie en une phrase, sans rien noter avant.

Tapez par exemple "un film de braquage pas trop long" et hop le site affichera ce qu'il a compris, c'est à dire "Moins de 100 min" et "Sujet : braquage", c'est à dire 2 tags que vous pouvez retirer d'un clic si l'IA s'est trompée.

Chaque fiche a ensuite deux rubriques pour décider vite. "*C'est pour toi si... *" donne trois raisons d'aimer le film, et "Avec qui le regarder" note seul, à deux, entre amis et en famille. Par exemple sur "1917", le site met "Idéal" entre amis et "Bof" à deux et sous le résumé, vous trouverez aussi les plateformes où le voir, avec les données de JustWatch, ainsi qu'un réglage de vos plateformes favorites.

Après, gardez en tête que chaque film est décrit selon douze axes par un modèle de langage, donc c'est plus un bon moyen de dégrossir un catalogue pour une soirée ciné qu'une boussole précise sur vos goûts.

Si vous êtes du genre à aimer les petits jeux, il y a une page entière consacrée au hasard et à la sérendipité, avec des roues de la fortune à tourner, des choses comme ça.

Le truc cool, c'est qu'il n'est pas obligatoire de se créer de compte, mais que vous pourrez quand même mémoriser des films et vos goûts, c'est juste que c'est stocké dans le navigateur.

Dans le genre, j'ai déjà écrit un article sur FlickMetrix , où vous parcouriez un catalogue de films et de séries que vous filtriez vous-même par genre, date, note ou plateforme. De son côté, QuoiVoir fait le chemin inverse où c'est vous qui décrivez votre soirée idéale et lui vous suggérera les films qu'il faut, un peu comme un employé de Video Club ^^. Maintenant, si j'ai une petite critique à apporter au site, c'est que je le trouve un petit peu "lourd". Je pense que ça mériterait un petit peu d'optimisation sur le poids des pages et du JS, mais à part ça c'est top !!

Et bien sûr, si ces trois films ne vous disent rien, le bouton "Régénérer" en proposera d'autres sans souci !

Du dev iPhone sans Mac sur Omarchy

Par : Korben ✨

Mise à jour du 8 octobre 2026 : depuis la publication de cet article, j'ai découvert les idées que diffuse DHH, le créateur d'Omarchy. Je ne recommande plus cette distribution, et je vous explique pourquoi dans Omarchy, non merci .

Omarchy-apple-dev , c'est un projet qui vous permet de compiler une app codée en SwiftUI, l'installer sur votre iPhone via le cable USB et l'envoyer à TestFlight d'Apple, tout ça depuis une machine Linux sous Omarchy... Oui oui, sans Mac !

Le gros du boulot est assuré par xtool , qui sait déjà compiler, signer et installer une app iOS sous Linux, mais ce dépôt omarchy-apple-dev y ajoute un script ship.sh, qui permet de créer le .ipa, d'y renseigner les clés de build que le traitement App Store lit, puis d'envoyer tout ça à Apple comme un grand.

Bref, en langage clair, ça veut dire que vous pouvez être développeur iOS depuis votre PC Linux. Cool hein ?

Pour l'installer, c'est juste 3 lignes avec install du SDK d'Apple.

git clone https://github.com/joshuaswarren/omarchy-apple-dev
cd omarchy-apple-dev
./install-toolchain.sh

Les morceaux du SDK iOS n'existant que dans la distribution Xcode d'Apple, il faut donc télécharger le Xcode.xip sur developer.apple.com avec un Apple ID gratuit, depuis n'importe quel OS. Vous relancez ensuite le script avec XCODE_XIP=/chemin/Xcode.xip, puis device-run.sh installera l'app sur l'iPhone branché. Un compte gratuit suffit pour ça, mais Apple le limite à 3 apps par appareil avec des profils qui expirent au bout de 7 jours. Pour TestFlight, il faudra par contre un compte développeur payant et une clé d'API App Store Connect.

Après, les CGU d'Apple pour Xcode et ses SDK disent bien que ces logiciels ne sont autorisés uniquement sur un produit de marque Apple tournant sous macOS, et que tout autre usage est une violation du contrat. Sa clause 2.5 interdit aussi d'utiliser les SDK séparément ou de les faire tourner sur du matériel qui n'est pas Apple. Or le SDK que le script installe vient forcément d'un Xcode d'Apple. Voilà, au moins vous savez...

Bref, pour bricoler sur votre iPhone avec un compte gratuit, ça peut le faire... Après, pour l'App Store, sachez qu'Apple exige en plus depuis avril dernier, que vos apps soient compilées avec Xcode 26 ou plus récente alors qu'ici, ce bon vieux script contourne ça... Donc à voir si vous voulez tenter votre chance.

Au pire, pour la phase finale (la compilation de la release de votre app), vous sortez un Mac rien que pour ça et le reste du temps, vous codez et compilez vos tests à 100% dans Omarchy. A vous de voir :)

LivePE - Une clé de dépannage Windows chargée à bloc

Par : Korben ✨

Vous ne le savez surement pas mais Sebseba, un membre du forum TeamAAZ, partage depuis juin 2025 un LivePE 100% en français . C'est une ISO qui se met sur une clé USB et qui permet de démarrer un LivePE (un Windows Live quoi...), en EFI comme en MBR, avec de quoi sauvegarder, partitionner, récupérer des fichiers ou réparer le boot. Bref, c'est super pratique si vous faites un peu d'admin ou de support technique.

Le bureau du LivePE démarré dans une machine virtuelle, avec ses icônes en français

Il l'a fabriqué avec une base de Win10XPE , SFX Constructor et Dism++ , et ça embarque une sacrée liste de programmes.

Par exemple, pour les sauvegardes, vous avez le droit à Acronis True Image 2026, Macrium Reflect X Server, AOMEI Backupper et les outils Hasleo. Pour tout ce qui est partitionnement, c'est MiniTool, EaseUS et AOMEI Partition Assistant. Aussi, pour récupérer des fichiers, GetDataBack Pro et Hasleo Data Recovery et il y a bien sûr AIDA64 Extreme et le Kaspersky Virus Removal Tool.

Maintenant, pour le mettre sur une clé ou un SSD externe, le tuto de Sebseba impose UltraISO et rien d'autre, sinon le multiboot EFI + MBR ne marchera pas. Il faut initialiser le support en MBR, puis vous le formatez en FAT32, vous ouvrez TECH.iso dans UltraISO et vous l'écrivez en mode USB-HDD+.

Et ensuite, vous pouvez réduire cette partition et en créer une seconde en NTFS pour y ranger vos ISO Windows. Par contre, attention, WinToHDD ne créera pas la partition MSR quand il installera Windows en GPT/EFI, ce qui posera des problèmes de migration plus tard... Donc préparez bien l'ESP et la MSR avant, avec DiskGenius ou DiskPart GUI Micro.

Le gestionnaire de démarrage de l'ISO, lui, s'affiche en anglais

Cette ISO de LivePE bien frenchy est une adaptation du WinPE de Sergei Strelec, dont l' historique officiel liste lui aussi Acronis, Macrium Reflect, AIDA64 et GetDataBack, mais uniquement dans la langue de David Bowie (ouais Shakespeare c'est has-been). Et si vous préférez une clé multiboot montée avec Ventoy, Medicat dont je vous ai déjà parlé à de multiples reprises, fait ça très bien depuis longtemps.

Un grand merci à Sebseba pour le partage !

Source : LivePE en français sur TeamAAZ

The Legend of Zelda: Majora's Mask enfin en version européenne sur PC et Android

Par : Korben ✨

Vous le savez, The Legend of Zelda: Majora's Mask existe en version européenne, avec une ROM PAL 1.1 qui embarque 4 langues (anglais, français, allemand et espagnol), mais 2Ship2Harkinian , le portage PC du jeu dont je vous ai déjà parlé, ne reconnaît que les 2 versions américaines.

C'est pour cela qu'un fork non officiel a décidé de lever cette limite en permettant une lecture de la ROM version PAL 1.1 directement depuis Windows, Linux et Android !

Bien sûr, le fork garde le support des ROM américaines, et comme toujours pour ne pas tomber dans le piratage, il faudra au premier lancement du jeu, désigner l'emplacement de votre ROM à vous (que vous devrez avoir normalement rippé vous-même depuis votre propre version pour rester dans les clous plutôt que dans choper une sur un site random ^^). Ensuite, le jeu génèrera localement son fichier de données (mm.o2r), et les lancements suivants démarreront directement dans le jeu.

Le menu Options sur Android, avec le français sélectionné parmi les quatre langues de la ROM PAL 1.1 (capture fournie par l'auteur du fork)

Sous Windows, il faut donc décompresser le ZIP et lancer 2ship.exe, en gardant 2ship.o2r à côté. Sous Linux, c'est une archive et un exécutable 2s2h.elf, avec le même fichier à ses côtés. Sur Android, il faut l'APK (ARM64 uniquement, Android 7 et OpenGL ES 3.0 minimum), et la version mobile ajoute des commandes tactiles qu'on peut masquer, un menu redimensionnable et un dossier de données déplaçable sur carte SD.

Pas de build macOS, en revanche, alors que le projet d'origine en propose un et ça, c'est un méga snif pour moi.

Alex, l'auteur de ce fork a aussi ouvert une demande de fusion chez 2Ship pour intégrer tout ça au projet d'origine, j'espère que ça passera.

Et après, peut-être qu'il pourra s'attaquer à Zelda 64 Recompiled , l'autre portage de Majora's Mask dont je vous ai parlé, car lui aussi n'accepte que la ROM américaine..

À récupérer sur la page des releases du fork .

RemoveMacAI - Supprimez Apple Intelligence de macOS 27

Par : Korben ✨

Si vous êtes sous macOS 27, vous avez peut-être remarqué que pour désactiver Apple Intelligence, il fallait couper les fonctions une par une. Mais ce que vous ne savez probablement pas, c'est que même si vous faites ça, les modèles restent stockés sur votre disque dur. Donc forcément, ça prend de la place !!

Heureusement, il existe une application nommée RemoveMacAI qui permet de supprimer ces modèles et empêcher macOS de les retélécharger.

Concernant la place que vous allez gagner, Apple et les média tech ne s'entendent pas sur les chiffres, mais grosso modo ça peut aller de 12 Go à 30 Go d'économisé.

Pour procéder à l'opération, il vous faudra un Mac Apple silicon sous macOS 27. L'outil installe ensuite un profil de configuration que macOS vous demandera d'approuver dans les Réglages Système, retirera les modèles via le service d'assets d'Apple et renverra leurs téléchargements vers un port local fermé. La protection SIP reste bien sûr activée et aucun fichier de /System n'est touché. La doc de l'outil dit d'ailleurs s'appuyer sur pared , un autre outil de 4evy qui a défriché ce service avant lui.

Voici comment en profiter :

brew install omlahore/tap/removemacai
removemacai

Bien sûr, par défaut, tout dégagera. Siri en entier, "Dis Siri" et l'icône de la barre des menus compris, Writing Tools, Genmoji, Image Playground, l'extension ChatGPT, les résumés dans Mail, Messages, Safari, Notes et les notifications, Clean Up dans Photos et la complétion de code d'Xcode. Les apps qui s'appuient sur les modèles d'Apple perdent aussi la main, comme l'action "Utiliser le modèle" de Raccourcis. La dictée, elle, continue de marcher. Pour épargner certaines fonctions, l'option --keep permet de les nommer, et l'option --dry-run montre les changements sans les appliquer.

Voilà, c'est bien qu'un tel outil existe, même si moi, perso, je trouve Apple Intelligence plutôt bien, et que c'est dommage de s'en débarrasser (surtout que c'est du local, hein...). Mais c'est vrai que sur un Mac à 256 Go d'espace de stockage, ces Go comptent ! Maintenant, si vous changez d'avis, l'auteur assure que removemacai revert remettra tout en place, avec les modèles qui se téléchargeront à nouveau quand une fonction que vous utilisez en aura besoin.

Source : MacRumors

Test du Narwal Freo 20, le robot laveur qui s'entretient tout seul

- Contient des liens affiliés Amazon -

On a passé une grosse quinzaine de jours avec le Freo 20 , le nouveau robot aspirateur laveur de Narwal présenté à l'IFA de Berlin début septembre. Autant le dire tout de suite, c'est un des appareils du genre les plus aboutis qu'on ait fait tourner.

Sur le papier, l'aspiration grimpe à 31 000 pascals, soit le haut du panier actuel, et dans la vraie vie ça se vérifie : miettes, poussière, poils d'animaux, tout part en un seul passage, y compris le long des plinthes.

Le vrai truc qui le différencie de la concurrence, c'est côté lavage. Narwal a laissé tomber les serpillières rondes rotatives qu'on voit partout pour un rouleau microfibre de 26 cm qui couvre quasiment toute la largeur du robot, pressé au sol avec 12 newtons et alimenté en eau chauffée à 60 degrés.

Ce rouleau se rince en continu à l'eau propre pendant qu'il travaille, du coup la crasse de la cuisine ne finit pas étalée dans le salon. Une tache de café séchée disparaît sans qu'on ait besoin de repasser trois fois derrière. C'est franchement impressionnant.

Le Freo 20 va surtout très loin sur l'entretien automatique. De retour à la station, la serpillière est lavée à 100 degrés puis séchée à l'air chaud, histoire d'éviter ces odeurs de serpillière humide qui plombent la moitié des robots laveurs du marché.

La station remplit aussi le réservoir d'eau propre du robot, nettoie elle-même son bac d'eau sale et compacte la poussière dans un sac de 2,4 litres annoncé pour environ quatre mois. En pratique, on ne touche à rien, ou presque.

Les cheveux et les poils longs, le cauchemar habituel de ces machines, sont gérés par un système anti-enchevêtrement qui fait plutôt bien le job. Après plus d'une semaine avec un chat à la maison, la brosse n'a pas réclamé un seul démêlage.

Côté navigation, deux caméras couplées à de la lumière structurée, autrement dit une projection lumineuse qui mesure le relief de la pièce, reconnaissent plusieurs centaines d'objets. Câbles, chaussettes et gamelles ont été contournés proprement, et le robot franchit des seuils de 4 cm.

L'application est claire, avec une carte précise, des zones à exclure et un mode multi-cartes si vous avez un étage. Vous n'aurez qu'à porter le robot là-haut, il se repère tout seul.

La station de charge est assez grande, il faut avoir la place, mais c'est souvent le cas avec les robots aspirateurs laveurs de ce genre. Si vous avez la place ça n'est pas un problème, les finitions sont belles, le revêtement texturé ne marque ni les doigts ni la poussière, et le robot lui-même, avec ses 9,5 cm de haut, se faufile sous la plupart des meubles.

Le Freo 20 ramène sous la barre des 850 euros ( 835 euros en ce moment ) des prestations qu'on trouvait jusqu'ici sur des machines facturées 1 400 euros et plus. Pour un foyer avec des sols durs et des animaux, c'est, si vous voulez mon avis, un des meilleurs achats du moment.

En quinze jours de test, on n'a pas touché une seule fois à la serpillière. Si vous n'avez pas d'aspirateur robot chez vous, considérez sérieusement cette option ! Il est actuellement en promo sur Amazon d'ailleurs, en cliquant ici.

Quick Tunnels - Votre projet localhost sur le web avec invitation

Par : Korben ✨

Cloudflare a sorti il y a petit moment maintenant une commande que pas mal de dev utilisent et dont je vais vous parler aujourd'hui : cloudflared tunnel --url, qui permet de publier un serveur tournant sur votre machine à une adresse en trycloudflare.com, sans avoir besoin de compte, de nom de domaine et surtout sans avoir à ouvrir le moindre port sur votre box toute pourrie.

Et la petite nouveauté depuis quelques jours, c'est que, autant avant, n'importe qui possédant le lien pouvait se connecter à votre service, mais maintenant, Cloudflare a mis en place une option qui permet de réserver ce lien à quelques adresses e-mail que vous définissez.

Ce service s'appelle les Quick Tunnels, et pour en profiter, il vous faudra juste un service web qui tourne en local (moi je vais faire ça sur le port 8080 comme d'hab) avec une page de test toute bête servie par Python. Voilà c'est juste de quoi vérifier que tout passe bien avant d'y brancher un vrai projet. Et si vous faites bosser des agents IA avec ce truc, on verra aussi comment mettre un garde-fou pour éviter l'exposition sur le web de trucs pas prévus ! Argh !!

Installer cloudflared

cloudflared, c'est le petit connecteur open source de Cloudflare, celui qui établit la connexion sortante vers leur réseau. Sur Mac, pour l'installer c'est fastoche, suffit d'utiliser Homebrew :

brew install cloudflared

Sous Debian ou Ubuntu, passez par conte par le dépôt officiel de Cloudflare. Il a changé de clé de signature récemment, donc reprenez bien ces commandes plutôt que celles d'autres vieux tutos qui traînent :

sudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null
echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared any main' | sudo tee /etc/apt/sources.list.d/cloudflared.list
sudo apt-get update && sudo apt-get install cloudflared

Et sous Windows (les courageux !! lol), la page de téléchargement de Cloudflare propose un MSI ou un exécutable, en 32 ou 64 bits, et le paquet existe aussi chez winget sous l'identifiant Cloudflare.cloudflared. Dans tous les cas, vérifiez ensuite la version, car l'option d'authentification dont on va parler plus bas n'arrive qu'à partir de la version 2026.9.3 :

cloudflared --version

Ouvrir un tunnel public

Tout d'abord, lancez votre serveur local, puis dans un autre terminal, faites :

cloudflared tunnel --url http://localhost:8080

Au bout de quelques secondes, cloudflared affichera un encadré avec une adresse aléatoire composée de quatre mots, du genre quelque-chose-truc-bidule.trycloudflare.com, en prévenant qu'elle peut mettre un moment à répondre. Donc soyez un peu patient, le temps que le DNS résolve ce truc (et videz votre cache DNS si ça veut vraiment pas le faire).

Ensuite, ouvrez cette URL depuis un autre appareil, genre votre téléphone en 4G par exemple et hop, vous tomberaz sur votre serveur local. Et si vous voulez tout couper, un petit Ctrl+C dans le terminal et c'est fini ! Pas de panique, au prochain lancement de cloudflared, vous aurez une nouvelle adresse.

La commande de base, et le cadre où cloudflared affiche l'adresse trycloudflare.com à partager

Notez aussi que le port n'est pas imposé puisque --url accepte tout ce que cloudflared peut joindre, une adresse IP de votre réseau local comprise. Par contre, si votre projet tourne sous Vite, vous allez prendre un "Blocked request" en pleine tronche, car Vite ne répond par défaut qu'à localhost, aux domaines en .localhost et aux adresses IP. La parade la plus simple consiste donc à faire croire à Vite qu'on l'appelle via localhost:5173 en faisant comme ceci :

cloudflared tunnel --url http://localhost:5173 --http-host-header localhost:5173

L'autre solution, c'est d'ajouter l'hôte dans le réglage server.allowedHosts de Vite. Mais évitez de passer ce réglage à true pour aller plus vite, en effet la doc de Vite le déconseille puisque ça expose votre serveur de dev à des attaques par DNS rebinding. Oupsi oups !

Gardez aussi en tête que c'est un outil de test et de démo et que c'est pas fait pour de la prod. Si on en croit la doc , Cloudflare ne garantit aucune disponibilité, sans oublier que chaque tunnel encaisse au max 200 requêtes en simultanné (au-delà, ça vous fera une erreur 429 ) et les Server-Sent Events ne passeront pas. Voilà, donc si vous voulez un nom fixe et du vrai trafic, il faudra plutôt créer un tunnel nommé à partir d'un vrai compte Cloudflare et d'un domaine de votre choix.

Réserver l'adresse à quelques personnes

Et maintenant, pour limiter l'accès à votre service à quelques personnes, ajoutez --allowed-mail suivi de l'adresse email de celui à qui vous voulez montrer votre merveilleux boulot :

cloudflared tunnel --url http://localhost:8080 --allowed-mail korben@example.com

L'encardré change alors de "ton" en vous annonçant que le tunnel est "protégé" par une authentification de type code à usage unique via Cloudflare Access, ainsi que la quantité d'adresses autorisées. Les adresses elles-mêmes n'apparaissent nulle part, même dans la ligne des réglages où elles sont remplacées par des astérisques, ce qui est plutôt bien vu si vous faites une démo en mode partage d'écran. Ça évite les fuites de données perso !

Avec --allowed-mail, le cadre annonce le code à usage unique et le nombre d'adresses autorisées, sans jamais les afficher

Vous pouvez ensuite répéter l'option autant de fois que nécessaire, séparer plusieurs adresses par des virgules, ou autoriser tout un domaine. Mettez simplement des guillemets autour du "joker" (c'est l'étoile) pour que votre misérable shell ne tente pas de l'interpréter comme un gros teubé :

cloudflared tunnel --url http://localhost:8080 \
 --allowed-mail korben@example.com \
 --allowed-mail bob@example.com \
 --allowed-mail '*@example.com'

Côté Wrangler, si vous bossez sur Workers, un petit npx wrangler tunnel quick-start acceptera la même option :

npx wrangler tunnel quick-start http://localhost:8080 --allowed-mail korben@example.com

De son côté, votre invité VIP n'aura alors plus qu'à ouvrir l'URL que vous lui avez donné et cloudflared renverra son browser vers login.trycloudflare.com. Il tombera alors sur une page Cloudflare Access qui lui demandera son adresse mail. Il recevra ensuite un code dans sa boîte, devra le taper, et arrivera enfin (ouf !!) sur votre merveille application probablement vibe codée (lol).

Et quelqu'un qui n'est pas sur la liste des invité ne verra quand à lui qu'une réponse de base lui expliquant qu'il peut bien aller se faire voir (et sa requête n'atteindra jamais votre application).

Ce que voit votre invité en ouvrant l'URL protégée : la page Cloudflare Access qui lui demande son adresse mail

Et votre liste d'emails, elle, n'est jamais diffusée hors de votre ordi puisque Cloudflare vérifie seulement que la personne contrôle l'adresse qu'elle a saisie. Ensuite c'est cloudflared qui compare les accès en mémoire, avec ce que vous avez tapé. Une fois entré, le visiteur gardera alors sa session jusqu'à 4 heures max.

Et si vous voulez modifier cette liste d'accès, il faudra alors arrêter le tunnel et en relancer un autre, ce qui coupera l'accès à tout le monde et vous donnera une nouvelle adresse à renvoyer. Donc soyez sûr de votre coup avant de casser la tête aux gens qui vont tester votre appli.

Sachez aussi que cette vérification ne pourra se faire qu'avec un vrai navigateur et pas des trucs du genre un webhook Stripe, un GitHub, un script en curl ou encore n'importe quel client automatique qui restera coincé devant cette page de connexion.

Pour ces cas-là précieusement, je vous recommande plustôt d'ouvrir un tunnel public le temps du test et de le couper juste après. Et si le webhook doit tourner durablement, passez sur un tunnel nommé avec Cloudflare Access, sur votre propre domaine.

Le confier à votre agent IA

Maintenant, parlons un petit peu à agents IA parce que oui... Un agent de code a besoin d'un endroit pour vous montrer ce qu'il vient de faire de beau, et Cloudflare décrit justement ce cas de figure dans son article.

Pour éviter qu'un agent IA ne diffuse publiquement ce qu'il vient de faire à la vue de tous, ce que recommande Cloudflare, c'est donc d'ajouter une ligne dans le fichier d'instructions de l'agent AGENTS.md comme ceci :

Quand tu lances un Quick Tunnel, ajoute toujours --allowed-mail moi@exemple.fr.

Sauf qu'une consigne reste une consigne... C'est un prompt que l'agent peut choisir d'ignorer... Donc gardez bien en tête que ces fichiers sont traités comme du contexte et pas comme une configuration imposée.

Maintenant, si vous voulez vraiment bloquer une action, peu importe ce que décide le modèle, ce que je vous recommande d'utiliser à la place, c'est un hook "PreToolUse". Moi, j'en mets partout dans mes configs Claude Code pour plus de sécurité.

Si vous ne savez pas ce qu'est un hook, en fait c'est un petit script contenant la commande en JSON, et que Claude Code lance avant chaque commande bash. Si ce script se termine avec le code "2" l'appel est alors bloqué. Pour faire ça, il faut donc créer dans le dossier .claude/hooks/ de votre projet, le script suivant :

#!/bin/bash
# .claude/hooks/tunnel-protege.sh
COMMAND=$(jq -r '.tool_input.command')

if echo "$COMMAND" | grep -qE 'cloudflared.*tunnel.*--url|wrangler.*tunnel.*quick-start' \
 && ! echo "$COMMAND" | grep -q -- '--allowed-mail'; then
 echo "Quick Tunnel public refusé : ajoutez --allowed-mail, ou demandez-moi d'abord." >&2
 exit 2
fi
exit 0

Puis rendez-le exécutable avec chmod +x, et installez jq si vous ne l'avez pas encore fait.

Déclarez-le ensuite dans le .claude/settings.json du projet, sur l'outil Bash comme ceci :

{
 "hooks": {
 "PreToolUse": [
 {
 "matcher": "Bash",
 "hooks": [
 {
 "type": "command",
 "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/tunnel-protege.sh"
 }
 ]
 }
 ]
 }
}

Maintenant, si ça vous prend trop le chaud de faire ça, sachez que j'ai fait un petit kit à télécharger ici, pour les Patreons :

Ensuite, à partir de là, un cloudflared tunnel --url ou un wrangler tunnel quick-start lancé sans le paramètre --allowed-mail ne fonctionnera pas, et l'agent recevra le message du hook qui lui dira d'ajouter l'option ou de vous demander s'il doit y avoir un contournement.

Et bien sûr, un tunnel nommé lancé avec cloudflared tunnel run, lui, passera normalement.

Comme d'hab, ce genre de garde-fou a ses limites, puisqu'il ne lit que le texte de la commande et ne vérifiera pas l'adresse qui suit l'option. Il ne verra non plus les tunnels qui pourraient être lancés depuis un script ou à l'aide d'une variable d'environnement TUNNEL_URL, qui permet aussi de lancer un Quick Tunnel. Voilà, donc laissez la consigne dans AGENTS.md en plus du hook, au cas où... Les deux devraient bien se compléter.

Pour les soutiens Patreon , le kit ci-dessus reprend donc ce hook avec les consignes à coller dans AGENTS.md, dont l'exception des clients automatiques (l'agent vous demande au lieu de retirer l'option).

Il y a aussi là dedans un script qui lance le tunnel protégé et ne renvoie que son adresse. Et si vous préférez scripter ça vous-même, partez de --output json, qui transformera chaque ligne du log en objet JSON. L'adresse sera alors accessible dans le champ message, et vous pourrez alors l'extraire avec une expression régulière.

Ah et un dernier point avant de lâcher un agent là-dessus sur le portable de votre boulot, je vous invite à lire ce que Proofpoint a documenté concernant des campagnes de malware qui s'appuient sur ce genre de tunnels gratuits. Ça explique pourquoi des outils de sécurité comme Elastic ont des règles qui repèrent cloudflared quand il est utilisé pour exposer un service local. Leur conseil c'est de bloquer les domaines de tunnel quand l'usage n'est pas autorisé, donc si vous comptez utiliser ça dans votre boite, allez voir Dieu Tout Puissant (le sysadmin grognon quoi...) pour lui demander l'autorisation. Il va pester, souffler, éventuellement vous cracher dessus puis finira probablement par accepter, donc pas d'inquiétude ^^.

Et comme la protection par mail est gratuite, au même titre que les Quick Tunnels eux-mêmes, je ne vois aucune raison valable de balancer une démo accessible sur le web sans utiliser cette authentification.

Aller en manif avec son téléphone - Les bons réflexes

Par : Korben ✨

Depuis quelques semaines, il y a un peu de remue-ménage dans notre belle France grâce notamment aux lycéens et étudiants qui sont gavés de leurs conditions de merde pour étudier. Du coup, ils protestent de manière tout à fait légitime, un peu comme avant eux, les soignants, les pompiers, les agriculteurs et j'en passe... Comment leur en vouloir puisqu'à part quelques bandeurs de fascisme et autres agents du chaos à la petite semaine, y'a pas grand monde de très satisfait de ses conditions de vie et de travail en ce moment dans notre chouette pays.

Tout ce qui se passe en ce moment, me parait donc on ne peut plus "naturel", un peu comme quand on a de la fièvre à cause d'un méchant virus.

Mais trêve de blabla, cette révolte de la jeunesse en termes d'organisation est très intéressante à observer puisque les lycéens se coordonnent de manière parfaitement fluide à l'aide de groupes Snapchat / Instagram , sur des groupes WhatsApp ou encore grâce à TikTok qui sert essentiellement à faire tourner les infos. De leur côté, les gilets jaunes quant à eux appellent à manifester le 17 octobre et s'organisent essentiellement via Telegram.

Or quand on lit certains "guides du manifestant" qu'on peut trouver en ligne, ils ne conseillent pas tous la même chose niveau tech. Par exemple, le wiki d'Extinction Rebellion demande d'"éviter au maximum" de venir en manif avec son téléphone, tout comme le guide de la LDH qui recommande de le laisser chez soi ou de prendre un téléphone basique . Alors que la CGT , dans son guide écrit au contraire de "Filmer la scène" quand quelqu'un se fait interpeller, tout comme l' Union étudiante qui pousse à filmer les blocus, en floutant évidemment les personnes présentes.

C'est vrai qu'en cas d'interpellation par ceux qui redeviendront un jour, je l'espère, des "gardiens de la paix", un téléphone resté à la maison ne racontera rien à personne. Et si vous n'avez pas prévu de filmer, c'est encore la meilleure option c'est vrai. Mais si vous venez quand même avec votre smartphone en manif (Rappel : manifester est un droit et c'est légal malgré ce que laissent penser les apparences), voici les 11 trucs à installer ou à configurer avant de sortir de chez vous.

Signal

C'est LA messagerie chiffrée de bout en bout que recommandent Amnesty et l' EFF , sur iOS comme sur Android. Depuis 2024, vous pouvez même y créer un nom d'utilisateur pour ne plus distribuer votre numéro à tout le cortège, même s'il faut toujours un numéro de tel pour s'y inscrire. Par contre, inutile de rêver d'y faire migrer tout votre lycée, car un groupe Signal est plafonné à 1 000 personnes.

Attention, Signal n'est pas invisible pour autant. Dans les réquisitions qu'il publie, il n'a jamais fourni que la date de création d'un compte et sa dernière connexion (aucune IP, mais aucune demande française n'y figure non plus). Il reconnaît par contre que son "Sealed Sender" ne cache ni les horaires ni l'IP, et une étude du NDSS montre qu'un serveur qui observe ces horaires pourrait relier deux interlocuteurs en 5 messages. Et comme aucune messagerie ne protège un téléphone déverrouillé, le vrai risque en manif reste le téléphone lui-même, d'où le code long et le verrouillage express plus bas.

La durée de vie des messages éphémères

Dans Signal, les messages peuvent s'effacer tout seuls après un certain délai que vous déterminez qui peut aller jusqu'à 4 semaines. Et ce qui est cool c'est que vous pouvez fixer un délai par défaut pour toutes les nouvelles discussions plutôt que de faire ça conversation par conversation. Pour régler ça, ça se passe dans Paramètres puis Confidentialité. Signal prévient quand même que celui qui reçoit un message peut toujours en faire une capture écran avant qu'il ne disparaisse mais bon, c'est pas si mal. Pensez également à faire le ménage avant de partir de chez vous, en supprimant les conversations et en quittant vos anciens groupes.

Savoir ce que protègent WhatsApp et Telegram

Bonne nouvelle pour les groupes de lycéens, WhatsApp envoie tous ses messages, discussions de groupe comprises, avec le même protocole que Signal, si on en croit son livre blanc sorti en février 2024. Telegram par contre, c'est une autre histoire puisque seuls ses "chats secrets" sont chiffrés de bout en bout, et ils ne se font qu'entre vous et votre destinataire. Le reste est stocké sur leurs serveurs et leur politique de confidentialité prévoit que sur une décision judiciaire valide visant un suspect, Telegram peut transmettre alors votre adresse IP et votre numéro de téléphone. Donc comme canal pour passer des appels, ça passe mais pour vous organiser dans le cadre d'une manif, je vous conseille de prendre autre chose.

Une phrase de passe à la place de votre visage

Amnesty conseille un code d'au moins six chiffres minimum mais le mieux selon moi c'est de mettre sur votre tel un vrai mot de passe / phrase de passe bien long. Car votre empreinte digitale ou la reconnaissance faciale peuvent servir très facilement à déverrouiller votre téléphone de force. Ils arrivent à obtenir des choses formidables avec des clés de bras autour du cou visiblement... Et l'EFF dit pareil.

Le choix du verrouillage sur Android, à gauche, et le choix du type de code sur iPhone, à droite, jusqu'au code alphanumérique personnalisé (capture EFF, licence CC BY)

Attention quand même, ce code ne vous donne pas le droit de dire "non" puisque, de ce que j'ai compris, l'article 434-15-2 du Code pénal punit de 3 ans de prison et 270 000 € d'amende le refus de remettre "une convention secrète de déchiffrement" sur réquisition. Et la Cour de cassation a jugé le 7 novembre 2022 que le code d'un téléphone peut en être une s'il est équipé d'un moyen de "cryptologie" comme ils disent. Son guide de la LDH détaille les conditions qui doivent être remplies pour que vous soyez légalement obligé de lâcher votre mot de passe. Il faut que ce soit une vraie réquisition et pas un simple "débloque ton téléphone p'tit con" devant le lycée. Le code empêche donc qu'on ouvre votre téléphone sans rien vous demander, et pour le reste, ça se discutera avec votre avocat s'il y a garde à vue.

Le verrouillage express

Si vous conservez néanmoins le déverrouillage par empreinte au quotidien, apprenez à minima le geste qui la coupe. Sur Android , activez d'abord "Afficher l'option de blocage" dans les réglages d'affichage de l'écran de verrouillage, puis un appui simultané sur Marche et Volume-haut fera apparaître "Mode Blocage", qui désactivera le déverrouillage par empreinte ou par visage jusqu'au prochain déverrouillage avec le code.

Sur iPhone , maintenez un bouton de volume et le bouton latéral durant 2 secondes, puis relâchez, et le code redeviendra obligatoire.

Après, le mieux c'est carrément d'éteindre votre téléphone dès que vous croisez des personnes susceptibles d'abuser de leur autorité sur vous.

Le mode avion et la localisation coupés

L'EFF comme Amnesty conseillent également de passer en mode avion quand vous n'avez personne à appeler, ce qui empêche les transmissions et limite le pistage, avec en prime de la batterie économisée pour la journée. Pensez aussi à couper le Wi-Fi et le Bluetooth, ainsi que le service de localisation dans les réglages.

CoMaps, pour la carte

Une fois en mode avion, il vous faut de toute évidence une carte qui marche sans réseau. CoMaps c'est l'idéal pour ça, puisque c'est un projet communautaire né d'Organic Maps et de Maps.Me, qui cherche et calcule ses itinéraires hors ligne, avec uniquement le GPS et sans avoir recours aux données mobiles. Vous pouvez donc consulter la carte localisation coupée, et ne la rallumer que le temps de vous repérer. L'appli est gratuite, dispo sur iOS et Android, et elle assure ne collecter aucune information.

Le floutage de Signal, pour les photos

Sachez aussi que filmer reste votre droit puisque d'après le Défenseur des droits , hors des lieux privés, un policier ou un gendarme ne peut pas s'opposer à ce qu'on l'enregistre. Mais avant de publier quoi que ce soit sur les réseaux, il faut flouter ! Signal propose donc depuis 2020 un outil de floutage dans son éditeur d'images, dont le traitement se fait entièrement sur votre téléphone. Signal reconnaît toutefois qu'il ne détecte pas tous les visages à coup sûr, d'où la présence d'un outil "pinceau" pour flouter à la main ce qu'il aurait raté. Vérifiez donc bien chaque photo avant de l'envoyer dans un de vos groupes, ou passez-la dans un outil gratuit d'anonymisation comme celui dont je vous ai déjà parlé.

Des photos sans leur position GPS

Sur iPhone, au moment de partager depuis l'app Photos, touchez Options et désactivez la Localisation. La mention "Lieu non inclus" s'affichera alors. Et pour ne plus enregistrer la position du tout, ça se trouve dans les Réglages, Confidentialité et sécurité, Service de localisation, Appareil photo, puis "Jamais". Sur Android, l'app Scrambled Exif retirera les métadonnées des images que vous partagerez. Attention quand même à ne pas trop compter sur cette suppression EXIF qui parfois n'est pas exhaustive selon les applis que vous utilisez.

Et les autres messageries ?

Des lecteurs m'ont aussi parlé de SimpleX et de Session. SimpleX n'a ni numéro ni identifiant de profil, et il a été audité par Trail of Bits en 2022 et 2024. Par contre, ses serveurs par défaut sont tenus par deux opérateurs seulement, et sa politique de confidentialité admet qu'ils peuvent partager des données sur décision de justice. Les notifications Android arrivent parfois en retard, et il faut que tout votre groupe l'installe (480 000 utilisateurs par mois, d'après lui). Bref, c'est sérieux, mais pour un lycée entier, Signal reste plus réaliste.

Session, je vous le déconseille. Pas de "forward secrecy", un protocole v2 censé corriger ça mis en pause en août 2026, et un dernier audit qui date de 2021.

Cette messagerie passe de téléphone en téléphone par Bluetooth, sans compte ni numéro, et l'Inde s'en est beaucoup servie quand leur gouvernement a coupé le net il y a quelques mois. Sauf que le BISI a noté que Bitchat avait une authentification faible qui permet d'usurper un contact, et des clés qui ne changent pas à chaque message. Donc c'est pas le pied. Quant à Briar , ça ne tourne que sur Android et ne reçoit plus de vraies MàJ... Pour moi, tant que le réseau internet est dispo, Signal fait mieux que ces 2 apps.

Un stylo

Un autre truc important à avoir sur vous, c'est un stylo. En effet, le guide de la LDH conseille d'écrire le nom et le numéro de votre avocat sur votre bras, et d'apprendre par cœur les numéros à appeler, puisque votre téléphone vous sera confisqué en cas de garde à vue. La CGT précise cependant que le nom de l'avocat et son barreau sont suffisants car la police est obligée de le contacter.

Et si vous êtes mineur, la déclaration des droits du ministère de la Justice est claire comme de l'eau de roche : Vous devez être assisté d'un avocat dès le début de votre garde à vue.

Voilà, bonnes manifs à tous, ne lâchez rien et prenez soin de vous car les tirs sont souvent tendus, malheureusement !

Tart - Une VM Windows 11 jetable sur votre Mac

Par : Korben ✨

Windows 11 dans une machine virtuelle sur un Mac Apple Silicon, ça se fait depuis looooongtemps avec des outils comme Parallels ou UTM. Mais tart, l'outil en ligne de commande qui crée et clone des VM comme on le ferait avec des conteneurs, n'en est pas capable, parce que la virtualisation d'Apple sur laquelle il repose ne gère officiellement que macOS et Linux.

Sauf qu'un dev nommé Mustafa Akin, vient de publier un fork qui permet d'installer Windows 11 avec tart sans un seul clic.

Je viens de le tester sur mon Mac Studio M4 Max avec l'ISO française de Windows 11 et j'ai trouvé que ça fonctionnait super, d'où ce petit tuto.

Ce qu'il vous faut avant de commencer

Pour vous lancer là dedans, il vous faut donc un Mac Apple Silicon sous macOS 26.6 ou 27, Xcode pour compiler tout ça, et bien sûr une ISO de Windows 11 ARM64 ( faudra vous démerder ensuite avec la licence ). Par contre, faut le savoir, ce fork repose sur deux réglages privés d'Apple, non documentés, qu'une mise à jour de macOS pourra shooter à tout moment. Donc ne montez pas votre futur homelab là dessus sans un plan de repli.

Compiler tart et créer la VM

Sur son site, Mustafa Akin publie un binaire tout fait, mais j'ai préféré compiler le programme car le script de création du paquet de son fork signe proprement l'application en local avec le droit de virtualisation qui va bien.

git clone --branch windows-guest-extras https://github.com/mustafaakin/tart.git
cd tart
git checkout e4c623c
./scripts/package-windows-preview.sh 0.1.0-windows-preview
export PATH="$PWD/dist/windows-preview/tart.app/Contents/MacOS:$PATH"

La commande export rend ce tart.app accessible au niveau du système prioritaire devant un éventuel tart déjà installé. Il ne reste alors qu'à lui passer votre ISO... tart téléchargera alors les pilotes virtio-win et WinFsp, fabriquera son propre média d'installation et démarrera Windows sans rien demander de plus.

tart create win11 --from-iso ~/Downloads/Win11_Arm64.iso

Ça m'a pris en tout et pour tout 26 minutes pour obtenir cette VM Windows fonctionnelle. Notez également que l'installation force l'anglais américain et que d'autres langues peuvent poser souci mais avec mon ISO française, l'interface est bien restée en français. Seul le clavier est resté en QWERTY au départ.

Installer le pilote et l'agent à la mano

L'auteur écrit sur son blog que l'install de l'agent doit se faire manuellement pour l'instant mais ce qu'il a oublié de préciser c'est que le pilote viosock, celui qui relie le Mac à la VM, n'est pas dans la liste des pilotes que tart injecte (viostor, viogpudo, NetKVM, viorng et viofs). Résultat, chez moi, tart exec ne fonctionnait pas. Comme ce pilote se trouve dans l'ISO virtio-win que tart a gardée dans son cache, il suffit donc de le copier dans un dossier partagé, contenant l'agent publié avec la préversion :

hdiutil attach -readonly -nobrowse ~/.tart/cache/windows/sha256:303f7ae40dad495d6ae474fdc571df58958a4dbc5c37a522d80f9a203867949d.iso
mkdir -p ~/tart-share
cp -R /Volumes/virtio-win-0.1.302/viosock/w11/ARM64 ~/tart-share/viosock
hdiutil detach /Volumes/virtio-win-0.1.302
curl -L -o ~/tart-share/tart-guest-agent.exe https://github.com/mustafaakin/tart/releases/download/windows-preview-0.1.0/tart-guest-agent.exe
tart run win11 --dir=share:$HOME/tart-share

Comme la commande tart run garde la main, laissez-la tourner et ouvrez un second terminal pour la suite, en y refaisant l'export ci-dessous depuis le dossier tart, sinon vous appellerez un autre tart.

export PATH="$PWD/dist/windows-preview/tart.app/Contents/MacOS:$PATH"

Au démarrage, la session admin (mot de passe admin) s'ouvre alors toute seule et vous arrivez sur le bureau. Le dossier partagé apparaît sur le lecteur Z:, dans un dossier share. Ouvrez PowerShell en administrateur (et n'oubliez pas que le clavier est en QWERTY) pour installer le pilote, puis déclarer l'agent comme tâche lancée à l'ouverture de session, parce que c'est dans cette session que sont le presse-papiers et le bureau :

pnputil /add-driver Z:\share\viosock\viosock.inf /install
mkdir "C:\Program Files\Tart"
copy Z:\share\tart-guest-agent.exe "C:\Program Files\Tart\"
$a = New-ScheduledTaskAction -Execute "$env:SystemRoot\System32\conhost.exe" -Argument '--headless "C:\Program Files\Tart\tart-guest-agent.exe" --run-agent'
$t = New-ScheduledTaskTrigger -AtLogOn -User $env:USERNAME
$s = New-ScheduledTaskSettingsSet -ExecutionTimeLimit ([TimeSpan]::Zero) -RestartCount 999 -RestartInterval (New-TimeSpan -Minutes 1)
$p = New-ScheduledTaskPrincipal -UserId $env:USERNAME -LogonType Interactive -RunLevel Highest
Register-ScheduledTask -TaskName "Tart Guest Agent" -Action $a -Trigger $t -Settings $s -Principal $p
Start-ScheduledTask -TaskName "Tart Guest Agent"
Get-Service VirtioSocketWSP

Le service VirtioSocketWSP doit alors afficher Running. S'il n'existe pas, c'est que le pilote n'est pas passé et tart exec ne répondra pas. Relisez alors la sortie de pnputil et vérifiez que le dossier viosock contient bien viosock.inf.

Vérifier que le terminal de Windows répond

Retournez ensuite dans le terminal du Mac et entrez cette commande pour connaitre le numéro de version du Windows :

tart exec win11 cmd /c ver
Microsoft Windows [version 10.0.26200.8037]

Informations système dans la VM : Windows 11 Famille, build 26200, sur une "Apple Virtualization Generic Platform" en ARM64

L'intérêt de tout ça c'est surtout d'avoir un Windows jetable. Vous devez arrêtez d'abord la VM de base avec tart exec win11 shutdown /s /t 0 puis pour cloner la VM, faites un : tart clone win11 w1 . C'est instantané, et y'a plus qu'à la démarrer avec un tart run w1 --no-graphics.

Avec --no-graphics ça démarre sans fenêtre et vous pouvez alors lancer ce que vous voulez avec tart exec. Ensuite pour tout stopper, un petit tart stop w1, et un tart delete w1 pour supprimer la VM et voilà...

Ce qui ne marche pas

En tout cas, n'en faites pas votre Windows de tous les jours car il n'y a ni son ni accélération graphique, pas de possibilité de suspendre le Windows et la virtualisation imbriquée se fige dès que Windows veut démarrer WSL2 ou Hyper-V.

La commande Get-Tpm confirme aussi l'absence de TPM. Et selon l'auteur, le disque est le point faible de ce Windows ARM 64 sous tart, en partie parce que tart rempli très vite les SSD avec ses logs. Pensez aussi à changer le mot de passe, puisque le compte est admin avec le mot de passe admin, et que SSH est ouvert sur le réseau interne de tart.

Mais pour tester des logiciels Windows ou scripter des trucs, ça tient bien la route.

Source : Mustafa Akin

AirCard - Relookez vos cartes bancaires dans Apple Pay

Par : Korben ✨

AirCard , c'est une appli macOS gratuite qui permet de remplacer l'image par défaut d'une carte dans Apple Wallet, directement depuis votre Mac relié à l'iPhone par un câble USB et tout ça sans jailbreak. Je l'ai essayée sur mon iPhone 16 Pro Max et ça marche du tonnerre. Attention quand même, l'appli n'a aucun bouton pour revenir en arrière, mais ne vous inquiétez pas je vais tout vous expliquer.

Ce tour de passe-passe nous vient d'AirLift, une faille du service AirTraffic, celui là même qui synchronise les médias d'un Mac vers iOS. Et AirLift s'en sert pour lire et écrire dans des dossiers qu'il n'est pas censé toucher, depuis un Mac déjà appairé avec l'iPhone. Cette petite vuln a été testée à partir de iOS 18.0, et Apple peut évidement la corriger quand elle veut mais ce serait quand même vraiment dommage parce que c'est bien cool. Maintenant rassurez vous, côté paiement, rien ne bouge ou n'est transféré ou créé. On ne change que l'image d'une carte du wallet c'est tout !

Je vous propose maintenant de rentrer dans le dur.

Installer AirCard et brancher l'iPhone

Il vous faut donc un Mac (Apple Silicon ou Intel), un iPhone, un câble USB qui transmet les données et une carte déjà ajoutée à Wallet. Téléchargez AirCard.dmg dans les releases du dépôt, ouvrez-le et glissez l'appli dans le dossier des Applications. Si macOS refuse de la lancer parce que l'éditeur est inconnu, faites un clic droit sur l'appli, Ouvrir, puis Ouvrir une seconde fois. Sinon, faut passer par Sentinel ou par cette commande qui retire le blocage :

sudo xattr -cr /Applications/AirCard.app

Détecter la carte

Branchez l'iPhone au Mac en USB, déverrouillé, et acceptez de faire confiance à l'ordinateur. Dans AirCard, restez sur l'onglet Apple Wallet et cliquez sur Scan Cards. Sur l'iPhone, double-cliquez sur le bouton latéral et Apple Pay s'ouvrira comme quand vous faites un paiement, avec Face ID. Une fois authentifié, touchez la carte à relooker, et une deuxième fois si rien ne bouge. Ce geste permet en fait à AirCard de récupérer l'identifiant de la carte (un hash), et elle peut apparaître ensuite dans la fenêtre du Mac.

Si le scan ne trouve rien, ouvrez Log dans AirCard et cherchez "Connected to the unified device log stream". Relancez ensuite un scan, authentifiez-vous et touchez vraiment la carte, ou passez d'une carte à l'autre. Si ça bloque encore, débranchez, déverrouillez l'iPhone et rebranchez. Des utilisateurs disent sur le GitHub du projet que le scan ne détecte pas toutes les cartes voire aucune avec cette 1.2.5. Moi j'ai pas eu de problème mais il arrive parfois que iOS remplace certaines valeurs par "private", et le scanner ne peut alors pas les récupérer.

Choisir l'image et flasher

Ensuite, cliquez sur l'emplacement de la carte où il y a le symbole +, ou glissez-y directement une image. AirCard la recadre alors automatiquement en 1536 × 969 pixels bien centrée avec le ratio d'une carte. Cela veut dire que peu importe le design que vous voulez utiliser, gardez bien ce qui est important pour vous au centre de l'image. Ensuite cliquez sur Flash Skins et ça appliquera votre image sur votre carte dans Apple Wallet. Chez moi, l'opération a pris entre 30 secondes jusqu'à parfois 1 min (j'ai pas super chronométré non plus, hein) mais le flash est allé jusqu'au bout à chaque fois.

Ensuite quittez Wallet depuis le sélecteur d'apps et relancez-le, ou redémarrez carrément l'iPhone et hop, votre nouveau visuel de carte apparaîtra.

J'ai donc comme beaucoup commencé par un skin d'Amex Black, sans chichi sur l'une de mes CB, histoire de frimer...

Puis sur ma seconde CB, je me suis fait un skin de carte Vitale maison. Au départ, je me suis fait un PNG avec Pixelmator, tout ce qu'il y a de plus normal avec la bonne taille et tout et tout, mais ça n'a jamais voulu se mettre sur ma carte. Donc, j'ai refait l'image en important simplement mon visuel dans l' éditeur de cardart.cc , qui exporte un PNG clean au bon format en 1536 × 969 et ça a fonctionné.

Et voilà, quand je paie en sans contact, maintenant ça donne ça... Je pense que les caissier.es vont flipper.

D'ailleurs, si vous cherchez d'autres visuels, il y en a plein sur cardart en téléchargement gratuit. La carte d'identité de Bob l'Eponge m'a tenté aussi, je l'avoue....

Le clavier du code, le Mac en moins, et le piège

Notez que AirCard sait aussi habiller le clavier du code de verrouillage avec des thèmes en .passthm. Suffit de vous rendre dans l'onglet Passcode, vous glissez le fichier passthm, vous l'appliquez puis vous redémarrez, et là, normalement, vous avez un super beau clavier. Pour ma part, je n'ai pas essayé parce que je m'en fous un peu, mais bon, c'est là.

Ah et sinon, si vous n'avez pas de Mac, il y a aussi une version AirCard-iOS qui fera le taf uniquement depuis l'iPhone, mais ça exige iOS 18 minimum, une installation par sideload (SideStore, AltStore, TrollStore ou LiveContainer) et un appairage par le mode développeur. Donc, c'est un peu plus relou qu'avec l'application pour macOS.

Et le petit piège dont je vous parle au début, c'est que la version 1.2.5 de Aircard n'a pas de bouton pour restaurer le visuel d'origine. Donc, si celui-ci ne vous plaît plus, vous pouvez soit le remplacer par un autre, soit vous devez retrouver votre visuel d'origine en téléchargement sur le web. Après, peut-être qu'en supprimant la carte du wallet et en la recréant, ça réparera le visuel, je ne sais pas... Faudra tester !

Source : AirCard

CTFreak - L'ordonnanceur de tâches pour toutes vos machines

Par : Korben ✨
-- Article en partenariat avec CTFreak --

Sauvegarder un dossier sur un serveur, vérifier l'espace disque du PC du salon, relancer un service sur le NAS, et j'en passe... Chez moi ça se concrétise au travers de crontabs différents et de tâches planifiées Windows, et malheureusement, comme je n'ai pas toujours le nez dessus, le jour où l'une d'elles tombe en rade, bah je m'en rends compte des jours, voire des semaines plus tard... Heureusement, il existe un outil qui s'appelle CTFreak et qui permet de centraliser tout ça derrière une seule interface web !

CTFreak, c'est donc un ordonnanceur de tâches auto-hébergé, édité en solo par Jean-Yves Pellé, un développeur français, et cela depuis presque 4 ans. Vous l'installez chez vous, il se connecte à vos machines en SSH ou en WinRM, et il y exécute tout ce que vous lui demandez. C'est top parce que grâce à ça, il n'y a même rien à installer sur les machines pilotées.

Ce clic autorise une connexion à Google : adresse IP transmise et traceurs possibles. En savoir plus Voir cette vidéo sur YouTube

CTFreak vous propose ainsi 9 types de tâches à créer. La commande locale par exemple tourne sur la machine qui héberge CTFreak, et la commande distante fait la même chose mais sur un ensemble de machines de votre choix. Ensuite viennent les tâches de type scripts bash et PowerShell, les playbooks Ansible, les scripts SQL, ou encore les rapports SQL qui sortent de vrais tableaux et autres graphiques directement depuis vos bases de données (pratique pour illustrer vos rapports).

Il y a aussi la classique requête HTTP, pour taper sur une API ou vérifier qu'un site répond. Et surtout le "workflow", c'est-à-dire une tâche dont le boulot est d'en déclencher d'autres, en série ou en parallèle. Vous pouvez même imbriquer des workflows dans des workflows, si le cœur vous en dit, et surtout, si vous n'avez pas peur de vous y perdre.

Les neuf types de tâches proposés à la création, de la commande locale au rapport SQL

L'installation, c'est une minute chrono

Pour installer CTFreak, vous récupérez le binaire, vous le rendez exécutable, et c'est finito ! C'est un fichier unique de 56 Mo, sans la moindre dépendance, dispo en amd64 comme en arm64 (j'ai fait mes tests sur une Ubuntu 24.04 en ARM). Et il est également dispo en paquets Docker, Snap et Cloudron, mais ils tournent en bac à sable et n'embarquent pas Ansible, donc si les playbooks vous intéressent, restez sur le binaire. Comme l'URL de download se termine par l'architecture, pensez bien à remplacer amd64 par arm64 si votre machine est en ARM.

sudo curl -sL https://ctfreak.com/download/release/latest/linux/amd64 -o /usr/local/bin/ctfreak
sudo chmod +x /usr/local/bin/ctfreak
ctfreak run

Ouvrez ensuite http://IP-du-serveur:6700 et connectez vous avec admin / ctfreak. Changez ce mot de passe tout de suite dans le menu Profile, et surtout n'exposez pas ce port sur Internet sans un reverse proxy devant. En effet, cette interface va bientôt contenir les accès de toutes vos machines.

Ensuite pour en faire un service qui redémarre tout seul, copiez l'unité systemd de la doc d'installation dans /etc/systemd/system/ctfreak.service, puis activez-la.

sudo systemctl daemon-reload
sudo systemctl enable --now ctfreak

Et voilà, vous êtes prêts à commencer !

Votre première tâche planifiée

Tout se passe dans un projet, donc vous en créez un (j'ai appelé le mien Homelab), puis vous cliquez sur New task. Le plus simple pour commencer est la commande locale. Je lui ai collé une archive de mon dossier Documents, et coché Scheduled avec une expression cron pour 3h30 du matin.

tar -czf /home/korben/sauvegardes/documents-$(date +%F).tar.gz -C /home/korben Documents

Le bouton Execute permet de lancer la tâche tout de suite, pour ne pas attendre 3h30 pour savoir si ça marche, et la page d'exécution affiche le statut, la durée et le journal complet. La fiche du projet vous montre ensuite les deux informations qui manquent toujours avec cron : 1/ quand est ce que la tâche est passée pour la dernière fois, et 2/ si elle s'est bien terminée.

Le PC Windows en machine distante

Là où ça devient intéressant, c'est quand vous ajoutez d'autres machines. Côté CTFreak il n'y a aucun agent à déployer, mais côté cible il faut quand même activer le serveur SSH intégré de Windows (ou WinRM, au choix) et installer PowerShell 7.2 ou plus récent, sans quoi les journaux d'erreur remonteront mal. Vous enregistrez ensuite le mot de passe ou la clé dans Credentials, vous déclarez la machine dans Nodes avec son OS, son IP et son identifiant, et le bouton Ping vous dira tout de suite si la connexion passe.

Ensuite vous créez une tâche de type Powershell Script, moi je l'ai planifiée tous les lundis à 8h. Le champ Node Set filter accepte ensuite des noms de machines, mais surtout des tags : j'ai mis #windows, donc toute machine que je taguerai comme ça entrera dans la tâche sans que je la retouche. C'est bien fichu hein ?

$libre = [math]::Round((Get-PSDrive C).Free / 1GB, 1)
Write-Host "Espace libre sur C: $libre Go"
if ($libre -lt 30) { Write-Error "Alerte : moins de 30 Go libres" ; exit 1 }

Le script PowerShell, l'expression cron du lundi matin et le filtre #windows qui trouve une machine

Et le journal qui remonte ensuite est vraiment complet. On y retrouve chaque ligne horodatée à la microseconde, la sortie du script, et le code de retour qui décide du statut. Ma machine Windows n'ayant que 22,1 Go de libre, la tâche a échoué comme prévu et s'est affichée en rouge dans la liste.

Le journal de l'exécution ratée : la sortie du script sur la machine distante, puis la sortie en erreur

Tout ce qu'il y a autour

Alors bien sûr, une tâche qui plante sans prévenir personne, ça ne sert pas à grand-chose. C'est pourquoi CTFreak permet d'envoyer des alertes sur Discord, Slack, Mattermost, Microsoft Teams, Telegram, ntfy ou par mail. Il peut même ouvrir directement un ticket dans GitHub, GitLab, Jira, Linear ou YouTrack quand un truc casse.

Dans l'autre sens, chaque tâche expose un webhook entrant, ce qui permet de la déclencher depuis un dépôt Git ou n'importe quel outil tiers, et une API REST complète fait pareil mais par script.

Le reste ensuite, c'est que du confort qui se découvre quand on utilise l'outil... Il y a par exemple une explorateur de fichiers qui parcourt vos machines depuis le navigateur, des calendriers qui empêchent une tâche de tomber un jour férié, ou encore la possibilité de partager vos projets entre équipe avec différents droits d'accès. L'authentification passe même par votre fournisseur OpenID Connect si vous en avez un.

Et les données dans tout ça ?

Hé bien elles restent bien au chaud dans un dossier avec une base SQLite dedans. C'est pratique parce que, si vous voulez sauvegarder votre ordonnanceur, il suffit juste de faire une copie de ce dossier.

Ce que la version gratuite ne fait pas

Maintenant, avant de vous lancer, sachez que l'édition gratuite vous limite à 8 tâches, avec 1 paramètre par tâche, 3 utilisateurs, 1 calendrier, 1 notificateur d'alerte et 1 notificateur de tickets. Surtout, elle n'exécute rien en parallèle. Vos tâches passent une par une, quel que soit le nombre de machines visées. Par contre, bonne nouvelle, le nombre de machines pilotées n'est bridé dans aucune édition. Vous pouvez donc déclarer 3 nœuds comme 50 sur la version gratuite, c'est le nombre de tâches qui limité dans la version gratuite, mais pas la taille de votre parc.

Autre chose à savoir aussi, c'est que les secrets (mots de passe...etc) sont stockés tels quels en clair dans la base SQLite. C'est bien indiqué dans la documentation, donc ce n'est pas une surprise, mais heureusement, y'a une commande qui permet de basculer tout ça en AES-256-GCM :

sudo systemctl stop ctfreak && ctfreak encrypt AES && sudo systemctl start ctfreak

Faites-le, mais préférez quand même une clé SSH dédiée à un mot de passe de compte.

Côté tarifs, la page affiche l'édition Pro à 369 € la première année puis 299 €, la Business à 599 € puis 519 €, et la Sovereign à 899 € puis 799 € pour les environnements coupés d'Internet, le tout par instance.

Et si vous partez sur l'édition Pro, le code KORBEN15 vous fait 15 % de réduction sur la première année. Il est valable jusqu'au 31 octobre 2026 inclus.

Reste que pour du homelab, la version gratuite est téléchargeable ici et suffit largement pour se faire une idée.

SlopTotal - Un détecteur de texte IA à installer chez vous

Par : Korben ✨

SlopTotal est un projet qui se présente lui-même comme le "VirusTotal du texte IA", alors faut pas s'étonner que ça m'intéresse ! Vous y collez un texte, un PDF ou une URL, et ensuite 23 détecteurs le passent au crible, en parallèle à l'aide de classifieurs neuronaux, de tests statistiques et autres heuristiques. Ensuite, un score calibré de 0 à 100 résume leurs avis et doit vous dire normalement si tel ou tel texte a été écrit avec de l'IA

J'ai donc installé ça sur ma machine puis passé 36 textes divers et variés (IA et humains) dans mon instance. Parmi eux, 24 ont été écrits par Claude, ChatGPT et Gemini (12 en français, 12 en anglais), avec comme consigne d'avoir un ton neutre, et pour d'autres un ton de "blogueur" ^^. Les 12 autres textes, eux, sont humains. Je lui ai donné 6 de mes articles écrits entre 2018 et 2021 ainsi que 6 billets de blog tech en anglais publiés entre 2020 et 2021.

Voici donc mes résultats...

Sur les 12 textes humains, 4 ont été pris pour de l'IA (verdict "Likely AI-generated" ou pire), ce qui représente 33 %, et ils étaient tous en anglais !! Et sur mes 24 textes écrits par une IA, 9 ont été pris pour une réalisation humaine (verdict "Clean"), ce qui équivaut à 38 %. Ah et ils étaient tous en français.

Le README annonce pourtant mieux comme résultats donc je suis assez étonné (1 texte humain sur 66 classé "Likely AI"), mais sur d'autres genres de textes, comme la presse ou les livres et en 100% english. Alors oui, mon échantillon est petit, mais pour savoir si un texte vient d'une IA, SlopTotal ne me semble pas fiable

Le rapport de SlopTotal pour un article de 455 mots écrit par Claude : 23,6 sur 100, verdict "Clean", 4 moteurs sur 23 en alerte.

Le rapport de SlopTotal pour un billet du blog d'avril 2020 : 56,9 sur 100, "Likely AI-generated", 9 moteurs sur 23 en alerte.

Après c'est pas un nouveau problème car je pense par exemple à OpenAI qui a retiré son propre classifier en juillet 2023 parce que la précision était trop faible ( The Register ). Vanderbilt a débranché également celui de Turnitin le mois suivant et des chercheurs de Stanford ont testé en 2023, 7 détecteurs en leur faisant analyser 91 rédactions humaines TOEFL de non-anglophones et en moyenne, ils en ont pris 61 % pour de l'IA.

Toutefois, 2 études plus récentes ont également testé des détecteurs commerciaux (pas SlopTotal donc...), et sur du texte humain ancien, elles se rejoignent. Le NBER trouve par exemple un taux de faux positifs quasi nul chez Pangram, de 0,1 à 0,3 % chez OriginalityAI et d'environ 0,7 % chez GPTZero, sur 1 992 textes humains d'avant 2020. De son côté, le chercheur Jonathan Karr et ses collègues n'ont trouvé aucun positif IA en testant avec Pangram et GPTZero, des tonnes de résumés textes datés de 2013 à 2015.

Par contre, ces études divergent sur l'humanisation. Par exemple, selon le NBER, Pangram tient bon face à l'humanizer StealthGPT alors que moins de 4 % des textes IA passés par Undetectable AI restent signalés chez Karr. Ce dernier note aussi qu'à l'inverse, un résumé écrit par un humain et simplement retouché par une IA est quant à lui, signalé comme IA dans 38 à 80 % des cas. Ça pourrait expliquer pas mal de petits problèmes de "littérature" qu'on a en ce moment, looool.

Bref, installez-le pour vous faire votre propre idée, en commençant par des textes dont vous connaissez l'auteur, mais surtout pas pour "accuser" quelqu'un. Je pense d'ailleurs qu'aucun détecteur ne devrait être la seule preuve d'une accusation... Par exemple, un texte humain qui est passé dans un correcteur orthographique full IA ou alors un texte qui est dicté avec un modèle de speech to text IA peuvent très bien être reconnus comme étant des textes IA alors qu'en fait ce sont juste des textes écrits / dictés par des humains et qui ont été "un peu" modifiés ou "un peu" réorganisés par un LLM. Je dis ça parce que c'est exactement ce que fait mon application de reconnaissance vocale Kassis , qui dispose de fonctionnalités de correction et de réécriture... héhé.

Source : SlopTotal sur GitHub

Comment choisir sa machine à café ? Voici les critères à considérer avant d’acheter

Choisir une machine à café dépend avant tout de vos besoins et de votre façon de consommer le café : automatique ou manuelle, compacte ou polyvalente, avec ou sans boissons lactées. Voici les critères essentiels pour trouver le modèle adapté.

L’article Comment choisir sa machine à café ? Voici les critères à considérer avant d’acheter est apparu en premier sur Toms Guide.

b59bdf69612e1ae740a4b966e0747eee

full

b59bdf69612e1ae740a4b966e0747eee

thumbnail

PS5 - Streamer sur Discord sans carte d'acquisition

Par : Korben ✨

Hier, le bidouilleur Yash Garg a publié sur son blog une astuce incroyable permettant de diffuser le contenu de sa PS5 sur Discord sans avoir besoin de carte d'acquisition. Son astuce c'est tout simplement de faire croire à sa console que son Mac EST le serveur de Twitch qui doit recevoir la vidéo et comme j'ai trouvé ça cool, je vous explique.

Le point de départ en fait, c'est que Yash diffuse souvent ses parties à des potos sur Discord. Pourtant, cette bonne vieille PS5 ne sait pas partager le stream de ses jeux aussi facilement. Elle peut juste diffuser par défaut vers YouTube et Twitch, à condition d'y être connecté via une option prévue pour ça par Sony. Cela veut dire que pour streamer vers Discord, sa seule vraie option c'est donc la carte d'acquisition, mais celles qui marchent bien coûtent un rein et notre ami ne voulait pas investir.

Il s'est donc mis à utiliser Remote Play qui permet de jouer à la PS5 depuis un Mac. Grâce à ça, la console se connecte à son MacBook et il partage l'écran du Mac sur Discord. Sauf que cela exige de brancher la manette et les écouteurs sur le Mac, et en plus, parfois ça lag de fou au niveau des commandes. Sans parler de la qualité de l'image, qui est choisie par la console, sans possibilité de réglage par l'utilisateur. Pas cool.

Alors, il a imaginé une solution qui je pense va vous intéresser si vous voulez streamer vos parties de PS5 ailleurs que sur Twitch et Youtube. En fait, comme la PS5 ne connaît pas par cœur l'adresse de Twitch, elle la demande aux serveurs DNS à chacune des diffusions. Du coup, celui qui contrôle ce DNS contrôle où se dirige le flux. Yash a donc monté sur son Mac un petit serveur DNS maison qui renvoie tout simplement l'adresse IP du Mac à la place de celle de Twitch.

Il a ensuite paramétré son routeur (un GL.iNet sous OpenWrt) pour forcer l'utilisation de ce DNS pour sa console, sans rien modifier sur la PS5. Cette dernière pousse alors son flux en 1080p à 60 fps vers le Mac, qui le lit, tout ça avec moins d'une seconde de délai avant de le diffuser sur Discord. L'ami Yash s'en sert chaque jour depuis quelques semaines et pour le moment, il n'a pas rencontré le moindre souci.

Par contre, ça ne passe pas avec YouTube car la console envoie bien sa vidéo au Mac, mais vérifie également régulièrement auprès de YouTube que le direct est bien en cours de diffusion. Et comme rien n'arrive, bah elle coupe tout simplement la diffusion au bout d'une minute.

Voilà, si ça vous intéresse, il a fait un article complet où il détaille tout, du DNS au routeur, avec le code de sa petite application qu'il a écrite et qui se loge dans la barre de menu de son Mac. Voilà, si ça vous tente, c'est par ici.

ArseneLupin - Le JEV Like d'Ibou qui décide au lieu de bavarder

Par : Korben ✨

Jev, je ne l'ai jamais utilisé mais Kev, en revanche, je l'ai branché dans mon outil de sélection de sujets de veille pour qu'il me dise notamment si un sujet correspond à ce qui me plaît ou pas. C'est en cours de test, donc je ne vais pas vous livrer de conclusion hâtive sur si ça fonctionne bien ou pas, mais si je vous en parle, c'est parce que Sylvain Peyronnet, le papa du moteur de recherche français Ibou , publie à son tour 3 modèles de la même famille, baptisés ArseneLupin, conçu également pour faire du décisionnel

Pour ceux qui ne suivent pas l'actualité IA, le nouveau truc à la mode en ce moment, c'est Jev, un modèle maison de TypeSafe qui est le premier de ce qu'ils appellent les modèles System One. Au lieu de générer du texte qu'il faut ensuite parser, ce reçoit un état (un texte, un ticket, un objet JSON) et des questions typées : oui ou non (noul), un choix parmi plusieurs options (choice) ou une note sur une échelle (score). Et il renvoie pour chacun de ces choix, des probabilités que votre code peut ensuite exploiter directement pour trier, faire du routage ou prendre des décisions. Par exemple, avec ça, on peut faire de la qualification de tickets de bug ou de l'anti-spam, ce genre de choses.

Alors forcément, suite à ça, des clones ouverts ont débarqué. Le premier que j'ai découvert, c'est Kev , de Jared Palmer, qui s'appuie sur Qwen3.5 et Qwen3.8, soit 0,8 à 27 milliards de paramètres, et laya qui part d'un encodeur ModernBERT-large pour 421 millions de paramètres au total.

Perso, avec Kev dans mon outil de veille, Pour le moment, j'ai un peu de mal à voir si c'est mieux qu'une décision prise par un Qwen 3.6 classique qui génère une réponse textuelle mais Kev a été entraîné sur des textes de 384 tokens au max, et les articles qui tombent dans ma veille dépassent largement ce gabarit...

ArseneLupin, c'est donc la version d'Ibou, annoncée par Sylvain la semaine dernière. Sa v1.1 repose donc sur Qwen3.5-4B, la mini sur Qwen3.5-0.8B et ArseneLupinstral sur Ministral 8B. Les poids sont sous licence Apache 2.0 et le code pour s'en servir et l'intégrer est fourni, mais pas le code d'entraînement ni les données.

C'est encore jeune, donc il n'y a pas eu de benchmark indépendant, mais Ibou en a fait et voici ce qu'ils obtiennent avec une classification d'intentions de recherche en dix catégories. Avec la 1.1, ils obtiennent 50,7 % de bonnes réponses, contre 39,7 % pour la mini et 43,9 % pour Jev 1.13.

Bref, ce sont leurs mesures, mais si elles sont justes, ça veut dire qu'Arsène Lupin est plus efficace que Jev.

Installer ArseneLupin v1.1

Alors pour ce tuto, j'ai pris la v1.1 qui est la plus "balèze".

À la fin de cette section, vous aurez donc un serveur local qui crache du JSON accessible sur le port 8000. Il vous faut Python 3.11 ou une version plus récente et une 10aine de Go libre puisque le modèle complet pèse 9,3 Go en bfloat16.

J'exclus au téléchargement le dossier gguf, qui contient la version 8 bits de 4,5 Go destinée à llama.cpp. Pour démarrer, il faut donc créer un environnement virtuel, puis récupèrer le modèle, et installe le code de service avec la version de transformers qui va bien, c'est à dire la 5.17.0 :

python3 -m venv lupin && source lupin/bin/activate
pip install -U huggingface_hub
hf download IBOU-SEARCH/ArseneLupin-v1.1 --local-dir arsenelupin-v1.1 --exclude "gguf/*"
cd arsenelupin-v1.1
pip install ./code "transformers==5.17.0"

Par défaut, le fichier serve.yaml envoie le modèle sur une carte NVIDIA (cuda:0). Sur un Mac, il faudra donc le basculer sur le GPU d'Apple (mps), et sur une machine sans GPU, ce sera cpu. Je pense que je ne vous apprends rien, vous avez l'habitude,

Ensuite, on lance le serveur. Notez juste que sous Linux, le sed s'écrit sans les deux apostrophes après le -i. :

sed -i '' 's/cuda:0/mps/' serve.yaml
python -m arsenelupin serve --config serve.yaml --calibration calibration/default.json --port 8000

Le serveur ArseneLupin v1.1 à l'écoute sur le port 8000, poids chargés

Au bout de quelques secondes, le serveur écoutera sur 127.0.0.1:8000. Quant à la version GGUF, vous pouvez, si vous voulez, le faire tourner dans un llama.cpp ou équivalent à condition d'en avoir un assez récent qui connait l'archi de Qwen3.5.

Poser vos premières questions

Pour tester, je me suis inspiré de mon outil de veille. On donne au modèle le titre et le résumé d'un sujet et on lui demande si ça parle d'un outil qu'on peut installer, dans quelle rubrique il faut le ranger et à quel point ça pourrait intéresser des gens comme vous, c'est à dire des lecteurs technophiles / bidouilleurs.

Placez donc ça dans un fichier nommé veille.json, dans le dossier du modèle :

{
 "state": {
 "titre": "ArseneLupin, trois modèles de décision publiés par Ibou",
 "resume": "Le moteur de recherche français Ibou publie sur Hugging Face trois modèles qui répondent par oui ou non, par un choix ou par une note, avec des probabilités. Les poids sont sous licence Apache 2.0 et le code de service est fourni."
 },
 "questions": {
 "installable": {"type": "noul",
 "instructions": "Le texte présente-t-il un outil que le lecteur peut installer lui-même ?"},
 "rubrique": {"type": "choice",
 "instructions": "Dans quelle rubrique ranger ce sujet ?",
 "criteria": {"ia": "Intelligence artificielle et modèles de langage",
 "dev": "Outils pour développeurs et infrastructure",
 "securite": "Sécurité informatique, failles et vie privée",
 "materiel": "Matériel, gadgets et bricolage électronique"}},
 "interet": {"type": "score",
 "instructions": "Ce sujet intéressera-t-il un lecteur technophile qui aime tester des outils ?",
 "criteria": ["Pas du tout", "Un peu", "Beaucoup"]}
 }
}

Puis dans un second terminal ouvert dans le même dossier, tapez la ligne de commande curl suivante pour lancer l'évaluation avec ArseneLupin.

curl -s http://127.0.0.1:8000/v1/systemone -H 'Content-Type: application/json' -d @veille.json | python3 -m json.tool

La réponse à la requête de veille : "ia" à 0,72, un oui/non hésitant à 0,53 et un score de 1,47

Comme vous pouvez le voir, pas une ligne de texte généré, chaque question revient avec ses probabilités. On voit donc que la rubrique "ia" l'emporte à 0,72, loin devant "dev" à 0,19, et le niveau "Beaucoup" ressort à 0,59 pour l'intérêt, ce qui donne un score moyen de 1,47 sur une échelle qui va de 0 à 2. Par contre, pour savoir si c'est un outil installable, le modèle hésite quand même un peu avec un timide 0,53 de probabilité pour le oui.

Il renvoie quand même une indication qui est plutôt importante à savoir là décision : "decision": true, car aucun seuil n'est appliqué côté serveur (c'est ce que dit le "decision_status": "unthresholded"). C'est donc à votre code de décider qu'en dessous de 0,7, par exemple, la décision revient à un humain plutôt que de partir dans la base de données automatiquement. Sur mon Mac Studio M4 Max, la requête a pris entre 2,4 et 2,8 secondes pour ces huit options.

J'ai fait un 2ème essai avec un commentaire de spam bien grossier : "Super article !!! Pour gagner 500 € par jour depuis chez vous, cliquez vite sur mon profil, places limitées." La v1.1 le classe en spam à 0,86 et lui colle un ton positif à 0,78, ce qui est vrai au premier degré. Et la version mini du modèle répond deux fois plus vite, en 0,8 seconde, mais descend à 0,76 sur le spam et hésite sur le ton... À voir donc si ça suffit pour vous d'utiliser le modèle mini ou pas, selon vos besoins.

Comment ArseneLupin prend ses décisions

Le code livré avec le modèle se lit facilement et la mécanique est plutôt simple à capter. En fait chaque option devient une question oui/non posée au Qwen affiné, du genre "ce candidat décrit-il la bonne réponse ?".

Ainsi, 4 catégories pour classer un contenu se résume en 4 questions sur le même texte accompagnée d'une petite tête de lecture (2 561 paramètres sur la v1.1) qui transforme le dernier état caché du modèle en score. Un softmax répartit ensuite ces scores en probabilités, et la confidence n'est rien d'autre que la plus forte d'entre elles...

Pour que ça reste rapide malgré toutes ces passes, le serveur lit une seule fois le texte commun aux options, puis calcule toutes les options simultanément.

En fait avec ArseneLupin, on reproduit le principe de Jev mais avec un LLM ouvert (Qwen) en ne lui faisant produire qu'un seul token, limité aux choix proposés. Ce qu'apporte Ibou, c'est donc un modèle LLM ultra affiné (Autant qu'un bon Saint Nectaire) pour ce type d'exercice de prise de décision.

Reste ensuite la confiance à accorder à ces probabilités. Dans le dossier calibration, vous verrez des températures ajustées selon les trois workflows d'exemple fournis par Ibou, et il y a également, dans le fichier default.json, une calibration par défaut. C'est celle-là qu'on a utilisée dans notre exemple, mais vous pouvez aussi régler vous-même votre propre température ajustée selon vos usages.

Maintenant, avant de lui confier quoi que ce soit, posez-vous un peu et donnez-lui une cinquantaine d'exemples que vous avez déjà classés à la main. Comme ça, vous pourrez comparer ArsèneLupin et le LLM que vous utilisez d'habitude pour savoir qui est le plus fiable. N'hésitez pas à y mettre aussi des textes plus ou moins longs parce que le serveur accepte jusqu'à 32 768 tokens par option. Ça tombe bien parce que ça me gênait un peu dans mon intégration avec Kev sur mon outil de veille. Donc je pense que je vais rapidement basculer sur ArsèneLupin pour ma veille en remplacement de Kev.

Et si vous venez de Jev, attention, la requête a la même forme mais pas la réponse !! Pour une question oui/non, Jev renvoie un champ noul là où ArseneLupin renvoie un p_yes, et pour une note, ArseneLupin range ses probabilités dans une liste quand Jev utilise un dictionnaire.

Cela veut dire qu'un client écrit pour l'API de TypeSafe ne lira pas du tout le résultat de ArseneLupin tel quel, donc prévoyez une petite couche de conversion avant de mettre les deux en concurrence sur vos data.

FxTwitter - L'API gratuite pour lire X sans compte

Par : Korben ✨

Depuis que X a shooté Nitter et XCancel à grands coups de lettres d'avocat fin août, lire X sans compte c'est redevenu une méga galère. Mais il reste pourtant un outil que plein de gens utilisent sans le savoir, parce qu'il tourne dans les coulisses de Discord et Telegram. Son nom ?

FxTwitter !

À la base, le projet FxEmbed , qui fait tourner FxTwitter et FixupX, sert à réparer les aperçus de liens X. Vous mettez fx devant twitter.com (ou fixup devant x.com) et Discord affiche enfin la vidéo, le sondage ou toutes les images du post. Sauf que derrière, il y a surtout une API publique et gratuite, api.fxtwitter.com, qui affiche n'importe quel post public en JSON sans avoir besoin de compte ou de clé API facturé une couille. Ché Elon !

Alors oui, les rageux diront que x.com affiche encore n'importe quel post isolé à un visiteur déconnecté, même les longs, mais sur un profil, ça s'arrête à 5 posts avant de vous demander de "Continuer sur X". Et surtout, ça ne vous affichera pas les vidéos et ça ne vous permettra pas d'avoir ça sous la forme d'un flux RSS.

Alors que FxTwitter, lui, nous sort tout ça sans avoir à ouvrir x.com !

Lire un post dans le navigateur

Maintenant pour nos tests, prenons un vieux de la vieille, un vétéran, le post numéro 20 de @jack, publié le 21 mars 2006 et dont l'URL est x.com/jack/status/20. Le nombre à la fin, c'est l'identifiant du post.

Collez tout simplement cet identifiant au cul de api.fxtwitter.com/2/status/ et ouvrez ça dans votre navigateur :

https://api.fxtwitter.com/2/status/20

Et vous obtiendrez un gros pavé en JSON avec dedans le texte du post dans le champ "text", l'auteur dans "author", et un peu plus bas vous trouvez les likes, les reposts, les réponses et la date.

Le post 20 de @jack vu par l'API : le texte dans le champ text, l'auteur juste en dessous.

Et si vous avez la flemme de recopier l'identifiant (vous êtes toujours dans l'abus, vous ^^), remplacez simplement x.com par api.fxtwitter.com dans l'adresse complète du post et voilà ! Ça marche à tous les coups, même si c'est le retour de l'ancienne version de l'API, conservée pour la compatibilité.

Le texte et sa traduction avec curl

Pour utiliser ça avec un script, je vous conseille d'utiliser curl pour faire la requête et jq pour trier tout ça ( jq, c'est le petit utilitaire qui extrait un champ précis d'un JSON ).

Ainsi, pour n'afficher que le texte du post :

curl -s "https://api.fxtwitter.com/2/status/20" | jq -r '.status.text'

Et si le post n'est pas en français, ajoutez ?lang=fr à l'adresse et hop, magie magie, l'API glisse alors un bloc "translation" dans la réponse, avec le texte en français :

curl -s "https://api.fxtwitter.com/2/status/20?lang=fr" | jq -r '.status.translation.text'

Le texte d'origine du post 20, puis sa traduction demandée avec ?lang=fr.

La traduction provient de X lui-même quand elle existe (sur ce post, le champ "provider" indiquait "grok"), sinon l'API se rabat avec joie sur un service de traduction. Et pour un profil, c'est le même principe avec /2/profile/ : api.fxtwitter.com/2/profile/jack qui affichera la bio de @jack, son nombre d'abonnés et sa date d'inscription. Les autres "routes" qui récupèrent les fils, les abonnés ou les médias d'un compte sont dans la documentation de l'API .

Elle est pas belle la vie ?

Récupérer une vidéo

Maintenant, on va rentrer dans le dur parce qu'ici, pour récupérer une vidéo, vous n'avez pas besoin d'API. Suffit de jouer avec l'adresse.

Mettez d. devant fxtwitter.com et le lien vous renverra directement le fichier, sans HTML autour. Avec curl, ça donne ça (le -L sert à suivre la redirection) :

curl -L -o video.mp4 "https://d.fxtwitter.com/NASA/status/2102748685792596449"

Grâce à ça, on peut par exemple récupérer le MP4 de cette vidéo bien kitchou de 30 secondes de la NASA. Et ajouter .mp4 à la fin d'une adresse fxtwitter.com fera la même chose. Et pour choisir la qualité, jetez un œil au JSON du post, où la liste des formats de media.videos donne chaque version de la vidéo avec son adresse et son bitrate.

Suivre un compte en RSS

Dernier truc que je trouve pratique avec cet outil c'est que chaque compte public peut avoir son flux RSS. Il suffit d'ajouter /feed.xml après le nom du compte :

https://fxtwitter.com/korben/feed.xml

Collez ensuite ça dans votre lecteur RSS et vous suivrez le compte X de vos rêves sans avoir à y mettre les pieds. Le flux remonte ainsi les 90 derniers posts par défaut, et le paramètre ?count= permet de réduire ce nombre ou de l'augmenter jusqu'à 100 maximum. Et si vous remplacez feed.xml par media.xml vous ne verrez dans le flux que les posts contenant des photos ou des vidéos. Et si vous ajoutez ?with_replies=1 vous verrez aussi les réponses.

Ce qui coince

Maintenant ce qui peut être relou, c'est que l'API n'encaisse que 1 000 requêtes par minute et par adresse IP. Par contre, si vous pensiez absorber tout x.com sans la moindre vergogne, vous allez vite vous retrouver coincé.

Attention aussi au domaine que vous tapez. Les seuls officiels sont fxtwitter.com, twittpr.com, fixupx.com, xfixup.com et fxbsky.app pour Bluesky. Je précise ça parce qu'il y a eu, par exemple un fxtwiter.com avec un t en moins, qui a été signalé sur le dépôt du projet et qui renvoyait les gens vers des arnaques.

Comme d'hab, une faute de frappe et c'est le drame... Soyez très vigilants.

Maintenant, si vous êtes un petit peu curieux comme moi, vous vous êtes sûrement demandé comment FxTwitter récupérait tout ça ??

Eh bien, comme le fait Nitter, ou plutôt comme le faisait Nitter , il récupère les données en utilisant de vrais comptes X sur lesquels il répartit les requêtes. Et comme c'est ce qui a été reproché à Nitter, je me dis qu'il y a des chances qu'à un moment FxEmbed soit visé aussi.

On verra bien, mais si un jour le service tombe, sachez que le code est bien dispo sous licence MIT, donc vous pouvez le faire tourner chez vous sans problème dans un Docker. Et si vous n'utilisez pas de compte X connecté dessus, ça marchera quand même avec, c'est vrai, des limites de requêtes plus basses et surtout sans accès au contenu NSFW (Et ça, je sais que ça vous rend super triste.)

Source : GitHub

Meeting Recorder - Vos visios transcrites en local sous Omarchy

Par : Korben ✨

Meeting Recorder , c'est un enregistreur de réunions pensé pour Omarchy, la distribution Linux de DHH basée sur Arch et Hyprland. Et y'a pas besoin d'inviter à bot chelou dans votre visio puisque l'app se contente d'écouter votre micro et ce que joue votre ordinateur. Donc ça fonctionne avec n'importe quel logiciel de réunion, et tout est ensuite transcrit sur votre machine, 100% en local

Le micro et le son de l'ordinateur sont ainsi enregistrés sur deux pistes séparées, et deux jauges vous montrent avant de lancer que les deux arrivent bien. C'est comme ça que l'outil sait qui parle... ce qui passe par le micro, c'est vous, et ce que joue l'ordinateur, ce sont les autres. Et s'il y a plusieurs personnes en face, Nemotron 3 Diarization, un modèle de NVIDIA qui tourne en local, sépare simplement leurs voix en "Remote 1", "Remote 2"...etc, que vous pouvez ensuite renommer.

L'écran de fin, Maya au micro, Tom côté ordinateur, et les deux pistes dans la forme d'onde

À la fin de l'appel, c'est whisper qui transcrit tout ce basar, avec le modèle large-v3-turbo par défaut (environ 1,6 Go à télécharger une seule fois), pendant qu'une animation façon années 90 vous fait patienter. Et pas besoin de carte graphique puisque d'après l'auteur, le processeur d'une machine récente boucle un appel court en quelques secondes. Ah et puis trop cool, le français fait partie des langues proposées, donc vous pouvez l'utiliser si vous avez séché les cours d'anglais.

Vous récupérez ensuite le texte, avec l'heure et l'intervenant sur chaque ligne, et un lecteur audio au-dessus. Cliquez alors sur une ligne et la lecture repartira de là. Et si whisper s'est gourré, vous survolez la ligne pour la corriger, la donner à l'intervenant suivant ou la supprimer. Chaque réunion finissant dans un simple dossier de ~/Documents/Meetings, avec l'audio et un fichier transcript.md, vous pouvez tout récupérer et même glisser sur la fenêtre un vocal ou un appel enregistré ailleurs, et Nemotron pourra y détecter jusqu'à 8 voix sans problème.

Pour les réunions de trois minutes ou plus, il y a aussi du chapitrage et c'est l'agent de code réglé par défaut dans Omarchy (Claude Code, Codex...) qui découpe la transcription une fois que c'est terminé. Donc, si vous ne voulez pas que ça parte dans le cloud, il faut prendre le temps de ne régler aucun agent par défaut sur Omarchy.

Et n'oubliez pas non plus de prévenir les gens en début de réunion, car l'article 226-1 du Code pénal punit l'enregistrement de paroles privées sans leur consentement. Hé ouaiiiis !

Côté installation, l'outil est dans le dépôt de paquets d'Omarchy, pour l'instant uniquement sur le canal edge. Sinon, en attendant la prochaine version d'Omarchy, ce script d'une ligne installera le même paquet.

Bref, c'est l'un ou l'autre :

yay -S omarchy-meeting-recorder
ou
curl -fsSL https://raw.githubusercontent.com/jankeesvw/omarchy-meeting-recorder/main/install.sh | bash

Attention, au moment où j'écris ces lignes, la version 1.1.1 plante dès la première transcription sur les processeurs sans AVX-512, un Ryzen 5 5500 ou un Core Ultra 9 285K par exemple. L'audio est bien enregistré, mais vous n'aurez pas de texte, parce que le binaire publié a hérité des instructions AVX-512 de la machine qui l'a compilé. Heureusement, un contributeur a déjà proposé un correctif, donc, soyez patient. Mais si vous êtes vraiment pressé, il faudra juste compiler vous-même l'appli (cargo build --release, les étapes sont dans le README).

Et si vous n'êtes pas sous Omarchy ? Faut chialer ?

Non, car l'app prendra alors l'apparence standard de libadwaita, mais sans l'agent par défaut d'Omarchy. Donc adieu les chapitres. Sous Windows, l'application Meetily fait le même genre de travail en local, Avec mon application macOS Kassis , on peut faire ça aussi. Il suffit de glisser-déposer l'enregistrement de la réunion sur l'appli. Les interlocuteurs sont reconnus et on obtient un transcript en quelques secondes. Enfin, pour transcrire vos enregistrements directement sur un serveur, il y a Speakr, dont je vous ai déjà parlé .

Voilà, en tout cas, je trouve que son dev a bien bossé ! Meeting Recorder c'est sous licence MIT, et le code est sur GitHub pour ceux qui ont un Omarchy sous la main !

Que faire avec un port M.2 libre ? 6 gadgets à y brancher à la place d'un SSD

Par : Korben ✨
- Contient des liens affiliés Amazon -

Un emplacement M.2 finalement, ce n'est rien d'autre qu'un bonne vieille connexion PCIe d'une à quatre lignes selon la machine (sauf quand il est câblé en SATA, mais ça, j'en reparle à la fin). Et en général, comme le montre la photo ci-dessous, ce qu'on y met, c'est un SSD pour avoir du stockage rapide et efficace

Emplacement d'un M.2 sur la carte mère d'un laptop ( source )

Mais aujourd'hui, on va s'ouvrir un petit peu l'esprit sur cet emplacement M.2, parce que OUI, rien ne vous oblige à y mettre un SSD !

Mais avant de commander quoi que ce soit, sortez le manuel de votre carte mère ou la doc de votre mini-PC et regardez le type (PCIe ou SATA) de votre connecteur M.2, le format accepté et surtout le nombre de lignes de cet emplacement.

Source

Le nombre de lignes, c'est le nombre de voies de circulation entre la carte M.2 et le processeur. Plus il y en a, plus ça va vite, donc en général, pour une carte réseau, une ligne (x1) ou deux (x2) suffisent. Mais si vous partez sur une carte graphique, il faudra 4 lignes minimum (x4).

Par exemple, le Beelink ME Mini , lui, dispose de 5 emplacements PCIe 3.0 x1 et un seul en x2. Et sur une ASRock B850 Pro-A , le 4e emplacement M2 tourne en x4... mais retombe en x2 dès qu'un disque occupe l'un des autres ports M.2 en SATA3.

Regardez aussi ce que l'emplacement partage, car sur cette même carte mère ASRock, occuper par exemple le 3ème emplacement désactive purement et simplement le slot PCIE2. Vérifiez aussi que la puce du contrôleur M.2 dispose bien d'un pilote pour votre système, et demandez-vous par où passera le câble car mis à part l'accélérateur IA que je vous présente un peu plus bas, toutes les cartes qui suivent traînent un truc derrière elles. Donc, il faudra peut-être découper votre boîtier ou laisser dépasser des trucs...

Allez, c'est parti !

Une carte réseau 5 ou 10 GbE

Pour un NAS ou un routeur maison, la carte 5 GbE de KALEA à 29,90 € embarque une Realtek RTL8126 qui se branche sur un emplacement à clé M ou B+M et déporte son port RJ45 sur une équerre classique de PC. Et bonne nouvelle, comme la RTL8126 est une puce PCIe 3.0 x1, une seule ligne suffit ! Elle est reconnue par le pilote r8169 de Linux depuis le noyau 6.9, et sous FreeBSD (donc OPNsense ou pfSense) par le pilote officiel de Realtek , realtek-re-kmod, qui s'installe à part.

La carte 5 GbE de KALEA, avec son port RJ45 déporté sur une équerre

Maintenant, si vous voulez du 10 GbE, la carte de REKONG à 98,32 € passe par une Marvell AQC113. Et si j'en crois la fiche du vendeur, elle accepte du Gen4 x1 ou du Gen3 en x4, x2 et x1. Sauf qu'une ligne Gen3, c'est 8 Gbit/s, ce qui veut dire que sur un emplacement Gen3 x1, elle plafonnera sous ses 10 Gbit/s. Donc à ce prix-là, autant prendre la 5 GbE. Par contre, en Gen3 x2 (16 Gbit/s) ou en Gen4 x1 (32 Gbit/s), elle pourra tenir les 10 Gbit/s sans problème,

Côté logiciel, Linux la gère avec son pilote atlantic, mais sous OPNsense, c'est une autre histoire. Le pilote FreeBSD d'Aquantia, lui, ne prend pas en charge l'AQC113 et il faudra passer par un pilote communautaire .

Un accélérateur IA pour Frigate

Si vous faites tourner Frigate pour vos caméras , oubliez le Google Coral, qui n'est plus recommandé par Frigate . Mais attention, avant d'acheter un autre accélérateur IA à la place, regardez d'abord si votre processeur ne sait pas déjà faire le boulot, car le détecteur OpenVINO de Frigate tourne sur le GPU intégré des processeurs Intel de 6e génération ou plus récents. Un N100, par exemple, analyse une image en 15 ms environ avec MobileNetV2, sans rien acheter de plus, donc vous n'en aurez peut-être même pas besoin.

Par contre, si ça ne suffit plus, le module Hailo-8 de LUCKFOX à 201,59 € vous amènera 26 TOPS sur une interface PCIe Gen3 à quatre lignes. Frigate le prend en charge, avec environ 7 ms par image, mais mesurées avec YOLOv6n, donc c'est loin d'être comparable aux 15 ms du N100.

Maintenant, le truc cool, c'est que vous n'avez pas besoin d'un emplacement x4. La preuve, l'AI HAT+ 26 TOPS de Raspberry Pi, construit autour du même Hailo-8, tourne sur le port PCIe du Pi 5, qui n'a qu'une seule ligne. Un emplacement M.2 en x1 fera donc l'affaire, même si Frigate note que les PC x86 à deux lignes font mieux que le Pi.

Le module M.2 Hailo-8, avec sa puce sous un capot métallique

Une carte graphique externe en OCuLink

Ici, c'est la seule carte de la liste qui exige un emplacement x4. L'adaptateur OCuLink de RIITOP à 36,95 € transformera instantanément votre port M.2 en prise OCuLink PCIe 4.0 x4 (jusqu'à 64 Gbit/s). On doit ensuite le relier au dock Minisforum DEG1 (prix 109,00 €), sur laquelle se plug la carte graphique (à acheter séparément avec son alim) et se branche sur une alimentation ATX ou SFX. Le câble OCuLink, lui, est livré avec le dock .

L'adaptateur M.2 de RIITOP et sa prise OCuLink

Notez que le DEG1 de Minisforum n'est compatible qu'avec les machines qui gèrent le PCIe 4.0 x4, donc visez un emplacement Gen4 x4. Et l'OCuLink ne se branche pas à chaud, faudra éteindre le PC avant.

Le dock DEG1 de Minisforum, avec le slot qui reçoit la carte graphique

Et si vous préférez rester à l'intérieur du boîtier, la nappe ADT-Link à 35,45 € ressortira l'emplacement M.2 en slot PCIe x16 prévu pour une carte graphique. Alors je dis x16, mais c'est seulement au niveau du format PCIe 3.0 parce que la carte, en réalité, ne recevra que les lignes réellement disponibles de l'emplacement M.2.

La nappe R43SR d'ADT-Link, du connecteur M.2 au slot PCIe x16

Le port USB-C de façade qui ne sert à rien

Et si le port USB-C en façade de votre boîtier reste inerte faute de connecteur sur la carte mère, l'adaptateur Type-E de CY à 32,99 € transformera l'emplacement M.2 en connecteur interne Type-E à 20 Gbit/s. Il repose sur une ASMedia ASM3242, conçue pour quatre lignes PCIe Gen3 (sur deux, on tombe à 16 Gbit/s), et ne fait ni vidéo, ni audio, ni recharge PD.

L'adaptateur M.2 de CY, son connecteur Type-E et son dissipateur

Maintenant, si un connecteur USB 3.0 à 19 broches est encore libre, un simple adaptateur EZDIY-FAB à 14,99 € réveillera ce port en USB 3.2 Gen 1, sans avoir à toucher à votre emplacement M.2.

L'adaptateur en L d'EZDIY-FAB, vu sous deux angles

Six ports SATA de plus

Côté stockage, le contrôleur SATA de Namvo à 29,99 € vous ajoutera 6 ports SATA 6 Gbit/s grâce à une ASMedia ASM1166 , reliée en PCIe Gen3 x2. Ça fait 16 Gbit/s à partager entre les 6 disques, et moitié moins sur un emplacement x1.

Le contrôleur SATA de Namvo

Du Wi-Fi 6E

Enfin, pour ajouter du Wi-Fi 6E à une tour qui n'en a pas, il vous faudra un module Intel AX210 à 28,37 € et un adaptateur Jectse à 9,62 € qui le fera tenir dans un emplacement à clé M. Comme Intel documente son AX210 comme étant du Wi-Fi (PCIe) et BT (USB), l'adaptateur fait passer le Wi-Fi par une ligne PCIe et le Bluetooth par un petit câble USB 2.0 fourni, à relier à un connecteur interne de la carte mère. Et les antennes ne figurent ni sur la fiche du module ni dans le colisage de l'adaptateur, donc faudra les acheter à part.

Méfiez-vous par contre de la liste de compatibilité de la fiche Jectse, qui dit supporter aussi l'AX201. Intel classe ce module en "M.2: CNVio2", et pas en PCIe et USB. Bref, attention à bien prendre un AX210 et pas un 201

Voilà et si votre emplacement libre s'avère être câblé en SATA, bah oubliez toutes ces cartes... Toutes ces cartes parlent uniquement le PCIe. Il ne vous restera alors plus qu'à y mettre un SSD SATA... Snif.

Source : XDA Developers

curl.md - Récupérez le texte de n'importe quelle page web au format Markdown

Par : Korben ✨

Je ne sais pas si vous connaissez curl.md, mais c'est un service qui prend l'adresse d'une page web et vous l'affiche en Markdown. Y'a pas de menus, pas de bandeaux de cookies, et ce genre de conneries... C'est juste le texte de votre article, les titres, les liens et les tableaux.

Et le plus sympa, c'est que vous n'avez rien à installer pour l'essayer. Vous collez curl.md/ devant l'adresse qui vous intéresse, dans la barre de votre navigateur, et vous obtenez la page en texte markdonw. Avec curl dans un terminal, c'est pareil, la réponse arrivera en text/markdown, et si vous préférez du JSON, vous envoyez l'en-tête Accept: application/json.

Un article de korben.info passé par curl.md : le texte, les liens, et un en-tête de métadonnées en haut

Et vous pouvez aller plus loin en ajoutant un objectif avec le paramètre --objective. Par exemple, vous décrivez ce que vous cherchez dans la page, et le service ne vous renvoie que le passage qui correspond. Il y a aussi des mots-clés, qui font un pré-filtrage avant l'extraction, et un mode smart ou rush selon que vous voulez une passe plus poussée ou plus rapide. Tout ça passe en paramètres d'URL, donc sans ligne de commande.

Pour ceux qui y reviennent souvent, il existe également un client à installer avec npm, avec bun ou avec un script, et qui s'invoque ensuite par curl.md ou par son alias court md :

# Sans rien installer
curl curl.md/example.com

# Ou avec le client
npm i -g curl.md
md zod.dev/error-formatting --objective "tree error formatting"

Côté agents de code, il y a des intégrations natives pour Amp, Claude, OpenCode et Pi. Si votre outil n'est pas dans la liste, le client sait aussi tourner en serveur MCP avec curl.md --mcp, et il existe un SDK TypeScript. Dans tous les cas, c'est l'agent qui va chercher les pages tout seul, vous n'avez plus rien à lui coller.

Du coup, ça sert à quoi ?

Bah dans le cadre de votre boulot, c'est surtout pour arrêter de coller des pages entières dans vos prompt. Vous donnez à votre agent la doc d'une bibliothèque avec un objectif précis, et il reçoit trois paragraphes au lieu de quarante pages HTML.

Ça marche aussi pour un script de veille qui suit les notes de version d'un projet, ou pour aspirer une doc dans un fichier texte que vous garderez dans le dépôt (bien plus lisible qu'un PDF dans un coin...).

Et en usage perso, ça vous permet de récupérer par exemple un article pour le relire au calme dans Obsidian, d'archiver une recette ou un mode d'emploi avant qu'il disparaisse, ou de vous envoyer une page à ChatGPT sans lui faire avaler la moitié du site autour. Notez que si c'est la consommation de vos agents qui vous embête, j'avais parlé de RTK, un proxy qui économise des tokens sur le même principe.

Par contre, il y a un plafond. En mode anonyme sur la version hébergée, vous avez droit à 100 requêtes par heure, et 1 000 une fois connecté. Et pour les requêtes avec un objectif, celles qui font justement l'intérêt du truc, c'est 3 par heure en anonyme et 10 en étant connecté. Bref, de quoi essayer, mais pas vraiment de quoi travailler... Au-delà, faudra passer par des crédits prépayés, à recharger par tranches de 5, 10, 20 ou 50 dollars.

Et si vous ne voulez pas dépenser d'argent, le code source est public sur GitHub sous licence MIT pour l'auto-héberger chez vous.

C'est à tester sur curl.md , et merci à Camille Roux pour le lien !

10 projets RECOMP qui sortent vos vieux jeux de leur console

Par : Korben ✨

Saviez-vous que Silent Hill, premier du nom, peut aujourd'hui être terminé sur PC, en grand écran et sans émulateur ? Et oui, c'est possible parce que le jeu est compilable directement pour votre machine à partir du code source obtenu à partir d'un gros travail de reverse engineering.

Et ce genre de portage n'est plus un cas isolé du tout. Depuis Zelda 64 recompilé , la scène RECOMP a franchement explosé, au point qu'on ne sait plus trop où donner de la tête. Il y a des portages qui sont très complets et fonctionnels du début à la fin, et puis des projets en cours qui sont à moitié finis, qui plantent, etc.

Alors j'ai fait mes recherches et aujourd'hui, je vous présente 10 projets de recompilation qui valent le coup ! Je commence donc par les deux qui se jouent pour de vrai.

Le port PC de Silent Hill , donc, pour commencer. Dans ce portage, chaque carte, chaque boss, chaque cinématique et chaque fin fonctionnent, et vous pouvez boucler le jeu aujourd'hui si vous le voulez. Vous récupérez au passage la 16:9, la correction de perspective PGXP, des caméras alternatives et un gestionnaire de mods, et les disques PAL français sont reconnus tout seuls. Je précise aussi que la décompilation PSX en dessous est un travail communautaire de longue haleine, mais que le portage, lui, est assisté par IA (avec Claude Opus 4.6 et 4.7).

Le launcher du port PC, réglé en 1920x1080 avec PGXP activé et la limite de FPS à zéro

Dans la même catégorie, il y a Golden Balloon qui ressuscite ce que son dépôt appelle sobrement le kart racer Nintendo 64 de 1997. Pas d'émulateur là non plus mais un jeu compilé pour votre machine, qui lit votre ROM en local, sans jamais l'envoyer nulle part. Vous pouvez même jouer directement dans le navigateur à 2 ou 4 joueurs en écran partagé ou en multijoueur directement en ligne (ça c'est en bêta).

La page du portage : le jeu compilé pour votre processeur, affiché en WebGPU, et rien à installer

Après, il y a d'autres projets qui démarrent plutôt bien même s'ils sont encore en chantier.

Je pense à Party Board qui en est le meilleur exemple. En gros, c'est Mario Party 4 porté sur Windows, Linux, macOS, Android et iOS, avec un mode en ligne à deux. Tout n'est pas parfait, c'est un work in progress, mais ça progresse assez vite, donc je pense que c'est un projet à suivre si vous aimez Mario Party.

Party Board sur GitHub : le dernier commit remonte à l'heure qui précède la capture

De son côté, DKC1Recomp s'attaque à Donkey Kong Country sur Super Nintendo, et son statut affiché est "playable bring-up". Ça veut dire que ça démarre, ça se joue, mais on en est aux toutes premières versions. La totalité du code du jeu est générée statiquement et ça peut tourner sous Windows, macOS et même via une app iPhone et iPad native. Par contre, comme d'hab', il vous faut la ROM.

Notez que Snesrecomp apparaît en sous-module dans l'arborescence de DKC1Recomp

Lost Odyssey Recomp est sans doute le plus ambitieux du lot puisqu'il s'agit d'un très gros jeu Xbox 360 traduit depuis son binaire PowerPC vers du natif, en Direct3D 12 ou Vulkan. D'après ses auteurs, les zones d'ouverture et quelques scènes sont testées, mais pas encore une partie complète, et il reste des soucis de rendu et de stabilité. La dernière version embarque quand même un pack de shaders qui vous évite leur compilation au premier lancement.

La ville industrielle de Lost Odyssey, avec sa minimap de navigation en haut à droite

Viennent ensuite les outils, ceux qui fabriquent les portages plutôt que de les livrer...

On a d'abord RecompOne qui recompile statiquement les exécutables PlayStation 1 vers du C# et fournit la couche qui rejoue le matériel de la console. Pas besoin de BIOS ni du moindre fichier Sony, vos fichiers de jeu suffisent. Le projet est fait par des humains, et aucune contribution écrite par une IA ne sera acceptée, et l'auteur explique qu'il ne fera la promotion d'aucun portage produit de cette façon.

L'IA c'est la vraie ligne de fracture de la scène en ce moment...

RecompOne et son logo aux couleurs de la PlayStation, publié sous licence MIT

DolRecomp fait la même chose pour la GameCube et la Wii. Il sait extraire un disque GameCube tout seul, et s'appuie sur Wiimms ISO Tool pour les images Wii, qu'il vous propose d'installer au passage. Sa grosse limite, c'est qu'il ne traduit que le processeur. En effet, tout le runtime autour, il faut l'apporter, ou partir du modèle que fournit ModernGekko. Autant dire que c'est un outil de bricoleur et pas un bouton "portage".

Luigi's Mansion qui tourne dans une fenêtre Windows sobrement nommée MansionRecomp

ps3recomp de son côté vise la machine la plus tordue de la liste, le Cell de la PlayStation 3, avec un objectif simple : transformer un binaire PS3 en exécutable natif sans passer par l'émulation. Et face à l'émulateur RPCS3 , l'argument n'est pas la compatibilité mais la performance native, et évidemment, un code C++ nettement plus facile à modder.

Chez ps3recomp, la toute première version publiée s'appelait Hello, Cell

Le neuvième outil, spoiler alert, c'est le mien. Ça s'appelle KOMPOTE et c'est un recompilateur universel de ROMs. Je bosse dessus depuis trois ou quatre mois et il permet de recompiler des ROMs Game Boy dans toutes ses déclinaisons, NES, Super NES, les consoles Sega, la Lynx, la Nintendo 64, la Neo Geo, le Commodore 64. Vous glissez une ROM dessus, ça vous sort un exécutable natif, ou une version WebAssembly pour jouer depuis une page web.

C'est une bêta réservée aux Patreons pour l'instant, dispo sous macOS, Windows et Linux et comme pour les autres projets de ce type, ça n'embarque aucun code propriétaire. J'y ai également intégré des petites fonctionnalités sympas sur l'affichage (effets VHS, GB color...etc), l'amélioration du son, les sauvegardes automatiques, du rewind, une API pour pouvoir piloter les jeux avec un TAS, le support des codes Game Genie et j'en passe...

Et puis il y a surtout CubeShelf , qui est le premier signe que tout ça commence à s'organiser. C'est un gestionnaire de bibliothèque GameCube qui installe et met à jour les runtimes de plusieurs jeux portés d'un coup... Mario Party 4, Soulcalibur II, Super Mario Strikers... etc. Ça prépare vos images disque et gère les mods GameBanana .

La page du projet CubeSelf

Voilà, donc comme je vous le disais, aucun de ces projets ne contient le moindre fichier de jeu. C'est à vous d'amener votre propre ROM ou votre image disque, et parfois même le BIOS de la machine en plus, sinon rien ne se lancera ou ne se recompilera. Et ensuite, une fois que vous aurez une version recompilée de votre jeu préféré, vous pourrez y jouer depuis votre ordinateur comme bon vous semble, sans devoir passer par un émulateur ou la console d'origine.

Bref, si vous ne deviez en essayer qu'un aujourd'hui, prenez Silent Hill ! C'est vraiment un super portage !!

Mes 2 nouveaux interrupteurs Sonoff Zigbee

Par : Korben ✨

J'ai installé 2 interrupteurs Sonoff Zigbee dans mon bureau hier, un pour la lumière et un pour le volet roulant, et ça m'a pris quelques dizaines de minutes. Que du bonheur !

Les deux bêtes sont l'Orb-ZBW1L et l' Orb-ZBRBS (lien affilié). Le premier est un interrupteur mural Zigbee 3.0 à un bouton, qui fonctionne sans fil neutre et supporte jusqu'à 6 A de charge, ce qui règle le cas des vieux emplacements où il n'y a que la phase. Le second interrupteur que j'ai installé, quant à lui, pilote un volet roulant, et son appairage se fait très facilement par un appui d'environ cinq secondes sur le bouton arrière.

Notez que le volet demande un calibrage pour connaître sa course, et c'est là que j'ai failli faire une bêtise. En effet, Zigbee2MQTT expose une action start_automatic qui fait parcourir tout le trajet au moteur. Chez moi ça a duré plusieurs minutes, capteur de statut muet et position bloquée à 50 %. J'ai donc cru qu'il y avait un problème et j'ai stoppé le moteur, alors qu'il avait presque fini. Bref, au moment du calibrage, pensez donc bien à le laisser tourner cinq bonnes minutes.

Bon, après, je n'ai pas vraiment de mérite parce que j'ai surtout laissé aussi Claude Code m'aider à mettre tout ça en place avec son MCP Home Assistant, comme je vous l'expliquais dans cet article .

Vive les wagos !

Le vrai morceau qui m'intéresse après, c'est Alexa. En effet, ces deux appareils passent par un pont Matter local vers Alexa ( Home-Assistant-Matter-Hub ), déjà appairé depuis des semaines, et je les ajoute directement là-dessus. Comme ça, tout mon matos dispo Home Assistant apparaît dans Alexa sans problème. Ça me permet de dire des trucs comme "Alexa, allume la lumière du bureau" ou "Alexa ouvre le volet à moitié" ou "Alexa ferme le volet de 30%".

Et ça me permet surtout de faire des scénarios d'automatisation assez cool. Par exemple, mon volet se ferme tout seul quand le soleil passe sous 5° au-dessus de l'horizon... donc pas à heure fixe !

En fait, comme en décembre le soleil descend plus obliquement qu'en juin, le fameux "30 minutes avant le coucher du soleil" ne donne pas la même pénombre d'une saison à l'autre. Alors que 5°, si... Enfin bref, je ne sais pas si vous faites comme ça chez vous, mais moi je trouvais ça plus adapté à ce que je voulais.

trigger:
 - platform: numeric_state
 entity_id: sun.sun
 attribute: elevation
 below: 5
action:
 - service: cover.close_cover
 target:
 entity_id: cover.volet_bureau

Après, mon garde-fou, le but ultime de toute cette affaire, c'est qu'on ne voie pas l'intérieur du bureau depuis la rue ! Du coup, j'ai mis en place une règle supplémentaire qui fait que si le volet s'ouvre alors que le soleil est déjà bas, les lumières s'éteignent. Et je déclenche ça dès le début de l'ouverture, pour qu'il fasse déjà noir à l'intérieur pendant que le volet remonte.

Ah et j'ai oublié de le préciser mais comme l'électricité et moi ça fait deux, j'ai donc photographié les fils des anciens interrupteurs pour demander un peu d'aide à ChatGPT avant de rebrancher tout ça avec des wagos. Je n'ai eu aucun court-circuit, youpi !! J'ai aussi bien pris soin de couper le disjoncteur général pour ne pas finir comme Claude François, car je précise quand même qu'on est sur du 230 V, et qu'une IA qui lit une photo ne remplace pas un électricien !

Le vieil interrupteur que j'ai remplacé

Mais ça permet quand même de mieux comprendre ce qu'on est en train de faire et de débrouiller des situations un peu compliquées parfois, quand le boulot à l'origine était mal fait.

Voilà, en tout cas, je suis très content de ces deux interrupteurs et je pense que je vais en acheter d'autres, notamment pour le reste des volets roulants de la maison.

La Forge - Le GitLab public des profs codeurs

Par : Korben ✨

Je ne sais pas si vous êtes déjà tombé dessus, mais le ministère de l'Éducation nationale fait tourner son propre GitLab depuis un petit moment maintenant, il est public, et il s'appelle La Forge des communs numériques éducatifs . Au moment où j'écris ces lignes, il y a dessus 12 896 projets et 15 638 membres dans ce qu'ils appellent "l'atelier".

Alors c'est quoi cette dinguerie comme disent les anciens ? Hé bien derrière, c'est du GitLab CE, infogéré par le pôle de compétences Logiciels Libres (oui, ça existe, et c'est un vrai service de l'Éducation nationale), et classé dans les services partagés d' apps.education.fr .

Les 595 ressources de la ressourcerie, avec les étiquettes de niveau et de discipline sous chaque fiche

Et le plus beau c'est que pour aller fouiller dedans, vous n'avez besoin de rien du tout puisque les dépôts publics s'ouvrent via le navigateur, sans authentification.

Bien sûr, cette grosse dizaine de milliers de dépôts de code bruts, ça ne se visite pas comme ça. Il y a donc une vitrine, nommée la ressourcerie , qui en met en avant un peu moins de 600, triées par niveau, par discipline et par tag et pour la plupart, testables en ligne.

Par contre, pousser du code est un poil plus encadré. Pour cela, le personnel du ministère doivent avec leur compte Apps, et tous les autres, profs retraités, universitaires, Inria, boîtes de l'EdTech, associations, et j'en passe, passent par un second annuaire avec validation préalable.

Donc non, vous ne pourrez pas y déposer votre side-project éducatif du week-end, mais si votre truc sert vraiment à des profs, la porte n'est pas fermée...

Là-dessus l'Éducation nationale n'est pas toute seule, puisque les Pays-Bas ont également monté leur forge de code , où une cinquantaine d'administrations et de communes publient déjà.

Et l'IA là-dedans ?

Hé bien c'est complètement décomplexée et tant mieux ! Le catalogue a 7 tags officiels rien que pour ça, de "IA chatbot" à "IA prompt" en passant par "IA LLM souverain", et 48 fiches en font partie. Ce n'est donc pas la majorité du catalogue, mais il y a quand même un projet nommé EduVaibe dont le boulot est de "générer, étape par étape, un prompt complet à coller dans une IA pour créer des applications numériques éducatives".

Le truc le plus utile du lot, je trouve, même quand on n'a aucune classe à gérer, c'est ChatMD . Vous forkez le dépôt, vous remplacez le contenu d'index.md par vos propres réponses écrites en Markdown, et votre agent conversationnel bien à vous est ensuite accessible à partir d'une simple URL. Le tout est sous licence MIT bien sûr !

Maintenant derrière une bonne partie de ces dépôts, il y a un prof tout seul qui bricole sur son temps libre, et malheureusement, le jour où il abandonne, le projet s'arrête. Mais la bonne nouvelle c'est que la Forge rétribue chaque année quelques profs pour justement les soutenir dans leurs projet.

C'est maigre à l'échelle d'un ministère, je vous l'accorde, mais c'est quand même mieux que rien. Voilà, en attendant, je vous invite à y faire un tour ! Vous y trouverez peut-être des choses intéressantes.

Merci à Sylvain Bruyère pour le lien !

OpenDisplay - Étendre l'affichage Mac avec ce que vous avez sous la main

Par : Korben ✨

OpenDisplay est un outil open source qui vous permet d'avoir un affichage déportée de macOS sur n'importe lequel de vos appareil Apple dont vous ne faites rien. Et ce n'est pas une recopie basique de votre bureau, mais bien un écran que macOS affichera dans ses réglages d'affichage, et sur lequel vous pourrez faire glisser vos fenêtres comme sur n'importe quel écran externe.

Ce clic autorise une connexion à Google : adresse IP transmise et traceurs possibles. En savoir plus Voir cette vidéo sur YouTube

Alors oui, je saiiiis, Sidecar fait déjà ça, et gratuitement en plus, mais Apple s'est arrêté à l'iPad et les deux appareils (votre iPad + votre ordi) doivent être connectés avec le même compte Apple. Du coup, votre iPhone ou un vieux Mac qui ne sert plus, n'ont jamais été invité à la fête, et les appareils Apple de votre conjoint.e encore moins.

Pour faire fonctionner ça, une seconde application, OpenDisplay Receiver, s'installe dessus et le transforme ainsi en écran. Elle ne réclame que macOS 12 Monterey, ce qui permet à des Macs sortis à partir de 2015 environ de rester dans le game. Le Mac qui envoie l'image, lui, devra être sous macOS 14 minimum.

Côté installation, l'application iPhone et iPad est sur l'App Store, totalement gratuite, à partir d'iOS 16.4. Votre Mac principal, lui, récupère de son côté un DMG signé et notarisé par Apple (ça veut dire que ça s'ouvre au double-clic sans que Gatekeeper vienne râler et ça c'est cool).

Ensuite vous branchez le matos, et comme OpenDisplay passe par usbmuxd qui est un service déjà présent dans votre macOS, il n'y a pas d'outil tiers et pas de tunnel à monter, ça se connecte tout seul. Attention quand même au câble, car il doit transporter des données. Cela veut dire qu'un câble lambda de charge seule ne fonctionnera pas. Et une fois l'écran en place, l'appareil deviendra tactile pour le Mac, donc, vous pourrez faire défiler Korben.info avec vos deux doigts, like a boss !

Par contre, si vous souhaitez utiliser la connexion via le Wi-Fi, sachez qu'il y a un petit bug au niveau du curseur de la souris. Donc, en attendant que ce soit résolu, je vous invite vraiment à passer par le câble. Niveau sécurité, il y a un petit truc à savoir aussi : le flux vidéo qui circule sur le Wi-Fi se fait sans chiffrement.

Alors normalement, chez vous, ça ne devrait pas poser de problème, mais sur un réseau partagé ou public, je vous invite vraiment à brancher le câble USB. Parce que sinon, ça veut dire que n'importe qui pourrait récupérer votre flux d'écran en passant par la même borne Wi-Fi que vous. Un transport chiffré avec appairage des appareils est prévu, il n'est pas encore là.

Dernière chose à savoir avant de vous lancer : l'application Mac s'appuie sur CGVirtualDisplay, une API privée de CoreGraphics, la même que celle de DeskPad dont je vous avais parlé . C'est pour ça qu'elle n'est pas distribuée sur l'App Store, et malheureusement, une mise à jour de macOS peut très bien la casser.

Voilà, si vous avez un iPhone qui prend la poussière ou un vieux MacBook / iMac au fond d'un placard, c'est à tester !

Kits IA Korben - Des tutos pour vos agents IA

Par : Korben ✨

Ce matin, lors de mon live sur Twitch , je présentais un petit peu les nouveautés que j'avais mises en place sur mon site, et parmi elles, les kits IA.

Et je me suis dit que c'était un peu con parce que je ne vous en ai pas parlé publiquement. Donc on va régler ça ici, maintenant, tout de suite !

Vous le savez, je suis toujours à la recherche d'idées un peu sympas, d'innovations, de trucs un peu cool à faire sur mon site. Et comme il m'arrive souvent de faire des tutoriels pour vous expliquer comment installer telle ou telle saloperie sous Linux, sur un Docker, sur un Windows, etc., je me suis dit qu'en plus du tutoriel, ce que je pouvais vous proposer, c'était des petits fichiers zip qui embarquaient tout le savoir de mon tuto.

Des kits avec une vraie expérience derrière, afin que votre agent IA puisse installer le même outil que moi en autonomie complète. Voici donc le genre d'encadré que vous pourrez retrouver dans certains de mes articles :

Comme ça, au lieu de suivre le tuto et de taper vous-même les lignes de commande, vous donnez mon zip et le prompt qui va bien fourni avec à votre agent, qui peut être Claude Code, ChatGPT, Codex ou encore des choses open source et locales, comme par exemple une combinaison de Qwen 3.7 avec OpenCode. Et ensuite, celui-ci se débrouille sur votre machine pour faire tourner l'outil qui vous fait envie.

Maintenant, pour produire ces kits IA, je ne fais pas ça n'importe comment : ça repose sur de vraies installations réalisées de A à Z, ça repose aussi sur la doc officielle du projet, ce qui permet comme ça, d'anticiper les problèmes que vous pourriez avoir sur votre machine. Comme ça, l'agent sait ce qu'il a à faire, si jamais il rencontre un petit blocage parce que vous avez un souci de permission ou qu'une version de Python n'est pas la même, etc. Et cela peu importe l'OS.

Et comme dans le kit, ce sont essentiellement des fichiers Markdown accompagnés de scripts Python, Shell, PowerShell, etc, vous pouvez évidemment tout relire, tout vérifier...etc.

Voilà, si ça vous intéresse, vous pouvez retrouver l'ensemble des kits IA ici . Il n'y en a pas encore beaucoup, mais à chaque fois que je ferai un tuto, j'en ferai un.

Par contre, pour en profiter, il faudra évidemment être abonné à mon Patreon ^^.

Enjoy !

GNOME Boxes - L'outil qui monte les VM à votre place

Par : Korben ✨

Si vous avez déjà voulu essayer une distrib sans toucher à votre machine, vous connaissez la corvée... Faut dénicher la bonne ISO (32/64 bits, ARM...etc), créer la VM, et passer 20 minutes dans des réglages pour que ce soit joli ou qu'on puisse y faire du copier coller dans l'hôte et l'invité. Boxes , l'application de virtualisation du projet GNOME, vous permet d'éviter tout ça et c'est top si vous aimez économiser un peu de jus de cervelle. Vous choisissez le système dans une liste, et il va chercher l'image et l'installe tout seul en VM pendant que vous faites autre chose, par exemple venir sur Twitch regarder mon live .

La liste couvre Debian, Fedora, Ubuntu, OpenSUSE, CentOS Stream, Red Hat Enterprise Linux et Windows. Pour son fonctionnement Boxes s'appuie sur du solide avec qemu-kvm, libvirt-glib et spice-gtk, donc le code de votre système invité s'exécute directement sur le processeur de l'hôte via KVM, pour obtenir ce que la doc de GNOME appelle des "performances proches du natif".

Une fois la VM créée, vous lui fixez la quantité de mémoire et le stockage qu'elle a le droit de prendre sur votre système, histoire qu'elle ne vous freeze pas la machine. Et bien sûr, vous pouvez prendre des instantanés pour la ramener à un état antérieur, ce qui est la fonction qu'on utilise tout le temps, si comme moi vous aimez casser volontairement vos OS avec des bidouilles alternatives des enfers.

Le reste, c'est du confort : vous branchez une clé USB sur votre machine et vous la redirigez dans la VM, le presse-papiers est partagé entre les deux, et vous déposez un fichier depuis votre gestionnaire de fichiers dans la fenêtre de Boxes pour l'envoyer à l'invité.

L'affichage des VMs dans Boxes se redimensionne tout seul quand vous changez la taille de la fenêtre, et il y a même de l'accélération 3D pour certains des systèmes supportés.

Après, cette "simplicité" se paye puisque des choses comme la config des adaptateurs réseau ou la mise à jour du matériel virtuel, n'est pas visible dans l'interface . Et comme le Flatpak embarque toute la pile de virtualisation dans son propre conteneur, vous n'irez pas rattraper ça en douce dans les fichiers. Donc si vraiment vous avez besoin de mettre les mains dans le cambouis au niveau de ces réglages-là, prenez plutôt virt-manager dès le départ, c'est fait pour.

Son auteur, Felipe Borges a d'ailleurs réécrit entièrement l'application en GTK4 et partage ses résultats depuis août . Cette version-là installe dorénavant Windows 11 sans le moindre contournement manuel, en configurant Secure Boot et un TPM virtuel automatiquement. C'était la fonction la plus réclamée sur la version classique et elle ajoute aussi un périphérique VSOCK, qui permet de se connecter directement en SSH sur les VM en systemd 256 ou plus récent.

Attention quand même, ça reste une bêta destinée aux tests et pas à la production, et son auteur conseille de sauvegarder les données de vos VM avant d'y aller. Il précise aussi qu'il travaille là-dessus sur son temps libre, en plus de maintenir GNOME Settings et de son job à temps plein chez Red Hat ! Encore un hyperactif !! lol. Donc soyez patient si vous ouvrez un ticket de support.

Pour ce qui est disponible aujourd'hui, Boxes ne tourne que sur Linux, la version stable est la 50.0 sortie depuis mars 2026, et ça se télécharge via Flathub comme ceci :

flatpak install flathub org.gnome.Boxes

Dernier truc à savoir, Felipe, le mainteneur, a proposé de retirer Boxes du cœur de GNOME pour en faire une application indépendante, et le retrait est programmé pour GNOME 52 en mars 2027. Flathub deviendra alors le seul canal officiellement supporté, et le nom perdra son "GNOME" pour devenir simplement Boxes. L'identifiant Flatpak ne bougeant pas, les installations existantes continueront de se mettre à jour sans rien casser.

Et si vous voulez comparer avec une autre solution similaire, je vous avais déjà parlé de QuickEmu pour monter des VM sans y passer l'après-midi, mais Boxes, lui, joue sur le terrain du tout à la souris, et ça j'imagine que ça vous plait plus !

Merci à Hub pour le partage !!

SpruceOS - Le guide pour rhabiller votre console rétro

Par : Korben ✨

Si vous avez une petite console rétro portable qui traîne, du genre une Miyoo Mini, une TrimUI Brick, une Anbernic RG35XX , vous avez sans doute remarqué que l'interface livrée avec fait le job mais sans plus. Ça tombe bien, spruceOS est là pour ça ! Et malgré son nom, ce n'est pas vraiment un système d'exploitation. En réalité, il s'agit d'un frontend codé en Python qui vient se poser sur une base système déjà existante. Le code est public, sous une licence Creative Commons donc pour les plus capitalistes d'entre vous, ça veut dire pas d'usage commercial sans permission écrite de l'équipe.

Sur les Miyoo et les TrimUI, la base en question est le système d'origine de la console, celui du fabricant. Sur les Anbernic à puce H700 et sur la Powkiddy RGB30, il faut d'abord installer une base tierce sur la première carte mémoire, genre BaseOS pour les Anbernic, dArkMoss pour la Powkiddy. La carte spruce, elle, ira dans le second emplacement, le TF2, et elle restera librement échangeable d'un appareil supporté à l'autre. Rien de dramatique donc, mais ça fait une étape de plus et une carte en plus.

Ce que vous y gagnez si vous installez spruceOS, c'est surtout du confort au quotidien. Vous maintenez le bouton HOME pendant trois secondes et le Game Switcher vous laisse sauter d'un état de sauvegarde à l'autre sans quitter votre partie. Quand vous éteignez la console en plein jeu, elle sauvegarde même toute seule son état et vous remet exactement là où vous en êtiez au rallumage. Et si votre console a le Wi-Fi, vous ne repassez plus par le PC pour l'habiller puisque l'outil Theme Garden pioche dans plus de quatre-vingts thèmes communautaires dispo en ligne, le Game Nursery télécharge des portages gratuits / homebrew, et un scraper récupère même les jaquettes des jeux depuis la base libretro.

Le menu principal de spruceOS, avec les quatre icônes du thème SPRUCE par défaut

Ce qu'il vous faut avant de commencer

Il vous faut une carte microSD neuve, d'une vraie marque, achetée chez un revendeur sérieux ainsi qu'un bon lecteur de cartes. Et bien sûr un ordinateur sous Windows, macOS ou Linux avec une connexion Internet.

Et surtout, n'utilisez pas la carte livrée avec la console. C'est pas moi qui le dit mais le wiki du projet qui est catégorique là-dessus, en majuscules dans le texte : "DO NOT USE THAT STOCK SD CARD!", parce qu'elle est mauvaise, que les jeux dessus sont mauvais et que les BIOS le sont aussi. Donc gardez-la dans un tiroir, elle vous servira pour revenir en arrière en cas de foirage.

L'installation en un clic

L'équipe a sorti un installeur tout-en-un, qu'elle présente comme entièrement open source, disponible pour Windows, Linux et macOS. Il formate la carte, télécharge la version que vous choisissez et l'installe, en une seule opération. Une seule précaution, et le projet la signale lui-même : vérifiez bien que le lecteur que vous désignez est votre carte, parce que l'installeur écrit sur celui que vous lui montrez. C'est le chemin recommandé, et c'est aussi lui qui règle le cas des Anbernic et de la Powkiddy : BaseOS et dArkMoss ont chacun leur onglet dans l'application et se téléchargent puis s'installent automatiquement, sans que vous ayez à aller chercher une image ailleurs.

Un détail qui coince sur Mac, et qui n'est écrit nulle part ailleurs que dans le dépôt : macOS interdit aux applications d'écrire sur un disque amovible sans permission explicite, et l'installeur passe par le Terminal. Il faut donc aller dans Réglages Système, Confidentialité et sécurité, Accès complet au disque, ajouter Terminal, puis quitter et rouvrir le Terminal. Ce dernier point compte, la permission ne s'applique pas à une session déjà ouverte.

Sur Mac, Terminal doit figurer dans Accès complet au disque pour que l'installeur puisse écrire sur la carte ( Source )

L'installation à la main

Si vous préférez faire ça vous-même, il vous faut un utilitaire de formatage et 7zip. Vous formatez la carte en FAT32, avec Rufus sous Windows ou l'Utilitaire de disque sous macOS en choisissant MS-DOS (FAT32). Vous récupérez l'archive spruce.vX.X.X.7z sur la page des versions du dépôt, vous l'extrayez sur votre ordinateur, puis vous copiez le contenu extrait sur la carte. Vous éjectez proprement, vous insérez la carte dans la console et vous allumez.

Et là, attention au piège, puisque le paquet contient un dossier caché nommé .tmp_update, et sans lui spruce ne fonctionnera tout simplement pas. Donc affichez les fichiers cachés avant de les copier : sur Mac c'est Commande + Majuscule + point, et sur Ubuntu le dossier est masqué par défaut lui aussi. Sur Mac, pensez aussi à nettoyer les fichiers .dot parasites avant d'éjecter la carte. Un utilitaire comme CleanEject fait ça très bien.

Vos jeux et vos BIOS

Les ROMs se rangent ensuite dans un dossier Roms, avec un sous-dossier par machine. La plupart des noms sont évidents, mais certains noms piègent tout le monde comme SFC ou FC. Hé oui, les jeux Super Nintendo vont dans SFC, pour Super Famicom, et pas SNES ; les jeux NES vont dans FC, pour Famicom, et pas NES. Les vidéos et la musique, elles, vont toujours dans MEDIA.

Les BIOS se posent dans un dossier BIOS à la racine de la carte, mais il faut les placer dans le sous-dossier qui va bien par machine et pas tout balancer en vrac. Le BIOS de la Dreamcast veut son sous-dossier, certains sont obligatoires pour que la machine tourne, d'autres pas. Donc je vous invite à vous renseigner en fonction de la machine que vous voulez émuler. Et comme d'hab, le BIOS de la NeoGeo ne va pas dans BIOS mais avec les jeux.

BIOS/dc/dc_boot.bin Dreamcast, obligatoire
BIOS/gba_bios.bin Game Boy Advance, facultatif
Roms/NEOGEO/neogeo.zip NeoGeo, obligatoire, et pas dans BIOS

Et évidemment, le projet ne fournit ni ROMs commerciales ni BIOS et ne vous dira pas où les trouver, donc c'est à vous de voir avec vos propres cartouches et vos propres disques.

Si l'écran reste noir

Maintenant, si c'est tout noir au lancement, vérifiez que le dossier .tmp_update est bien présent sur la carte. Remettez-la dans l'ordinateur, réaffichez les fichiers cachés, et regardez : si vous avez copié sans avoir activé l'affichage, il n'y est pas. L'autre suspect, c'est la carte elle-même. C'est peut-être parce que vous avez acheté une no-name de merde.

Le moment où vous ne pourrez plus revenir en arrière

Tant que vous ne touchez qu'à la carte, vous ne risquez rien de définitif. Sur la famille Anbernic RG35XX, les guides de référence le disent tous : ces firmwares vivent entièrement sur la microSD, et donc on peut passer de l'un à l'autre sans modification permanente de l'appareil. Ailleurs le principe est le même, et pour retrouver votre console en version d'usine il suffit donc de remettre la carte d'origine.

Sauf qu'il y a UNE exception !! spruce embarque un Firmware Updater qui apparaît tout seul dans vos applications si votre console tourne sur un firmware ancien. Celui-là n'écrit pas sur la carte mais dans la mémoire interne de la machine, et le wiki prévient sans détour : "Failure to follow the firmware updating instructions can lead to a bricked device.". En gros si vous le lancez pour faire la mise à jour du firmware, ça peut bricker votre console, donc pensez bien à la brancher sur le courant avant la mise à jour. Le projet documente d'ailleurs deux procédures de débriquage, dont une qui demande carrément d'ouvrir la Miyoo Flip et de débrancher sa batterie, ce qui vous dit assez bien à quel point on a quitté le terrain du réversible...

Et si spruceOS ne vous convient pas, vous ne serez pas coincé pour autant car sur ce même matériel, le guide de référence de Retro Game Corps recommande aussi Knulli pour son interface EmulationStation, ou encore muOS pour la performance d'émulation la plus avancée, à condition que le bricolage de configs customs ne vous rebute pas. Après voilà, chaque "OS" a sa carte et vous changez d'avis quand vous voulez.

Source : spruceOS sur GitHub , le wiki du projet et le site officiel

Vous partez à l’étranger ? Ces eSIM peuvent vous éviter une facture salée

Longtemps dominé par Airalo, le marché de l’eSIM s’est considérablement diversifié. Prix, données illimitées, sécurité ou réutilisation : les fournisseurs multiplient désormais les arguments pour séduire les voyageurs.

L’article Vous partez à l’étranger ? Ces eSIM peuvent vous éviter une facture salée est apparu en premier sur Toms Guide.

Une eSIM de voyage

full

Une eSIM de voyage

thumbnail

OmniVoice - Clonez votre propre voix en local et en français

Par : Korben ✨

L'équipe Next-gen Kaldi de Xiaomi a sorti OmniVoice, un modèle de synthèse vocale qui parle 646 langues et qui est capable de "recopier" une voix à partir d'un extrait de huit secondes minimum. Et tout ça en local et gratuitement !

Le français y est d'ailleurs la cinquième langue du corpus d'entraînement, avec 23 675 heures d'audio de référence sur les 581 000 qu'ils ont avalées. Autant dire que le modèle a entendu du français toute sa vie, et ça s'entend au résultat.

Voilà donc comment cloner votre propre voix, du début à la fin. Comptez 3,3 Go de poids que la première génération ira chercher toute seule, donc prévoyez une connexion pour ce coup-là, et quelques minutes de manipulation une fois qu'ils sont sur votre disque.

Installer OmniVoice

Pour cela, il vous faut Python 3.10 à 3.13 (PyTorch 2.8 n'existe pas encore pour 3.14, vous vous prendriez un "No matching distribution found"), et un environnement isolé (sinon vous allez casser autre chose). Sur Mac, les deux lignes suivantes suffiront puisque le modèle utilise le GPU intégré via MPS :

python3 -m venv ~/omnivoice-env && source ~/omnivoice-env/bin/activate
pip install torch==2.8.0 torchaudio==2.8.0
pip install omnivoice num2words

Sur Linux et Windows, ça devra se faire avec une carte NVIDIA (sous Windows, l'environnement s'active avec omnivoice-env\Scripts\activate) sauf que PyTorch doit venir de l'index CUDA, donc remplacez la deuxième ligne par celle-ci :

pip install torch==2.8.0+cu128 torchaudio==2.8.0+cu128 --extra-index-url https://download.pytorch.org/whl/cu128

Notez que sans carte graphique du tout, ça marche quand même. J'ai rejoué la même installation dans un conteneur Linux en processeur seul, elle passe sans rien changer... mais il m'a fallu cinq fois la durée de l'audio en temps de calcul.

Une fois installé, pour savoir que c'est en place, tapez omnivoice-infer --help et là, la liste des options doit s'afficher, sans la moindre erreur d'import. Le num2words de la troisième ligne, lui, ne sert qu'au chemin Python dont je parle plus bas, alors gardez-le sous le coude.

Les 8 secondes qui font tout

C'est l'étape que tout le monde bâcle et c'est pourtant celle qui est décisive pour avoir un bon résultat. Le projet recommande entre 3 et 10 secondes, pas plus car au-delà, ça ralentit le calcul et ça dégrade le clonage. Prenez donc un passage où vous parlez sans blanc, sans "euh", sans musique derrière, et découpez-le proprement comme ceci avec ffmpeg (ou autre logiciel de votre choix) :

ffmpeg -i mon-enregistrement.m4a -ss 12 -t 8 -ac 1 -ar 24000 moi.wav

La qualité de cet extrait est très importante donc si vous enregistrez votre voix, mettez bien le micro près de la bouche, dans une pièce sans écho, et évitez les MP3 récupéré à partir de YouTube .

Écrivez ensuite dans un fichier ce que dit exactement l'extrait, mot pour mot. Vous pouvez sauter cette étape (le modèle transcrit alors tout seul avec Whisper), sauf qu'il téléchargera 1,6 Go de plus pour ça et qu'il se plante parfois sur un nom propre, ce qui abîme le clonage.

C'est le moment de générer !

Avant de taper quoi que ce soit, relisez bien votre texte et réécrivez les chiffres en toutes lettres. La ligne de commande n'a aucune option de normalisation, donc "2345" sortira n'importe comment alors que "deux mille trois cent quarante-cinq" se lit tout seul. C'est du côté Python que la normalisation se fait, avec normalize_text=True, la langue passée en language="fr" et le num2words de tout à l'heure... sans la langue, votre texte français part chez le normaliseur anglais qui réclamera même une lib sans version précompilée pour les Mac Apple Silicon.

Voici la commande complète :

omnivoice-infer --model k2-fsa/OmniVoice \
 --text "Bonjour, ceci est un test de clonage de voix en français réalisé avec OmniVoice." \
 --ref_audio moi.wav --ref_text "$(cat moi.txt)" \
 --language fr --num_step 32 --output ma-voix.wav

Vous devez voir passer un "Saved to ma-voix.wav" au bout de quelques secondes. Sur mon M4 Max, j'ai compté 4 à 6 secondes de calcul pour 5,4 secondes d'audio, et moitié moins avec --num_step 16 au prix d'un peu de netteté. Au passage, le facteur 40 fois plus rapide que le temps réel qu'annonce le projet sur son site, ça a été mesuré sur un H100 avec des noyaux d'accélération maison, et pas sur un ordi de bureau...

Si la ligne de commande vous rebute, vous pouvez aussi passer par la commande : omnivoice-demo --ip 127.0.0.1 --port 8001 qui permet de faire la même chose mais dans le navigateur, avec le bouton d'import pour l'extrait et un menu déroulant pour la langue. Pensez juste à lancer export GRADIO_ANALYTICS_ENABLED=False avant, parce que l'interface web appelle les serveurs de Gradio au démarrage et qu'on n'a pas envie de leur filer nos data à ceux-là.

L'audio, lui, ne bouge pas de votre machine.

L'extrait de référence de 8 secondes chargé à gauche, la langue calée sur French, et la sortie de 5 secondes à droite une fois le clonage terminé.

Et si vous voulez vraiment débrancher la machine du réseau, faites-le dans le bon ordre, sinon la commande de génération part chercher les poids et se vautre sur un httpx.ConnectError suivi d'un LocalEntryNotFoundError. Récupérez donc le modèle d'abord, dans un dossier bien à vous :

hf download k2-fsa/OmniVoice --local-dir ~/omnivoice-modele

Ensuite vous coupez tout et vous passez ce dossier à --model à la place du nom du dépôt. Ça marche même sur une machine qui n'a jamais vu Internet, il suffit d'y copier le dossier. Et si vous préférez garder le cache par défaut, un export HF_HUB_OFFLINE=1 fait la même chose. J'ai rejoué la génération avec toutes les sorties réseau refusées par le système, le fichier sort quand même en 8 secondes... donc non, votre voix ne part chez personne.

Maintenant, une fois que c'est fait, écoutez le fichier avant d'en faire quoi que ce soit, parce que le modèle avale parfois des morceaux de phrase. Sur mes 24 générations de la même phrase, 5 ont perdu ou déformé un mot. C'était presque toujours le premier ou le dernier... et ce n'est pas une surprise, c'est un bug connu de l'outil. Faut donc relancer parfois plusieurs fois pour avoir un résultat OK.

Dernier truc pour ceux qui passeront par Python : la voix se sauvegarde une fois pour toutes. model.create_voice_clone_prompt() puis .save("ma_voix.pt") produisent un fichier minuscule que les sessions suivantes rechargeront sans repasser par l'extrait ni par la transcription. Regénérez alors une phrase avec, et comparez à l'oreille : si c'est bien la même voix, vous pouvez ranger le WAV de référence.

Voici l'extrait que j'ai généré avec ma voix. Ces 6 secondes d'audio ont pris 14 secondes à la génération sur mon Mac Studio :

Le kit à coller dans votre agent

Si vous faites faire le boulot par Claude Code, Codex ou n'importe quel agent IA, voilà le brief à lui donner tel quel. J'y ai mis les pièges qui m'ont coûté un peu de temps :

Ce que vous avez le droit d'en faire

Alors le code d'OmniVoice est bien sous licence Apache 2.0, mais les poids du modèle, eux, sont sous CC-BY-NC à cause du corpus qui a servi à les entraîner. Cela veut dire que tout usage commercial est interdit. Donc si vous avez prévu un projet afin de gagner de l'argent, regardez plutôt du côté de Chatterbox , qui est sous licence MIT, qui parle également français et qui "tatoue" même ses sorties (vu que maintenant c'est obligatoire avec la loi IA).

Pour l'usage perso, en revanche, rien ne vous arrête, et le règlement européen sur l'IA exclut explicitement de son champ l'activité personnelle non professionnelle.

Ce qui est cool avec Omnivoice, c'est que ce clonage de votre voix se fait à 100% en local et c'est bien tout l'intérêt de la manœuvre ! Et si l'idée c'est plutôt de faire lire vos ebooks par la machine, je vous invite à jeter un œil à MLX-Audio côté Mac.

Source : OmniVoice sur GitHub

Trynix - Testez des classiques Linux sans rien installer

Par : Korben ✨

Vous voulez vérifier un truc dans une vieille version de Python, du genre celle de 2017, histoire de voir si le bug que vous traquez vient de là. Normalement ça veut dire chercher une image Docker ou un vieux binaire de python, pour faire vos tests. Mais avec trynix, vous cliquez un lien et hop, vous avez un shell avec votre outil.

Ce site est signé Farid Zakaria, qui bricole autour de Nix depuis des années et appelle ça son "magnum opus". En gros, une machine Linux x86_64 démarre dans votre onglet, avec le paquet demandé déjà accessible dans le PATH. Rien à installer et pas de compte à se créer, ça marche direct dans le browser.

J'ai essayé ce matin avec python3 en version 3.6.2 . Le navigateur va chercher les chemins du store, vérifie leurs signatures, et au bout d'une trentaine de secondes le prompt s'affiche. Je tape alors python3 --version, il me répond Python 3.6.2, avec la glibc 2.25 et l'OpenSSL 1.0.2l de l'époque livré avec. Et voilà comment je me retrouve avec un Python de 2017 dans un Chrome de 2026, sans rien toucher à ma machine.

Le terminal de la machine virtuelle, dans l'onglet : Python 3.6.2 répond, et les seize chemins du store sont vérifiés juste au-dessus.

Et ce ne sont pas trois démos préparées à l'avance puisque l'index recense les 310 000 et quelques versions que nixpkgs a livrées en treize ans. Toutes ne démarrent pas, attention, il n'y en a que 274 729 avec un binaire x86_64 dans le cache, et le reste est non libre, cassé, ou hors du lot.

Ce qui rend la chose possible, c'est en fait une simple ligne d'en-tête HTTP. Le cache binaire de Nix sert un access-control-allow-origin: *, donc votre navigateur a le droit d'aller y piocher tout seul. Et le plus drôle, c'est que Zakaria avait lui-même réclamé cet en-tête en 2021, pour un tout autre projet. Et 5 ans plus tard, il s'en sert pour démarrer des machines virtuelles... Qui aurait pu prédire comme dirait l'autre !

Pour l'émulation, après il n'a rien réinventé. Il a tout simplement repris prend qemu-wasm , le QEMU compilé en WebAssembly de ktock, et la machine virtuelle ne boote même pas vraiment, mais reprend un instantané figé à l'avance. En tout cas, c'est bien pensé et très pratique.

Du Linux dans un navigateur, je vous avais d'ailleurs déjà montré ça ici avec cette machine virtuelle x86 . Sauf que ces trucs-là chargent une image figée à l'avance, alors qu'ici, on choisit vraiment son contenu en 1 clic.

Niveau vitesse, le projet annonce un lancement en 3 secondes, mais c'est le temps d'obtenir le shell quand tout est déjà dans le cache du navigateur. Chez moi, lors de mes tests, au premier passage, il a fallu 30 secondes, puis 7,5 secondes au suivant. Et une fois dedans ça reste poussif, parce que chaque binaire est traduit du x86 vers le WebAssembly à son premier lancement, ce qui peut faire monter le chargement à deux minutes sur les gros binaires.

Et il y a aussi un plafond puisque tout doit tenir dans la mémoire de l'onglet, soit environ 1,5 Go. Et c'est une console série, donc vous ne pourrez rien lancer de graphique, pas de fenêtre, pas de souris... Bref, que les outils en ligne de commande et rien d'autre ! Mais bon, vous êtes de vrais barbus qui n'ont peur de rien à part du déo, donc je ne suis pas inquiet ^^.

Ce qui est vraiment cool avec Trynix surtout, c'est l'action GitHub que son dev a sortie dans la foulée. Si votre intégration continue pousse déjà ses compilations dans un cache, un bot colle un lien sous la pull request et le relecteur lance le code au lieu de le lire. Comme ça, fini le clone, la compilation et le "*ça marche chez moi pourtant *" invérifiable. Même topo pour faire essayer un truc à quelqu'un qui n'a ni Nix ni Docker... Suffit de lui envoyer le lien.

Un petit point sécu quand même que je tiens à vous signaler : L'URL transporte à la fois les caches supplémentaires et les clés qui les valident, du coup la signature vous prouve bien que le binaire vient du cache annoncé... mais pas qu'il vient de quelqu'un de fiable. En effet, cliquer sur un lien trynix inconnu, ça revient à lancer le programme d'un inconnu, et même si ça se passe dans la sandbox de l'onglet du navigateur (ce qui limite les dégâts), c'est quand même mieux d'en avoir conscience !

Bref, voilà encore un chouette projet sous licence MIT et si ça vous chauffe, ça se passe sur trynix.dev .

Source : Simon Willison

Pluton - Le backup chiffré qui se pilote depuis le navigateur

Par : Korben ✨

Restic chiffre bien vos sauvegardes, rclone sait parler à 70 services de stockage, mais connecter les deux ensemble demande d'écrire des scripts et surtout de les surveiller. Eh bien bonne nouvelle, Pluton est l'interface web qui fait ce travail à votre place.

Vous y décrivez un plan de sauvegarde via un formulaire, avec une source, une destination, une fréquence, une politique de rétention, et Pluton fabrique les commandes restic derrière. Les sauvegardes restent ainsi incrémentielles et chiffrées avant l'envoi. La destination peut être un disque local, un bucket S3, un Backblaze B2 ou un Google Drive, et le même plan peut se répliquer vers plusieurs stockages pour respecter la fameuse règle 3-2-1.

L'installer

Je vous ai préparé un petit kit IA pour ceux qui ne jurent que par leur agent :

Un dossier, deux fichiers, et c'est parti. Le docker-compose.yml d'abord, dans lequel vous montez ce que vous voulez sauvegarder en lecture seule et le dossier qui recevra les sauvegardes en écriture. Si vous êtes sur Mac, lisez l'avertissement plus bas avant de monter quoi que ce soit, car ce montage-là m'a joué un tour :

services:
 pluton:
 image: plutonhq/pluton:latest
 container_name: pluton
 restart: unless-stopped
 ports:
 - "5173:5173"
 volumes:
 - pluton-data:/data
 - ./mes-documents:/mnt/documents:ro
 - ./mes-sauvegardes:/mnt/backups
 environment:
 ENCRYPTION_KEY: ${ENCRYPTION_KEY}
 USER_NAME: ${USER_NAME}
 USER_PASSWORD: ${USER_PASSWORD}
 NODE_ENV: production
 IS_DOCKER: "true"

volumes:
 pluton-data:

Puis le .env à côté, avec vos trois secrets. Générez-les, ne les inventez pas :

printf 'ENCRYPTION_KEY=%s\nUSER_NAME=korben\nUSER_PASSWORD=%s\n' \
 "$(openssl rand -hex 16)" "$(openssl rand -hex 10)" > .env

Par contre, attention à cette ENCRYPTION_KEY, c'est le point à ne pas rater. Le compose officiel la documente comme la clé de chiffrement des snapshots restic et rclone, et c'est bien ça. Il s'agit du mot de passe de vos dépôts, c'est la même clé pour tous vos plans. Et donc la perdre, c'est perdre vos sauvegardes, et la changer rendra illisible tout ce qui a déjà été écrit. Bref, copiez-la dans votre gestionnaire de mots de passe avant d'aller plus loin, parce que le jour où vous en aurez besoin, personne ne pourra vous la redonner.

Puis faites un :

docker compose up -d

L'interface répond alors sur le port 5173 et vous demande directement les identifiants du .env. Pas d'assistant de première configuration, pas de compte à créer... en fait quand les variables sont bien configurées, Pluton s'installe tout seul au démarrage. Chez moi, entre le up -d et l'écran de connexion, il s'est donc passé moins d'une minute.

Créer le premier plan de backup

Le bouton "+ New" de l'interface ouvre un assistant en quatre écrans. Vous nommez le plan, vous gardez la stratégie "Incremental Backup" (les trois autres sont grisées, elles appartiennent à l'offre Pro), vous pointez /mnt/documents comme source et /mnt/backups comme destination, puis vous réglez la fréquence et la rétention. Le dernier écran laisse le chiffrement et la compression activés et propose de lancer la sauvegarde tout de suite, ce que j'ai fait.

Chez moi, trois fichiers de test de quelques octets sont partis en quelques secondes. Et c'est là qu'il faut regarder la bonne chose pour vérifier que ça fonctionne... Non, c'est pas la pastille verte, mais plutôt le nombre de fichiers et leur taille.

Le plan Documents juste après sa première sauvegarde.

En fait, si je vous dis ça, c'est parce que sur mon Mac, avec Docker Desktop, restic n'arrivait pas à lire les dossiers montés depuis l'hôte, et sort en erreur d'entrée/sortie sur chaque fichier. Et pourtant, Pluton affichait quand même la sauvegarde en vert avec le statut "Complete". Les colonnes disaient bien 0 fichier et 0 octet, mais le statut, lui, semblait correct... Donc si vous êtes sur Mac, prenez plutôt l'installeur de bureau, qui existe aussi pour Windows et Linux, et dans tous les cas vérifiez que les chiffres sont OK après votre première sauvegarde.

Vérifier et répéter une restauration

Votre dossier de destination contient maintenant un config, un data/, un index/, un keys/ et un snapshots/, tous illisibles en clair. C'est un dépôt restic standard, et ça se vérifie sans Pluton, avec le binaire embarqué dans le conteneur :

docker exec -e RESTIC_PASSWORD=votre_cle -e RESTIC_REPOSITORY=/mnt/backups \
 pluton restic snapshots

Vous obtenez la liste de vos snapshots avec leur taille, et avec une mauvaise clé, restic répondra "wrong password or no key found" et s'arrêtera là. Faites les deux essais car ça prouve en une fois que le chiffrement travaille, et que vos données restent récupérables même si Pluton disparaît demain.

Le menu d'une sauvegarde propose ensuite "Browse", qui ouvre le snapshot comme un explorateur de fichiers, avec la taille de chacun et un bouton pour le télécharger ou le restaurer seul.

Le contenu du snapshot, fichier par fichier, avec le téléchargement et la restauration à droite de chaque ligne

Et le "Restore" lancera un assistant qui vaut le détour puisqu'il sait restaurer vers un chemin différent de l'original. Il vous laisse choisir quoi faire des fichiers déjà présents, et surtout il génère un aperçu en dry run (à blanc quoi...) avant de toucher au disque. J'ai restauré mes trois fichiers vers un dossier séparé, puis comparé avec les originaux, et c'était identique. Faites-le une fois, tranquillement, pendant que vous n'en avez pas besoin.

Voilà, tout ça, c'est la version gratuite, pour la machine où elle tourne. Maintenant, si vous voulez piloter les sauvegardes de plusieurs machines depuis la même interface, ça passera par l'offre Pro à 59 dollars par an. Si vous voulez comparer avec un autre truc, sachez aussi que Zerobyte joue dans la même cour.

Amusez-vous bien !

Source : Pluton

FFmpeg Commander - Cochez, copiez, collez dans le terminal

Par : Korben ✨

Convertir une vidéo avec ffmpeg, ça prend 2 minutes... Mais ça c'est quand on connaît les commandes et les paramètres de l'outil, par cœur. Sinon, vous êtes partis facilement pour une demi-heure de documentation.

Mais votre vie va changer puisque FFmpeg Commander est une page web qui règle ce problème-là. Vous cochez ce que vous voulez obtenir, et la commande s'écrit toute seule en dessous, prête à être copiée.

Le formulaire couvre en réalité ce qu'on demande le plus souvent à ffmpeg. Je pense notamment au conteneur, aux codecs vidéo et audio, au débit ou au CRF (la qualité), mais aussi la résolution, le découpage d'un extrait, sans oublier quelques filtres... Si vous touchez un réglage, la commande se réécrit alors dans la foulée, et vous voyez donc tout de suite quelle option votre clic vient d'ajouter.

Le formulaire et la commande juste en dessous

Et depuis sa refonte, il y a surtout de super "recettes". 34 préréglages rangés par usage, dont six catégories entières arrivées d'un coup : du MP4 en faststart pour le web, du vertical en 1080x1920 pour les réseaux sociaux, du HEVC 10 bits pour l'archivage, le désentrelacement d'un vieux DVD, la stabilisation d'une action cam, ou l'extrait de 10 secondes qu'on doit se faire toujours en urgence.

Ce qui est cool c'est que tous vos réglages sont encodés dans l'URL. Du coup une recette se partage en collant un lien, et la personne en face se retrouvera avec le même formulaire, dont les cases seront déjà cochées. Par contre, vos préréglages maison, eux, resteront dans le stockage local de votre navigateur.

Une fois que vous avez la commande qu'il vous faut, vous ouvrez votre terminal, vous collez la commande et puis ça va lancer FFmpeg et convertir votre fichier tranquillement.

Pour le reste, c'est du MIT et c'est gratuit. L'auteur prévient lui-même que son outil ne couvre pas tout ffmpeg et que le résultat dépend aussi de votre version. Relisez donc bien la commande avant de la lancer, surtout sur un fichier que vous n'avez pas en double.

À tester sur ffmpeg-commander.com , et le code est sur GitHub si vous voulez le faire tourner chez vous.

Source : FFmpeg Commander

❌