HN Digest
Briefing personnel.

Lire vite.
Garder l'essentiel.

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

11659 articles Page 188/1166 Sans filtre

Emacs Bedrock 2.0

Bedrock est un kit de démarrage minimal pour Emacs reposant sur deux fichiers init que l'on copie et modifie, et la nouvelle version nécessite Emacs 31, rompant la compatibilité avec Emacs 29. La configuration de base évite les paquets tiers et fournit des configurations d'exemple pour des paquets populaires rangées dans un dossier extras afin que l'utilisateur importe ce dont il a besoin. Parmi les changements importants, tous les fichiers utilisent lexical-binding, use-package installe désormais automatiquement les paquets, embark remplace which-key pour l'aide, wgrep est retiré au profit du mode intégré de modification de grep, et la configuration de tree-sitter, d'isearch, de *Completions* et de repeat-mode a été améliorée. La mise à jour corrige aussi des problèmes comme le respect des couleurs de thème et le message de démarrage, et d'autres petites améliorations figurent dans le changelog. Il n'existe pas de mise à jour automatique : les utilisateurs doivent comparer leur commit d'origine avec la branche principale et appliquer manuellement les modifications, et l'auteur remercie la communauté pour les retours et contributions.

Some more thoughts on random_page_cost

L'auteur réévalue le paramètre random_page_cost en montrant que des disques rotatifs donnent un coût aléatoire bien plus élevé que les SSD et que la valeur par défaut de 4,0 n'était pas le coût brut. Il explique que des tentatives d'augmenter random_page_cost ont parfois dégradé les performances parce que ce paramètre compense des lacunes du modèle de coût, notamment l'ignorance de la mémoire et des effets de cache. Le modèle de coût actuel ne tient pas correctement compte de la mémoire réellement utilisée par un plan ni de la notion d'ensemble actif, de sorte qu'un scan séquentiel peut évincer beaucoup plus de données en cache qu'un parcours par index. Le planificateur estime les coûts comme si les données étaient froides et sans concurrence, ce qui peut favoriser des plans élargissant l'ensemble actif et saturant la bande passante tandis que les index scans restent plus localisés. La recommandation est de considérer random_page_cost comme un proxy pour ces effets complexes et de le régler au cas par cas en se basant sur la surveillance des requêtes (par exemple via pg_stat_statements) plutôt que sur des mesures d'E/S brutes.

Show HN: Stuxnet – A reconstructed source code of the infamous cyber-weapon

Ce dépôt propose une reconstruction strictement pédagogique et destinée à la recherche du ver Stuxnet, issue du reverse engineering des échantillons binaires découverts en 2010. Le code reconstitué reproduit la logique originale et les vecteurs d'attaque en organisant les modules principaux comme le chargeur, l'élévation de privilèges, les bibliothèques S7, les rootkits noyau et le composant de sabotage des automates. Le malware cible l'environnement Siemens (WinCC, Step 7) et les automates S7 pour injecter du code dans les blocs OB1/OB35 afin d'altérer la fréquence des variateurs et provoquer des dégâts mécaniques. La propagation s'effectue via des clés USB (exploits LNK), des partages réseau et un dispositif P2P, tandis que des pilotes kernel (mrxcls.sys, mrxnet.sys) assurent le masquage et la persistance. Le dépôt est fourni sous licence GPLv3 avec un avertissement clair: le code est destiné à l'analyse statique en environnement isolé à des fins académiques et de défense, et ne doit pas être utilisé à des fins malveillantes.

Everything is free now, so why not a floating orb in my IDE

L'auteur a développé un IDE personnalisé intégrant des agents et des terminaux. Le compositeur fonctionne avec ses raccourcis clavier personnalisés, comme dans ses éditeurs. Les volets gauche et droit sont relativement statiques, tandis que la zone centrale concentre l'activité. Cette zone centrale est inutile mais considérée comme addictive à fixer. L'auteur propose d'y afficher un orbe flottant ou du bruit visuel pour favoriser la relaxation plutôt que la lecture de caractères.

Colorlight 5A-75B: A dive into a popular low-cost ECP5 (FPGA) development board

