Hebdomadaire Shaarli
Semaine 31 (July 28, 2025)
Un guide pour la sécurisation d'un serveur linux
L'article explore les concepts fondamentaux de la conception de systèmes, essentiels pour les développeurs et les ingénieurs logiciels. Il aborde des sujets variés tels que l'architecture client-serveur, les adresses IP, le DNS, les proxys, la latence, les protocoles HTTP/HTTPS, les APIs, les bases de données SQL et NoSQL, ainsi que des techniques de mise à l'échelle comme le scaling vertical et horizontal, l'équilibrage de charge, l'indexation des bases de données, la réplication et le sharding. L'article vise à simplifier ces concepts pour les rendre accessibles, que ce soit pour des entretiens techniques ou pour la conception de systèmes scalables dans un environnement professionnel.
Il s'agit d'un générateur de site statique pour la diffusion de musique.
Le fingerprinting, ou empreinte numérique, est une technique de suivi qui identifie un appareil ou un utilisateur sans utiliser de cookies, en collectant des informations comme le navigateur, le système d'exploitation, la langue, et d'autres configurations. Cette méthode crée un profil unique qui peut être utilisé pour suivre les utilisateurs à travers différents sites, même en navigation privée. Pour se protéger, il est conseillé de se fondre dans la masse en utilisant des navigateurs comme Tor ou Brave, ou des extensions comme Chameleon pour uniformiser son empreinte numérique. Des outils comme "Am I Unique ?" et "Cover Your Tracks" permettent de tester sa propre empreinte et de mieux comprendre les risques pour la vie privée.
L'article explique les quatre grandes cadences en musique, qui structurent les phrases musicales comme la ponctuation le fait pour les phrases écrites. Les cadences sont des enchaînements d'accords à la fin d'un élément musical, produisant des effets conclusifs ou suspensifs. La cadence parfaite, par exemple, utilise les accords de degré V et I pour créer une sensation de conclusion, comme dans "Somebody to Love" de Queen. La cadence plagale, avec les accords IV et I, offre une conclusion moins définitive, souvent utilisée dans la musique liturgique. La demi-cadence repose sur le cinquième degré, créant une suspension, tandis que la cadence rompue surprend en déviant de l'accord attendu, comme dans "I Want to Break Free" de Queen. Ces outils permettent aux musiciens de s'exprimer et d'enrichir leurs compositions.
L'article décrit une méthode pour démarrer Symfony Messenger à la demande afin de réduire les coûts inutiles sur AWS pour un projet nécessitant l'importation et le traitement occasionnel de grands fichiers Excel. L'auteur configure Symfony Messenger pour utiliser une file d'attente Doctrine et crée un message personnalisé, ProcessImportMessage
, qui est envoyé via un bus de messages chaque fois qu'un fichier est téléversé. Un service, MessengerConsumer
, est utilisé pour démarrer le consommateur de messages uniquement lorsque nécessaire, avec une limite de temps pour s'arrêter automatiquement. Le message est ensuite traité par un gestionnaire qui importe les données et gère les erreurs, offrant ainsi une solution efficace et économique pour les traitements peu fréquents.
L'article explique comment utiliser Uptime Kuma, un outil de surveillance auto-hébergé, pour surveiller l'état de plusieurs Freebox à distance. L'auteur décrit la configuration nécessaire, incluant l'activation de l'accès à distance et la réponse au ping sur les Freebox, ainsi que l'utilisation de noms de domaine personnalisés fournis par Free. Uptime Kuma envoie des alertes par SMS via l'API de Freemobile en cas de détection de panne, permettant ainsi à l'auteur de vérifier et de diagnostiquer rapidement les problèmes de connexion Internet pour les membres de sa famille.
L'article explique comment déployer un serveur Counter-Strike 2 sur Kubernetes en utilisant une image conteneur existante. Il guide à travers plusieurs étapes clés : la création d'un Namespace pour isoler les ressources, la configuration d'un Deployment basique, la mise en place d'un PersistentVolumeClaim pour le stockage persistant, et l'injection d'une ConfigMap pour la configuration du serveur. Il expose également les ports nécessaires et crée un Service de type NodePort pour rendre le serveur accessible publiquement. L'article suppose que le lecteur a déjà un cluster Kubernetes fonctionnel et utilise des commandes kubectl pour appliquer les configurations. Enfin, il propose des pistes pour aller plus loin, comme l'utilisation de l'outil k9s pour naviguer dans le cluster.
Je cite l'auteur "Spatzi est un outil en ligne interactif conçu pour aider les designers et développeurs à créer des palettes de couleurs accessibles.
Il permet de vérifier les ratios de contraste selon les normes WCAG (Web Content Accessibility Guidelines) et APCA (Accessible Perceptual Contrast Algorithm), et d'explorer des variations de couleurs en utilisant l'espace colorimétrique OKLCH (Luminance, Chroma, Hue)."
L'article aborde un problème courant mais critique dans les projets Symfony utilisant Doctrine et le Symfony Serializer. L'auteur décrit une expérience de débogage où une erreur de mémoire épuisée a été causée par l'utilisation négligente du serializer par défaut de Symfony, qui utilise les métadonnées de Doctrine, entraînant une consommation excessive de mémoire. Le problème est survenu lors de la sérialisation de grandes quantités de données dans une entité contenant de grands champs JSON. La solution proposée consiste à créer un adaptateur de serializer léger qui évite complètement les métadonnées de Doctrine. L'article souligne l'importance d'utiliser des serializers adaptés pour les données internes de débogage ou de sauvegarde et met en garde contre l'utilisation du serializer par défaut pour les entités avec de grandes ou des données imbriquées, afin de rester en contrôle de l'utilisation de la mémoire.
L'article explique comment tester la documentation OpenAPI avec PHP pour garantir que le comportement d'une API correspond à sa documentation. Il propose d'intégrer la validation OpenAPI dans des tests fonctionnels en utilisant la bibliothèque league/openapi-psr7-validator
. L'approche consiste à créer une classe abstraite qui facilite la vérification des requêtes et réponses HTTP par rapport à la spécification OpenAPI. Cela permet de maintenir la cohérence entre le code et la documentation tout au long du développement, améliorant ainsi la qualité et la fiabilité de l'API.
Ce guide explique comment construire un système RAG (Retrieval-Augmented Generation) local pour traiter des PDF en utilisant DeepSeek-R1, LangChain, Ollama et Streamlit. Il met l'accent sur la confidentialité et l'efficacité en effectuant toutes les opérations localement, sans frais d'API récurrents. Le système utilise LangChain pour orchestrer le flux de travail, DeepSeek-R1 pour le raisonnement et la génération de réponses, Ollama pour déployer les modèles localement, ChromaDB pour stocker et récupérer les embeddings de documents, et Streamlit pour une interface utilisateur intuitive. Le guide fournit des instructions étape par étape pour installer les prérequis, configurer le projet, et exécuter l'application, permettant aux utilisateurs de poser des questions sur des documents PDF téléchargés et d'obtenir des réponses précises et rapides.
L'article explore l'utilisation du Shadow DOM dans le cadre des Web Components. L'auteur explique que les Web Components ne se limitent pas aux Custom Elements, mais incluent également le Shadow DOM et les HTML Templates, chacun jouant un rôle spécifique. Le Shadow DOM permet d'encapsuler le HTML et le CSS, isolant ainsi les composants pour éviter les conflits et maintenir une séparation claire des préoccupations. L'article aborde les raisons d'être du Shadow DOM, son utilisation pour isoler les composants dans les applications web modernes, et comment il peut être instancié de manière impérative ou déclarative. L'auteur discute également des différentes options de configuration du Shadow DOM, comme les modes ouvert et fermé, et des fonctionnalités avancées telles que les contenus slottés, qui permettent d'injecter sélectivement du contenu dans les composants. Enfin, l'article souligne l'importance de la maîtrise du Shadow DOM pour améliorer la stabilité, la réutilisabilité et la sécurité des applications web.