HN Digest
Briefing personnel.

Lire vite.
Garder l'essentiel.

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

11382 articles Page 1056/1139 Sans filtre

Implementing a Z80 / ZX Spectrum emulator with Claude Code

L'article présente une expérience où une version d'Opus 4.6 est chargée d'écrire un compilateur C en Rust dans un cadre « clean room », et remet en question les choix techniques et méthodologiques. L'auteur s'interroge sur l'accès à la documentation ISA, sur l'emploi de Rust et sur le fait de ne pas utiliser les avancées reconnues en optimisation de compilateurs. Il décrit ensuite sa propre expérience consistant à écrire un émulateur Z80 puis un ZX Spectrum et CP/M dans une configuration similaire, en s'appuyant sur une documentation détaillée et des règles strictes. Les résultats montrent que l'émulateur Z80 passe les tests ZEXDOC et ZEXALL et que l'émulateur Spectrum, avec son environnement TAP et une intégration SDL, fonctionne correctement. La leçon principale est que fournir des documents et des règles claires aide les agents à produire du code de qualité, et l'auteur propose d'autres expériences, notamment sans documentation, pour mieux mesurer l'effet de l'encadrement.

Let's discuss sandbox isolation

Cet article compare les couches d’isolation utilisées pour exécuter du code non écrit, allant des namespaces Docker aux microVMs, en passant par gVisor et WebAssembly, et souligne leurs frontières et surfaces d’attaque respectives. Les namespaces servent de murs de visibilité mais ne constituent pas une véritable frontière de sécurité, car ils partagent le même noyau et peuvent être vulnérables via des bugs du noyau. gVisor introduit un kernel utilisateur appelé Sentry qui intercepte les syscalls via des mécanismes comme systrap, réduisant l’attaque sur le noyau hôte mais imposant un coût de performance. Les microVMs offrent une vraie frontière matérielle avec un kernel invité dédié et une VM gérée par un VMM, offrant un confinement plus fort mais avec des frais généraux plus élevés. WebAssembly fournit une isolation sans accès direct au kernel, via une interface explicite de fonctions importées, mais n’est pas une solution universelle pour l’exécution de langages arbitraires.

Show HN: Claude-File-Recovery, recover files from your ~/.claude sessions

Cet outil permet de récupérer les fichiers créés et modifiés par Claude Code à partir de transcripts JSONL, même lorsque l'historique est dispersé entre plusieurs sessions. Il analyse les transcripts situés dans ~/.claude/projects/ et rejoue les opérations Write, Edit et Read pour reconstruire les fichiers afin de les parcourir, rechercher et exporter. Parmi ses fonctionnalités figurent une interface TUI interactive avec recherche floue et raccourcis vim, la récupération à un point dans le temps, des diffs colorés et l'extraction par lots. Des modes d'installation existent (uv tool install claude-file-recovery, pipx ou pip) et l'outil requiert Python 3.10 ou une version ultérieure. Le mode rapide décrit le flux Scan, Correlate, Reconstruct et Present, avec des options pour filtrer, lister, exporter et extraire les fichiers récupérables.

Time-Travel Debugging: Replaying Production Bugs Locally

Le texte expose le sentiment de frustration du débogage lorsque des rapports de crash existent mais que l'état exact préexistant reste invisible. Pour contourner ce problème, il propose un système d'effets JavaScript où la logique métier ne déclenche pas directement des actions mais retourne un objet Command décrivant l'effet à exécuter. Les commandes peuvent être enchaînées dans un pipeline et interprétées par runEffect, ce qui permet de générer des traces déterministes et de les instrumenter avec OpenTelemetry. Une fonction de voyage dans le temps permet de rejouer localement une exécution enregistrée et d'identifier rapidement où et pourquoi l'échec s'est produit, comme dans l'exemple de paiement échoué pour montant non nul. En déplaçant les effets secondaires vers les bords et en rendant les traces reproductibles, ce paradigme offre un débogage plus sûr et déterministe avec un coût de code modeste.

Open source calculator firmware DB48X forbids CA/CO use due to age verification

