HN Digest
Briefing personnel.

Edition quotidienne

Lire vite. Garder l'essentiel.

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

7182 articles Page 427/719 Sans filtre

06:05

What we learned building a Rust runtime for TypeScript

Encore a choisi d’écrire un runtime en Rust plutôt que d’étendre le runtime Go pour éviter le surcoût d’IPC, permettre le support multi-langages et exploiter le multithreading de tokio au-delà des limites single-thread de Node.js. Le runtime Rust pilote l’intégralité des préoccupations d’infrastructure — cycle HTTP, routage, validation, pool de bases, pub/sub multi-fournisseurs, tracing, métriques, stockage et cache — tandis que le TypeScript reste limité à la logique métier. Pour interopérer avec JavaScript ils ont adapté napi-rs afin d’appeler des fonctions JS et récupérer les valeurs/promesses, et ajouté des mécanismes comme CancellationGuard pour garantir la fermeture correcte des spans de trace. Ils ont intégré Pingora en processus pour la passerelle API et l’authentification TS, utilisé des trait objects pour abstraire NSQ, GCP et AWS sans polluer les signatures de type, et conçu un protocole binaire de traces optimisé. Le code public rassemble environ 67 000 lignes de Rust, affiche des gains de performance marqués par rapport à d’autres frameworks et retient des enseignements sur le typage des erreurs, l’export OpenTelemetry et l’importance des tests par snapshot.

06:05

Tracking down a 25% Regression on LLVM RISC-V

Une modification récente de LLVM a provoqué une régression de performances sur des cibles RISC-V en faisant générer une division en double précision (fdiv.d) au lieu de simple précision (fdiv.s), augmentant le coût d'environ 24 % sur un benchmark. La cause vient d'un patch d'InstCombine qui a utilisé ComputeNumSignBits dans isKnownExactCastIntToFP et a ainsi remplacé la séquence sitofp + fpext par un itofp direct en double, supprimant le fpext dont visitFPTrunc dépendait pour réduire la précision en float. L'auteur a confirmé la régression en comparant des builds anciens et récents, en inspectant l'IR produit par Clang/opt et en utilisant llvm-mca pour analyser la latence des instructions et localiser où la transformation de narrowing avait disparu. La correction introduit canBeCastedExactlyIntToFP et modifie getMinimumFPType pour utiliser cette analyse (avec information de plage) afin d'autoriser le cast exact de l'entier vers float quand c'est sûr, ce qui permet de restaurer la réduction en simple précision. Le correctif a été fusionné après revue et les mesures montrent le rétablissement des divisions en simple précision avec une amélioration d'environ 25 % sur le benchmark concerné.

06:05

Tool to explore regularly sampled time series

