Daily Weekly Monthly

Monthly Shaarli

All links of one month in a single page.

August, 2025

Tornike Onoprishvili | Code is Debt

Le code est une forme de dette. Plus vous avez, plus vos mouvements seront lourds et limités.

I Don't Have Spotify

Si vous n'avez pas Spotify mais que quelqu'un partage avec vous un lien Spotify, ce site vous donne le nom de la musique et le lien équivalent sur d'autres plateformes.

Are people’s bosses really making them use AI tools? - Piccalilli

De plus en plus de boîtes IT semblent forcer l'utilisation de l'IA sans en comprendre les effets néfastes.

Regurgiting, not creating. It’s what these tools do.

L'article incite fortement les développeurs qui sont dans cette situation à se protéger.

Regardless of your opinion of AI, forcing the usage of it is almost certainly going to end in disaster. Just be prepared for that disaster and protect yourself is my overall advice.

LogTape

Une lib de logging pour JavaScript qui ambitionne d'ajouter du logging facilement à vos packages. Ensuite, libre à l'utilisateur de votre package de décider s'il veut activer le logging ou pas.

Ça me fait un peu penser à log4j pour Java 🤔

You no longer need JavaScript Ʊ lyra's epic blog

Un tour d'horizon de ce que CSS permet, qui ne pouvait être accompli que grâce à JavaScript (et autres) par le passé.

Prenez-en connaissance, c'est autant de code que vous pouvez maintenant épargner à vos visiteurs.

LLM 101: What are large language models? | Proton

Le début de l'article explique ce que sont les LLM (communément appelé IA) et la façon dont ils fonctionnent.

Beacon API

Je ne connaissais pas cette API des navigateurs qui permet d'envoyer une requête POST vers un serveur au moment où un onglet est fermé. La particularité est que la requête est gérée de manière asynchrone donc pas besoin d'attendre la réponse du serveur pour laisser l'onglet se fermer. C'est utilisé principalement pour tout ce qui est analytics mais j'entrevois d'autres cas d'utilisation.

Getting started | ImageJS

Une lib de traitement d'image pour JavaScript.

GitHub - gokadzev/Musify: Unlock the full potential of music: Stream effortlessly with one app!

Une alternative à Spotify sur Android, qui utilise YouTube à travers le proxy Piped pour récupérer les musiques.

Do the simplest thing that could possibly work

La simplicité. On a tendance à l'oublier celle-là parfois.

CSS HD Gradients

Un outil pour créer des gradients.

Stop Using Docker like its 2015 - DEV Community

Le titre est foireux mais l'article rassemble quelques bonnes pratiques Docker à connaître :

  • Healthchecks
  • .dockerignore
  • Multi-stage Dockerfile
  • Cache
signals/packages/core at main · preactjs/signals · GitHub

J'ignorais que l'implémentation des signals de Preact est dispo sous forme de lib autonome. Je trouve qu'elle fait pile poil ce qu'on en attend, ni plus ni moins, et ça peut donc constituer un choix judicieux pour incorporer de la réactivité à une app, en attendant l'hypothétique implementation native dans JavaScript (stage 1/4 pour le moment).

The Basics of Anchor Positioning

Découverte du positionnement par ancre en CSS. Ce n'est pas encore supporté par Firefox mais j'imagine que ça ne devrait pas trop tarder.

I Am An AI Hater | moser’s frame shop

Un point de vue sans concession sur l'IA. Et difficile de lui donner tort sur la majorité des points.

An Interactive Guide to SVG Paths • Josh W. Comeau

Une nouvelle oeuvre d'art de vulgarisation d'un standard qui est loin d'être intuitif. La partie sur les arcs est notamment brillamment expliquée. Si vous travaillez de près ou de loin avec du vectoriel, je ne peux que vous en encourager la lecture.

Hack to the Future - Frontend - Matt Hobbs

Un (long !) tour d'horizon chronologique des pratiques qui furent standard en matière de développement front-end, avant de devenir désuètes.

J'aime particulièrement la conclusion, que j'applique de plus en plus, contre vents et marées de développeurs qui veulent foutre du React partout :

Technologies come and go, but the contract with the browser remains. Choose the simplest path that produces high quality HTML, CSS, and JavaScript. The closer you stay to the platform, the easier your product will be to maintain, to make accessible, and to run fast at scale.

Traduction à la mano :

