HN Digest
Briefing personnel.

Lire vite.
Garder l'essentiel.

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

11752 articles Page 233/1176 Sans filtre

Longest Straight Line Paths on Water or Land on the Earth (2018)

Il existe un intérêt récent pour déterminer la plus longue distance navigable sur la Terre sans rencontrer de terre ferme ainsi que, inversement, la plus longue distance parcourable par la route sans croiser un grand plan d'eau. Ce problème se formule comme une optimisation rendue chaotique par la présence d'îles, de lacs et la nature fractale des côtes. L'article propose une méthodologie pour calculer ces deux trajectoires optimales. La méthode développée repose sur l'algorithme branch-and-bound pour explorer l'espace des solutions. Les auteurs discutent des défis numériques et géométriques inhérents au problème et présentent des résultats obtenus avec leur approche.

Zig: Pointer Stability for ArrayLists

Une fonctionnalité de verrouillage de stabilité des pointeurs a été ajoutée à std.ArrayList; il faut appeler lockPointers() avant de conserver des pointeurs ou slices vers les éléments et unlockPointers() ensuite, ce qui permet d'obtenir une assertion explicite quand la réallocation ou des opérations ordonnées déplacent les éléments. La gestion des paquets a été déplacée du compilateur vers le processus maker du système de build, déplaçant les sous-commandes liées aux paquets hors du binaire du compilateur, facilitant les correctifs sans reconstruire le compilateur et permettant des vérifications et optimisations de sécurité via ReleaseSafe et code crypto natif. Le backend SPIR‑V a reçu de nombreuses améliorations, notamment le nouveau builtin @SpirvType, des conventions d'appel pour les stages (vertex, fragment, kernel, task, mesh), l'émission et l'édition de fichiers .spv, du codegen multithread et la restauration de passes d'ISel, ce qui augmente la couverture des tests et la praticabilité pour shaders. Le backend LLVM a été modifié pour abaisser les entiers non‑ABI en tailles ABI lors du stockage, et le builtin @bitCast a été redéfini en termes de représentation logique des bits (comportement indépendant de l'endianness pour les agrégats), changements accompagnés d'une passe Legalize et d'améliorations de performances mesurables. Plusieurs travaux d'infrastructure ont accéléré l'expérience développeur : le système de build sépare désormais configurer et maker pour des reconstructions et un --watch beaucoup plus rapides, le nouvel éditeur ELF prend en charge l'édition incrémentale et la compilation instantanée, std.Io gagne des implémentations io_uring et GCD basées sur fibres, la gestion des paquets ajoute un dépôt zig-pkg local et un flag --fork pour utiliser des forks locaux, zig libc remplace des sources C par des wrappers Zig, et la bibliothèque privilégie les API natives Windows (ntdll) plutôt que kernel32 pour réduire allocations et erreurs.

Arbitrary code execution in QubesOS via copy-to-VM error reporting backchannel

Le bulletin QSB-118 (daté du 28/08/2026) signale une vulnérabilité dans l'utilitaire qvm-copy-to-vm permettant qu'un nom de fichier contrôlé par une qube compromise soit interprété via un appel système dans dom0. Si un attaquant contrôle une qube et que l'utilisateur lance qvm-copy-to-vm depuis dom0 vers cette qube, il peut injecter une commande arbitraire dans dom0 et potentiellement prendre le contrôle de Qubes OS. Toutes les versions de Qubes OS sont affectées et le correctif pour Qubes 4.3 est fourni dans le paquet qubes-core-dom0-linux version 4.3.22 ; il est recommandé de mettre à jour normalement via l'outil de mise à jour. Le bulletin contient des signatures PGP (notamment de Marek Marczykowski-Górecki et Simon Gaiser) et fournit des instructions détaillées pour importer la clé maître (QMSK), importer les clés du secpack et vérifier les signatures avec gpg. Aucune action supplémentaire n'est requise au-delà de la mise à jour normale, et la vulnérabilité a été découverte par Tim C.

Show HN: Prove your code produced your claims without making reviewers rerun it

KVeritas enregistre et signe cryptographiquement l'exécution d'expériences pour lier un résultat publié au code, au matériel et au moment exact qui l'ont produit. L'outil est multiplateforme, fourni comme binaire statique sans dépendances d'exécution, avec des fonctionnalités Linux avancées pour la cartographie fichiers/processus et l'attribution matérielle. Pendant les runs, des lignes de protocole standardisées et un échantillonneur télémetrique (HMCA) capturent métriques, phases, artefacts et attestent la cohérence d'exécution. Une attestation de coût de calcul contrôle la compatibilité des FLOPs, du temps et de la mémoire avec la capacité matérielle, tandis que des preuves à divulgation sélective permettent d'exposer un fichier ou une entrée sans révéler l'ensemble. Le résultat est un PDF signé vérifiable via un service web, accompagné d'outils pour init/run/seal/verify/checkout, le client étant sous Apache-2.0 et le serveur d'attestation sous AGPL-3.0.

Dad’s Custom Atari Peripherals

