Vue normale

Reçu avant avant-hier

Rename World - Et si on renommait la Terre entière ?

Par :Korben
8 avril 2026 à 11:30

Et si vous pouviez renommer n'importe quel lieu sur la carte du monde ?

Genre, transformer "Paris" en "Pain au Chocolat City" ou "Bordeaux" en "Chocolatine Land" ? Hé bien c'est exactement ce que propose Rename World , et y'a déjà plus de 40 000 renommages au compteur.

Le principe est hyper simple : vous cliquez sur un nom de lieu, vous proposez un nouveau nom, et la communauté vote. Les meilleures propositions restent, les autres disparaissent dans l'oubli. Y'a pas besoin de créer un compte pour explorer la carte, c'est ouvert à tout le monde et c'est dispo en français !

J'ai d'abord cru que ça allait être un festival de noms vulgaires et de spam... mais en fait non. Le créateur (qui se fait appeler kafk) a mis en place un filtre de mots plus un dashboard d'administration qui lui permet de dégager les trolls en quelques clics. Sur les 40 000+ propositions, le spam reste donc marginal et la majorité des renommages sont soit créatifs, soit du jeu de mots inoffensif. Après évidemment, si quelqu'un challenge votre proposition, faudra convaincre la communauté de voter pour vous.

Je vous présente Clermont-Ferrand ^^ :

Mais le site ne s'arrête pas au simple renommage. Y'a aussi un mode Name Duel où deux propositions s'affrontent en face à face, un Quiz pour tester vos connaissances géo, et un Leaderboard pour les plus prolifiques. Du coup c'est devenu un vrai petit jeu communautaire.

Il y a également un bouton "Hide NZ" qui permet de supprimer carrément la Nouvelle-Zélande de la cartographie mondiale. Si vous traînez un peu sur r/MapsWithoutNZ, vous comprendrez la référence. Et un bouton "Show NZ" pour les gens bien, évidemment.

Côté technique, kafk a préféré utiliser des PMTiles (40 Go stockées chez Cloudflare) plutôt que des tuiles raster classiques, ce qui rend la navigation bien plus fluide. Le rendu vectoriel s'appuie comme d'hab sur OpenStreetMap et tourne sur le serveur d'un de ses potes équipé de 256 Go de RAM (oui, on a les amis qu'on mérite ^^). Attention par contre, si vous cherchez à renommer un endroit précis (genre votre village de consanguins) et que le libellé ne s'affiche pas, faudra jouer avec le niveau de zoom car c'est du vectoriel, les étiquettes géographiques apparaissent à des échelles différentes.

Si vous avez déjà perdu des heures sur des cartes interactives de Westeros , attendez de voir ce qui se passe quand Internet a le droit de renommer le monde réel. Perso, j'ai cherché ce que les gens avaient fait de ma ville... et j'ai pas été déçu. Y'a aussi un Discord pour la communauté si vous voulez proposer des idées ou signaler des soucis.

Bref, allez-y, renommez votre bled, la préfecture de votre département, et bon courage à kafk pour la modération !

Ah et merci à AV pour l'info !

Un développeur fait tourner Doom dans un navigateur, avec du CSS et rien d'autre

Par :Korben
31 mars 2026 à 06:24

Niels Leenheer a porté le mythique Doom de 1993 dans un navigateur web, mais sans WebGL ni Canvas. Tout le rendu 3D repose sur des div et des transformations CSS. Le résultat est jouable, open source, et un brin absurde. On adore.

Doom en div

Le principe est aussi fou qu'il en a l'air. Chaque mur, chaque sol, chaque tonneau et chaque ennemi est une balise div, positionnée dans l'espace 3D grâce aux transformations CSS. Le jeu lit les données du fichier WAD original de 1993, celui-là même qui contenait les niveaux du Doom d'id Software, et en extrait les coordonnées des murs, des secteurs et des textures.

La logique du jeu, elle, tourne en JavaScript. Mais côté affichage, c'est 100 % CSS : pas de Canvas, pas de WebGL, pas de bibliothèque graphique. Juste des div, des calculs trigonométriques en CSS et des propriétés personnalisées.

