Quotidien Shaarli

Tous les liens d'un jour sur une page.

September 14, 2026

Suivre un fichier public servi sans Last-Modified

Pour suivre l'évolution de fichiers publics, comme la liste des plateformes agréées de la DGFiP, qui ne fournissent pas de métadonnées de modification (Last-Modified ou ETag), il est nécessaire de mettre en place un système de collecte régulière. L'absence de ces informations rend impossible de déterminer si un fichier a été mis à jour sans le télécharger et le comparer, entraînant une perte d'historique pour chaque jour sans relevé.

La solution proposée consiste à télécharger le fichier quotidiennement et à utiliser Git comme système d'archivage pour conserver les versions successives. L'analyse des fichiers .xlsx est simplifiée en exploitant leur structure ZIP contenant des fichiers XML, sans avoir recours à des bibliothèques complexes. Le processus utilise des outils en ligne de commande comme unzip et une analyse des chaînes de caractères dans xl/sharedStrings.xml ainsi que du contenu des cellules dans xl/worksheets/sheet1.xml.

Cette méthode de parsing XML par expressions régulières est spécifiquement adaptée à des fichiers dont la structure est stable et connue, garantissant que toute modification du format par le producteur du fichier entraînera une défaillance du script. Il est donc crucial de lancer la collecte dès que possible, même avec un script imparfait, afin de ne pas perdre de données historiques.

Soyez humains, communiquez !

Un joli plaidoyer de Ploum pour ne pas utiliser l'IA dans la communication écrite : l'IA écrit de manière "vide" - il compare avec de la prose de "marketeux" - alors qu'une rédaction humaine, même maladroite, est incomparablement plus informative.

CrowdSec Nginx Proxy Manager : protéger Docker simplement

Ce billet décrit une approche pour renforcer la sécurité de Nginx Proxy Manager (NPM) dans un environnement Docker en utilisant CrowdSec. L'objectif est d'éviter de créer une image Docker personnalisée pour NPM, ce qui compliquerait les mises à jour. L'astuce consiste à faire tourner CrowdSec sur l'hôte et à lui permettre de lire les logs de NPM, sans modifier l'image officielle.

La solution proposée fait de CrowdSec un outil de détection et le firewall bouncer de CrowdSec une solution d'application des décisions. CrowdSec analyse l'activité de NPM, identifie les comportements malveillants, et le firewall bouncer utilise iptables pour bloquer les adresses IP incriminées au niveau du réseau, protégeant ainsi les services Docker exposés.

Cette méthode privilégie la simplicité et la maintenabilité, en conservant l'image NPM officielle et en évitant les dépendances à des images personnalisées moins suivies. Le filtrage s'opère au niveau du firewall plutôt qu'au niveau du serveur web lui-même, offrant une protection par blocage d'adresses sources pour les services Docker publiés.

What Is the Seasonal Slump? 6 Science-Backed Ways to Keep Energy Up in Fall - LifeDev.net

Le "seasonal slump" est une baisse saisonnière d'énergie, de concentration et d'enthousiasme qui survient généralement en automne avec la diminution des jours. Ce phénomène a une base biologique liée à la réduction de la lumière du jour qui perturbe l'horloge interne du corps.

La lumière du jour influence notre rythme circadien et la production de mélatonine, nous rendant plus somnolents et affectant nos niveaux de sérotonine, un messager chimique du cerveau lié à l'humeur. Cela, combiné à une tendance naturelle à moins bouger et à manger plus lourd, crée un cercle vicieux de baisse d'énergie.

Pour contrer ce phénomène, l'article propose six stratégies basées sur la science, axées sur l'exposition à la lumière naturelle dès le matin, l'activité physique (idéalement en extérieur), le maintien d'un horaire de sommeil régulier, la socialisation, la mise en place de projets motivants et une alimentation adaptée. Il est souligné que la dépression saisonnière est une condition distincte nécessitant un avis médical.

Three Days Before the First Line of Code - Blog - Hugues Gobet

Le projet Agojie vise à automatiser le jeu de société Dice Throne. Le développement a débuté par des décisions fondamentales avant même la première ligne de code, abordant la structure du modèle du jeu, la mécanique de défense des héros, la découpe des tâches de développement et le choix de la pile technologique. L'objectif initial est de modéliser le cœur du jeu en un contre un, en se concentrant sur la gestion des dés, avant d'intégrer les cartes et les effets de statut.

Trois idées d'architecture ont été envisagées dès le départ : la séparation entre la définition d'un héros et l'état d'une partie, la modélisation du jeu comme un "Aggregate" pour garantir l'intégrité des règles métier, et l'utilisation d'"Domain Events" pour enregistrer les faits importants du domaine. Cependant, ces idées n'ont pas été appliquées immédiatement, privilégiant une approche où les décisions sont justifiées par les règles du jeu et non par l'intuition.

Ce projet est structuré en quatre étapes principales : la mise en place du cœur du jeu sans cartes, le développement d'une interface utilisateur basique avec sauvegarde des parties, l'intégration de la couche de cartes pour influencer le jeu, et enfin la gestion des effets de statut qui affectent les héros. La première phase consiste en la rédaction d'une spécification détaillée des règles du jeu de Dice Throne, incluant des exemples concrets pour guider le développement du code.

Résumé pour Shaarli:

Le projet Agojie se lance dans l'automatisation de Dice Throne, un jeu de dés et de combat stratégique. Les premières étapes se concentrent sur les décisions architecturales et la modélisation des règles fondamentales, sans écrire de code. L'objectif est de développer le cœur du jeu, puis d'ajouter progressivement des fonctionnalités comme les cartes et les effets de statut, en s'appuyant sur des principes de conception logiciel rigoureux.