HN Digest
Briefing personnel.

Edition quotidienne

Lire vite. Garder l'essentiel.

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

5872 articles Page 55/588 Sans filtre

06:02

Delacroix's Entry of the Crusaders into Constantinople Restored

Commandée par le roi Louis‑Philippe en 1838 et achevée en 1840, cette grande scène historique de Delacroix a été exposée au Salon de 1841 puis intégrée aux salles néo‑gothiques des Croisades avant d'être transférée au Louvre en 1881. Entre mai 2025 et avril 2026, un traitement de conservation a renforcé la structure de la toile, l'a remontée sur son châssis restauré, a retiré les vernis jaunis et les matériaux anciens, a comblé les lacunes picturales et a appliqué un nouveau vernis transparent. L'imagerie scientifique a révélé des décisions de composition initiales, comme la présence d'un corps dissimulé derrière des bannières et le mouvement tendu de la tête d'un cheval qui renforce la représentation de la violence. La disparition du voile jaunissant a restitué la palette vive de Delacroix et mis en évidence des procédés techniques tels que le flochetage, qui rend la carnation et l'éclat des femmes réduites en esclavage ainsi que la profondeur chromatique des plans d'arrière‑plan. Ce chantier s'inscrit dans une campagne de conservation des grands formats de Delacroix débutée en 2019 et, soutenu par Isabelle Ealet‑Corbani, permet à l'œuvre de retrouver prochainement les Salles Rouges.

06:02

Reverse-Engineered Userspace Driver for Asus ZenVision Lid OLED on Linux"

Ce projet open-source fournit un pilote userspace Linux pour l'écran OLED de couvercle 3,5" 256×64 monochrome présent sur certains ASUS Zenbook. Le protocole USB du microcontrôleur Nuvoton M480 a été rétro‑ingénieré et le driver envoie un framebuffer 256×64 en niveaux de gris 4 bits via un endpoint bulk après une poignée de commandes. Une interface CLI Python permet d'afficher des images statiques, de jouer des animations et de régler la luminosité, et une application compagnon propose des applets et visualiseurs audio-réactifs. L'installation requiert Python 3.9+, pyusb, Pillow, libusb et accès USB brut ou une règle udev pour exécuter sans root, avec un paquet disponible dans l'AUR pour Arch Linux. Le projet est indépendant, fonctionne sur le modèle UX5401ZAS, est publié sous licence MIT et invite contributions et rapports pour adapter le protocole à d'autres modèles.

06:02

Magenta RealTime 2: Open and Local Live Music Models

Un modèle open-weights accompagné d’un moteur d’inférence en temps réel permet de jouer et de contrôler des instruments IA localement sur un ordinateur portable avec des entrées MIDI, audio et texte. L’implémentation comprend une bibliothèque Python open source (pip install magenta-rt), un moteur C++ qui utilise MLX pour tirer parti des GPU Apple Silicon et des exemples d’applications intégrables aux DAW. L’architecture repose sur une génération autoregressive au niveau des trames (~40 ms) avec attention en fenêtre glissante et un décodeur-only pour réduire fortement la latence par rapport à la génération par chunks. Le contrôle expressif est assuré par un conditionnement aligné sur les trames pour les notes (pianoroll 128 canaux), le contrôle de batterie on/off, et le style via des embeddings MusicCoCa avec un module text-to-audio pour gérer le décalage entre texte et audio. La version compacte peut fonctionner en temps réel sur la plupart des Mac Apple Silicon tandis que le modèle de base nécessite des M2/M3 Pro ou supérieurs, et l’équipe prévoit d’ajouter le finetuning et davantage d’exemples et d’outils de performance.

06:01

Branchless Quicksort faster than std:sort and pdqsort with C and C++ API

Sur des lots de 50 millions d'éléments, blqsort mono‑thread est nettement plus rapide que std::sort et pdqsort (≈0,96–0,97 s sur Apple M1 et 2,06–2,20 s sur AMD Ryzen contre 1,33–3,46 s et 2,81–4,75 s pour les autres implémentations selon le type de données). La méthode principale repose sur un partitionnement sans branchement inspiré de fluxsort qui copie des blocs en utilisant une zone tampon sur la pile de 1024 éléments et alterne des copies gauche/droite pour éviter les mispredictions au prix de copies supplémentaires. Pour les très petites tailles (2 à 12 éléments) le tri utilise des réseaux de tri spécifiques et une primitive sans branchement, tandis que pour les partitions plus larges on emploie median‑of‑medians, déroulage explicite des boucles, détection de partitions déjà triées ou déséquilibrées et basculement local vers heapsort si nécessaire. Quatre en‑têtes fournissent des interfaces C et C++ mono‑ et multi‑thread (blqs.h, blqs_thr.h, blqsort.h, blqsort_thr.h) et l'usage est simple (include puis blqs::sort ou blqsort), avec pour les types non trivially_copyable une variante BlockQuicksort qui traite d'abord des indices pour réduire les copies de données lourdes. Le code source complet est disponible sur GitHub, la version multi‑threadée peut accélérer encore d'environ 3–4× sur M1, et l'auteur note que blqsort offre plus de flexibilité pour trier des structures personnalisées que les solutions SIMD spécialisées.

06:01

WiFi Time