Pour simuler une caméra, le développeur a trouvé une astuce assez maline : plutôt que de déplacer le joueur dans la scène, c'est la scène entière qui bouge dans le sens inverse. Le CSS ne gère pas nativement la notion de caméra, du coup Leenheer a tout simplement inversé le problème.

Des fonctions CSS qu'on ne soupçonnait pas

Le projet exploite des fonctions CSS relativement récentes : hypot() pour le théorème de Pythagore, atan2() pour les angles de rotation, clip-path pour découper les sols en polygones complexes, et @property pour animer des propriétés personnalisées qui servent à gérer les portes, les ascenseurs et même la chute du joueur.

Les ennemis utilisent des spritesheets classiques avec un effet de billboard, c'est-à-dire qu'ils font toujours face à la caméra. Les effets de lumière passent par un filtre brightness sur chaque secteur, et le fameux ennemi invisible Spectre utilise un filtre SVG pour reproduire l'effet de distorsion du jeu original.

Leenheer a même ajouté un mode spectateur avec caméra libre, absent du Doom de 1993, et les calculs de positionnement de cette caméra reposent eux aussi sur les fonctions trigonométriques du CSS.

Les limites du CSS poussé à fond

Le jeu est jouable sur cssdoom.wtf, et le code source est disponible sur GitHub sous licence GPL 2. Par contre, les performances restent limitées. Sur Safari iOS, le jeu peut planter au bout de quelques minutes, et les gros niveaux font souffrir le navigateur.

Leenheer le reconnaît lui-même : le projet ne remplacera jamais WebGL ou WebGPU pour du rendu 3D sérieux. Le but était avant tout de montrer jusqu'où le CSS moderne peut aller, et sur ce point, la démonstration est plutôt convaincante.

C'est le genre de projet complètement absurde qui force le respect. Doom a déjà été porté sur à peu près tout ce qui contient un processeur, des calculatrices aux tests de grossesse, et voilà qu'il tourne maintenant dans une feuille de style.

L'air de rien, ça montre que le CSS de 2026 n'a plus grand-chose à voir avec celui qu'on utilisait pour centrer un div il y a dix ans.

Source : Huckster.io

Le scheduler Linux qui consulte les astres

Par :Korben
29 mars 2026 à 12:29

Et si je vous disais qu'il existe un scheduler Linux qui prend ses décisions en fonction de l'astrologie. Non, c'est pas une blague, le premier avril c'est pas avant quelques jours. Ce scheduler s'appelle scx_horoscope et c'est un vrai module BPF qui se charge dans le noyau et qui décide quel processus a droit au CPU selon la position des planètes dans le zodiaque. Et ça fonctionne pour de vrai !

En gros, le principe c'est ça : chaque planète du système solaire se voit attribuer un domaine. Le Soleil gère les processus critiques (PID 1, init), la Lune s'occupe de vos shells et éditeurs de texte, Mars prend en charge la compilation et l'encodage vidéo, et Jupiter veille sur vos bases de données. Les positions sont alors calculées en temps réel grâce au crate Rust astro, donc oui, c'est de la vraie mécanique céleste, pas un random(). En fait, le binaire calcule les éphémérides géocentriques pour déterminer dans quel signe se trouve chaque planète à l'instant T.

L'outil en train de déterminer le bulletin météo cosmique de votre CPU

Et c'est là que ça devient franchement tordu car chaque signe du zodiaque est associé à un élément (Feu, Air, Eau, Terre) qui modifie les priorités CPU. Votre compilateur tourne pendant que le Soleil est dans le Bélier ? Hop, boost x1.5 pour les tâches CPU-intensive. Par contre, si c'est un signe d'Eau qui domine... 0.6x sur la compilation. Pas de bol ! Et si en plus une planète est en rétrograde (genre elle recule dans le ciel), tous les time slices sont divisés par deux. Votre make -j8 se fera par exemple interrompre deux fois plus souvent, parce que Vénus fait sa diva.

