Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

Shells Unix - 5 redirections que vous copiez sans comprendre

2>&1, >, >>, 2>/dev/null... Si ces symboles dans votre terminal Linux ou macOS vous font autant flipper qu'un regex, respirez un grand coup ! Quand vous aurez lu cet article, vous verrez qu'en fait c'est super simple à comprendre, et en 5 minutes vous saurez enfin ce que vous copiez-collez depuis des années depuis StackOverflow.

En fait, dans les shells Unix (bash, zsh, etc.), y'a 3 canaux de base : stdin (entrée, numéro 0), stdout (sortie normale, numéro 1) et stderr (les erreurs, numéro 2). Tout le reste, de > à 2>/dev/null, découle de ces 3 numéros.

> - Écrire dans un fichier (et tout écraser)

echo "Salut" > fichier.txt

Ça redirige stdout vers fichier.txt. Si le fichier existe déjà... c'est mort, il est écrasé sans sommation. Du coup, faites gaffe avec vos logs, une commande mal placée et ce sont des heures de données qui disparaissent.

D'ailleurs, si vous êtes du genre parano (et oui, vous avez raison !), set -o noclobber dans votre .bashrc empêchera > d'écraser un fichier existant lors d'une commande tapée à la main. Pour y arriver, il faudra utiliser >| pour forcer.

>> - Ajouter à la suite

echo "Ligne 2" >> fichier.txt

Même principe que >, sauf que ça ajoute à la fin au lieu d'écraser. C'est ce que vous voulez 99% du temps pour des logs (sauf si vous voulez repartir de zéro, là > fait le job). Une lettre de différence entre "tout va bien" et "où sont passés mes logs, boudiouuu ???".

2> - Rediriger les erreurs

commande_foireuse 2> erreurs.log

Le 2 c'est stderr, en gros (y'a pas d'espace entre le 2 et le >, sinon bash croit que 2 est un argument). Tout ce qui sort en erreur finit dans erreurs.log au lieu de polluer votre terminal. Perso, je trouve ça super pratique pour garder une trace propre quand vous lancez des scripts via crontab -e.

Et 2>> existe aussi, pour cumuler les erreurs au fil du temps au lieu d'écraser le fichier à chaque exécution.

2>&1 - Fusionner erreurs et sortie normale

commande > output.log 2>&1

Le fameux ! Le &1 dit à bash "le 1 c'est un file descriptor, pas un fichier qui s'appelle littéralement 1". Du coup stderr (2) est redirigé vers le même endroit que stdout (1), ou plutôt vers là où stdout pointe au moment où bash évalue la ligne. Ça va, vous suivez toujours ? ^^

Attention, l'ordre compte ! Bash lit les redirections de gauche à droite. > output.log 2>&1, stdout pointe vers le fichier, puis stderr suit... tout va dans le fichier. 2>&1 > output.log, stderr copie stdout qui pointe ENCORE vers le terminal, puis stdout est redirigé vers le fichier. Résultat, les erreurs restent dans votre terminal. Le piège classique.

Et &> fait la même chose en plus court :

commande &> output.log

&> est super pratique, mais spécifique à bash / zsh donc pour la portabilité, préférez quand même > fichier 2>&1.

2>/dev/null - Le trou noir

find / -name "*.conf" 2>/dev/null

/dev/null, c'est le trou noir d'Unix. Tout ce que vous envoyez là-dedans disparaît. Super pratique avec find qui vous crache 200 "Permission denied" pour un seul résultat utile.

Et si vous voulez TOUT faire disparaître (stdout + stderr) ? Un petit &>/dev/null et c'est réglé. Pratique dans vos scripts /etc/cron.d/ quand vous voulez zéro bruit (bon, j'exagère un chouïa, je sais...).

Si vous aimez les raccourcis bash , j'ai aussi ce qu'il faut.

Bref, voilà ce sont juste 5 opérateurs à retenir, et avec ça vous couvrez à peu près tout. Donc la prochaine fois que vous copierez un 2>&1, au moins vous saurez pourquoi.

Source d'inspiration

sudo-rs - 40 ans de silence cassés par des astérisques

Si vous utilisez Ubuntu 26.04, vous avez peut-être remarqué un truc bizarre dernièrement en tapant votre mot de passe sudo... Ouiiiiii, y'a des petites étoiles qui apparaissent !! Pas de panique, c'est "normal". Enfin, c'est nouveau...

En effet, sudo-rs, la réécriture en Rust de la bonne vieille commande sudo, a décidé d'activer pwfeedback par défaut. En gros, quand vous faites un sudo apt install bidule, au lieu du trou noir habituel, vous voyez maintenant des ***** défiler pendant la saisie du mot de passe. C'est un changement qui casse une convention vieille de 40 ans... et ça, forcément, ça fait du bruit !

Pour rappel, Ubuntu a basculé sur sudo-rs (le remplaçant en Rust du bon vieux sudo en C) depuis la version 25.10. Ça fait partie du même mouvement de réécriture des outils système en Rust, comme les coreutils dont je vous avais parlé. Et la 26.04 vient de "cherry-picker" comme on dit, un patch upstream qui active le feedback visuel par défaut.

