L'article explique comment créer des snapshots de volumes persistants dans Kubernetes en utilisant Rook-Ceph. L'auteur décrit d'abord l'utilisation de VolSync pour les sauvegardes, mais souligne ses limites avec les snapshots. Il détaille ensuite l'installation du CSI Snapshotter et la création d'une VolumeSnapshotClass pour configurer les paramètres de snapshot. L'article montre comment créer un PersistentVolumeClaim (PVC) et un Pod pour tester les snapshots, et comment créer et restaurer un snapshot. Enfin, il mentionne l'utilisation de DataMover comme Velero pour stocker les snapshots vers un stockage distant et évoque les prochaines étapes pour tester ces outils dans son lab.
L'article d'Alex Wlchan explique une méthode plus rapide pour copier des bases de données SQLite entre ordinateurs. En utilisant la commande .dump
de SQLite, on peut convertir la base de données en un fichier texte contenant des instructions SQL, ce qui réduit considérablement la taille du fichier. Ce fichier texte, qui peut être encore compressé avec gzip, est plus rapide à transférer. Une fois copié, le fichier texte peut être utilisé pour reconstruire la base de données locale. Cette approche évite les problèmes de corruption lors de la copie de gros fichiers et améliore l'efficacité des transferts, surtout pour les bases de données volumineuses.
Complément et suite de https://blog.victor-hery.com/2024/02/ssh-openssl-haproxy.html , l'article explore des améliorations de configuration pour HAProxy, en se concentrant sur l'intégration de SSH via HTTPS et l'optimisation de HTTP/2. L'auteur explique comment utiliser les abstract namespaces pour améliorer les performances et simplifier la configuration, tout en détaillant l'importance de l'extension TLS ALPN pour la négociation du protocole HTTP/2. L'article aborde également les avantages des abstract namespaces par rapport aux sockets Unix traditionnels, en termes de rapidité et d'efficacité. Enfin, il propose une configuration finale optimisée pour HAProxy, permettant une gestion plus discrète et performante des connexions SSH et HTTP/2.
Plakar est un outil de sauvegarde moderne pour Linux, offrant des fonctionnalités avancées comme la déduplication, le chiffrement de bout en bout, et la compression des données pour optimiser l'espace de stockage. Il permet des sauvegardes incrémentielles, ce qui le rend efficace pour des sauvegardes fréquentes, et supporte les sauvegardes distantes via SFTP. L'outil fonctionne avec un agent et propose une interface en ligne de commande ainsi qu'une interface graphique rudimentaire pour gérer les sauvegardes, les restaurations, et la vérification de l'intégrité des données. Plakar ne nécessite pas de base de données externe, stockant les métadonnées directement dans le dépôt de sauvegarde.
L'article introduit le Core Model, une méthodologie pratique qui révolutionne le développement numérique traditionnel en commençant par une hypothèse sur les besoins des utilisateurs plutôt que par des solutions préconçues. En posant six questions clés dans le bon ordre, cette approche aligne les équipes pluridisciplinaires autour des tâches des utilisateurs et des objectifs commerciaux, créant ainsi une clarté qui transcende les limites organisationnelles. Le processus commence par une préparation en amont pour identifier les priorités et former des hypothèses initiales, suivies d'un atelier collaboratif où des paires de participants travaillent ensemble pour valider et affiner ces hypothèses. Les six éléments du Core Model — groupe cible, tâches des utilisateurs, objectifs commerciaux, chemins d'accès, chemins de progression et contenu principal — créent un cadre structuré qui guide les équipes vers des solutions efficaces. L'article souligne l'importance de travailler en paires interdisciplinaires pour favoriser l'innovation et la qualité, et conclut en expliquant comment cette méthodologie peut être mise en œuvre pour améliorer la collaboration et obtenir de meilleurs résultats dans les projets numériques.
L'article explique comment transformer son réseau domestique en un environnement productif en utilisant des conteneurs Docker pour créer des alternatives privées aux services cloud. L'auteur décrit comment Docker facilite le déploiement d'applications et de services sans avoir à gérer des machines virtuelles complexes. Parmi les applications recommandées, on trouve Nextcloud pour le stockage et la collaboration de documents, Grocy pour la gestion des courses et des repas, Tududi pour la gestion des tâches, Bitwarden pour la gestion sécurisée des mots de passe, et Portainer pour la gestion des conteneurs Docker. Ces outils permettent de créer un écosystème privé, sécurisé et flexible directement depuis son réseau local.
L'article explore comment le Playwright MCP (Model Context Protocol) en mode Agent peut naviguer de manière autonome dans une application, découvrir des fonctionnalités clés et générer des tests exécutables sans script manuel. À travers une démonstration en direct sur une application de films, l'auteur montre comment le MCP peut découvrir des cas limites, construire une couverture de test et même révéler des bugs non détectés manuellement. L'agent explore l'application, interagit avec elle comme un utilisateur réel, et génère automatiquement des tests basés sur ces interactions, offrant ainsi une approche puissante d'assistance par IA pour le développement et les tests.
Un guide pour la sécurisation d'un serveur linux
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 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 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.
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.
Il s'agit d'un générateur de site statique pour la diffusion de musique.
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.
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 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.
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 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.
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 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.