Le module utilise sched_ext, le framework du kernel Linux (6.12 minimum) qui permet de coder des ordonnanceurs en espace utilisateur via eBPF. Et c'est pas un proof-of-concept bidon, car ça charge vraiment dans le noyau. Un cargo build --release, un sudo devant, et hop votre machine tourne au rythme des astres. Y'a même un mode --cosmic-weather qui affiche un bulletin météo cosmique avec les phases de la Lune et les positions planétaires du moment.

Notez par exemple que la pleine lune booste les tâches interactives de 40%. Donc si vous tapez du code à 3h du mat' un soir de pleine lune, votre terminal sera techniquement plus réactif. Coïncidence ? Bah non, c'est Cyber Madame Soleil qui gère !

Le projet propose aussi un flag --ophiuchus pour activer le 13e signe du zodiaque (celui que l'Union Astronomique Internationale reconnaît mais que les astrologues ignorent royalement qui s'appelle en français Serpentaire).

Ce projet est donc clairement à classer dans la catégorie "parce qu'on peut" mais le niveau technique est loin d'être ridicule puisque c'est codé en Rust, en C pour la partie BPF, que ça embarque de vrais calculs d'éphémérides, et une intégration kernel qui tient la route. Et les issues sur le GitHub sont un festival... quelqu'un a par exemple demandé le support des éclipses solaires, tandis qu'un autre veut du chaos pendant les éruptions solaires. Internet à son meilleur ! Top of the top de l'indispensable inutile !

Bref, si vous voulez que Jupiter booste vos bases de données ou votre génération de site statique, foncez . Et merci à Camille Roux pour le partage !

Ils ont mis une plante carnivore dans un accélérateur de particules, et elle a réagi

Par :Korben
24 mars 2026 à 16:45

La chaîne YouTube Electron Impressions a placé une dionée attrape-mouche dans un accélérateur de particules pour voir ce qui allait se passer.

Résultat : toutes les mâchoires de la plante se sont refermées en même temps sous l'effet de la radiation ionisante. La plante a confondu le faisceau de particules avec une proie.

Comment la dionée attrape ses proies

La dionée attrape-mouche fonctionne grâce à un mécanisme assez fascinant. Ses mâchoires sont tapissées de petits poils sensibles qui détectent le contact d'un insecte. Quand un poil est touché, il active des canaux à calcium dans les cellules de la plante.

Ce mouvement d'ions crée un potentiel d'action, un signal électrique qui se propage sur toute la surface de la mâchoire et qui déclenche la fermeture. Le tout en une fraction de seconde.

Ce qui se passe sous un faisceau de particules

Quand la plante a été exposée au faisceau ionisant de l'accélérateur, toutes ses mâchoires se sont fermées d'un coup. La radiation a provoqué exactement le même mouvement d'ions que celui déclenché par un insecte : les ions quittent les cellules, créent une pression osmotique, et paf, la mâchoire se referme.

Sauf que cette fois, pas besoin de mouche. Le faisceau de particules a activé le mécanisme sur l'ensemble de la plante en une seule fois.

La plante n'y a pas survécu

Le problème, c'est que la radiation ionisante ne s'est pas contentée de chatouiller les canaux ioniques. Elle a aussi détruit l'ADN des cellules de la dionée, ce qui a tué la plante. L'expérience ne peut donc pas être répétée sur le même spécimen.

Electron Impressions avait d'ailleurs déjà fait parler d'eux en créant des éclairs de Lichtenberg piégés dans du verre avec le même accélérateur.

C'est le genre d'expérience un peu absurde qui donne envie de regarder la vidéo en boucle. Voir une plante carnivore réagir à un faisceau de particules comme si c'était une mouche, c'est quand même assez inattendu.

Et puis il faut le dire, ça rappelle que la biologie et la physique ne sont pas si éloignées qu'on le croit. Dommage pour la plante en tous cas.

Source : NIH.gov

DOOM over DNS - 2000 records TXT pour buter des démons

Par :Korben
24 mars 2026 à 07:57

