HN Digest
Briefing personnel.

Lire vite.
Garder l'essentiel.

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

12074 articles Page 462/1208 Sans filtre

Running Doom on Our Custom CPU and Going Viral

L'équipe a conçu un processeur personnalisé au niveau des portes logiques, l'a connecté à des périphériques, a adapté le code source du jeu et l'a déployé sur une FPGA pour l'exécuter en temps réel. Pour gérer la faible capacité et la latence variable de la DDR3 par rapport à la BRAM, ils ont ajouté des caches instructionnel et données, un arbitre mémoire et des mécanismes de writeback et d'invalidation pour masquer les délais. L'interface matérielle a exigé l'usage du générateur MIG, des traversées de domaines d'horloge, des FIFO et des wrappers de protocole, ainsi que l'implémentation de périphériques MMIO pour l'affichage HDMI, le timer, la sortie debug et la saisie clavier. Le portage a révélé de nombreux bugs (hazards, writebacks manquants, corruptions) et des particularités matérielles comme la mémoire non initialisée qui ont été corrigées; après des optimisations matérielles et logicielles (augmentation d'horloge, amélioration du fetch, instructions de multiplication, écriture directe dans la BRAM d'affichage et réglages du cache) et la correction d'un problème lié à l'optimisation du compilateur, le programme est passé d'environ 0,7 FPS à 15–20 FPS. Ils prévoient maintenant des améliorations plus profondes comme l'exécution hors ordre, de meilleurs schémas d'accès mémoire et éventuellement un GPU ou une FPGA plus grande pour atteindre 30 FPS et porter des jeux plus exigeants.

Incremental – A library for incremental computations

Cette bibliothèque permet de construire des calculs complexes capables de se mettre à jour efficacement lorsque leurs entrées changent. Elle s'inspire des travaux d'Umut Acar sur les calculs auto-ajustables. Elle s'applique à des usages comme des calculs volumineux de type tableur, la construction de vues pour des interfaces graphiques et le calcul de données dérivées synchronisées avec les sources. Des exemples concrets incluent le filtrage de données et l'inversion de correspondances. La documentation détaillée se trouve dans le fichier incremental/src/incremental_intf.ml et une introduction informelle est proposée dans un billet de blog et une vidéo.

Show HN: A canvas-based note taking and organizer app

L'application propose un grand espace de travail sans grille ni dossiers où l'on peut déposer n'importe quelle note, document ou étiquette là où l'on le souhaite. On peut empiler les éléments liés pour les regrouper et les écarter ou les replier selon le besoin. Il est possible de dessiner des zones, y déplacer des notes et nommer ces espaces pour structurer vite fait sans quitter la toile. Les sélections de notes, piles ou zones peuvent être exportées proprement en PDF pour partager ou archiver le contenu. Toutes les notes sont enregistrées automatiquement dès que l'on les lâche, supprimant le besoin d'un bouton d'enregistrement.

How proprietary formats have become Microsoft’s main tool for lock-in

Les formats de documents déterminent comment le contenu est stocké et échangé, et pendant des décennies les formats Microsoft Office (DOC/DOCX, XLSX, PPTX) sont devenus la lingua franca. Ces formats, bien que standardisés sous OOXML, intègrent des éléments propriétaires, des comportements non documentés et une variante « Transitional » que seul Microsoft implémente pleinement, créant ainsi une dépendance pratique (lock-in). La dépendance aux formats propriétaires engendre des conséquences allant du simple décalage de mise en page aux erreurs critiques pour des cabinets, des hôpitaux ou des administrations, et menace l’accès futur aux archives publiques. La souveraineté documentaire requiert des choix explicites : adopter des standards ouverts comme ODF, utiliser des polices libres, définir des politiques institutionnelles et employer des formats d’archivage pérennes tels que PDF/A. Un document n’est pas neutre mais véhicule des dépendances techniques et politiques, de sorte que le choix du format, de la police et du logiciel conditionne l’indépendance et l’accès aux informations sur le long terme.

Infinities, impossibilities, and the man in the white linen suit

