HN Digest
Briefing personnel.

Edition quotidienne

Lire vite. Garder l'essentiel.

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

2893 articles Page 268/290 Sans filtre

07:07

Discord: A case study in performance optimization

L’article explique comment Discord s’appuie sur le modèle des acteurs pour éviter les verrous et maintenir des performances élevées à l’échelle mondiale. Chaque guilde dispose d’un processus Elixir agissant comme routeur et les mises à jour sont fan-outées vers les sessions des utilisateurs via WebSocket. Pour augmenter le débit, l’équipe a introduit le Data Service Library en Rust pour coalescer les requêtes et réduire le nombre d’accès à la base de données. Elle a aussi remplacé Cassandra par ScyllaDB pour mieux gérer les partitions et a développé le disque Super-Disk pour obtenir à la fois vitesse et fiabilité sur GCP. Enfin, l’article insiste sur l’importance d’une culture d’excellence technique et sur l’apprentissage par l’expérimentation, plutôt que sur de simples refontes, pour livrer une plateforme rapide et fiable.

07:07

The Perfect Device

L'auteur précise qu'il n'a pas l'intention de créer une maison connectée, mais explore ce que le Cloud peut offrir et observe que certains appareils peuvent fonctionner entièrement sur un réseau local. Il présente le Xiaomi Smart Clock comme un dispositif presque parfait pour piloter une installation auto-hébergée, un téléphone Android sans batterie dont le format est pratique mais le boîtier est fragile. Il distingue deux versions, chinoise et globale: la chinoise offre plus de fonctionnalités et une meilleure intégration avec d'autres appareils Xiaomi, alors que la globale est fortement liée à Google Home et limite les interactions. L'appareil est décrit comme assez limité par défaut à cause des choix des actionnaires, mais des hackers l'ont libéré et l'ont rendu utile via des firmwares alternatifs. Le texte détaille les prérequis et les étapes pour flasher le clock avec MTKClient, les difficultés liées à des dépôts supprimés et des forks, ainsi que les usages possibles comme Navidrome, Tailscale et des outils pour personnaliser l'interface.

07:06

How many registers does an x86-64 CPU have? (2020)

L’article analyse la complexité du jeu de registres x86-64 et les enjeux de les compter. Il propose des règles de comptage incluant les sous-registres, les registres présents en long mode et les MSR accessibles, tout en évitant les doubles comptes et les détails microarchitecturaux. Les registres sont regroupés en familles: GPR, registres spéciaux, registres de segments, registres SIMD/FP, bornes, débogage, contrôles, tables système et MSR, avec des totaux et des exceptions pour chacun. Le compte final atteint environ 557 registres sur un cœur x86-64 moyen, en excluant certaines classes comme les registres mémoire-mappés et certains MSR spécifiques non comptés. Le billet conclut en invitant à reprendre les données et à partager des ressources pour compléter la cartographie des registres.

07:06

Unicorn Jelly

Cette œuvre est une bande dessinée philosophique de science-fiction publiée en ligne cinq fois par semaine à minuit, entre 2000 et 2003. Elle raconte une histoire métaphorique et volontaire, avec un début et une fin définis. Un récit parallèle au genre film noir se déroule dans le même univers et suit une Kay-Wai d’un univers alternatif ainsi que des visages familiers qui poursuivent un objectif mystérieux à travers de multiples versions de l’univers. Le site propose une archive dédiée aux univers alternatifs, une encyclopédie et diverses ressources pour comprendre l’univers et ses personnages. Le texte précise les droits d’auteur, invite au soutien du projet et propose des livres imprimés ainsi que des téléchargements gratuits, tout en rappelant que le contenu est protégé par le droit d’auteur.

07:06

Vim 9.2

Vim 9.2 est sorti, apportant des améliorations importantes au langage Vim9, au mode diff et aux capacités de complétion. Le support de Wayland est pleinement intégré et Vim suit la spécification XDG pour la configuration utilisateur. L’interface utilisateur reçoit un panneau d’onglets vertical et les améliorations du diff, avec l’algorithme linematch, diffanchors et un surlignage en ligne. Un nouvel assistant intégré (:Tutor) offre une expérience d’apprentissage modernisée en parallèle du vimtutor. Vim9 Script évolue avec le support natif des Enums, des fonctions génériques et du Tuple, les fonctions intégrées deviennent des méthodes d’objet et les classes prennent en charge des méthodes _new protégées et le système :defcompile.

07:06

Launching Interop 2026

