Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierKorben
  • ✇Korben
  • Un compteur de visiteurs sur votre site, sans payer un centime
    Vous avez peut-être remarqué un petit point rouge tout en bas de mon site, avec un nombre à côté. Il s'agit du nombre de personnes passées sur le site durant la dernière heure. Je voulais remettre ce truc depuis un bail, bien à l'ancienne comme dans les années 2000 mais sur un site statique, qui plus est sans tracker de stats JS type Google Analytics ou Matomo, et sans cookies de tracking, c'était pas franchement une option... jusqu'à maintenant !

Un compteur de visiteurs sur votre site, sans payer un centime

Par : Korben ✨
12 juillet 2026 à 07:45

Vous avez peut-être remarqué un petit point rouge tout en bas de mon site, avec un nombre à côté. Il s'agit du nombre de personnes passées sur le site durant la dernière heure.

Je voulais remettre ce truc depuis un bail, bien à l'ancienne comme dans les années 2000 mais sur un site statique, qui plus est sans tracker de stats JS type Google Analytics ou Matomo, et sans cookies de tracking, c'était pas franchement une option... jusqu'à maintenant !

Le compteur, en vrai, tout en bas de korben.info.

La solution évidente sur des sites statiques, c'est souvent un petit Worker Cloudflare qui compte les visiteurs et servirait le chiffre, mais ça se facture à chaque requête. À 390 000 pages vues par jour, ça grimpe vite à des dizaines de millions d'invocations par mois, soit dans les 6 à 7 dollars. C'est pas super cher mais pour un compteur qui n'est utile qu'à satisfaire mon égo tout en sachant s'il y a du monde aujourd'hui, ça ne sert strictement à rien ! Donc le Worker, je l'ai écarté direct.

Du coup j'ai fait ça à l'ancienne. Un petit script Python tourne sur la machine qui héberge le site, une fois par minute. Il pose une seule question à Cloudflare, à savoir combien d'adresses IP distinctes ont chargé une page durant la dernière heure (ou demi-heure, ou quart d'heure ou 5 min, c'est vous qui paramétrez), il écrit la réponse dans un minuscule fichier live.json de quelques centaines d'octets, et c'est tout. Ce fichier, Cloudflare le sert ensuite depuis son cache comme il servirait une image, gratuitement. Zéro Worker, zéro base de données, zéro abonnement, j'ai exactement le même résultat sans dépenser une thune.

Maintenant, faut que je sois clair sur ce que ce chiffre raconte. C'est le nombre de navigateurs distincts ayant chargé une page durant la dernière heure, hors trafic interne de Cloudflare. C'est un "*combien de monde est passé récemment *", pas un "combien lisent là tout de suite".

Et les bots là-dedans ?

En fait, les bots pourris , ceux qui scrapent en boucle, se font bloquer en amont par le Super Bot Fight Mode de Cloudflare, donc ils n'arrivent même pas jusqu'à mon site. Restent les gentils bots, du genre de Googlebot et compagnie, que je laisse passer exprès, parce que les bloquer reviendrait à me flinguer mon référencement. Sur les 7 derniers jours, Cloudflare classe à peine 4% comme bots vérifiés. Donc c'est une goutte d'eau, surtout qu'ils tournent sur une poignée d'IP. Donc oui, mon compteur avale deux ou trois crawlers au passage, mais je ne voulais pas vous mentir en écrivant "zéro bot". Mais l'essentiel c'est que les nuisibles, eux, ne soient pas comptabilisés.

J'ai aussi dû gérer un petit piège car l'API de Cloudflare plafonne sa réponse à 10 000 lignes. Et comme sur une heure entière de trafic ça peut se remplir vite, si je crève ce plafond, la requête sous-compterait sans rien dire. Donc le script lève un flag et le compteur affiche "10 000 personnes ou plus" plutôt qu'un faux nombre. Quand j'y serai aux 10 000 et plus, je pense que je réduirai alors le delta temps en passant de 1h à 30 min...etc.

Côté vie privée, c'est carré également. Cloudflare renvoie à mon serveur une liste JSON des IP passées dans l'heure, mon script en compte le nombre de distinctes, et efface cette liste de sa mémoire dans la milliseconde qui suit. Aucune IP n'est stockée, aucune n'atterrit dans un log, aucun fichier avec les IPs n'est créé sur le disque... Il ne reste qu'un entier. Comme je vous le disais, pas de cookie , pas de traceur, et rien qui touche votre navigateur . Et comme le compteur ne s'affiche jamais en dessous de 10 personnes, impossible d'isoler qui que ce soit.

Maintenant, si vous voulez le même chez vous, sachez que j'ai tout balancé en open source sur GitHub , sous licence MIT, donc servez-vous. Voici les pré-requis :

  1. votre site doit être derrière Cloudflare, le plan gratuit suffit largement.
  2. vous générez un token API Cloudflare avec le droit de lecture sur les analytics.
  3. vous posez le script live_count.py sur votre serveur et vous le lancez une fois par minute (ou toutes les 5 ou 10 min) via un cron.
  4. vous ajoutez le bout de JavaScript et son span dans vos pages, tout se règle par des attributs, aucun script inline, donc ça passe même avec une politique de sécurité stricte.

Le seul truc sur lequel ne pas vous louper, c'est de mettre un temps de cache court à live.json. Si c'est trop long, tous vos visiteurs verraient un chiffre périmé.

Voilà. Un petit compteur maison simili-live sans tracking et qui ne me coûte rien, c'est le bonheur !

  • ✇Korben
  • EmuDevz - Le jeu où vous codez votre émulateur NES
    Afska, le développeur derrière une flopée d'outils pour Game Boy Advance, a eu avec son studio [r]labs une idée géniale ! Ça s'appelle EmuDevz, et c'est un jeu vidéo dans lequel vous devez coder votre propre émulateur NES. Et pas en cliquant sur des boutons comme un loser, hein mais en pissant du vrai code pour le processeur, la puce graphique et la puce audio de la console de Nintendo. L'émulation, normalement, c'est un truc réputé aride où vous passez des semaines le nez dans la nesdev wik

EmuDevz - Le jeu où vous codez votre émulateur NES

Par : Korben ✨
26 juin 2026 à 09:39

Afska, le développeur derrière une flopée d'outils pour Game Boy Advance, a eu avec son studio [r]labs une idée géniale ! Ça s'appelle EmuDevz, et c'est un jeu vidéo dans lequel vous devez coder votre propre émulateur NES. Et pas en cliquant sur des boutons comme un loser, hein mais en pissant du vrai code pour le processeur, la puce graphique et la puce audio de la console de Nintendo.

L'émulation, normalement, c'est un truc réputé aride où vous passez des semaines le nez dans la nesdev wiki à piger comment le 6502 gère ses cycles d'horloge. Et pourtant, là, tout devient clair et facile puisque vous avez un éditeur de code intégré façon shell Unix, et vous implémentez le CPU, le PPU et l'APU dans l'ordre que vous voulez. Puis au fil de votre progression, vous débloquez des ROMs et des homebrews à faire tourner dans l'émulateur que vous venez de pondre. Et pour vérifier que votre code tient la route, le jeu fournit même des tests unitaires, des tests vidéo et des tests audio.

Mais le truc qui m'a scotché dans ce "jeu", c'est le debugger. Dans celui-ci, vous avez droit à un visualiseur de mémoire, un log d'instructions, les nametables, la CHR, les sprites, les palettes, les canaux APU affichés un par un, le monitoring du contrôleur... l'arsenal complet du mec qui développe pour de vrai, mais emballé dans une interface gaming. Y'a même un tuto interactif pour apprendre l'assembleur 6502 si vous débarquez sans rien connaître...

Voilà, c'est génial pour apprendre des concepts liés à l'émulation et au développement de jeux retro. On savait déjà qu'il était possible d' apprendre Prolog grâce aux Pokemon ou de recréer une carte 3dfx de zéro et voilà que maintenant, on nous propose carrément de dompter l'émulation de la NES.

Puis surtout, une fois que vous maitriserez un peu plus, le mode libre de EmuDevz vous permettra de commencer à coder des émulateurs pour d'autres systèmes. Ah et y'a même une bande son retro-synthwave dans l'appli pour se mettre dans l'ambiance.

Et je vous l'ai dit ou pas que c'était open source, trouvable sur Steam mais surtout jouable directement depuis votre navigateur ???

La vie est belle ! Et bonne canicule à tous 🥵 !

Source

  • ✇Korben
  • Favicon - Un site web planqué dans 212 octets
    Si vous ne connaissez pas, un favicon, c'est cette mini icône pixelisée que vous pouvez voir dans l'onglet de votre navigateur qui en général est le logo du site que vous visitez. Hé bien le dev Tim Wehrle a réussi à y faire tenir un site web entier en stockant tout son HTML dans les 212 octets de l'image. L'astuce est toute con vous allez voir... Une image, c'est des pixels. Et chaque pixel a 3 valeurs : rouge, vert, bleu, soit 3 octets. Du coup il prend son HTML, le découpe octet par octet, et

Favicon - Un site web planqué dans 212 octets

Par : Korben ✨
24 juin 2026 à 08:58

Si vous ne connaissez pas, un favicon, c'est cette mini icône pixelisée que vous pouvez voir dans l'onglet de votre navigateur qui en général est le logo du site que vous visitez. Hé bien le dev Tim Wehrle a réussi à y faire tenir un site web entier en stockant tout son HTML dans les 212 octets de l'image.

L'astuce est toute con vous allez voir... Une image, c'est des pixels. Et chaque pixel a 3 valeurs : rouge, vert, bleu, soit 3 octets. Du coup il prend son HTML, le découpe octet par octet, et colle chaque octet dans une couleur. Premier octet dans le rouge, le suivant dans le vert, puis le bleu, et on continue ainsi de suite. Et voilà comment il arrive à stocker 208 octets de HTML dans un carré de 9 pixels sur 9. Et au final, le truc ressemble à des confettis random.

Pour relire tout ça ensuite, un peu de JavaScript suffit. Le navigateur charge l'image, la passe dans un canvas, relit chaque pixel, recolle les octets et réaffiche la page. Il n'y a donc rien à installer et pour tester ça par vous-même, il a même mis une démo ici où vous pouvez regarder l'encodage / décodage se faire sous vos yeux ébahis.

Maintenant, n'espérez pas faire tenir votre site e-commerce là dedans hein puisque la capacité plafonne à 239 octets. Et sans le bout de JavaScript qui décode, le favicon tout seul ne servira à rien. Et ce n'est pas de la stéganographie non plus puisqu'on ne planque rien dans une vraie image. La data c'est l'image...