Kurt Gödel est mort en 1978 après s'être laissé mourir de faim par crainte d'empoisonnement, un sort tragique pour le logicien qui a révélé des limites fondamentales des systèmes formels. En 1931, Gödel a démontré que tout système formel assez puissant pour l'arithmétique contient des énoncés vrais mais indémontrables, et son second théorème établit qu'un système ne peut prouver sa propre cohérence. Alan Turing a formalisé en 1936 la notion de procédure mécanique et montré, via le problème de l'arrêt, qu'il est impossible de construire un vérificateur universel des comportements des programmes, fondement théorique de l'ordinateur moderne. Des travaux récents appliquent ces limites à l'IA: l'apprenabilité de certains problèmes peut être indécidable, il existe des réseaux de neurones qui fonctionnent mais ne peuvent être trouvés par aucun entraînement, et on ne peut en général prouver qu'un agent général ne nuira jamais. En conséquence, certaines garanties formelles pour l'auto-amélioration et la sécurité des systèmes d'IA sont mathématiquement inaccessibles, transformant un problème logique ancien en un enjeu concret pour l'industrie et la régulation.

From Muon to Gradient Clipping: Some Thoughts on QK Stability

L'optimiseur Muon propose de limiter les mises à jour en espace de fonction en contraignant la norme spectrale de ΔW et en utilisant la fonction msign pour répartir uniformément l'énergie de la mise à jour, contrastant avec des optimisateurs classiques comme Adam qui opèrent en espace de paramètres. Cette idée échoue lorsqu'on l'applique directement aux matrices Query et Key des Transformers parce que leur produit bilinéaire QK^T couple les mises à jour, et la mise à jour pleine‑rang de Muon a tendance à augmenter les valeurs singulières de W_Q et W_K, provoquant une explosion des logits et parfois l'effondrement de l'entraînement. Une tentative principielle impose une contrainte sur la variation de la matrice de scores ΔS et conduit à un problème d'optimisation résolu formellement par des pseudoinverses et msign, mais cette solution requiert des SVD coûteuses (ou des itérations numériques instables en faible précision) rendant l'approche impraticable sans approximations, caches ou warm‑starts qui apportent leurs propres limites. Reformuler le couple W_Q,W_K comme une unique matrice bilinéaire B = W_Q W_K^T permettrait d'appliquer Muon proprement, mais B a une dimension d×d et entraîne une explosion de paramètres et de calcul, d'où l'interprétation utile de l'attention multi‑tête comme une approximation bas rang et le lien naturel vers des méthodes comme LoRA (donnant l'idée de Muon‑LoRA). En pratique, l'auteur préconise des compromis empiriques plus simples et plausibles, par exemple le clipping ou la normalisation des gradients d'attention et des méthodes de correction de paramètres telles que MuonClip (redimensionnement dynamique des poids selon le maximum de logit), qui sont plus efficaces mais introduisent des hyperparamètres et nécessitent des validations expérimentales approfondies.

Building an Arch Linux Aarch64 Port for Holo Core

Collabora et Valve ont réalisé Holo Core, un port pur aarch64 d'Arch Linux pour le Steam Frame, et publié des binaires, les sources et une image base-devel pour expérimentation. Les éléments publiés proviennent d'un sous-ensemble d'un instantané du dépôt "state" d'Arch adapté pour aarch64 et visent à fournir les paquets nécessaires au développement et à la création d'images plutôt qu'à reconstruire l'intégralité d'Arch. Parmi les difficultés identifiées figurent le calcul de l'ordre de construction, la gestion des dépendances complexes dues au modèle rolling-release, les transitions de SONAME, la disponibilité des sources en amont et des incompatibilités spécifiques à aarch64. L'équipe a développé de manière itérative des outils et une CI GitLab capables de "rejouer" l'historique de construction depuis un bootstrap jusqu'à un snapshot pour produire un arbre de paquets reproductible, même si ces outils ne sont pas encore publiés. Le guide de prévisualisation indique comment exécuter un conteneur aarch64 sur hôtes x86_64 avec qemu-user-static, binfmt et distrobox pour construire des paquets, et le projet vise à poursuivre le travail et à collaborer avec Arch pour maintenir le port.