L'article présente l'utilisation de base de Imagemagick
L'auteur présente les PSR - PHP Standard Recommandations : leur histoire, à quoi elles servent, et surtout il détaille les principales :
- PSR-1, normes de codage de base
- PSR-2, guide de style - remplacé par PSR-12
- PSR-3, interface pour les logger
- PSR-4, autoloading
- PSR-7, HTTP message interface
- PSR-11, interface pour les containers d'injection de dépendance
L'auteur présente les éléments à prendre en compte pour générer un flux RSS :
- choix du format (RSS, Atom, JSON)
- balises selon le format
- découvrabilité du flux
- catégories
- adaptation des règles HTTP selon la charge du serveur
L'auteur expose plusieurs concepts et bonnes pratiques de git, en revisitant Blanche-Neige. C'est assez drôle, bien écrit et surtout très compréhensible.
Symfony dispose de fonctionnalités sur les chaînes de caractères depuis longtemps (Symfony 5) avec plein d'utilitaires très pratiques : gestion de l'unicode, enchaînement de méthodes (interface fluente), prise en charge de l'internationalisation, etc.
L'article explique comment implémenter le design pattern Strategy dans Symfony 7 pour gérer des comportements différents sous certaines conditions sans utiliser de multiples instructions if. Ce modèle permet de créer des stratégies distinctes et testables individuellement, rendant le code plus élégant et professionnel. L'article décrit la structure du modèle, composée d'une classe de contexte, de classes de stratégie individuelles et de classes auxiliaires. Trois exemples concrets sont fournis : une règle métier, des opérations avec API Platform, et une recherche intelligente avec Doctrine. L'utilisation du pattern Strategy dans Symfony 7 est présentée comme une solution efficace pour centraliser et simplifier la gestion des comportements variés dans une application.
L'article explique comment améliorer la structure et la performance des services dans Symfony en utilisant les "service subscribers". Il commence par souligner les problèmes liés au chargement automatique de nombreux services, qui peuvent entraîner une instanciation inutile de dépendances et compliquer l'extensibilité. La solution proposée est d'implémenter l'interface ServiceSubscriberInterface, ce qui permet de charger les services de manière paresseuse, c'est-à-dire uniquement lorsqu'ils sont réellement nécessaires. L'article montre également comment créer une classe de base abstraite pour centraliser la logique des services, améliorant ainsi la maintenabilité et l'expérience des développeurs. Enfin, il aborde l'utilisation de cette approche dans un bundle Symfony pour gérer des dépendances optionnelles, rendant les services plus modulaires et légers.
Zeropod est un outil Kubernetes qui permet de mettre en pause les conteneurs inactifs et de les restaurer automatiquement lors d'une nouvelle connexion TCP, offrant ainsi une solution de "scale-to-zero". Il écoute sur le même port que l'application et restaure le conteneur en quelques millisecondes, ce qui est presque imperceptible pour l'utilisateur. L'état complet de l'application est préservé grâce à la sauvegarde de la mémoire sur le disque pendant le checkpointing. Zeropod ajuste également les demandes de ressources à l'état réduit si le cluster le supporte et permet la migration des pods mis à l'échelle sans redémarrage. Cet outil est particulièrement utile pour économiser des ressources tout en maintenant la réactivité des applications. L'auteur reste néanmoins sceptique sur l'usage en l'état puisqu'il est impossible d'avoir des containers en prod sans liveness / readiness.
L'article explique comment créer un cas de test HTML simple pour signaler un bug ou un comportement inattendu. Il recommande d'utiliser des outils en ligne comme jsfiddle ou codepen, mais préfère souvent les URLs de type data: pour partager du code rapidement. L'auteur illustre cela avec un exemple de code HTML et JavaScript qui extrait une valeur de style, montrant les différences de résultats entre les navigateurs. Il démontre comment condenser ce code en une seule ligne et l'utiliser directement dans la barre d'URL d'un navigateur. Enfin, il mentionne avoir ouvert un rapport de bug pour le problème discuté.
L'article est une introduction pour comprendre et utiliser correctement les Accessible Rich Internet Applications. Il explique que ARIA est utilisé pour améliorer l'accessibilité des sites web en fournissant des informations supplémentaires aux technologies d'assistance, comme les lecteurs d'écran. L'auteur souligne l'importance d'utiliser des éléments HTML natifs chaque fois que possible et de ne pas modifier leur sémantique inutilement. Il met également en garde contre certaines idées fausses courantes et fournit des conseils pour aborder ARIA de manière efficace. Enfin, l'article insiste sur le fait que l'utilisation correcte d'ARIA peut grandement améliorer l'expérience des utilisateurs dépendant de technologies d'assistance.
L'article présente le pattern Spécification, à quoi il sert et comment l'implémenter. C'est dans le cadre d'une application Laravel, mais ça se transpose facilement dans d'autres situations.
L'article décrit une mise à jour majeure de l'infrastructure d'un data center personnel, surnommée "la Brasserie". L'autrice raconte comment un incident pendant les vacances de Noël, où son routeur principal est tombé en panne, l'a conduit à une refonte complète de son infrastructure. Elle a remplacé le matériel défectueux par un nouveau routeur MikroTik CCR 2004 et a restructuré son réseau en utilisant plusieurs VLANs pour mieux organiser et sécuriser son environnement. L'article détaille les étapes de la migration, y compris la reconfiguration des hyperviseurs XCP-ng, la mise en place de nouveaux VLANs, et la réinstallation de Xen Orchestra pour la gestion des machines virtuelles. L'infrastructure comprend désormais trois serveurs Dell R630, un NAS Synology, et plusieurs outils open source pour le web, les mails, la comptabilité, et le monitoring. L'autrice envisage des améliorations futures, comme l'ajout d'un cluster Kubernetes et l'amélioration de sa stack de monitoring.
L'article explore les implications de l'utilisation des modèles de langage (LLMs) dans la rédaction de blogs techniques. L'auteur, qui a toujours privilégié l'écriture personnelle et authentique, a mené une expérience en utilisant un LLM pour rédiger un article technique sur son blog. Il a constaté que, bien que les LLMs puissent reproduire un style d'écriture personnel de manière convaincante, le contenu généré reste souvent générique et manque de profondeur contextuelle. L'auteur souligne que, malgré les avancées technologiques, les articles générés par IA nécessitent encore beaucoup de révisions et de guidage pour atteindre un niveau satisfaisant. Il conclut que les LLMs peuvent être utiles pour des sujets très spécifiques ou des retours d'expérience, mais qu'ils ne remplacent pas encore l'authenticité et la richesse d'un article rédigé par un humain.
L'article explique les concepts clés du Site Reliability Engineering (SRE) tels que les SLO (Service Level Objectives), SLI (Service Level Indicators), et Error Budget, introduits par Google. Il souligne l'importance de distinguer les SLA (Service Level Agreements), qui sont des contrats avec des pénalités financières, des SLO, qui sont des objectifs internes pour la fiabilité des services. L'article met l'accent sur l'identification des Critical User Journeys (CUJ), qui sont les parcours utilisateurs critiques pour le succès d'un service. Les SLI sont utilisés pour mesurer la performance de ces parcours, tandis que les SLO définissent des objectifs réalistes pour ces mesures. Enfin, l'Error Budget est présenté comme un outil pour gérer la fiabilité des services, permettant aux équipes de prendre des risques calculés tant que les objectifs de fiabilité sont respectés.
L'article propose une amélioration de l'API pour le ResizeObserver, un outil JavaScript utilisé pour observer les changements de taille des éléments DOM. L'auteur suggère d'encapsuler la logique du ResizeObserver dans une fonction plus simple et réutilisable, ce qui rend son utilisation plus intuitive et proche des modèles d'écouteurs d'événements familiers. En passant un élément et une fonction de rappel à cette fonction personnalisée, les développeurs peuvent facilement réagir aux changements de taille sans avoir à réécrire le code standard du ResizeObserver à chaque fois. De plus, l'article montre comment intégrer des options supplémentaires et gérer l'arrêt de l'observation, offrant ainsi une solution plus flexible et maintenable. Enfin, il mentionne une bibliothèque appelée Splendid Labz qui offre une version améliorée de cet observateur, capable de gérer plusieurs éléments simultanément.
L'article explore l'utilisation de SPIFFE (Secure Production Identity Framework for Everyone) et du mTLS (mutual Transport Layer Security) avec cert-manager dans un environnement Kubernetes. SPIFFE est un standard open-source qui utilise des certificats X.509 pour sécuriser les échanges entre les workloads dans des architectures microservices, contrairement à Kerberos qui est plus adapté aux architectures monolithiques. L'article détaille l'installation et la configuration de cert-manager, un contrôleur Kubernetes pour la gestion des certificats, en désactivant l'approbation automatique des certificats pour une gestion plus sécurisée. Il explique également l'utilisation de trust-manager pour propager les certificats de confiance et du CSI Driver SPIFFE pour monter automatiquement les certificats SPIFFE dans les pods Kubernetes. Enfin, l'article présente une application simple utilisant SPIFFE pour communiquer en mTLS, soulignant l'importance de recharger régulièrement les certificats pour éviter les problèmes d'expiration.
L'article compare 2 manières de sérialiser des données : JSON et Proto (Protocol Buffer). Il conclue en donnant une règle : si des humains vont devoir lire les données échangées, préférer le JSON. Si ce sont des machins, préférer Proto.
L'article critique deux pratiques courantes dans le domaine du monitoring : le sampling des données et l'utilisation de S3 comme solution de stockage principale. Le sampling, bien que présenté comme une solution économique, peut entraîner une perte de granularité cruciale, rendant invisibles des problèmes intermittents et compliquant le débogage. De plus, l'utilisation de S3, bien que durable et économique, introduit des latences importantes et des coûts cachés, rendant les opérations de monitoring inefficaces et coûteuses en situation de crise. L'auteur souligne que ces pratiques peuvent transformer le monitoring en un processus inefficace, avec des conséquences graves lors d'incidents majeurs. Il recommande d'investir dans des solutions de monitoring adaptées pour éviter ces pièges et garantir une visibilité opérationnelle complète.
Il s'agit d'une introduction à l'art génératif : ce que c'est, comment débuter et où "exposer"
L'article souligne qu'il est presque impossible pour les individus d'évaluer les avantages ou les inconvénients des chatbots et des agents par eux-mêmes en raison des biais cognitifs qu'ils déclenchent. Il critique également la mauvaise qualité des recherches dans les domaines de la technologie et de la productivité, souvent influencées par le marketing. L'auteur met en garde contre l'effet de la bulle de l'IA, qui biaise presque tout le monde, y compris les institutions et les autorités. Il conclut en affirmant que, face à ces enjeux, la décision rationnelle et responsable est d'éviter les modèles génératifs jusqu'à ce que la bulle éclate.