En raison de l'activité législative récente, des dispositions s'appliquent aux résidents de Californie et du Colorado. Les résidents californiens ne pourront plus utiliser DB48x à partir du 1er janvier 2027. Les résidents du Colorado ne pourront plus utiliser DB48x à partir du 1er janvier 2028. DB48x est probablement considéré comme un système d'exploitation soumis à ces lois, mais il ne mettra pas en place de vérification d'âge et ne peut pas le faire. Des liens vers les textes officiels des lois sont fournis.

Bootc and OSTree: Modernizing Linux System Deployment

L’article présente OSTree comme une solution immuable qui permet le versionnement, la distribution et le déploiement atomique des systèmes Linux, comparable à Git pour les fichiers. OSTree s’appuie sur ComposeFS et EROFS pour garantir l’intégrité des données et utilise des overlays pour rendre mutables des répertoires comme /etc et /var. Pour les paquets, le texte montre que rpm-ostree remplace dnf/yum en appliquant les paquets dans un commit OSTree et nécessite un redémarrage pour rendre ces changements effectifs. Bootc est présenté comme une méthode de démarrage d’un système à partir d’une image OCI, permettant une installation et une gestion reproductibles sans exécuter l’OS comme un conteneur. Ensemble, OSTree et Bootc offrent un flux de travail qui va du build d’images à leur déploiement et leur mise à jour, tout en gérant le drift et en permettant des mises à jour automatiques ou via switch.

Eschewing Zshell for Emacs Shell (2014)

Eshell est un shell intégré à Emacs qui agit comme un REPL Lisp et s'inscrit dans un flux de travail centré sur l'éditeur plutôt qu'une session shell indépendante. Ses avantages incluent la cohérence du comportement entre systèmes, l'accès à tous vos scripts et fonctions Emacs, et l'absence de pager externe grâce à des commandes comme C-c C-p. On peut lancer Eshell dans le répertoire du fichier courant via la fonction eshell-here, qui ouvre une nouvelle fenêtre et renomme le buffer pour faciliter la gestion de plusieurs shells. Eshell se distingue par sa syntaxe Lisp, par la possibilité d'appeler des fonctions eshell/ sans le préfixe, et par des outils comme listify et les modificateurs et prédicats pour filtrer et transformer les résultats. L'article aborde aussi les variables et l'environnement, les limites lorsque des programmes contrôlent le terminal, et les possibilités d'extension par des prédicats personnalisés et des modificateurs.

NASA announces overhaul of Artemis program amid safety concerns, delays

La NASA a annoncé une refonte du programme Artemis visant à accélérer les vols lunaires tout en réduisant les risques. Un vol supplémentaire est prévu en 2027, durant lequel des astronautes se connecteront avec des landers lunaires commerciaux en orbite basse pour tester la navigation, les communications, la propulsion et les procédures de rendez-vous. Artemis III sera lancé en 2027 mais n’atterrira pas sur la lune à ce stade et impliquera des rendez-vous et des amarrages en orbite avec l’un ou les deux landers commerciaux. En 2028, Artemis IV et V utiliseront les landers disponibles et, s’il n’y a qu’un seul lander prêt, il sera utilisé pour les deux missions. La restructuration prévoit aussi l’abandon du développement de l’étage supérieur EUS au profit d’un étage standardisé, afin de réduire les changements entre les versions et de reconstruire les compétences techniques de la main-d’œuvre et d’assurer une cadence de vol annuelle.

A Chinese official’s use of ChatGPT revealed an intimidation operation

Un rapport d'OpenAI révèle une opération d'influence chinoise visant à intimider des dissidents à l'étranger, notamment en se faisant passer pour des agents d'immigration américains et en utilisant de faux documents. Selon le rapport, le responsable chinois utilisait ChatGPT comme journal pour documenter la campagne et l'opération impliquait des centaines d'opérateurs et des milliers de comptes fictifs sur divers réseaux sociaux. Le document illustre comment des régimes autoritaires peuvent employer des outils d'IA pour mener des opérations d'information et de censure de manière industrielle. Des exemples mentionnés incluent la fabrication d'un faux obituaire et l'élaboration d'un plan pour dénigrer la Première ministre japonaise Sanae Takaichi, en partie via des messages hostiles et des hashtags. L'affaire s'inscrit dans le contexte plus large de la compétition sur l'IA entre les États-Unis et la Chine, avec des tensions sur l'utilisation des modèles et des contrats gouvernementaux.