« Can it run DOOM ? » Vous connaissez tous la question je pense. En effet, depuis 1993, le FPS d'id Software a tourné sur à peu près tout ce qui contient un processeur, des calculatrices aux écouteurs en passant par des tests de grossesse. Et là, Adam Rice vient de pousser le délire encore plus loin en stockant et en lançant le jeu entier... via des enregistrements DNS.

Oui, ce bon vieux protocole de plus de 40 ans, conçu à la base pour traduire des noms de domaine en adresses IP (RFC 1035, tout ça). En fait, la magie tient dans le fait que les enregistrements TXT n'ont aucune validation de contenu. Du coup, rien n'empêche d'y coller du texte arbitraire... genre un FPS complet converti en texte via base64. En gros, le DNS devient un stockage clé-valeur distribué mondialement et mis en cache un peu partout. Pas mal comme CDN du pauvre !

Le fichier WAD (les niveaux et assets du jeu, 4 Mo) passe à 1,7 Mo après compression, les DLLs du moteur de 4,4 Mo à 1,2 Mo, et le tout est découpé en 1 966 enregistrements TXT sur une seule zone CloudFlare Pro. Un record spécial contient également les métadonnées de réassemblage (nombre de chunks, hash de vérification).

Ensuite, côté joueur, un script PowerShell de 250 lignes résout les 2 000 requêtes, reconstruit le binaire en mémoire et hop, ça tourne. Les données du jeu ne touchent ainsi jamais le disque, puisque tout reste en mémoire. Le tout chargé en 10 à 20 secondes (PowerShell 7 requis) !

Le truc rigolo, c'est que l'auteur ne connaît pas le C#. C'est Claude (oui, encore cette fichue IA, ahaha) qui s'est tapé le portage en modifiant managed-doom, un port C# du moteur original, pour remplacer les lectures fichier par des flux mémoire et virer toutes les dépendances natives au profit d'appels Win32 directs. L'audio a été sacrifié pour réduire le nombre de records mais bon, on va pas chipoter. Après si vous voulez tester, sachez que ça ne fonctionne que sous Windows car ça repose sur PowerShell, donc pas de version Linux pour l'instant.

D'ailleurs, si le concept vous rappelle quelque chose, c'est normal. Planquer des données dans les enregistrements TXT, c'est en fait une technique bien connue en sécu. J'en parlais déjà avec DNSteal pour exfiltrer des fichiers via DNS , ou avec ces malwares carrément stockés dans les records DNS . Adam Rice le dit lui-même, son projet est parti de l'exploration de techniques d'implants (staging de shellcode via TXT records) sauf qu'au lieu de planquer un trojan, il y a planqué ce FPS de +33 ans. C'est quand même plus sympa !

À vrai dire, avant d'en arriver là, il a d'abord fait un proof of concept avec une image de canard (va savoir pourquoi). Encoder la photo en base64, découper en chunks, uploader via l'API CloudFlare, reconstruire de l'autre côté avec un hash identique et ça a marché du premier coup. Par contre pour la vidéo, oubliez, un MP4 de 1 Go ferait 670 000 enregistrements.

Voilà et tout ça pour 20 dollars par mois (le prix de la zone CloudFlare Pro). Donc si DOOM sur des écouteurs vous avait déjà fait sourire, attendez qu'un taré le fasse tourner avec que des paquets ICMP. Bah quoi ??

Bref, le code est dispo sur GitHub et le DNS a clairement pas fini de nous surprendre.

Source

Oups, le triple envoi

Par :Korben
23 mars 2026 à 14:51

Si vous avez reçu ma newsletter 3 fois ce lundi, non, vous n'êtes pas dans la Matrice, et non, je ne suis pas non plus devenu un affreux spammeur de viagra.

En fait, mon plugin WordPress a juste décidé de partir en freestyle. Pour ceux qui ne le savent pas, mes newsletters sont générées automatiquement puisque c'est un récap de tout ce qui a été publié dans la semaine. Je suis tout seul aux manettes, j'ai pas une armée de stagiaires pour rédiger ça à la main, et croyez-moi, c'est pas dans mon intérêt non plus de vous spammer, car chaque envoi me coûte des sous-sous.