Les technologies vont et viennent, mais le contrat que l'on passe avec le navigateur, lui, reste. Choisissez le chemin le plus direct qui produise du HTML, CSS et JavaScript de qualité. Plus vous restez proche de la Web Platform plus il sera facile de maintenir votre site ou app, de le rendre accessible et performant.

An Illustrated Guide to OAuth - by Aditya Bhargava

Une explication (légèrement illustrée) de ce qu'est OAuth.

Offline Kids – Screen-Free Activities for Kids

Des activités sans écran pour les enfants.

Getting Started 🌀 Strudel

Composer de la musique avec JavaScript !

Cross-Site Request Forgery

La façon de se protéger contre les attaques de type CSRF se sont diversifiées.

Voir aussi https://web.dev/articles/fetch-metadata#how_to_use_fetch_metadata_to_protect_against_cross-origin_attacks

How I host websites - Keith Cirkel

Quelques bonnes pratiques sur la mise en place et la configuration d'un VPS.

Fancy SVG filters | Stefan Judis Web Development

Les filtres SVG permettent des choses assez sympa !

What are OKLCH colors?

Une explication de cette notation plutôt récente pour représenter les couleurs en CSS.

Qu'est devenu Gopher ? - Alsacreations

Je ne connaissais pas Gopher, un concurrent au web que nous connaissons bien, à l'époque de sa naissance. Il est même arrivé un peu avant.

Sidequest.js

Un package Node.js qui permet de planifier des tâches (job scheduler). Il offre également un dashboard visuel.

Il a l'air simple et puissant à la fois, à surveiller.

Modern font loading guide | DeepakNess

Bonnes pratiques pour le chargement de polices d'écriture personnalisées sur une page web.

Via https://sebsauvage.net/links/?a3RBCQ

The Power Of The Intl API: A Definitive Guide To Browser-Native Internationalization — Smashing Magazine

À la découverte des possibilités offertes par Intl, le module natif d'internationalisation de JavaScript.

The Fastest Site in the Tour de France – CSS Wizardry

Un exercice intéressant ! L'auteur étudie les performances des sites web des écuries des coureurs du tour de France et les classe du plus au moins performant, et il s'intéresse ensuite aux détails d'implémentation et à ce qui aurait encore pu encore être amélioré.

Une mine d'infos si vous vous intéressez à l'optimisation des pages web.

Understanding Flame Graphs in Node.js (and How AI Makes Them Easier with N|Solid)

Une explication simple de ce que sont les Flame Graphs et comment ils aident à détecter les parties du code qui consomment le plus de CPU.

Introduction to AT Protocol – mackuba.eu

Une explication détaillée du protocole qui sous-tend Bluesky.

Pas encore lu.

Kelp

Un "framework" CSS dont j'aime particulièrement la philosophie. Je mets des gros guillemets parce qu'il s'agit en fait plus d'une lib d'utilitaires dont il est possible de ne choisir qu'une petite partie.

Point très important : il se repose au maximum sur les standards CSS modernes (variables, layers, webcomponents, etc.) et il n'y a pas besoin de build.

Ça signifie que vous pouvez ajouter uniquement les composants qui vous intéressent avec @import et c'est tout ! Et tout est customisable dynamiquement en modifiant la valeur des variables CSS.

J'aime tout particulièrement la simplicité et pour autant l'élégance des layouts qui couvrent 95% des cas courants.

A UI library for people who love HTML, powered by modern CSS and Web Components. Vanilla CSS and JavaScript. Easily customized. No build step.

Task

Un outil de build qui se veut être le successeur spirituel de Make.

GitHub - loopbackio/strong-soap: SOAP driver for Node.js (A complete rewrite of node-soap)

Une alternative à node-soap pour appeler une API Soap en Node.

gaytabase: "here's a few settings you may …" - Treehouse Mastodon

Réglages Firefox à ajuster dans about:config pour virer les fonctionnalités IA.

Je me copie ça ici :

browser.ml.chat.enabled = false
browser.ml.chat.shortcuts = false
browser.ml.chat.shortcuts.custom = false
browser.ml.chat.sidebar = false
browser.ml.enable = false
extensions.ml.enabled = false

browser.tabs.groups.smart.enabled = false
browser.tabs.groups.smart.optin = false
browser.tabs.groups.smart.userEnabled = false
What is HTTP request smuggling? Tutorial & Examples | Web Security Academy

