HN Digest
Briefing personnel.

Edition quotidienne

Lire vite. Garder l'essentiel.

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

5917 articles Page 502/592 Sans filtre

07:02

Why does C have the best file API

Le texte présente le mappage mémoire des fichiers en C et ce que cela implique pour l’accès aux données. Le mappage mémoire permet d'accéder à un fichier comme à de la mémoire, chargeant les données au besoin et sans nécessiter tout le fichier en RAM. Il est aussi mentionné que de nombreux langages offrent le mmap mais se limitent à des tableaux d’octets et requièrent des étapes de parsing et de sérialisation. Le texte critique l’usage des bases de données et des formats de sérialisation comme le pickle de Python, soulignant les risques de sécurité et les coûts d’intégration. En conclusion, l’auteur soutient qu’il est possible et utile d’exploiter directement l’état binaire sur disque sur des systèmes à mémoire limitée, et que C reste l’un des rares langages à permettre cela.

07:02

An interactive intro to Elliptic Curve Cryptography

La cryptographie à clé publique permet à deux personnes d’échanger des messages privés en utilisant une paire de clés liées mais distinctes: une clé privée secrète et une clé publique offerte à tous. L’idée est que le calcul impliqué avec la clé publique est facile, mais retrouver la clé privée à partir de la clé publique est pratiquement impossible. Les systèmes RSA et Diffie-Hellman reposent sur des problèmes mathématiques difficiles et exigent des clés très longues; RSA nécessite 2048 bits comme minimum et 3072 bits pour viser 128 bits de sécurité. Une alternative efficace consiste à utiliser des courbes elliptiques, qui offrent le même niveau de sécurité avec des clés bien plus petites grâce à la structure d’un groupe formé par les points sur une courbe sur un corps fini. Les usages pratiques incluent ECDH pour l’échange de clés, ECDSA pour les signatures et ECIES pour le chiffrement; TLS, Signal, SSH et les crypto-monnaies en dépendent, tout en planifiant la cryptographie post-quantique face au risque de Shor.

07:02

Frankensqlite a Rust reimplementation of SQLite with concurrent writers

FrankenSQLite est une réécriture en Rust pure et sûre de SQLite, organisée en 26 crates modulaires. Plusieurs processus d’écriture peuvent s’exécuter en parallèle, jusqu’à huit, chacun agissant sur des pages distinctes pour éviter SQLITE_BUSY. Le stockage intègre une correction d’erreurs auto-réparatrice par codes fountain par page, et un chiffrement par page avec séparation des clés, garantissant la récupération automatique en cas de bit-rot. Il offre un SQL complet avec jointures, sous-requêtes, CTE, fonctions fenêtre, déclencheurs et vues, tout en conservant une compatibilité SQLite et un format natif append-only. Parmi les fonctionnalités avancées figurent le voyage dans le temps via FOR SYSTEM_TIME AS OF, MVCC et SSI, un écosystème d’extensions (FTS5, JSON1, R-tree) et des capacités d’observabilité intégrées, tout en garantissant zéro unsafe.

07:01

Show HN: I built a zero-browser, pure-JS typesetting engine for bit-perfect PDFs

Ce moteur de composition déterministe écrit en JavaScript pur, sans dépendances, peut produire des PDFs bit-perfect sur n'importe quel environnement grâce à un flux d'instructions JSON versionné. Il opère en deux étapes: une phase de mise en page qui génère un flux Page[] et une phase de rendu qui peint ces pages sur un contexte PDF ou autre. L'output est identique partout car il s'appuie sur de vraies métriques de police et un calcul de placement des glyphes, sans CSS ni approximations. Contrairement aux solutions basées sur des navigateurs sans tête, il offre une empreinte légère et des démarrages rapides, avec une cohérence d'affichage entre runtimes et une isolation des dépendances (≈2 MiB empaqueté, ~8,7 MiB déballé contre Chromium ~170 Mo). Le projet est un monorépo comprenant des packages tels que @vmprint/engine, @vmprint/context-pdf, @vmprint/local-fonts et @vmprint/cli, et encourage les contributions tout en couvrant la pagination, le multilingue et les tests de régression.

07:01

Right-sizes LLM models to your system's RAM, CPU, and GPU

Cet outil ajuste dynamiquement les modèles LLM à la mémoire RAM, au CPU et au GPU de votre système. Il détecte le matériel, évalue chaque modèle selon la qualité, la vitesse, l'adéquation et le contexte, et indique ceux qui fonctionneront bien sur votre machine. L'interface interactive en mode TUI est fournie par défaut, avec un mode CLI classique, et il prend en charge plusieurs fournisseurs locaux comme Ollama, llama.cpp et MLX, ainsi que le multi-GPU et la quantification dynamique. Une fonction Plan dans l'interface permet d'estimer les ressources nécessaires pour une configuration modèle donnée, en termes de VRAM, RAM et cœurs CPU, et des chemins d'exécution possibles. L'installation peut se faire via un script ou Cargo, et le catalogue de modèles intégré provient de HuggingFace, avec des outils de mise à jour et un mapping entre noms HF et les tags des fournisseurs.

07:01

Show HN: Timber – Ollama for classical ML models, 336x faster than Python

Le projet convertit les modèles d'arbre entraînés (XGBoost, LightGBM, scikit-learn, CatBoost, ONNX) en code C natif optimisé et les expose via une API HTTP locale. Il n’y a pas de runtime Python dans le chemin d’inférence et la latence native est mesurée en microsecondes, avec une procédure simple: une commande pour charger et une pour servir. Il cible les équipes nécessitant une inférence rapide, portable et déterministe, telles que la fraude et le risque, les déployements edge/IoT, les secteurs réglementés et les équipes d'infrastructure. Il prend en charge plusieurs formats et frameworks (XGBoost JSON, LightGBM texte, scikit-learn pickle, ONNX TreeEnsemble, CatBoost JSON) via timber load et propose une workflow de type Ollama avec des endpoints tels que /api/predict. Le projet fournit des benchmarks reproductibles, une feuille de route et des exemples d’utilisation, avec des comparaisons de latence par rapport à Python XGBoost.