Bref, j'ai (normalement) corrigé le tir en intégrant un système de verrou dans le plugin pour que ça ne se reproduise plus. Tout est artisanal ici, c'est du fait maison, et jusqu'à présent ça tournait nickel. Pas de bol. Ouin.

Un grand merci donc à tous ceux qui m'ont gentiment signalé le problème. Vous êtes au top ! J'ai quand même eu droit à un "Allez ciao KorbenGPT" d'une personne qui visiblement ne s'est pas remis de ce trauma que je lui ai infligé avec mon spam involontaire de ce matin. Bon vent l'ami et beaucoup de courage pour la suite ^^.

Pour les autres, les vrais, ceux qui sont encore là sachez que si vous n'êtes pas encore abonné à la newsletter, c'est par ici . Et promis, je ferais tout ce qui en mon pouvoir pour qu'à l'avenir, vous ne la receviez qu'une seule fois. ;)

Merci

En toute décontraction, Casio lance une calculatrice à 600 euros

Par :Korben
19 mars 2026 à 15:53

Casio vient de dévoiler la S100X Urushi, une version laquée à la main de sa calculatrice haut de gamme. Produite en 650 exemplaires par des artisans japonais, elle sera disponible le 9 avril pour 99 000 yens, soit environ 600 euros. Un petit budget donc. Mais pourquoi est-elle si chère ?

À cause de la laque pardi !

Allez je vous dis tout. Cette S100X Urushi est recouverte de laque urushi, une technique japonaise vieille de plusieurs siècles. La laque est appliquée à la main par les artisans de Yamakyu Shikko, un atelier de laquerie qui a presque 95 ans d'existence. Le procédé prend environ un mois par unité, entre les couches de laque, le séchage et l'inspection finale.

Le résultat est un reflet quasi miroir sur le boîtier noir, avec de légères variations d'une pièce à l'autre puisque chaque application est unique. Casio indique d'ailleurs que la laque vieillit bien avec le temps, ce qui est plutôt logique et bien heureux, vu la réputation de cette technique au Japon.

Une base déjà très haut de gamme

La S100X qui sert de base à cette édition n'est pas n'importe quelle calculatrice. Elle est fabriquée à l'usine Yamagata Casio, la seule unité de production de la marque au Japon, et utilise un corps en aluminium usiné avec des bords diamantés.

L'écran LCD incliné affiche 12 chiffres dans un bleu-noir qui rappelle l'encre de stylo-plume, et le clavier à structure pantographe offre des touches basses avec un retour tactile précis. Le tout pèse 265 grammes pour 183 x 110,5 x 17,8 mm. La version standard est vendue elle 38 500 yens au Japon, soit environ 235 euros, mais votre comptabilité vaut mieux que ça non ?

650 exemplaires dans le monde

La S100X Urushi sera mise en vente le 9 avril 2026 au prix de 99 000 yens, soit à peu près 600 euros. Elle est livrée dans un coffret avec des détails dorés et le logo Casio en feuille d'or. La production est limitée à 650 unités dans le monde, et on imagine bien que les collectionneurs japonais vont se ruer dessus.

Bon, 600 euros pour une calculatrice, ça fait quand même lever un sourcil. Mais on n'est clairement pas dans le même registre qu'une Casio de bureau à 10 balles. L'angle artisanal est sincère : un mois de travail par pièce, de la laque naturelle posée par des artisans avec presque un siècle de savoir-faire, ça a un prix.

Casio fait ici ce que les horlogers japonais comme Seiko pratiquent depuis longtemps, appliquer un savoir-faire ancestral à un objet technique. Reste que 650 exemplaires à ce tarif, ça va partir très vite, même si on aime bien l'idée.

Source : Hypebeast

Des scientifiques ont réussi à faire pousser des patates dans du sol lunaire

Par :Korben
19 mars 2026 à 12:22

Des chercheurs de l'université d'État de l'Oregon ont cultivé des pommes de terre dans un sol qui reproduit la composition du régolite lunaire. Les tubercules ont poussé, mais avec pas mal d'aide terrestre et quelques surprises un peu moins réjouissantes côté métaux lourds.