Mais c'est le genre de hack inutile que j'adore ! Le code est sur GitHub si vous êtes curieux et il raconte toute sa démarche sur son blog .

  • ✇Korben
  • Tanko - Lire des mangas dans le terminal en scred
    Si vous passez votre vie dans un terminal et que vous avez réussi un jour à quitter tout seul Vi / Vim, voici une application qui va vous intéresser. Il s'agit de Tanko , signé Alexandro Mendez, un outil en ligne de commande qui permet de lire et télécharger vos mangas préférés directement depuis un terminal. C'est, en gros, le même concept que youtube-dl mais pour les scans japonais. Pour installer Tanko, ouvrez un terminal et entrez la commande suivante : pnpm install -g tanko (npm marche auss

Tanko - Lire des mangas dans le terminal en scred

Par : Korben ✨
22 juin 2026 à 11:34

Si vous passez votre vie dans un terminal et que vous avez réussi un jour à quitter tout seul Vi / Vim, voici une application qui va vous intéresser. Il s'agit de Tanko , signé Alexandro Mendez, un outil en ligne de commande qui permet de lire et télécharger vos mangas préférés directement depuis un terminal. C'est, en gros, le même concept que youtube-dl mais pour les scans japonais.

Pour installer Tanko, ouvrez un terminal et entrez la commande suivante : pnpm install -g tanko (npm marche aussi). Une fois que c'est fait, y a plus qu'à lancer tanko. Plus besoin d'aller sur les sites en question, vous entrez vos critères de recherche et hop, vous lisez votre chapitre directement. Les chapitres que vous téléchargez en PDF atterrissent dans $HOME/tanko/downloads/.

Après, Tanko affiche les vraies pages en image, à condition d'utiliser un terminal moderne comme Kitty, Ghostty ou WezTerm qui gèrent les protocoles graphiques (Kitty graphics, Sixel). Mais surtout dans un terminal basique, genre le terminal intégré de VS Code ou le bon vieux CMD de Windows, Tanko basculera en mode ASCII Art.

J'suis sûr que vous voyez où je veux en venir... Votre boss passe derrière vous, voit des caractères bizarres défiler dans VS Code, et repart convaincu que vous compilez un truc alors que pendant ce temps-là vous suivez peinard le dernier chapitre de One Piece... niark niark niark.

Côté fonctions, vous avez l'historique de lecture, un menu de config, les notifications et le support de plusieurs sources de scans. Attention quand même, certaines sources scrappent les sites via un navigateur, donc il faudra installer Firefox avec npx playwright install firefox. Après c'est pas non plus obligatoire et vous pouvez vous contenter des sources qui n'en ont pas besoin.

L'outil est cool mais après en ce qui me concerne, lire un manga en ASCII Art c'est marrant 30 secondes, mais pour de la vraie lecture je vous conseille vraiment d'opter pour l'un des terminaux avec support des images que je vous ai cités plus haut.

Et si votre but c'est juste d'aspirer des tonnes de scans, le vieux mangal est plus complet, même s'il est archivé depuis avril 2025 et que plus personne ne le maintient... sniiif. Dans le même style, ça me rappelle aussi Lue qui vous lit vos ebooks en audio dans le terminal et si vous préférez un truc avec une vraie bibliothèque, jetez plutôt un œil à Kavita .

Et enfin, roulements de tambours, pour savoir où trouver vos scans sans finir en correctionnelle, j'avais fait un guide sur le manga et le scantrad .

Bref, c'est gratuit, mais à consommer avec modération pendant les heures de boulot, bande d'ennemis du capitalisme ^^ !!

  • ✇Korben
  • FROST - Quand un site web peut vous tracker grâce à votre SSD
    FROST, c'est le nom d'une nouvelle attaque qui transforme votre SSD en mouchard. Des chercheurs de l'université de Graz, avec Daniel Gruss au générique (un des cerveaux derrière Spectre et Meltdown), ont montré qu'un simple site web peut deviner quels autres sites et applis vous avez ouverts et cela juste en mesurant les micro-ralentissements de votre disque. Oui, je sais c'est geudin ! Le principe ? Quand vous ouvrez la page piégée, elle crée discrètement un gros fichier sur votre disque via un

FROST - Quand un site web peut vous tracker grâce à votre SSD

Par : Korben ✨
29 mai 2026 à 07:23

FROST, c'est le nom d'une nouvelle attaque qui transforme votre SSD en mouchard. Des chercheurs de l'université de Graz, avec Daniel Gruss au générique (un des cerveaux derrière Spectre et Meltdown), ont montré qu'un simple site web peut deviner quels autres sites et applis vous avez ouverts et cela juste en mesurant les micro-ralentissements de votre disque. Oui, je sais c'est geudin !

Le principe ?

Quand vous ouvrez la page piégée, elle crée discrètement un gros fichier sur votre disque via une API du navigateur baptisée OPFS ( Origin Private File System ), présente aujourd'hui dans tous les navigateurs modernes. C'est ce fichier qui sert de sonde.

Le JavaScript passe son temps à lire dedans et chronomètre chaque lecture au poil de cul et dès qu'une autre appli ou un autre onglet sollicite le SSD, ça crée un embouteillage minuscule sur le disque... que le code peut repérer sous forme de ralentissement.

Sauf que des variations de timing, ça reste du bruit illisible pour un humain. Du coup les chercheurs ont balancé toutes ces mesures dans un réseau de neurones (un CNN, le même genre de bidule qui reconnaît des choses sur des photos).

Entraîné sur des tonnes de traces, le modèle apprend alors la signature de chaque appli et de chaque site web et voilà comment à partir de ça, il devine ce que vous avez ouvert !

Sur un Mac, dans les tests présentés cette semaine, le truc retrouve le bon site parmi un top 50 dans près de 9 cas sur 10, et grimpe à plus de 95% pour reconnaître les applications ouvertes. Le tout sans la moindre action de votre part, à part avoir cliqué sur le lien. C'est totalement invisible.

Mais avant de débrancher votre PC, renvoyer votre box internet et vous lancer à temps complet dans la culture de chanvre, faut relativiser, car cette attaque a plusieurs limites... Le hic numéro un, c'est que le fichier-sonde doit être énorme, genre 1 Go ou plus, et un site qui se met à bouffer autant de place sur votre disque, ça se remarque vite. Le hic numéro deux, c'est que ce fichier doit être sur le même SSD que le navigateur sinon l'attaque est aveugle.

Les chercheurs ont fait tourner l'attaque complète sur un Mac M2, et démontré que la brique de base fonctionne aussi sous Linux (sans dérouler la classification complète), mais n'ont pas testé Windows. Et surtout, personne n'a encore vu FROST exploité dans la nature.

Perso, je trouve que cette attaque est trop bancale / incertaine pour faire du tracking de masse, en tout cas aujourd'hui...

Pensez donc à fermer les onglets dont vous ne vous servez plus comme ça, y'a moins d'activité à mesurer et pour les plus paranoïaques, vous pouvez toujours vous mettre à surveiller les fichiers OPFS créés par des sites web inconnus. Après comme tout repose sur du JavaScript, bloquer le JS sur les sites pas nets (avec un NoScript ou équivalent) ça coupe aussi l'attaque à la racine.

Les chercheurs proposent aussi aux éditeurs de navigateurs de plafonner la taille de ces fichiers OPFS. Ce serait dans la lignée de ce que fait par exemple Firefox avec le pistage, qui a récemment musclé son anti-fingerprinting .

Bref, pas de panique, personne ne fouille votre SSD en douce mais la technique reste intéressante. Les détails techniques complets sont dans le papier de recherche , qui sera présenté à la conférence DIMVA en juillet. Bonne lecture !

Source

  • ✇Korben
  • EmDash - Cloudflare refait WordPress from scratch
    Cloudflare qui sort un successeur open source à WordPress le 1er avril, je vous avoue que ça sentait le poisson d'avril à plein nez. Sauf que non !! EmDash est bien réel, son code est sur GitHub sous licence MIT, et ça s'installe en une commande toute simple ! L'idée de base pour Cloudflare, c'est de dire que WordPress a plus de 20 ans et bien qu'il alimente 40% du web, son architecture de plugins est un emmental (Le gruyère n'a pas de trou les amis ^^). En effet, 96% des failles de sécurité vie

EmDash - Cloudflare refait WordPress from scratch

Par : Korben
2 avril 2026 à 02:10

Cloudflare qui sort un successeur open source à WordPress le 1er avril, je vous avoue que ça sentait le poisson d'avril à plein nez. Sauf que non !! EmDash est bien réel, son code est sur GitHub sous licence MIT, et ça s'installe en une commande toute simple !

L'idée de base pour Cloudflare, c'est de dire que WordPress a plus de 20 ans et bien qu'il alimente 40% du web, son architecture de plugins est un emmental (Le gruyère n'a pas de trou les amis ^^). En effet, 96% des failles de sécurité viennent des extensions et pas du noyau PHP ni des thèmes et en 2025, on a quand même explosé le record de failles dans l'écosystème WP.

Du coup Cloudflare, grand prince (Matthew ^^ Ok, je sors...) a tout repris de zéro en TypeScript et avec l'aide de nombreux agents IA. Et de ce que j'ai compris, le gros morceau de ce projet, visiblement, c'est l'isolation des plugins.

Car sur WordPress, une extension a accès à toute la base de données et au système de fichiers (d'où l'importance de bien les choisir ). Alors que sur EmDash, chaque plugin tourne dans son propre isolat avec un modèle de capacités déclaratives. En gros, le plugin annonce dans un fichier manifeste JSON ce dont il a besoin, genre read:content ou email:send, et il ne peut rien faire d'autre. S'il veut accéder au réseau, il doit même préciser le hostname exact. Comme ça fini les extensions qui aspirent vos données en douce. Par contre, ça veut aussi dire que vos plugins WordPress actuels ne marcheront pas tels quels...

Côté stack, c'est comme je disais du TypeScript de bout en bout avec Astro 6.0 en frontend (pour les thèmes) et Node.js derrière. L'auth passe également par des passkeys par défaut (enfin, plus de mots de passe !) et y'a même un système de paiement natif via le standard ouvert x402 pour monétiser du contenu.

Et le truc qui va vous rassurer si vous êtes allergique au cloud : c'est auto-hébergeable. En fait, le CMS peut tourner sur Cloudflare Workers, mais aussi sur n'importe quel serveur Node.js avec SQLite. Les abstractions sont portables, avec Kysely pour le SQL et l'API S3 pour le stockage. Du coup vous pouvez brancher PostgreSQL, Turso, AWS S3, ou tout bêtement des fichiers en local. Le bonheur !

Le truc cool pour les bidouilleurs, c'est que chaque instance expose un serveur MCP (Model Context Protocol) et une CLI pour piloter le CMS par script. Y'a aussi des Agent Skills pour que les agents IA puissent créer du contenu, gérer les médias et modifier le schéma sans toucher au dashboard. C'est clairement pensé pour l'ère des agents IA.

Et pour ceux qui veulent migrer depuis leur WordPress, c'est prévu pour vous faciliter la tâche puisqu'il y a le support d'export WXR classique ou via un plugin dédié qui crée un endpoint sécurisé protégé par mot de passe. Que ce soient les médias, les custom post types...etc tout est transférable en quelques minutes. Par contre, attention les shortcodes et les blocs Gutenberg custom ne passeront pas tels quel, faudra faire des ajustements.

Car oui c'est une v0.1.0 preview, donc on peut le dire, une bonne grosse beta qui bave mais je trouve ça super cool car le drama WP Engine vs WordPress a montré que l'écosystème était fragile, et c'est bien de réintroduire un peu de diversité. Par contre, remplacer un CMS qui fait tourner 40% du web, c'est hyper ambitieux et ça se fera pas en un trimestre. Car la vraie force de WordPress, c'est sa communauté, ses milliers de plugins et de thèmes, et ça pour le moment, y'a pas grand chose sur EmDash.

M'enfin, si vous voulez tester c'est npm create emdash@latest et c'est parti mon kiki. Ah et y'a aussi un playground sur emdashcms.com pour vous faire une idée sans rien installer. Pour ma part, je testerai ça dès que j'aurais 5 min, mais pour le moment, je ne me vois pas quitter WordPress car EmDash n'a pas (encore) ce petit truc en plus qui me ferait changer... On verra d'ici quelques temps.

Source

  • ✇Korben
  • 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 n

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

Par : Korben
12 février 2026 à 14:42

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 !

  • ✇Korben
  • Reinstall - Le script ultime pour réinstaller n'importe quel OS sur votre VPS (même Windows)
    Aujourd'hui, on va aller un peu plus loin que les simples bidouilles habituelles car je vais vous présenter Reinstall , un outil qui va peut-être vous changer la vie si vous gérez des serveurs distants. Vous connaissez la chanson... vous avez un VPS sous Debian et vous voulez passer sous Arch pour faire votre malin. Sauf que pour opérer ce changement, c'est la galère assurée !! Faut passer par l'interface web de l'hébergeur, booter sur une ISO via une console VNC qui rame sa maman, et prier pou

Reinstall - Le script ultime pour réinstaller n'importe quel OS sur votre VPS (même Windows)

Par : Korben
6 février 2026 à 10:22

Aujourd'hui, on va aller un peu plus loin que les simples bidouilles habituelles car je vais vous présenter Reinstall , un outil qui va peut-être vous changer la vie si vous gérez des serveurs distants.

Vous connaissez la chanson... vous avez un VPS sous Debian et vous voulez passer sous Arch pour faire votre malin. Sauf que pour opérer ce changement, c'est la galère assurée !! Faut passer par l'interface web de l'hébergeur, booter sur une ISO via une console VNC qui rame sa maman, et prier pour que le réseau revienne après le reboot.

Eh bien ça c'est terminé grâce à ce script Reinstall. Vous lui balancez une commande, le script s'occupe de tout, et hop, votre serveur redémarre sur le nouvel OS de votre choix. Pas besoin d'accès IPMI, pas besoin de supplier le support technique, ça marche tout seul.

Et ça supporte pas mal d'OS... Côté Linux, y'a 19 distributions majeures : Alpine, Debian (de 9 à 13), Ubuntu (de 16.04 à 25.10), toute la famille Red Hat (AlmaLinux, Rocky, Oracle), Fedora, Arch, Gentoo, NixOS... Bref, y'a tout ce qu'il faut.

Et le truc qui va plaire à ceux qui font du cloud, c'est également le support de Windows. En effet, le script permet d'installer Windows Vista, 7, 8.1, 10, 11 et même Windows Server 2025.

Et rassurez-vous, il n'utilise pas des images bricolées par on ne sait qui, mais les ISO officielles de chez Microsoft. Lui se content d'injecter automatiquement les drivers VirtIO pour que ça tourne comme un charme sur n'importe quel cloud (AWS, GCP, Oracle Cloud...).

Aussi, le point le plus chiant quand on réinstalle un serveur distant, c'est la config réseau. Si on se loupe, on perd l'accès SSH et c'est fini. Reinstall gère ça intelligemment puisqu'il détecte votre IP (statique ou dynamique), gère l'IPv6, les passerelles exotiques et même les serveurs ARM.

Ce qu'il vous faut avant de tout casser

  • RAM : 256 Mo pour Alpine/Debian, 1 Go pour Windows.
  • Disque : 1 Go pour Linux, 25 Go minimum pour Windows.
  • Accès : Un accès root/admin sur la machine actuelle.
  • Temps estimé : Environ 5 à 15 minutes selon la vitesse de connexion de votre serveur.

Un petit avertissement quand même... Ce script ne gère pas les conteneurs type OpenVZ ou LXC. Faut que ce soit une vraie VM (KVM, VMware, Hyper-V) ou un serveur bare-metal.

Le tuto ! Le tuto !

C'est là que ça devient drôle. Pour installer un nouveau Linux (disons Debian 13) depuis votre système actuel, il suffit de faire un petit :

# Télécharger le script
curl -O https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh

# Lancer la réinstallation
bash reinstall.sh debian 13 --password "VotreMotDePasse"

Si vous voulez tenter l'aventure Windows :

bash reinstall.sh windows --image-name "Windows 11 Enterprise LTSC 2024" --lang fr-fr

Le script tourne même depuis Windows (via un .bat) si vous voulez faire l'inverse et repasser sous Linux.

Perso, je trouve ça quand même génial pour tester des trucs sans passer des plombes à configurer des ISO. Ça dépanne grave quand on veut repartir on une base saine en un clin d'œil. D'ailleurs, si vous avez besoin de sécuriser vos serveurs après l'install, j'avais parlé de Fail2Ban il y a quelques temps, et c'est toujours une bonne idée. Et si vous avez peur de perdre vos données, jetez un œil à Restic pour vos backups.

