HN Digest
Briefing personnel.

Edition quotidienne

Lire vite. Garder l'essentiel.

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

3748 articles Page 129/375 Sans filtre

06:06

Async Python Is Secretly Deterministic

L'ajout du support asynchrone à une bibliothèque d'exécution durable soulève un défi fondamental : les workflows durables doivent rester déterministes pour permettre la reprise par replay. Les workflows Python asynchrones sont difficiles à rendre déterministes parce qu'ils lancent souvent de nombreuses étapes concurrentes qui s'exécutent et se terminent dans des ordres variables. Le fonctionnement du loop asyncio est central : les coroutines créent des tâches et l'event loop, mono‑thread, planifie ces tâches dans une file FIFO et ne les exécute qu'une à une jusqu'à ce qu'elles fassent un await. Cette planification FIFO signifie que l'ordre de création des tâches (par exemple via asyncio.gather) est déterministe, ce qui permet d'assigner des identifiants d'étape avant le premier await pour assurer un ordre reproductible lors du replay. Comprendre ces subtilités d'asyncio permet d'écrire du code à la fois concurrent et sûr pour les workflows durables, en garantissant la réexécution correcte des étapes incomplètes lors de la récupération.

06:05

How to Write Unmaintainable Code (1999)

Cet essai satirique énumère des techniques pour rendre le code Java difficilement maintenable, allant des commentaires mensongers aux noms de variables confus et au clonage de code. L'auteur détaille des pratiques nocives concrètes: suppression d'encapsulation, variables et méthodes publiques ou statiques, imbriquations profondes, usage abusif de conversions et threads, et recours systématique aux littéraux magiques plutôt qu'aux constantes. Le texte critique aussi les mauvaises pratiques d'API et d'interface (surcharges inutiles, mépris des interfaces, changements de version fréquents) et recommande ironiquement de complexifier la documentation et l'ergonomie pour confondre utilisateurs et mainteneurs. En revanche, l'article propose des approches constructives pour améliorer la maintenance, comme des outils affichant des vues structurées du code, navigation par définitions, coloration et représentations alternatives des structures. La version finale mentionne les contributeurs et indique que l'essai, paru dans une revue Java, a évolué avec le temps grâce aux retours et exemples pratiques.

06:05

Show HN: TinyOS – A minimalist RTOS for Cortex-M written in C

Système d'exploitation temps réel extrêmement léger conçu pour dispositifs IoT et embarqués contraints en ressources, avec un noyau occupant moins de 10 Ko et 2 Ko de RAM minimum. Il propose un ordonnancement préemptif par priorité (256 niveaux) avec round-robin, héritage de priorité, et primitives de synchronisation telles que mutex, sémaphores, variables de condition, groupes d'événements et files de messages. La pile logicielle inclut minuteries millisecondes, allocateur à blocs fixes, shell VT100 interactif, système de fichiers léger, pile réseau IPv4/UDP/TCP/HTTP, TLS/DTLS via mbedTLS, client MQTT complet et CoAP conforme RFC 7252. Parmi les autres fonctionnalités figurent les mises à jour OTA A/B avec vérification CRC et rollback, watchdog matériel et logiciel, modes d'économie d'énergie (tickless, deep‑sleep), protection MPU et démarrage sécurisé, avec support pour ARM Cortex‑M, RISC‑V et AVR expérimental. Le projet fournit une API C détaillée et des exemples, une structure modulaire, options de configuration (par ex. MAX_TASKS, STACK_SIZE), mesures de performance (contexte ≈1 μs sur Cortex‑M4) et est distribué sous licence MIT.

06:05

Iran strikes leave Amazon availability zones "hard down" in Bahrain and Dubai

Des frappes iraniennes ont rendu deux zones de disponibilité d'Amazon Web Services à Dubaï et à Bahreïn complètement hors service et AWS prévoit qu'elles resteront indisponibles pendant une période prolongée. Un mémo interne d'AWS a conseillé de déprioriser ces régions, de réduire les services au minimum requis et de favoriser la migration des clients vers d'autres régions afin de préserver capacité et résilience. Un porte-parole d'Amazon a renvoyé à un billet de blog précisant que la société soutient les clients affectés et que de nombreux clients exploitent déjà leurs applications depuis d'autres régions. Les installations d'Amazon à Bahreïn et aux Émirats ont été touchées à plusieurs reprises, y compris par des incendies, et le Corps des Gardiens de la Révolution islamique a menacé d'autres géants technologiques américains sans qu'aucun calendrier de rétablissement normal ne soit communiqué. L'article évoque aussi un entretien avec Greg Brockman, président et cofondateur d'OpenAI, sur la stratégie produit, les investissements d'infrastructure et l'évolution vers l'AGI.

06:05

Claude Code Found a Linux Vulnerability Hidden for 23 Years

Nicholas Carlini, chercheur chez Anthropic, a utilisé Claude Code pour découvrir plusieurs vulnérabilités à distance exploitables dans le noyau Linux, incluant des débordements de tas. L'exemple mis en avant est un bug vieux de 23 ans dans le pilote NFS qui permet à un attaquant, via deux clients NFS coopérants, d'écraser la mémoire du noyau en envoyant un champ owner de 1024 octets dans un tampon de 112 octets lors d'une réponse de verrouillage refusée. Carlini a trouvé ce bug en pointant simplement Claude Code sur l'arbre source et en exécutant un script qui parcourt chaque fichier en lui demandant de "trouver une vulnérabilité", ce qui montre que le modèle peut interpréter et analyser des détails protocolaires complexes. Il affirme avoir identifié des centaines d'autres plantages potentiels, mais le principal goulot d'étranglement reste la validation humaine et le signalement responsable aux mainteneurs du noyau. Il note également que les modèles de langage ont récemment beaucoup progressé — Opus 4.6 a détecté bien plus de bugs que des versions antérieures — et prévoit une forte augmentation des découvertes de vulnérabilités par chercheurs et attaquants.

