HN Digest
Briefing personnel.

Edition quotidienne

Lire vite. Garder l'essentiel.

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

3494 articles Page 1/350 Sans filtre

06:08

How Hard Is It to Open a File?

Lorsque des processus avec différents privilèges partagent un arbre de fichiers, confier des chemins en clair à un processus privilégié est dangereux car les chemins peuvent être modifiés entre vérification et usage. Les symlinks et les races de type TOCTOU permettent à un attaquant de rediriger des chemins validés vers des fichiers sensibles, alors que les descripteurs de fichiers (et notamment O_PATH) fournissent une référence stable à un inode que le noyau fixe. L'approche sûre consiste à n'envoyer que des descripteurs plutôt que des chemins, et si on doit résoudre des chemins on doit le faire segment par segment via openat/O_NOFOLLOW, la bibliothèque libglnx implémente glnx_chaseat pour fournir ce parcours sûr. Les API standard (POSIX, GLib, Rust) sont majoritairement basées sur des chemins et empêchent la composition sécurisée, ce qui a conduit à des vulnérabilités dans Flatpak (notamment une fuite de sandbox) et a nécessité un audit massif et la refonte pour transmettre des fd plutôt que des chemins. L'auteur propose une API multiplateforme basée sur poignées opaques (sous-jacentes aux descripteurs O_PATH sur Unix) et l'usage de systèmes comme FUSE et des namespaces utilisateurs non privilégiés pour isoler proprement les accès, en notant que ces changements demandent des audits et peuvent provoquer des régressions ponctuelles.

06:08

What the FCC router ban means for FOSS

La FCC a interdit la vente de tout nouveau modèle de routeur domestique non fabriqué aux États-Unis, ce qui exclut de facto la plupart des appareils. Une dérogation "Conditional Approval" est possible mais impose des exigences d'onshoring, d'investissements et de rapports trimestriels jugées difficiles à tenir compte tenu des coûts et de la capacité de production américaines. L'OpenWrt One a déjà reçu l'homologation FCC, de sorte que sa disponibilité immédiate aux États-Unis n'est pas affectée, même si la décision complique le développement futur de matériel par la SFC. La FCC a laissé entendre qu'elle pourrait limiter les mises à jour logicielles distribuées par les fabricants jusqu'au 1er mars 2027, mais ne semble pas restreindre les modifications logicielles effectuées par les propriétaires eux-mêmes. La SFC évalue ses processus selon la norme NIST IR 8425A, plaide pour une approche globale de la sécurité logicielle et a contacté la FCC pour obtenir des clarifications.

06:08

Mine, an IDE for Coalton and Common Lisp

Cet environnement de développement multiplateforme prend en charge Coalton et Common Lisp et permet de les utiliser séparément ou ensemble selon les besoins du projet. Il existe deux éditions : une application packagée « tout-en-un » pour Windows et macOS qui ne nécessite aucune dépendance, et une version core compatible terminal (Windows, macOS, Linux) qui requiert une police Unicode et le protocole clavier Kitty. L'éditeur intègre un REPL avec transfert de code, un débogueur interactif affichant l'erreur, des options de correction et la pile d'appels, ainsi que des diagnostics inline et des indications d'optimisation. Pour Coalton, l'IDE affiche immédiatement les types de données et propose l'auto-complétion, et il propose aussi des leçons intégrées pour apprendre l'édition structurelle en quelques minutes. Tout le code est compilé en binaire natif sans machines virtuelles ni interpréteurs pour maximiser les performances.

06:07

What async promised and what it delivered

Les threads système sont coûteux et le problème C10K a poussé la recherche de modèles pour gérer des milliers de connexions sans un thread par connexion. La première vague a utilisé des callbacks et des boucles d'événements pour économiser des ressources mais a inversé le flux de contrôle, fragmenté la gestion des erreurs et rendu le code difficile à maintenir. Les promesses et futures ont apporté composition et centralisation des erreurs, mais elles sont « one-shot », mal adaptées aux flux continus, ont parfois masqué les rejets et ont créé une séparation entre code synchrone et asynchrone. L'async/await a rendu l'asynchrone lisible comme du code séquentiel, tout en introduisant le « coloring » des fonctions, la fragmentation des runtimes, de nouvelles formes de blocages et un piège séquentiel qui cache le parallélisme possible. Chaque vague a résolu des problèmes précédents tout en générant des coûts structurels importants, et des alternatives comme les goroutines, les threads virtuels ou des interfaces d'E/S cherchent à réduire ces taxes.

06:07

The Long Reply

Un message de l'auteur sur Threads, promettant de répondre dans cinq ans, est devenu viral et a attiré de nombreux commentaires liés à l'algorithme. Il souligne l'attrait des projets à très long terme en évoquant Noah, photographe connu pour des séries photographiques documentées sur plusieurs décennies. Il raconte aussi une expérience sur Twitter où un utilisateur a répondu chaque année au même tweet pendant dix ans, avant que les interactions n'arrêtent après la migration vers X. L'auteur relate l'histoire d'une lettre écrite en 1998 et destinée à être ouverte vingt-cinq ans plus tard, qu'il a retrouvée et remise à sa destinataire en 2023, provoquant une forte émotion. Il conclut en demandant aux lecteurs de partager leurs propres exemples de réponses tardives et envisage de répondre à d'anciens e‑mails oubliés.

06:07

The George Business, by Roger Zelazny (1980)

Un dragon nommé Dart, troublé par un rêve prophétique le mettant aux prises avec un homme nommé George, rencontre ce dernier qui propose de le payer pour simuler un enlèvement. Ils répètent une mise en scène détaillée où Dart doit enlever Rosalind, George intervient en faux sauveur et la scène inclut une lance empoisonnée, des pièces d'or jetées et du sang factice pour persuader les témoins. L'enlèvement est joué et George est présenté comme le tueur de dragon, mais Rosalind épouse finalement un rival barbare après la mort de son père, et George reçoit seulement un cheval, une armure et une réputation. Par la suite, Dart propose une réciprocité pour l'aider à séduire une dragonne fortunée, mais une mise en scène échoue lorsque Pelladon, un autre grand dragon, surgit, saisit George et s'envole. Les deux décident finalement de monter une entreprise : George parcourra les villages pour jouer le rôle du héros contre de faux dragons identifiés par Dart, et ils se partageront les profits.