Son père était ingénieur électricien de formation et de vocation, et il a conçu (et breveté) le premier système d'évitement de collisions aériennes ainsi qu'un indicateur de vitesse transsonique. Avec ce bagage il a assemblé dans le sous-sol un ordinateur en kit CMOS KIM-I, auquel il a ajouté une sortie RF pour une télévision RCA et un port série connecté à un Teletype de surplus. Ils ont ensuite eu une console Fairchild Channel F puis une Atari 400 — d'abord avec lecteur cassette puis avec lecteur de disquettes — et la famille passait des heures à jouer à des titres comme un jeu Star Trek et Decathlon, surnommé le « joystick killer ». Pour améliorer le confort et les performances, il a récupéré et bricolé des périphériques industriels : un joystick mono-axe robuste pour les courses, un contrôleur à tubes de mercure incliné, il a ressoudé des manettes Fairchild et il a adapté un clavier Atari 800 au boîtier de l'Atari 400 via un câble Centronix 24 broches. Tous ces périphériques sont aujourd'hui stockés dans la collection du Computer Museum of America à San Diego State University, et une photo montre l'auteur avec le KIM-I de son père.

Racter (1984)

Le livre présente un texte entièrement produit par un ordinateur, relu pour l'orthographe mais sinon non édité. L'auteur explique l'intérêt d'engendrer une prose non contingente à l'expérience humaine afin d'explorer ce que produirait une « pensée » machine. Le programme, écrit en BASIC sur un micro Z80 de 64K, incorpore des règles grammaticales anglaises, la conjugaison des verbes, le pluriel et le genre des noms ainsi que des variables choisies aléatoirement. Par le recours à des directives syntaxiques et à des variables récurrentes, la sortie n'est pas préprogrammée et peut donner l'apparence d'une cohérence réfléchie malgré sa génération automatique. L'édition signale en outre que les textes étaient accompagnés de collages et renvoie à une édition complète dans l'anthologie correspondante.

Startup Anti-Patterns

Un anti-pattern est un processus, une structure ou un mode d'action couramment utilisé qui, bien qu'il paraisse initialement approprié et efficace pour résoudre un problème, entraîne plus de conséquences néfastes que bénéfiques. Simeon Simeonov a présenté l'intérêt d'identifier les anti-patterns des startups en 2013, notant que si les raisons exactes du succès des startups sont difficiles à déterminer, les entrepreneurs et investisseurs expérimentés identifient bien les facteurs de l'échec. Les anti-patterns des startups augmentent les risques inhérents à l'activité, et la poursuite d'un anti-pattern n'entraîne pas nécessairement une faillite immédiate mais contribue à brouiller la stratégie et à entraver l'exécution. Avec Itamar Novick de Recursive Ventures, Simeonov développe une série consacrée aux anti-patterns, illustrée par des exemples concrets tirés de leurs expériences en tant que fondateurs et investisseurs dans plus de cent startups et des témoignages de fondateurs invités. La liste, en cours d'élaboration, recense de nombreux anti-patterns nommés et précise qu'ils ne surviennent pas tous à la même fréquence ni n'ont la même propension à provoquer l'échec d'une startup.

How would you know whether an ancient culture had zero?

Les étiquettes de colonnes des tableurs (A–Z, puis AA–AZ...) correspondent à la base bijective 26, qui diffère de la base 26 habituelle car elle n'a pas de zéro. En archéologie, si l'on découvre seulement cinq symboles numériques et des suites comme ☂︎☘︎☢︎ ou ★★☂︎, il est difficile de déterminer s'ils appartiennent à une base 5 ordinaire ou à une base bijective 5. L'absence d'un symbole en position initiale pourrait suggérer qu'il représente zéro, mais il faudrait un échantillon très important pour en être sûr, car vingt nombres suffisent rarement à tirer cette conclusion. Avec davantage de symboles (par exemple 20), il reste difficile, sans contexte, de distinguer entre base b et base bijective b par des seules statistiques, et la preuve décisive serait de trouver un symbole signifiant exactement la valeur b, ce qui invaliderait une base standard. On pourrait éventuellement utiliser des lois statistiques comme la loi de Benford sur un très grand corpus pour inférer l'ordre des chiffres, mais la méthode la plus réaliste pour décoder un système numérique ancien est de trouver des nombres en contexte, par exemple des listes consécutives ou des inscriptions dont la valeur est connue.

Commercially Available Bike Generators Are Not Sustainable (2011)

Pédaler sur un vélo stationnaire pour produire de l'électricité est souvent inefficace et peu durable en raison des pertes multiples dans la conversion et le stockage de l'énergie. Les pertes dans le moteur/générateur, le régulateur, le convertisseur et la batterie s'additionnent à environ 42 à 67,5 %, obligeant à pédaler deux à trois fois plus fort ou plus longtemps que pour alimenter mécaniquement le même appareil. L'utilisation d'un vélo classique sur un support avec entraînement par friction, l'absence de volant d'inertie et la position du cycliste ou le type de pneus réduisent encore l'efficacité par rapport à des machines pédalées conçues d'origine. La fabrication et le remplacement réguliers des batteries impliquent une énergie incorporée importante qui peut annuler l'avantage écologique et même rendre certains générateurs plus consommateurs d'énergie qu'ils n'en produisent. La solution recommandée est d'alimenter mécaniquement les appareils quand c'est possible et, pour obtenir de l'électricité, de concevoir des générateurs pédalés dédiés plus efficaces et moins dépendants d'électronique et de batteries remplaçables.