L'article de Kevin Hamer sur CSS-Tricks explore des méthodes pour approximer la fonction contrast-color() en CSS, qui n'est pas encore largement supportée par les navigateurs. Il explique comment utiliser les espaces de couleur et d'autres fonctionnalités CSS pour déterminer si un texte doit être en blanc ou en noir pour un contraste optimal, en se basant sur les directives WCAG 2.2. L'auteur propose une solution utilisant la lumière perceptuelle (L*) de l'espace de couleur CIELAB, offrant une alternative plus lisible et maintenable aux formules complexes basées sur la luminance.
L'événement scrollend est une nouvelle API standardisée pour détecter la fin du défilement dans une page web, simplifiant ainsi la gestion des actions post-défilement. Contrairement aux méthodes précédentes utilisant des timers et des debounce, scrollend offre une détection fiable et immédiate, compatible avec tous les types de défilement (souris, clavier, tactile, programmé). Il est supporté par tous les navigateurs majeurs et permet des applications comme le lazy-loading optimisé, le suivi de la position de lecture, et le tracking précis. (Source : Alsacreations)
Cet article explique les language tags, un concept clé pour l'internationalisation (i18n) et la localisation (l10n) des applications web. Il définit ces termes selon le W3C et détaille les standards du Web (RFC 5646, BCP 47) qui régissent les language tags. Ces tags, composés de subtags séparés par des tirets, permettent d'identifier précisément une langue, une écriture, une région ou d'autres variantes. L'article fournit des exemples et des explications sur la syntaxe des language tags, offrant ainsi une compréhension claire de leur utilisation pour adapter les applications à différents marchés linguistiques et culturels.
James Randall, un développeur expérimenté, partage son évolution dans le monde de la programmation depuis ses débuts à l'âge de 7 ans en 1983. Il évoque avec nostalgie l'ère des machines 8-bits et des premiers PC, où la compréhension technique était essentielle et où la créativité naissait des contraintes matérielles. Il décrit comment l'industrie s'est professionalisée, rendant la technologie plus accessible mais moins fascinante. Il exprime aussi sa déception face à l'utilisation actuelle des technologies pour la surveillance et l'extraction de données, loin de l'optimisme initial. Malgré ces changements, il souligne l'adaptabilité des développeurs face aux transitions technologiques constantes. Un témoignage poignant sur l'évolution de la programmation et de ses promesses.
Ploum exprime son inconfort face aux excuses pour les réponses tardives aux emails, soulignant que les échanges par email sont asynchrones et ne devraient pas générer de pression. Il encourage à ne pas s'excuser pour les délais de réponse, à ne pas justifier les retards par des détails personnels, et à ne répondre que si cela apporte une réelle valeur. Il propose même de reporter la réponse ou de ne pas répondre du tout, surtout si l'email initial n'était pas urgent ou important.
Guide expliquant les principaux éléments de la fibre en entreprise en clarifiant le rôle des modules optiques (SFP, QSFP…) et des suffixes comme SR ou LR, qui indiquent notamment le débit, la portée et le type de fibre compatible, afin d’éviter les erreurs de choix ou de compatibilité. Il détaille par exemple que les transceivers convertissent les signaux électriques en lumière et que SR correspond à des liaisons multimodes courtes alors que LR vise des liaisons monomodes plus longues, tout en rappelant l’importance de sélectionner correctement la fibre (OM3/OM4 ou OS2) et les connecteurs adaptés pour garantir fiabilité et performances du réseau.
AutoMapper 10.0 marque une avancée majeure avec une refonte technologique pour une performance optimale. Cette version intègre Symfony TypeInfo pour une extraction précise des métadonnées, permettant un mapping plus fiable. Elle introduit également le typage forcé via l'attribut #[MapTo] et supporte Symfony ObjectMapper, remplaçant le mécanisme par défaut par une solution générant du code PHP optimisé. La fonctionnalité de Nesting est également implémentée pour faciliter la manipulation de données imbriquées.
Les technologies anciennes du navigateur, notamment XPath et certaines parties du stack XML, restent utiles malgré l’abstraction apportée par les frameworks modernes, car elles permettent des opérations difficiles ou impossibles avec les outils courants comme les sélecteurs CSS, par exemple interroger le DOM selon la position relative des éléments ou extraire directement des valeurs complexes. L’article montre que combiner XPath et CSS peut fournir des requêtes plus puissantes et robustes, particulièrement pour les tests automatisés où XPath peut cibler des éléments même si les classes ou la structure changent, tout en soulignant que certaines technologies comme XSLT 1.0 sont en voie de dépréciation dans les navigateurs, ce qui pourrait réduire une partie de cet écosystème sans pour autant faire disparaître XPath lui-même.
sqldef est un outil en ligne de commande pour comparer deux schémas SQL et générer des scripts de migration. Il prend en charge plusieurs bases de données comme MySQL, PostgreSQL, SQL Server, et SQLite3. La page propose une démo en ligne utilisant WebAssembly pour visualiser les différences entre deux schémas et générer les requêtes SQL nécessaires pour les migrations. Plus d'informations et le code source sont disponibles sur GitHub.
Ce billet explique comment configurer HTTP/3 avec Nginx sous Debian Trixie. Il détaille les changements de syntaxe pour activer HTTP/3 et Quic, notamment l'utilisation de directives séparées pour HTTP/2 et HTTP/3. L'auteur souligne un problème spécifique avec les backends en HTTP/1.1, où la variable $http_host est vide en HTTP/3, ce qui bloque les requêtes. La solution proposée est de remplacer $http_host par $host dans le fichier proxy_params. Un bug a été ouvert chez Debian pour corriger ce comportement par défaut.
Cet article liste les erreurs courantes à éviter pour apprendre efficacement le langage de programmation Rust. Parmi celles-ci, on trouve ne pas être préparé à l'apprentissage, ne pas consulter le livre de référence, commencer par des algorithmes complexes comme ceux basés sur des graphes, ignorer les erreurs et avertissements du compilateur, appliquer des bonnes pratiques d'autres langages, ou encore utiliser des fonctionnalités avancées comme unsafe trop tôt. L'auteur souligne l'importance de la concentration, de la lecture des documents officiels, et de la pratique avec des projets adaptés au langage. Un partage utile pour les développeurs souhaitant s'initier à Rust.
Ce guide pratique oppose logs et métriques pour une meilleure observabilité des systèmes. Les métriques indiquent qu'un problème existe, tandis que les logs expliquent quoi. Les logs, coûteux mais détaillés, sont utiles pour le débogage et la conformité, tandis que les métriques, économiques et rapides, servent aux alertes et aux tableaux de bord. Les logs structurés sont préférables pour leur recherche facilitée. Les quatre signaux clés de Google (latence, trafic, erreurs, saturation) sont essentiels pour surveiller la santé d'un service. Le choix entre logs et métriques dépend de l'objectif et des ressources disponibles.
Découvrez apk.sh, un script Bash open-source qui simplifie le reverse engineering des applications Android en automatisant des tâches répétitives comme l'extraction, le décodage, la reconstruction et le patch des APK. Il prend en charge les bundles d'applications et les APK divisées, permet d'injecter des gadgets Frida, et manipule directement le bytecode pour éviter les erreurs de décompilation/recompilation. Facile à utiliser, il permet de tirer, décoder et reconstruire des APK avec des commandes simples. Le projet est disponible sous licence GPL-3.0 sur GitHub.
Ce partage explique le fonctionnement du DNS (Domain Name System), un système qui traduit les noms de domaine en adresses IP. L'auteur partage son expérience personnelle de résolution de problèmes liés à la propagation DNS et au TTL (Time to Live). Le résumé détaille la hiérarchie DNS, incluant les serveurs racine, les domaines de premier niveau (TLD), les domaines et les sous-domaines. Il explique également les différents types d'enregistrements DNS tels que les enregistrements A, AAAA, CNAME et MX, et leur utilité. Une ressource utile pour comprendre comment les noms de domaine sont résolus en adresses IP et comment gérer les enregistrements DNS.
Depuis 1969, chaque décennie voit émerger des promesses de simplification du développement logiciel pour réduire le besoin en développeurs. De COBOL aux outils CASE, en passant par Visual Basic, chaque innovation a échoué à éliminer la complexité inhérente à ce métier. Malgré des avancées technologiques, la nécessité de compétences spécialisées persiste, frustrante pour les dirigeants mais révélatrice de la nature complexe du travail en logiciel.
L'article explique comment obtenir un ASN (Autonomous System Number) personnel pour annoncer ses plages d'IP sur Internet via le protocole BGP (Border Gateway Protocol). Il commence par définir ce qu'est un ASN et son rôle dans la communication entre réseaux autonomes. L'auteur partage son expérience personnelle, détaillant les étapes pour obtenir un ASN sans se ruiner, comment annoncer ses routes, et comment configurer BGP dans un environnement Kubernetes avec MetalLB. L'article met en lumière l'importance des protocoles de routage dynamique comme BGP pour optimiser les chemins de réseau, surtout dans des infrastructures complexes.
L'article explore l'importance de la mise en cache au niveau de l'application, en se concentrant sur les pools de cache, les tags et l'invalidation. À travers un projet Symfony réaliste, l'auteur montre comment introduire progressivement la mise en cache, identifier les problèmes en production et améliorer la conception du cache. Les exemples illustrent l'évolution de la mise en cache, en commençant par une approche naïve et en introduisant des techniques plus avancées comme les pools de cache dédiés et l'invalidation fine-grained à l'aide de tags. L'objectif est de montrer comment concevoir un cache fiable en production, en abordant les problèmes courants et les solutions applicables au-delà d'un seul framework.
L'article propose des techniques pour atteindre une productivité durable et bienveillante. Il suggère de redéfinir la productivité en se concentrant sur des résultats significatifs plutôt que sur la quantité de tâches accomplies, de travailler en harmonie avec son énergie naturelle, de fixer moins de priorités mais plus claires, et d'utiliser des blocs de temps flexibles. D'autres stratégies incluent la pratique de micro-étapes, l'intégration de pauses, la réduction des frictions environnementales, l'auto-compassion, la création de routines simples et l'acceptation de ses limites humaines. L'objectif est de cultiver une productivité sans pression, alignée sur ses valeurs et respectueuse de son bien-être.
Ce site présente le fonctionnement de plusieurs machines : presses, engins à vapeur, etc. via des animations
Ce site présente le fonctionnement de plusieurs types de moteur, via des animations.