Bonnes et mauvaises CTE : comprendre les Common Table Expressions Les Common Table Expressions (CTEs) améliorent la lisibilité et la structuration des requêtes SQL complexes. Avant PostgreSQL 12, les CTEs fonctionnaient comme des "barrières d'optimisation", toujours matérialisées, ce qui entravait les capacités d'optimisation du planificateur, l'utilisation d'index et la poussée de prédicats. Cette approche garantissait l'isolation des instantanés et la gestion des effets de bord. PostgreSQL 12 a introduit l'intégration automatique (inlining) pour les CTEs non récursives, sans effets de bord et référencées une seule fois. Le planificateur les traite comme des sous-requêtes classiques, permettant des optimisations complètes. La matérialisation reste la règle pour les CTEs référencées plusieurs fois, récursives, modifiant des données (INSERT/UPDATE/DELETE), ou contenant des fonctions VOLATILE. Un défi majeur des CTEs matérialisées est le "trou noir statistique" : le planificateur manque de données fiables pour estimer les coûts, risquant des plans d'exécution sous-optimaux. PostgreSQL 17 a partiellement corrigé cela en propageant les statistiques de colonnes et l'ordre de tri. L'approche "impérative" dans la construction des requêtes, même avec l'inlining, peut créer des inefficacités. Par exemple, un `GROUP BY` suivi d'un filtre peut être moins performant qu'une sous-requête corrélée `EXISTS`. Les CTEs modifiant des données offrent des opérations atomiques puissantes mais exigent `RETURNING` pour communiquer les résultats. Les CTEs récursives, toujours matérialisées, gèrent les hiérarchies ; PostgreSQL 14 a introduit les clauses `SEARCH` et `CYCLE` pour une meilleure gestion. Maîtriser ces nuances est crucial pour tirer pleinement parti des CTEs. - **Discussion HN** : [Lire la discussion](https://news.ycombinator.com/item?id=47571330) - **Article source** : [Good CTE, bad CTE | boringSQL](https://boringsql.com/posts/good-cte-bad-cte/)
Archives
Tag : #programmation • 145 articles • Page 4 sur 13L'IA ne tue pas les emplois, elle les "déstructure" • The Register L'intelligence artificielle transforme le marché du travail en "déstructurant" les postes plutôt qu'en les supprimant purement et simplement. Une nouvelle analyse suggère que l'IA fragmente les rôles en automatisant des tâches spécifiques, particulièrement celles des "bundles faibles" qui peuvent être aisément séparées. Pour les "bundles forts", exigeant jugement et contexte, l'IA améliore la performance sans évincer l'humain. Cette dynamique, si elle accroît la productivité, conduit les travailleurs à se concentrer sur des tâches résiduelles plus étroites, augmentant leur charge sans compensation salariale adéquate et diluant le "flow" créatif. L'IA décuple la surface de responsabilité humaine tout en réduisant le besoin en compétences techniques brutes, conduisant à une concentration du travail sur un nombre réduit de personnes. Les bénéfices de cette productivité accrue profitent principalement aux détenteurs de capitaux, alimentant une stagnation des salaires et une croissance limitée de l'emploi, même si certains emplois hautement qualifiés sont déjà impactés. L'humain reste indispensable pour la prise de décision, le contexte et la reddition de comptes. - **Discussion HN** : [Lire la discussion](https://news.ycombinator.com/item?id=47567183) - **Article source** : [Researchers: AI isn't killing jobs, it's 'unbundling' them • The Register](https://www.theregister.com/2026/03/24/ai_job_unbundling/)
Pretext : Une approche innovante pour la mesure et la mise en page du texte sur le web Pretext est une bibliothèque JavaScript/TypeScript qui s'attaque à un défi majeur de performance dans le développement web : la mesure et la mise en page du texte multiligne. Contrairement aux méthodes traditionnelles qui provoquent de coûteux "reflows" du DOM, Pretext contourne ce problème en mesurant le texte sans interaction directe avec le DOM. La bibliothèque utilise une approche en deux phases : la fonction `prepare()` segmente le texte et en mesure les dimensions via le moteur de rendu de polices du navigateur, puis les met en cache. Ensuite, `layout()` calcule rapidement la hauteur et la disposition des lignes par de simples opérations arithmétiques. Cette technique est extrêmement rapide et essentielle pour les interfaces utilisateur dynamiques. Pretext excelle par sa capacité à gérer les complexités linguistiques, y compris toutes les langues, les emojis et le texte bidirectionnel, tout en corrigeant les subtiles incohérences de rendu entre navigateurs. Cet effort minutieux, parfois assisté par l'IA, offre une solution robuste qui transforme des problématiques complexes en une API JavaScript pure et efficace, propulsant ainsi les capacités des interfaces web sur DOM, Canvas et SVG. - **Discussion HN** : [Lire la discussion](https://news.ycombinator.com/item?id=47556290) - **Article source** : [GitHub - chenglou/pretext · GitHub](https://github.com/chenglou/pretext)
La Fragilité du Cœur d'Internet : Le Protocole BGP en Question L'article original n'a pas pu être chargé. Néanmoins, les discussions soulignent une préoccupation majeure : la sécurité et la résilience du protocole BGP (Border Gateway Protocol), pilier fondamental de la navigation sur internet. Conçu sur la confiance, le BGP est intrinsèquement vulnérable aux détournements et aux fuites de routes, menaçant la stabilité globale du réseau. Bien que l'architecture décentralisée de l'internet le rende robuste face à une défaillance unique, l'adoption lente de solutions comme RPKI (Resource Public Key Infrastructure) laisse des brèches. Des acteurs étatiques ou de simples erreurs de configuration peuvent provoquer des perturbations significatives. Le consensus est clair : sans une amélioration collaborative et continue de la sécurité des routes, l'avenir d'un internet fiable reste incertain, malgré sa capacité à "survivre" aux incidents. La nécessité d'investissements et d'une coordination internationale est cruciale pour préserver son intégrité. - **Discussion HN** : [Lire la discussion](https://news.ycombinator.com/item?id=47545032) - **Article source** : [](https://www.cnn.com/2026/03/27/politics/iran-linked-hackers-fbi-director-patel)
Les cartes attendent — Le Tarot du Déploiement Le service "Les cartes attendent — Le Tarot du Déploiement" offre une perspective à la fois satirique et introspective sur les défis du développement logiciel et du déploiement. Présenté sous la forme d'un tarot, il propose des "conseils" métaphoriques sur les projets en cours, interrogeant le rôle de chacun dans l'aventure du déploiement, sans se soucier de la vélocité des sprints. Les "Arcanes" sont censées éclairer le chemin ou, parfois, révéler les impasses, avec un avertissement ludique de ne pas imputer les problèmes d'infrastructure aux cartes. Bien que conçu pour le divertissement, cet outil résonne profondément avec la réalité des développeurs, notamment face aux échéances serrées, souvent le jeudi. Des retours soulignent un désir pour des versions physiques du jeu et suggèrent une animation de brassage plus courte. L'initiative nourrit l'ambition d'évoluer vers une "divination actuarielle" basée sur des données réelles, transformant potentiellement l'expérience en un prédicteur de vie alimenté par des analyses concrètes, suggérant un potentiel au-delà de son apparence actuellement sarcastique, malgré une conception réalisée via Replit. - **Discussion HN** : [Lire la discussion](https://news.ycombinator.com/item?id=47535586) - **Article source** : [The Cards Await — Deploy Tarot](https://deploytarot.com/setup)
Le projet "A Compiler Writing Journey" sur GitHub Le référentiel "A Compiler Writing Journey" (acwj) sur GitHub documentait initialement la création pratique d'un compilateur auto-compilant pour un sous-ensemble du langage C. L'objectif était de fournir des explications détaillées des étapes et des choix techniques, en s'appuyant sur la théorie des compilateurs sans s'y noyer. Le projet, inspiré par "Practical Compiler Construction", a depuis évolué : l'auteur a cessé le travail sur acwj pour se concentrer sur le développement d'un nouveau langage, "alic", démarré de zéro. Ce parcours met en lumière la valeur pédagogique du C pour la conception de compilateurs, obligeant à une réflexion explicite sur la représentation des données, ce qui approfondit la compréhension des mécanismes internes. C est considéré comme un langage de bas niveau idéal pour le "bootstrapping" de systèmes complexes, particulièrement en utilisant les standards C89/99 pour une compatibilité étendue. Des approches alternatives, comme l'utilisation de langages typés (OCaml, Haskell) avec leurs puissants mécanismes de "pattern matching", sont également reconnues pour l'apprentissage du "recursive descent", offrant des perspectives complémentaires. Le projet est salué pour sa "belle conclusion", marquant une transition significative. * **Discussion HN** : [Lire la discussion](https://news.ycombinator.com/item?id=47511208) * **Article source** : [GitHub - DoctorWkt/acwj: A Compiler Writing Journey · GitHub](https://github.com/DoctorWkt/acwj)
Minutes avant l'annonce de Trump, 800 millions de dollars de transactions sur les prix du pétrole Juste avant une annonce très attendue de Donald Trump, 800 millions de dollars de transactions significatives ont été enregistrées sur les prix du pétrole. Cette activité boursière intense précède une déclaration de Trump qui s'est avérée remarquablement vague, se limitant à des "conversations très bonnes et productives". Un tel écart entre l'ampleur des transactions et la teneur évasive de l'annonce soulève de sérieuses questions quant à d'éventuels délits d'initiés. Les observateurs du marché soulignent qu'une déclaration aussi imprécise ne justifie généralement pas de mouvements boursiers substantiels et légitimes. Pour les investisseurs à long terme, la sagesse commande d'ignorer ces déclarations présidentielles éphémères. L'expérience montre que les réactions rapides et paniquées laissent souvent les spéculateurs à court terme exposés à des pertes importantes, mettant en lumière la vulnérabilité des marchés face à la rhétorique politique et au comportement spéculatif. - **Discussion HN** : [Lire la discussion](https://news.ycombinator.com/item?id=47496508) - **Article source** : [Minutes before Trump's announcement, $800 million in trades made on oil prices](https://www.9news.com.au/world/donald-trump-iran-updates-oil-futures-trade-suspicious-betting-activity-usa-world-news/1061ef6b-5fef-401c-b469-98016ccdb9c3)
Demande HN: Apple a résilié notre compte développeur à cause d'un employé malveillant Une petite entreprise de logiciels africaine est confrontée à la résiliation de son compte développeur par Apple, menaçant son application vitale qui soutient des familles et des commerces locaux. La cause : un employé ayant utilisé une machine partagée pour des activités non autorisées, violant les conditions d'Apple. Malgré un licenciement immédiat et des mesures de sécurité renforcées, les appels de l'entreprise à Apple se heurtent à des systèmes automatisés. Si l'entreprise met en avant l'impact social dévastateur, des voix critiques questionnent sa transparence, l'absence de preuves tangibles de son innocence (comme une plainte policière), et la validité de ses actions correctives. L'incident soulève des questions sur le pouvoir unilatéral des plateformes, l'absence de recours équitable, et l'incitation pour les développeurs à se tourner vers des alternatives web ouvertes pour échapper aux "jardins murés". - **Discussion HN** : [Lire la discussion](https://news.ycombinator.com/item?id=47479115) - **Article source** : [Ask HN: Apple terminated our dev account over a rogue employee](item?id=47479115)
Bloquer Internet Archive n'arrêtera pas l'IA, mais effacera les archives historiques du Web | Electronic Frontier Foundation Des éditeurs de presse majeurs, dont le New York Times et The Guardian, restreignent l'accès à Internet Archive (IA), la plus grande bibliothèque numérique mondiale. Cette démarche est motivée par la crainte que des entreprises d'IA n'utilisent leur contenu pour l'entraînement de modèles, une pratique qui, selon les éditeurs, enfreint le droit d'auteur et menace leurs revenus. Toutefois, cette riposte risque d'effacer des décennies d'archives historiques du web, pourtant vitales pour les journalistes, chercheurs et tribunaux, et souvent seul témoin fiable de la publication originale d'articles. Bien que la protection du droit d'auteur et des modèles économiques soit légitime, l'IA, en tant qu'organisation à but non lucratif, n'est pas un acteur commercial de l'IA. Son rôle d'archivage est reconnu comme un usage loyal. La complexité réside dans l'incapacité technique de distinguer les "bons" archivistes des "mauvais" "scrapers" d'IA, qui deviennent de plus en plus indétectables. Des voix s'élèvent pour souligner que l'IA elle-même, par sa position sur le `robots.txt` et certaines collaborations passées, a pu contribuer à cette tension. Un compromis suggéré serait un archivage différé, permettant aux éditeurs de monétiser l'actualité avant que le contenu ne devienne une ressource archivée publiquement. Ce débat met en lumière l'équilibre délicat entre la préservation de l'information, la souveraineté du contenu et les défis financiers de l'industrie médiatique à l'ère de l'IA. - **Discussion HN** : [Lire la discussion](https://news.ycombinator.com/item?id=47464818) - **Article source** : [Blocking the Internet Archive Won’t Stop AI, But It Will Erase the Web’s Historical Record | Electronic Frontier Foundation](https://www.eff.org/deeplinks/2026/03/blocking-internet-archive-wont-stop-ai-it-will-erase-webs-historical-record)
La police de l'Essex suspend l'utilisation des caméras de reconnaissance faciale après une étude révélant des biais raciaux La police de l'Essex a suspendu le déploiement de sa technologie de reconnaissance faciale en direct (LFR) après qu'une étude menée par l'Université de Cambridge a révélé un biais significatif : le système est "nettement plus susceptible" d'identifier correctement les personnes noires que celles d'autres groupes ethniques, et les hommes plus que les femmes. Cette découverte soulève des questions fondamentales sur l'équité de cette technologie et son impact sociétal. Alors que les préoccupations antérieures concernaient souvent la mauvaise identification des personnes non-blanches, ce rapport met en lumière une précision accrue mais disproportionnée pour certains groupes. Cette efficacité inégale pose un dilemme complexe : une surveillance policière plus "efficace" mais déséquilibrée pourrait entraîner des arrestations disproportionnées, renforçant les stéréotypes, surchargeant certaines communautés et potentiellement exacerbant les inégalités sociales. Le Home Office envisage pourtant d'étendre massivement l'usage de ces systèmes. Des critiques appellent à cesser l'utilisation de technologies d'IA expérimentales et potentiellement biaisées. La police de l'Essex affirme avoir ajusté ses procédures et reprendra le déploiement tout en promettant une surveillance continue contre les biais. - **Discussion HN** : [Lire la discussion](https://news.ycombinator.com/item?id=47452248) - **Article source** : [Essex police pause facial recognition camera use after study finds racial bias | Facial recognition | The Guardian](https://www.theguardian.com/technology/2026/mar/19/essex-police-pause-facial-recognition-camera-use-study-racial-bias)
Astral rejoint OpenAI pour l'avenir de la productivité logicielle Astral, l'entreprise derrière des outils Python très appréciés comme Ruff, uv et ty, a annoncé son acquisition par OpenAI pour intégrer l'équipe Codex. Cette initiative vise à intensifier les efforts pour rendre la programmation plus productive, en combinant l'expertise d'Astral en outillage de développement avec les avancées d'OpenAI dans l'intelligence artificielle. Astral s'engage à maintenir ses outils en open source et à continuer de les développer "en public". Cette annonce suscite néanmoins des interrogations au sein de la communauté des développeurs. Des inquiétudes émergent quant à la centralisation des "moyens de production" du logiciel par de grandes entités d'IA. Certains craignent que la feuille de route des outils d'Astral ne soit désormais influencée par les objectifs d'OpenAI, potentiellement au détriment de l'indépendance de l'écosystème Python. L'intégration dans Codex pourrait orienter le développement vers des synergies spécifiques à OpenAI, transformant la dynamique de ces projets open source, malgré les bénéfices financiers pour l'équipe d'Astral et la promesse de ressources accrues. - **Discussion HN** : [Lire la discussion](https://news.ycombinator.com/item?id=47438723) - **Article source** : [Astral to join OpenAI](https://astral.sh/blog/openai)
Mon vol aura-t-il Starlink ? Un nouvel outil, Stardrift.ai, permet de prédire la disponibilité de Starlink sur les vols, une information jusqu'alors incertaine. Il analyse la compagnie aérienne, le type d'appareil et, si assigné, le numéro de queue spécifique. Actuellement, seul un nombre limité de transporteurs aériens, comme United, Hawaiian, Alaskan, Air France, Qatar et JSX, ont déployé Starlink au-delà des phases d'essai. La performance supérieure de cette connexion satellite en fait un avantage concurrentiel significatif pour les compagnies, notamment pour les voyageurs d'affaires. Au-delà de l'aviation, Starlink est présenté comme une solution économique pour l'accès internet dans les zones rurales, souvent plus abordable que l'extension des infrastructures terrestres. Cette technologie mobile est également adoptée par les véhicules récréatifs, les bateaux et les commerces ambulants. Cependant, son déploiement soulève des débats sur la pertinence des subventions pour l'infrastructure rurale. Des critiques émergent également concernant la rentabilité économique à long terme de Starlink, la durée de vie de ses satellites et des liens présumés avec des programmes de défense, tandis que l'implication controversée de son fondateur influence la perception de certains consommateurs. - **Discussion HN** : [Lire la discussion](https://news.ycombinator.com/item?id=47428650) - **Article source** : [Show HN: Will my flight have Starlink?](https://news.ycombinator.com/item?id=47428650)