HN Digest
Briefing personnel.

Lire vite.
Garder l'essentiel.

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

11427 articles Page 1025/1143 Sans filtre

In 1985 Maxell built a bunch of life-size robots for its bad floppy ad

L’article décrit une publicité de Maxell montrant des robots servant des disquettes comme des plats dans un restaurant. Cette publicité marque une rupture avec les campagnes Gold Standard et semble avoir bénéficié d’un budget plus conséquent, apparaissant dans PC Mag, Personal Computer et Byte entre 1985 et 1986. Des indices indiquent que ces robots étaient des prothèses grandeur nature utilisées comme éléments de décor et qu’ils ont été exposés par la suite dans des musées. Ils ont été intégrés à l’exposition Smart Machines du Computer Museum et ont nécessité des ajustements techniques et logistiques importants. Le récit rappelle que ces objets physiques, plus que les publicités qui suivirent, illustrent l’impact culturel durable de Maxell sur l’histoire des disquettes.

Best Performance of a C++ Singleton

Le texte analyse des variantes d’implémentation d’un singleton et leur impact sur les performances, illustrées par un DisplayManager et l’énumération Resolution. Il compare une instance locale statique (le motif Meyers) et une donnée membre statique privée initialisée dans un fichier source. Si le constructeur par défaut peut être généré par le compilateur, les deux approches offrent des performances équivalentes. En revanche, lorsque l’on doit fournir un constructeur, l’option avec une donnée statique privée évite les gardes et les verrous, ce qui donne un code plus rapide. En cas de constructeur nécessaire, privilégier l’implémentation par donnée statique; sinon, si le constructeur peut être défaut, privilégier l’approche locale pour éviter une définition dans un fichier d’implémentation.

Ten Years of Deploying to Production

En 2018, l'entreprise disposait d'une équipe d'exploitation chargée de la production, regroupée dans un coin du bureau. L'équipe a commencé à envisager AWS, mais les déploiements en production avaient lieu toutes les deux semaines et dépendaient de sa disponibilité. Les modèles en production se comportaient mal et les clients signalaient des résultats incohérents, ce qui poussait l'équipe à corriger le modèle ou la logique métier. Pour résoudre le problème, l'auteur a collaboré avec les équipes et l'équipe d'exploitation, appris Chef, créé un dépôt PyPi interne utilisant des tags Git comme versions et mis en place le versionnage ainsi que des revues de PR, puis déployé en production pour répondre aux préoccupations des clients. Depuis lors, il observe une évolution vers une équipe d'ingénierie de plateforme visant une expérience développeur fluide et une production plus résiliente, même si les détails restent à préciser.

Autoresearch: Agents researching on single-GPU nanochat training automatically

Le texte décrit un projet qui laisse des agents d'IA autonomes expérimenter et optimiser un cadre d'entraînement LLM en modifiant uniquement train.py, après préparation des données via prepare.py et en suivant les instructions dans program.md. Le fichier train.py contient le modèle GPT, l'optimiseur et la boucle d'entraînement, et constitue la cible unique de modification par l'agent, tandis que prepare.py et program.md restent fixes. Les expériences s'enchaînent sur un budget fixe de cinq minutes par essai et la performance est mesurée par val_bpb, une métrique indépendante du vocabulaire où une valeur plus faible est meilleure. Le design vise la simplicité et la traçabilité des résultats, avec un fonctionnement sur une seule GPU et des exécutions estimées à une douzaine par heure ou cent par nuit. Le dépôt souligne des choix de conception simples, encourage les forks et indique une licence MIT, tout en mentionnant l'existence d'un cadre plus large dans le dépôt parent nanochat.

Yoghurt delivery women combatting loneliness in Japan

Au Japon, pays au vieillissement rapide, la solitude des personnes âgées est de plus en plus problématique et des femmes qui livrent Yakult jouent un rôle clé dans le lien social. Les Yakult Ladies ne se limitent pas à livrer la boisson probiotique, elles forment un filet social informel et une source de sécurité pour les habitants. Leur visite hebdomadaire offre des conversations et une vigilance qui donnent énergie et réconfort à des personnes vivant souvent seules. L’initiative est née en 1935 et a été formalisée en 1963, reposant sur un réseau de vendeuses autonomes qui parcourent les rues à vélo jusqu’aux maisons. Le modèle s’est étendu à l’international, avec des Yakult Ladies dans des pays comme la Chine, l’Indonésie, la Malaisie, le Brésil et le Mexique, tout en restant une forme de soutien social autant que commercial.

Dumping Lego NXT firmware off of an existing brick (2025)

Dans cet article, l’auteur décrit ses tentatives d’archiver le firmware 1.01 du Lego Mindstorms NXT et les opportunités d’exécution arbitraire découvertes au passage. Différentes approches sont explorées, notamment le SAM-BA, le JTAG et le développement via un programme NXT, mais chacune présente des obstacles techniques ou de sécurité. La piste clé consiste à exploiter l’IO-Maps du VM pour lire des structures internes et modifier le pointeur de fonction pRCHandler, ouvrant la porte à du code natif. L’exploit est mis en œuvre en utilisant un memory pool de 32 KiB et un NOP sled pour injecter et exécuter du code ARM en mémoire. Le processus permet de dump le firmware et les données, et suggère une éventuelle applicabilité à d’autres firmwares dérivés, avec des implications pour archivage et sécurité.

Emacs internals: Deconstructing Lisp_Object in C (Part 2)

Lisp_Object est un mot-machine de 64 bits dont les trois bits les plus faibles portent le tag du type. Pour les fixnums, les 62 bits supérieurs contiennent directement la valeur et la plage est -2^61 à 2^61-1. Les autres types utilisent des pointeurs vers des structures heap et sont manipulés via des macros comme XUNTAG et XFIXNUM, avec l'enum Lisp_Type définissant Lisp_Symbol, Lisp_Cons, Lisp_String, Lisp_Vectorlike et Lisp_Float. L’approche est data-first et relie les axiomes de McCarthy à des primitives C, en répartissant les responsabilités entre lisp.h pour les données et alloc.c, lread.c et eval.c pour la mémoire et l’évaluation. Le texte montre aussi l’usage de macros C ressemblant à du Lisp pour favoriser l’inlining et illustre le motif plus général du tagged pointer, présent dans d’autres langages comme C++, Rust ou Lisp.

MonoGame: A .NET framework for making cross-platform games

MonoGame est un cadre .NET simple et puissant pour créer des jeux multiplateformes. Il s'agit d'une ré-implémentation open-source du framework XNA et il a été utilisé pour des jeux tels que Streets of Rage 4, Carrion, Celeste, Stardew Valley et beaucoup d'autres. Il prend en charge Windows, Linux et macOS, les appareils mobiles Android et iOS, et les consoles pour les développeurs enregistrés. Des ressources, des exemples et des outils comme le pipeline de contenu, mgcb et mgfxc et les templates accompagnent le développement. Le code source est disponible sur GitHub sous licence publique Microsoft, avec des directives de contribution, un système de discussions et des dons optionnels.