46 liens privés
L'article traite de la modélisation des invariants métiers dans le cadre du Domain-Driven Design (DDD) et de l'importance des agrégats (Aggregates). Il aborde la complexité de maintenir ces invariants, notamment lorsque les règles métiers deviennent plus complexes. L'exemple donné est celui d'une application e-commerce où la quantité de produits par commande est limitée. L'article explore deux approches pour gérer ces invariants : une approche simple où l'invariant est vérifié au niveau de l'objet LineItem
, et une approche plus complexe nécessitant la dénormalisation des données pour garantir la cohérence éventuelle (Eventual Consistency). Cette dernière méthode implique de dupliquer certaines informations pour éviter des transactions lourdes et potentiellement bloquantes. L'article souligne également l'importance de la discussion avec les experts métiers pour définir les règles de gestion des invariants et introduit le concept de Job Queue pour assurer la mise à jour asynchrone et robuste des données. En conclusion, la complexité de la solution dépend de la volumétrie des données et des exigences métiers.
L'architecture hexagonale, également connue sous les noms de Ports et Adapters, Onion Architecture, ou Clean Architecture, est un modèle architectural qui vise à protéger le code métier des dépendances externes. Elle utilise des adapteurs pour encapsuler les dépendances externes, permettant ainsi une indépendance totale du code métier. Les avantages incluent la facilité de développement et de test, la protection contre le vendor lock-in, et la possibilité de changer les implémentations externes tardivement. Cependant, cette architecture peut entraîner une phase de conception plus longue et des pertes d'opportunités d'optimisation. Elle est particulièrement adaptée aux modules de taille moyenne ou plus grands, aux projets longs, et aux environnements multiplateformes. Elle est moins adaptée aux petits modules ou aux projets nécessitant un démarrage rapide.
Tout est dans le titre
L'article aborde l'importance de connaître le temps de redémarrage des machines et de s'assurer que les équipements et services reprennent correctement après un reboot. Il soulève des questions sur la fréquence des redémarrages et leur impact sur la disponibilité des services. L'article met en avant la nécessité de tester régulièrement les procédures de redémarrage pour garantir la résilience des systèmes et minimiser les interruptions.
L'article explore la question de savoir quand abandonner un projet ou une activité. Il souligne que, bien que de nombreux conseils se concentrent sur ce qu'il faut entreprendre, il est tout aussi crucial de savoir quand arrêter. Voici les points clés :
-
Évaluation des coûts futurs :
- Il est important de considérer uniquement les coûts et bénéfices futurs, en ignorant les investissements passés (coûts irrécupérables). Par exemple, décider de poursuivre un diplôme en comptabilité ou de changer pour l'ingénierie doit se baser sur les efforts futurs nécessaires, pas sur le temps déjà investi.
-
Planification des points de sortie :
- Définir à l'avance des moments pour réévaluer l'abandon d'un projet peut aider à éviter les décisions impulsives. Cela permet de prendre des décisions plus rationnelles, en évitant les influences émotionnelles immédiates.
-
Considérer la réalité des alternatives :
- Les nouvelles opportunités peuvent sembler plus attrayantes que les projets actuels en raison d'une vision idéalisée. Il est utile de tester brièvement ces alternatives pour en comprendre les défis réels avant de prendre une décision.
-
Respecter ses valeurs :
- Établir des règles claires sur ce qui justifie l'abandon, comme lorsque les valeurs personnelles ne sont plus alignées avec le projet. Il est crucial de ne pas persister dans des situations qui vont à l'encontre de ses principes ou qui ont des coûts disproportionnés par rapport aux bénéfices.
L'article conclut que bien que chaque situation soit unique, avoir un processus réfléchi pour décider quand abandonner peut conduire à de meilleures décisions.
Les CSS Relative Colors permettent de manipuler dynamiquement les couleurs sans recourir à des préprocesseurs comme Sass. Ils offrent une méthode native pour ajuster l'opacité et créer des variations de couleurs directement en CSS. Cette fonctionnalité est supportée par les principaux navigateurs et permet de simplifier la gestion des couleurs dans les projets web. Les couleurs relatives utilisent des fonctions comme rgb()
et hsl()
pour modifier les canaux de couleur, facilitant ainsi la création de thèmes et d'effets visuels cohérents. Elles peuvent également être combinées avec color-mix()
pour des ajustements plus complexes, offrant une flexibilité accrue dans le design web.
L'article décrit un hack économique pour intégrer des interrupteurs sans fil dans un système domotique Home Assistant en utilisant des capteurs Zigbee bon marché. L'auteur explique comment il a transformé des capteurs d'ouverture Zigbee achetés pour environ 3€ chacun en interrupteurs connectés, évitant ainsi des solutions coûteuses comme le Hue Wall Switch Module de Philips.
L'auteur conclut que ce hack est simple, efficace, et économique, permettant d'éviter des dépenses inutiles pour des solutions plus onéreuses.
Tout est dans le titre
L'article traite de l'agrégation de logs avec VictoriaLogs, une solution de centralisation des logs compatible avec Grafana et Prometheus. L'auteur explique comment il a découvert le problème de consommation de mémoire des processus logmon
de Nomad et a cherché une solution plus efficace pour gérer les logs dans un environnement auto-hébergé avec des ressources limitées.
L'article conclut sur une note positive concernant l'efficacité de VictoriaLogs pour la gestion des logs dans un environnement limité en ressources.
L'article explique comment résoudre un problème de disposition de clavier (azerty) lors de l'utilisation de consoles NoVNC dans Proxmox ou VMware Horizon via Firefox. Le souci vient des paramètres de sécurité renforcée de Firefox, notamment l'option "ResistFingerprinting".
Deux solutions sont proposées :
-
Désactiver l'option "ResistFingerprinting" :
- Aller dans
about:config
et mettre la cléprivacy.resistFingerprinting
àfalse
.
- Aller dans
-
Ajouter des exceptions pour certains domaines :
- Laisser
privacy.resistFingerprinting
àtrue
et ajouter les domaines problématiques dansprivacy.resistFingerprinting.exemptedDomains
.
- Laisser
Ces ajustements permettent de conserver la disposition azerty du clavier sans redémarrer Firefox.
Tout est dans le titre
L'article explique comment filtrer les conteneurs Docker en entrée et en sortie sur une machine Debian utilisant Firewalld et Salt. Voici un résumé succinct :
-
Objectif : Filtrer l'accès aux conteneurs Docker en utilisant les "zones" et "policies" de Firewalld.
-
Problématique : L'intégration de Firewalld avec Docker ne permet pas un filtrage granulaire des conteneurs. La solution proposée est de désactiver l'intégration iptables dans Docker et de configurer Firewalld pour gérer la publication des conteneurs.
-
Prérequis : Un serveur Salt avec les formules
docker-formula
etfirewalld-formula
. -
Configuration :
- Exemple de configuration Salt pour déployer une image Docker de Shaarli et filtrer les accès.
- Configuration de Firewalld pour gérer les zones et les politiques de filtrage.
-
Commandes Utiles :
- Commandes pour lister les zones et politiques Firewalld, ainsi que pour vérifier les configurations de nftables et iptables.
L'article fournit des exemples de configurations et des commandes pour mettre en place ce filtrage.
Tout est dans le titre
Tout est dans le titre
L'article aborde les défis et stratégies pour promouvoir un logiciel en tant que service (SaaS) sans budget marketing. L'auteur partage sa propre expérience avec son produit Blogtally, soulignant l'importance du SEO pour attirer du trafic à long terme.
Il décrit plusieurs piliers de sa stratégie :
- Blog du SaaS : Conçu pour répondre aux questions des utilisateurs et attirer des prospects via les moteurs de recherche.
- Blog personnel : Utilisé pour partager son parcours et attirer du trafic grâce à la transparence (Build In Public).
- Forums et réseaux sociaux : Participer activement pour apporter de la valeur et mentionner son outil de manière pertinente.
- Backlinks : Inscription dans des annuaires d'applications pour améliorer le référencement.
- Ressource de référence : Création d'un "blog starter kit" pour attirer un trafic qualifié et générer des backlinks naturellement.
L'auteur conclut en soulignant les erreurs à éviter, comme l'inaction et l'impatience, et envisage d'explorer d'autres stratégies marketing à l'avenir.
L'article encourage les lecteurs à se lancer dans la création de blogs. L'auteur, passionné par la consommation de contenu de blogs, constate une baisse du nombre de personnes se lançant dans l'écriture d'articles. Il propose un guide pour créer un blog sans dépenser d'argent pour l'hébergement.
Voici les étapes clés :
-
Inventaire des besoins :
- Un domaine (optionnel)
- Du contenu à stocker
- Un support pour modifier le site (sans HTML/CSS brut)
- Un hébergeur gratuit
-
Choix technologiques :
- Utilisation de Markdown pour écrire les articles
- Utilisation d'un générateur de site statique comme Hugo
- Hébergement gratuit via Cloudflare Pages
-
Étapes pratiques :
- Initialisation du site avec Hugo
- Installation d'un thème (ex. PaperMod)
- Configuration de Git pour sauvegarder le projet
- Mise en place d'un pipeline CI/CD pour déployer automatiquement le site sur Cloudflare Pages
L'auteur recommande Hugo pour sa simplicité et son efficacité, et fournit des instructions détaillées pour configurer l'hébergement et le déploiement automatique. Le but est de rendre la création de blogs accessible à tous, même aux débutants.
L'article révèle l'histoire méconnue du projet secret "Delilah" d'Alan Turing, un système de cryptage vocal portatif développé pendant la Seconde Guerre mondiale. Les documents récemment vendus aux enchères, connus sous le nom de "papiers Bayley", détaillent ce projet top-secret mené par Turing et son assistant Donald Bayley. Delilah, composé de trois petites unités, visait à miniaturiser le cryptage vocal, une avancée significative par rapport aux systèmes de cryptage de texte existants. Bien que le projet ait été abandonné après la guerre, il démontre les compétences de Turing en ingénierie électrique et sa contribution à la cryptographie moderne.
Rien à ajouter, la pub c'est une faille de sécurité
L'article explore comment intégrer l'IA dans le développement logiciel tout en maintenant des normes de qualité élevées. Il souligne que bien que l'IA puisse générer du code rapidement, la qualité, la cohérence architecturale et la maintenance à long terme restent des défis.
L'article propose d'utiliser des tests comme contrats pour guider l'IA, en s'inspirant du Test-Driven Development (TDD) et de l'architecture hexagonale. Les tests fournissent un langage formel et sans ambiguïté, permettant à l'IA de mieux comprendre les attentes. En intégrant ces tests dans le processus de développement, l'IA peut itérer sur le code jusqu'à ce que tous les tests soient réussis, assurant ainsi une meilleure qualité du produit final.
L'article conclut que l'expertise humaine reste cruciale pour utiliser efficacement l'IA dans le développement logiciel, notamment en matière de principes algorithmiques et de gestion de projet.