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 :)
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..
Si vous avez la chance de rentrer de manif avec vos 2 mains, parce que hé, "c'est la démocratie", voici un outil qui va vous intéresser ! Ça s'appelle
OpenMouse
et c'est un configurateur de souris gaming qui fonctionne direct dans le navigateur. Vous branchez votre souris, vous ouvrez le site dans Chrome ou Edge, et vous réglez le DPI, le polling rate, et les boutons et le RGB (selon ce que votre modèle sait faire).
L'outil n'envoie aucune donnée à l'extérieur et en plus, c'est gratuit et sous licence AGPL. Maintenant, est-ce que ça va fonctionner avec votre souris ? C'est la grande question ! La liste du projet suit actuellement 746 appareils, dont 232 sont taggés comme "Compatible", c'est-à-dire confirmés fonctionnels avec un driver enregistré. Les autres sont des modèles demandés par la communauté, ou qui attendent un test matériel ou un driver.
Chez Logitech par exemple, la G502, la MX Master 3S et la G Pro X Superlight en font partie. Chez Razer, la DeathAdder V3 et la Viper V3 Pro aussi, mais la Basilisk V3 attend encore un test sur du vrai matériel.
Après, "Compatible" ne veut pas dire que tout se règle direct. La Corsair Nightsword RGB est marqué comme tel et pourtant, elle est en lecture seule (il faut fermer l'outil iCUE avant), et plusieurs autres modèles de la marque affichent "Driver nécessaire".
Et si vous avez une Razer sous Windows ?
Alors là, il vous faudra un utilitaire en plus car depuis Chrome 153, une page web ne peut plus toucher à la souris via l'interface que Razer utilise. En effet, Chrome a corrigé un bug Windows qui, d'après le billet d'OpenMouse daté du 12 septembre dernier, laissait cet accès ouvert depuis des années. Les Razer ont donc cessé de s'y connecter, ce qui fait que pour le projet, la seule solution c'est
Bridge
, un utilitaire optionnel qui s'installe sur l'ordi et qui permet de faire le lien entre la souris et l'app web.
Bridge est cool parce qu'elle permet aussi d'utiliser OpenMouse sous Firefox (Safari n'est pas encore supporté), ainsi que d'appliquer un profil de réglages au lancement d'un jeu, ou encore de vous prévenir quand la batterie de votre souris sans fil passe sous 20 %.
Par contre, c'est encore une bêta donc il n'y a aucune garantie ! À tester !
Google a suspendu les soumissions de son programme de récompenses consacré aux failles dans ses logiciels open source, submergé par des rapports générés automatiquement.
Google a suspendu les soumissions de son programme de récompenses consacré aux failles dans ses logiciels open source, submergé par des rapports générés automatiquement.
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 !
Les Pays-Bas développent DAWO, un poste de travail souverain sous NixOS déjà testé dans huit communes. De quoi pérenniser des PC incompatibles Windows 11.
Mozilla a lancé ce mardi 29 septembre Firefox 157, qui active pour tous le nouveau design Nova sur ordinateur et sur mobile. C'est le plus gros changement d'interface du navigateur depuis Proton, en 2021.
Vous avez un casque d'une certaine marque, une souris d'une autre marque sans oublier votre fidèle manette... Mais pour connaître le niveau de batterie de chacun de ces appareils sous Windows, vous avez deux solutions. Soit vous attendez qu'il tombe en panne de jus. Soit, si le fabricant le permet, vous pouvez voir cela dans l'application compagnon de votre appareil.
C'est ce manque de visibilité qui a poussé Headvox à vibe-coder
HaloBattery
, un petit utilitaire gratuit et open source qui place une icône par appareil dans la zone de notifs de Windows. Ensuite, c'est l'anneau autour du picto qui vous indiquera le niveau de batterie. C'est blanc au début, puis après ça passe à l'orange, et quand vous êtes en rouge, bah faut commencer à s'y intéresser... Et vert, c'est que votre appareil est en train de se charger.
De plus, en passant la souris au-dessus de l'icône, vous pouvez connaître le pourcentage exact du niveau de batterie.
Les icônes sur une barre sombre, de 100 % à la veille
Afin de lire tout ça, l'outil cause directement aux dongles et aux câbles USB, va lire les rapports des manettes type Xbox et peut si besoin, demander à Windows ce qu'il peut obtenir au niveau des appareils Bluetooth. Comme ça, plus besoin du logiciel du fabricant. Ça fait ça de moins comme soft de merde sur votre machine. Notez aussi que si votre appareil n'apparaît pas dans la liste de ce qui est détecté par HaloBattery, c'est probable que c'est justement l'un de ces fameux logiciels compagnons qui monopolise le périphérique et empêche toute lecture d'état sur celui-ci. Donc pensez bien à les fermer avant de lancer Halo Battery.
Et jetez aussi un œil au tableau de compatibilité avant de trop vous hype parce que tout n'a pas encore pu être testé et ça ne fonctionne malheureusement pas avec tous les périphériques. Par exemple, chez Logitech, seules les G502 sont vérifiées, et ni les Corsair ni le Razer BlackWidow V3 Pro n'ont été testés. Par contre, les DualSense, DualShock 4 et plusieurs Razer l'ont été...
Bref, si votre appareil manque, sachez qu'il y a un menu Diagnostics qui peut produire un rapport à joindre à votre issue sur GitHub, si vous voulez demander le support de celui-ci.
Voilà pour essayer cet outil, dézippez l'archive en entier dans un dossier (car le programme a besoin du dossier _internal à ses côtés), puis hop, un clic droit sur l'icône et "Lancer avec Windows" et ça devrait le faire ! Grâce à ça, vous saurez enfin quel périphérique recharger avant votre petite partie du soir !
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é.
Mozilla a lancé ce mardi 29 septembre Firefox 157, qui active pour tous le nouveau design Nova sur ordinateur et sur mobile. C'est le plus gros changement d'interface du navigateur depuis Proton, en 2021.
J'adore la France, mais même si la vie y est difficile. Pourquoi ? Simplement à cause de l'administratif et de la paperasse. En tant que phobique administratif, c'est vraiment ce qui me fait regarder de près l'expatriation, loool.
Tenir la compta d'une petite société, remplir sa déclaration d'impôts, estimer les frais de notaire d'un appart... Bref, la fucking paperasse a de quoi déclencher de sévère crises de
phobie administrative
chez tout le monde. Alors pour nous aider, mon nouveau héro du jour, Romain Simon, a créé "
Paperasse
", des skills pour agents IA que Claude Code, Codex, Cursor ou Mistral Vibe peuvent consulter pour endosser le rôle d'expert-comptable, de contrôleur fiscal, de commissaire aux comptes, de fiscaliste, de notaire ou encore de syndic de copro.
Son dépôt contient également des scripts vérifiés pour tout ce qui est calculs importants. En effet, ce sont des choses qu'on ne veut surtout pas confier à un LLM. Je pense au calcul de l'impôt sur les sociétés, aux amortissements, à la TVA, ou encore sortir un fichier des écritures comptables, un bilan ou une facture. Le projet Paperasse contient aussi des connecteurs pour vos transactions Qonto et vos paiements Stripe.
Voilà, donc si, comme moi, vous êtes en détresse émotionnelle dès que vous recevez un courrier de l'administration française, je vous invite à installer ce projet en donnant tout simplement ce prompt à votre agent IA préféré :
Installe tous les skills du repo github https://github.com/romainsimon/paperasse
Lance ensuite le setup pour la gestion de toute ma paperasse
L'agent clonera alors le dépôt et lancera un setup qui vous demandera le nom de votre société, votre régime de TVA et vos comptes bancaires. Pour mes tests, j'ai donc inventé une SASU, Brioche & Octets, avec un relevé bancaire de huit lignes bidon, et j'ai lancé Claude Code dessus avec le skill comptable, dans un environnement vierge.
En 6 minutes, il a immobilisé l'ordinateur portable au lieu de le passer en charge, traité l'abonnement logiciel facturé depuis l'Irlande en deux scénarios faute de facture pour trancher, et rangé le retrait au distributeur en compte d'attente, en rappelant qu'un compte courant débiteur est interdit au président d'une SASU.
Côté factures, le script de validation a refusé ma première tentative, à laquelle il manquait le SIREN du client et le numéro de TVA intracommunautaire de ma boîte. Une fois corrigée, le générateur m'a sorti un PDF qui embarque son fichier XML Factur-X.
La facture de ma fausse SASU, une fois le SIREN du client et mon numéro de TVA ajoutés
L'agent fiscaliste, quant à lui, ce sera plus à même de vous aider si vous êtes un particulier. Je lui ai soumis un couple pacsé imaginaire avec un enfant, 65 000 € de salaires et 2 000 € de dividendes, en lui demandant si l'option pour le barème battait le PFU. Il a lancé son script Python sur les deux cas et conclu que oui, de 124 €, parce qu'avec un taux marginal de 11 %, l'abattement de 40 % et la CSG déductible font descendre l'impôt sur ces dividendes sous les 12,8 % du PFU. J'ai refait le calcul à la main, ça tombe juste.
Le fiscaliste compare PFU et option barème pour un couple pacsé imaginaire
Par contre, tout ça repose sur des barèmes qu'il faut tenir à jour, et c'est là que ça coince. En effet, ces mises à jour reposent sur les issues acceptées ou non sur le projet GitHub. Par exemple, y'en a une qui est ouverte depuis fin août qui montre que le skill "notaire" calcule encore les émoluments de vente avec le tarif de 2016 alors que ça a changé depuis le 1er janvier 2021, et malheureusement, que les évaluations automatiques du projet valident ces calculs faux. Le correctif a bien été proposé, comme d'autres mais aucun n'a été fusionnée depuis le 11 juillet.
Donc voilà, c'est un super projet, mais il faudrait encore que ça suive un petit peu derrière donc utilisez-le mais en prenant soin de bien vérifier quand même les montants / tarifs / règles sont à jour.
Reste maintenant la question de vos données... En effet, vos PDF et tout ce qui concerne vos données vont partir chez le service IA que vous utilisez. Donc ça, il faut en avoir conscience même si je sais que derrière, en général, les comptables mettent tout sur des drives mal sécurisés, et que prochainement la facturation électronique va faire leaker ça dans tous les sens.
Mais bon, quoi qu'il en soit, tout ceci ne remplacera jamais un expert-comptable, donc voilà, amusez-vous, testez-le, dégrossissez vos questions avec ça, faites des simulations...etc mais ne lui faites pas 100 % confiance.
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é.
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 :
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) :
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.)
Si vous développez pour AWS, il y a de bonnes chances que LocalStack tourne déjà quelque part dans votre docker-compose ou votre CI. C'est un peu l'outil incontournable pour tester ses buckets S3 et ses fonctions Lambda sans avoir à toucher au vrai cloud. Sauf que depuis mars dernier, ses nouvelles versions
exigent un compte LocalStack
et un jeton d'authentification, CI comprise, et surtout l'édition Community n'est plus prise en charge.
Ouin !
Et comme si ça ne suffisait pas, l'offre gratuite qui reste interdit totalement l'usage commercial. Donc si vous l'utilisez dans le cadre de votre travail, faudra passer à la caisse. Alors, oui, ne pas respecter la licence ou se figer sur une ancienne image reste possible, mais déjà, ça ne se fait pas, et ensuite, niveau faille de sécu, ce n'est pas top.
Mais c'est là qu'arrive en sauveur Floci,
un émulateur AWS local
sous licence MIT qui se présente comme un remplaçant direct de LocalStack, sans avoir besoin de se créer un compte ou un jeton et surtout sans offre payante planquée dedans.
Maintenant, le principe reste le même puisque vous pointez dessus l'AWS CLI (Floci écoute sur le port 4566), vos SDK, Terraform, OpenTofu ou le CDK, avec la région de votre choix et des identifiants bidon, et vos commandes habituelles tomberont sur votre machine au lieu de partir chez Amazon.
Le plus simple pour démarrer, c'est sa CLI qu'on peut déployer avec Homebrew (il y a aussi un script pour Linux et un pour Windows) :
Ensuite, faites un floci start pour lancer l'émulateur dans un conteneur et lui monter le socket Docker de votre machine. Floci s'appuie sur de vrais conteneurs dès que la fidélité l'exige ce qui fait que Lambda tourne dans l'image d'exécution officielle d'AWS, RDS lance un vrai PostgreSQL, MySQL ou MariaDB, ElastiCache un Valkey, et c'est pareil pour ECS, EC2 ou EKS.
J'ai fait l'essai sur mon Mac avec un bucket S3, une table DynamoDB et une petite fonction Lambda en Python, et tout a répondu du premier coup à la CLI AWS. La Lambda a juste mis six secondes à répondre au premier appel, puis moins d'une seconde au suivant.
Pour voir ce qui se passe ensuite, une console web est dispo localhost:4566/_floci/ui, avec vos ressources rangées par service.
La console web de Floci sur localhost, après un essai sur S3, DynamoDB et Lambda
Notez aussi que si vous venez de LocalStack, la bascule se résume simplement dans le nom de l'image puisque Floci traduit tout seul les variables d'environnement de LocalStack, exécute sans modification les scripts d'init rangés dans /etc/localstack/init/ et répond même sur /_localstack/health. Cela veut dire qu'une CI qui attend ce signal ne voit pas la différence et ça c'est super cool pour migrer vite fait bien fait.
Et si vos scripts appellent aws ou boto3, prenez l'image floci/floci:latest-compat, qui embarque les deux.
Par contre, méfiez-vous du volume de données, car LocalStack range tout par défaut dans /var/lib/localstack et Floci dans /app/data. Donc dans le docker compose, pointez bien votre volume sur /app/data sinon, vous perdrez vos fichiers au premier restart du docker.
Après n'oubliez pas non plus que Floci imite le comportement d'AWS, et pas sa sécurité. En effet, par défaut, il n'applique aucune politique IAM, donc si vous voulez vérifier qu'un rôle trop resserré bloque bien une action, il faudra activer la variable FLOCI_SERVICES_IAM_ENFORCEMENT_ENABLED. Et certains services ne sont également que des façades. Par exemple Bedrock Runtime renvoie des réponses factices et Transcribe termine ses tâches aussitôt, sans jamais traiter l'audio, donc oui, votre code peut les appeler, mais le résultat ne sera pas au rendez-vous, ce qui est tout à fait normal.
Pour le reste, les données sont stockées en mémoire par défaut et s'effaceront à l'arrêt, ce qui est pile poil ce qu'on veut en CI. Vous pouvez quand même le paramétrer pour que ça s'écrive sur le disque si vous voulez...
Voilà, à essayer sur une branche de votre CI si vous voulez vous débarrasser de débrancher LocalStack pour de bon !
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 !
Sur
la photo officielle
que j'ai mise en illustration de cet article, Dirk Schrödter, ministre du Numérique et chef de la chancellerie du Land allemand du Schleswig-Holstein, pose assis dans un escalier avec un Tux en peluche. Et il a le smile puisque plus de 200 agents de sa chancellerie bossent maintenant uniquement sous Linux, exactement comme il l'a annoncé aux 24e Open-Source-und-Linux-Tage de Kiel.
Alors attention, on n'est pas à 100 % parce qu'il reste quand même une vingtaine de postes sous Windows à la chancellerie qui sont nécessaires pour cause de dépendance technique à des logiciels métiers purement Windows.
Mais le ministre assure dans
l'annonce officielle du Land
que ses équipes planchent aussi là-dessus. Mais voilà, globalement, pour tout le reste, la bascule s'est bien terminée, même si on ne sait pas sur quelle distrib ils tournent exactement.
Pour réussir cet exploit, Dirk Schrödter a commencé tout doucement depuis plusieurs années en mettant d'abord en place LibreOffice sur des postes hors administration fiscale et en passant également la messagerie sur Open-Xchange et tout ce qui était VisioConf sur OpenTalk.
Puis cela continue de s'étendre lentement avec Nextcloud pour généraliser le travail collaboratif, un annuaire qui s'appelle
Nubus
, conçu pour remplacer Active Directory de Microsoft. Sans oublier la téléphonie, qui doit encore passer sur OSKAR, une solution totalement libre.
Alors bien sûr, comme ils disent chez Microsoft, Linux n'est gratuit que si votre temps ne vaut rien. Mais côté porte-monnaie, d'après le bilan du Land, ça fait déjà plus de 15 millions d'euros de licences économisées, face à 9 millions d'investissements ponctuels prévus en 2026 pour la migration et le développement des outils libres. Pas mal, hein ?
Et si vous vous demandez comment on fait passer toute une chancellerie sous Linux, hé bien sachez que les agents ont eu droit à de nombreuses réunions d'information en présentiel ET en ligne, à des vidéos de formation, à des experts présents sur place pour les aider et à des forums Linux. On ne les a pas balancés comme ça devant un poste Linux en mode "démerdez-vous".
Et pour la maintenance, c'est Gonicus, une entreprise allemande spécialisée en open source, qui va assurer le support technique de Linux avec Dataport, le prestataire informatique du Land.
Alors, est-ce que Windows c'est terminé pour de bon en Allemagne ?
Hé bien pas vraiment, parce que ça ne représente qu'environ 200 agents, ce qui reste une goutte d'eau face aux quelques 30 000 agents que compte l'administration du Land. Les autres ministères et administrations devraient cependant suivre "progressivement" le mouvement, et la planification du déploiement "tourne à plein régime" d'après le ministre. Mais bon pour l'instant, il n'a donné aucune date...
Comme je vous le disais au début de mon article, le gros morceau, ce sont surtout les logiciels métier. Le Land explique qu'une grande partie de ceux hébergés chez Dataport ne tournent que sous Windows, ou ne sont supportés que sous Windows par leur éditeur. La parade prévue c'est donc de les remplacer par d'autres produits, ou de les rendre utilisables à distance !
Sans compter qu'une bascule de cette taille peut aussi mal tourner. En effet, quand le ministère de l'Intérieur a migré sa messagerie vers Open-Xchange et Thunderbird durant l'été 2025,
le syndicat de police GdP
a parlé de "chaos total", avec des milliers de mails retrouvés dans des services qui n'avaient rien à voir. Bref, c'était le bordel.
Le syndicat reconnaît quand même que le libre est utilisable, mais que c'est quand même assez loin du confort des anciens logiciels. Voilà, donc ça marche, mais le changement demande quand même des efforts d'adaptation à des interfaces plus austères / complexes...
M'enfin, voilà ça avance... Comme quoi, un autre monde est possible ^^.
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.
cliamp
est un lecteur de musique qui va plaire aux plus barbus d'entre vous puisqu'il tourne dans votre terminal, avec le visualiseur de spectre et l'égaliseur qui vont bien. On est un peu dans le même esprit roots que Winamp sauf que lui, c'est d'aller chercher vos morceaux de musique à peu près partout où ils sont rangés.
Et quand je dis partout, c'est vraiment partout. Les fichiers qui traînent sur votre disque, les flux, les podcasts, YouTube, YouTube Music, SoundCloud, et vos propres serveurs si vous en avez montés à la maison :
Navidrome
, Lyrion, Plex, Jellyfin, Audiobookshelf. Vous tapez cliamp setup et un assistant vous guidera fournisseur par fournisseur.
Mais le truc que j'ai trouvé le plus sympa, c'est la partie radio. Vous appuyez sur R dans le lecteur, et vous tombez sur l'annuaire
Radio Browser
, qui contient environ 58 000 stations réparties sur 241 pays. Vous filtrez par pays, par genre, par tag, vous épinglez vos favorites, et un pays entier se charge comme une playlist.
L'annuaire Radio Browser vu depuis cliamp, avec le débit et le pays de chaque station
Chez moi, je lui ai balancé le flux de FIP en ligne de commande, et hop, les barres du spectre se sont mises à danser affichant le titre en cours,, le débit réseau, la playlist à gauche, et les réglages à droite. Égaliseur paramétrique, shuffle, repeat, vitesse de lecture... Il y a tout ce qu'il faut. Le raccourci Ctrl+K vous affichera même tous les raccourcis d'un coup.
Le flux de FIP en lecture, avec le spectre à gauche, la playlist et les réglages d'égaliseur
Pour les podcasts, pas de compte ni de clé API à sortir (ça nous change). Vous faites cliamp --provider podcast et hop, ça ouvre le top 100 d'Apple et ses 19 catégories. Ensuite, vous faites vos recherches avec la touche "/" et vous vous abonnez avec "f".
Sur Mac, l'installation se fait en une commande (Linux et Windows ont leurs binaires tout prêts dans les Releases) :
brew install bjarneo/cliamp/cliamp
Là où ça coince, par contre, c'est Spotify car si vous voulez le brancher, il vous faudra un compte premium. Donc si vous espériez recycler votre compte gratuit dans un joli terminal, c'est mort...
Mais pour le reste, c'est totalement gratuit et sous licence MIT. Breeeef, c'est trop cool ! Mais si l'idée d'un lecteur multi-sources vous plaît mais que le terminal vous sort par les yeux, il y a toujours
Nuclear, dont je vous ai déjà parlé
qui est très sympa également !
Apprenez à sécuriser l'accès SSH de Proxmox VE avec une clé, à désactiver le mot de passe root et à éviter les pièges courant dont l'authorized_keys partagé.