HN Digest
Briefing personnel.

Lire vite.
Garder l'essentiel.

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

11935 articles Page 292/1194 Sans filtre

Building an (almost) fully self-hosted, sandboxed, agentic software factory

L'auteur a construit un environnement de développement autonome et quasi-entièrement auto‑hébergé où un agent LLM a, à partir d'une seule consigne, créé un dépôt, écrit l'application et ses tests, fait passer la CI au vert, provisionné Postgres et déployé l'application en HTTPS sans intervention supplémentaire. L'infrastructure combine deux serveurs domestiques, Coolify comme PaaS Docker, Forgejo pour Git et CI, Hermes comme assistant agentique, Firecrawl pour le scraping, ainsi que Tailscale et Pi‑hole pour l'accès réseau et la résolution DNS. Pour fournir des certificats SSL privés sans exposer d'enregistrements A publics, il utilise la validation DNS‑01 via l'API Porkbun intégrée à Traefik/Coolify afin d'obtenir des certificats Let's Encrypt accessibles uniquement depuis le tailnet. La démonstration principale montre la création complète d'une application de suivi calorique en SvelteKit avec Drizzle, Tailwind et Postgres, incluant la génération du code, les tests, la CI et le déploiement automatisé, puis une correction de bug après un seul retour. L'auteur souligne néanmoins les risques résiduels — suppression de données, fuite de clés, consommation de tokens et requêtes externes non souhaitées — et propose des améliorations comme isolation réseau via VLAN, scoping et rotation des clés, sauvegardes automatisées et approbations humaines pour actions sensibles.

Giving an LLM your prod database is easy. Taking access away is the hard part

Les connexions en lecture seule ne constituent pas une politique d'accès car elles empêchent les écritures mais n'empêchent pas l'agent de lire des données sensibles. Il faut protéger l'énoncé SQL complet — y compris CTE, sous-requêtes, unions, COMMENT et CALL — et non seulement la requête principale. DeepSQL traduit des politiques écrites en anglais en listes blanches de schémas et en listes de refus de tables/colonnes, puis les applique à l'introspection, au filtrage d'exécution et aux API de schéma pour éviter les fuites de noms. La fonctionnalité "View as" permet à un administrateur de vérifier rapidement une politique en voyant la base comme un autre utilisateur, et elle doit aussi appliquer correctement ces contraintes à l'agent. Les fuites de données étant irréversibles, DeepSQL met l'accent sur la prévention, s'ouvre en self-hosted et la version 1.2.0 est disponible pour déploiement.

What happens when a GPU reads memory

L'article suit, par mesures et reverse engineering, le trajet d'une instruction SASS LDG.E issue d'un kernel vadd sur une RTX 4090 pour comprendre comment un chargement global traverse le matériel. L'instruction résout d'abord 32 adresses 64 bits dans les registres, passe par l'unité LSU et le coalescer qui agrège les 32 requêtes de 4 octets en quatre secteurs contigus de 32 octets puis adresse la ligne L1 de 128 octets, L1 étant virtuellement indexée et taguée et quatre voies. Sur un miss L1 la traduction d'adresse intervient via un TLB de 16 entrées (miss ≈ 4,4 ns) puis la requête physique traverse le crossbar vers une des 36 tranches L2 (chaque tranche 2 MiB, 16‑way) choisie par une fonction de hachage complexe, un hit L2 coûtant ≈127 ns. En cas d'absence en L2 la requête est routée vers l'un des 12 contrôleurs mémoire qui pilotent les puces GDDR6X, ouvrent une rangée de 1 KiB (activate) et effectuent quatre lectures de colonne dont les bursts PAM4 sont désérialisés puis remontent via L2 et L1 jusqu'aux registres. Les mesures montrent des latences ≈15,4 ns pour un hit L1, ≈127 ns pour L2 et ≈255 ns pour un aller‑retour DRAM (≈660 cycles), et l'étude met en évidence la contention entre SMs et la complexité des fonctions d'indexation et d'affectation.

Show HN: Rex, a parallel functional language for scientific workflows

