Quotidien Shaarli
Hier - September 9, 2026
L'article révèle qu'une instance Yunohost initialement configurée pour être privée derrière une Freebox est devenue accessible publiquement sur Internet. Cette exposition inattendue n'était pas due à un bug des mises à jour de la Freebox ou à des problèmes de certificats.
La cause principale identifiée est l'activation du protocole UPnP IGD (Universal Plug and Play - Internet Gateway Device) sur la Freebox. Ce protocole, lorsqu'il est activé, permet aux appareils connectés d'ouvrir automatiquement les ports nécessaires, contournant ainsi les règles de NAT manuelles mises en place et rendant la machine Yunohost visible de tout Internet.
L'auteur a désactivé cette fonction UPnP IGD pour restaurer la restriction d'accès souhaitée. Il envisage désormais de placer sa machine Yunohost derrière un routeur dédié comme Pfsense ou Opnsense pour renforcer la sécurité.
Dans une architecture CQRS, la synchronisation entre la base de données de lecture et celle d'écriture est un défi majeur pour éviter la présentation d'informations obsolètes. Une stratégie de synchronisation en deux étapes est nécessaire pour équilibrer la performance de la base de données de lecture et la cohérence de la base de données d'écriture.
Face à des volumes importants de données et à des besoins de recherche performante, comme dans le cas d'une recherche de disponibilités hôtelières, une base de données unique avec de nombreux index peut devenir inefficace. L'adoption d'une architecture CQRS, séparant la gestion des commandes et des requêtes, permet d'optimiser ces aspects en utilisant une base de données dédiée à la lecture, telle que MongoDB, enrichie d'index appropriés.
Pour maintenir la cohérence entre la base de données principale (PostgreSQL) et la base de données de recherche (MongoDB), une approche asynchrone est privilégiée. Les modifications apportées à PostgreSQL sont publiées sur un broker de messages, et MongoDB les traite lorsque sa charge de lecture le permet, garantissant ainsi que les opérations d'écriture restent rapides. Pour pallier les risques liés aux opérations asynchrones, des reconstructions planifiées de la base de données de lecture sont effectuées, généralement pendant les périodes de faible activité, afin d'assurer la mise à jour des données.
-
L'article aborde le problème de la dépendance à des plateformes logicielles américaines comme GitHub, qui, au-delà de la simple gestion de code, représentent des réseaux sociaux et des usines logicielles. La concentration du marché, dominé par GitHub, soulève des questions de souveraineté et de sécurité des données, particulièrement à la lumière de lois américaines comme le Cloud Act et la FISA, qui peuvent contraindre ces plateformes à partager des informations sensibles avec les autorités américaines.
Face à ces risques, l'article explore les alternatives européennes. Il mentionne le self-hosting avec Forgejo, un fork de Gitea maintenu par l'organisation Codeberg, jugé comme la seule option viable dans ce domaine, bien que présentant des défis de maintenance. Pour les solutions hébergées, Codeberg.org est présenté comme une option pour les projets open source, tandis que Tangled.org est mentionné comme un projet prometteur s'appuyant sur ATProto.
En résumé, la dépendance vis-à-vis de GitHub pose des risques liés à la souveraineté des données et aux lois américaines. L'article propose des alternatives européennes comme Forgejo pour le self-hosting et explore des solutions hébergées, tout en soulignant leurs limitations actuelles pour les projets d'entreprise.
L'article explore le concept de "Agentic Coding" en comparant le développement de composants graphiques personnalisés à l'aide de primitives D3 et de la librairie Recharts. L'auteur a découvert que l'approche basée sur les primitives D3 a permis de satisfaire pleinement les exigences de conception complexes, y compris les animations et les comportements spécifiques, sans nécessiter de contournements coûteux.
En contraste, la librairie Recharts, bien que plus rapide pour les cas courants, a rapidement montré ses limites pour atteindre les 20% de personnalisation restants, obligeant à coder du SVG personnalisé et à désactiver des fonctionnalités comme les animations pour contourner des problèmes de compatibilité avec la pile React du projet.
L'auteur redéfinit l'abstraction non pas comme un coût nul, mais comme un travail d'implémentation pré-payé qui offre de la flexibilité en échange. L'histoire du développement web est vue comme une ascension progressive de cette échelle d'abstraction, où chaque étape convertit du travail humain coûteux en dépendances moins chères, mais où les besoins spécifiques finissent par révéler les contraintes de ces abstractions de haut niveau.