HN Digest
Briefing personnel.

Edition quotidienne

Lire vite. Garder l'essentiel.

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

7182 articles Page 424/719 Sans filtre

06:02

Understanding Clojure's Persistent Vectors, pt. 1 (2013)

Les vecteurs persistants de Clojure, conçus par Rich Hickey, sont des structures arborescentes équilibrées et ordonnées où chaque modification crée un nouveau vecteur sans modifier l'ancien. Les opérations de mise à jour (assoc, update-in) se font par copie de chemin : on clone les nœuds le long du chemin vers la feuille et on remplace la valeur dans la feuille copiée. L'ajout en fin (conj) suit trois cas : il y a de la place dans la feuille droite, il faut générer des nœuds intermédiaires inexistants, ou la racine déborde et on crée une nouvelle racine, l'overflow se produisant quand la taille est une puissance du facteur de branchement. La suppression de la dernière valeur (pop) est symétrique : on copie le chemin et enlève l'élément si possible, on supprime et propage les nœuds vides vers le haut, et on remplace la racine par son unique enfant si nécessaire. Avec un facteur de branchement élevé (32 dans Clojure) les arbres restent très peu profonds et les opérations sont en pratique quasi-constantes (O(log_32 n)), et des optimisations comme la queue, les transients et subvec seront traitées dans des articles ultérieurs.

06:01

A communist Apple II and fourteen years of not knowing what you're testing

Un rapport de KPMG indique que 70 % des dirigeants britanniques continueront de financer l'IA sans preuve d'efficacité et propose de présenter ces dépenses comme un « facilitateur stratégique » de transformation d'entreprise. Parallèlement, OpenAI a gelé Stargate UK en invoquant le coût de l'électricité et le contexte réglementaire, AMD a signalé une baisse de performance de Claude Code et le PDG d'AWS a relativisé l'idée d'un emballement autour de l'IA. L'auteur oppose cette confiance coûteuse dans de vastes projets d'IA à la rétro-ingénierie, qui consiste à démonter des systèmes existants pour en comprendre le fonctionnement et privilégie la compréhension plutôt que la promesse. Il raconte l'histoire du Правец (Pravetz), dérivé de l'Apple II par l'ingénieur Ivan Marangozov et produit en masse en Bulgarie, qui a diffusé l'informatique dans les écoles et formé une génération d'ingénieurs par l'adaptation matérielle. L'analyse des bancs d'essai ISCAS-85 par Hayes et ses collègues a révélé les fonctions réelles de circuits longtemps anonymes, et l'auteur conclut que le diagnostic et la synthèse formelle, fondés sur les mathématiques et l'analyse structurée, produisent une compréhension que n'offre pas l'approche basée sur la simple puissance de calcul.

06:01

Fixing a 20-year-old bug in Enlightenment E16

La rédactrice en chef, utilisatrice d'Enlightenment E16, relate la correction d'un bug ancien remontant à 2006 dans la base de code. L'ouverture d'un PDF particulier provoquait un gel déterministe du bureau, et l'analyse avec gdb a montré des échantillons embourbés dans le cache de polices d'imlib2 avec l'appel constant à TextstateTextFitMB. La cause était une boucle de troncature par ellipse médiane qui utilisait une recherche de type Newton sans limite d'itérations et avec une tolérance stricte, entraînant une oscillation entre deux essais et l'absence de convergence. La correction applique trois mesures défensives — plafonnement de l'itération à 32, plancher de nuke_count à 1 et plancher de cw à 1 — garantissant la terminaison et évitant les divisions par zéro ou les étapes dégénérées. L'article fournit un cas reproductible (un WM_NAME très long) et conclut par une réflexion sur les risques des logiciels récents et la valeur de maintenir soi‑même un logiciel ancien et stable face aux problèmes de chaîne d'approvisionnement.

06:01

Installing OpenBSD on the Pomera DM250 Writerdeck

Cet article fournit des notes et des images prêtes à l'emploi pour installer OpenBSD-current sur les modèles japonais du Pomera DM250, en précisant que le support nécessite un noyau et une image U-Boot personnalisés non encore fusionnés upstream. L'auteur met en garde contre des risques tels que la décharge complète de la batterie rendant le périphérique incapable de redémarrer ou de charger, et la nécessité éventuelle d'une récupération via câble USB ou ouverture du boîtier. Il décrit en détail la préparation d'une carte SD d'installation avec un partitionnement GPT incluant une partition EFI, la copie du bootloader OpenBSD, de uboot.img, du script _sdboot.sh, des images d'installation et du firmware bwfm. La procédure d'installation explique comment démarrer en mode recovery pour que _sdboot.sh flashe U-Boot sur l'eMMC, lancer l'installateur OpenBSD depuis bsd.rd, remplacer le noyau par le noyau personnalisé et désactiver reorder_kernel. Des sections complémentaires expliquent la configuration post-installation (copie du fichier nvram et contrôle des LED), la création d'un ramdisk d'installation personnalisé et les options de récupération via mode MaskROM, xrock et restauration d'images.

