L’article relate l’installation laborieuse de Linux Mint sur un Acer Swift 1 SF114-31-P68BW, une opération qui a pris bien plus de temps que prévu (plus de deux heures au lieu de 25 minutes). Le premier obstacle a été l’impossibilité de désactiver le Secure Boot dans le BIOS, résolue en définissant un mot de passe BIOS. Ensuite, après une installation apparemment réussie, le PC affichait « No Bootable Device » au redémarrage. La solution a consisté à ajouter manuellement le fichier shimx64.efi comme fichier UEFI de confiance dans le BIOS, puis à reconfigurer l’ordre de démarrage pour placer Linux Mint en première position. L’auteur critique la complexité imposée par Acer pour une simple installation d’un autre système d’exploitation, malgré la documentation officielle, et espère que son retour d’expérience aidera d’autres utilisateurs confrontés au même problème. Un témoignage utile pour ceux qui souhaitent passer à Linux sur ce modèle !
GDU (Go Disk Usage) est présenté comme le successeur moderne et ultra-rapide de ncdu pour analyser l’utilisation des disques sous Linux. Développé en Go, il se distingue par sa vitesse fulgurante (optimisé pour les SSD et multi-CPU), une interface intuitive et une installation simplifiée (disponible via les dépôts ou GitHub). Idéal pour identifier rapidement les fichiers encombrants, il s’impose comme un outil indispensable pour les administrateurs système et développeurs, surtout sur des serveurs distants ou des arborescences volumineuses. Une alternative efficace pour éviter les messages « Disk Full » et optimiser l’espace disque en un clin d’œil. (Lien GitHub : dundee/gdu)
L’article aborde les pièges de performance dans Doctrine ORM, notamment la différence entre les stratégies de chargement Lazy, Eager et Extra-Lazy pour les associations entre entités. Par défaut, Doctrine utilise le Lazy Loading, qui peut entraîner le problème classique du N+1 : une requête initiale pour récupérer les articles, suivie d’une requête supplémentaire pour chaque article afin de charger ses commentaires, ce qui dégrade fortement les performances. L’exemple donné montre comment une simple boucle pour afficher le nombre de commentaires par article peut générer 1 + N requêtes (N étant le nombre d’articles), et charger inutilement toutes les données des commentaires en mémoire. L’article souligne l’importance de choisir la bonne stratégie de chargement pour éviter ces écueils.
Le Command Logger Bundle pour Symfony est un outil conçu pour suivre l'exécution des commandes console directement dans une base de données, idéal lorsque l'accès aux fichiers de log est impossible. Il enregistre pour chaque commande : son nom, ses arguments, les horaires de début et de fin, le code de sortie, les messages d'erreur et un identifiant unique. Simple à installer via Composer, il permet de configurer les commandes à logger (via attributs ou fichier YAML) et offre des commandes CLI pour consulter, filtrer ou purger les logs. Son objectif principal est de répondre rapidement à des questions clés : la commande a-t-elle été exécutée ? Quand ? Avec quel résultat ? Il ne capture pas la sortie console, mais fournit une traçabilité essentielle pour le débogage et l'audit.
Cet article explique comment générer des "captures d’écran" au format SVG d’éléments HTML, notamment pour les réutiliser dans des fichiers HTML, EPUB ou PDF. L’auteur présente deux bibliothèques JavaScript permettant de convertir du HTML en SVG, avec une préférence pour html-to-svg
. Il détaille une méthode pour créer une page web contenant plusieurs démonstrations de mises en page CSS, chacune convertie en SVG via un script. Chaque section peut être affichée ou téléchargée sous forme d’image SVG, avec un nom de fichier dérivé de l’ID de la section. L’astuce repose sur l’utilisation de Blob
et de URL.createObjectURL
pour générer un lien de téléchargement fonctionnel. Une solution pratique pour intégrer des visuels dynamiques et scalables dans divers formats de documents.
L’auteur raconte comment son équipe a migré plus d’un milliard d’enregistrements d’une base de données critique (contenant des données financières) vers une nouvelle, sans aucune interruption de service. Voici les étapes clés et les leçons apprises :
-
Migration par lots des données historiques : Les données ont été divisées en chunks par plages d’ID, chargées en parallèle avec les index et contraintes désactivés pour accélérer le processus, puis vérifiées par des checksums pour garantir l’intégrité.
-
Écritures doubles (dual writes) : Pendant la migration, chaque nouvelle écriture était dupliquée vers l’ancienne et la nouvelle base. Les échecs étaient gérés via une file Kafka de réessai, avec des écritures idempotentes pour éviter les doublons.
-
Lectures fantômes (shadow reads) : Les requêtes étaient exécutées en silence sur la nouvelle base et comparées à l’ancienne pour détecter des incohérences (fuseaux horaires, collations, valeurs NULL), permettant de corriger les problèmes avant de basculer les utilisateurs.
-
Bascule progressive (cutover) : La nouvelle base a été préchauffée (cache et index), et le basculement a eu lieu à 4h30, heure de faible trafic, avec un mécanisme de retour arrière (rollback) prêt. Les métriques business et techniques ont été surveillées en temps réel.
-
Observabilité totale : Des tableaux de bord ont suivi la latence, le lag de réplication, les deadlocks, et les KPI métiers pour détecter instantanément tout problème.
Leçons clés :
- Les migrations à grande échelle se font par lots parallèles, avec des mécanismes de reprise et de vérification.
- Les dual writes et les shadow reads sont essentiels pour capturer les données en temps réel et valider la nouvelle base.
- La bascule doit être préparée comme une opération critique : cache préchauffé, monitoring obsessionnel, et plan de rollback.
- Une migration réussie repose sur la conception distribuée (idempotence, files de réessai) et une observabilité fine (WAL, cache, deadlocks).
En traitant la migration comme un problème de system design plutôt que technique, l’équipe a pu garantir une transition sans temps d’arrêt, malgré la pression et les risques financiers.
Le billet "L’IA : décoder le jargon avant de se planter" propose un décryptage accessible des termes techniques liés à l’intelligence artificielle, comme les tokens, les LLM (Large Language Models), les embeddings, le RAG (Retrieval-Augmented Generation) ou encore le MCP, afin d’aider les développeurs et curieux à mieux comprendre le fonctionnement des outils comme ChatGPT et éviter les pièges courants. L’objectif est de démystifier ces concepts pour une utilisation plus éclairée et efficace de l’IA.
Mathieu Eveillard explique pourquoi les méthodologies séquentielles (comme le waterfall) échouent systématiquement dans l’informatique de gestion, notamment à cause de l’effet tunnel : développer pendant des mois sans feedback utilisateur mène souvent à des produits inadaptés ou inutiles. Les étapes rigides (cahier des charges, appel d’offres, développement, etc.) ignorent l’incertitude des besoins réels et les erreurs d’estimation, transformant les projets en jeux de roulette russe où le client finit captif de coûts imprévus. La solution ? L’Agilité : itérer par petites étapes, valider avec les utilisateurs, et construire la confiance progressivement, plutôt que de miser sur des documents figés et des engagements irréalistes. Une critique percutante des limites du waterfall et un plaidoyer pour des approches plus flexibles et collaboratives.
Ali Khil partage une habitude simple mais efficace pour préserver ses soirées en tant qu’ingénieur logiciel : au lieu de prolonger sa journée de travail en se disant « encore 20 minutes », il note les prochaines étapes à réaliser avant de partir. Cette pratique évite l’épuisement, permet de revenir le lendemain avec un esprit frais et une motivation intacte, tout en favorisant un meilleur équilibre entre vie professionnelle et personnelle. Une astuce inspirée par l’expérience, où l’envie de terminer une tâche sur le moment se transforme souvent en heures perdues et en frustration. À la clé, moins de surmenage et des idées nouvelles après une nuit de repos.
L’auteur partage ses conseils pour en réaliser des efficaces. Le point clé : rien n’est trivial. Il insiste sur la nécessité d’expliquer chaque étape, même celles qui semblent évidentes, car le public peut ne pas maîtriser les bases (où lancer une commande, comment allumer un appareil, etc.). Il recommande de définir le vocabulaire technique, d’expliquer le pourquoi derrière chaque action (ex. : choix d’un outil, respect d’une température), et d’adapter le contenu au public visé (novice, intermédiaire, expert). La précision est essentielle : éviter les formulations vagues comme « suivez la procédure normale », et lister clairement les prérequis (matériel, logiciels, permissions). Autre astuce : tester son tuto en le suivant soi-même ou en le faisant essayer à un débutant pour repérer les oublis ou ambiguïtés. Enfin, il encourage à utiliser un vocabulaire rigoureux (ex. : la RFC 2119 pour distinguer « doit », « devrait », « peut ») et à justifier chaque étape pour éviter erreurs et frustrations. L’objectif ? Rendre le tutoriel accessible, reproductible et sans zone d’ombre, quel que soit le domaine (informatique, cuisine, aéronautique…).
Cette chronique humoristique de Gee aborde le thème de l’inertie technologique, en prenant pour exemple le clavier, dont les dispositions (QWERTY, AZERTY) et certaines touches (comme "Inser") persistent malgré leur obsolescence ou leur manque d’optimisation. L’auteur souligne que ces choix datent de l’ère des machines à écrire et ne sont pas adaptés aux usages modernes, mais que le coût du changement (apprentissage, incompatibilité avec les autres claviers) freine toute évolution. Il évoque aussi les avantages des logiciels libres, comme GNU/Linux, qui permettent de contourner certaines limites matérielles grâce à des fonctionnalités logicielles (accès facilité aux majuscules accentuées, espaces insécables, etc.). Enfin, il invite à adopter le logiciel libre pour gagner en flexibilité et en modernité, tout en gardant un ton léger et critique envers les habitudes ancrées.
Ce shaarli explique comment utiliser Podman comme un substitut à Docker, en permettant l'exécution des commandes Docker habituelles avec Podman. L'article détaille l'installation du paquet podman-docker
, qui fournit un script docker
émulant les commandes Docker, ainsi que la suppression du message d'avertissement via la création du fichier /etc/containers/nodocker
. Il aborde aussi la compatibilité avec docker-compose
grâce à l'installation de podman-compose
, et présente deux solutions pour gérer le démarrage automatique des conteneurs (via Quadlet ou en activant le service podman-restart
). L'objectif est de faciliter la transition pour les utilisateurs habitués à Docker, tout en profitant des avantages de Podman, notamment son absence de démon.
Ce tutoriel explique comment implémenter le Design Pattern Strategy dans Symfony, en partant d’une approche naïve avec des if/else
pour aboutir à une solution professionnelle et maintenable. L’objectif est de créer un système d’analyse de céréales (blé, orge, tournesol, etc.) qui puisse s’étendre facilement sans modifier le code existant.
L’auteur détaille trois étapes :
- Approche naïve avec des
if/else
oumatch
(PHP 8+), simple mais peu extensible et difficile à maintenir. - Solution optimale avec le Strategy Pattern : chaque type de céréale est géré par une classe indépendante (stratégie) implémentant une interface commune. Symfony utilise des attributs comme
#[AutoconfigureTag]
et#[AutowireIterator]
pour injecter automatiquement les stratégies dans un manager, qui délègue l’analyse à la stratégie adaptée. - Avantages : respect du principe ouvert/fermé, testabilité, et extensibilité (ajouter une céréale = ajouter une classe).
Le tutoriel inclut des exemples concrets, des comparatifs, et un projet GitHub pour illustrer la mise en œuvre. Une ressource idéale pour comprendre comment structurer du code Symfony flexible et évolutif.
Simon Willison explore dans ce billet la notion de "designing agentic loops", une compétence clé pour tirer parti des agents de codage comme Claude Code ou Codex CLI. Ces outils, capables d’exécuter du code, de corriger des erreurs et d’itérer vers une solution, ouvrent de nouvelles possibilités, mais aussi des risques (commandes dangereuses, exfiltration de données, attaques par rebond). Pour les utiliser efficacement, il recommande de les faire tourner en mode "YOLO" (sans demande de confirmation systématique), mais dans un environnement sécurisé comme GitHub Codespaces ou un conteneur Docker isolé. Il souligne l’importance de bien choisir les outils et les accès (par exemple, limiter les permissions et les budgets pour les API), et d’identifier les problèmes adaptés à cette approche : débogage, optimisation de performances, ou mise à jour de dépendances. L’automatisation des tests et la documentation claire des outils disponibles (via un fichier AGENTS.md) sont essentielles pour maximiser leur utilité. Une réflexion encore émergente, mais prometteuse pour accélérer le développement logiciel.
Face à la multiplication des robots d’indexation (notamment ceux des LLM), Bearstech propose plusieurs stratégies pour limiter leur impact : filtrage (via robots.txt, blacklist d’IP ou User-Agents, outils comme Darkvisitor ou Cloudflare), mitigation (rate-limiting avec HAProxy, tests inversés comme Anubis ou Cloudflare Turnstile), délégation (CDN avec WAF comme Cloudflare ou Bunny), et surtout optimisation (cache avec Varnish/Redis, tuning de base de données, tests de charge). Aucune solution n’est universelle : chaque approche a ses avantages (efficacité, simplicité) et inconvénients (maintenance, faux positifs, coût). L’idéal ? Combiner filtrage ciblé, cache agressif et optimisation pour rendre son infrastructure plus résiliente, tout en préservant le référencement et l’expérience utilisateur. Une analyse fine du trafic et des goulets d’étranglement reste indispensable. 🛡️🔍
L’auteur partage son expérience pour monter un home lab ultra-optimisé : deux mini-PC (un GMKtec 5825U avec Ryzen 7 5825U, 64 Go de RAM et un NVMe de 2 To récupéré d’une PS5 pour la virtualisation sous Proxmox, et un Intel N100 pour le firewall OPNsense avec ports SFP 10G), le tout pour moins de 700 €. Objectifs remplis : silence absolu, consommation électrique maîtrisée, et performances au rendez-vous (10 VM simultanées, Jellyfin en 4K, Home Assistant, Bitwarden, etc.). Le tout tient dans une étagère, avec une Freebox Delta en mode bridge pour du 10G, un NAS Qnap pour le stockage, et des switches 2.5G/10G. Un setup malin, évolutif et discret, parfait pour expérimenter (Kubernetes, NixOS…) sans exploser la facture d’électricité ni le budget ! 💡🔌
La réponse réside dans leur structure cristalline et leur composition. Le fer pur et les aciers simples (fer + carbone) adoptent à température ambiante une structure cubique centrée (BCC), dite ferrite, qui est ferromagnétique : leurs atomes s’alignent sous l’effet d’un champ magnétique, rendant le matériau aimantable. En revanche, les aciers inoxydables, riches en chrome et souvent en nickel, peuvent adopter une structure cubique faces centrées (FCC), dite austénite, qui est paramagnétique et donc peu ou pas attirée par un aimant. Le nickel favorise cette structure FCC, tandis que le chrome peut la stabiliser même à température ambiante. Certains inox (comme les séries 304 ou 316) ne sont donc pas aimantables, contrairement à d’autres (comme les séries 410 ou 420), qui conservent une structure ferritique ou martensitique (BCC ou BCT) et restent magnétiques. Tout dépend de la composition et des traitements thermiques ou mécaniques subis par l’alliage. Une astuce pour tester : promenez un aimant chez vous, vous verrez que certaines poignées ou casseroles en inox ne réagissent pas, contrairement à des outils ou des fonds de casseroles en acier classique.
Scott H. Young clôt son année de projet Foundations avec un mois dédié au service, une thématique qui l’a amené à repenser sa philosophie de vie. Bien que ses actions concrètes (dons de sang, dons à des associations recommandées par GiveWell) aient été limitées par les contraintes logistiques du bénévolat, cette période a surtout marqué un changement d’attitude : passer d’une vision où la morale est une contrainte à une vie épanouie, à une approche où l’épanouissement personnel devient une contrainte secondaire au service des autres. Il réalise que, comme pour les autres fondations (fitness, alimentation, etc.), ce sont les changements d’état d’esprit plutôt que les habitudes qui durent. Ce mois lui a aussi permis de comprendre que le bonheur et la satisfaction peuvent émerger davantage d’une vie tournée vers l’impact positif que vers la recherche directe du bien-être. Une réflexion profonde sur l’altruisme et la construction d’une vie significative, avec l’espoir de s’engager davantage à l’avenir.
L’API Platform Conference 2025 célèbre les 10 ans du framework avec des annonces fortes et un double focus : performance extrême et expérience développeur (DX). Côté performance, l’intégration d’extensions PHP écrites en Go (via FrankenPHP) et le support natif de gRPC pour PHP ont volé la vedette, permettant des gains inédits en rapidité et stabilité, comme en témoigne l’adoption par Laravel Cloud. API Platform 4.2 a aussi été dévoilé, avec des outils comme l’ObjectMapper de Symfony pour simplifier la transformation d’objets et des gains de performance multipliés par 2 ou 3.
La deuxième journée a mis l’accent sur la DX : schémas JSON pour la configuration YAML dans Symfony, l’arrivée de PIE (remplaçant moderne de PECL), et des réflexions sur l’Agent Experience (AX) pour mieux collaborer avec les IA. Fabien Potencier a notamment proposé d’ajouter un fichier llms.txt
pour faciliter l’intégration des LLM. Enfin, des conférences sur les feature flags, la contribution au cœur de PHP, et l’histoire des femmes dans la tech ont rappelé l’importance de l’humain et de l’outillage moderne. En résumé, PHP se réinvente comme un écosystème hybride, performant et centré sur les développeurs, invitant à tester FrankenPHP, adopter les nouvelles pratiques DevOps et repenser l’architecture des projets. Une édition résolument tournée vers l’avenir ! 🚀
Paris Web 2025 a marqué les esprits avec une édition placée sous le signe de l’inclusivité, de l’accessibilité, de la diversité et de l’écoconception. Organisée à l’Institut Louis Pasteur, la conférence a proposé des présentations variées, accessibles (LSF, vélotypie) et engagées, mêlant technique, retours d’expérience et réflexion sur les bonnes pratiques du web.
Parmi les temps forts, on retient notamment la conférence d’Agnès Haasser sur le HTTPS et ses enjeux de sécurité, un retour d’expérience percutant d’Anne Faubry et Chloé Corfmat sur l’accessibilité pour les personnes déficientes visuelles (au-delà du RGAA), et une démonstration convaincante des Passkeys par Daniel Garnier-Moiroux. D’autres sujets comme le design validiste, l’Unicode, les Web Components, ou encore l’impact psychosocial de l’IA ont aussi rythmé ces deux jours. L’événement a confirmé son rôle de bulle inspirante et bienveillante pour les passionné·e·s du web, avec des interventions de qualité et une approche résolument humaine et pratique.