HN Digest
Briefing personnel.

Lire vite.
Garder l'essentiel.

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

11752 articles Page 862/1176 Sans filtre

Optimizing Ruby Path Methods

En novembre, l'auteur a rejoint Intercom et s'est concentré sur la réduction du temps de configuration du CI du monolithe pour améliorer l'expérience utilisateur et diminuer les coûts. Il décrit comment Bootsnap accélère le démarrage Ruby en construisant un cache des chemins de chargement pour éviter les recherches linéaires coûteuses lors des require. Le principal goulot d'étranglement était le balayage récursif des répertoires provoquant de nombreux appels système (N+1 syscalls), problème amplifié sur les CI où les mtime ne sont pas préservés par git. Pour y remédier, il a prototypé et poussé une API Dir.scan et intégré ces optimisations à Bootsnap, réduisant le temps de scan d'environ 2x sur leur repo. Il a en outre accéléré File.join et d'autres fonctions de chemin en ajoutant des fastpaths d'encodage, une recherche inverse plus efficace, en supprimant des vérifications et allocations inutiles, obtenant des gains allant jusqu'à plusieurs fois la vitesse.

State of Kdenlive

En 2025, l'équipe Kdenlive a maintenu un rythme soutenu en privilégiant la stabilité tout en équilibrant ajout de fonctionnalités, correction de bugs, polissage de l'interface et amélioration des performances et du flux de travail. Les temps forts des versions incluent dans 25.04 l'ajout d'un plugin d'object segmentation basé sur SAM2 pour retirer des éléments d'arrière‑plan, la refonte de l'import/export OpenTimelineIO en C++ et un gain de 300 % sur la génération des formes d'onde audio. La version 25.08 a mis l'accent sur la stabilisation avec plus de 300 commits et des corrections de plantages, apportant aussi un mixeur audio repensé, une refonte des marqueurs et guides et des améliorations du titler, tandis que 25.12 a surtout amélioré l'expérience utilisateur avec un écran de bienvenue, un nouveau système d'ancrage et un moniteur de projet redessiné. À venir, 26.04 introduira le mirroring de moniteur, des aperçus animés de transitions et des ajustements automatiques de durée de transition, et la feuille de route prévoit des évolutions du framework MLT (support 10/12 bits, optimisations de décodage, OpenFX), la refonte du système de sous-titres, des outils d'Advanced Trimming et un dopesheet pour le keyframing soutenu par une subvention NGI. La communauté reste active avec 38 contributeurs de code en 2025 (dont de nombreux nouveaux), des sprints à Amsterdam et Berlin, 11,5 millions de téléchargements depuis le site et des dons totalisant 9 344,80 €, l'équipe invitant à soutenir le projet via dons, tests, traductions ou promotion locale.

Modern Common Lisp with FSet

Le document est publié sous la licence Creative Commons CC BY-NC-SA 4.0. La licence permet la distribution, la modification et l'adaptation pour des usages non commerciaux avec attribution et partage à l'identique. L'auteur affirme que le texte n'a pas été généré par un modèle de langage. Les erreurs et suggestions doivent être signalées via les instances GitLab ou GitHub de Common-Lisp.Net. Le document contient une table des matières.

Why Japan has such good railways

Le Japon est de loin le pays développé où le rail représente la part la plus importante du transport de passagers, avec 28 % des kilomètres-passagers et des centres urbains hyperdenses qui concentrent l'usage. Le réseau est assuré par une pluralité d'entreprises privées historiques et par six compagnies JR issues de la privatisation de 1988, qui sont majoritairement rentables et souvent intégrées verticalement. Les compagnies ferroviaires récupèrent les retombées économiques de leurs lignes en développant de vastes activités annexes — immobilier, commerce, loisirs et services — qui financent les opérations et attirent des résidents le long des axes. Des règles d'urbanisme libérales et des procédures de readjustement foncier ont facilité la densification autour des gares, tandis que la restriction du stationnement public et le financement routier par péages et taxes ont fait supporter à l'automobile une part importante de ses coûts. Des politiques publiques ciblées — privatisation et restructuration du JNR, plafonds tarifaires généreux mais protecteurs, subventions d'investissement conditionnelles et régulation opérationnelle limitée — ont renforcé productivité et investissement, montrant que les institutions et les choix publics expliquent davantage le succès ferroviaire que la culture.

Zero-Copy GPU Inference from WebAssembly on Apple Silicon