Du compost de vers pour compenser la poussière de Lune

Le régolite lunaire, c'est cette couche de poussière et de roche broyée qui recouvre la surface de la Lune. Problème : il ne contient aucune matière organique. Pour simuler ce sol en laboratoire, l'équipe de David Handy, biologiste spatial, a utilisé un mélange de minéraux broyés et de cendres volcaniques qui reproduit la composition chimique lunaire. Et pour donner une chance aux patates, les chercheurs ont ajouté du vermicompost, un engrais organique produit par des vers de terre.

Avec un ratio de 70 % de régolite simulé pour 30 % de compost, les résultats étaient quasi identiques à ceux obtenus en terre normale. Avec seulement 5 % de compost, les pommes de terre poussaient quand même, mais elles étaient plus petites et visiblement plus stressées.

Des patates lunaires, mais pas vraiment mangeables

Après environ deux mois de croissance, les tubercules ont été récoltés, lyophilisés et analysés. L'ADN des plantes montrait une activation claire de gènes liés au stress. Et surtout, les pommes de terre contenaient des concentrations plus élevées en cuivre et en zinc que celles cultivées sur Terre, à un niveau qui pourrait les rendre dangereuses pour la consommation humaine. Par contre, leur valeur nutritionnelle globale restait comparable à celle des pommes de terre classiques, ce qui a surpris les chercheurs eux-mêmes.

L'étude, publiée en prépublication sur bioRxiv, reste à ce stade un travail de laboratoire. Il ne s'agit pas de vrai sol lunaire mais d'une simulation, et les conditions de gravité et de radiation de la Lune n'ont pas été reproduites. On est encore très loin d'un potager lunaire fonctionnel.

C'est le genre d'étude qui fait marrer et qui fait rêver en même temps. On pense forcément à Seul sur Mars et à Matt Damon qui faisait pousser ses patates, sauf qu'ici c'est la Lune et c'est en labo dans l'Oregon. Le fait que les pommes de terre poussent quand même dans un sol aussi hostile est encourageant pour les futures missions longue durée, même si le problème des métaux lourds va demander pas mal de travail. On en est encore aux toutes premières étapes, mais si un jour on mange des frites sur la Lune, on saura d'où c'est parti.

Source : Slashdot

Un DDoS offre le parking gratuit à toute une ville

Par :Korben
17 mars 2026 à 15:15

Non mais c'te blague ! Y'a des hackers qui viennent de lancer une cyber-attaque sur des parcmètres. Ouais des parcmètres ! Et voilà comment Perm, une ville d'un million d'habitants dans l'Oural en Russie, s'est retrouvée à offrir le parking gratuit aux automobilistes durant 4 longues journées.

En effet, du 10 au 13 mars dernier, le système de stationnement automatisé de Perm et son portail permparking.ru se sont pris une attaque par déni de service tellement massive que plus personne ne pouvait payer sa place. Et c'est à ce moment que les autorités locales ont eu une réaction d'une logique implacable, en décrétant le stationnement gratuit pour tout le monde pendant la durée de la panne, week-end compris !

Ah les veinards !

Pour ceux qui débarquent, le principe d'un DDoS c'est de noyer les serveurs sous un déluge de trafic réseau, souvent via un botnet, c'est-à-dire un réseau de machines infectées qui envoient toutes des requêtes en même temps. En fait, c'est comme si 500 000 personnes essayaient d'entrer en même temps dans une cabine téléphonique ^^. C'est un classique cyber plutôt brutal mais diablement efficace. Si le sujet vous intéresse, j'avais d'ailleurs fait un article complet là-dessus .

Ce qui est "cocasse" dans l'histoire, c'est qu'on ne sait toujours pas qui est derrière tout ça. Un groupe d'hacktivistes qui voulait faire passer un message ? Un ado qui testait un stresser (ces outils de DDoS clé en main) trouvé sur un forum ? Ou tout simplement un automobiliste bien énervé par le prix du stationnement qui aurait tout simplement décidé de régler le problème à sa manière ? On ne sait pas mais l'hypothèse n°3 est ma préférée ^^.

