Les media queries CSS sont devenues très complètes et vont bien au delà de la détection de la largeur du navigateur.
En résumé de mon côté pour l'instant :
tsxtscEt je pense migrer de tsx au support natif de Node dans quelque temps quand il sera plus mature.
Chaque language a ses particularités dans sa gestion du format JSON.
Une revue intéressante de l'évolution du design visuel de MacOS mais à reculons, en inversant la ligne du temps.
C'est une bonne manière de se rendre compte de certains sacrifices effectués sur l'autel de la modernité.
Je ne connais que très peu Python et je découvre que le système de typage introduit en 2014 est très similaire à celui de TypeScript.
Un petit jeu tout mignon en WebGL où l'objectif est de livrer des paquets sur une minuscule planète.
Une explication assez simple et explicite de l'objectif du protocole atproto qu'utilise Bluesky.
Même si l'implantation qu'en fait Bluesky actuellement est centralisée, j'aime assez l'idée de rendre les interactions sociales décentralisées et "possédées" par les gens grâce à leur nom de domaine.
Je découvre que Redis permet de faire des intégrations à base d'événements de manière très simple, comme toujours avec Redis.
Ça semble par exemple plus simple que RabbitMQ et beaucoup plus simple que Kafka (mais de fait moins "solide" ou fiable).
Le sondage State of JavaScript 2025 est à présent ouvert pour recueillir vos impressions et votre retour.
Un ensemble de bonnes pratiques pour limiter les risques d'attaque par chaîne d'approvisionnement (supply chain attacks) avec npm.
Une contrainte importante à prendre en compte avec @starting-style comparé aux keyframes.
Finalement cette nouvelle option ne semble pas ouvrir beaucoup de nouvelles possibilités par rapport aux keyframes.
Un micro-framework front-end.
Il semble se passer quelque chose de grave dans l'écosystème open-source de Ruby, notamment au niveau des Ruby Gems.
Malheureusement je ne connais pas suffisamment Ruby pour en comprendre les tenants et aboutissants, mais cet article factuel devrait vous aider à y voir plus clair.
Si vous cherchez une solution de remplacement pour le vieux Windows de vos beaux-parents sans trop les bousculer, Zorin OS, basée sur Ubuntu, et qui reprend les codes de Windows mérite le détour.
Un outil qui permet d'exporter vos notes depuis plusieurs services bien connus vers du Markdown en local.
Une ode à la simplicité.
Plus j’acquiert de l'expérience, plus j'adhère à cette philosophie.
J'ai décidé de migrer de serveur Mastodon. L'ancien, mastodon.xyz m'a accueilli dès mes débuts ici en 2017 et je remercie chaleureusement https://mastodon.xyz/@TheKinrar d'avoir si bien géré pendant toutes ces années.
Je suis en train de migrer progressivement les références à l'ancien compte, mais la majorité devrait se faire automatiquement (sauf les messages bien sûr).
Une autre river.
La démo de Alabaster Dawn est de sortie. C'est la suite spirituelle de Cross Code qui était un excellent RPG/Action entièrement en pixel art mais magnifiquement animé et très dynamique. Et force est de constater que la recette fonctionne toujours aussi bien !
Ce site regroupe tout ce dont les PWA sont capables. Il y a beaucoup d'usages que j'ignorais, et certains semblent encore expérimentaux, mais c'est pratique d'avoir cette liste.
Une Shaarli River ! Ça faisait longtemps que j'en avais pas trouvé une qui fonctionne 😊
Quelques mesures pour éviter les supply chain attacks comme on en a vu quelques-unes dernièrement dans l'écosystème npm.
Pourquoi il est préférable d'importer les modules natifs de Node avec le préfixe node:, par exemple :
import fs from 'node:fs';Après UDP, voici une description de comment fonctionne Node avec TCP.
Envoyer et recevoir des requêtes UDP avec Node.js, grâce au module node:dgram.
L'article insiste néanmoins que Node n'est probablement pas le meilleur choix si votre choix de UDP est lié à un besoin de performances, à cause du coût des différentes couches d'abstraction.
Article d'utilité publique qui explique de manière intelligible et en limitant les aspects techniques pourquoi il est essentiel de bloquer la pub sur le web et comment faire.
Focus sur quelques bizarreries historique de JavaScript. Heureusement le mode strict et les linters existent 😅
Peut-être qu'un jour un nettoyage du language sera fait, mais quelque part c'est une belle preuve de rétrocompatibilité même si en l'occurrence elle est plus négative que positive.
Une librairie qui permet de valider les arguments d'une fonction de manière assez concise.
La même chose est cependant faisable avec les validateurs traditionnels type Zod, mais requierera de réassigner les arguments à des variables pour bénéficier du type narrowing là où ow le fait à la volée.
Un outil pour explorer les différentes couches d'une image de container obéissant au format OCI (Open Container Initiative).
Comment UTF-8 a été conçu pour être rétrocompatible avec ASCII et ses 128 caractères seulement. L'idée est de représenter les caractères ASCII sur 1 octet, et les autres sur 2, 3 ou 4 octets.
Passionnant !
Conseils sur l'usage de spyOn et mock avec Vitest.
Cet article m'a enfin permis de comprendre le mocking avec Vitest, et c'est dingue de voir à quel point ces fonctions sont mal nommées 🙈 Au final spyOn fait TELLEMENT PLUS que ce que son nom suggère. Il faudra que j'écrive un article sur le sujet.
Une lib toute simple pour consommer des messages d'une message queue Amazon SQS.
Des packages npm très largement utilisés (plus de 2 milliards de téléchargements par semaine au total !) ont été compromis. Pensez à vérifier si vous êtes impacté.
Une métaphore intéressante qui résume le problème de certains (meta-) frameworks modernes qui essayent de tout faire et imposent de fait une complexité démesurée.
Totalement d'accord : extraire des petits morceaux d'un code linéaire ne le rend pas toujours plus propre, et le rend plus difficile à comprendre. Bien sûr il y a des exceptions et aboutir à une fonction de 500 lignes n'est pas forcément une solution non plus, mais il y a un équilibre à trouver, pas une recette à appliquer systématiquement et à l'aveugle.
Une alternative sans traceur à CityMapper, pour se déplacer en transport en commun dans les grandes villes.
Une longue liste d'applications Android alternatives, qui respectent votre vie privée.
Le blog en lui-même regroupe beaucoup de ressources en la matière.
Partager des fichiers avec les appareils à proximité.
Un portfolio qui reprend trait pour trait les codes visuels de Windows XP. Impressionnant de précision ! Il y a même un bel effet "écran CRT".
Apprenez à admettre vos erreurs, vous n'avez pas idée à quel point c'est essentiel.
Les polices d'écriture modernes ont atteint un niveau de flexibilité et de "configurabilité" assez hallucinant.
Une fonction qui vise à rendre la déclaration de web components plus simple.
Témoignage d'une transition de Docker vers Podman, qui offre une solution similaire mais réputée plus sécurisée by design.
L'occasion parfaite pour tirer un trait sur les réseaux et adopter RSS : plus de 2300 blogs qui traitent de tous les sujets, regroupés par catégorie.
L'API JavaScript Intl.Segmenter peut être utilisée pour compter le nombre de caractères visibles dans une chaîne de caractères, et non pas le nombre de caractères unicode comme ce que fait String.length.
Un outil d'édition d'image vectorielle (SVG & co.). Assez bluffant de simplicité et d'intuitivité, et il fonctionne aussi parfaitement sur mobile.
Ce service diffuse des flux RSS qui annoncent les sorties des albums de vos artistes préférés.
Pour trouver l'URL du flux à ajouter, chercher un artiste, puis dans l'URL remplacez /#/ par /_rss/, par exemple :
https://www.musicme.com/#/Moby/
devient :
https://www.musicme.com/_rss/Moby/