HN Digest
Briefing personnel.

Lire vite.
Garder l'essentiel.

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

11615 articles Page 183/1162 Sans filtre

Simple Is Not Small

L'auteur affirme qu'il faut prioriser la simplicité des outils après avoir raconté un long et coûteux épisode de débogage. Il illustre que les pipelines Unix, bien que compacts, sont fortement couplés et donne l'exemple du calcul de fréquences de mots en Bash versus Clojure pour montrer la difficulté de séparer ordre et agrégation. La discussion sur le découplage compare la contrainte des structs en Rust à la flexibilité des maps annotées en Clojure pour montrer comment la représentation des données peut être dissociée du typage. Être petit a du sens quand les ressources sont limitées, mais la simplicité devrait demeurer un objectif permanent, ce qui nécessite un bon modèle mental, du goût et parfois des investissements techniques importants. L'auteur encourage à viser la simplicité plutôt que la petitesse, donne l'exemple d'un pipeline de couverture devenu plus grand mais moins couplé après refonte, et annonce d'autres réflexions sur le goût, l'intégration verticale découplée et la conception de grands systèmes peu complexes.

Finding a bug in Dummit and Foote's Abstract Algebra

Pendant sa deuxième semaine au Recurse Center, l'auteur a tenté de formaliser le manuel de Dummit et Foote en Rocq et a buté sur un premier exercice. L'exercice affirme qu'une fonction est injective si et seulement si elle possède une réciproque à gauche. Il donne un contre‑exemple avec A vide et B = {1} : la fonction vide A -> B est injective mais n'admet pas de réciproque à gauche parce qu'il n'existe pas de fonction B -> A. Ce contre‑exemple montre que l'énoncé est faux sans hypothèse supplémentaire sur A ou B, par exemple que A soit non vide ou que B soit vide. L'auteur indique que la formalisation en Rocq a rendu ce cas particulier évident et qu'il a vérifié que l'errata du livre signale déjà ce problème.

Show HN: Interactive Tree of Life

Le texte répertorie les interactions alimentaires et trophiques, précisant qui se nourrit de qui, qui est mangé, le vol de nourriture et les relations de prédation et d'élevage. Il détaille les parasitismes et parasitoidies, distinguant parasites endo- et ectoparasites, parasites de racines et hémiparasites, ainsi que parasitoïdes et hyperparasites. Les aspects pathogènes et de transmission sont abordés, incluant agents infectieux, porteurs, vecteurs et hôtes réservoirs. Les symbioses et hébergements sont décrits, englobant symbiotes mutualistes et commensaux, hôtes ectomycorhiziens et arbusculaires, épiphytes et organismes vivant sur ou dans d'autres espèces. Sont également traités la pollinisation et la dispersion, les habitats et proximités écologiques (sites de vie, cooccurrences, dortoirs), ainsi que d'autres associations comme la ponte d'œufs, l'allélopathie et les liens écologiques divers.

This Month in Ladybird – August 2026

En août Ladybird a ajouté la lecture vidéo sur Twitch et la prise en charge de formats et codecs supplémentaires (fragmented MP4, AVC/H.264, HEVC/H.265, AV1, AAC) via Media Source Extensions, ainsi que des corrections de bugs de lecture. Le navigateur a reçu des améliorations web et d'interface importantes : CSS scroll snap, débogage JavaScript dans DevTools, pause et reprise des téléchargements, restauration complète de l'historique de session et diverses améliorations UI (dialogs non bloquants, gestion des schémas externes, correctifs Wayland, récupération de plantage). L'équipe a intensifié le travail sur les performances avec un nouveau moteur de style incrémental, la mise en cache des résultats de layout, le déport des animations CSS sur le compositeur et de nombreuses optimisations qui ont fait sensiblement progresser plusieurs benchmarks. De larges portions de LibWeb ont été portées en Rust (analyse CSS, stockage/calcul des styles, pipeline de peinture, représentation des chaînes), un service centralisé de compilation Wasm a été introduit, et des protections mémoire comme le caging des valeurs JavaScript ont été ajoutées. La roadmap vers l'alpha 2026 se concentre désormais sur l'expérience utilisateur et la distribution (rapport de plantage sans terminal, builds signés, mise à jour automatique, premier lancement et page de téléchargement), tandis que la compatibilité de sites, les améliorations réseau et les gains aux tests Web Platform continuent d'être développés.

Caltech Mathathon – first hackathon ever devoted to research level mathematics