Bref, si vous gérez des VPS et que vous en avez marre des consoles web préhistoriques, foncez tester ce truc (sur une machine de test d'abord, hein, venez pas pleurer après).

Bon, je vous laisse… Je vais aller me faire un petit café !

  • ✇Korben
  • PineTS - Vos scripts TradingView enfin libérés !
    Vous connaissez sûrement TradingView pour suivre les cours de la bourse / crypto, et son fameux langage Pine Script. C'est top pour bidouiller des indicateurs techniques sans se prendre la tête, mais dès qu'on veut sortir du bac à sable pour intégrer ça dans un bot perso ou un backend, ça se corse sévère. Alors moi je fais pas tout ça, ni trading, ni dev autour du trading, mais je sais qu'on peut se retrouver souvent bloqué par les limites de la plateforme. Hé bien bonne nouvelle pour tous les t

PineTS - Vos scripts TradingView enfin libérés !

Par : Korben
2 février 2026 à 11:59

Vous connaissez sûrement TradingView pour suivre les cours de la bourse / crypto, et son fameux langage Pine Script. C'est top pour bidouiller des indicateurs techniques sans se prendre la tête, mais dès qu'on veut sortir du bac à sable pour intégrer ça dans un bot perso ou un backend, ça se corse sévère. Alors moi je fais pas tout ça, ni trading, ni dev autour du trading, mais je sais qu'on peut se retrouver souvent bloqué par les limites de la plateforme.

Hé bien bonne nouvelle pour tous les traders en culottes courtes qui n'ont pas encore compris que le DCA c'est + efficace que le day-trading, Alaa-eddine (un lecteur fidèle, coucou !) a bossé sur un projet qui va vous plaire : PineTS .

PineTS ce n'est pas encore l'un de ses parseurs bancal mais un vrai transpiler ET un runtime complet qui permet d'exécuter du code Pine Script directement dans un environnement Javascript ou TypeScript. Il vous faudra évidemment Node.js et votre bon vieux navigateur pour que ça fonctionne.?

Vous prenez votre script ta.rsi(close, 14), vous lancez un npm install pinets et hop, ça tourne sur votre serveur. PineTS gère la "transpilation" (non, c'est pas quand on a chaud sous les bras ^^) à la volée et fournit une implémentation des fonctions standard de Pine Script (v5 et v6). Il supporte déjà plus de 60 indicateurs techniques (SMA, EMA, MACD, Bollinger...), le multi-timeframe et même le streaming de données temps réel.

Du coup, ça ouvre des portes assez dingues ! Et si vous vous demandez si Pine Script est similaire à JavaScript, la réponse est "pas tout à fait", mais PineTS fait le pont entre les deux mondes. Vous pouvez grâce à ça récupérer des données de marché via n'importe quelle API (CCXT, Binance...), les passer à la moulinette PineTS, et utiliser le résultat pour trigger des ordres ou nourrir une IA.

Attention par contre, tout n'est pas encore supporté à 100%. Sauf si vous restez sur du standard, là c'est royal... Mais si vous utilisez des fonctions graphiques très exotiques, faudra vérifier tout pour ne pas finir sur la paille. Le seul truc qui manque peut-être, c'est une compatibilité totale avec les scripts v4, mais bon, on est en v6 maintenant et pour la logique de trading pure, c'est propre.

D'ailleurs, pour ceux qui utilisent ChatGPT pour écrire du Pine Script, sachez que vous pouvez maintenant intégrer ces snippets générés par l'IA directement dans vos propres applis Node.js. C'est quand même plus flexible que de copier-coller ça dans TradingView à chaque fois.

Et ce n'est pas tout (hé oui ^^) car pour la partie visuelle, il a aussi sorti également QFChart , une bibliothèque dédiée pour afficher le tout avec de jolis graphiques financiers. C'est le combo gagnant pour se faire un dashboard de trading sur mesure sans dépendre de l'infra de TradingView.

Perso, je trouve ça génial pour ceux qui veulent garder la main sur leur exécution ou faire du backtesting sérieux avec leurs propres données. En fait, c'est exactement ce qu'il manquait aux traders-developpeurs pour coder leur propre logique de A à Z. Le projet est open source et dispo sur GitHub et y'a même un playground pour tester vos scripts en live et voir la transpilation en temps réel.

Si vous faites du trading algo, ça vaut clairement le coup d'œil.

PineTS est à découvrir ici ! Et un grand merci à Alaa-eddine pour le partage !

  • ✇Korben
  • Stash - Synchroniser vos notes Apple Notes avec Markdown
    Si vous êtes comme moi et que vous vivez dans Apple Notes parce que c'est fluide, synchronisé partout, et que ça marche sans qu'on ait à se poser de questions, cet outil va vous plaire. Parce que oui, voilà, le jour où vous voulez bidouiller vos notes en ligne de commande, les exporter en Markdown, ou simplement éviter de vous retrouver coincé dans votre prison dorée Apple... Et bien c'est la galère. J'ai longtemps cherché une solution propre. Je me suis même dit à un moment que j'allais coder u

Stash - Synchroniser vos notes Apple Notes avec Markdown

Par : Korben
1 février 2026 à 09:15

Si vous êtes comme moi et que vous vivez dans Apple Notes parce que c'est fluide, synchronisé partout, et que ça marche sans qu'on ait à se poser de questions, cet outil va vous plaire.

Parce que oui, voilà, le jour où vous voulez bidouiller vos notes en ligne de commande, les exporter en Markdown, ou simplement éviter de vous retrouver coincé dans votre prison dorée Apple... Et bien c'est la galère. J'ai longtemps cherché une solution propre. Je me suis même dit à un moment que j'allais coder un script Python foireux pour scrapper la base SQLite locale, mais j'ai vite abandonné l'idée.

Pourquoi ? Parce que j'ai découvert Stash , un petit outil en ligne de commande qui fait le pont entre vos notes Apple et des fichiers Markdown.

Et le truc cool, c'est que ça marche dans les deux sens. Vous pouvez exporter vos notes Apple en Markdown (comme ici : Exporter pour vos backups ), mais aussi éditer vos fichiers Markdown et renvoyer les changements directement dans Apple Notes. C'est une vrai synchro bidirectionnelle qui vous rend vraiment maître de vos données.

J'ai testé ça sur macOS Tahoe avec un dossier de notes en vrac. J'ai lancé le bousin, et ça m'a fait plaisir de voir mes fichiers .md popper proprement dans le terminal, prêts à être commités ensuite sur un GitHub ou édités dans VS Code.

L'installation est toute bête, via Homebrew :

brew tap shakedlokits/stash https://github.com/shakedlokits/stash
brew install shakedlokits/stash/stash

Et ensuite, c'est juste 2 commandes. Pour exporter une note Apple vers Markdown, c'est

stash pull "Ma Super Note"

Stash va chercher la note dans Apple Notes, la convertit en Markdown propre via Pandoc, et vous la balance dans un fichier local Ma Super Note.md.

Et la seconde commande c'est pour faire l'inverse (éditer votre Markdown et pousser les changements vers Apple Notes). Là faut faire

stash push "Ma Super Note.md"

Et là, magie !! Vos modifs se retrouvent dans l'app Notes, synchronisées sur tous vos appareils Apple (iPhone, iPad, Mac). C'est dommage que ça soit pas natif ce truc.

Stash c'est chouette (Oula pas facile à prononcer vite celle là) parce qu'il utilise du YAML front-matter pour lier chaque fichier Markdown à une note Apple spécifique (via un ID unique). Quand vous faites stash push, le contenu du fichier écrase la note. Quand vous faites stash pull, la note écrase le fichier.

Attention toutefois car c'est là que ça se corse... Stash écrase sans pitié !! Si vous modifiez votre note sur l'iPhone ET votre fichier Markdown en même temps, c'est le dernier qui parle qui a raison. Y'a pas de fusion intelligente à la Git, donc gaffe aux conflits. C'est un peu brut de décoffrage, mais au moins c'est clair et prévisible.

Bref, pour ceux qui veulent scripter leurs notes, automatiser des backups, ou simplement bosser en Markdown avec leur éditeur préféré, c'est le chaînon manquant. J'avais testé Obsidian et Joplin par le passé, mais la synchro iCloud ou WebDAV m'avait saoulé. Là, c'est le bon compromis avec l'interface Apple pour la saisie, le Markdown pour le stockage long terme.

  • ✇Korben
  • Un générateur de mots de passe qui utilise des regex
    Vous avez déjà galéré à créer un mot de passe qui respecte les 42 règles imposées par un site un peu trop zélé ? Genre au moins 16 caractères, une majuscule, une minuscule, un chiffre, un caractère spécial, et surtout pas le prénom de votre chat ni votre date de naissance ? C’est le genre de micro-agression qui peut flinguer une matinée ^^. Heureusement, y’a un dev qui a eu une idée de génie en inversat complètement le problème grâce à la puissance brute des expressions régulières. Son outil s'a

Un générateur de mots de passe qui utilise des regex

Par : Korben
28 janvier 2026 à 10:00

Vous avez déjà galéré à créer un mot de passe qui respecte les 42 règles imposées par un site un peu trop zélé ? Genre au moins 16 caractères, une majuscule, une minuscule, un chiffre, un caractère spécial, et surtout pas le prénom de votre chat ni votre date de naissance ?

C’est le genre de micro-agression qui peut flinguer une matinée ^^.

Heureusement, y’a un dev qui a eu une idée de génie en inversat complètement le problème grâce à la puissance brute des expressions régulières.

Son outil s'appelle RegExp Password Generator et comme son nom l'indique, c'est un générateur de mots de passe qui fonctionne avec des regex. Au lieu de cocher des cases un peu nazes dans une interface classique, vous définissez vos contraintes ligne par ligne sous forme d'expressions régulières.

Par exemple, vous balancez ^.{16,32}$ pour imposer une longueur entre 16 et 32 caractères, [0-9] pour exiger au moins un chiffre, and [A-Z] pour une majuscule. L’outil va alors calculer l’intersection de tous vos patterns pour vous sortir 5 mots de passe aléatoires qui matchent absolument toutes vos règles simultanément.

L'outil repose heureusement sur la bibliothèque TypeScript @gruhn/regex-utils. Pour ceux qui font du code, vous savez que manipuler des regex pour faire des intersections ou des compléments, c'est normalement une purge monumentale que la plupart des langages de programmation ne gèrent pas nativement.

C'est pourquoi ici, la lib fait tout le sale boulot de calcul d'ensemble pour s'assurer que vos contraintes ne sont pas contradictoires. Si vous demandez un truc impossible (genre un mot de passe qui doit être composé uniquement de chiffres ET uniquement de lettres), l’outil vous le dit direct au lieu de mouliner dans le vide.

Et tout tourne en local dans votre navigateur donc c'est cool pour la vie privée, par contre, gardez en tête que la lib supporte un sous-ensemble bien précis de la syntaxe RegExp de JavaScript. Inutile donc tenter des trucs ultra exotiques comme les lookbehinds complexes, l'outil risque de vous renvoyer une erreur.

Le côté pratique, c'est que vos contraintes sont directement encodées dans l'URL. Du coup, vous pouvez bookmarker une config précise pour un site spécifique ou la partager avec vos collègues sans avoir à tout retaper à chaque fois. Un petit compteur affiche même le nombre total de combinaisons possibles avec vos règles, histoire de vérifier que vous n'avez pas créé un mot de passe trop prévisible (ou au contraire, un truc tellement restrictif qu'il n'existe qu'une seule possibilité).

Bref, j'ai trouvé ça original !

  • ✇Korben
  • Strudel – Composez de la techno en tapant du code dans votre navigateur
    Est-ce que vous avez déjà eu cette envie soudaine de composer de la techno tout en ayant l'air d'un hacker qui pirate le Pentagone dans un film des années 90 ? Si oui, j'ai le truc parfait pour vous : Strudel . Pour ceux qui débarquent, le live coding musical dont je vous ai déjà parlé y'a pas longtemps avec Loopmaster , c'est l'art de créer du son en écrivant du code en temps réel. En gros, on tape des lignes, on valide, et hop le rythme change en direct. Strudel rend ce concept ultra accessibl

Strudel – Composez de la techno en tapant du code dans votre navigateur

Par : Korben
22 janvier 2026 à 10:00

Est-ce que vous avez déjà eu cette envie soudaine de composer de la techno tout en ayant l'air d'un hacker qui pirate le Pentagone dans un film des années 90 ?

Si oui, j'ai le truc parfait pour vous : Strudel .

Pour ceux qui débarquent, le live coding musical dont je vous ai déjà parlé y'a pas longtemps avec Loopmaster , c'est l'art de créer du son en écrivant du code en temps réel.

En gros, on tape des lignes, on valide, et hop le rythme change en direct. Strudel rend ce concept ultra accessible puisqu'il tourne entièrement dans votre navigateur préféré, sans chichi et surtout sans avoir besoin d'installer des usines à gaz comme SuperCollider ou de configurer des environnements de dev à n'en plus finir.

L'interface de Strudel - sobre mais efficace ( Source )

Le projet est d'ailleurs un port officiel du langage de patterns de TidalCycles vers JavaScript. TidalCycles , c'est un peu la référence absolue dans le monde du live coding, mais ça demandait pas mal de bidouille (Haskell, etc.) pour fonctionner correctement. Avec Strudel, vous ouvrez une page web, vous tapez du code et c'est parti mon kiki !

Le principe repose sur des motifs rythmiques qui occupent toujours le même espace temporel (appelé "cycle"). Contrairement à un séquenceur classique où on empile des notes, ici on définit des structures qui se compressent ou s'étirent automatiquement. C'est un peu déroutant au début mais une fois qu'on a pigé le truc, on peut sortir des beats qui tabassent en seulement trois lignes de code. Perso, je trouve ça assez hypnotique (oui j'aime le comique de répétition).

Côté technique, l'outil s'appuie sur l'API Web Audio et intègre un synthé/sampler baptisé Superdough. C'est assez costaud et ça permet déjà de s'amuser avec plein d'effets sans quitter le browser. Et pour les plus barbus d'entre vous qui voudraient piloter leur propre setup SuperCollider , c'est possible aussi via OSC , mais attention, il faudra quand même lancer un petit serveur relais en Node.js pour faire le pont entre le navigateur et votre machine.

