HN Digest
Briefing personnel.

Lire vite.
Garder l'essentiel.

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

11567 articles Page 978/1157 Sans filtre

The Los Angeles Aqueduct Is Wild

Dans le nord de Los Angeles, l’eau arrive grâce au Los Angeles Aqueduct, un système gravitaire d’environ 300 miles reliant la Owens Valley à la ville sans pompes. L’ouverture des vannes en 1913 a permis à LA de croître rapidement en puisant dans les eaux de l’Est des Sierra Nevada, transformant la ville en métropole mondiale. Le réseau combine canaux ouverts, conduites souterraines et tunnels, comme le tunnel Elizabeth, et intègre des centrales hydroélectriques qui financent le projet. Son histoire est marquée par des conflits avec les habitants de la vallée Owens et par des impacts écologiques et économiques, notamment sur Owens Lake et la chute de la banque Inyo County Bank. Aujourd’hui, face au climat changeant, l’aqueduc demeure une réussite technique autant qu’un avertissement sur les coûts environnementaux et sociaux, avec des mesures comme la redondance et la gestion des flux.

Show HN: We built a terminal-only Bluesky / AT Proto client written in Fortran

C’est un client Bluesky AT Protocol en Fortran, fonctionnant dans le terminal, avec un décodeur Rust natif pour le flux relay-raw. L’architecture unit un TUI Fortran, un pont C libcurl, un module iso_c_binding et une bibliothèque Rust statique, avec le décodeur transformant l’enveloppe CAR en DAG-CBOR puis en JSONL. Les sessions sont sauvegardées dans ~/.fortransky/session.json et l’accès exige un mot de passe d’application spécifique. Les dépendances couvrent les paquets système (gfortran, cmake, libcurl), le toolchain Rust (rustc ≥ 1.70) et des dépendances Python (cbor2 et websockets) avec des options d’installation variées. L’interface propose une vue d’accueil et des commandes TUI pour login, navigation, publication, recherche et streaming, avec deux modes de flux (jetstream et relay-raw) et des notes sur les limitations et le changelog.

Attention Residuals

AttnRes remplace les connexions résiduelles standard des Transformers par une attention sur les sorties des couches précédentes, permettant une agrégation sélective dépendante du contenu. Les accumulations uniformes deviennent problématiques à mesure que la profondeur augmente en diluant les contributions, et AttnRes utilise des poids d'attention appris pour chaque couche. Full AttnRes nécessite une mémoire en O(Ld), tandis que Block AttnRes segmente les couches en blocs et ramène la mémoire à O(Nd) tout en conservant l’essentiel des gains. Chaque couche s’appuie sur un pseudo-requête appris pour générer les scores d’attention sur les représentations antérieures, et Block AttnRes applique cette attention au niveau des blocs. Les résultats montrent des gains constants par rapport au baseline quel que soit le budget de calcul, notamment sur le raisonnement multi‑étapes et la génération de code, et les analyses indiquent des magnitudes et des gradients mieux distribués et bornés.

Linux Applications Programming by Example: The Fundamental APIs (2nd Edition)

Ce dépôt contient le code lié à un ouvrage sur le développement d'applications Linux axé sur les API fondamentales, écrit par Arnold Robbins. Des informations sur les droits d'auteur et les numéros ISBN sont fournies, notamment ISBN-13 et ISBN-10. Le répertoire Documents regroupe des documents d'intérêt, y compris la licence du code écrit par l'auteur. Les erreurs ou corrections potentielles du livre peuvent être signalées en ouvrant une issue. La dernière mise à jour est datée du vendredi 10 octobre 2025 à 16:07:26 IDT.

FFmpeg 101 (2024)

FFmpeg est une suite d'outils et de bibliothèques permettant d'encoder, décoder, transcoder et diffuser des médias sur les réseaux. Elle comprend des outils en ligne de commande (ffmpeg, ffplay, ffprobe) et des bibliothèques (libavformat, libavcodec, libavfilter, libavutil, etc.) pour intégrer ces fonctionnalités dans des produits. Pour démuxer et décoder, FFmpeg organise les flux à l'aide de structures comme AVFormatContext, AVStream, AVCodec, AVPacket et AVFrame. Le processus typique consiste à ouvrir le fichier, l’analyser, identifier les flux, trouver les décodeurs compatibles, puis décoder les paquets en trames, avec les appels avformat_open_input, avformat_find_stream_info, avcodec_find_decoder, avcodec_open2, av_read_frame, avcodec_send_packet et avcodec_receive_frame. Un exemple de build et d’exécution montre l’utilisation de Meson et Ninja et produit des sorties détaillées sur les flux et les frames.

Ghostling

Ghostling est un projet de démonstration visant à présenter un terminal minimal fonctionnel, implémenté dans un seul fichier C et utilisant l'API libghostty. Il utilise Raylib pour la gestion des fenêtres et le rendu, et s'exécute en un seul thread, bien que libghostty-vt prenne en charge le threading, avec un rendu 2D plutôt qu'un rendu GPU dédié. Libghostty-vt est une bibliothèque sans dépendances qui gère l'analyse des séquences VT, l'état du terminal et la gestion du rendu, laissant au consommateur le choix du moteur de rendu et de la fenêtre. Le texte précise que Ghostling n'est pas un terminal complet destiné à un usage quotidien, mais un terminal minimal basé sur libghostty, et avertit que le code n'a pas été minutieusement audité. Les sections Building et FAQ expliquent les prérequis (CMake 3.19+, Zig, Raylib via FetchContent), les commandes de build et les remarques sur les versions Debug/Release, ainsi que les limites actuelles et les fonctionnalités prévues.

A Japanese glossary of chopsticks faux pas

Cet article présente les gaffes liées à l'usage des baguettes, appelées kiraibashi, à éviter lors des repas au Japon. Parmi elles figurent Agebashi, qui consiste à lever les baguettes au-dessus de la bouche, Araibashi pour se nettoyer les baguettes dans la soupe, et Awasebashi, le passage des baguettes à une autre personne. Il souligne aussi des tabous sérieux comme Tatebashi, planter les baguettes debout dans le riz, et Ogamibashi, qui interdit de tenir les baguettes lors des remerciements et du Itadakimasu. Le répertoire mentionne d'autres gestes interdits tels que Sashibashi pour piquer les aliments, Sashibashi pour pointer les personnes, Utsuribashi qui pousse à reprendre le même plat, et Kosuribashi qui frotte des baguettes pour enlever des échardes. En somme, l'ouvrage organise ces actes par ordre syllabique japonais et rappelle l'importance de respecter une étiquette stricte pour éviter d'offenser lors d'un repas.

We rewrote our Rust WASM parser in TypeScript and it got faster

Le parseur openui-lang a été écrit en Rust et compilé en WASM, mais la surcharge à la frontière JS–WASM s'est avérée le principal coût malgré des algorithmes performants. Le pipeline comporte six étapes (autocloser, lexer, splitter, parser, resolver, mapper) qui produisent un ParseResult à partir d'un DSL émis par un LLM. Chaque appel au parseur WASM entraînait des copies en mémoire et une sérialisation JSON, créant des allers-retours coûteux entre les environnements. Passer à une sortie directe d'objets JS via serde-wasm-bindgen a été plus lente de 30% car la conversion Rust vers JS recrée les objets et multiplie les traversées de frontières. En conséquence, le pipeline a été porté en TypeScript sans WASM, et un cache incrémental des statements terminés a radicalement réduit les coûts en streaming, démontrant quand WASM est approprié et quand il ne l'est pas.