La carte Colorlight 5A-75B, initialement conçue comme carte réceptrice pour affichages LED, a été adoptée comme carte de développement FPGA peu coûteuse équipée d'un ECP5 et compatible avec l'outil open-source Yosys. Vendue autour de 20–25 USD, elle intègre un FPGA Lattice LFE5U25-F, deux interfaces Gigabit Ethernet, 16 Mbit de SDRAM et 16 Mbit de Flash pour le bitstream, ainsi que huit ports de sortie HUB75, une horloge 25 MHz, une LED et un bouton. La carte a été entièrement rétroconçue par la communauté avec schéma et brochages disponibles, ce qui facilite son utilisation par des hackers et makers. Pour flasher des bitstreams il suffit de souder un entête JTAG 4 broches et d'utiliser un adaptateur JTAG open source avec la chaîne Yosys, mais l'absence d'entrées directes impose de remplacer les drivers 74HC245 par des convertisseurs bidirectionnels comme le SN74CBT3245A ou d'autres solutions. La 5A-75B constitue une option intéressante pour découvrir la programmation FPGA open-source à moindre coût, tout en offrant des ressources utiles comme l'Ethernet et la SDRAM pour des projets plus avancés.

There's a new "Google Jail" for independent wikis

L'équipe a récemment transféré les wikis Overwatch et Fortnite hors de Fandom et les a hébergés sur des sous-domaines de weirdgloop.org. Depuis une mise à jour de Google en mars 2024, les nouveaux domaines voient en général uniquement leur page principale apparaître dans les résultats de recherche, ce qui prive les wikis de la majorité du trafic provenant de Google. Les sous-domaines rattachés à un domaine déjà établi n'ont pas ce problème et s'indexent correctement, d'où la décision temporaire d'utiliser des sous-domaines existants pour éviter la « Google Jail ». Les options examinées pour les nouveaux wikis incluent conserver un domaine racine malgré le risque, négocier un sous-domaine auprès de l'éditeur du jeu, ou héberger temporairement sur un sous-domaine d'un domaine avec de l'autorité, en privilégiant souvent la troisième solution. Les responsables espèrent pouvoir rétablir ultérieurement les domaines attendus via des redirections 301 une fois que le référencement sera établi, et appellent la communauté et les spécialistes SEO à partager des données sur ce phénomène.

Trusting-Trust Attack against an Entire Linux Distribution

L'article démontre qu'une variante de l'attaque "trusting-trust" de Ken Thompson n'est pas limitée aux compilateurs. Les auteurs construisent une attaque complète autour de GNU strip en manipulant uniquement des fichiers ELF compilés. Dans le bootstrap de la distribution NixOS, un strip altéré placé dans le binaire initial implante une charge utile qui se propage d'une génération de strip à la suivante et persiste dans l'environnement final après que la graine binaire sort de la clôture des dépendances. Sur une révision réelle de nixpkgs, l'attaque réussit à construire un installateur graphique complet et compromet presque tous ses binaires, permettant des comportements malveillants arbitraires des paquets subvertis. Les résultats indiquent que des utilitaires de construction ordinaires qui n'inspectent ni ne génèrent de code source peuvent constituer des vecteurs pour des attaques de la chaîne d'approvisionnement logicielle.

The VMs Powering Mobile Agents (Instinct, Claude Code)

Les agents d'IA sont désormais exécutés hors des ordinateurs locaux sur des machines virtuelles accessibles depuis des téléphones, ce qui permet aux fournisseurs de fournir l'infrastructure d'exécution. Claude Code fonctionne dans une microVM Firecracker avec un PID 1 personnalisé (process_api), un harness Bun en lecture seule et envoie l'inférence hors de la VM via SSE vers api.anthropic.com, tandis que le volume racine persiste entre sessions. Instinct loue des sandboxes E2B qui bootent Ubuntu complet et un bureau XFCE, mais conserve la mémoire de l'agent comme un dépôt git Markdown dans /memory poussé en bundle vers S3 et exécute les appels tools/GraphQL côté serveur. Les modèles et l'accès authentifié restent majoritairement hors de la sandbox : Claude scelle davantage l'opérateur dans le guest, tandis qu'Instinct garde le "cerveau" et les profils de navigateur côté serveur avec des credentials temporaires et des baux de cloud browser. Les approches diffèrent sur l'isolation, la persistance et la surface d'outils, mais convergent vers des machines jetables pour l'exécution et des couches durables côté serveur pour la mémoire et les identités.