Y'a même un workshop interactif vraiment bien foutu pour apprendre les bases. En quelques minutes, vous allez comprendre comment balancer des snares et des kicks avec une précision chirurgicale. Et le petit plus qui fait plaisir, vous pouvez partager vos chefs-d'œuvre en copiant simplement l'URL, puisque tout votre code est encodé dedans. C'est direct in the pocket !

La Reine de Strudel c'est évidemment Switch Angel :

Bref, si vous cherchez un nouveau hobby créatif un peu geek pour vos soirées d'hiver, foncez tester ça. Ça rappelle un peu d'autres pépites comme Drumbit ou même Draw Audio pour le côté fun et immédiat. De quoi verser une petite larme de joie en retrouvant des sensations de bidouille pure.

Merci Lorenper, Quentin & Jean-Raymond pour le partage !

  • ✇Korben
  • RemoveWindowsAI - Le script qui débranche l'IA de Windows 11
    Bon, déjà si vous êtes sous Windows, je sais c'est dur la vie ^^. Mais si en plus vous êtes anti-IA, votre quotidien doit être encore plus difficile depuis que Microsoft a décidé de coller de l'intelligence artificielle partout dans son OS. Copilot par-ci, Recall par-là, des features IA dans Paint, dans le Bloc-notes, dans les paramètres... Bref, c'est l'invasion et y'a malheureusment pas vraiment de bouton "OFF" officiel pour tout virer d'un coup. Hé bien figurez-vous qu'un développeur du nom d

RemoveWindowsAI - Le script qui débranche l'IA de Windows 11

Par : Korben
17 décembre 2025 à 10:53

Bon, déjà si vous êtes sous Windows, je sais c'est dur la vie ^^. Mais si en plus vous êtes anti-IA, votre quotidien doit être encore plus difficile depuis que Microsoft a décidé de coller de l'intelligence artificielle partout dans son OS. Copilot par-ci, Recall par-là, des features IA dans Paint, dans le Bloc-notes, dans les paramètres... Bref, c'est l'invasion et y'a malheureusment pas vraiment de bouton "OFF" officiel pour tout virer d'un coup.

Hé bien figurez-vous qu'un développeur du nom de zoicware a créé un script PowerShell qui fait exactement ça. Ça s'appelle RemoveWindowsAI et ça permet de dégager TOUTES les fonctionnalités IA de Windows 11 en quelques secondes. Aux chiottes Copilot, Recall, les suggestions de frappe, l'IA dans Paint, dans Edge, les effets vocaux... Tout y passe et c'est cool !

Et ce script ne se contente pas de désactiver des options dans les paramètres comme un vulgaire amateur puisqu'il modifie les clés de registre, supprime les packages Appx (même ceux marqués "non supprimables" par Microsoft), nettoie les fichiers cachés dans le Component-Based Servicing, et surtout il installe un bloqueur pour empêcher Windows Update de vous remettre tout ce bazar à la prochaine mise à jour. Parce que oui, Microsoft adore réinstaller ses trucs en douce...

Pour l'utiliser, c'est assez simple. Vous lancez PowerShell en admin (attention, pas PowerShell 7 mais bien le bon vieux Windows PowerShell 5.1) et vous tapez une seule commande qui télécharge et exécute le script. Y'a même une interface graphique interactive pour ceux qui préfèrent cocher des cases plutôt que de taper des lignes de commande (Allez quand même lire le code avant sur le Github pour vous assurer que c'est OK, c'est une bonne habitude à prendre).

& ([scriptblock]::Create((irm "https://raw.githubusercontent.com/zoicware/RemoveWindowsAI/main/RemoveWindowsAi.ps1")))

Maintenant, quelques précautions à savoir quand même. Certains antivirus merdiques vont hurler au loup en voyant ce script. Rassurez-vous, c'est un faux positif classique avec ce genre d'outils qui touchent au système en profondeur. Faudra soit désactiver temporairement votre antivirus, soit ajouter une exception et surtout, le développeur recommande fortement de tester ça dans une machine virtuelle avant de l'appliquer sur votre PC principal. Avec VirtualBox ou Hyper-V, vous pouvez créer un Windows 11 de test en quelques clics et voir si tout se passe bien.

Et si jamais vous changez d'avis et que vous voulez récupérer vos features IA adorées, pas de panique ! Y'a un mode "Revert" qui permet de tout restaurer. Vous n'êtes donc pas coincé pour toujours si vous décidez finalement de revenir vers le côté obscur de la Force.

Bref, si vous faites partie de ceux qui pensent que l'IA dans Windows c'est plus une nuisance qu'autre chose (et que ça pompe des ressources pour des fonctionnalités dont vous n'avez pas besoin), ce petit script vous sera utile.

C'est par ici : RemoveWindowsAI sur GitHub

  • ✇Korben
  • Cascii - Un éditeur de diagrammes ASCII qui tient dans un fichier HTML
    Dessiner des schémas en ASCII art, c’est un peu le sport national des devs qui documentent leur code dans des fichiers texte. Sauf que jusqu’ici, soit on se tapait ça à la main caractère par caractère, soit on passait par des outils en ligne qui demandent de se créer un compte et gardent vos diagrammes sur leurs serveurs. Heureusement, Cascii règle le problème puisqu’il s’agit d’un éditeur graphique complet qui tient dans un seul fichier HTML ! Et comme Cascii est écrit en JavaScript pur, y’a au

Cascii - Un éditeur de diagrammes ASCII qui tient dans un fichier HTML

Par : Korben
3 décembre 2025 à 10:01

Dessiner des schémas en ASCII art, c’est un peu le sport national des devs qui documentent leur code dans des fichiers texte. Sauf que jusqu’ici, soit on se tapait ça à la main caractère par caractère, soit on passait par des outils en ligne qui demandent de se créer un compte et gardent vos diagrammes sur leurs serveurs. Heureusement, Cascii règle le problème puisqu’il s’agit d’un éditeur graphique complet qui tient dans un seul fichier HTML !

Et comme Cascii est écrit en JavaScript pur, y’a aucune dépendance, aucun framework, aucun npm install…etc. Vous téléchargez juste le fichier HTML, vous l’ouvrez dans votre navigateur, et c’est parti mon kiki.

Et pour l’installer, une commande suffit :

curl https://cascii.app -o cascii.html && open cascii.html

Ahaha ouais c’est la commande curl la plus nulle de l’histoire des commandes curl mais ça vous montre que je n’abuse pas.

Côté fonctionnalités, on a donc tout ce qu’il faut pour dessiner des diagrammes propres. Des lignes libres, des lignes en escalier, des carrés, des cercles, des losanges, du texte, des tableaux. Un système de calques permet d’organiser les éléments et de les grouper. Le plus malin, je trouve, c’est les “jointures intelligentes” qui connectent automatiquement les formes entre elles… parce que dessiner des flèches qui arrivent pile au bon endroit à la main, c’est l’enfer. Même comme ça, je suis pas doué, cela dit…

Ne le jugez pas…

L’éditeur propose plusieurs charsets tels que ASCII classique ou Unicode pour ceux qui veulent des lignes plus jolies et il y a 3 styles de lignes (pointillées, solides fines, solides épaisses) ainsi que des flèches directionnelles. Côté thèmes, du sombre, du clair, ou un mode “console” pour les nostalgiques du terminal.

La sauvegarde se fait automatiquement dans le stockage local du navigateur, donc même si vous fermez l’onglet par erreur, votre travail n’est pas perdu et pour partager ou archiver, il y a un export en Base64 qui permet de tout récupérer plus tard. Si vous utilisez la version hébergée sur cascii.app, vous pouvez aussi générer des liens courts pour partager vos créations.

Le projet est sous licence Apache 2.0 et le code source est dispo sur GitHub et pour les raccourcis clavier, c’est du classique : Ctrl+Z pour annuler, Ctrl+C/V pour copier-coller, Ctrl+G pour grouper des éléments, Shift+Click pour la multi-sélection. L’historique est illimité donc vous pouvez revenir en arrière autant que vous voulez.

Voilà, si vous documentez du code, dessinez des architectures système ou avez juste besoin de faire un petit schéma rapide sans sortir l’artillerie lourde, Cascii fera le job !

  • ✇Korben
  • Prelude of the Chambered Reborn - Le jeu de Notch est de retour dans le navigateur
    Vous vous souvenez de Notch, le créateur de Minecraft ? Avant de devenir milliardaire dépressif à temps plein en vendant son jeu à Microsoft, le bonhomme participait à des game jams et pondait des petits jeux en moins de 48 heures. Et Prelude of the Chambered c’était justement l’un de ces projets, créé lors de la Ludum Dare 21 en août 2011 avec le thème “Escape”. Un dungeon crawler à l’ancienne façon Dungeon Master ou Eye of the Beholder, codé en Java. Hé bien, Angelo Lima vient de le ressuscite

Prelude of the Chambered Reborn - Le jeu de Notch est de retour dans le navigateur

Par : Korben
1 décembre 2025 à 12:36

Vous vous souvenez de Notch, le créateur de Minecraft ?

Avant de devenir milliardaire dépressif à temps plein en vendant son jeu à Microsoft, le bonhomme participait à des game jams et pondait des petits jeux en moins de 48 heures. Et Prelude of the Chambered c’était justement l’un de ces projets, créé lors de la Ludum Dare 21 en août 2011 avec le thème “Escape”. Un dungeon crawler à l’ancienne façon Dungeon Master ou Eye of the Beholder, codé en Java.

Hé bien, Angelo Lima vient de le ressusciter en TypeScript et ça tourne direct dans votre navigateur . Qu’il est fort !!

Le projet s’appelle Prelude of the Chambered: Reborn et c’est donc une réécriture complète du code original. Aux chiottes le Java, et bonjour le TypeScript moderne avec Vite pour le build. Le rendu 3D utilise uniquement le Canvas 2D et du raycasting software pur, sans WebGL ni accélération GPU. Bref, tout se fait à l’ancienne, comme dans le jeu original, mais en version web accessible depuis n’importe quel appareil.

Le truc cool avec le jeu de Notch, c’est son système de level design. Les niveaux sont définis par des images PNG où chaque couleur de pixel représente un élément du jeu : mur, porte, ennemi, objet… C’est du “data-driven” avant l’heure, et ça permet à n’importe qui de créer ses propres niveaux sans toucher au code. Angelo a bien sûr conservé ce système dans sa version modernisée.

Côté contenu, vous avez six niveaux à explorer : Prison, Dungeons, Overworld, Crypt, Temple et Ice Cave. Y’a des ennemis plutôt variés comme des chauves-souris, des ogres, des yeux flottants, Jordan Bardella et des fantômes (un intrus s’est glissé dans cette liste), plus des versions boss. Votre objectif c’est donc de collecter quatre clés pour vous échapper, tout en ramassant des power-ups comme le Power Glove, un pistolet, des palmes pour nager et des patins à glace. Le jeu se finit en 20-30 minutes, mais attention !!!! Si vous mourrez, vous recommencez tout depuis le début.

D’ailleurs, petit fun fact, certaines textures d’objets de Prelude of the Chambered ont été réutilisées par Notch dans Minecraft lui-même, notamment pour les armures en cuir, en fer et les épées. Quand on vous dit que le mec recyclait tout, même les pots de yaourts…

Les contrôles c’est du classique… WASD ou les flèches pour bouger, Q/E pour tourner, Espace pour taper ou utiliser des objets, touches de 1 à 8 pour l’inventaire et y’a même un mode plein écran avec la touche F pour les puristes qui veulent l’expérience immersive complète.

Voilà, si vous voulez découvrir un petit bout d’histoire du jeu vidéo indé et voir ce que Notch était capable de pondre en 48 heures bien avant que Minecraft ne devienne le mastodonte qu’on connaît, foncez jouer à Prelude of the Chambered: Reborn .

Merci à Angelo d’avoir partagé sa création lors de mon live sur Twitch .

  • ✇Korben
  • ScribeOCR - Corrigez vos erreurs d'OCR directement dans le navigateur (en local)
    Y’a plein d’images et de scans en PDF sur le net ou sur votre disque dur, qui sont difficilement exploitable / indexables parce que la reconnaissance de caractères n’a pas bien fonctionné. L’OCR automatique a par exemple transformé un mot-clé en charabia et c’est illisible. Du coup, ce passage est perdu dans les limbes et impossible de le retrouver avec une simple recherche textuelle. C’est moche. Faut dire que le problème est réel car quand on numérise des millions de livres avec un OCR à 90% d

ScribeOCR - Corrigez vos erreurs d'OCR directement dans le navigateur (en local)

Par : Korben
14 novembre 2025 à 06:23

Y’a plein d’images et de scans en PDF sur le net ou sur votre disque dur, qui sont difficilement exploitable / indexables parce que la reconnaissance de caractères n’a pas bien fonctionné. L’OCR automatique a par exemple transformé un mot-clé en charabia et c’est illisible. Du coup, ce passage est perdu dans les limbes et impossible de le retrouver avec une simple recherche textuelle. C’est moche.

Faut dire que le problème est réel car quand on numérise des millions de livres avec un OCR à 90% de précision, ça a l’air génial, sauf que les 10% d’erreurs ne sont pas aléatoires. C’est toujours les mêmes confusions qui reviennent : “A” qui devient “H”, “C” qui devient “G”, “22” qui se transforme en “55”. Et pour les documents historiques avec des polices anciennes, c’est encore pire.

Heureusement, il existe un outil gratuit et open source qui tourne dans votre navigateur et qui va vous permettre de corriger ces milliers d’erreurs OCR sans envoyer vos docs sur les serveurs de Google, Microsoft ou je ne sais quoi d’autre. Cela s’appelle ScribeOCR et vous allez l’adorer !

Pourquoi ? Hé bien parce que c’est un éditeur d’OCR open-source qui tourne à 100% dans votre navigateur, donc aucune donnée n’est envoyée sur le net et parce qu’il est capable de corriger toutes les erreurs efficacement ! L’interface affiche le texte OCRisé par-dessus l’image source, comme ça, vous voyez immédiatement où sont les problèmes et vous corrigez tout ça en série.