L'annonce rapporte plusieurs avancées récentes de l'IA en mathématiques pures, dont la réfutation de la conjecture d'Erdos sur les distances unitaires planaires, la construction d'un groupe non-sofique et une revendication d'une structure complexe sur la sphère à six dimensions encore non vérifiée. Les organisateurs posent des questions sur la rapidité avec laquelle l'IA peut accélérer le passage de l'idéation à la publication évaluée par les pairs et sur le rôle des mathématiciens lorsque l'IA résout des conjectures plus rapidement. Du 30 octobre au 1er novembre au California Institute of Technology, cent équipes recevront des modèles de pointe pour résoudre des conjectures ouvertes, construire de nouvelles théories et défendre leurs résultats devant des mathématiciens éminents. Des prix seront décernés aux résultats les plus prometteurs et bien expliqués lors de l'événement, puis une seconde série de prix sera attribuée après vérification par la communauté mathématique. L'événement se présente comme le premier hackathon dédié à la recherche mathématique de haut niveau et indique des engagements en faveur d'un usage responsable de l'IA.

Emacs Bedrock 2.0

Bedrock est un kit de démarrage minimal pour Emacs reposant sur deux fichiers init que l'on copie et modifie, et la nouvelle version nécessite Emacs 31, rompant la compatibilité avec Emacs 29. La configuration de base évite les paquets tiers et fournit des configurations d'exemple pour des paquets populaires rangées dans un dossier extras afin que l'utilisateur importe ce dont il a besoin. Parmi les changements importants, tous les fichiers utilisent lexical-binding, use-package installe désormais automatiquement les paquets, embark remplace which-key pour l'aide, wgrep est retiré au profit du mode intégré de modification de grep, et la configuration de tree-sitter, d'isearch, de *Completions* et de repeat-mode a été améliorée. La mise à jour corrige aussi des problèmes comme le respect des couleurs de thème et le message de démarrage, et d'autres petites améliorations figurent dans le changelog. Il n'existe pas de mise à jour automatique : les utilisateurs doivent comparer leur commit d'origine avec la branche principale et appliquer manuellement les modifications, et l'auteur remercie la communauté pour les retours et contributions.

Some more thoughts on random_page_cost

L'auteur réévalue le paramètre random_page_cost en montrant que des disques rotatifs donnent un coût aléatoire bien plus élevé que les SSD et que la valeur par défaut de 4,0 n'était pas le coût brut. Il explique que des tentatives d'augmenter random_page_cost ont parfois dégradé les performances parce que ce paramètre compense des lacunes du modèle de coût, notamment l'ignorance de la mémoire et des effets de cache. Le modèle de coût actuel ne tient pas correctement compte de la mémoire réellement utilisée par un plan ni de la notion d'ensemble actif, de sorte qu'un scan séquentiel peut évincer beaucoup plus de données en cache qu'un parcours par index. Le planificateur estime les coûts comme si les données étaient froides et sans concurrence, ce qui peut favoriser des plans élargissant l'ensemble actif et saturant la bande passante tandis que les index scans restent plus localisés. La recommandation est de considérer random_page_cost comme un proxy pour ces effets complexes et de le régler au cas par cas en se basant sur la surveillance des requêtes (par exemple via pg_stat_statements) plutôt que sur des mesures d'E/S brutes.

Show HN: Stuxnet – A reconstructed source code of the infamous cyber-weapon

Ce dépôt propose une reconstruction strictement pédagogique et destinée à la recherche du ver Stuxnet, issue du reverse engineering des échantillons binaires découverts en 2010. Le code reconstitué reproduit la logique originale et les vecteurs d'attaque en organisant les modules principaux comme le chargeur, l'élévation de privilèges, les bibliothèques S7, les rootkits noyau et le composant de sabotage des automates. Le malware cible l'environnement Siemens (WinCC, Step 7) et les automates S7 pour injecter du code dans les blocs OB1/OB35 afin d'altérer la fréquence des variateurs et provoquer des dégâts mécaniques. La propagation s'effectue via des clés USB (exploits LNK), des partages réseau et un dispositif P2P, tandis que des pilotes kernel (mrxcls.sys, mrxnet.sys) assurent le masquage et la persistance. Le dépôt est fourni sous licence GPLv3 avec un avertissement clair: le code est destiné à l'analyse statique en environnement isolé à des fins académiques et de défense, et ne doit pas être utilisé à des fins malveillantes.