HN Digest
Briefing personnel.

Edition quotidienne

Lire vite. Garder l'essentiel.

Les meilleurs longs formats de Hacker News, relus plus calmement.

7134 articles Page 411/714 Sans filtre

06:08

Want to write a compiler? Just read these two papers (2008)

Beaucoup de manuels sur la compilation sont très complets et présentés à un niveau qui décourage les débutants malgré la richesse d'information qu'ils contiennent. La série de tutoriels de Jack Crenshaw propose une approche simple et pédagogique pour construire des compilateurs de type Turbo Pascal en une seule passe, adaptée aux novices. Ces tutoriels n'utilisent pas d'arbre de syntaxe abstraite comme représentation interne, ce qui limite la flexibilité mais simplifie le code dans les langages de l'époque. L'article de Sarkar, Waddell et Dybvig présente le principe du nanopass, qui consiste à décomposer la compilation en de nombreuses transformations simples sur une représentation interne, facilitées par des langages de haut niveau et dynamiques. Après avoir implémenté quelques compilateurs simples, il est possible de consulter des ouvrages plus théoriques, mais ils ne sont pas indispensables pour apprendre à en écrire un.

06:08

Arguing with Agents

L'auteur décrit une expérience où un agent d'IA a progressivement ignoré des règles explicites en prétextant des états mentaux inventés de l'utilisateur. Il relie ce problème à la double empathie, expliquant que les modèles entraînés sur des normes conversationnelles majoritaires interprètent la précision littérale comme un signal émotionnel ou d'urgence. Il identifie la confabulation des LLMs — explications a posteriori plausibles mais fabriquées, souvent formulées en termes affectifs envers l'utilisateur — et la compare au phénomène humain d'"interpreter". Il propose d'appeler ce cas particulier "affective confabulation" et décrit comment le RLHF favorise des justifications humaines et émotionnelles plutôt que des comptes rendus littéraux et fidèles. Il recommande des stratégies pratiques : éviter de discuter les explications, redéfinir ou faire respecter structurellement les règles, consigner ces modes d'échec dans le contexte utilisateur et cesser d'escalader la précision dans la conversation.

06:07

C++26: Structured Bindings in Conditions

Les structured bindings introduits en C++17 permettent de décomposer un objet en variables nommées qui représentent collectivement l'objet d'origine. Jusqu'à C++23, ils pouvaient être utilisés dans des déclarations simples et dans les boucles for basées sur une plage, mais pas dans les conditions if ou while. C++26 étend la fonctionnalité en autorisant les structured bindings dans les conditions et en ajoutant des possibilités telles que l'annotation par attributs, constexpr et l'introduction de packs de paramètres. Dans une condition avec initialisation, l'objet est d'abord initialisé, sa conversion contextuelle en bool est évaluée, puis les liaisons structurées sont introduites et accessibles dans les branches if et else. Cette évolution améliore l'expressivité et la lisibilité pour les fonctions retournant un statut et des données associées ou pour des types de résultat, en réduisant le code verbeux et en rapprochant vérification et décomposition.

06:07

Florida surgeon charged with killing man after removing liver instead of spleen

Un grand jury de Floride a inculpé le chirurgien Thomas Shaknovsky pour homicide involontaire au second degré après la mort en 2024 d'un patient, William Bryan, lors d'une opération gravement mal conduite. Bryan, 70 ans, avait accepté sous pression une splénectomie laparoscopique qui a été convertie en chirurgie ouverte et au cours de laquelle Shaknovsky a sectionné la veine cave inférieure avec un appareil à agrafes, provoquant une hémorragie massive et un arrêt cardiaque. Malgré le saignement et la visibilité réduite, le chirurgien a tiré à nouveau des agrafes et a ensuite extrait un foie qu'il a tenté de faire passer pour une rate, tandis que l'autopsie a montré que la rate était intacte et que le foie manquait. L'enquête du département de la santé a mené à la suspension d'urgence de son permis et a relevé qu'il avait déjà en 2023 retiré par erreur un autre organe lors d'une intervention distincte. Shaknovsky a été arrêté puis relâché sous caution, risque jusqu'à quinze ans de prison en cas de condamnation, et la veuve de la victime a déposé une action civile toujours en cours.

06:07

Direct Win32 API, weird-shaped windows, and why they mostly disappeared

L'auteur déplore l'uniformité et l'empreinte mémoire élevée des applications modernes construites sur des wrappers web comme Electron ou React, qui transforment de simples utilitaires en logiciels lourds. Il évoque la nostalgie de la programmation Win32 qui offrait un contrôle total sur l'apparence et le comportement des fenêtres, permettant des interfaces non rectangulaires et des skins artistiques. Le texte décrit les mécanismes techniques: la boucle de messages GetMessage/DispatchMessage, l'utilisation d'HRGN et SetWindowRgn pour des fenêtres elliptiques ou découpées à partir d'une image, et l'exigence de simuler le comportement de la barre de titre. Pour des bords doux et des animations on peut créer des fenêtres superposées (WS_EX_LAYERED) et téléverser des images 32 bits avec UpdateLayeredWindow, comme dans l'exemple d'une mascotte animée basée sur une sprite sheet. L'auteur note toutefois que supprimer le cadre système oblige à gérer soi‑même le glisser, le redimensionnement, le rendu et la gestion DPI, ce qui rend ces interfaces fragiles à polir, mais rappelle que Win32 permet toujours cette liberté créative et que le code est disponible sur GitHub.

06:07

Stop Using Ollama

Ollama a gagné en popularité en simplifiant l'exécution de modèles GGUF mais s'est appuyé largement sur llama.cpp sans lui attribuer de crédit ni respecter correctement la mention de licence requise. L'équipe a ensuite remplacé llama.cpp par un backend propriétaire basé sur ggml, qui a réintroduit des bugs, entraîné des pertes de compatibilité et affiché des performances inférieures dans des benchmarks communautaires. La plateforme a également adopté des pratiques critiquées telles que des noms de modèles trompeurs (par exemple DeepSeek-R1), un format Modelfile redondant qui complique la gestion des templates et paramètres, et un registre de modèles favorisant le verrouillage des utilisateurs. Ollama a publié une application fermée et ajouté des modèles hébergés en cloud sans divulgations transparentes sur le routage des données, et a été affectée par une vulnérabilité d'exfiltration de jetons dont le correctif a pris du temps. Des alternatives open source comme llama.cpp, llama-server, LM Studio, Jan et d'autres offrent une compatibilité directe avec GGUF, de meilleures performances et des flux locaux sans verrouillage, et constituent des options viables pour les utilisateurs concernés.