Et surtout ScribeOCR génère une police custom pour chaque document. Ça vous laisse garder l’apparence originale du doc, tout en ayant un texte parfaitement indexable pour des recherches par exemple. Vous obtenez ainsi un PDF qui ressemble au document d’origine mais où chaque mot est cliquable et cherchable. Bref, c’est super pratique si vous numérisez des archives ou des vieux bouquins.

L’outil supporte plusieurs moteurs OCR dont Tesseract LSTM et Legacy et vous pouvez ajuster les paramètres de reconnaissance selon le type de document : vitesse, qualité, langue…etc. Y’a même des options avancées pour le debug et l’optimisation des polices.

L’outil permet donc de créer des PDF recherchables à partir de scans (c’est le cas classique) mais également de corriger des données OCR existantes, y compris les fichiers HOCR de Tesseract. Et pour numériser complètement des documents ou livres anciens, l’interface de correction vous aidera à faire de l’excellent travail !

Le projet est open-source (licence AGPL-3.0) , ce qui veut dire que vous pouvez l’auto-héberger si vous voulez. Ainsi, pour l’installer en local, c’est très simple :

git clone --recursive https://github.com/scribeocr/scribeocr.git
cd scribeocr
npm i
npx http-server

Mais si vous voulez juste tester, y’a une démo sur scribeocr.com . Vous uploadez votre fichier, vous choisissez votre langue et votre moteur OCR, et hop c’est parti mon kiki.

Et pour les sorties, vous avez le choix : PDF, DOCX, HTML et d’autres formats. Vous pouvez même ajuster les paramètres d’export selon vos besoins. Auto-rotation, optimisation de police, tout est configurable !

Bref, au final ScribeOCR répare ces angles morts bien relou de la numérisation massive de documents sans que vous ayez à sacrifier votre vie privée !

Et ça c’est cool !

  • ✇Korben
  • P2P Media Loader - Le retour discret de BitTorrent dans votre navigateur
    BitTorrent c’était le diable dans les années 2000. Y’a eu des procès, des fermetures de trackers, et une guerre totale contre le piratage . Mais ça reste quand même une belle techno, notamment pour certaines plateformes de streaming un peu niche et solutions d’entreprise qui s’en servent discrètement afin d’économiser des millions en frais de CDN. Car oui, avec le P2P, c’est vous qui payez la bande passante (en partie) ^^. P2P Media Loader , c’est son nom est donc une lib JavaScript open source

P2P Media Loader - Le retour discret de BitTorrent dans votre navigateur

Par : Korben
13 novembre 2025 à 10:22

BitTorrent c’était le diable dans les années 2000. Y’a eu des procès, des fermetures de trackers, et une guerre totale contre le piratage . Mais ça reste quand même une belle techno, notamment pour certaines plateformes de streaming un peu niche et solutions d’entreprise qui s’en servent discrètement afin d’économiser des millions en frais de CDN.

Car oui, avec le P2P, c’est vous qui payez la bande passante (en partie) ^^.

P2P Media Loader , c’est son nom est donc une lib JavaScript open source qui utilise WebRTC pour faire du streaming vidéo peer-to-peer directement dans votre browser. Vous regardez une vidéo, votre navigateur se connecte à d’autres viewers et vous échangez des segments vidéo entre vous. En gros, c’est comme BitTorrent, mais en version HTML5.

P2P Media Loader est donc la solution parfait pour réduire les coûts de bande passante des plateformes de streaming. Et tout ça de manière totalement transparente !

Techniquement, ça repose donc sur WebRTC et des trackers (comme BitTorrent) qui permettent aux navigateurs de se trouver entre eux ( y’a une démo ici ). Le projet utilise le protocole de signalisation de WebTorrent, ce qui veut dire que vous pouvez utiliser des trackers publics pour débuter, ou installer votre propre tracker si vous voulez gérer des gros volumes.

Et là, ça devient vraiment intéressant niveau scalabilité car avec un petit VPS à 3,50 €/mois et le tracker wt-tracker , vous pouvez gérer jusqu’à 20 000 viewers en simultané. Et si vous passez sur Aquatic (un tracker écrit en Rust), un serveur dédié 8 cœurs à 10-30€/mois peut tenir une charge de 100 000 viewers en simultané. Et si vous êtes vraiment radin (coucou les Auvergnats), Oracle Cloud offre un tier gratuit avec 4 cœurs ARM et 24 Go de RAM qui peut gérer des pics jusqu’à 100k peers sans rien débourser.

Et pour aller au-delà du million de viewers, il faudra passer sur du sharding (découpage en plusieurs trackers) avec différentes stratégies… Soit par contenu, soit par région géographique, soit par hash… Bref, des techniques classiques de distribution de charge, mais appliquées au P2P.

Le truc cool, je trouve c’est que ça fonctionne aussi bien pour du live que pour de la VOD, et même sur les apps mobiles iOS et Android. D’ailleurs, des projets comme PeerTube l’utilisent déjà pour réduire leurs coûts d’hébergement.

Bref, votre browser devient un mini-CDN en tout discrétion et ça permet aux personnes qui montent des infras de streaming, d’économiser de la thune.

Merci à Letsar pour le partage !

  • ✇Korben
  • ChronoFrame - Reprenez le contrôle de vos photos
    Bon, si vous me lisez depuis loooongtemps, vous connaissez forcément le risque que représentent les métadonnées contenues dans les images que vous partagez en ligne. Oui, je parle bien des fameux EXIFs qui contiennent aussi bien le modèle d’appareil photo utilisé, l’heure précise à la seconde près où vous avez pris le cliché, les réglages de l’objectif, parfois même l’altitude, et surtout les coordonnées GPS exactes de l’endroit où vous étiez. Et toutes ces données, si vous mettez vos photos

ChronoFrame - Reprenez le contrôle de vos photos

Par : Korben
6 novembre 2025 à 12:00

Bon, si vous me lisez depuis loooongtemps, vous connaissez forcément le risque que représentent les métadonnées contenues dans les images que vous partagez en ligne. Oui, je parle bien des fameux EXIFs qui contiennent aussi bien le modèle d’appareil photo utilisé, l’heure précise à la seconde près où vous avez pris le cliché, les réglages de l’objectif, parfois même l’altitude, et surtout les coordonnées GPS exactes de l’endroit où vous étiez.

Et toutes ces données, si vous mettez vos photos en ligne par exemple, chez Google ou Apple, et bien eux les récupèrent et les utilisent. C’est dommage, surtout que ce sont des données qui sont quand même utiles pour peu qu’on garde ça en local sur sa machine.

Alors que faire ?

Hé bien, il existe un logiciel open source sous licence MIT qui s’appelle ChronoFrame . C’est une galerie photo que vous pouvez héberger vous-même, qui va parser automatiquement toutes les données exif de vos clichés, extraire la géolocalisation, faire du reverse géocoding pour identifier le lieu exact et afficher tout ça sur une espèce de carte interactive sur laquelle vous pouvez naviguer pour revoir vos souvenirs de voyage.

En gros c’est comme Google Photo sauf que c’est vous qui gérez vos données et vous contrôlez qui accède à quoi.

L’intérêt de ChronoFrame, c’est qu’il rend visible l’invisible. Vous uploadez une image, ChronoFrame lit les métadonnées, extrait les coordonnées GPS si elles existent, et lance un appel à l’API Mapbox ou MapLibre pour faire du reverse geocoding. Ça, ça veut dire transformer des coordonnées GPS (48.8584, 2.2945) en adresse lisible (“Tour Eiffel, Paris, France”).

Et surtout, ChronoFrame supporte les Live Photos d’Apple ET les Motion Photos de Google. La génération de miniatures, quand à elle, utilise ThumbHash , un algorithme de placeholder ultra-compact créé par Evan Wallace (cofondateur de Figma). Ainsi au lieu de générer plusieurs tailles de miniatures (100x100, 200x200, 400x400…etc), ThumbHash encode une version floue de l’image dans moins de 100 bytes et comme ça, les vignettes se chargent instantanément, et l’affichage est ensuite progressif (flou -> net) jusqu’à ce que l’image full résolution arrive.

L’interface est bien sûr responsive, supporte le touch et la navigation par gestes, et donne une expérience proche d’une app native. Pour la déployer, vous devez créer un fichier .env avec vos variables d’environnement (email admin, mot de passe, provider de stockage, token Mapbox…etc), vous lancez docker pull ghcr.io/hoshinosuzumi/chronoframe:latest, et hop, ça tourne direct.

Le guide de démarrage détaille tout le process et ça vous prendra 5 minutes chrono.

Voici un exemple de configuration minimale :

CFRAME_ADMIN_EMAIL=admin@chronoframe.com
CFRAME_ADMIN_PASSWORD=VotreMotDePasse
NUXT_PUBLIC_MAP_PROVIDER=maplibre
NUXT_PUBLIC_MAP_MAPLIBRE_TOKEN=votre_token_maptiler
NUXT_STORAGE_PROVIDER=local
NUXT_PROVIDER_LOCAL_PATH=/app/data/storage
NUXT_SESSION_PASSWORD=$(openssl rand -base64 32)

Vous pouvez aussi utiliser S3 au lieu du stockage local :

NUXT_STORAGE_PROVIDER=s3
NUXT_PROVIDER_S3_ENDPOINT=https://s3.amazonaws.com
NUXT_PROVIDER_S3_BUCKET=votre-bucket
NUXT_PROVIDER_S3_REGION=eu-west-1
NUXT_PROVIDER_S3_ACCESS_KEY_ID=votre_key
NUXT_PROVIDER_S3_SECRET_ACCESS_KEY=votre_secret

Une fois lancé, vous accédez à l’interface web, vous vous loggez avec votre email/password (ou via GitHub OAuth si configuré), vous allez dans /dashboard, et vous uploadez vos photos.

Voilà, j’ai trouvé ça cool parce que reprendre le contrôle de ses photos, ça veut pas forcément dire supprimer les métadonnées comme je l’ai souvent conseillé. Ça peut aussi vouloir dire décider de qui a accès à ces métadonnées. Car ça reste des informations précieuses et c’est quand même dommage de s’en priver donc autant héberger soi-même ses photos, comme ça vous pouvez les exploiter comme bon vous semble.

Notez que ChronoFrame ne vous aidera pas à supprimer vos EXIFs, mais il existe des outils pour faire ça comme ExifTool ou mat2 . Vous pouvez aussi scripter ça avant d’uploader quoique ce soit sur les réseaux sociaux mais la plupart des gens ne le font pas parce qu’ils ne savent même pas que les données sont là. Je sais aussi que des sites comme X.com retirent certaines des méta données avant de diffuser votre photo publiquement mais ça ne veut pas dire qu’eux ne les exploitent pas en amont pour vous balancer de la pub par exemple…

Voilà, si vous voulez voir ce que ça donne, il y a un site de démo où vous pouvez voir l’interface en action !

Merci à Lorenper pour le partage de cette appli !

  • ✇Korben
  • ertdfgcvb - Du Live Coding 100% ASCII
    Alors si vous cherchez un truc pour procrastiner intelligemment ce soir ou demain, j’ai exactement ce qu’il vous faut. Play.ertdfgcvb.xyz , c’est un terrain de jeu ASCII interactif où vous pouvez coder des animations directement dans votre navigateur. Et c’est hyper hypnotisant, vous allez voir ! Derrière ce nom imprononçable “ertdfgcvb” se cache Andreas Gysin , un artiste suisse basé à Lugano qui fait du code et du design et son playground ASCII, c’est une interface épurée au maximum composée d

ertdfgcvb - Du Live Coding 100% ASCII

Par : Korben
23 septembre 2025 à 17:42

Alors si vous cherchez un truc pour procrastiner intelligemment ce soir ou demain, j’ai exactement ce qu’il vous faut. Play.ertdfgcvb.xyz , c’est un terrain de jeu ASCII interactif où vous pouvez coder des animations directement dans votre navigateur. Et c’est hyper hypnotisant, vous allez voir !

Derrière ce nom imprononçable “ertdfgcvb” se cache Andreas Gysin , un artiste suisse basé à Lugano qui fait du code et du design et son playground ASCII, c’est une interface épurée au maximum composée d’un éditeur de code à gauche, d’une fenêtre de prévisualisation à droite, et c’est tout. Pas de fioritures, pas de boutons partout, juste l’essentiel. Vous tapez Cmd+Enter (ou Ctrl+Enter sur PC) et votre code s’exécute en temps réel.

Le principe de son code en live est inspiré des fragment shaders GLSL , sauf qu’au lieu de pixels colorés, vous manipulez des caractères. Vous avez accès à des fonctions spécifiques telle que boot() qui s’exécute une fois au démarrage, pre() pour préparer vos données, main() qui est appelée pour chaque cellule de l’écran, et post() pour les modifications finales.

Voici un exemple simple en javascript pour comprendre le délire :

export function main(coord, context){ return String.fromCharCode((coord.y + coord.x) % 32 + 65) }

Ce bout de code génère un pattern de lettres qui change selon la position X et Y sur l’écran. C’est tout con mais c’est beau.

Le playground propose également des dizaines d’exemples triés par catégorie. Vous avez les basiques pour apprendre, des démos plus complexes comme “Doom Flame” qui recrée l’effet de flamme du jeu Doom en ASCII, ou encore “Donut” qui fait tourner un donut en 3D avec juste des caractères. Y’a même une section “camera” où vous pouvez manipuler votre webcam et la transformer en ASCII art en temps réel.

D’après le GitHub du projet , Andreas a créé ça comme un hommage à tous les artistes, poètes et designers qui utilisent le texte comme medium. C’est un projet minimaliste, avec presque pas d’interface, juste le code et le résultat. Même les marges et les numéros de ligne ont été virés.