L'auteur décrit un projet abandonné visant à créer un module GPS factice qui récupère l'heure via WiFi pour remplacer un module GPS sur son Precision Clock. Il a utilisé un ESP8266 dans l'environnement Arduino et a mesuré la précision en comparant une sortie PPS générée par l'ESP8266 avec la PPS d'un vrai module GPS à l'aide d'un analyseur logique. Les principales difficultés ont été la gigue importante du réseau WiFi, les valeurs extrêmes de latence, l'imprécision de l'oscillateur interne et la variabilité des serveurs NTP du pool, qui introduisaient un biais de quelques millisecondes. Après de nombreuses captures et réglages de la boucle de contrôle, la précision atteignait parfois 0,5 ms mais le système restait instable et sensible au réseau et au serveur choisi, Cloudflare offrant de meilleures performances. L'auteur conclut que la solution pratique serait d'utiliser un TCXO ou un meilleur module GPS plutôt que d'essayer d'obtenir une précision sous la milliseconde sur WiFi, et abandonne le projet.

06:01

I'm skeptical about efforts to revolutionize schooling

L'auteur, sans expérience professionnelle en enseignement, reconnaît être mal placé pour proposer une réforme scolaire mais répond aux questions qu'on lui pose. Après examen de la recherche, il se montre sceptique envers les propositions radicales visant à remplacer l'enseignement direct par l'apprentissage par projet ou la découverte, car les essais comparatifs favorisent souvent l'instruction explicite. Des études comme Project Follow Through, des méta-analyses en éducation médicale et les recherches sur l'apprentissage de la lecture montrent que l'enseignement structuré, la pratique répétée et les méthodes explicites donnent généralement de meilleurs résultats. Les améliorations plausibles consistent à augmenter l'efficacité pédagogique (gestion de la charge cognitive, pratique distribuée, évaluations formatives) et à choisir plus soigneusement les contenus, tandis que l'EdTech et la gamification peuvent aider ponctuellement mais présentent des limites. Les approches intensives qu'il décrit peuvent réussir avec des apprenants très motivés, mais elles sont difficilement transposables à un système scolaire général soumis à la diversité des élèves, aux problèmes de motivation et aux contraintes institutionnelles.

06:00

Do transformers need three projections? Systematic study of QKV variants

Les transformeurs s'appuient sur l'attention QKV, mais la contribution individuelle des projections Q, K et V et l'effet de leur partage étaient peu étudiés. Les auteurs comparent trois contraintes de partage de projections — Q-K=V (clé-valeur partagées), Q=K-V (requête-clé partagées) et Q=K=V (projection unique) — et proposent des encodages positionnels 2D pour casser la symétrie des cartes d'attention des deux dernières variantes. Sur des tâches synthétiques, des jeux de vision (MNIST, CIFAR, TinyImageNet, détection d'anomalies) et en modélisation du langage (modèles 300M et 1,2B entraînés sur 10 milliards de tokens), les modèles avec partage de projections sont comparables ou parfois supérieurs au transformeur QKV. En langage, Q-K=V permet de réduire de 50 % le cache KV avec seulement 3,1 % de dégradation de perplexité et, combiné au partage de têtes (GQA/MQA), atteint jusqu'à 96,9 % de réduction de cache, facilitant l'inférence sur appareil. Les auteurs montrent que Q-K=V préserve la qualité car clés et valeurs peuvent occuper des espaces de représentation proches et l'attention opère souvent en régime de faible rang, tandis que Q=K-V casse la directionnalité de l'attention, positionnant le partage de projections comme une forme utile de poids partagés pour le déploiement en bordure.

06:00

Open Code Review – An AI-powered code review CLI tool

Il s'agit d'un outil CLI open source de revue de code alimenté par des LLMs, issu d'un assistant interne d'Alibaba qui a été validé à grande échelle. L'agent lit les diffs Git, envoie les fichiers modifiés à un LLM configurable et produit des commentaires structurés avec précision au niveau des lignes. La conception combine une ingénierie déterministe pour la sélection précise de fichiers, le regroupement intelligent et l'association fine de règles, avec un agent dédié aux décisions dynamiques et à la récupération de contexte. Le projet propose un CLI installable, des intégrations avec des agents de codage et des pipelines CI/CD, ainsi qu'un visualiseur local et une configuration flexible via fichiers et variables d'environnement. La configuration inclut des règles de revue à plusieurs niveaux, des options de télémétrie et la compatibilité avec différents endpoints LLM pour adapter l'outil aux besoins de l'équipe.

06:00

Anthropic's open-source framework for AI-powered vulnerability discovery

Ce dépôt fournit une implémentation de référence open-source et des compétences Claude Code pour automatiser la découverte, la vérification, la priorisation et la génération de correctifs de vulnérabilités dans du code, avec un focus initial sur les vulnérabilités mémoire C/C++ via ASAN. Le pipeline autonome suit la boucle recon → find → verify → dedupe → report → patch et exécute des agents isolés (gVisor, conteneurs Docker) pour construire, fuzzing, reproduire et classer les plantages avant de proposer et vérifier des correctifs. Le dépôt contient des outils interactifs (/quickstart, /threat-model, /vuln-scan, /triage, /patch, /customize) pour monter rapidement un premier scan et des instructions pour adapter le harness à d'autres langages ou classes de vulnérabilités. Des consignes de sécurité et de sandboxing sont fournies (exécution des agents en gVisor, restriction d'e/s, revue manuelle des usages d'outils) et le projet précise qu'il n'est pas maintenu ni ouvert aux contributions, en proposant une offre hébergée pour les équipes souhaitant une solution managée. Le guide recommande une montée en puissance progressive sur 1–2 semaines — menant de la modélisation des menaces et scans statiques à l'automatisation des vagues de scans, de triage et de patching — et insiste sur la nécessité de ressources humaines pour prioriser et intégrer les correctifs dans le cycle de développement.