Une explication à propos d'une vulnérabilité de HTTP qui n'est probablement pas la plus connue.

Obsidian’s CEO on why productivity tools need community more than AI | The Verge

Une interview (50 min environ) du très inspirant dirigeant d'Obsidian. Un ovni au milieu des requins.

À écouter en podcast si vous préférez.

Obsidian 1.9.10 Desktop (Public) - Obsidian

La dernière release d'Obsidian est de sortie avec le support des Bases, ce format qui permet d'extraire les infos de vos notes et des structurer en tableaux ou sous forme de cards.

Email is Easy

Vous pensiez maîtriser le format des adresse emails ? (Non)

Dev Compass - Programming Philosophy Quiz

Quel est votre philosophie en matière de développement ? Découvrez-le en 20 questions et devenez le 10x developer que tout le monde attend !

Everything I know about good system design

Un très bon article qui parle des nombreux points à considérer lors de la création de systèmes (ce qu'on peut appeler la system architecture).

[...] good system design is not about clever tricks, it’s about knowing how to use boring, well-tested components in the right place.

Je trouve l'angle assez juste et pragmatique.

Open Source Anxiety Toolkit | Anxiety Aid Tools

Des outils en ligne qui visent à réduire l'anxiété par le biais de petits exercices.

Déclencher un téléchargement de fichier - Alsacreations

Astuce à connaître.

una.im | 5 Useful CSS functions using the new @function rule

Exemple d'utilisation des fonctions CSS.

Je ne sais pas trop quoi en penser, je vois les perspectives que ça ouvre mais en même temps ça va rendre le code plus complexe et plus "opinionated".

Aujourd'hui quand on ouvre un projet CSS quel qu'il soit, on comprend le code immédiatement, toutes les fonctions sont natives. Le seul aspect à intégrer est l'organisation du code et des fichiers.

Demain, il faudra en plus aller voir chaque fonction pour comprendre ce que le développeur précédent a voulu factoriser, comme on le fait dans les languages traditionnels, et ce sera évidemment complètement différent d'un projet à l'autre.

Pas infaisable, mais ça va ajouter une couche de pénibilité supplémentaire lors de l'onboarding 🤔

Rethink: DNS + Firewall + VPN | F-Droid - Free and Open Source Android App Repository

Une alternative à personalDNSfilter qui permet de bloquer les requêtes vers les traqueurs connus.

Pas testé, j'attends de voir ce qui s'en dit, mais je la garde sous le coude.

Via https://korben.info/rethinkdns-firewall-android-privacy-revolution.html

CSS Questions

Testez vos connaissances CSS ! 48/60 de mon côté, ce qui est bien mais pas top.

Bluefish

Un outil qui fait du diagram as code un peu comme Mermaid mais en plus verbeux et un peu plus technique. Ça semble jeune mais potentiellement prometteur.

Miniflux - Minimalist and Opinionated Feed Reader

Un lecteur de flux RSS à auto-héberger minimaliste et efficace, développé en Go.

Address formats around the world

Spécificités des différents formats d'adresse postale qu'on trouve autour du globe.

Building Bluesky Comments for My Blog

Utiliser Bluesky comme système de commentaire pour un blog statique. Je pense éventuellement reprendre l'idée pour le mien mais avec Mastodon bien sûr.

Building a typed fetch in TypeScript with conditional types and infer - Piccalilli

Exactement le genre d'usage de TypeScript que je déteste.

Ce qui semble être une bonne idée au départ devient un méli-mélo de complexité impossible à comprendre du premier coup et qui finalement apporte une valeur limitée et un faux sentiment de sécurité, du fait que le schéma JSON de l'API appelée peut changer du jour au lendemain.

Si vous avez la chance de consommer une API REST qui dispose d'une documentation OpenAPI exhaustive, alors je préfère l'usage de librairies type json-schema-to-ts pour inférer le type des requêtes et réponses à partir du schéma, et créer un petit adapteur (une fonction) qui prendra le type de la requête en argument (incluant body, query params, et headers si nécessaire) et qui retournera le type de la réponse.

Ça permet un bien meilleur contrôle selon moi, et le code n'en est que plus explicite.

We shouldn’t have needed lockfiles @ tonsky.me

Une réflexion sur l'utilité relative des lockfiles, ces fichiers qui gardent trace de la version exacte de chacune des dépendances d'un projet, incluant les dépendances de dépendances, etc.

LuxPDF | An Open-source, Free, Privacy-focused, alternative to other PDF WebApps.

Un outil de conversion et transformation de PDF directement dans le navigateur mais sans envoyer vos fichiers côté serveur, tout reste strictement dans le navigateur.

Via https://korben.info/luxpdf-opensource-privacy-pdf.html

De l’art de quitter Kubernetes : témoignages

Quelques témoignages d'entreprises qui ont abandonné Kubernetes en raison de sa trop grande complexité qui ne convient pas à tous les usages.

C'est exactement ma vue de cet outil que je connais peu : ça semble fascinant et très puissant mais d'une complexité telle que finalement peu de boîtes peuvent se le permettre.

Node.js — Node.js v22.18.0 (LTS)

Node.js LTS supporte maintenant officiellement TypeScript (uniquement la syntaxe "effaçable") par défaut.

@una.im on Bluesky

Une bonne astuce pour élargir la zone cliquable d'un bouton de manière invisible et sans distordre le visuel du bouton lui-même.

button::after {
  content: "";
  position: absolute;
  inset: -5px;
}
Your Strengths Are Your Weaknesses – Terrible Software

Point de vue intéressant sur nos forces et nos faiblesses qui sont souvent liées.

Links, Resources, and Humans of Note - Infrequently Noted

Une gigantesque collection de liens vers des articles orientés performances web, mais aussi une liste de blogueurs à suivre si vous vous intéressez au web de manière générale.

Kill the Newsletter!

Transformer une newsletter en flux RSS. L'outil génère une adresse email spécifique qui s'occupe de la conversion et de publier le flux pour votre agrégateur préféré.

Bien plus pratique !

Friends at Last: Tailwind & CSS…whodathunkit?! | That HTML Blog

Il semblerait qu'il soit maintenant possible d'utiliser Tailwind (un framework CSS) en meilleure harmonie avec le CSS natif. On peut par exemple utiliser les tokens de Tailwind dans du CSS classique, rendant inutile l'usage de @apply. Je n'aime toujours pas ces frameworks "utility-first" mais il faut admettre que ce virage est fait dans la bonne direction.

Newsletters that regularly hit my inbox these days – Eric Bailey

Une liste de newsletters à destination des gens qui développent et créent pour le web.

UserActivation - Web APIs | MDN

Une API native de nos navigateurs qui permet de savoir si l'utilisateur est actif sur la page et s'il a interagit avec la page au moins une fois depuis son chargement.

Curate your own newspaper with RSS

Un plaidoyer pour RSS. L'un des protocoles les plus simples, puissants et resilients qui soit. Je l'utilise depuis facilement 15 ans sans faille et sans heurts. ❤️ RSS

2025 Stack Overflow Developer Survey

Le sondage StackOverflow des développeurs est de sortie.

Vibe Coder sur Visual Studio Code avec Copilot - Alsacreations

Ça a l'air chiant à mourir le Vibe Coding au final. L'IA fait la partie fun et vous vous retrouvez avec le babysitting, et en prime le risque de faire exécuter à l'agent des instructions dangereuses pour votre machine 🤦

Make any website load faster with 6 lines of HTML | DocuSeal

Quelques infos sur l'API Speculation uniquement supportée par Chrome pour l'instant. Elle ambitionne de "deviner" le chemin de navigation de l'utilisateur et de précharger autant que possible les ressources correspondantes.

Avec évidemment le risque de charger des ressources pour rien si la prédiction échoue.

J'avoue ne pas être certain de l'inérêt.

Au final si vous avez une bonne connexion, charger des ressources en arrière plan aura un impact négligeable mais l'intérêt de gagner 500ms lors de la navigation sera aussi limité puisque la connexion est performante.

Par contre si vous avez une connexion pourrie type 3G de la campagne, alors le peu de bande passante va s'étouffer entre pré-chargement de ressources inutiles et navigation de premier plan, dégradant alors l'expérience et augmentant la frustration.

FileGator - Free and Open Source Web File Manager

Un outil qui transforme facilement le dossier d'un serveur en serveur de fichier web avec une interface graphique et pas mal des fonctionnalités qu'on peut en attendre (gestion de permissions, etc.). Parfait pour rapidement recueillir des fichiers d'autres personnes par exemple.

Via https://korben.info/filegator-gestionnaire-fichiers-web-open-source.html