Et tout ça tourne de manière fluide dans le navigateur et pour les dev qui veulent comprendre comment ça marche sous le capot, tout le code source est sur GitHub, et vous pouvez vraiment faire des trucs de ouf avec, par exemple des fractales, des simulations de fluides…etc. C’est complètement barré.

Mais pour commencer, le plus simple c’est d’explorer les exemples. Le classique “10 PRINT” recrée le fameux one-liner du Commodore 64 qui génère un labyrinthe infini. Les exemples SDF (Signed Distance Fields) montrent comment faire de la 3D avec des maths et des caractères. Et si vous êtes chaud, vous pouvez lui envoyer vos propres créations qui rejoindront la section “contributed”.

Andreas enseigne ces techniques dans ses cours, et apparemment les étudiants adorent. C’est vrai que c’est une approche super pédagogique du creative coding où on se prend pas la tête avec du WebGL ou des frameworks complexes… Non, faut juste pondre du code simple qui produit des résultats visuels immédiats.

Bref, play.ertdfgcvb.xyz c’est le genre de site qu’on bookmark et qu’on ressort quand on veut se vider la tête en codant des trucs rigolos. C’est gratuit, c’est open source, et c’est une belle démonstration que l’art et le code peuvent cohabiter sans avoir besoin de millions de polygones et de shaders complexes.

Un grand merci à Lorenper pour m’avoir fait découvrir cette pépite !

  • ✇Korben
  • Obs.js transforme votre site en un caméléon qui s'adapte à chaque visiteur
    Alors rien à voir avec le logiciel de streaming, mais sachez que Harry Roberts, le consultant en performance web derrière CSS Wizardry (et accessoirement un mec qui a bossé avec Google, la BBC et l’ONU), vient de sortir Obs.js . L’idée de ce truc, c’est de transformer votre site web en véritable caméléon. Au lieu de servir la même expérience à tout le monde, la bibliothèque va détecter en temps réel les conditions de navigation de chaque visiteur. Batterie presque vide ? Connexion 2G pourrie ? L

Obs.js transforme votre site en un caméléon qui s'adapte à chaque visiteur

Par : Korben
3 septembre 2025 à 15:09

Alors rien à voir avec le logiciel de streaming, mais sachez que Harry Roberts, le consultant en performance web derrière CSS Wizardry (et accessoirement un mec qui a bossé avec Google, la BBC et l’ONU), vient de sortir Obs.js .

L’idée de ce truc, c’est de transformer votre site web en véritable caméléon. Au lieu de servir la même expérience à tout le monde, la bibliothèque va détecter en temps réel les conditions de navigation de chaque visiteur. Batterie presque vide ? Connexion 2G pourrie ? Le site s’adapte automatiquement.

Pour cela, Roberts utilise des APIs natives du navigateur qui existent depuis des années mais que presque personne n’exploite vraiment. La Battery Status API et la Network Information API sont là, dans Chrome et consorts, à attendre qu’on leur trouve une utilité. Et voilà, Obs.js débarque et les combine de façon intelligente pour créer quelque chose de vraiment utile.

Mais alors concrètement, ça donne quoi ?

Et bien ce script ajoute des classes CSS directement sur votre balise <html>, comme ça…

<html class="has-latency-low
 has-bandwidth-high
 has-battery-charging
 has-connection-capability-strong
 has-conservation-preference-neutral
 has-delivery-mode-rich">

Et quand vous avez un visiteur avec 5% de batterie, hop, une classe .has-battery-critical apparaît.

.has-battery-critical * {
 animation: none !important;
 transition: none !important;
}

Vous pouvez alors désactiver toutes les animations et transitions avec une simple règle CSS. Plus besoin de JavaScript complexe ou de détection côté serveur. C’est propre !

Mais ça va bien plus loin que la batterie puisqu’Obs.js catégorise aussi la qualité de la connexion de vos visiteurs. Une connexion forte, modérée ou faible, et votre site peut s’adapter en conséquence. Vous pouvez ainsi servir des images haute résolution aux utilisateurs sur fibre, et des versions compressées à ceux qui galèrent en 3G Free ^^ dans le métro.

body {
 background-image: url('banner-4k.jpg');
}

.has-delivery-mode-lite body {
 background-image: url('banner-optimized.jpg');
}

Je trouve cette approche très progressive car si le navigateur ne supporte pas ces APIs ( Safari ne supporte ni Battery ni Network Information API ), le site peut continuer à fonctionner normalement. Roberts recommande d’ailleurs de placer le script directement en inline dans le <head> de votre page, avant tout autre script. Il précise cela pour que la détection se fasse le plus tôt possible et que les classes soient disponibles dès le premier render.

De plus, l’objet window.obs exposé par la bibliothèque vous donne accès à toutes les métriques collectées. Vous pouvez ainsi savoir si le Data Saver est activé, si l’appareil est branché sur secteur, ou même détecter les changements de réseau en temps réel. Imaginez les possibilités pour une progressive web app qui doit gérer des modes offline !

En plus, ce type d’optimisation adaptative peut réduire significativement la consommation de données et améliorer les temps de chargement. Il est possible en implémentant cela et en faisant les aménagements nécessaire, d’économiser jusqu’à 40% de bande passante pour les utilisateurs ayant des connexions lentes. C’est énorme quand on sait que chaque seconde de chargement supplémentaire peut faire perdre 20% de conversions.

La version actuelle est déjà fonctionnelle et disponible sous licence MIT et le support navigateur est principalement orienté Chromium pour l’instant, mais c’est déjà une base solide pour commencer à expérimenter.

Et connaissant le profil de Roberts (le mec a littéralement écrit le livre sur les performances CSS), j’imagine qu’on peut s’attendre à ce que le projet évolue rapidement…

Pour l’implémenter, c’est vraiment simple. Vous récupérez le script sur GitHub, vous le minifiez si nécessaire, et vous le collez dans le head de votre HTML. Pas de npm, pas de webpack, pas de configuration compliquée. C’est à l’ancienne !

Voilà, je me suis dis que pour les développeurs qui me lisent, ça peut vous permettre par exemple d’adapter votre stratégie de lazy loading, de modifier la fréquence de vos appels API, ou même de changer complètement l’architecture de votre app selon le contexte. Vous pourriez par exemple désactiver le polling temps réel des utilisateurs qui ont une petite connexion, et le passer en mode manuel.

Bref, si vous faites du développement web et que vous vous souciez un minimum de l’expérience utilisateur, Obs.js mérite un petit coup d’oeil !

  • ✇Korben
  • Une web machine pour fabriquer des autocollants holographiques
    Vous vous souvenez de ces autocollants holographiques qu’on trouvait à tous les coins de rue dans les années 90 ? Mais siiiii, ces machins brillants qui changeaient de couleur selon l’angle de vue et qui scintillaient de mille feux grâce à leurs petites paillettes métalliques ? Eh bien, un développeur a réussi à reproduire cet effet en WebGL et en a fait un générateur. Et je dois dire que le résultat est plutôt bluffant. Le projet en question part d’une observation simple qui est que ces autoc

Une web machine pour fabriquer des autocollants holographiques

Par : Korben
2 septembre 2025 à 17:54

Vous vous souvenez de ces autocollants holographiques qu’on trouvait à tous les coins de rue dans les années 90 ? Mais siiiii, ces machins brillants qui changeaient de couleur selon l’angle de vue et qui scintillaient de mille feux grâce à leurs petites paillettes métalliques ? Eh bien, un développeur a réussi à reproduire cet effet en WebGL et en a fait un générateur. Et je dois dire que le résultat est plutôt bluffant.

Le projet en question part d’une observation simple qui est que ces autocollants jouent sur deux phénomènes visuels. D’abord l’iridescence, ce changement de couleur selon l’angle de vue qui rappelle les bulles de savon ou les ailes de papillon. Et ensuite ces minuscules paillettes métalliques qui captent la lumière et créent ces points brillants qui semblent danser à la surface.

Ce qui est vraiment cool du coup, c’est que le développeur a réussi à reproduire ces effets sans simulation physique complexe. Pas de calculs d’interférence de films minces, pas de modélisation de microfacettes métalliques. À la place, une approche purement visuelle qui approxime le rendu final avec des techniques de shader astucieuses.

Le vertex shader gère en réalité un effet de “pelage” de la géométrie en utilisant la formule de rotation de Rodrigues . Pour ceux qui ne connaissent pas, c’est une méthode mathématique élégante pour faire tourner des vecteurs dans l’espace 3D autour d’un axe arbitraire. Ici, elle permet de simuler le décollage progressif de l’autocollant, avec des calculs d’occlusion ambiante et d’intensité de pelage qui donnent cette impression de matière qui se décolle vraiment.

Du côté du fragment shader, c’est là que la magie opère vraiment. Le bruit procédural génère ces fameuses paillettes métalliques. Ainsi au lieu de placer manuellement des milliers de petits points brillants, l’algorithme crée des patches aléatoires de luminosité qui ressemblent à s’y méprendre à des flocons métalliques qui accrochent la lumière. L’échantillonnage de la carte d’environnement ajoute les reflets réalistes, pendant que le calcul d’iridescence utilise des ondes sinusoïdales pour décaler la teinte en fonction de l’angle de vue.

L’effet Fresnel, ce phénomène qui rend les surfaces plus réfléchissantes sur les bords, complète l’illusion. C’est ce qui donne cette impression que l’autocollant “s’allume” différemment selon comment on le regarde. Enfin, le shader combine tout ça avec un contrôle fin de la réflectivité métallique, la taille des paillettes, leur intensité, et même le rendu de la face arrière avec des ombres.

En plus, le dev a tout mis sous licence Creative Commons BY-NC 4.0 donc vous pouvez donc l’utiliser, le modifier, l’adapter à vos projets, tant que c’est non-commercial et que vous créditez l’auteur.

Sérieux, qui aurait cru qu’un jour on pourrait recréer la magie des autocollants holographiques de notre enfance directement dans le navigateur ?

Source

  • ✇Korben
  • VimMaster - Un jeu gratuit pour apprendre enfin à utiliser Vim !
    Combien d’entre vous ont déjà ouvert Vim par accident en suivant un tuto et se sont retrouvés coincés dedans ? Moi, j’ai dû passer une bonne dizaine de minutes à tâtonner pour trouver une porte de sortie la première fois et après je suis passé sous “nano”. Heureusement, un génie du nom de renzorlive a conçu VimMaster , un jeu gratuit qui transforme cet apprentissage en une aventure ludique des plus passionnantes. La beauté de VimMaster c’est qu’au lieu de vous assommer avec un pavé de 500 pages

VimMaster - Un jeu gratuit pour apprendre enfin à utiliser Vim !

Par : Korben
2 septembre 2025 à 12:03

Combien d’entre vous ont déjà ouvert Vim par accident en suivant un tuto et se sont retrouvés coincés dedans ? Moi, j’ai dû passer une bonne dizaine de minutes à tâtonner pour trouver une porte de sortie la première fois et après je suis passé sous “nano”. Heureusement, un génie du nom de renzorlive a conçu VimMaster , un jeu gratuit qui transforme cet apprentissage en une aventure ludique des plus passionnantes.

La beauté de VimMaster c’est qu’au lieu de vous assommer avec un pavé de 500 pages de documentation à la con ou de vous forcer à mémoriser des commandes abstraites, il vous fait tout simplement… jouer. Ce jeu comprend donc 16 niveaux progressifs et chaque défi vous permet de maîtriser une nouvelle compétence. Le petit plus c’est que vous pouvez y jouer directement dans votre navigateur, sans avoir à installer quoi que ce soit.

C’est du pur HTML/CSS/JavaScript, pas de framework à la mode, pas de dépendances npm lourdes comme un éléphant. Juste du code propre qui fait le job et au niveau du gameplay, c’est bien pensé. Car contrairement à d’autres outils qui se contentent de vérifier si vous appuyez sur les bonnes touches, VimMaster valide le résultat de chacune de vos actions.

Vous pouvez même arriver à un résultat identique et valide de différentes manières, comme dans le vrai Vim. Il y a même un mode Challenge chronométré pour ceux qui veulent se la jouer speedrun, et un Cheat Mode accessible avec Ctrl+/ pour les moments de désespoir.

Parmi les alternatives disponibles, on a Vim Adventures qui devient payant après quelques niveaux, VimGenius qui propose des flashcards chronométrées, ou VimHero avec ses tutoriels interactifs. Mais VimMaster se démarque surtout par sa simplicité et sa gratuité totale.

En plus, le système de progression est bien ficelé. Vous avez un profil avec des achievements, des badges à débloquer, et même la possibilité d’exporter/importer votre progression. Les cartes d’achievements sont générées dynamiquement en Canvas API et vous pouvez les partager sur les réseaux sociaux pour vous la raconter un petit peu.

Bref, si vous avez toujours voulu apprendre Vim sans vous arracher les cheveux, c’est le bon moment !

  • ✇Korben
  • LocalSite - Créez des sites web avec l'IA 100% en local sur votre machine
    Y’a quelques mois, je me suis amusé à reprendre le projet DeepSite d’Enzostvs et à le transformer complètement pour fonctionner en 100% local. J’ai baptisé ça LocalSite , et ça permet en gros de générer des pages web ou des éléments HTML / CSS / JS à l’aide d’une IA mais en local. Ça s’appuie donc sur Ollama pour faire tourner les modèles d’IA directement sur votre ordinateur, comme ça, pas de connexion cloud, pas d’abonnement à payer, pas de données qui partent on ne sait où en Chine ou ailleur

LocalSite - Créez des sites web avec l'IA 100% en local sur votre machine

Par : Korben
29 août 2025 à 09:30

Y’a quelques mois, je me suis amusé à reprendre le projet DeepSite d’Enzostvs et à le transformer complètement pour fonctionner en 100% local. J’ai baptisé ça LocalSite , et ça permet en gros de générer des pages web ou des éléments HTML / CSS / JS à l’aide d’une IA mais en local.

