L'article traite des problèmes courants liés au DNS dans Kubernetes, en se concentrant sur trois principaux problèmes :
- Problème des ndots : Kubernetes tente d'être intelligent en essayant plusieurs suffixes DNS pour résoudre les noms, ce qui peut entraîner une charge accrue sur le serveur DNS et une latence plus importante. La solution consiste à utiliser des noms de domaine complets (FQDN) ou à ajuster la valeur de ndots.
- Problème de Lameduck : Lors de la suppression d'un pod, il peut y avoir un délai avant que kube-proxy ne mette à jour les règles iptables, ce qui peut entraîner des erreurs de connexion. La solution consiste à configurer un délai de grâce (lameduck) pour permettre à kube-proxy de se réconcilier.
- Problème de conntrack : Il existe un bug non corrigé dans kube-proxy en mode iptables qui provoque une perte de trafic UDP lors de la suppression d'un pod, affectant particulièrement le DNS. Les solutions partielles incluent l'ajout d'un timeout DNS ou la limitation du redémarrage des pods CoreDNS.
L'article souligne que ces problèmes peuvent avoir un impact significatif sur les performances et la fiabilité des clusters Kubernetes, en particulier ceux hébergés sur des plateformes comme AWS EKS.
L'article présente une liste de conseils pour les tests avec PHPUnit, certains spécifiques à Laravel et d'autres non. J'en retiens :
- assertEqualsCanonicalizing qui permet de vérifier que 2 tableaux sont "égaux", sans tenir compte de l'ordonnancement des valeurs
- l'attribut #[\PHPUnit\Framework\Attributes\DoesNotPerformAssertions] qui permet de dire à PHPUnit qu'un test ne vérifie aucune assertion (ce qui déclenche normalement une erreur dans PHPUnit)
- l'attribut #[\PHPUnit\Framework\Attributes\RunInSeparateProcess] permet de préciser à PHPUnit d'exécuter les tests dans plusieurs processus... ça permet par exemple de définir une même constante dans 2 méthodes de tests de la même classe.
- la méthode $this->markTestSkipped('test are skipped because ...'); permet de sauter l'exécution d'un test, $this->markTestIncomplete('test are incomplete but not in error'); permet d'indiquer qu'un test est incomplet (??) et $this->fail('test are failed !'); permet de marquer un test comme échoué quoi qu'il arrive.
- phpunit --order-by=random permet de lancer les tests dans un ordre aléatoire - c'est très pratique pour détecter les dépendances implicites entre les tests. phpunit --order-by=random --random-order-seed=1234 permet même de rejouer le même ordre aléatoire, notamment pour reproduire un échec.
- phpunit --stop-on-failure --stop-on-error permet de stopper l'exécution des tests dès la première erreur rencontrée
- enfin en utilisant l'attribut #[\PHPUnit\Framework\Attributes\Group('mon_super_groupe')], on peut exclure les tests de ce groupe vendor/bin/phpunit --exclude-group mon_super_groupe ou au contraire ne jouer que les tests de ce groupe vendor/bin/phpunit --group flaky
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 présente 5 scripts Bash dont on peut s'inspirer pour construire les nôtres.
- Création d'un backup
- Surveillance du CPU, de la mémoire et de l'espace disque disponible avec alerte en cas de besoin
- Audit de sécurité rapide
- Vérification rapide de la réponse des sites
- Partitionnement de disque dur
L'article présente 10 fonctionnalités récentes des CSS :
- Min, max and clamp - min et max se passent de commentaires, et clamp permet de combiner les deux - une valeur minimale, une valeur préférée, et une valeur maximale
- Container queries - les container query font que les éléments répondent à la taille du conteneur de leur parent plutôt qu'à celle du viewport
- text-wrap: balance & pretty - cette propriété contrôle comment le texte est réparti entre les lignes pour améliorer la lisibilité, la valeur "balance" crée des lignes de longueur égale, alors que "pretty" évite les orphelines (mots se retrouvant seuls sur la dernière ligne)
- CSS Relative Color Syntax - la syntaxe "from" permet d'extraire et de modifier des composants individuels pour toute source de couleur
- Margin Block/Inline Properties - ces propriétés de marge et de padding (margin-block, margin-inline, padding-block, padding-inline) répondent aux besoins induits par différents modes d'écriture et de direction de lecture en CSS, remplaçant les propriétés left / right / top / bottom
- @starting-style - permet d'animer des éléments depuis display:none, en définissant des styles initiaux quand un élément apparaît
- :has() - permet de sélectionner des éléments parents, en se basant sur leurs enfants
- Media Query Ranges - simplifie la syntaxe pour définir des intervalles min/max - light-dark - est un raccourci pour définir différentes valeurs basées sur les préférences de l'utilisateur sur le mode (sombre / light)
- color-scheme - est utile en combinaison avec light-dark, pour informer le navigateur quel jeu de couleurs est supporté par un composant, ce qui permet aux éléments natifs de correspondre automatiquement aux préférences de l'utilisateur
- Nesting - permet d'écrire des CSS en imbriquant les sélecteurs enfants dans leurs parents
- Units - de nouvelles unités comme dvh sont apparues (pour les navigateurs mobiles)
- @layer - permet de gérer des conflits de spécificité en ordonnant explicitement les groupes de styles.
10 commandes linux méconnues et pourtant bien utiles : renommage de fichiers en masse, afficher la progression d'une copie de fichier, afficher les numéros de ligne, etc.
L'autuer partage 13 astuces pour le terminal : répéter, corriger, etc. Je ne les connaissais pas toutes
Dans cet article, on voit :
- Les formats de certificats
- Manipulation des certificats avec OpenSSL
- Visualiser le contenu d’un certificat
- Convertir entre différents formats
- Extraire des éléments d’un fichier PKCS#12
- Créer et gérer des clés privées
- Vérifier une clé privée et un certificat
- Vérifier la chaîne de certificats
- Générer une demande de signature de certificat (CSR)
- Créer un certificat auto-signé
- Examiner une demande de signature de certificat (CSR)
- Vérifier et tester un site web TLS
- Bonnes pratiques pour la gestion des certificats
L'article propose une approche pragmatique pour mettre en place un design system en trois mois. Il s'appuie sur des outils concrets comme le Design System in 90 Days Canvas de Dan Mall, un modèle FigJam qui aide à structurer les discussions avec les parties prenantes, identifier les composants clés et évaluer les besoins des équipes. L'article présente également des ressources pratiques telles que les Design System Tactics de Ness Grixti et une checklist PDF de Nathan Curtis pour guider les ateliers d'équipe. Une lecture utile pour toute organisation souhaitant lancer ou améliorer son design system de manière structurée et collaborative.
Une liste d'outils d'IA sans inscription
Plus de 700 applications en auto-hébergement déployables via Docker Compose
Des thèmes GRUB avec quelques explications pour les customiser
Ce dépôt Github liste des intégrations de LLM dans PHP. Chaque intégration doit être open source (licence), être stable ou en développement actif et être installable via composer.
L'article explore diverses applications et outils utilisant la technologie WebRTC. Il aborde des sujets tels que le débogage avec test.webrtc.org, les outils de ligne de commande pour STUN et TURN, et les bibliothèques comme PeerJS et Yjs pour des applications collaboratives. L'article mentionne également des serveurs WebRTC comme Janus, Kurento, et Mediasoup, ainsi que des applications spécifiques telles que Jitsi, Pion, et Screego pour le partage d'écran sécurisé. Il souligne l'importance de WebRTC dans les communications en temps réel et les défis associés à son implémentation
.
Dans son article, Scott H. Young partage ses lectures et ses réflexions sur le sommeil, thème du septième mois de son projet annuel "Foundations". Il souligne l'importance du sommeil pour la cognition, l'humeur et le système immunitaire, et critique la valorisation culturelle de la privation de sommeil. Il explique que le sommeil est régulé par deux processus : l'accumulation de la pression de sommeil (Processus S) et le cycle jour-nuit (Processus C), qui peuvent être perturbés par la caféine et la lumière artificielle. Il résume plusieurs livres sur le sommeil, abordant des sujets tels que l'insomnie, les rythmes de sommeil historiques, la neuroscience du sommeil et des rêves, et les effets des siestes. Il mentionne également les effets du café et l'importance de la lumière pour réguler le rythme circadien.
Tout est dans le titre
L'article présente dix fonctions Python moins connues mais très utiles pour améliorer l'efficacité et la lisibilité du code. Voici un résumé des fonctions abordées :
- bisect : Permet de maintenir des listes triées et de trouver des points d'insertion efficacement.
- itertools.pairwise : Génère des paires consécutives dans une séquence, utile pour l'analyse des tendances.
- statistics.fmean : Calcule la moyenne plus rapidement et avec une meilleure précision que
mean()
. - itertools.takewhile : Traite les séquences jusqu'à ce qu'une condition ne soit plus remplie.
- operator.attrgetter : Simplifie l'extraction d'attributs d'objets, utile pour le tri.
- itertools.chain.from_iterable : Aplatit les structures imbriquées de manière efficace.
- functools.cache : Met en cache les résultats de fonctions pour accélérer les calculs répétitifs.
- contextlib.suppress : Permet de gérer les exceptions de manière plus propre sans code superflu.
- pathlib.Path.glob : Recherche des fichiers correspondant à un motif spécifique dans un répertoire.
- dataclasses.asdict : Convertit facilement des objets en dictionnaires pour une manipulation ou une sérialisation JSON simplifiée.
Ces fonctions permettent de simplifier des opérations complexes et d'améliorer la performance du code.
L'auteur défend WordPress contre les critiques des développeurs. Il souligne que WordPress alimente 43,4% des sites web mondiaux et est utilisé par de grands acteurs comme la Maison Blanche et TechCrunch. L'article retrace l'histoire de WordPress, de ses débuts en 2003 à son évolution avec des fonctionnalités modernes comme l'éditeur Gutenberg. Il explique les composants clés de WordPress : thèmes, plugins, hooks, et modèle de données. L'article présente également des outils modernes comme Themosis, Bedrock, Sage, WP-CLI, et Timber, qui améliorent le développement WordPress. Enfin, il compare WordPress aux approches full-stack modernes, concluant que WordPress reste un choix pertinent pour de nombreux projets web
.
Voici la liste des conférences présentées lors du SymfonyLive Paris 2025, avec un résumé pour chacune :
-
Keynote de Fabien Potencier :
- Fabien a retracé l'histoire de l'initiative DX de Symfony et a démontré la flexibilité de Symfony avec des exemples comme "Symfony Hello" et "Symfony Solo".
-
Le composant Symfony Mapper – Antoine Bluchet :
- Présentation du nouveau composant ObjectMapper de Symfony, qui facilite la transformation de données entre différentes structures dans les applications Symfony.
-
API Platform sans Doctrine – Jérôme Tamarelle :
- Jérôme a montré comment optimiser les performances d'API Platform en utilisant des fonctionnalités JSON de PostgreSQL pour réduire le nombre de requêtes SQL.
-
Développer avec API Platform 4 – Mathias Arlaud :
- Mathias a expliqué les évolutions d'API Platform, notamment l'utilisation de DTO et la découplage du modèle de données en base et la représentation en API.
-
Passkeys pour une authentification fluide et sécurisée – Rémi Janot :
- Rémi a présenté WebAuthn, une API permettant l'authentification sans mot de passe traditionnel, en utilisant des authentificateurs comme les lecteurs d'empreintes digitales.
-
Rôles & permissions : développer une marque blanche avec du feature flipping – Florian Bogey :
- Florian a détaillé l'utilisation des rôles et permissions dans Symfony pour gérer une application multi-clients en marque blanche, avec un système de feature flipping.
-
Symfony UX : Points forts de 2024 et perspectives d’avenir – Simon André :
- Simon a analysé l'adoption des composants UX par la communauté Symfony et a présenté les futures améliorations et changements.
-
Atteindre la qualité d’une SPA avec HTMX et Twig – Damien Alexandre :
- Damien a montré comment utiliser HTMX pour créer des applications web dynamiques et réactives sans trop de JavaScript, en utilisant des attributs dans Twig.
-
Développer plus vite avec FrankenPHP – Kévin Dunglas :
- Kévin a présenté FrankenPHP, une combinaison performante d'un runtime PHP, d'un serveur Web et d'un serveur SSE, pour améliorer les performances de développement.
-
Asynchrone avec Symfony Messenger et Mercure – Grégoire Pineau :
- Grégoire a expliqué comment combiner Symfony Messenger et Mercure pour des traitements asynchrones et des notifications en temps réel, améliorant ainsi la performance et l'expérience utilisateur.
-
Du Lego de composants pour un bundle Gotenberg – Hubert Lenoir, Adrien Roches :
- Les conférenciers ont présenté l'utilisation de Gotenberg pour la génération de PDF et ont mis en lumière des fonctionnalités avancées de PHP et Symfony.
-
Tirez profit de Messenger pour améliorer votre architecture – Tugdual Saunier :
- Tugdual a montré comment utiliser le composant Messenger en synchrone pour améliorer l'architecture d'une application, en utilisant des messages pour faire circuler des appels à des services.
-
Keynote – Nicolas Grekas :
- Nicolas a présenté les nouvelles fonctionnalités à venir dans Symfony, notamment dans les versions 7.4 (LTS) et 8, comme le support de HTTP/3 dans le HttpClient.
Ces conférences ont couvert divers aspects de Symfony, de l'amélioration des performances à l'optimisation de l'architecture, en passant par la sécurité et les nouvelles fonctionnalités.
Ce dépôt contient des liens vers l'ensemble des diapositives des présentations du SymfonyLive Paris 2025