Un bug report sur Launchpad ( #2142721 ) est bien sûr arrivé direct, en mode vénère genre "*ÇA FAIT DES DÉCENNIES qu'on n'affiche pas la longueur du mot de passe pour empêcher le shoulder surfing ! C'est quoi ce bordel !!?? *"

Et la réponse des devs : Won't Fix. Circulez les relous !

En fait, leur argument c'est que le bénéfice sécurité est "infinitésimal". Parce que bon, votre mot de passe sudo c'est le même que celui de votre session (celui que vous tapez à l'écran de login, devant tout le monde). Et le bruit des touches trahit déjà la longueur de toute façon. Du coup, ils ont préféré régler le problème UX qui paume les débutants depuis le début des années 80.

D'ailleurs, en 2013 je vous expliquais comment activer ces étoiles manuellement avec sudo visudo (ça date de fou !!) et maintenant c'est l'inverse, faut expliquer comment les virer ! Linux Mint avait d'ailleurs déjà sauté le pas de son côté depuis un moment.

Perso, le truc qui me gonfle c'est pour les tutos vidéo. Quand vous faites un screencast, les astérisques révèlent la longueur de votre mot de passe à tous vos spectateurs. Du coup faut aller reparamétrer chaque machine avant de filmer ou faire du masquage en post prod. C'est pas la fin du monde, mais bon, la flemme...

Alors pour désactiver ces jolies zétoiles :

sudo visudo

Et ajoutez cette ligne à la fin de /etc/sudoers :

Defaults !pwfeedback

Sauvegardez (Ctrl+X sous nano), et c'est réglé. Attention, ne touchez à rien d'autre dans ce fichier, une erreur de typo et sudo ne marchera plus. Grâce à cette manip, ce sera retour au trou noir ! Youpi !

Source

PinMe - Le web immuable en une commande

Les 404, c'est la plaie du web... J'en sais quelque chose, je fais la chasse à ça en permanence sur mon propre site. C'est vrai que c'est relou parce que vous bookmarkez un projet cool, vous y retournez trois mois après... et pouf, ça a disparu. Le dev n'a pas renouvelé son nom de domaine, l'hébergeur a fermé boutique, le contenu s'est évaporé ou que sais-je encore... En fait, sur le web, RIEN n'est permanent.

PinMe prend le problème à l'envers en collant vos fichiers directement sur IPFS . En gros, au lieu de dépendre d'un serveur unique qui peut tomber n'importe quand, vos pages sont distribuées sur un réseau décentralisé et identifiées par un hash CID unique. Du coup, tant que le réseau tourne, votre contenu existe. Pas besoin de renouveler quoi que ce soit, pas besoin de payer un hébergeur... ça fonctionne tout seul.

L'installation se fait en une ligne :

npm install -g pinme

Pour déployer votre site statique, c'est hyper simple :

pinme upload dist/

L'outil détecte le dossier de build, ou plutôt il le devine tout seul selon votre framework : dist/ pour Vite et Vue, build/ pour Create React App, out/ pour Next.js en export statique. Ça évite d'avoir à se palucher de la config.

Côté limites, on est sur 200 Mo par fichier et 1 Go au total ce qui est largement suffisant pour une landing page ou une démo ! Et c'est GRATUIT. Pour ceux qui veulent un domaine lisible plutôt qu'un hash cryptique, y'a aussi des domaines ENS (les .eth sur Ethereum) ou des sous-domaines en .pinit.eth.limo. Après pour les domaines custom faudra un compte VIP par contre.

Le truc sympa c'est que vos fichiers restent accessibles via n'importe quelle passerelle IPFS, genre dweb.link ou w3s.link. Ainsi, si votre hébergeur ferme ou que votre domaine expire comme je le disais en intro, on s'en fiche ! Le contenu est toujours là, épinglé quelque part sur le réseau. C'est du stockage immuable, basé sur le contenu lui-même... du coup personne ne peut modifier ou supprimer ce que vous avez publié. (Et en fait vous non plus, faut le savoir.)

Et y'a aussi des commandes pour exporter en fichiers CAR et réimporter ailleurs, ce qui est pratique pour archiver ou migrer entre passerelles.

Voilà c'est gratuit pour 1 Go de stockage, c'est open source (licence MIT) et c'est par là . Merci à Lorenper pour la découverte !

Snitch - Le netstat qui ne pique plus les yeux

Si vous avez déjà tapé [ss -tulnp](https://www.it-connect.fr/lister-les-ports-en-ecoute-sous-linux-avec-lsof-netstat-et-ss/) dans un terminal, vous savez que c'est moche. Genre, VRAIMENT moche. Les colonnes qui se chevauchent, les adresses tronquées, bref c'est un festival du bordel. Mais c'était sans compter sur ce dev qui a pondu Snitch , un outil en Go sous licence MIT qui vient concurrencer ss et netstat... sauf que pour une fois, c'est lisible, regardez :

L'interface de Snitch en action, sobre et lisible

En gros, c'est un ss moderne avec une interface TUI interactive. Vous lancez la commande dans votre terminal et tadaaa, vous avez un tableau propre avec toutes vos connexions réseau, les processus associés, les ports, les protocoles... le tout avec des couleurs et une navigation au clavier. Rien à voir donc avec le pavé monochrome habituel !

Le truc cool aussi ce sont les filtres. Vous pouvez taper snitch ls proto=tcp state=listen pour ne voir que les sockets TCP en écoute, ou snitch ls proc=nginx pour traquer votre serveur web. Y'a même un filtre contains= pour chercher dans les adresses... genre contains=google pour voir tout ce qui cause avec Mountain View.

D'ailleurs, côté commandes c'est en fait bien fichu. snitch ls pour un tableau statique, snitch json pour du JSON brut si vous voulez scripter, et snitch watch -i 1s pour streamer les connexions en temps réel. Du coup ça s'intègre nickel dans vos pipelines.

La TUI elle-même vaut le détour. Vous naviguez avec j/k (comme dans Vim, forcément), vous basculez TCP/UDP avec t/u, et le plus jouissif... vous pouvez killer un processus directement avec la touche K. Plus besoin de noter le PID et d'ouvrir un autre terminal ! Sauf que attention, sur Linux faut quand même lancer en root pour avoir les infos complètes sur les processus, parce que l'outil va lire dans /proc/net/*. Ça ne marche pas non plus sur Windows, c'est Linux et macOS uniquement.

Pour ceux qui aiment personnaliser leur terminal (oui, je vous connaîs...), y'a une quinzaine de thèmes, Catppuccin, Dracula, Nord, Tokyo Night, Gruvbox... la config se fait dans ~/.config/snitch/snitch.toml et l'outil peut aussi conserver vos préférences de filtres entre les sessions (faut activer remember_state dans la config).

Côté installation, c'est pas la mer à boire. brew install snitch sur macOS, go install github.com/karol-broda/snitch@latest si vous avez Go, yay -S snitch-bin sur Arch, et y'a même des images Docker pour les plus prudents !

Donc si vous êtes du genre à surveiller votre trafic réseau ou à garder un oeil sur vos outils de diagnostic Linux , c'est clairement à tester.

Perso, pour du debug réseau rapide, je trouve que c'est carrément plus agréable que de se taper un ss -tulnp.

RustFS - L'alternative Rust à MinIO

MinIO, tout le monde ou presque connaît car c'est LE truc quand on veut du stockage objet S3-compatible auto-hébergé sous Linux. Sauf que voilà... la licence AGPL, ça pique pour pas mal de boîtes qui ne veulent pas se retrouver à devoir ouvrir leur code.

Du coup, y'a un nouveau projet qui débarque dans le tiek et qui devrait en intéresser plus d'un. C'est RustFS , codé en Rust (comme le nom le laisse deviner mes petits Sherlock) et 100% compatible S3. En gros, vous prenez votre stack MinIO existante, vous remplacez par ce truc, et en fait tout continue de fonctionner pareil... Vos buckets, vos applis, vos scripts Python, boto3... tout pareil !

La licence c'est de l'Apache 2.0 comme ça y'a pas de contrainte virale, vous faites ce que vous voulez avec. Et c'est d'ailleurs sûrement la raison numéro un pour laquelle le projet cartonne.

Côté perfs, les devs annoncent 2,3x plus rapide que MinIO sur des petits objets de 4 Ko (testé sur un modeste 2 coeurs Xeon avec 4 Go de RAM). Bon, c'est un benchmark maison, à prendre avec des pincettes hein... mais finalement Rust pour du I/O intensif, ça se tient comme argument, car y'a pas de garbage collector qui vient foutre le bazar.

Pour l'installer, Docker en une ligne :

docker run -d -p 9000:9000 -p 9001:9001 -v $(pwd)/data:/data -v $(pwd)/logs:/logs rustfs/rustfs:latest

Et voilà, l'API tourne sur le port 9000 et la console web sur le 9001 (identifiants par défaut : rustfsadmin/rustfsadmin, changez-les vite fait hein). Y'a aussi du Kubernetes via Helm, un script d'install one-click, du Nix, ou un bon vieux git clone pour compiler vous-même (attention, sur macOS faut un ulimit à 4096 sinon ça ne marche pas).

Le conteneur Docker tourne en non-root (UID 10001), donc c'est plutôt propre niveau sécu. Pensez juste à faire un petit chown -R 10001:10001 data logs sur vos répertoires avant de lancer, sinon ça casse au démarrage.

Petit bonus appréciable, y'a aussi de la détection de corruption intégrée, et même du versioning de buckets pour les plus méfiants côté intégrité des données. D'ailleurs, côté monitoring, c'est déjà câblé pour envoyer vos métriques dans Grafana, vos traces dans Jaeger et le reste dans Prometheus. Un petit docker compose --profile observability up -d et c'est plié.

Par contre, on est encore en alpha et le mode distribué et le KMS sont en phase de test. Donc c'est PAS le genre de truc que vous mettrez en prod demain matin pour vos données critiques... mais pour du dev, du lab, ou des tâches pas trop sensibles... ça tourne impecc !

Bref, si l'AGPL de MinIO vous gave et que vous cherchez une alternative S3-compatible, en Rust, sous licence + permissive, allez jeter un œil à RustFS.

Merci à Lorenper pour le partage !

Nearby Glasses - L'app qui détecte les lunettes caméra Meta

Les Ray-Ban Meta, c'est quand même le gadget parfait pour les voyeurs technophiles. Ce sont quand même des lunettes qui filment, prennent des photos et diffusent en live... le tout sans que PERSONNE autour ne s'en rende compte (ou presque). Alors forcément, quelqu'un a fini par coder une app pour les détecter !

Nearby Glasses , c'est une application Android développée par Yves Jeanrenaud qui scanne en permanence les signaux Bluetooth Low Energy autour de vous. Chaque appareil BLE diffuse en fait des trames pour s'annoncer avec un identifiant constructeur et les lunettes caméra de Meta utilisent les IDs 0x01AB et 0x058E (Meta Platforms) ainsi que 0x0D53 (Luxottica/Ray-Ban). Donc cette app écoute ces identifiants et vous balance une alerte dès qu'elle en capte un.

La détection repose sur le RSSI, en gros la puissance du signal reçu et par défaut, le seuil est à -75 dBm, soit environ 10-15 mètres en extérieur et 3-10 mètres en intérieur. Donc c'est pas foufou non plus mais c'est configurable, évidemment. Vous pouvez donc le durcir un peu pour ne choper que les lunettes vraiment proches, ou l'assouplir pour ratisser large (au prix de faux positifs en pagaille).

Les faux positifs, parlons-en d'ailleurs... Les casques Meta Quest utilisent les mêmes identifiants constructeur, du coup ça ne marche pas à tous les coups. Par exemple, si votre voisin joue en VR, votre téléphone va sonner ! L'app détecte aussi les Snap Spectacles (0x03C2)... pour les trois personnes qui en portent encore ^^.

Ah et l'app est UNIQUEMENT pour Android. La version iOS serait "on the way" selon le développeur... faut donc pas être pressé mais au moins c'est open source (AGPL-3.0), du coup n'importe qui peut vérifier ce que l'app fait de vos données Bluetooth.

Si le sujet vous parle, vous connaissez peut-être Ban-Rays , un projet hardware à base d'Arduino et de LEDs infrarouges qui détecte les Ray-Ban Meta via infrarouge et Bluetooth ! Hé bien Nearby Glasses, c'est l'approche 100% logicielle plutôt que hardware, ce qui est plus accessible mais forcément plus limitée... pas besoin de fer à souder, cela dit ^^.

C'est une rustine mais bon, c'est mieux que de se retrouver à poil sans permission sur le web.

Source

Firefox 148 - Un seul bouton pour virer toute l'IA

Vous voulez désactiver l'IA dans votre navigateur ? Bonne chance pour les couillons qui utilisent Chrome... faut passer par 5 réglages planqués dans chrome://settings et chrome://flags, tripatouiller des flags expérimentaux, bref, c'est un vrai parcours du combattant. Firefox 148, de son côté, a eu une idée folle : Mettre UN bouton. Hop, terminé.

Mozilla vient en effet de sortir la version 148 de Firefox et le gros morceau, c'est la section "Contrôles de l'IA" dans les paramètres (about:preferences#ai). Un seul toggle " Bloquer les améliorations IA " et paf, toutes les fonctions IA du navigateur sont coupées d'un coup. Traductions automatiques, regroupement d'onglets, previews de liens, texte alternatif des PDF, et même les chatbots de la barre latérale (ChatGPT, Claude, Gemini, Copilot, Le Chat). Tout dégage !

C'est le top pour les fragilous qui refusent le progrès ^^... Roohh ça va je blague ! Et le vrai intérêt du truc, c'est que ça verrouille les futures fonctions IA aussi. Du coup, si Mozilla ajoute de nouvelles features IA plus tard, elles seront automatiquement bloquées. Pas besoin de revenir fouiller dans les paramètres à chaque update. D'ailleurs, toutes les fonctions IA sont déjà désactivées par défaut... faut donc les activer manuellement si vous en voulez.

Et attention, ça ne bloque pas les extensions tierces qui intègrent leur propre IA, genre les "résumeurs" de page ou les assistants de rédaction. Le toggle, lui, garantit uniquement que les fonctions NATIVES restent coupées quoi qu'il arrive.

Et maintenant comparons avec la concurrence, parce que c'est là que ça pique les yeux.

Comme je vous le disais dans mon intro trollesque, chez Google, désactiver l'IA dans Chrome (et ses dérivés) relève carrément du sport extrême. Faut couper Gemini (chrome://settings/ai), désactiver le mode IA et Help Me Write (chrome://flags), bloquer la recherche IA dans l'historique, et pour les AI Overviews... ben y'a pas vraiment de bouton.

Brave fait un peu mieux heureusement ! Leur assistant Leo est opt-in par défaut, tourne dans un profil isolé qui ne peut pas accéder à vos données de navigation, et applique une politique zéro log. Même leur mode "agentic AI" en Nightly est désactivé de base. C'est propre, mais y'a pas de kill switch global comme Firefox. Du coup, si vous voulez la solution radicale plutôt que du cas par cas, Firefox gagne.

Et pour ceux qui se demandent pourquoi Firefox investit dans l'IA tout en permettant de la couper... en fait, Mozilla joue la carte de la transparence. Les modèles locaux utilisés par Firefox sont supprimés du disque quand vous désactivez les fonctions et tout est vérifiable dans about:processes si vous êtes du genre parano.

Au passage, cette version corrige également une quarantaine de failles de sécurité et embarque la Sanitizer API , ce qui est une première parmi les navigateurs. Et si vous êtes encore sur Firefox ESR, ça ne marchera pas... faudra donc attendre la prochaine ESR pour en profiter.

Voilà, si l'IA dans votre navigateur vous gave, vous savez où aller -> Firefox, tout simplement.

Source

notion-cli - Pilotez Notion depuis votre terminal

Si vous utilisez Notion au quotidien et que vous avez toujours rêvé de piloter vos bases de données depuis un terminal... y'a enfin un truc qui tient la route.

Ça s'appelle notion-cli , c'est un binaire Go qui embarque 39 commandes couvrant TOUTE l'API Notion. Il s'agit d'un seul exécutable pour macOS, Linux et Windows (amd64 et arm64) sans dépendance qui vous permet de gérer pages, bases de données, blocs et commentaires sans jamais ouvrir un navigateur.

L'installation, c'est du classique : brew install 4ier/tap/notion-cli sur macOS, go install pour les puristes, npm install -g notion-cli-go ou même Docker. Il faut juste un token d'intégration Notion (le ntn_xxxxx que vous générez sur notion.so/my-integrations), vous le collez dans ~/.config/notion-cli/config.json ou en variable NOTION_TOKEN, et c'est parti.

notion-cli en action dans le terminal

Le truc cool, ce sont les filtres humain-friendly. Au lieu de se taper du JSON pour filtrer une base, vous écrivez Status=Done et l'outil se débrouille tout seul. En fait, il détecte le type de chaque propriété (texte, date, sélection...) et adapte le filtre automatiquement. C'est carrément pas mal, je trouve.

Et côté Markdown, c'est la fête ! Vous exportez une page entière avec notion block list <page-id> --md --depth 3, et inversement, vous injectez un fichier .md dans Notion via notion block append <page-id> --file notes.md. Pour ceux qui bossent avec de la doc technique, ça simplifie sérieusement les choses. Bon, ça ne marche pas avec les blocs synchronisés ou les embeds exotiques, mais pour le reste c'est nickel.

D'ailleurs le mode "pipé" est vraiment malin. Car dans le terminal, l'outil affiche de jolies tables colorées mais dès que vous le "pipez" vers jq ou un script, il bascule en JSON automatiquement. Du coup, intégrer ça dans un pipeline shell ou un cron... c'est aucun parsing à faire. Voilà quoi.

Après des CLI pour Notion, y'en a déjà quelques-uns. Sauf que la plupart sont soit limités aux tâches (comme notion-cli-go qui gère surtout le côté todo), soit cantonnés à l'export (et souvent liés à un OS ou un langage précis).

Celui de 4ier, c'est donc le premier à couvrir l'API en entier : pages, bases, blocs, commentaires, fichiers, utilisateurs, et même un accès REST brut via notion api GET /v1/endpoint. En gros, c'est le gh de GitHub, mais pour Notion (et pour une fois, c'est pas juste du blabla marketing ^^).

Les cas d'usage qui tuent c'est par exemple un script cron qui crée une entrée hebdo avec notion page create <db-id> --db "Name=Weekly" "Status=Todo". Un backup qui exporte vos pages critiques en Markdown toutes les nuits. Ou un CI/CD qui met à jour un changelog Notion à chaque deploy. Quelques lignes de bash et c'est réglé, car l'outil gère tout le reste ! C'est hyper rare un CLI qui couvre autant de terrain.

Y'a aussi le côté agent-friendly pour ceux qui kiffent l'IA. L'outil retourne des codes de sortie propres, du JSON exploitable, et s'installe comme skill agent via npx skills add 4ier/notion-cli. Dans la lignée de Gemini CLI , on voit de plus en plus d'outils pensés terminal-first... et je trouve que c'est carrément bien.

Après comme souvent quand je vous présente des outils, le projet est tout frais (v0.3.0, licence MIT), avec une petite communauté donc attention, car comme tout ce qui dépend d'une API tierce, si Notion bouge ses endpoints... voilà quoi. Mais c'est propre, c'est testé, et ça tourne déjà très bien.

Votre navigateur va pouvoir souffler un peu.

Podman Desktop - Red Hat dégaine sa version enterprise

Hey mais on dirait bien que c'est Red Hat qui débarque sur le marché des apps desktop pour conteneurs... mais lol ! Car oui, pendant que Docker Desktop trône depuis des années et qu'OrbStack séduit de plus en plus d'utilisateurs macOS, Red Hat se réveille ENFIN avec sa propre version Enterprise de Podman Desktop .

Bah mieux vaut tard que jamais !

Pour ceux qui débarquent (bouuuuh) Podman Desktop, c'est un outil open source qui existe depuis des années pour gérer vos conteneurs, images et pods via une interface graphique. C'est dispo sous Linux, macOS, Windows et le projet a même rejoint la CNCF (rien à voir avec les trains... lool) en janvier 2025 en même temps que d'autres briques Red Hat (Buildah, Skopeo, bootc, Composefs... chacun en projet séparé).

Interface de Podman Desktop

Et donc Red Hat a décidé de lancer sa propre "build" enterprise de cette app de conteneurs. En gros, c'est la même base que Podman Desktop, mais avec une couche admin par-dessus. Les responsables IT peuvent donc verrouiller des paramètres au niveau de la flotte tels que les registry mirrors, proxies HTTP, certificats custom... On est dans une ambiance un peu plus corporate quoi.

Côté Kubernetes, c'est également plutôt bien pensé. Vous créez vos pods en local, l'outil génère le YAML correspondant, et hop, déploiement sur Kind, Minikube ou directement sur OpenShift, les doigts dans le nez.

Pour ceux qui se demandent si ça remplace Docker Desktop, bah, ça dépend en fait. Podman tourne sans daemon et en rootless, du coup c'est un vrai plus côté sécurité. Mais par contre, le support Docker Compose passe par un système d'aliasing... ça marche bien, sauf si vous avez des configs Docker très exotiques... là faudra tester avant de tout basculer comme le early adopter fifou que vous êtes.

D'ailleurs, si vous êtes sur RHEL, Podman est déjà inclus dans votre abonnement et Red Hat a aussi bossé sur des extensions pour les images bootable OCI et le mode image RHEL.

Le truc, c'est que Red Hat arrive tard. TRÈS tard. Docker Desktop, c'est le standard de facto depuis des lustres, OrbStack a conquis les devs macOS avec sa légèreté sans oublier que Rancher Desktop et Portainer Business Edition occupent aussi le terrain. Du coup, leur stratégie c'est de cibler les boîtes déjà full Red Hat plutôt que d'essayer de convertir les utilisateurs Docker. C'est une ambition plutôt réaliste, je trouve.

Ça vient donc de passer en disponibilité générale via les canaux développeurs Red Hat, c'est gratuit, open source, et plutôt bien fichu pour ceux qui bossent dans un environnement RHEL au quotidien. Après, c'est pas non plus la révolution car ça reste Podman Desktop avec un petit chapeau d'entreprise.

Je pense que pour un usage hors Red Hat, Docker Desktop ou OrbStack restent devant. Mais si vous avez l'abonnement RHEL, ça peut valoir le coup d'y jeter un oeil.

Source

Onlook - Fini les allers-retours entre Figma et le code

Bonne nouvelle pour ceux qui en ont ras la casquette de se taper des allers-retours entre Figma et VS Code ! Parce qu'avec Onlook , l'éditeur visuel open source qui vous permet de modifier le design de vos apps React directement dans le navigateur, vous allez pouvoir cliquer simplement sur un élément de design, et en changer la couleur, la typo...etc et hop, ça modifiera le code derrière.

Pas mal, non ?

Vous ouvrez votre projet Next.js dans Onlook, et vous vous retrouvez avec une interface à la Figma, sauf que c'est branché sur votre code source. Vous sélectionnez un titre, un bouton, n'importe quel composant, et vous modifiez son style visuellement... couleurs, padding, marges, polices, tout y passe.

Et en fait, le truc qui change tout par rapport à un inspecteur CSS classique, c'est que quand vous cliquez sur "Publish", les modifications atterrissent DIRECTEMENT dans vos fichiers .tsx. C'est donc du vrai code propre, pas du CSS inline dégueulasse.

Côté technique, l'outil gère nativement TailwindCSS (parce que bon, en 2026, si vous faites du React sans Tailwind, vous aimez forcément le cuir qui claque et la souffrance). Vous éditez en mode visuel, ça génère les bonnes classes Tailwind, et vous gardez un contrôle total. Y'a aussi un mode LLM intégré... "rends ce bouton bleu avec des coins arrondis" et hop, c'est fait. Comme ça, pas besoin de chercher si c'est rounded-lg ou rounded-xl dans la doc.

Pour ceux qui connaissent Bolt.DIY ou qui se souviennent d' Amplify Studio (le truc de AWS qui tentait de faire le pont Figma vers React), Onlook prend le problème dans l'autre sens. Au lieu de partir du design pour générer du code, on part du code existant et on le modifie visuellement. Du coup, pas de code généré bancal à maintenir, c'est finalement VOTRE codebase qui est éditée.

Le projet est open source sous licence Apache 2.0 sur GitHub et la version open source est gratuite et self-hostable, donc vous pouvez la faire tourner chez vous sans débourser un centime. Après pour ceux qui veulent du cloud managé avec collab temps réel, y'a des plans payants.

Après attention, c'est encore jeune et le support se limite à React et Next.js pour l'instant, donc si votre stack c'est Vue ou Svelte, ça ne marchera pas. Et l'IA mouline un peu sur les layouts complexes mais le projet avance vite, la communauté est active, et pour un outil gratos qui fait le lien entre design et code en open source, y'a pas grand-chose d'équivalent.

Bref, à tester, c'est gratos.

Et merci à Lorenper !

ESPHome - Transformez un ESP32 à 5 euros en capteur domotique sans dépendre du cloud

Aujourd'hui j'aimerais vous parler un peu de bidouille et plus particulièrement de domotique. Hé oui, si comme moi, vous en avez marre que tous vos objets connectés passent par des serveurs chinois (souvent à la sécurité douteuse) ou américains (souvent directement connecté à la NSA) pour vous dire qu'il fait 22°C dans votre salon, on va voir comment ensemble créer ses propres capteurs 100% locaux avec ESPHome .

ESPHome, c'est un framework open source qui transforme n'importe quel ESP32 ou ESP8266 en appareil connecté intelligent sans vous prendre la tête. Vous écrivez un petit fichier YAML, vous flashez la puce, et hop, vous avez un capteur qui cause directement avec Home Assistant. Comme ça y'a pas de cloud et encore moins de données qui partent on ne sait où.

Et c'est hyper accessible... Suffit de savoir remplir un fichier texte avec quelques indentations (le fameux YAML), et voilà vous savez utiliser ESPHome.

ESPHome fait partie de l'Open Home Foundation ( Source )

Ce qu'il vous faut

  • Un ESP32 (genre un Wemos D1 Mini ou un NodeMCU)
  • Un capteur DHT22 (température et humidité)
  • Quelques fils Dupont
  • Temps estimé : 30 minutes

Niveau branchement, c'est pas sorcier. Le DHT22 a 3 broches utiles : VCC sur le 3.3V de l'ESP, GND sur GND, et DATA sur un GPIO de votre choix (le GPIO4 marche nickel). Pensez aussi à ajouter une résistance de 4.7kΩ entre DATA et VCC si vous voulez des lectures béton (beaucoup de modules l'ont déjà intégrée, mais vérifiez bien).

source

Ensuite, pour installer ESPHome sur votre ordi, ça se passe avec pip :

pip install esphome

Une fois l'outil en place, vous créez votre configuration YAML. Voici un exemple tout simple pour notre capteur :

esphome:
 name: capteur_salon

esp32:
 board: esp32dev

sensor:
 - platform: dht
 pin: GPIO4
 temperature:
 name: "Température Salon"
 humidity:
 name: "Humidité Salon"
 update_interval: 60s

Hé voilà ! Ce fichier suffit à tout configurer. Ensuite, pour flasher, branchez votre ESP en USB et lancez la commande :

esphome run capteur_salon.yaml

La première fois, ça compile tout le firmware et ça flashe. Une fois que c'est fait, l'ESP apparaît automatiquement dans Home Assistant si vous avez activé l'intégration. Et le top du top, c'est que les prochaines mises à jour se feront en WiFi (OTA), ce qui est super pratique quand le truc est planqué derrière un meuble.

Et si vous voulez aller plus loin dans l'intégration domotique locale, je vous conseille aussi de voir comment utiliser le GPIO directement sur Home Assistant .

Et voilà comment, avec dix balles et un peu de curiosité, vous avez un capteur qui n'espionne plus votre vie. Youuhouuu !

Systemd-analyze - L'outil indispensable pour accélérer son boot Linux

Vous trouvez que votre Linux met 3 plombes à démarrer et vous regardez l'écran de boot défiler en vous demandant ce qui peut bien prendre autant de temps ?

Hé bien bonne nouvelle los amigos del manchos, si vous utilisez une distribution basée sur systemd (comme Debian, Ubuntu, Fedora, Arch, et compagnie), il existe un outil natif déjà installé qui permet de diagnostiquer tout ça : systemd-analyze

Ce truc c'est un peu le médecin légiste de votre démarrage système. Il dissèque chaque étape, identifie les unités qui traînent la patte, et vous permet de comprendre où part votre précieux temps. Pour ceux qui débarquent, systemd est le système d'initialisation adopté par la plupart des distributions modernes, et il permet justement de lancer plein de trucs en parallèle pour gagner du temps.

Pour commencer, la commande de base c'est tout simplement :

systemd-analyze time

Elle vous sort un récapitulatif du temps passé dans chaque phase, généralement le kernel, l'initrd (le RAM disk initial), et l'espace utilisateur. Selon votre configuration, vous pourriez aussi voir passer le firmware ou le bootloader. Ça donne un truc du genre "Startup finished in 2.5s (kernel) + 19s (initrd) + 47s (userspace)". Déjà là, vous savez si le problème vient de votre noyau ou de vos services.

Mais le truc vraiment cool pour fouiller un peu plus dans le détail, c'est :

systemd-analyze blame

Cette commande vous balance la liste des unités systemd, triées par le temps qu'elles ont mis à s'initialiser. C'est un peu comme un classement des cancres de la Ve République. Vous voyez direct qui sont les boulets qui ralentissent tout le monde. Genre ce service réseau qui attend 20 secondes une connexion qui n'arrivera jamais, ou ce truc de logs qui prend son temps pour se réveiller.

Attention quand même, y'a un petit piège car un service qui met 10 secondes à démarrer ne signifie pas forcément que votre boot est rallongé de 10 secondes. Pourquoi me diriez-vous ? Hé bien parce que systemd lance plein de trucs en parallèle. Un service peut donc prendre son temps tranquille pendant que d'autres bossent en même temps sans bloquer personne.

Pour vraiment piger ce qui coince sur le chemin critique, lancez plutôt :

systemd-analyze critical-chain

Ça, c'est le top car ça vous montre la chaîne critique, c'est-à-dire la séquence exacte d'événements qui détermine vraiment votre temps de démarrage final. Vous voyez exactement quelles unités sont sur le chemin et lesquelles attendent les autres. Le temps après le "@" indique quand l'unité est devenue active, et le temps après le "+" montre combien de temps elle a pris pour démarrer. C'est bien plus fiable que blame pour identifier les vrais goulots d'étranglement.

Et si vous êtes du genre visuel, y'a même :

systemd-analyze plot > boot.svg

Et avec ça, hop, ça génèrera un magnifique graphique SVG qui représentera la chronologie de votre séquence de boot. Vous pourrez ensuite l'ouvrir dans votre navigateur et voir en un coup d'oeil ce qui démarre quand et combien de temps ça dure. C'est super pratique pour épater la galerie ou juste visualiser l'ordre de lancement.

Maintenant, une fois que vous avez identifié les coupables, comment on fait pour accélérer tout ça ?

Déjà, vous pouvez désactiver les services dont vous n'avez pas besoin avec :

sudo systemctl disable nom-du-service

Gardez en tête que disable supprime seulement le lancement automatique au boot, mais n'empêche pas une activation indirecte via une dépendance ou un socket. Si vous voulez vraiment qu'un service ne démarre plus jamais, utilisez mask. Et surtout, ne désactivez pas n'importe quoi comme un bourrin, hein ! Je vous connais ! Non, non, avant de toucher à un service, vérifiez d'abord ce qui en dépend :

systemctl list-dependencies nom-du-service

Car si vous cassez un truc important, votre système risque de ne plus démarrer correctement. Donc si vous n'êtes pas sûr, gardez vos mimines dans vos poches. D'ailleurs, si vous bidouillez vos fichiers d'unité (comme pour automatiser Shiori par exemple), sachez que vous pouvez aussi les vérifier pour débusquer les erreurs avec :

systemd-analyze verify /chemin/vers/unite.service

C'est super pratique pour éviter les mauvaises surprises au prochain redémarrage. Voilà et si vous cherchez d'autres astuces pour optimiser votre machine Linux , n'hésitez pas à jeter un oeil à mon article sur TLP.

Ah j'oubliais, y'a aussi la commande systemd-analyze security qui permet d'analyser le niveau d'exposition sécurité de vos services. Elle attribue un score heuristique d'exposition basé sur les options de durcissement (hardening) actives. Plus le score est bas, mieux le service est protégé contre d'éventuelles failles. C'est donc un excellent point de départ pour identifier les services qui mériteraient un peu plus de love côté isolation.

Bref, cet analyseur de démarrage c'est vraiment l'outil indispensable pour qui veut comprendre et optimiser son boot Linux. C'est natif, c'est puissant, et ça vous évite de passer des heures à chercher pourquoi votre machine met autant de temps que vous à se réveiller le matin ^^.

Anytype - L'alternative à Notion qui ne vend pas vos données aux GAFAM

Je suis complètement passé à côté de ce truc jusqu'à ce que David (merci à lui !) m'envoie un petit message pour me dire : "Hé Korben, t'as vu Anytype ? C'est comme Notion mais en mieux". Du coup, j'ai testé et j'ai vraiment halluciné.

Si vous êtes du genre à noter tout ce qui vous passe par la tête dans Notion ou Evernote, vous connaissez le problème. Vos données sont hébergées on ne sait où, et le jour où la boite décide de changer ses conditions d'utilisation ou de fermer boutique, vous êtes marron.

Hé bien Anytype, c'est la réponse à cette angoisse.

C'est une application local-first et chiffrée de bout en bout qui permet de créer votre propre "internet personnel". Petite nuance importante : Anytype n'est pas "open source" au sens strict de l'OSI. Leurs protocoles (notamment AnySync) sont bien open source sous licence MIT, mais les applications elles-mêmes sont distribuées sous une licence "source available" ( Any Source Available License 1.0 ). Concrètement, le code est consultable et modifiable, mais l'utilisation commerciale est restreinte. C'est pas du tout la même chose, et c'est important de ne pas confondre pour éviter l'openwashing. Cela dit, l'équipe est transparente là-dessus , ce qui est appréciable.

En gros, tout ce que vous créez (notes, tâches, documents, tableaux) est stocké localement sur votre machine. Pas de cloud obscur, pas de tracking, c'est votre disque dur, vos règles.

Leur point fort, c'est leur protocole AnySync car ça permet de synchroniser vos données entre vos appareils (ordi, téléphone, tablette) en peer-to-peer comme ça y'a pas besoin de serveur central. Vos appareils discutent directement entre eux, un peu comme si vous aviez votre propre réseau privé.

Au niveau de l'interface, on retrouve ce système de blocs qu'on aime bien chez la concurrence, mais avec une approche "objet". Dans AnyType comme chez Ikea, tout est un objet : une tâche, une personne, une note, un livre. Et vous pouvez lier tous ces objets entre eux pour créer un véritable graphe de connaissances tel un grand architecte de la matrice du dimanche).

Ce qui est cool aussi, c'est que l'équipe a déjà ajouté une fonction de publication web (vos pages peuvent devenir des pages publiques statiques) et propose une API côté desktop qui tourne en local. Elle travaille aussi sur l'intégration d'une IA locale . Parce que oui, avoir une IA qui vous aide à trier vos notes sans envoyer vos données à l'autre bout du monde, c'est quand même plus rassurant.

Si vous voulez aller encore plus loin, vous pouvez même héberger votre propre "noeud" de sauvegarde sur un serveur à la maison. D'ailleurs si vous aimez ce genre d'outils souverains, jetez un oeil à Local Deep Research pour vos recherches. Comme ça, vous avez une copie de secours chiffrée, accessible 24/7, sans dépendre de personne.

Bref, si vous cherchez une alternative souveraine pour gérer votre vie numérique, foncez voir ça. C'est gratuit jusqu'à 100 MB de stockage, c'est beau, et ça respecte votre vie privée. Que demande le peuple ?

Merci encore à David pour la découverte et à Alexandre pour la précision sur la licence !

Source

led.run - Transformez n'importe quel écran en panneau LED

Transformer n'importe quel écran en panneau LED géant, avec juste une URL... ça vous chauffe ? C'est en tout cas ce que propose led.run , un petit outil open source sous licence MIT qui fait le taf sans avoir besoin d'installer quoi que ce soit.

En gros, vous tapez votre texte directement dans l'URL, genre led.run/KORBEN JE T'AIME et hop, votre navigateur affiche un gros panneau lumineux comme ce qu'on retrouve dans les concerts ou dans les vitrines de magasin.

Et ça tourne dans n'importe quel navigateur (même celui de votre grille-pain connecté).

led.run en action avec le thème par défaut - sobre mais efficace

Le truc sympa, c'est qu'il y a une vingtaine de thèmes disponibles. Du néon qui clignote au style rétro avec des scanlines façon vieux moniteur CRT, en passant par un mode "panneau routier", un effet feu d'artifice ou encore une ambiance Shibuya sous la pluie. Y'a même un thème "bois artisanal" pour ceux qui veulent faire chic. Attention par contre, sur un vieux smartphone certains effets un peu chargés peuvent ramer.

Et tout se paramètre via l'URL. Vous voulez du texte rouge ? Ajoutez ?c=ff0000. Un fond blanc semi-transparent ? ?bg=40ffffff. Du défilement vers la droite à vitesse turbo ? ?speed=120&dir=right. C'est super car avec ça vous pouvez automatiser plein de trucs. Par exemple je me ferais bien un panneau d'affichage au dessus de la porte du bureau pour dire aux enfants de pas débouler en plein pendant mes lives Twitch (oui c'est les vacances en ce moment...).

Vive l'éducation positive !

D'ailleurs, l'outil détecte automatiquement si votre texte est court ou long. Dix caractères ou moins, ça s'affiche en mode panneau statique. Au-delà, ça défile tout seul. En fait c'est plutôt bien foutu, sauf si vous voulez un long texte en statique... dans ce cas, forcez avec ?mode=sign ou ?mode=flow.

Voilà c'est parfait pour transformer un vieil iPad ou une tablette Android en enseigne de bar ("HAPPY HOUR JUSQU'À 21H"), brandir votre téléphone en mode pancarte à un concert pour dire à Taylor Swift que vous voulez l'épouser, ou afficher un "NE PAS DÉRANGER ON BRASSE DU VENT" sur l'écran de la salle de réunion.

Voilà voilà. Si vous avez une vieille tablette qui traîne, vous savez quoi en faire maintenant.

C'est sur GitHub !

Merci à Lorenper pour la découverte !

Lingoku - L'extension qui transforme votre navigation en cours de japonais

Vous avez déjà essayé d'apprendre le japonais ?

Moi aussi. Et comme 90% des gens, j'ai abandonné après avoir constaté que mémoriser des listes de vocabulaire sur Duolingo en mode perroquet, c'était franchement pas terrible pour progresser. Le truc, c'est que notre cerveau retient beaucoup mieux les mots qu'on rencontre en contexte réel plutôt que dans des exercices artificiels.

Hé bien c'est exactement sur ce principe que repose Lingoku , une extension pour Chrome, Edge et Firefox qui va remplacer certains mots sur les pages web que vous visitez par leur équivalent japonais. Du coup, pendant que vous scrollez Reddit, lisez le New York Times ou que vous vous perdez sur Korben.info, vous apprenez du vocabulaire sans vous en rendre compte.

Le concept s'appuie sur la théorie du i+1 de Stephen Krashen , un linguiste qui a démontré que l'acquisition d'une langue fonctionne mieux quand on est exposé à du contenu juste un peu au-dessus de son niveau actuel. Pas trop simple pour s'ennuyer, pas trop dur pour décrocher. Lingoku analyse donc votre niveau et ne remplace que les mots adaptés à votre progression, genre 10% du texte seulement pour que vous puissiez toujours comprendre le contexte global.

Grâce à cette extension, quand vous survolez un mot japonais, la traduction apparaît en 0,2 seconde. Pas de popup intrusive ni de fenêtre qui vous sort de votre lecture. L'extension utilise un "cerveau contextuel" basé sur l'IA qui comprend les nuances des kanjis selon le contexte dans lequel ils apparaissent. Parce que oui, un même kanji peut avoir plusieurs significations et c'est souvent là que ça devient galère pour les débutants.

Y'a aussi un système de répétition espacée intégré qui vous rappelle de réviser les mots aux moments optimaux pour lutter contre l'oubli. Et si vous préparez le JLPT (l'examen officiel de japonais), vous pouvez configurer l'extension pour cibler spécifiquement le vocabulaire de votre niveau.

L'installation prend 30 secondes, vous choisissez vos objectifs (JLPT, vie quotidienne ou anime si vous êtes un weeb assumé), vous indiquez votre niveau actuel, et hop, c'est parti. L'extension fonctionne sur à peu près tous les sites avec du contenu textuel.

Niveau confidentialité, le contenu est chiffré pour l'analyse IA, supprimé instantanément et jamais stocké. La version gratuite offre 500 points quotidiens, ce qui devrait suffire pour une utilisation normale et si vous voulez plus, il faudra passer à la version payante pour débloquer les fonctionnalités IA avancées, les rapports de progression détaillés et la synchronisation multi-appareils.

Bref, si vous avez toujours rêvé de pouvoir lire des mangas en VO ou de comprendre ce que racontent les personnages dans vos animes préférés sans sous-titres, cette extension peut être un bon complément à votre apprentissage. C'est pas magique et ça ne remplacera jamais un vrai cours de grammaire, mais pour enrichir son vocabulaire de manière passive pendant qu'on procrastine sur le web, y'a pire comme méthode...

2026 Mercedes-Benz Marco Polo camper van arrives with smarter pop-up roof and luxury upgrades

Mercedes-Benz and Volkswagen have produced some of the best camper vans on the market, and they’ve long shared a common collaborator. Now, with Mercedes-Benz taking the complete production of its Marco Polo under its wings, Volkswagen and other competitors can expect some serious competition. The newly updated 2026 Marco Polo is the first new addition to Mercedes in-house van life portfolio and flaunts an interesting pop-up roof, which is its main talking point.

According to Mercedes-Benz press information, the body of the V-Class Marco Polo is built at the company’s Vans plant in Vitoria, Spain. The vehicle is then converted into a pop-up camper van at the Ludwigsfelde plant in Germany. The overall in-house production of the Marco Polo means it’s of the “highest quality standard” and that the company has complete control over every detail and pace at which it is produced.

Designer: Mercedes-Benz

Substantiating the fact, Sagree Sardien, head of sales & marketing Mercedes-Benz Vans said, it is a “Mercedes-Benz through and through,” which is designed to offer buyers a more sophisticated home on wheels. “A home that effortlessly combines travel and everyday life – while making a stylish statement,” he said.

To that accord, the Mercedes-Benz 2026 Marco Polo is a compact, luxury camper van featuring a pop-up roof, convertible downstairs seating, kitchen, and ambient lighting to uplift the mood when you’re inside the van. The major update from the 2024 model of the van is focused around the improvement to the lifting roof space. The double-skinned aluminum pop-top makes for an additional 4 inches of headroom and is provided with an ambient LED system that allows the space to feel lively and inviting.

Downstairs, the Marco Polo doesn’t make many changes. It comes equipped with a kitchen featuring double burner gas stove, a sink, mini fridge, and a swiveling bench that can easily facilitate dining and sleeping. During mealtime, you have a folding table that reaches out of the kitchen block, and during the night it folds up to make room for the convertible sofa to create a double bed.

MBAC infotainment suite is another interesting facet of the new Mercedes camper van. Sitting in the cockpit, the smart touchscreen can control the interior components like the vehicle’s upgraded eight-speaker audio system and pop-up roof lighting. The infotainment system also has instant control to pop-up roof. You can deploy or retract the lifting roof remotely, while also maintaining the temperature of the van home.

The new Marco Polo will be available to order soon, Mercedes notes. It also mentions in the press release that the launch of Marco Polo Horizon is also on the cards. This model shares similar features except for the built-in kitchen unit, making it suitable for weekend outings or short holidays only.

The post 2026 Mercedes-Benz Marco Polo camper van arrives with smarter pop-up roof and luxury upgrades first appeared on Yanko Design.

❌