HN Digest
Briefing personnel.

Lire vite.
Garder l'essentiel.

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

11567 articles Page 138/1157 Sans filtre

The Return of Sail Power: Cargo Ships Are Turning Back to the Wind

La propulsion éolienne réapparaît dans le transport maritime commercial avec des technologies modernes comme les rotor sails, les ailes rigides et les systèmes à succion installés sur des vraquiers, pétroliers et porte-conteneurs. Des projets significatifs en 2026 incluent l'installation prévue d'un rotor sail de 35 mètres par Maersk sur un porte-conteneurs et l'équipement de très gros navires comme le Sohar Max et des VLCCs pour économiser du carburant. Ces dispositifs ne remplacent pas les moteurs mais travaillent en complément pour réduire la consommation de carburant et les émissions, avec des gains dépendant du navire, de la route et des conditions météo. L'industrialisation progresse grâce à l'automatisation, à l'intégration aux systèmes de gestion d'énergie et de navigation et à l'expérience opérationnelle accumulée par armateurs, chantiers et sociétés de classification. Des limites subsistent — variabilité du vent, encombrement sur le pont, contraintes portuaires et besoin de règles de sécurité — mais l'éolien est de plus en plus considéré comme un levier économique de décarbonation.

The engineering behind the US Strategic Petroleum Reserve

Les objectifs du système sont de stocker des centaines de millions de barils sur le long terme, de protéger ces réserves contre les attaques et les incendies, de pouvoir libérer rapidement du pétrole en cas de rupture d'approvisionnement et de maintenir des coûts d'exploitation faibles sur des décennies. Les réservoirs commerciaux à toit flottant seraient peu pratiques à l'échelle nécessaire car il en faudrait des milliers couvrant des dizaines de milliers d'hectares et ils resteraient très vulnérables aux incendies et aux attaques. Les réservoirs souterrains en acier et béton, comme Red Hill, offrent une meilleure protection mais impliquent des coûts de construction énormes, des enjeux importants de contamination des eaux et des difficultés d'évolutivité. La solution retenue par les États-Unis consiste à créer des cavernes par dissolution dans des dômes de sel, dont la faible perméabilité et la déformation du sel scellent naturellement le pétrole et permettent de le refouler en injectant de l'eau par le bas. Cette approche est beaucoup moins coûteuse par baril et bien positionnée près des infrastructures du golfe, mais elle nécessite des apports en eau, l'évacuation du saumâtre, limite la cyclabilité des cavernes et exige une surveillance et un entretien constants des puits et des équipements.

OpenSpec – A lightweight and configurable AI spec framework

OpenSpec est un cadre léger et configurable pour créer et gérer des spécifications logicielles. Il permet de formaliser ce que l'on souhaite construire et de maintenir l'alignement entre l'équipe et les agents de codage au fur et à mesure de l'évolution du travail. La plateforme aide à affiner les exigences, à valider qu'elles décrivent le bon comportement et à vérifier que l'implémentation correspond aux spécifications. Le flux de travail propose des commandes structurées (/opsx:explore, /opsx:propose, /opsx:apply, /opsx:verify, /opsx:archive) pour cartographier le problème, rédiger des propositions, implémenter, vérifier et archiver les changements. Le projet est disponible sur GitHub, est compatible avec de nombreux outils et présente une communauté active ainsi qu'une version 1.13.0 référencée.

Comparison of Malloc() Algorithms

Les allocations mémoire peuvent devenir un goulot d'étranglement dans les programmes multithreads car les allocateurs sérialisent les opérations concurrentes d'allocation et de libération, ce qui dégrade la scalabilité. L'évolution des allocateurs est passée de schémas empilement et listes liées à des approches dynamiques par classes de taille vers des arènes, tampons locaux par cœur/fil, hazard pointers et allocations directes via mmap pour les grands blocs. Le backend gère le renvoi de mémoire inutilisée à l'OS et utilise des algorithmes comme buddy, binary buddy, spans (BIPOP), listes libres locales/à distance et files distribuées multicœur pour réduire la fragmentation et la contention. Des implémentations modernes (jemalloc, tcmalloc, mimalloc, snmalloc, Hoard, etc.) offrent des caches par thread, multi-arènes et sensibilités NUMA et présentent des compromis différents, de sorte que le choix dépend du type de charge (forte contention, faible latence, NUMA, petits objets, sécurité, débogage, embarqué, temps réel, etc.). Pour améliorer les performances il est recommandé de limiter les allocations inutiles (en particulier par paquet), d'utiliser des techniques de recyclage côté noyau/driver ou PF_RING pour éviter les copies et de choisir un allocateur adapté aux contraintes de contention, latence et localité mémoire.

Breaking the 1.58-bit Barrier for Ternary LLMs