06:00

Rare concert recordings are landing on the Internet Archive

Aadam Jacobs, un fan de musique de Chicago, a enregistré les concerts qu'il assistait depuis les années 1980 et a accumulé une archive de plus de 10 000 cassettes. Conscient que les bandes vont se dégrader, il a accepté que des bénévoles de l'Internet Archive, une bibliothèque numérique à but non lucratif, numérisent ses cassettes. Environ 2 500 enregistrements ont déjà été publiés, comprenant des raretés comme une performance de Nirvana de 1989 et d'autres captations d'artistes influents tels que Sonic Youth, R.E.M., Phish, Liz Phair, Pavement et Neutral Milk Hotel. Malgré un équipement d'origine souvent médiocre, des ingénieurs bénévoles ont restauré et nettoyé les fichiers numériques pour améliorer la qualité audio. Le processus implique des volontaires qui utilisent des platines à cassette anciennes pour convertir les bandes, puis organisent, étiquettent et identifient parfois les morceaux oubliés.

06:00

Not all elementary functions can be expressed with exp-minus-log

L'article d'Odrzywołek affirme que la fonction E(x,y) := exp x - log y, avec les variables et la constante 1, permet d'exprimer toutes les fonctions dites « élémentaires » et donne des constructions pour de nombreuses opérations et constantes. Sous la définition explicite d'« élémentaire » donnée dans l'article (une table de 36 symboles et certains ajustements de la fonction log), le résultat est correct et ingénieux. Mais la notion standard de fonction élémentaire inclut aussi les adjoints algébriques, c'est‑à‑dire les racines de polynômes, et les termes EML ne peuvent en général pas les exprimer. L'argument technique utilise la théorie de Galois topologique de Khovanskii pour montrer que le groupe de monodromie de toute expression construite par exp et log est résoluble, tandis que la racine générique du quintique a un groupe de monodromie S5 non résoluble. On en déduit que la classe des termes EML est strictement contenue dans la classe standard des fonctions élémentaires, donc E(x,y) n'est pas un générateur universel au sens classique.

06:00

Dependency cooldowns turn you into a free-rider

Les cooldowns de dépendances gagnent en popularité mais reposent sur un effet de passager clandestin et font peser des coûts importants sur les autres acteurs. Ils sont difficiles à déployer de façon cohérente entre les nombreux gestionnaires de paquets et peuvent être contournés accidentellement, ce qui réduit leur efficacité. L'auteur propose des files d'attente de publication centralisées qui séparent publication et distribution et permettent des contrôles automatisés, des scans externes et des tests bêta volontaires pendant la période d'attente. Ces files d'attente limitent la surprise des nouvelles versions, réduisent le pouvoir des identifiants de publication et sont particulièrement pertinentes pour les contenus exécutables par IA, comme le markdown utilisé par les agents LLM. Le financement pourrait venir de sponsors institutionnels ou de services payants d'examen accéléré pour les projets commerciaux, permettant de soutenir l'infrastructure de sécurité sans compromettre le processus.

06:00

Claude Code Routines

Une routine est une configuration enregistrée de Claude Code (prompt, un ou plusieurs dépôts et des connecteurs) empaquetée pour s'exécuter automatiquement sur l'infrastructure cloud gérée par Anthropic. Une routine peut être déclenchée par un ou plusieurs triggers : planification récurrente (au minimum toutes les heures), point de terminaison API protégé par un token, ou événements GitHub filtrables, et ces types peuvent être combinés. Les routines s'exécutent comme des sessions cloud autonomes avec accès aux dépôts, scripts shell, connecteurs et variables d'environnement sélectionnés, mais elles appartiennent au compte utilisateur et agissent au nom de cet utilisateur. On crée et gère les routines depuis l'interface web, l'application Desktop (tâche distante) ou le CLI (/schedule pour créer, lister, mettre à jour et lancer), mais la création de triggers API et GitHub se fait depuis le web. Chaque routine consomme l'allocation d'utilisation et le quota quotidien de l'abonné, peut être limitée par un plafond journalier et, par défaut, ne peut pousser que sur des branches préfixées claude/ à moins d'autoriser les pushes non restreints.

06:00

Saying Goodbye to Agile

L'auteur critique le mouvement Agile en affirmant que sa définition a toujours été vague et mal comprise. Il soutient que le manifeste d'Agile (2001) contient surtout des platitudes et des prescriptions difficiles à appliquer en pratique. Il rappelle que les idées itératives et la participation client existaient déjà depuis les années 1970 dans des travaux tels que ceux de Royce et de Bell et Thayer. L'arrivée des grands modèles de langage a relancé l'importance des spécifications, favorisant une pratique axée sur la documentation précise pour produire du code correct. Il conclut qu'il est temps de réévaluer les pratiques héritées d'Agile et d'adopter des approches plus claires et éprouvées.