Cet outil permet d'explorer des séries temporelles régulièrement échantillonnées avec une fréquence d'une heure ou plus et est limité par défaut à 2 000 échantillons. Le workflow en trois étapes comprend une évaluation initiale (distribution, KDE, boxplot, ACF/PACF), une décomposition par Singular Spectral Analysis pour extraire composantes et détecter changements, puis un journal d'observations avec diagnostics et résumé automatique. La décomposition SSA utilise une fenêtre heuristique basée sur la fréquence d'échantillonnage (modifiable dans l'interface) et s'appuie sur la distribution des valeurs propres et des vecteurs propres pour regrouper et reconstruire tendances, saisonnalités et bruit. Une interface notebook et des exemples de chargeurs de données sont fournis, et le package nécessite Python 3.13 ou plus ; il s'installe depuis PyPI (pip, pipx) ou via conda pour le développement. Les fichiers importés doivent être CSV ou Excel avec une colonne d'horodatage puis une colonne numérique, sans valeurs manquantes et limités à 2 000 lignes par défaut, tandis que la documentation, la construction des docs Sphinx et les contributions se gèrent via le dépôt GitHub et Read the Docs.

06:04

I just want simple S3

Les besoins exprimés sont simples : un service S3 local sans mise à l'échelle ni réplication, fiable et rapide. Minio a été largement abandonné après la suppression de son interface et l'archivage du dépôt, Garage est jeune et perçu comme trop complexe malgré sa réécriture en Rust, SeaweedFS présente un concept intéressant mais des performances LAN anormalement lentes et Ceph reste une solution massive et complexe adaptée aux cas de très grande échelle. Le Versity S3 Gateway, peu connu hors milieu académique et gouvernemental, supporte un backend POSIX (et ScoutFS), utilise les xattrs pour les métadonnées, propose une interface web, des buckets publics/anonymes et des fonctions de proxy d'autres backends S3. Après déploiement et synchronisation des données via rclone, Versity a fourni des performances LAN à la vitesse de ligne attendue, ce qui a rendu la solution acceptable en attendant l'émergence d'un stockage objet natif ZFS. Parmi les autres candidats figurent RustFS (nouveau, en Rust, revendiquant une compatibilité S3 complète), la capacité expérimentale de rclone à agir comme serveur S3, Filestash comme interface multi‑protocoles, ainsi que Zenko CloudServer et Supabase Storage, ces deux derniers étant basés sur NodeJS avec des approches différentes pour les métadonnées et l'authentification.

06:04

GAIA – Open-source framework for building AI agents that run on local hardware

GAIA est un cadre open source pour créer des agents d'intelligence artificielle en Python et en C++ qui s'exécutent entièrement sur le matériel local. Ces agents peuvent raisonner, appeler des outils, rechercher dans des documents et accomplir des actions sans dépendre du cloud. Aucune donnée ne quitte l'appareil, assurant un traitement local et une confidentialité renforcée. Le texte fournit des exemples d'utilisation en Python et en C++ montrant comment interroger un agent pour résumer des notes de réunion. La documentation mentionne des sections pour démarrer, pour les capacités et pour les ressources disponibles.

06:04

Android now stops you sharing your location in photos

L'auteur et sa femme gèrent OpenBenches, un site qui place des photos de bancs commémoratifs sur une carte en utilisant la géolocalisation EXIF intégrée aux photos. Des changements récents dans Android ont empêché les navigateurs web d'accéder aux métadonnées de géolocalisation lors de l'envoi de photos via les champs input file, après que Google a remplacé le sélecteur de photos par le gestionnaire de fichiers et imposé d'autres limitations. Les alternatives comme les Progressive Web Apps, le partage Bluetooth/QuickShare ou l'envoi par courriel sont également affectées par la suppression des données de localisation, laissant souvent comme seule solution le transfert par câble USB vers un ordinateur. Google invoque des raisons de vie privée pour éviter la diffusion involontaire de coordonnées, tandis que la plupart des services de réseaux sociaux suppriment ou masquent par défaut les géotags lors du partage. L'auteur envisage de développer une application native Android pour obtenir la permission d'accéder aux géotags et appelle la communauté à proposer des solutions ou à soutenir une modification de la spécification HTML.

06:04

Math Is Still Catching Up to the Mysterious Genius of Srinivasa Ramanujan (2024)

En janvier 2011, le mathématicien Hussein Mourtada a confirmé qu’il pouvait démontrer que certaines singularités de courbes et de surfaces présentent une structure profonde liée à des identités mathématiques anciennes. Srinivasa Ramanujan, autodidacte indien du début du XXe siècle, a produit des milliers de résultats souvent sans preuve, attirant l’attention de G.H. Hardy grâce à des formules surprenantes comme des fractions continues et des identités de partitions. Parmi ses découvertes, les identités de Rogers-Ramanujan se sont avérées reliées à des domaines variés tels que la mécanique statistique, la théorie des nœuds, la théorie des représentations et la géométrie algébrique. Mourtada et ses collaborateurs exploitent les espaces d’arcs et l’étude des singularités pour expliciter ces liens et découvrir de nouvelles identités apparentées à celles de Ramanujan. Le parcours de Ramanujan et les travaux contemporains montrent que des idées anciennes peuvent réapparaître et unir des branches très différentes des mathématiques.

06:04

Building a CLI for all of Cloudflare

Cloudflare expose une vaste surface API de près de 3 000 opérations et veut rendre tous ses produits facilement exploitables par des agents et développeurs. L'équipe reconstruit la CLI Wrangler en une nouvelle CLI "cf" disponible en aperçu technique pour fournir des commandes couvrant l'ensemble des produits et permettre la configuration en infrastructure-as-code. Ils ont créé un schéma en TypeScript et une chaîne de génération pour produire automatiquement les commandes CLI, les bindings Workers, les SDK, la documentation et les schémas OpenAPI afin d'assurer cohérence et évolutivité. Le projet impose des règles et garde-fous (par exemple toujours get, --json, --force) et met l'accent sur la gestion explicite des contextes locaux vs distants pour éviter les erreurs des agents. La fonctionnalité Local Explorer, en bêta, permet d'inspecter et modifier localement les ressources simulées via une API miroir accessible depuis Wrangler ou le plugin Vite, et Cloudflare sollicite des retours des développeurs.