06:04

Windows++: C++ Application Framework for Windows by Paul DiLascia

L'auteur défend l'idée de créer son propre framework applicatif pour obtenir des applets autonomes et légères, en soulignant les limites de MFC. Il présente un framework C++ léger pour programmer sous Windows qui masque WinMain et enveloppe l'API Windows, permettant d'écrire un programme hello world en une vingtaine de lignes. Le framework est compatible avec plusieurs compilateurs et versions de Windows, la DLL complète pèse seulement 84 Ko et il n'utilise pas de message maps. Plusieurs entreprises l'ont utilisé pour des logiciels commerciaux et il est fourni avec la librairie de classes, des makefiles et des exemples, dont un générateur de Mandelbrot et un programme apprenant à jouer au morpion. Une version téléchargeable et un livre explicatif sont proposés, ce dernier recevant un avis élogieux d'un auteur reconnu sur les frameworks Windows.

06:04

Show HN: I built a frontpage for personal blogs

La sélection rassemble une cinquantaine de brèves publications récentes issues de blogs variés. Les thèmes techniques occupent une place importante, couvrant le développement logiciel, la sécurité, l'intelligence artificielle et les outils pour ordinateurs. On trouve aussi des articles culturels et critiques portant sur le cinéma, la musique, la littérature et les arts visuels. De nombreux billets sont de nature personnelle ou pratique, incluant des journaux, des conseils culinaires, des comptes rendus de voyages et des projets de loisir. Les contributions proviennent de sources diverses et récentes, alternant analyses, annonces et chroniques courtes destinées à un public général ou spécialisé.

06:04

An experimental guide to Answer Engine Optimization

La plupart des recherches Google aboutissent désormais sans clic et le trafic de référence provenant de l'IA a fortement augmenté en 2025, ce qui change la manière dont les gens découvrent l'information. L'optimisation pour les moteurs de réponses (AEO) consiste à rendre le contenu facilement lisible et citable par les modèles IA plutôt que de se contenter d'être bien classé dans une page de résultats traditionnelle. L'auteur propose de stocker tout le contenu en markdown, de publier un index structuré llms.txt (et un llms-full.txt), et d'utiliser un intergiciel pour servir le markdown brut aux agents IA tout en gérant les URLs en .md et les en-têtes canoniques. Il recommande d'injecter des métadonnées complètes dans le frontmatter YAML et d'ajouter du JSON-LD pour fournir le contexte nécessaire aux modèles, puis de déclarer des permissions via robots.txt ou l'en-tête Content-Signal. L'approche présente des limites pratiques — détection par user-agent fragile, besoin de maintenir la liste des robots et difficulté à mesurer l'impact sur les citations IA — mais constitue une base prudente si la découverte médiée par l'IA devient dominante.

06:04

SSH certificates: the better SSH experience

Lors d'une première connexion SSH, l'utilisateur est confronté au mécanisme Trust On First Use (TOFU) qui demande de vérifier l'empreinte de l'hôte et conduit souvent à accepter sans vérification. L'authentification par clés SSH permet d'éviter les mots de passe via une paire clé publique/privée et un agent SSH, mais nécessite de déployer les clés publiques sur chaque compte, stocke des empreintes dans known_hosts et provoque des alertes si les clés d'hôte changent. Une autorité de certification SSH (CA) simple à créer avec ssh-keygen peut signer des clefs utilisateur et d'hôte, transformant les clés publiques en certificats reconnus par OpenSSH pour supprimer le TOFU. Les certificats SSH apportent plusieurs avantages opérationnels tels que la distribution centralisée des droits, des principes (utilisateurs) et contraintes (commande forcée, adresses source, validité limitée), l'absence d'entrées individuelles dans authorized_keys et une ligne @cert-authority unique dans known_hosts. L'article détaille la procédure de création et d'installation d'une CA, la signature et le déploiement des certificats, une checklist de vérification côté client et serveur, et évoque l'automatisation et des outils pour faciliter l'exploitation.

06:04

Age verification on Systemd and Flatpak

Apple déploie une vérification d'âge pour iPhone et iPad au Royaume-Uni afin de permettre à un "propriétaire" d'accéder à certains services. La société a déjà supprimé l'option Advanced Data Protection pour les nouveaux utilisateurs au Royaume‑Uni en 2025, ce qui réduit l'offre de chiffrement. La démarche soulève des questions sur la base légale et l'étendue du rôle des fabricants d'appareils et d'OS, le droit britannique imposant plutôt des obligations aux fournisseurs de services qu'aux systèmes d'exploitation. Certains y voient un signal pouvant précéder des obligations similaires ailleurs, notamment en Californie, et inciter d'autres acteurs comme Android, systemd ou Flatpak à implémenter des contrôles d'âge. Des incertitudes techniques et de confiance subsistent sur la manière de prouver l'âge sur des systèmes comme Linux, en particulier quant à la vérification d'identité et à la fiabilité de l'administrateur root.