HN Digest
Briefing personnel.

Lire vite.
Garder l'essentiel.

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

12074 articles Page 452/1208 Sans filtre

Medici family mystery may be solved after more than 400 years

Depuis des rumeurs d'assassinat, une nouvelle analyse d'ADN ancien suggère que Francesco I de' Medici et sa femme Bianca sont morts de la malaria plutôt que par empoisonnement. Des fragments d'ADN du parasite Plasmodium, y compris Plasmodium falciparum et Plasmodium malariae, ont été retrouvés dans des échantillons osseux de Francesco, suggérant une possible double infection, et une souche inconnue a été identifiée chez son frère Giovanni. Les symptômes décrits par des médecins de cour et le contexte géographique marécageux de leur villa concordent avec l'hypothèse palustre, et des pratiques médicales de l'époque comme la saignée auraient pu aggraver leur état. Les auteurs estiment que l'ADN ancien offre une preuve plus probante que la paléo-immunologie, mais plusieurs spécialistes soulignent que la présence du parasite n'exclut pas formellement un empoisonnement concomitant. L'étude est considérée comme un progrès pour la paléogénomique et la compréhension historique de la malaria en Italie centrale, tout en laissant le débat sur la cause précise de ces décès partiellement ouvert.

Are AI labs pelicanmaxxing?

Partant du célèbre prompt demandant un pélican sur un vélo, l'auteur a généré 1 008 SVGs en combinant 8 animaux et 6 véhicules à travers sept modèles pour tester si les labos optimisent ce cas particulier. Chaque image a été rendue en PNG, notée par GPT‑5.6 Luna sur l'animal, le véhicule et la cohérence, et analysée pour les éléments de scène par Gemini 3.1 Flash‑Lite. Après inspection visuelle et une régression ajustant la difficulté intrinsèque des 48 combinaisons, ni les pélicans ni les vélos ne sont mieux rendus que d'autres catégories, et la combinaison pélican+vélo se classe 42e sur 48. Les effets par laboratoire sont faibles et non significatifs, si ce n'est une hausse marginale pour Gemini 3.5 sur les vélos qui disparaît avec correction pour comparaisons multiples, et l'uniformité de direction (tous les pélicans à vélo regardent à droite) n'est pas exceptionnelle au vu de l'ensemble. L'étude souligne des limites importantes — juge unique, trois échantillons par cas et budget limité — et conclut qu'il n'y a pas de preuve solide que les laboratoires pratiquent un pelicanmaxxing ciblé, même si une optimisation générale de la génération SVG reste possible.

ascdraw: Editor for ASCII/UTF-8 diagrams (in 144FPS)

Je considère ascdraw à 9,99 $ ou 9,99 € pour une licence personnelle, mais le paiement est entièrement optionnel car le logiciel est distribué sous GPLv3. C'est un éditeur de diagrammes natif axé clavier offrant une toile Unicode pratiquement infinie pour lignes connectées, tampons, formes, texte, sélection rectangulaire, calques et export en TXT/JSON/PNG. L'application rend à plus de 120 FPS et propose de nombreux raccourcis clavier ainsi que des modes Ligne/Tampon/Forme, des couleurs ANSI, gestion des calques et outils utilitaires pour manipuler la grille et la vue. On peut télécharger des nightly sur GitHub ou construire et installer avec l'outil Rust (cargo), et le mode filtre permet d'utiliser ascdraw comme éditeur externe en lisant stdin et en écrivant stdout. Le projet est conduit par Przemysław Alexander Kamiński, fournit des instructions de développement et des contrôles (fmt, test, clippy), a reçu une aide de modèles OpenAI et propose des licences commerciales lorsque les termes de la GPL sont inadaptés.

Everyone should know SIMD

L'auteur soutient que le traitement vectoriel est plus simple à comprendre et utile au-delà des optimisations de niche, et qu'il suit souvent un schéma récurrent. Ce schéma comporte cinq étapes : diffuser les constantes et initialiser des accumulateurs, parcourir les données par blocs de largeur de vecteur, effectuer l'opération sur toutes les voies en parallèle, réduire ou stocker le résultat vectoriel, puis traiter la queue scalaire restante. Un exemple en Zig montre comment charger des blocs de points de code, comparer en parallèle et convertir le résultat en masque pour localiser le premier élément non conforme, avec des gains théoriques jusqu'à 4x/8x/16x et un gain pratique d'environ 5x. Les compilateurs peuvent parfois auto-vectoriser des boucles simples mais restent limités et imprévisibles, donc il est préférable de rendre la vectorisation explicite lorsque le gain de performance est critique. Tout développeur devrait savoir reconnaître ces opportunités de traitement par blocs et apprendre les notions de base, car un bon support langage permet d'obtenir des améliorations sans connaître l'assemblage ni les détails spécifiques du CPU.