Ça s’appuie donc sur Ollama pour faire tourner les modèles d’IA directement sur votre ordinateur, comme ça, pas de connexion cloud, pas d’abonnement à payer, pas de données qui partent on ne sait où en Chine ou ailleurs. Vous tapez une description de ce que vous voulez, vous sélectionnez un modèle Ollama, et hop, votre site web se génère sous vos yeux.

L’installation est assez simple. Il vous faut d’abord Ollama installé sur votre machine et ensuite, vous récupérez un modèle, par exemple deepseek-r1:7b avec la commande

ollama pull deepseek-r1:7b.

Et une fois Ollama lancé avec

ollama serve

il ne reste plus qu’à installer LocalSite avec npm :

git clone https://github.com/Korben00/LocalSite.git
npm instal
npm run dev

Ensuite, direction localhost:3001 et c’est parti.

Pour l’interface, vous avez donc un éditeur Monaco intégré (le même que dans VS Code), une preview en temps réel qui s’adapte aux différentes tailles d’écran (desktop, tablette, mobile), et la possibilité de basculer entre génération et édition manuelle du code. C’est super pratique pour peaufiner le résultat une fois que l’IA a fait le gros du travail.

Pour ceux qui se demandent quels modèles utiliser, d’après les benchmarks 2025 , CodeLlama 34B reste une référence pour la génération de code HTML/CSS/JavaScript. Mais si votre machine est plus modeste, les versions 7B ou 13B font déjà très bien le job. Qwen2.5-Coder est aussi une excellente alternative, surtout si vous voulez intégrer du code plus complexe dans vos pages. Vous pouvez aussi tenter avec des modèles “Thinking” comme GPT OSS si ça vous chauffe…

Bref, là où DeepSite original nécessite obligatoirement une connexion à Hugging Face et utilise les serveurs API de DeepSeek (donc ça coûte aussi des sous), mon petit LocalSite fait tout en local. Vos données restent chez vous, vous pouvez bosser offline, et surtout, pas de limite d’utilisation. Vous pouvez donc générer autant de sites que vous voulez, tester différents modèles, expérimenter sans compter comme dirait Macron.

L’aspect vie privée n’est pas négligeable non plus car ça permet de prototyper rapidement, et avoir une solution 100% locale évite pas mal de questions juridiques sur la confidentialité des données.

Techniquement, l’architecture repose sur Node.js côté serveur et communique avec Ollama via son API locale. Le code généré est du pur HTML/CSS/JavaScript vanilla, donc compatible partout. Et vous pouvez directement copier-coller le résultat ou télécharger le projet HTML complet (j’ai ajouté un import / export de projets zip). Pas de framework lourd, pas de dépendances obscures, juste du code web standard.

Pour les développeurs qui veulent pousser plus loin, le code source est bien sûr disponible et modifiable. Vous pouvez ajouter vos propres templates, personnaliser les prompts système, ou même intégrer d’autres modèles compatibles avec Ollama.

Il vous faudra quand même un minimum de RAM pour faire tourner les modèles (comptez 8 Go pour les modèles 7B, 16 Go pour les 13B, et 32 Go pour les gros modèles 33B+) mais vu les capacités de génération et l’indépendance totale vis-à-vis du cloud, ça vaut le coup surtout que les modèles dispo dans Ollama progressent rapidement et deviennent de plus en plus optimisés. Je pense par exemple à GPT-OSS.

Bref, j’ai pris une idée cool (DeepSite), et je l’ai réadapté à l’aide de Claude Code et de mes maigres connaissances, pour la rendre accessible et respectueuse de la vie privée et du coup, je trouve ça encore plus cool ^^. Par contre, je suis un garçon assez occupé et je ne suis pas mainteneur de projet open source donc si vous voulez des modifs dedans ou si vous voyez des bugs, faudra vous y coller vous-même ^^.

Si ça vous dit de tester, c’est par ici.

  • ✇Korben
  • MathJax 4.0 - Le boss des maths sur le Web
    Vous savez ce qui m’a plu en découvrant aujourd’hui MathJax 4.0 ? Ce n’est pas tant les nouvelles fonctionnalités (pourtant impressionnantes) que le chemin parcouru depuis 2009. Car il y a 15 ans, afficher une simple équation mathématique sur une page web relevait du parcours du combattant et aujourd’hui, avec MathJax c’est tout ce qu’il y a de plus trivial. Alors pour ceux qui ne connaissent pas, MathJax c’est LE moteur JavaScript open-source qui permet d’afficher des équations mathématiques

MathJax 4.0 - Le boss des maths sur le Web

Par : Korben
28 août 2025 à 18:38

Vous savez ce qui m’a plu en découvrant aujourd’hui MathJax 4.0 ?

Ce n’est pas tant les nouvelles fonctionnalités (pourtant impressionnantes) que le chemin parcouru depuis 2009. Car il y a 15 ans, afficher une simple équation mathématique sur une page web relevait du parcours du combattant et aujourd’hui, avec MathJax c’est tout ce qu’il y a de plus trivial.

Alors pour ceux qui ne connaissent pas, MathJax c’est LE moteur JavaScript open-source qui permet d’afficher des équations mathématiques sur n’importe quel navigateur. Sans plugin, sans galère, juste du JS pur.

Et cette v4 règle enfin des problèmes qu’on traîne depuis des années. Prenez par exemple le retour à la ligne automatique… Jusqu’à présent, si vous aviez une équation trop longue, tant pis pour votre mise en page. Et bien avec la v4, MathJax gère maintenant le line-breaking intelligent, aussi bien pour les équations en ligne que pour celles en bloc.

Les performances ont aussi pris un coup de boost considérable grâce à l’équipe qui a déplacé la génération de la synthèse vocale dans des web workers séparés. Concrètement, ça veut dire que même sur des pages bourrées d’équations complexes, votre navigateur reste réactif. Fini les freezes quand vous chargez un document de 200 pages avec des maths partout.

Côté typographie, c’est également du très lourd puisque MathJax 4.0 introduit un nouveau système de fonts par défaut avec une couverture de caractères bien plus étendue. Vous pouvez maintenant choisir parmi plusieurs polices mathématiques selon vos besoins.

L’intégration HTML dans les expressions LaTeX et MathML, sont également très cool car ça permet d’inclure des éléments HTML directement dans vos formules mathématiques. Des liens cliquables dans une équation, des tooltips interactifs, des animations… Les possibilités sont énormes pour créer des contenus éducatifs vraiment engageants.

Pour l’utiliser, il vous suffit d’inclure l’appel vers ce JS dans votre page HTML :

<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@4/tex-mml-chtml.js"></script>

Puis d’aller lire la documentation ici pour apprendre à l’utiliser.

Voici un exemple d’intégration :

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <meta name="viewport" content="width=device-width">
 <title>MathJax example</title>
 <script id="MathJax-script" async
 src="https://cdn.jsdelivr.net/npm/mathjax@4/tex-mml-chtml.js">
 </script>
</head>
<body>

 When \(a \ne 0\), there are two solutions to \(ax^2 + bx + c = 0\) and they are
 \[x = {-b \pm \sqrt{b^2-4ac} \over 2a}.\]

</body>
</html>

Et voici ce que c’est censé rendre visuellement :

Et si vous avez un Wordpress, y’a même des plugins pour ce truc .

L’accessibilité n’est pas en reste avec un explorateur d’expressions mis à jour qui s’active par défaut comme ça, les utilisateurs de lecteurs d’écran peuvent naviguer dans les formules complexes avec une bien meilleure ergonomie. Ça permet de rendre les maths accessibles à tous.

Ah et j’allais oublier, MathJax 4.0 est maintenant disponible en modules ES6 en plus des modules CommonJS. Pour les développeurs qui bossent avec des stacks modernes, c’est un vrai plus pour l’intégration et l’optimisation des bundles.

Pour les développeurs de plateformes éducatives, de blogs scientifiques ou de wikis techniques, cette mise à jour va donc considérablement vous simplifier la vie. Plus besoin de bidouiller des solutions custom pour gérer les équations trop longues ou optimiser les performances sur mobile.

Un grand merci à Newa pour la découverte !

  • ✇Korben
  • LumoSprite - Le site qui empêche votre écran de s'endormir
    Vous êtes en train de lire tranquillement un long tuto, et voilà que votre écran s’éteint. Relou, non ? Alors si vous en avez marre de devoir toucher votre souris toutes les 30 secondes pour garder votre écran allumé, j’ai déniché un petit outil sympa qui va vous changer la vie : LumoSprite. Le truc génial avec LumoSprite, c’est que c’est une application web toute simple qui empêche votre écran de s’endormir. Pas besoin d’installer quoi que ce soit, pas de logiciel lourd qui tourne en arrière-pl

LumoSprite - Le site qui empêche votre écran de s'endormir

Par : Korben
5 août 2025 à 11:13

Vous êtes en train de lire tranquillement un long tuto, et voilà que votre écran s’éteint.

Relou, non ?

Alors si vous en avez marre de devoir toucher votre souris toutes les 30 secondes pour garder votre écran allumé, j’ai déniché un petit outil sympa qui va vous changer la vie : LumoSprite.

Le truc génial avec LumoSprite, c’est que c’est une application web toute simple qui empêche votre écran de s’endormir. Pas besoin d’installer quoi que ce soit, pas de logiciel lourd qui tourne en arrière-plan, juste une page web à garder ouverte.

C’est totalement gratuit et ça utilise la fameuse Wake Lock API pour faire sa magie. Pour ceux qui se demandent comment ça marche techniquement, la Screen Wake Lock API c’est une technologie web qui permet aux sites de demander au système de ne pas éteindre l’écran. Cette API est maintenant supportée par tous les navigateurs majeurs (Chrome, Safari, Firefox), ce qui rend l’outil super compatible.

Il suffit donc que votre navigateur supporte JavaScript et la Wake Lock API, et c’est parti. Vous arrivez sur le site, vous activez la fonction, et voilà, votre écran restera allumé tant que l’onglet est ouvert et au premier plan. L’outil propose même plusieurs langues (anglais, chinois, japonais, coréen… Pas de français encore) et différents thèmes pour personnaliser l’expérience.

C’est vraiment pensé pour être accessible à tous et les cas d’usage sont nombreux. Par exemple, vous lisez un livre numérique ou vous suivez une recette de cuisine sans avoir à toucher votre écran avec vos mains pleines de beurre ? Vous présentez quelque chose à distance ? Ou vous surveillez simplement un process au boulot ? Ça répond à tous ces besoins.

Des alternatives comme nosleep.page ou Keep Screen On proposent des fonctionnalités similaires mais LumoSprite se démarque par sa simplicité et son look sympa. Pas de fioritures inutiles non plus et niveau vie privée, c’est nickel puisque tout fonctionne localement dans votre navigateur, et qu’aucune donnée n’est collectée ou envoyée quelque part.

L’outil consomme d’ailleurs moins de 1% des ressources de votre machine, donc pas de souci pour la batterie ou les performances car c’est du JavaScript léger, qui fait juste ce qu’il faut. Après si vous cherchez une solution plus permanente, il existe aussi des extensions navigateur comme Keep Awake pour Chrome ou des solutions système comme PowerToys Awake pour Windows.

Mais franchement, pour un usage ponctuel, LumoSprite fait largement le job sans encombrer votre navigateur d’extensions supplémentaires.

Le succès de ce type d’outils montre bien qu’il y avait un vrai besoin. D’ailleurs, Betty Crocker (le site de cuisine américain) a vu une augmentation de 300% de l’intention d’achat après avoir implémenté la Wake Lock API sur leur site directement. Comme ça, les gens peuvent enfin suivre leurs recettes sans que l’écran s’éteigne toutes les deux minutes ! Pour un site de tuto, c’est peut-être un move pertinent.

Bref, si vous cherchez un moyen simple et efficace de garder votre écran allumé, foncez tester LumoSprite.

  • ✇Korben
  • Memflix – Transformez vos données en vidéos MP4 consultables instantanément
    Ça va, pas trop chaud ? Alors tant mieux, parce que je vais vous faire avoir une petite suée tellement ce truc est cool ! Ça s’appelle Memflix et c’est une bibliothèque JavaScript qui transforme vos documents texte en… fichiers vidéo MP4 ! Oui, vous avez bien lu. Et le plus fou, c’est que vous pouvez ensuite faire des recherches sémantiques ultra-rapides dans ces vidéos. L’idée est tellement simple qu’elle en devient géniale car au lieu de stocker vos données dans une base de données traditionne

Memflix – Transformez vos données en vidéos MP4 consultables instantanément

Par : Korben
27 juin 2025 à 17:08

Ça va, pas trop chaud ? Alors tant mieux, parce que je vais vous faire avoir une petite suée tellement ce truc est cool ! Ça s’appelle Memflix et c’est une bibliothèque JavaScript qui transforme vos documents texte en… fichiers vidéo MP4 ! Oui, vous avez bien lu. Et le plus fou, c’est que vous pouvez ensuite faire des recherches sémantiques ultra-rapides dans ces vidéos.

L’idée est tellement simple qu’elle en devient géniale car au lieu de stocker vos données dans une base de données traditionnelle, Memflix encode tout dans des QR codes qui sont ensuite intégrés frame par frame dans une vidéo. Résultat ? Un stockage 10 fois plus efficace qu’une base de données classique et des recherches qui prennent moins d’une seconde, même sur des millions de chunks de texte.

  • ✇Korben
  • LogTape - La bibliothèque de logging qui libère les devs JS
    Est-ce que j’ajoute des logs pour faciliter le debug, ou est-ce que je laisse mes utilisateurs se débrouiller dans le noir ? C’est le dilemme classique du développeur de libs qui peut soit vous imposer une dépendance de logging que personne n’a demandée, soit vous priver de toutes les informations cruciales. Eh bien, LogTape vient de résoudre ce casse-tête vieux comme le monde (enfin, vieux comme npm) avec une approche qui a la classe, vous allez voir !

LogTape - La bibliothèque de logging qui libère les devs JS