Sur Apple Silicon, la mémoire linéaire d'un module WebAssembly peut être partagée directement avec le GPU sans copies ni buffers intermédiaires, le CPU et le GPU lisent et écrivent les mêmes octets physiques. Alors que sur du matériel classique la communication VM→GPU exige des copies à travers un bus PCIe, l'architecture mémoire unifiée d'Apple efface cette frontière et permet de faire remonter un pointeur mmap jusque Metal et Wasmtime sans copies défensives. L'auteur a validé une chaîne en trois maillons : mmap fournit une mémoire alignée, Metal accepte les buffers via MTLDevice.makeBuffer(bytesNoCopy:length:) sans duplication, et Wasmtime permet d'utiliser son propre allocateur pour exposer la région mmap comme mémoire linéaire du module. Les mesures montrent l'identité des pointeurs, une surcharge mémoire quasi nulle (delta RSS ~0,03 Mo contre ~16,78 Mo pour la voie par copie), une latence de GEMM équivalente et des résultats corrects sur un test 128×128. Sur cette base, l'auteur construit Driftwood, un runtime pour acteurs Wasm étatful avec inférence GPU et sérialisation rapide du cache KV (safetensors) pour restaurations et mobilité d'acteurs, tout en notant que le travail reste précoce et à valider à plus grande échelle.

The electromechanical angle computer inside the B-52 bomber's star tracker

Avant le GPS, la navigation céleste — fondée sur la position du soleil, des étoiles et des planètes — était une méthode précise et insensible au brouillage mais longue et difficile à réaliser manuellement. Pour automatiser la navigation sur le B‑52, on a développé l'Astro Compass incluant l'Angle Computer, un ordinateur analogique électromécanique qui modélisait la sphère céleste et résolvait le triangle de navigation. Le système Astro Compass comprenait un Astro Tracker monté sous un dôme, un télescope avec photomultiplicateur et une plateforme stabilisée par gyroscopes et moteurs pour suivre précisément les étoiles. L'Angle Computer recevait en entrée déclinaison, angle horaire local et latitude et convertissait mécaniquement ces données en azimut et altitude via un mécanisme de bras, d'arcs et de synchros, complété par moteurs et boucles de rétroaction électriques. Outre la fourniture d'un cap très précis, l'ensemble permettait d'établir des lignes de position célestes pour fixer la position, mais la solution mécanique et électro‑mécanique fut rapidement supplantée par l'informatique numérique.

What Are Skiplists Good For?

Un skiplist est une structure de données aléatoire qui remplace un arbre binaire de recherche en ajoutant des voies rapides hiérarchiques pour obtenir des recherches en O(log n). Chez Antithesis, des tests fuzz ont produit un arbre de timelines très volumineux dont les parcours d'ancêtres nécessitaient des lectures point à point, ce qui était extrêmement coûteux dans BigQuery qui effectue des scans massifs plutôt que des lectures ponctuelles. La solution inventée, appelée skiptree, empile des arbres de niveaux successifs et stocke dans une table par niveau une colonne next_level_ancestor et une colonne ancestors_between contenant les nœuds intermédiaires, de sorte que chaque chemin racine-feuille correspond à un skiplist partagé entre niveaux. Avec cette organisation, il est possible de récupérer les ancêtres d'un nœud par une requête SQL non récursive à nombre fixe de JOINs (environ une trentaine ou quarantaine), ce qui réduit le coût de lecture grâce à la distribution géométrique des tailles de tables mais génère des requêtes SQL volumineuses qu'ils ont produites à l'aide d'un compilateur JavaScript. L'approche, proche des skip graphs en distribution, a évité la complexité de synchroniser deux bases et a finalement été remplacée par une base analytique interne, illustrant aussi l'utilité pratique des implémentations naïves de skiplists.

Updating Gun Rocket through 10 years of Unity Engine

Il y a environ dix ans, le développeur a créé Gun Rocket après plusieurs prototypes, proposant cent niveaux, plusieurs vaisseaux et un mode multijoueur LAN. Récemment le jeu refuse de se lancer sous Windows sans générer de log utile, vraisemblablement à cause d'incompatibilités de pilotes ou d'API. L'ouverture du projet dans Unity a révélé qu'il avait été développé en 5.5.0f3 puis migré plusieurs fois, ce qui pose des problèmes de compatibilité entre versions. Les montées de version vers Unity 5.6, 2017.4 et 2019.3 ont introduit le Package Manager, la suppression de JavaScript et la dépréciation de UNet, nécessitant la réécriture de scripts et la suppression du réseau LAN. L'objectif est maintenant de porter et moderniser le projet pour 2026 en parcourant l'archive des versions Unity et en corrigeant les incompatibilités pour relancer le jeu.