L'article explique comment utiliser et interpréter les plans d'exécution dans PostgreSQL pour optimiser les performances des requêtes. Il commence par souligner l'importance de l'utilisation de la commande EXPLAIN ANALYZE pour comprendre comment PostgreSQL exécute une requête. L'article détaille les différents éléments d'un plan d'exécution, tels que les scans séquentiels et les scans d'index, et explique comment lire ces plans pour identifier les goulots d'étranglement. Il fournit également des conseils pour optimiser les requêtes, comme l'ajout d'index et la réécriture des requêtes pour une meilleure performance. Enfin, l'article aborde les options utiles de EXPLAIN et donne des pistes pour résoudre les problèmes courants identifiés dans les plans d'exécution.
Suite et fin de https://css-tricks.com/better-css-shapes-using-shape-part-1-lines-and-arcs/ https://css-tricks.com/better-css-shapes-using-shape-part-2-more-on-arcs/ et https://css-tricks.com/better-css-shapes-using-shape-part-3-curves/ la quatrième partie de la série sur la fonction shape() en CSS explore les commandes close et move, qui, bien que rarement utilisées, sont incroyablement utiles pour certaines formes complexes. La commande close permet de fermer une forme en revenant automatiquement au point de départ initial, simplifiant ainsi le code et le rendant plus lisible, surtout pour les formes avec plusieurs sous-parties. La commande move, quant à elle, permet de déplacer le point de départ à un nouvel emplacement sans dessiner de ligne, facilitant la création de formes composées de plusieurs parties non connectées. Ces commandes sont particulièrement utiles pour créer des formes découpées et des motifs répétitifs, offrant une grande flexibilité et expressivité. L'utilisation de variables CSS avec ces commandes permet de rendre le code plus adaptable et facile à ajuster, démontrant ainsi la puissance de la fonction shape() pour créer des designs complexes et dynamiques.
Suite de https://css-tricks.com/better-css-shapes-using-shape-part-1-lines-and-arcs/ et https://css-tricks.com/better-css-shapes-using-shape-part-2-more-on-arcs/, la troisième partie de la série sur la fonction shape() en CSS explore la commande curve, essentielle pour créer des courbes de Bézier et maîtriser pleinement cette fonction. Contrairement aux commandes line et arc précédemment abordées, la commande curve offre une flexibilité accrue pour dessiner des formes complexes en spécifiant des points de contrôle, sans nécessiter de connaissances mathématiques approfondies. L'article compare les commandes curve et arc, illustrant comment chacune peut être utilisée pour arrondir les coins des formes avec des résultats légèrement différents. Des exemples pratiques, tels que la création d'onglets arrondis et de polygones arrondis, démontrent l'utilisation de la commande curve en remplaçant les commandes line par des combinaisons de line et curve, bien que les calculs puissent être complexes et nécessiter des ajustements. L'utilisation de variables CSS simplifie la gestion et l'ajustement des formes, rendant la création de designs complexes plus accessible. Enfin, l'article encourage l'expérimentation avec la commande curve pour créer des formes esthétiques et rappelle que des outils en ligne sont disponibles pour faciliter l'utilisation et l'optimisation du code.
Suite de https://css-tricks.com/better-css-shapes-using-shape-part-1-lines-and-arcs/ la deuxième partie de la série sur la fonction shape() en CSS se concentre sur l'utilisation avancée de la commande arc, permettant de créer des formes complexes comme des secteurs et des arcs. L'article, qui suppose une compréhension préalable de la première partie, explore comment manipuler les arcs en utilisant des variables CSS pour contrôler leur taille et leur position, tout en utilisant des mots-clés comme top et center pour simplifier la définition des points. Il aborde les défis liés à la gestion des directions et des tailles des arcs, proposant des solutions pratiques comme l'utilisation de border-radius pour ajuster les formes et l'introduction de conditionnelles en ligne pour modifier dynamiquement les propriétés des arcs. L'article conclut en encourageant l'expérimentation avec la commande arc pour créer des formes esthétiques, tout en notant que la maîtrise des arcs elliptiques est rarement nécessaire pour la plupart des projets.
L'article, 1er d'une série de 4, explore l'utilisation de la nouvelle fonction shape() en CSS pour créer des formes plus complexes et personnalisées. La fonction shape(), actuellement supportée dans Chrome 137+ et Safari 18.4+, permet d'utiliser des commandes similaires à celles de SVG mais avec une syntaxe CSS plus standard, offrant ainsi plus de flexibilité et de fonctionnalités. L'article se concentre sur l'utilisation des lignes et des arcs pour créer des formes, en expliquant comment convertir des chemins SVG en formes CSS et en fournissant des exemples pratiques pour dessiner des rectangles, des découpes circulaires, des onglets arrondis et des rayons inversés. L'auteur souligne également l'importance d'analyser les formes pour simplifier leur création et propose un convertisseur en ligne pour faciliter la transition de SVG à CSS.
Suite de https://www.smashingmagazine.com/2025/06/decoding-svg-path-element-line-commands/ l'article explore les aspects complexes de l'élément path en SVG, en se concentrant sur la création de courbes et d'arcs. L'autrice explique les règles sous-jacentes et les fonctions de construction des courbes de Bézier quadratiques et cubiques, ainsi que des arcs, en utilisant des exemples visuels et des animations pour illustrer les concepts. L'article aborde également l'utilisation des commandes Q, T, C, S, et A pour dessiner ces formes, offrant ainsi une compréhension approfondie de la syntaxe et des mécanismes de l'élément path en SVG.
L'article explore les bases de l'élément
currentColor en CSS est un mot-clé dynamique représentant la valeur de la propriété color d'un élément. Utilisé pour les bordures, ombres, ou icônes SVG, il permet de synchroniser automatiquement ces propriétés avec la couleur du texte, facilitant ainsi la maintenance et la cohérence du style. Par exemple, en définissant border: 2px solid currentColor, la bordure adopte la couleur du texte et s'ajuste si celle-ci change. Cela évite la duplication de code et simplifie la création de thèmes. currentColor est bien supporté par tous les navigateurs, y compris Internet Explorer 9.
Dans son article, Lea Verou présente le framework "Hovercar", une approche innovante pour le développement de produits qui suggère de commencer par la vision finale plutôt que par un produit minimum viable (MVP). Contrairement à la méthode traditionnelle qui privilégie le démarrage à petite échelle, Verou propose de visualiser d'abord le produit final idéal, appelé "North Star UI", pour guider la conception et le développement. Cette vision sert de boussole pour orienter les décisions de conception et s'assurer que chaque étape du processus contribue à atteindre cet objectif ultime, tout en différenciant clairement cette approche de la "North Star Metric", qui est plutôt utilisée pour évaluer le succès d'un produit.
L'article traite des préoccupations liées à la fouille de données sur le web par les intelligences artificielles, une pratique souvent perçue comme une forme de vol de données. Il explore les moyens pour les créateurs de contenu de protéger leurs œuvres, notamment à travers des procédures comme l'opt-out, qui permet de déclarer son refus de voir ses données utilisées pour enrichir les bases de données de l'IA. L'article aborde également des méthodes techniques pour bloquer les robots aspirateurs, comme l'utilisation de fichiers robots.txt et .htaccess, tout en soulignant l'importance de l'opt-out pour une protection juridique. Il conclut sur la nécessité pour les auteurs de se préparer à ces enjeux, tout en restant ouverts à une collaboration éventuelle avec l'IA.
L'article explique ce qu'est l'authentification multifacteur (2FA ou MFA), à quel besoin elle répond sur quels fondements elle repose. Il décrit aussi sa mise en place côté utilisateur.
L'article présente une synthèse de cinq publications clés qui ont marqué le domaine des grands modèles de langage (LLM). Il commence par expliquer comment GPT-3 a révolutionné le traitement du langage naturel en permettant à un seul modèle de réaliser diverses tâches grâce au "few-shot learning". Ensuite, il aborde les "scaling laws" qui démontrent l'importance de la taille des modèles pour leur performance. Le concept de "modèles de fondation" est introduit comme une évolution vers des modèles plus génériques capables de s'adapter à différents domaines. L'architecture des Transformers, basée sur des mécanismes d'attention, est également explorée pour son efficacité à grande échelle. Enfin, l'approche RAG (Retrieval-Augmented Generation) est présentée comme une méthode pour améliorer les LLM en intégrant des informations actualisées sans réentraînement coûteux. L'article souligne l'importance de ces avancées pour comprendre l'essor de l'IA générative et des LLM.
L'article explore l'impact des outils de génération de code assistés par l'IA sur le développement logiciel moderne. Il met en lumière des outils comme Cursor et Windsurf, qui intègrent l'IA pour aider les développeurs à écrire du code plus rapidement et plus efficacement. Cursor, basé sur VSCode, offre des fonctionnalités comme la complétion de code intelligente et un chat intégré pour discuter des améliorations de code. Windsurf, quant à lui, va plus loin en permettant des refactorings complexes et une compréhension multi-fichiers. Cependant, l'article souligne également les défis et les pièges potentiels de ces outils, tels que la génération de code qui compile mais ne fonctionne pas comme prévu, l'accumulation de dette technique, et la dépendance excessive à l'IA qui pourrait entraîner une perte de compétences. En outre, l'article aborde l'intégration de ces outils dans les workflows de développement, notamment avec des plateformes comme Graphite et Diamond, qui automatisent les revues de code et améliorent la qualité logicielle. Enfin, il réfléchit sur l'avenir du métier de développeur, suggérant que les rôles évolueront vers une supervision et une orchestration accrues des outils d'IA, tout en maintenant une compréhension solide des fondamentaux du codage.
L'article explore une approche pour construire des applications en combinant les principes du Domain-Driven Design (DDD) et de l'architecture Clean. L'auteur propose de se concentrer sur les cas d'utilisation plutôt que sur les entités pures du DDD, en utilisant des cas d'utilisation pour orchestrer la logique métier inter-aggregats de manière claire et ciblée. L'article présente un exemple d'application simple avec des entités comme Student et Course, illustrant comment modéliser le domaine et gérer les relations entre les agrégats. Il préconise l'utilisation de l'ORM pour les opérations C(r)UD et des requêtes JDBC directes pour les requêtes impliquant plusieurs agrégats, s'inspirant des principes CQRS. Les cas d'utilisation sont transactionnels pour garantir la cohérence des états des agrégats. L'article conclut en soulignant les avantages de cette approche, notamment une meilleure compréhension du code et une facilité de test.
Secure Boot est une fonctionnalité de sécurité conçue pour empêcher le chargement de logiciels non autorisés lors du démarrage du système, mais elle peut poser des problèmes pour les utilisateurs de Linux en raison de signatures non reconnues. Les fichiers Shim agissent comme des traducteurs entre Secure Boot et Linux. Signés avec une clé reconnue par Secure Boot, souvent par Microsoft, ils permettent de charger Linux sur des machines avec Secure Boot activé. L'auteur finit en expliquant comment désactiver Secure Boot si nécessaire (distribution Linux non supportée, problème matériel, etc.)
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 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.
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.
Il s'agit d'une introduction à l'art génératif : ce que c'est, comment débuter et où "exposer"
L'article présente une comparaison des bibliothèques de journalisation pour Node.js, mettant en avant leurs forces et leurs cas d'utilisation spécifiques. Par exemple, Winston est apprécié pour sa grande configurabilité, ce qui le rend idéal pour les applications complexes, tandis que Pino est privilégié pour ses performances élevées, adaptées aux systèmes à haut débit. L'article souligne également l'importance de choisir une bibliothèque de journalisation en fonction des besoins spécifiques du projet, tels que la structure des données, l'expérience de l'équipe et les exigences d'intégration. Il conclut sur une liste de bonnes pratiques et recommandations