Par : Korben
26 juin 2025 à 07:09

Est-ce que j’ajoute des logs pour faciliter le debug, ou est-ce que je laisse mes utilisateurs se débrouiller dans le noir ?

C’est le dilemme classique du développeur de libs qui peut soit vous imposer une dépendance de logging que personne n’a demandée, soit vous priver de toutes les informations cruciales.

Eh bien, LogTape vient de résoudre ce casse-tête vieux comme le monde (enfin, vieux comme npm) avec une approche qui a la classe, vous allez voir !

  • ✇Korben
  • Miru – Pour mater vos animés préférés tout en douceur
    Aujourd’hui, on part pour un tour dans la matrice du streaming avec Miru, un ovni débarqué tout droit du futur qui combine le meilleur de qBittorrent, Taiga et MPV, le tout condensé dans un pack 100% JavaScript, pour des sessions de streaming d’animés dont vous me direz des nouvelles. Sur Miru, pas de pubs, pas de tracking, pas de collecte de données, c’est du 100% libre avec de la qualité, des téléchargements à la vitesse de la lumière et des releases toutes fraîches. L’outil est plutô

Miru – Pour mater vos animés préférés tout en douceur

Par : Korben
30 juin 2024 à 09:00

Aujourd’hui, on part pour un tour dans la matrice du streaming avec Miru, un ovni débarqué tout droit du futur qui combine le meilleur de qBittorrent, Taiga et MPV, le tout condensé dans un pack 100% JavaScript, pour des sessions de streaming d’animés dont vous me direz des nouvelles.

Sur Miru, pas de pubs, pas de tracking, pas de collecte de données, c’est du 100% libre avec de la qualité, des téléchargements à la vitesse de la lumière et des releases toutes fraîches. L’outil est plutôt joli avec une interface de site de streaming sauf qu’en coulisses, c’est BitTorrent qui turbine avec des fonctionnalités très cools :

  • 🔍 Recherche d’anime par nom, genre, saison, année, format, statut
  • 📺 Visualisation des animes en cours/prévus et ajout/suppression en un clic
  • ✅ Marquage auto des épisodes visionnés
  • 🎞️ Bandes-annonces et previews des animes
  • 🌟 Notation des animes
  • 🔗 Visualisation des animes liés
  • 🌐 Détection auto des releases par torrent RSS
  • 🔎 Recherche d’animes par image
  • 📜 Support complet des sous-titres (VTT, SSA, ASS, SUB, TXT)
  • 🕹️ Raccourcis clavier pour toutes les actions (avance rapide, retour arrière, volume, sous-titres, lecture suivant/précédent, plein écran, picture in picture)
  • 🎮 Compatibilité manette
  • 🖼️ Mode mini-lecteur
  • 🎧 Affichage des infos de lecture
  • 🔑 Prise en charge des touches média
  • 👾 Rich Presence Discord
  • 🖱️ Prévisualisation des miniatures
  • ⏸️ Pause auto si perte de focus
  • ⏯️ Lecture auto de l’épisode suivant
  • 🔊 Support multi-audio
  • 📈 Progression du téléchargement sur la barre de lecture
  • 🗂️ Sélection du dossier de téléchargement
  • 🚦 Contrôle des vitesses d’upload/download
  • 🧩 Support des extensions pour ajouter des sources et trackers

Et c’est également prêt à l’emploi sur AUR et au format Deb pour linux ou avec les .exe et le .dmg pour Windows et macOS. Et bien sûr les sources sont ici.

Évidemment, y’a à boire et à manger sur cet outil donc avant d’attaquer votre binge watching, assurez-vous quand même de regarder uniquement des choses tombées dans le domaine public ou libre de droits. Ce serait dommage de vous faire griller par Hādōpī.

  • ✇Korben
  • WebNN – L’IA s’invite dans votre navigateur avec DirectML
    Ça y est, les amis, l’API WebNN débarque enfin en preview pour les développeurs, et croyez-moi, ça va changer totalement la manière dont on fait tourner de l’IA dans nos navigateurs web !Grâce à cette techno, on va pouvoir profiter de la puissance de nos GPU et autres accélérateurs matériels directement depuis nos pages web, sans avoir à installer le moindre plugin ou logiciel supplémentaire. Concrètement, WebNN est une API JavaScript qui va permettre aux applications web d’exécuter des tâc

WebNN – L’IA s’invite dans votre navigateur avec DirectML

Par : Korben
28 mai 2024 à 14:49

Ça y est, les amis, l’API WebNN débarque enfin en preview pour les développeurs, et croyez-moi, ça va changer totalement la manière dont on fait tourner de l’IA dans nos navigateurs web !Grâce à cette techno, on va pouvoir profiter de la puissance de nos GPU et autres accélérateurs matériels directement depuis nos pages web, sans avoir à installer le moindre plugin ou logiciel supplémentaire.

Concrètement, WebNN est une API JavaScript qui va permettre aux applications web d’exécuter des tâches d’inférence de réseaux neuronaux de manière super efficace, en exploitant à fond les capacités des CPU, GPU et autres processeurs dédiés à l’IA (les fameux NPU et TPU). Fini les calculs qui rament, bonjour la fluidité et la réactivité, même pour les modèles les plus gourmands !

WebNN est complètement agnostique côté matériel et côté modèles. Quel que soit le hardware qu’on a sous le capot (Intel, AMD, NVIDIA, Qualcomm…) et le format des modèles (ONNX, TensorFlow…), cette API va nous permettre de tirer parti un maximum des ressources disponibles, tout ça de manière transparente, sans avoir à se prendre la tête avec des lignes de code spécifiques à chaque plateforme.

Cette API suit un modèle de programmation super simple en deux grandes étapes :

  • 1. La construction du modèle : on utilise l’API MLGraphBuilder pour définir notre réseau de neurones, ses opérations, ses entrées et ses sorties et une fois que c’est fait, on peut le compiler en un graphe exécutable.
  • 2. L’exécution du modèle : maintenant qu’on a notre super graphe optimisé, il ne reste plus qu’à lui envoyer nos données d’entrée, et il va nous fournir ses prédictions et classifications à toute vitesse !

Grâce à WebNN, les tâches d’inférence de machine learning sont accélérées par le matériel local, ce qui offre des performances améliorées et une faible latence, même sans connexion internet ou avec une connexion non fiable. De plus, les données restent sur la machine de l’utilisateur, ce qui préserve ainsi sa vie privée.

WebNN est conçu pour fonctionner avec DirectML sur Windows, lequel assure des performances optimales sur divers matériels, notamment les RTX GPUs de NVIDIA, les Intel Core Ultra avec Intel AI Boost, et les Copilot+ PC avec des NPU Qualcomm Hexagon. Ça ouvre la porte à des applications évoluées de génération d’IA, de reconnaissance d’images, de traitement du langage naturel, et bien d’autres cas d’utilisation tout à fait passionnants.

Si vous voulez vous lancer dès maintenant avec WebNN, je vous conseille fortement de visiter le dépôt WebNN Developer Preview sur GitHub. Vous y trouverez plein de démos et d’exemples de code pour vous familiariser avec l’API et ses fonctionnalités. Par contre, vous devrez télécharger Edge en version Canary et la dernière Insider de Windows 11 puis dans la barre d’URL, tapez edge://flags/ pour pouvoir ensuite activer WebNN.

Pour plus de détails, vous pouvez consulter le tutoriel officiel de Microsoft.

Un grand merci au super neurone NexusSeven pour les sources de cet article !

Source

  • ✇Korben
  • Votre lecteur PDF.js préféré peut exécuter du code malveillant !
    La bibliothèque JavaScript de visualisation de PDF développée par Mozilla, connue sous le nom de PDF.js, est au centre d’une nouvelle découverte de sécurité assez préoccupante ! Une faille dans le code de rendu des polices permet à un attaquant d’exécuter du JavaScript arbitraire simplement en ouvrant un PDF malveillant. Et attention, cela affecte toutes les applications utilisant PDF.js, y compris Firefox, certains éditeurs de code et navigateurs de fichiers. Aïe aïe aïe ! En gros, lorsque

Votre lecteur PDF.js préféré peut exécuter du code malveillant !

Par : Korben
20 mai 2024 à 16:57

La bibliothèque JavaScript de visualisation de PDF développée par Mozilla, connue sous le nom de PDF.js, est au centre d’une nouvelle découverte de sécurité assez préoccupante ! Une faille dans le code de rendu des polices permet à un attaquant d’exécuter du JavaScript arbitraire simplement en ouvrant un PDF malveillant. Et attention, cela affecte toutes les applications utilisant PDF.js, y compris Firefox, certains éditeurs de code et navigateurs de fichiers. Aïe aïe aïe !

En gros, lorsque PDF.js affiche une police spéciale, il convertit la description des glyphes en instructions pour dessiner ces glyphes. Cependant, un hacker mal intentionné peut injecter son propre code dans la description de la police, résultant en l’exécution de ce code par le navigateur.

La vulnérabilité, estampillée CVE-2024-4367, repose donc sur une manipulation des commandes de rendu de polices. La commande transform utilisant fontMatrix est exploitée pour insérer du code JavaScript puis PDF.js compile dynamiquement les descriptions de polices pour optimiser les performances. Normalement, ce tableau contient uniquement des nombres, toutefois, cette faille permet d’y injecter des chaînes de caractères. Et en insérant du code JavaScript dans ce tableau, il est possible de déclencher du code lors du rendu d’une police.

Un exploit bien forgé permettrait diverses attaques telles que l’exécution de code arbitraire, le vol de données, ou même la prise de contrôle complète du système via des attaques XSS ou l’exécution de code natif. La vulnérabilité touche actuellement les versions de PDF.js inférieures à 4.2.67.

Selon les chercheurs de Codean Labs, cette vulnérabilité affecte non seulement les utilisateurs de Firefox (<126), mais également de nombreuses applications web et basées sur Electron utilisant indirectement PDF.js pour la fonctionnalité d’aperçu. Ils soulignent également que cette faille exploite une partie spécifique du code de rendu de la police, un segment que les développeurs devraient vérifier attentivement.

Bref, pensez à mettre à jour PDF.js vers une version supérieure à la 4.2.67 et à mettre à jour vos outils vers des version égales ou supérieures à Firefox 126, Firefox ESR 115.11 et Thunderbird 115.11.

Source

  • ✇Korben
  • Canvas Confetti – Mettez de la joie sur votre site web avec cette lib d’explosion de confettis
    Si vous codez vous-même votre site web et que vous avez envie d’ajouter un peu de fiesta, de bonne humeur et de célébration à celui-ci, j’ai la lib qu’il vous faut. Cela s’appelle Canvas Confetti et ça permet d’ajouter en animation de confetti, d’émoji ou de neige à vos pages web. Pour l’installer, rien de plus simple: npm install canvas-confetti Importez ensuite la bibliothèque Canvas Confetti dans votre fichier JavaScript où vous souhaitez utiliser l’animation du confetti comme

Canvas Confetti – Mettez de la joie sur votre site web avec cette lib d’explosion de confettis

Par : Korben
10 février 2024 à 09:00

Si vous codez vous-même votre site web et que vous avez envie d’ajouter un peu de fiesta, de bonne humeur et de célébration à celui-ci, j’ai la lib qu’il vous faut.

Cela s’appelle Canvas Confetti et ça permet d’ajouter en animation de confetti, d’émoji ou de neige à vos pages web.

Pour l’installer, rien de plus simple:

npm install canvas-confetti

Importez ensuite la bibliothèque Canvas Confetti dans votre fichier JavaScript où vous souhaitez utiliser l’animation du confetti comme ceci :

import confetti from 'canvas-confetti';

Pour lancer l’animation du confetti, appelez la fonction confetti() sans paramètres ou avec des options personnalisées. Voici un exemple de lancement de l’animation par défaut :

confetti();

Et voici un exemple de lancement de l’animation avec des options personnalisées :

confetti({
  particleCount: 150, // Nombre de confetti à lancer
  spread: 180, // Angle maximal de dispersion des confettis
  startVelocity: 30, // Vitesse initiale des confettis
  origin: {
    x: Math.random(), // Position initiale aléatoire des confettis sur l'axe horizontal
    y: Math.random() - 0.2 // Position initiale légèrement plus élevée sur l'axe vertical
  },
  colors: ['#ff0000', '#00ff00', '#0000ff'], // Couleurs des confettis
  shapes: ['square', 'circle', 'star'], // Formes des confettis
  scalar: 2 // Taille des confettis
});

Pour réinitialiser l’animation du confetti et effacer tous les confettis en cours d’animation, utilisez la méthode confetti.reset() :

confetti.reset();

Si vous souhaitez limiter l’espace sur votre page où les confettis apparaissent, vous pouvez utiliser un canvas personnalisé. Pour cela, créez un élément <canvas> dans votre HTML et appelez la fonction confetti.create() en lui passant l’élément <canvas> et des options globales facultatives :

const canvas = document.createElement('canvas');
document.body.appendChild(canvas);

const myConfetti = confetti.create(canvas, { // Options globales facultatives
  resize: true, // Permet de redimensionner le canvas en fonction de la fenêtre
  useWorker: true // Utilise un web worker pour le rendu du confetti
});

myConfetti({ // Options personnalisées
  particleCount: 100,
  spread: 160
  // Autres options personnalisées
});

Enfin, si vous souhaitez créer des confettis personnalisés à partir d’une forme SVG ou d’un texte, utilisez les méthodes confetti.shapeFromPath et confetti.shapeFromText :

const pathShape = confetti.shapeFromPath({ path: 'M0 10 L5 0 L10 10z' }); // Forme SVG

const textShape = confetti.shapeFromText({ text: '🐈', scalar: 2 }); // Texte personnalisé

confetti({
  shapes: [pathShape, textShape],
  scalar: 2
});

Le mieux reste d’aller faire un tour sur la page de démo qui comporte également des exemples d’intégration.

❌
❌