Le langage est une langue fonctionnelle pure et statiquement typée conçue pour exprimer des workflows scientifiques et de traitement de données comme des transformations pures sur des valeurs immuables. Il s'appuie sur un magasin adressé par contenu (BLAKE3) qui identifie blobs et arbres immuables par leur hash, facilitant l'immutabilité, la déduplication et le transfert sans chemins partagés. Les opérations externes sont exposées via des modules d'outils typés (FFmpeg, ImageMagick, QPDF, Poppler, Gnuplot, Graphviz, etc.) qui compilent des requêtes en plans d'exécution fermés et vérifient les sorties avant import dans le magasin. L'évaluation pure et le système de types Hindley–Milner permettent le parallélisme implicite, la vérification statique des raccordements et rendent le langage adapté à la génération et à la réparation automatique de workflows par des programmes ou des modèles de langage. Le runtime propose une exécution locale ou isolée par conteneurs Docker avec règles strictes d'isolation, une CLI et une API d'intégration Rust, et vise actuellement à fournir un runtime mono‑hôte sûr, composable et inspectable plutôt qu'un ordonnanceur distribué.

Autolith: A programming agent with a live runtime

Un agent de programmation s'exécute dans un terminal et travaille directement dans le dépôt, pouvant lire et modifier des fichiers, chercher dans l'espace de travail, lancer des commandes et exécuter des tests. Il intègre un runtime Common Lisp (SBCL) vivant que l'agent peut inspecter, tester et étendre à chaud, avec enregistrement des mutations dans un journal. L'outil fonctionne en un seul processus avec des outils explicites pour le système de fichiers, le shell, la recherche et la mémoire, et il utilise le service Codex pour la génération de code. L'installation cible Linux x86-64 via binaire autonome ou Nix (recommandé), propose un mode immuable pour l'inspection en lecture seule et exécute le code généré avec les privilèges de l'utilisateur sans prétendre être un sandbox de sécurité. L'architecture sépare les différents états (conversations, mémoires, agendas, commits d'image privés, générations, images de travail et récupération) et fournit des scripts de reconstruction et des commits privés pour la reprise et la persistance.

I ran Photoshop on a £0.60 computer chip

L'auteur décrit comment il a fait fonctionner Photoshop et d'autres logiciels d'époque en émulation d'un ancien Macintosh sur une puce Raspberry Pi RP2350 coûtant environ 60 pence. Il souligne que, ajusté pour l'inflation, un Macintosh équivalent des années 1990 coûterait aujourd'hui plusieurs milliers de livres, ce qui illustre combien l'informatique est devenue beaucoup moins chère. L'expérience révèle l'attrait d'interfaces simples et peu distrayantes comme WordPerfect et soulève la question du "minimal viable modern computer" offrant des fonctionnalités essentielles avec une faible consommation. L'auteur imagine des appareils très légers et durables, éventuellement à écran e-paper et alimentés par énergie solaire, adaptés à la lecture, à la rédaction, à la musique et à des usages hors réseau intensif. Il note aussi les limites techniques face au web moderne et aux réseaux mobiles, propose des solutions de conversion et souligne l'intérêt pour des ordinateurs respectueux de la vie privée inspirés des mouvements Solarpunk et Permacomputing.

Tumble Forth – from assembly to OS with C compiler (2023)

L'auteur, Virgil Dupras, présente une série d'articles destinée à guider des développeurs web vers la programmation bas-niveau. Le but est d'élargir les perspectives sur l'informatique via des arcs narratifs progressifs menant à des objectifs concrets, avec une touche d'humour dans chaque épisode. Le lecteur ciblé est un programmeur à l'aise en développement mais peu expérimenté en bas-niveau, et l'auteur invite à poser des questions si certains passages sont difficiles. Le premier arc décrit un chemin partant du matériel nu sur PC pour implémenter un Forth, migrer vers Dusk OS puis développer un compilateur C partiel, le tout à partir de zéro. La table des matières détaille les étapes prévues, couvrant l'initiation au matériel, la gestion des secteurs, la création d'un shell de mots, la gestion des piles et les premières étapes de compilation.