Sebsauvage donne plusieurs pistes pour réduire le trafic réseau sous Linux, utile par exemple si la connexion est limitée (thetering)
Scott H. Young partage son bilan d’un mois dédié à l’organisation et au rangement, après avoir lu cinq livres sur le sujet. Il en retire des principes clés : jeter avant de ranger, organiser par catégorie (et non par lieu), donner une place unique à chaque objet, et simplifier l’accès visuel aux affaires en évitant les contenants surchargés. Il souligne aussi que la plupart des papiers sont superflus et que le désencombrement passe par une phase de chaos avant d’aboutir à un espace plus fonctionnel et facile à maintenir. Malgré la difficulté du processus (notamment avec des enfants), il constate que ses espaces de vie et de travail sont désormais plus ordonnés et que l’effort d’entretien quotidien s’en trouve réduit. Une expérience qui l’incite à adopter une approche plus radicale face à l’accumulation d’objets inutiles.
L’observabilité full-stack passe aussi par le frontend – Longtemps considéré comme une boîte noire, le suivi des performances côté client (latence des interactions, complexité asynchrone, contexte utilisateur) est désormais possible grâce au tracing (OpenTelemetry, Sentry, Datadog). En instrumentant les clics, requêtes et rendus, on relie les actions utilisateurs aux traces backend, offrant une visibilité complète : identification précise des goulots d’étranglement, corrélation entre latence perçue et temps système, et débogage simplifié. Avec une implémentation simple (ex : @opentelemetry/sdk-trace-web
), le frontend s’intègre enfin dans la chaîne d’observabilité, transformant l’expérience utilisateur en données exploitables.
Optimiser les PWAs selon leurs modes d’affichage — Les Progressive Web Apps (PWA) permettent de transformer une application web en une expérience proche du natif, mais cela peut aussi supprimer des fonctionnalités essentielles du navigateur (boutons retour, partage d’URL, etc.). L’article explique comment utiliser les requêtes média display-mode
(standalone, fullscreen, minimal-ui, browser) et JavaScript pour adapter l’interface et l’expérience utilisateur en fonction du mode d’affichage. Par exemple, masquer les incitations à l’installation pour les utilisateurs ayant déjà installé l’app, ajouter des alternatives aux contrôles du navigateur, ou personnaliser le contenu pour un usage plus "app-like". Une approche progressive et ciblée permet de créer des PWAs plus intuitives et adaptées à chaque contexte d’utilisation.
L’auteur raconte sa migration de services auto-hébergés depuis un VPS vers un mini-PC à domicile (un Minisforum UM880 Plus), en profitant de l’occasion pour mettre en place une infrastructure plus flexible et robuste avec Proxmox VE. L’objectif est de pouvoir expérimenter (notamment avec Kubernetes) sans risquer de casser sa production, tout en sécurisant ses données via le chiffrement disque et des sauvegardes solides. Après avoir installé Debian avec chiffrement LUKS, il automatise la configuration de Proxmox et du réseau (pont bridge) via Ansible, afin de pouvoir recréer rapidement son infrastructure en cas de vol ou de panne matérielle. Il prévoit d’utiliser OpenTofu et cloud-init pour déployer et configurer des machines virtuelles de manière reproductible, et Ansible pour gérer la configuration des services. Le billet détaille aussi les écueils rencontrés (comme le blocage au démarrage après l’installation de Proxmox, résolu en configurant une IP statique) et explique comment son playbook Ansible permet de tout réinstaller automatiquement. Une suite est annoncée pour aborder le déploiement de VM et la gestion des services avec Kubernetes.
« Getting Creative With Images in Long-Form Content » (CSS-Tricks) explore comment les images, souvent reléguées à un rôle purement illustratif, peuvent dynamiser et enrichir l’expérience de lecture des contenus longs. L’article propose des techniques créatives pour intégrer les images de manière expressive : briser la grille classique pour attirer l’attention, jouer avec les formats (full-bleed, modular grids), utiliser les CSS Shapes pour un habillage de texte plus organique, ou encore repenser les légendes et l’espace blanc pour renforcer l’impact visuel et narratif. L’objectif ? Transformer les images en éléments actifs qui rythment la lecture, guident le regard et renforcent l’émotion, plutôt que de simples interludes visuels. Une approche inspirante pour les designers et rédacteurs qui veulent donner plus de personnalité à leurs articles, rapports ou études de cas.
Symfony, Doctrine et les triggers SQL sont souvent en tension : les triggers offrent une robustesse et une atomicité inégalées pour des logiques critiques (audit, validation, compteurs), mais leur gestion dans un projet Symfony reste complexe, car leur code SQL est souvent perdu dans des migrations ou invisible pour les développeurs. Le Trigger Mapping Bundle propose une solution élégante en permettant de déclarer les triggers directement dans les entités via des attributs PHP, les rendant ainsi visibles, versionnables et gérables comme le reste du code. Le bundle offre des commandes pour intégrer, créer, valider et mettre à jour les triggers, tout en facilitant la transition depuis un projet existant. L’objectif ? Réconcilier la puissance des triggers SQL avec la philosophie de Symfony et Doctrine, en choisissant le bon outil selon le besoin : trigger pour l’intégrité des données, listener Doctrine pour la logique applicative. Une approche qui réduit la dette technique et améliore la maintenabilité.
Gérer les dépendances Python avec pip freeze permet de capturer l’état exact des bibliothèques installées dans un environnement virtuel, en générant un fichier requirements.txt
via la commande pip freeze > requirements.txt
. Ce fichier liste toutes les dépendances (et leurs versions précises), assurant la reproductibilité du projet sur d’autres machines ou en production. Pour installer ces dépendances, il suffit d’exécuter pip install -r requirements.txt
. Cependant, cette méthode ne distingue pas les dépendances directes des dépendances transitives, ce qui peut poser problème en cas de conflits de versions. Pour des projets plus complexes, des outils comme pip-tools ou Poetry offrent une gestion plus fine et structurée des dépendances, en générant un fichier de verrouillage cohérent. L’usage d’un environnement virtuel reste indispensable pour éviter les conflits entre projets. Lire plus.
L’article réfléchit sur l’auto-hébergement à domicile, une pratique qui consiste à gérer soi-même ses services (site web, mails, stockage, etc.) plutôt que de les confier à des prestataires externes. L’auteur rappelle que le cloud et le web reposent sur des machines physiques gérées par des tiers, ce qui soulève des questions de compétence, de sécurité, de souveraineté et de dépendance politique (exemples : incendie du datacenter OVH à Strasbourg, surveillance étatique). Bien que des solutions comme Yunohost ou OpenMediavault facilitent la mise en place d’un serveur domestique, l’auteur souligne les risques (pannes, attaques, perte de données) et la complexité de maintenir un service fiable et sécurisé 24/7. Il distingue l’auto-hébergement "pour jouer" (projets personnels, tests) de l’hébergement professionnel, qu’il préfère déléguer à des experts, même chez les GAFAM, pour des usages critiques (mails, site à fort trafic). Il partage son expérience avec un serveur Ubuntu hébergeant Nextcloud et MiniDLNA, mais conclut que l’auto-hébergement reste un loisir technique, réservé à des usages non essentiels et assumés en conscience des limites et des risques.
Une superbe adaptation des Misérables de Victor Hugo à notre époque. Comme le souligne Gee, cette oeuvre a vraiment peu vieilli à tous les niveaux : la misère et les misérables sont 'toujours bien là, en France, en 2025".
Comment bien scaler les code reviews (et éviter les pièges)
À l’origine, une petite équipe peut se permettre de merger directement dans la branche principale, mais dès que le projet grandit, les code reviews deviennent essentielles pour maintenir la qualité du code. Pourtant, mal gérées, elles ralentissent les équipes (délais serrés, feedbacks sur des détails mineurs), génèrent des conflits (préférences personnelles, ton toxique) et favorisent les incompréhensions (revues asynchrones, PR trop volumineuses). Pour y remédier, auteurs et relecteurs doivent adopter des bonnes pratiques : PR petites et ciblées, feedback constructif et documenté, respect du temps de chacun (réponse sous 24h, slots dédiés), et automatisation (CI, outils comme CodeRabbit pour les checks routiniers). L’objectif ? Améliorer la qualité sans bloquer la vélocité : privilégier le "bon assez" plutôt que la perfection, utiliser des checklists, et résoudre les désaccords en direct. Les outils modernes (GitHub/GitLab, AI comme CodeRabbit) optimisent le workflow en détectant les bugs tôt et en résumant les changements, libérant les humains pour des revues plus stratégiques. En résumé : des revues rapides, bienveillantes et outillées pour un code sain et des équipes motivées.
L'auteur détaille sa migration d’infrastructure en 2025, marquée par l’abandon de Proxmox au profit d’Hyper-V, principalement pour des raisons de performances et de gestion des sauvegardes : ZFS et PBS (Proxmox Backup Server) étaient devenus inadaptés à ses besoins, avec des vitesses de backup limitées à 100-150 Mbps contre 2 Gbps avec Hyper-V et Veeam, essentiel pour ses 7-8 To de données quotidiennes. Son infrastructure repose désormais sur deux serveurs sous Windows Server 2022 : un Supermicro X10SDV-4C-TLN4F (stockage NVMe et HDD en RAID 1) pour l’hyperviseur et un vieux HP MicroServer Gen8 (mis à niveau réseau et stockage) pour les backups, le tout protégé par un UPS APC reconditionné. Les VM, majoritairement sous Debian 12, incluent Ansible (avec Semaphore), LibreNMS, Home Assistant, Paperless-ngx, Jellyfin, Passbolt, Proton-backup, Wazuh et un serveur web. Le réseau est entièrement en 10 Gbps (catégorie 6 STP), avec un firewall OPNsense sur un NUC Intel N100. L’automatisation via Ansible/Semaphore gère mises à jour, backups (local, disques externes rotatifs, Backblaze B2 chiffré) et monitoring, respectant la règle 3-2-1. Il évoque aussi son wiki technique (xWiki) et son désengagement partiel du blog, critiquant l’impact des IA (comme Gemini) sur la visibilité des contenus humains, tout en reconnaissant leur utilité ponctuelle pour la veille ou l’écriture de scripts. Enfin, il souligne la désaffection des blogs au profit des réseaux sociaux et de l’IA, sans pour autant fermer son espace.
Encore un texte passionnant de Ploum qui fait réfléchir (et sourcé, toutes les sources lui permettant d'alimenter sa réflexion).
L'espionnage de masse est bien pire que ce que l'on imagine mais l'Europe protège un tout petit peu ses citoyens.
On est saturés d'indignation sans rien faire mais il y a quelques actions très concrètes (comme supprimer Whatsapp) : il faut accepter la difficulté, l'inconfort et le fait que ces actions ne seront jamais reconnues ou applaudies.
La merdification est à l'oeuvre de partout, même sur des applications qui paraissaient sûres puisque les fondateurs s'y étaient engagés... jusqu'à l'arrivée d'un gros chèque. Seul le logiciel libre peut lutter, à condition de ne pas chercher l'ajout de fonctionnalités superflues.
Ploum nous encourage aussi à ralentir et prendre du recul (cf son dernier échange avec Chris Brannons)
Enfin il nous encourage aussi à faire du vélo, comme symbole d'indépendance et de liberté.
L’article explique comment transformer sa to-do list en un outil efficace et anti-stress, en s’appuyant sur la psychologie du cerveau (effet Zeigarnik, dopamine) et 7 règles clés. L’idée centrale : le cerveau est obsédé par les tâches inachevées, ce qui génère du stress et réduit la concentration. Pour y remédier, il propose de planifier le matin (après avoir vérifié ses mails), de commencer par les tâches faciles pour créer un élan de motivation (« boule de neige »), de découper les projets en actions concrètes (règle des 25 minutes), et de regrouper les tâches similaires (« batching »). Autres astuces : noter chaque soirée les tâches accomplies (« Done List ») pour analyser son temps réel, gérer les imprévus en notant la prochaine micro-étape avant de s’interrompre, et choisir un outil simple (comme Google Tasks) qui permet de déléguer la mémoire à un système externe. L’objectif n’est pas de tout retenir, mais de libérer son esprit pour se concentrer sur l’essentiel.
Une méthode pour passer de la surcharge à la sérénité !
L’article propose un exercice simple pour identifier et réduire la charge mentale au travail, souvent source d’angoisse et de fatigue invisible. L’idée est de noter pendant une semaine toutes les petites contrariétés du quotidien (tâches répétitives, interruptions, demandes hors périmètre) sans les juger, afin de dresser un « relevé brut » de ce qui grignote temps et énergie. À l’issue de cette observation, trois questions clés permettent d’agir : automatiser les tâches répétitives, déléguer ce qui ne relève pas de son expertise, ou supprimer ce qui n’est plus nécessaire. L’objectif n’est pas une solution miracle, mais une prise de recul concrète pour reprendre le contrôle et alléger son quotidien, en se concentrant sur l’essentiel plutôt que sur l’accumulation de détails épuisants.
Un outil utile pour ceux qui se sentent débordés sans raison apparente !
Le 17 août 2025, le blog de l’auteur a subi un incident informatique : environ 179 000 requêtes web en 14 heures, ciblant uniquement trois fichiers sitemap.xml, provenant de 168 000 adresses IP uniques (majoritairement IPv4). L’attaque, jugée naïve et peu sophistiquée, a permis à l’auteur de réviser ses connaissances sur nftables et fail2ban. Après avoir bloqué l’accès aux fichiers ciblés via Apache, il a tenté de filtrer les requêtes avec fail2ban, mais a dû ajuster sa stratégie face à la charge : bannissement par grands blocs d’IP (/8 puis /16 en IPv4), limitation du trafic entrant, et enfin blocage par pays (sauf France). Malgré des erreurs initiales (rechargement intempestif de fail2ban, lecture complète des logs), l’incident a été maîtrisé en combinant ces outils et en nettoyant les logs pour éviter d’alourdir les sauvegardes. L’auteur souligne l’importance de bien connaître ses outils avant un incident et partage des commandes utiles pour nftables et fail2ban.
Un retour d’expérience technique et pédagogique sur la gestion d’un flux massif de requêtes indésirables.
Ce tutoriel détaillé explique comment mettre en place une solution de supervision complète de vos serveurs avec Prometheus (pour la collecte et le stockage des métriques système) et Grafana (pour leur visualisation sous forme de tableaux de bord interactifs).
Il couvre l’installation et la configuration de Prometheus et Grafana via Docker sur un serveur dédié, ainsi que le déploiement d’exporters comme node_exporter (métriques système), cAdvisor (métriques containers Docker), process_exporter (métriques processus), et blackbox_exporter (tests de disponibilité des services). Le guide aborde aussi la sécurisation des interfaces, la création d’alertes, et l’intégration d’Alert Manager pour la gestion des notifications. Idéal pour surveiller en temps réel l’état de votre infrastructure et recevoir des alertes en cas de dépassement de seuils, avec des exemples concrets et des tableaux de bord Grafana prêts à l’emploi.
Un super outil à auto héberger qui permet de convertir des fichiers dans plein de formats
Ce tutoriel explique comment déployer Longhorn, une solution de stockage distribué, sur un cluster K3s (Kubernetes léger).
Il détaille les prérequis (Kubernetes 1.28+, 2 Go de RAM, open-iscsi
installé), la préparation d’un dossier dédié (/opt/longhorn
), puis l’installation via un manifest YAML personnalisé pour spécifier le chemin de stockage. Après déploiement, il montre comment vérifier l’état des pods, corriger une mauvaise configuration via un patch, et tester le stockage avec un PVC de 1 Go. Des astuces pour la mise à jour, la vérification de l’état du service et le redimensionnement des volumes sont aussi partagées. Idéal pour ajouter du stockage persistant et résilient à un cluster K3s avec peu de ressources.
Ce guide explique comment optimiser le chargement des polices web pour éviter de ralentir un site : privilégiez le format WOFF2 (le plus efficace et universel), hébergez vos polices vous-même pour améliorer les performances et la vie privée, et utilisez font-display: swap
pour afficher immédiatement un texte de repli avant le chargement de la police personnalisée. Pensez à pré-charger les polices critiques avec <link rel="preload" as="font" ...>
, à sous-ensembliser les polices (unicode-range
) et à éviter les formats obsolètes (TTF, OTF, etc.). Intégrez les déclarations @font-face
directement dans le <head>
, choisissez des polices de repli système bien adaptées, et utilisez size-adjust
ou font-size-adjust
pour limiter les décalages de mise en page (CLS). Enfin, testez sur des réseaux lents et surveillez l’impact des polices sur les performances, en limitant le nombre de variantes et en évitant les polices d’icônes au profit des SVG. L’objectif : allier design et rapidité sans compromis.