Quotidien Shaarli
February 19, 2026
L’article défend l’importance des bases de données relationnelles comme exemple de « boring technology » sous-estimée, soulignant que malgré leur large utilisation pour stocker des données, beaucoup de développeurs ne maîtrisent plus le SQL ni les fonctionnalités avancées des SGBD, ce qui se révèle problématique quand les charges augmentent et que les performances chutent ; il ajoute que les ORM sont utiles mais doivent être bien compris pour optimiser les requêtes et exploiter pleinement des concepts comme vues, index ou requêtes récursives afin de bâtir des applications robustes sans multiplier inutilement les technologies.
L’article explique comment ajouter une fonctionnalité de zoom de texte dans gVim, qui n’en dispose pas nativement, en définissant la police guifont et en créant dans le fichier .gvimrc une variable g:font_size et des fonctions VimScript ZoomFont(amount) et ResetFont() pour modifier cette taille, puis en les associant à des touches (F7 pour augmenter, F8 pour diminuer et F10 pour réinitialiser) afin de pouvoir ajuster rapidement la taille des caractères dans l’éditeur graphique.
L’article identifie comme enjeu central pour 2026 la nécessité de repenser l’approche Cloud et DevOps face à des contraintes concrètes, notamment la raréfaction et la montée des prix du matériel (RAM, disques) qui remettent en cause l’idée de ressources « infinies » et imposent d’optimiser l’efficacité énergétique, les coûts et les architectures, tout en gérant les risques liés à la sécurité et à l’IA, ainsi que la dépendance aux hyperscalers et aux chaînes d’approvisionnement.
Ce guide explique comment sécuriser un serveur personnel Linux sur un MiniPC en installant Fail2ban avant de l'ouvrir à Internet. Fail2ban protège contre les attaques par force brute en bannissant les adresses IP après un nombre défini de tentatives de connexion échouées. Le tutoriel détaille l'installation de Fail2ban, l'ouverture du serveur sur Internet, et l'installation de Docker pour déployer des services comme Adguard. Il souligne l'importance de la sécurité même pour les serveurs personnels, souvent ciblés par des robots malveillants.
L’article explique comment automatiser l’application des guides de style de code en combinant l’outil « Continue.dev » avec des pipelines d’intégration continue comme GitHub Actions afin de réduire la charge des revues manuelles, en définissant des règles de style lisibles par machine, en intégrant des vérifications en temps réel dans l’éditeur et en ajoutant des contrôles dans la CI pour bloquer les pull requests non conformes, ce qui permet de cibler jusqu’à ~90 % des vérifications de style sans intervention humaine ; il détaille la configuration de Continue avec des règles personnalisées, l’architecture du workflow CI ainsi que des conseils pour affiner les règles et mesurer l’impact.
L’article explique que les skills d’Anthropic sont des « super system prompts » permettant de guider de façon plus précise et efficace un modèle d’IA comme Claude pour la génération de code, ce qui, combiné à une approche de vibe coding (interaction dialoguée et itérative avec l’IA plutôt que de simples prompts vagues), améliore l’expérience du développeur en réduisant frustration et erreurs. L’auteur illustre cela par son propre changement de pratique après avoir observé des streams de vibe coding efficaces et utilisé des skills personnalisés (comme une skill Java qu’il a créée), et souligne que cette approche fonctionne mieux en mode pair programming IA-humain, tout en précisant qu’elle ne remplace pas entièrement les compétences humaines du développeur.
Ce billet de blog explore deux méthodes pour évaluer la qualité des suites de tests automatisés, particulièrement dans le contexte de l'écriture de tests par des modèles de langage (LLMs). L'auteur, Mark Seemann, discute d'abord de la couverture de code, souvent critiquée mais potentiellement utile pour les tests générés par des LLMs, car elle peut servir de seuil minimal. Ensuite, il aborde la mutation testing, une technique plus avancée qui modifie le code pour vérifier si les tests détectent ces changements, révélant ainsi des cas non couverts. Bien que ces méthodes aient des limites, elles offrent des pistes pour critiquer et améliorer les tests, surtout dans un contexte où les tests sont générés automatiquement.
L’article explique comment utiliser Playwright combiné à un modèle de langage (LLM) pour créer un testeur de logique d’interface utilisateur adversarial qui va au-delà des tests déterministes classiques en générant des actions intentionnellement hostiles contre une UI vivante afin de déceler des bugs fonctionnels difficiles à trouver, comme des corruptions d’état ou des contournements de validation, en bouclant extraction d’état UI → plan d’actions hostile → exécution et détection d’anomalies, puis en réinjectant les résultats pour affiner la recherche; il détaille l’architecture du système, la construction d’un plan d’attaque JSON par le LLM, l’exécution avec Playwright et les avantages de cette approche versus des scripts statiques, ainsi que les limitations et coûts associés.
La page explique comment configurer Apache pour déléguer l’authentification des utilisateurs à un annuaire LDAP afin d’éviter de gérer des comptes locaux pour chaque service, en installant et activant les modules mod_ldap et mod_authnz_ldap puis en ajoutant dans la configuration du site les directives AuthLDAPURL, AuthLDAPBindDN, AuthLDAPBindPassword, AuthBasicProvider et Require adaptées à votre annuaire, avec un exemple concret pour un serveur Netserver7 et des paramètres comme l’URL LDAP sécurisée (ldaps://…), l’attribut de recherche (sAMAccountName) et l’accès réservé aux utilisateurs valides de l’annuaire.
L’article explique comment créer un extracteur de texte PDF personnalisé en Node.js et TypeScript en partant de zéro et en construisant une API avec Express qui reçoit des fichiers PDF, utilise des bibliothèques comme pdf-parse pour extraire le texte et renvoie ce contenu via des endpoints HTTP, tout en montrant comment gérer les uploads, configurer TypeScript, implémenter des fonctions de parsing (y compris par plage de pages) et gérer les cas d’erreur, avec pour objectif d’offrir plus de contrôle et de flexibilité qu’avec des solutions toutes faites.