Le projet Interop est une initiative multi-navigateurs visant à améliorer la compatibilité web, réunissant Apple, Google, Igalia, Microsoft et Mozilla, et il retient des propositions bien définies dans des standards web suffisamment stables, sélectionnant un sous-ensemble équilibré selon les priorités des développeurs via des enquêtes et des rapports de bugs. On s'appuie sur des propositions bien représentées dans les Web Platform Tests et l'avancement se mesure grâce au taux de réussite des tests et au tableau de bord Interop. En 2025, l’Interop a vu son score global progresser et des fonctionnalités majeures devenir cross-browser, comme Same-Document View Transitions, CSS Anchor Positioning, Navigation API, CSS @scope et URLPattern, tout en renforçant la fiabilité de WebRTC, CSS Flexbox et CSS Grid. Pour 2026, plus de 150 propositions ont été soumises, 20 domaines focaux et 4 domaines d'investigation ont été retenus, avec des nouveautés telles que Cross-document View Transitions, Scroll-driven animations, WebTransport, CSS container style queries, CSS attr() étendu, CSS custom highlights et Scoped Custom Element Registries, et des efforts continus pour la fiabilité des cas limites et les tests d'accessibilité et de tests mobiles, entre autres. Le suivi des progrès se fait sur le dashboard et via les canaux partenaires, et Interop rappelle que des propositions peuvent ne pas figurer dans 2026 tout en continuant à être explorées, car Interop n’est pas la limite des travaux et d’autres tests et axes restent en cours d’évaluation.

07:05

MDST Engine: run GGUF models in the browser with WebGPU/WASM

MDST Engine permet d’exécuter des modèles GGUF dans le navigateur via WASM et WebGPU pour une inférence locale et complète. Il permet de charger, affiner, exécuter et publier ses propres modèles GGUF dans Chrome, Safari ou Edge. Cet outil propose un IDE libre, sécurisé et collaboratif avec inférence intégrée en cloud et locale, qui synchronise et stocke les projets tout en garantissant le chiffrement de bout en bout et la conformité RGPD. On peut lancer des LLMs dans le navigateur en un clic, synchroniser des projets en temps réel via GitHub ou le système de fichiers local, et mesurer les performances localement avec un classement WebGPU. L’objectif est d’ouvrir un marché plus large pour GGUF en rendant l’inférence locale rapide et accessible à tous, tout en invitant chacun à contribuer et à tester les modèles et le leaderboard.

07:05

Colored Petri Nets, LLMs, and distributed applications

Les réseaux de Petri colorés (CPN) étendent les réseaux de Petri en permettant que les jetons portent des données, ce qui facilite la modélisation des systèmes avec état et peut s'accorder avec le typestate de Rust. Ils offrent des mécanismes de vérification formelle au moment du build grâce aux gardes et à la consommation/production multi-jetons, améliorant la sûreté des programmes concurrents. L'exemple du scraping web montre comment une transition peut joindre des jetons proxies disponibles et cibles prioritaires, avec des états de cooldown et des mécanismes de réessai avec backoff pour limiter les requêtes. Deux approches sont envisagées: une architecture basée sur PostgreSQL avec transactions pour assurer le mouvement des jetons et l'état partagé, ou une implémentation Rust en mémoire avec persistance éventuelle via un journal d'événements. La problématique du partitionnement et de l'évolutivité est discutée, avec des options comme l'archivage des états ou le partitionnement horizontal via des réseaux CPN composés de services distribués.

07:05

A header-only C vector database library

Cette bibliothèque C est légère et fournie sous forme d'en-tête unique pour le stockage et la recherche d'embeddings vectoriels de haute dimension, avec une prise en charge optionnelle du multithreading. Elle propose une interface pour créer et détruire des bases de données, ajouter ou supprimer des vecteurs, et effectuer des recherches k plus proches voisins avec différentes métriques (cosinus, euclidienne et produit scalaire négatif). La persistance permet de sauvegarder et charger les bases de données sur disque, et des allocateurs mémoire personnalisés peuvent être fournis avant l’inclusion du header. Le code peut être compilé en version mono-thread ou multi-thread en activant la macro VDB_MULTITHREADED, et il ne dépend que éventuellement de pthreads pour le multithreading. Le format binaire comprend un en-tête avec les dimensions et le nombre d’éléments, les vecteurs stockés sous forme de floats et leurs identifiants, les métadonnées n’étant pas sauvegardées, et la bibliothèque est distribuée sous licence Apache v2.0.