Ce tutoriel explique comment signaler les IP malveillantes détectées par Cloudflare à AbuseIPDB en utilisant un script Python. L'auteur décrit comment récupérer les données du pare-feu Cloudflare via une API GraphQL, analyser les événements par adresse IP, vérifier leur statut sur AbuseIPDB et les signaler. Le script, d'environ 700 lignes, utilise GitHub Copilot et nécessite des tokens API pour Cloudflare et AbuseIPDB. Il permet de générer des rapports d'analyse et de dénoncer automatiquement les IP malveillantes.
Scott H Young partage ses stratégies pour lire un livre par semaine, même en lisant lentement. Il suggère d'avoir toujours un livre à portée de main, de diversifier les formats (livre papier, audio, e-book), de ne pas finir les livres qui ne vous intéressent plus, de supprimer les réseaux sociaux de son téléphone, de lire avant de dormir, de créer une "antilibrary" (une bibliothèque de livres non lus mais souhaités) et de concevoir des projets de lecture thématiques. Ces astuces permettent d'augmenter sa consommation de livres et d'améliorer ses connaissances et sa motivation.
Cet article souligne l'importance cruciale des tests dans le développement logiciel. Il argue que les tests ne sont pas une activité annexe, mais une partie intégrante de l'ingénierie logicielle. Les tests améliorent la conception du code, donnent confiance pour apporter des modifications, et facilitent la collaboration en révélant des cas limites et des exigences cachées. En intégrant les tests dès le début du processus de développement, les développeurs peuvent concevoir un logiciel de meilleure qualité, effectuer des changements avec moins de stress et découvrir des exigences cachées avant qu'elles ne deviennent des obstacles.
Cet article explore comment conduire le changement vers une Clean Architecture au sein d'une équipe de développement. Il aborde les aspects humains et organisationnels, complémentaires aux aspects techniques traités dans un précédent article. L'auteur partage son expérience en tant que lead développeur, soulignant l'importance de l'adhésion de l'équipe, de la pédagogie, et de la création d'un environnement de confiance pour réussir une telle refonte. Il insiste sur l'importance de lever les incompréhensions et d'encourager l'expérimentation pour ancrer progressivement les concepts. Un article précieux pour ceux qui souhaitent transformer une base de code existante en un terrain d'apprentissage collectif autour de la Clean Architecture.
Addy Osmani partage 21 leçons tirées de ses 14 années chez Google, axées sur les compétences humaines et organisationnelles plutôt que sur les technologies. Parmi ces leçons, il souligne l'importance de se concentrer sur les problèmes des utilisateurs, de collaborer plutôt que d'avoir toujours raison, de privilégier l'action et le partage rapide, de privilégier la clarté à la complexité, et de limiter l'innovation aux cas où elle est vraiment nécessaire. Ces conseils visent à aider les ingénieurs à naviguer efficacement dans leur carrière et leurs projets.
Steve Huynh explique dans cet article pourquoi il est crucial de ne pas confondre son emploi avec sa carrière. Il souligne que se concentrer uniquement sur les tâches quotidiennes (85% du temps) sans consacrer du temps à la stratégie (15%) peut freiner la croissance professionnelle. Il recommande de réallouer une partie de son temps pour travailler sur des projets à long terme, comme développer des compétences (Multiplicateurs), créer des opportunités (Optionnalité) ou planifier des paris audacieux (Big Bets). Cette approche permet de transformer son travail quotidien en croissance de carrière sans nécessairement augmenter sa charge de travail.
Cet article explore ce qui distingue réellement un ingénieur senior des autres. Au-delà des compétences techniques et des années d'expérience, la capacité à réduire l'ambiguïté est la clé. Les ingénieurs seniors excellent dans la transformation de problèmes flous en projets concrets, en posant les bonnes questions, en identifiant les priorités et en anticipant les risques. Cette compétence est cruciale pour le succès des projets et justifie souvent leur salaire. Malheureusement, les processus de recrutement actuels, axés sur les technologies et les exercices techniques, ne mesurent pas toujours cette aptitude. L'article encourage les ingénieurs à pratiquer cette compétence en prenant en charge les tickets vagues et en clarifiant les problèmes avant de les résoudre.
Cet article explore les considérations d'accessibilité pour les formules mathématiques sur le web, soulignant l'importance d'une lecture correcte par les lecteurs d'écran. L'article met en avant MathML comme l'une des meilleures options pour représenter les formules, grâce à sa syntaxe dédiée, son bon support par les lecteurs d'écran et son indépendance vis-à-vis de JavaScript. Il compare différentes approches, comme TeX/LaTeX, Unicode math, et les images, en montrant que MathML offre une sémantique claire et une intégration native dans le DOM. L'article aborde également les variations de support des lecteurs d'écran, comme VoiceOver, JAWS et NVDA, et illustre ces concepts avec l'exemple du théorème de Pythagore et une preuve mathématique plus complexe.
L'article explique les particularités de l'utilisation de HTML dans les ePubs, le standard W3C pour les livres électroniques. Contrairement aux sites web, les ePubs utilisent XHTML, une version plus stricte de HTML basée sur XML, ce qui impose des règles syntaxiques rigoureuses et des particularités comme l'utilisation de namespaces. Le CSS reste globalement similaire, mais avec des limitations dues aux capacités réduites des liseuses. L'article explore également les extensions XML possibles, comme MathML, et les défis spécifiques liés à la création de contenus pour ePubs.
Nadia Makarevich, experte en React et performance web, introduit les composants serveur React (RSC) et leur impact sur les performances. Elle explique que les RSC déplacent une partie du travail vers le serveur, réduisant ainsi la quantité de JavaScript à envoyer au client et améliorant le temps de chargement initial. L'article explore les différences entre le rendu côté client et les RSC, en mesurant des métriques comme le LCP et le temps d'affichage des données dynamiques. Makarevich a construit une SPA pour illustrer ces concepts, disponible sur GitHub.
L'article explore la possibilité d'utiliser l'IA pour codifier des bonnes pratiques de performance web, inspirées de l'outil YSlow des années 2000. L'auteur propose de former un modèle d'IA avec des données structurées issues de l'HTTPArchive, en comparant des pages lentes et rapides, pour distiller des règles de performance web adaptées à l'ère actuelle. L'objectif est de revivre l'esprit de YSlow avec une approche moderne et automatisée.
Richard Dern explore l'évolution de l'administration système à travers les décennies, depuis l'ère physique des années 1950 jusqu'à la virtualisation et le cloud des années 2020. Il met en lumière la superposition des outils et des pratiques plutôt qu'une rupture générationnelle. L'article se concentre ensuite sur l'utilisation d'émulateurs de terminal web pour administrer des serveurs personnels, en passant en revue les options logicielles et en partageant ses critères de sélection. Un aperçu historique et technique intéressant pour les passionnés d'informatique.
L’article détaille les essais de l’auteur, les outils testés (Ollama, Jan avec Vulkan/llama.cpp), et les astuces pour configurer un backend compatible afin d’obtenir de bonnes performances sans dépendre de serveurs distants.
L'article explore les améliorations récentes de l'API Speculation Rules, qui permet de précharger ou de pré-rendre des pages web pour accélérer la navigation. Initialement basée sur le survol de la souris (hover) pour les appareils desktop, l'API a été améliorée pour les appareils mobiles en utilisant des heuristiques comme la distance verticale des liens, leur taille et le temps d'arrêt du défilement. L'article souligne également les améliorations de la valeur "eager" et les considérations sur les coûts et les risques de la spéculation. Ces fonctionnalités sont actuellement supportées par les navigateurs basés sur Chromium, avec des travaux en cours pour Safari et Firefox.
Ce billet explore l'origine et la signification de l'adage "favoriser la composition à l'héritage" en programmation orientée objet. Cette phrase, popularisée par le livre "Design Patterns" (Gang of Four), oppose l'héritage (réutilisation en "boîte blanche") à la composition (réutilisation en "boîte noire"). L'auteur analyse les avantages et limites de chaque approche, soulignant que la composition offre plus de flexibilité à l'exécution mais peut nécessiter plus de travail. Il rappelle aussi le contexte historique et linguistique de ce débat, ainsi que l'influence des travaux de Barbara Liskov sur la sémantique des sous-types.
L'autrice partage son expérience avec la cataracte, diagnostiquée à 30 ans. Cette condition a modifié son utilisation du web, notamment en développant une photophobie, la poussant à privilégier les thèmes sombres. Elle souligne l'importance de proposer les deux thèmes pour répondre aux besoins variés des utilisateurs, comme son ami sourdaveugle qui préfère un thème inversé. Elle utilise aussi l'extension Dark Reader, bien que parfaite. Son témoignage illustre l'importance de l'accessibilité pour tous.
Pour remplacer son instance GitLab auto-hébergée (trop gourmande en ressources pour un usage personnel), l’auteur a migré vers Forgejo (fork de Gitea) en utilisant Terraform pour automatiser la transition. Plutôt que d’utiliser des scripts de migration obsolètes, il a exploité les providers Terraform pour GitLab et Gitea/Forgejo : le code liste les projets source, les recrée en mode miroir sur la nouvelle forge, puis bascule le domaine. La CI/CD a été réécrite en workflows Forgejo Actions (similaires à GitHub Actions), simplifiant le processus et réduisant significativement la consommation de ressources (10 Go de RAM et 10 % d’espace disque gagnés). Une approche efficace et maintenable, qui montre comment détourner Terraform pour des besoins ponctuels. Le gain en performance et en simplicité est notable, surtout pour un petit serveur.
React 19.2 améliore l'optimisation de l'INP (Interaction to Next Paint) avec deux nouvelles fonctionnalités clés. La première est le composant
Cet article propose des astuces pour améliorer la qualité des réponses de ChatGPT en utilisant des préfixes structurés. Ces préfixes, comme /ELI5 pour des explications simples, /FORMAT AS pour imposer un format spécifique, ou /CHECKLIST pour des listes à cocher, permettent de guider l'IA vers des réponses plus précises et mieux structurées. D'autres préfixes comme /SWOT ou /CHAIN OF THOUGHT poussent l'IA à approfondir sa réflexion et à détailler son raisonnement. L'article souligne l'importance d'expérimenter pour trouver les formulations les plus efficaces selon le contexte et la complexité de la question.
La page présente un texte de Linus Torvalds, créateur de Linux, qui explique sa fascination pour la programmation. Il décrit ce domaine comme un jeu captivant où l'on peut créer son propre monde, combinant art et ingénierie, et où la seule limite est la capacité de la machine et celle du programmeur. Torvalds compare la programmation à la physique et aux mathématiques, soulignant que c'est un exercice de créativité où l'on peut établir ses propres règles, à condition qu'elles soient cohérentes. Il met en avant la beauté et la satisfaction de créer des systèmes sans défauts, tout en explorant les possibilités offertes par les ordinateurs.