Les modèles ternaires représentent chaque poids par l'un des symboles {-1,0,+1} et la borne informationnelle est log2 3 ≈ 1,585 bits par poids, tandis que le format courant empaquette cinq trits par octet ce qui correspond à 1,625 bits par poids en supposant des symboles équiprobables. En mesurant la distribution effective sur 29 modèles ternaires, les auteurs observent jusqu'à 51,5 % de zéros dans les poids. Ils proposent BITCOS, un agencement adaptatif composé d'une bitmap de présence dense et d'un vecteur de signes compacté, dont le coût est de 2 − z bits par élément de poids pour une densité z de zéros. BITCOS stocke plus compactement les poids que l'empaquetage à cinq trits dans 26 des 29 modèles testés et atteint 1,485 bits par poids sur le modèle le plus creux. BITCOS permet des opérations de désencodage efficaces sur processeurs et GPU modernes avec séquences optimisées pour AVX‑512, AVX2 et Xe2, et améliore les noyaux matrice‑vecteur jusqu'à 1,28× ainsi que le débit d'inférence global jusqu'à 1,18× sur CPU et 1,27× sur GPU.

Small programming tricks

Le texte soutient que beaucoup de productivité en ingénierie provient de petits savoirs pratiques et d'astuces techniques faciles à appliquer. Il donne des exemples concrets couvrant la ligne de commande, Git, bases de données, expressions régulières, JavaScript moderne et Node.js, ainsi que des outils comme rg et fzf. L'auteur explique que certaines astuces demandent peu de contexte pour être utiles, comme lancer rapidement un serveur Python ou activer le globstar dans bash. En milieu professionnel, de nombreux gains viennent de connaissances spécifiques à l'entreprise — qui demander, quelle commande lancer, ou quel outil utiliser pour automatiser une tâche. L'auteur recommande de partager régulièrement de petites astuces, par exemple une par jour sur Slack, pour diffuser ces connaissances sans surcharger l'équipe.

A 32-year-old bug walks into a Telnet server

Un débordement de tampon dans la négociation LINEMODE de Telnet (SLC) permet de corrompre environ 400 octets adjacents et affecte de nombreuses implémentations dérivées d'inetutils. La vulnérabilité, identifiée comme CVE-2026-32746 et présente depuis 1994, est visible sur de nombreuses plateformes dont Ubuntu, Debian, FreeBSD, NetBSD, Apple et plusieurs appliances réseau. L'exploitation réelle est difficile en raison des contraintes sur les octets des triplets SLC, du doublement de 0xFF, de la limite de taille des sous-négociations et des variations d'agencement mémoire entre builds. Les chercheurs ont observé des primitives exploitables potentielles comme des fuites de pointeurs et une libération arbitraire de mémoire sur certains binaires, sans toutefois parvenir à un exploit RCE généralisable. Il est conseillé d'appliquer immédiatement les correctifs disponibles (ou de reconstruire depuis le commit corrigé), de détecter l'activation de LINEMODE et d'utiliser les outils de détection non invasifs fournis pour évaluer l'exposition.

Developing provably correct Rust code with Verus

De nombreux projets adoptent Rust pour sa performance et sa sécurité, mais les garanties du typage ne suffisent pas à assurer la correction fonctionnelle ni l'absence de fuites de secrets. Verus est un vérificateur de programmes open source pour Rust qui prend des spécifications formelles et vérifie automatiquement que le code satisfait ces spécifications pour tous les cas d'entrée. Les spécifications et les preuves s'écrivent directement dans les fichiers source Rust avec une syntaxe proche du langage, ce qui maintient les preuves synchronisées avec le code et fournit des messages d'erreur familiers. Verus s'appuie sur plusieurs solveurs pour automatiser les obligations de preuve et offrir un retour rapide adapté à l'itération, et il permet aussi de prouver la sûreté du code unsafe ainsi que la correction de programmes concurrents. Amazon et divers projets open source ont utilisé Verus pour vérifier des primitives et systèmes critiques, en rappelant que les garanties reposent sur la justesse du vérificateur, des spécifications et de la chaîne d'outils sous-jacente.

Backups Aren't Simple

L'auteur rappelle que la perte de données est fréquente et illustre le problème avec une anecdote familiale où des photos ont été perdues après un reformatage accidentel. Il explique qu'il faut conserver des copies ailleurs, préférer des instantanés horodatés plutôt qu'un miroir et définir un objectif de point de récupération (RPO) qui dicte la fréquence des sauvegardes. Pour limiter l'espace et la bande passante, on privilégie les sauvegardes incrémentales et la déduplication (hardlinks, snapshot rotatif de type GFS), ce qui permet aussi de préserver les métadonnées et de faciliter la rotation. L'auteur détaille de nombreuses complexités pratiques comme les fichiers root créés par des conteneurs, la nécessité de vider les bases de données avant sauvegarde, les risques matériels et la problématique des petits fichiers et des métadonnées avec du stockage objet comme S3, d'où la règle 3-2-1. Il conclut qu'il vaut mieux s'appuyer sur des outils éprouvés (Borg, Restic) qui gèrent chiffrement, déduplication par chunks et contrôles d'intégrité, et qu'il est essentiel de tester régulièrement les restaurations.