Après, j'avoue que dans le contexte actuel, c'est difficile de ne pas penser au hacktivisme. En effet, en octobre 2024, c'est le parking de Tver qui s'était fait démonter. Une attaque ensuite revendiquée par l' Ukrainian Cyber Alliance , puis la ville de Krasnodar a suivi en janvier 2025. Et enfin Perm, qui devient donc la 3ème ville russe à se faire offrir le parking gratos par des hackers.

Parcmètres, feux de signalisation, systèmes de transport... faut dire que tout ce qui est connecté et pas assez protégé finit tôt ou tard par se faire taper dessus.

C'est un concept que certains (j'imagine) aimeraient bien voir arriver à Paris, mais bon, rêvez pas, chez nous c'est ULTRA SECURISÉ (lol)

En tout cas, si un jour le parking devient gratuit chez vous, demandez-vous si c'est pas un affreux botnet qui est en train de vous faire économiser quelques euros.

Source

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

Par :Korben
17 mars 2026 à 13:56

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

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

Une police, pas un logiciel

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

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

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

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

458 752 combinaisons à gérer

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

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

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

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

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

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

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

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

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

Source : Lobste.rs

MnM, le langage de programmation à base de... M&M's

Par :Korben
10 mars 2026 à 14:09

Un développeur a créé un langage de programmation dont le code source est composé de M&M's colorés. Six couleurs, six familles d'instructions, et les programmes se compilent sous forme d'images PNG. Le plus rigolo ? On peut même prendre en photo de vrais bonbons posés sur une table pour générer du code exécutable. Le projet, baptisé MnM Lang, cartonne.

Des bonbons à la place du code

L'idée est partie d'un paquet de GEMS (l'équivalent indien des M&M's) ouvert un peu trop fort. Mufeed VH, développeur et auteur du projet, a vu les confiseries former une sorte de flèche sur le sol et s'est dit que ça ferait un bon point de départ pour un langage de programmation. Le résultat s'appelle MnM Lang, un langage dit "ésotérique" où le code source est écrit sous forme de rangées de bonbons.

Six couleurs sont utilisées, chacune correspondant à un type d'instruction : le bleu gère le flux de contrôle (sauts, appels, arrêt), le vert s'occupe des variables et de la pile, le jaune traite les opérations mathématiques, l'orange gère les entrées/sorties, le marron s'occupe des labels et des chaînes de caractères, et le rouge de la logique booléenne et de la manipulation de pile. Le nombre de bonbons dans une rangée détermine l'opcode : six bonbons à la suite, par exemple, ça donne la valeur 5.

Du vrai code dans une image PNG

Dans un premier temps, les programmes sont écrits en ASCII, puis compilés en PNG. Dans l'image, chaque lettre est remplacée par un Sprite de bonbon. Et le truc assez fou, c'est que ça marche aussi dans l'autre sens : on peut prendre une photo de vrais bonbons posés sur un fond blanc, et le décodeur d'image reconstitue le code source à partir des couleurs détectées.

Côté limitations, les images ne sont pas très douées pour stocker du texte. Les chaînes de caractères et les variables initiales passent donc par un fichier JSON séparé qui accompagne le programme.

Malgré cette contrainte, MnM Lang permet d'écrire de vrais programmes : Hello World, FizzBuzz, factorielle. Un terrain de jeu interactif est disponible sur le site du projet, avec un éditeur en ligne, un rendu visuel des bonbons et même un affichage de l'arbre syntaxique.

On a donc là un projet rigolo et coloré, et ça change un peu ! MnM Lang ne va pas remplacer Python ou Swift. Ce genre de truc nous rappelle que la programmation, ce n'est pas qu'un outil de travail et de production, mais ça peut aussi être du fun et de l'amusement, même si le niveau d'ingénierie derrière (compilateur, décodeur d'images, terrain de jeu web) montre que le projet est loin d'être une simple blague. Bref, si vous avez un paquet de M&M's qui traîne et un dimanche après-midi devant vous, vous savez quoi faire.

Source : Hackaday

❌