HN Digest
Briefing personnel.

Edition quotidienne

Lire vite. Garder l'essentiel.

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

6808 articles Page 315/681 Sans filtre

06:03

Monad Tutorials Timeline

La chronologie rassemble, de 1992 à 2025, des articles, tutoriels, papiers et ressources expliquant les monades dans divers langages et contextes. On y trouve des contributions historiques et fondamentales (Wadler, Moggi, Mac Lane) ainsi que des tutoriels pratiques couvrant Haskell, Scheme, Java, JavaScript, Ruby, Perl, Clojure, Scala, Python et C++. Les thèmes récurrents incluent la définition catégorique (monoïde dans la catégorie des endofoncteurs), les métaphores pédagogiques, les transformateurs de monades, les monades spécifiques comme Maybe, State et IO, et les relations avec les foncteurs et applicatifs. Le corpus reflète aussi une réflexion critique sur la pédagogie des monades, nommément le «monad tutorial fallacy», et propose des approches alternatives allant de développements formels à des explications pragmatiques sans théorie des catégories. La page invite les lecteurs à contribuer et à mettre à jour la liste en ajoutant des liens vers des tutoriels ou articles pertinents pour en faire une ressource évolutive pour l'apprentissage des monades.

06:02

Biology is a Burrito: A text- and visual-based journey through a living cell

Un génome bactérien déroulé en fil serait près de 1 000 fois plus long que la cellule qui le contient, et les génomes des descendants d'une seule E. coli pourraient, alignés, atteindre la Lune et en revenir plusieurs fois. Les cellules sont extrêmement encombrées : environ 70 % d'eau et 30 % de biomolécules dominées par des protéines, ARN et lipides, ce qui rend les représentations artistiques insuffisantes pour rendre compte des dynamiques rapides et chaotiques. La biologie quantitative permet de chiffrer des processus clés, par exemple qu'une E. coli possède ~4 400 gènes dont ~25 % sont transcrits, qu'une ARN polymérase avance à ~40 bases par seconde et qu'un ribosome synthétise une protéine moyenne en ~24 secondes, la cellule contenant trois à quatre millions de protéines. La diffusion impose des limites de taille aux cellules puisque les petites molécules se déplacent beaucoup plus vite que les grosses, et malgré des concentrations faibles les enzymes rencontrent des substrats des centaines de milliers de fois par seconde. De nombreuses protéines ont des fonctions contextuelles différentes, ce qui nécessite de nouvelles méthodes pour mesurer leurs dynamiques et interactions et motive l'enseignement d'une biologie fondée sur des calculs, comme l'auteur l'a expérimenté durant son doctorat en biophysique.

06:02

Copy Fail

CVE-2026-31431 est une faille logique dans le chemin AF_ALG du noyau, liée à l'optimisation algif_aead, qui permet une écriture de 4 octets dans la page-cache conduisant à une élévation de privilèges locale sur les noyaux livrés depuis 2017. La vulnérabilité ne requiert qu'un compte utilisateur non privilégié, n'a pas besoin de fenêtre de course ni d'offset spécifique, et un PoC Python de 732 octets permet d'obtenir une session root sur plusieurs distributions sans modification. Sont concernés les systèmes Linux grand public testés (Ubuntu, Amazon Linux, RHEL, SUSE et d'autres) et le risque est élevé pour les hôtes multi-locataires, les clusters Kubernetes, les runners CI et les services cloud exécutant du code non approuvé. La correction upstream (retrait de l'optimisation algif_aead) a été intégrée et il est possible en urgence de désactiver le module algif_aead via /etc/modprobe.d pour atténuer le risque sans impact notable sur la plupart des usages. La vulnérabilité a été signalée en mars 2026, patchée en avril 2026, documentée publiquement avec PoC et tracker, et a été découverte par la numérisation automatisée de Xint Code.

06:01

The Zig project's rationale for their firm anti-AI contribution policy

Le projet Zig applique une politique très stricte interdisant l'utilisation d'IA de type LLM pour les problèmes, les pull requests et les commentaires du bug tracker, y compris pour la traduction; l'anglais est encouragé mais non obligatoire. Le runtime JavaScript Bun, écrit principalement en Zig et acquis par Anthropic, utilise largement l'IA et maintient un fork de Zig qui a obtenu un gain de performance 4x sur la compilation après l'ajout d'une analyse sémantique parallèle et de multiples unités de génération de code, mais l'équipe de Bun indique qu'elle ne compte pas remonter ces changements dans Zig à cause de l'interdiction des contributions assistées par LLM. Loris Cro, vice-président de la communauté de la Zig Software Foundation, explique que la politique vise à privilégier le développement des contributeurs plutôt que l'acceptation de contributions parfaites, car l'effort des relecteurs sert avant tout à former des contributeurs fiables et prolifiques. Il qualifie ce principe de « contributor poker », signifiant qu'on mise sur la personne qui contribue plutôt que sur le contenu de sa première PR. Loris argue que l'assistance par LLM rompt ce modèle parce qu'une PR générée par une IA n'aide pas les mainteneurs à faire progresser un contributeur et peut même les pousser à utiliser leurs propres outils d'IA pour résoudre les mêmes problèmes.

06:01

Functional programmers need to take a look at Zig

L'auteur évalue un langage selon trois axes : expressivité (bruit), capacités de programmation du système de types pour garantir la correction, et temps moyen avant une surprise (décalage entre intention et implémentation). Il s'intéresse à Zig car son comptime semble offrir une manière simple et flexible d'exprimer la programmation de types comparable à Haskell tout en évitant d'imposer un paradigme fonctionnel contrôlé par des monades intégrées. L'article critique l'omniprésence du ramasse-miettes comme source de bruit, de plafonds de performance et d'appauvrissement des connaissances machine, arguant que les architectures modernes rendent ces compromis historiques moins pertinents. Zig est présenté comme innovant et pragmatique grâce à des abstractions de mémoire explicites (arenas, allocators), une API d'E/S qui évoque un Reader monad, et un comptime puissant permettant de définir newtypes, sommes et équivalents de typeclasses. En conclusion l'auteur se dit optimiste vis-à-vis de Zig, le trouvant adapté pour exprimer son domaine, efficace pour programmer le système de types et moins sujet aux surprises que des langages comme Rust ou C++.