GigaToken: ~1000x faster Language model tokenization

Gigatoken est décrit comme un tokenizer extrêmement rapide pour l'entraînement de modèles de langage, compatible avec une large gamme de CPU et de formats de tokenisation courants. Les benchmarks sur de grands fichiers montrent des débits atteignant plusieurs dizaines de Go/s, soit des gains allant de plusieurs dizaines à plus de mille fois par rapport à HuggingFace Tokenizers et tiktoken selon le modèle et le CPU. Le projet propose un mode de compatibilité qui permet d'utiliser Gigatoken comme un remplacement transparent pour HuggingFace ou tiktoken et une API Gigatoken qui lit directement les fichiers en Rust pour maximiser la parallélisation et la vitesse. Les améliorations de performance proviennent d'optimisations bas niveau telles que la prétokenisation SIMD, une mise en cache efficace des mappings, la réduction des branchements et la minimisation des interactions avec Python. Le dépôt signale aussi des limites connues — support incomplet pour SentencePiece et WordPiece, absence de sinks de fichiers, tests Windows limités et possibilité d'améliorer encore l'overhead Python — et fournit une référence de citation pour les recherches.

Quality non-fiction books are the antithesis of AI slop

Durant sa première année d'université, un travail de manutentionnaire en bibliothèque l'a conduit à une forme d'autodidaxie filtrée, puisqu'en rangeant des ouvrages classés A à F il lisait des fragments au hasard et apprenait plus que dans beaucoup de cours. Il remarque que les bibliothèques à accès libre déclinent au profit de Learning Labs, d'espaces sociaux et d'éditions électroniques, mais il estime que les livres de non‑fiction conservent une qualité remarquable. Pour faciliter la découverte de cette longue traîne de non‑fiction de qualité il a conçu un outil gratuit rassemblant les listes de finalistes et lauréats des grands prix anglophones, obtenu via Claude et GPT et indexé par recherche sémantique sur environ 6 500 titres. Il a aussi produit des visualisations et des classements montrant quels éditeurs et collections ont le mieux réussi aux prix et a constaté que le nombre de prix a crû jusqu'en 2014 avant de marquer un fléchissement possible depuis 2020. Enfin, il avance que l'âge d'or de la non‑fiction tient à des transformations post‑seconde guerre (facilité des voyages, ouverture des institutions, normes de catalogage comme MARC, et nouveaux médias) et s'interroge sur une possible apogée dans les années 1980‑2000 suivie d'une incertitude actuelle.

git's –end-of-options Flag

L'auteur a repéré le drapeau git --end-of-options, introduit dans git 2.24.0 pour séparer les options des révisions parce que -- était déjà utilisé pour distinguer révisions et pathspecs. Les marqueurs --end-of-options et -- sont différents et doivent souvent être combinés pour éviter que des révisions non fiables commençant par un tiret soient interprétées comme des options, mais le support a été ajouté par sous-commande à des versions variées (par ex. rev-parse 2.30.0, checkout/reset 2.43.1). Le problème relève de la CWE-88 (argument injection) et a permis des vulnérabilités touchant git, Mercurial, Subversion, CVS et de nombreux gestionnaires de paquets lorsqu'ils transmettent des URLs ou refs non filtrées à des binaires (ex. CVE dans docker, Composer, Bundler, pip, Poetry, CocoaPods, Go). La plupart des gestionnaires de paquets forkent git et n'ont protégé la ligne d'arguments qu'après des incidents, en rejetant les noms commençant par un tiret ou en préfixant les URLs par --, mais employer --end-of-options impose de relever la version minimale de git et exclut des distributions aux paquets anciens. Les bibliothèques git intégrées (libgit2, gitoxide, go-git, JGit, dulwich) évitent l'injection d'arguments mais exigent de suivre les correctifs upstream, et l'auteur a soumis un PR Homebrew pour élever la version minimale à 2.30.0 et ajouter --end-of-options sur certains appels.