HN Digest
Briefing personnel.

Edition quotidienne

Lire vite. Garder l'essentiel.

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

3748 articles Page 126/375 Sans filtre

06:03

Writing Lisp is AI resistant and I'm sad

L'auteur utilise des IA agentiques au travail pour ses tâches de DevOps et a mis en place une configuration autour d'OpenRouter et du CLI Goose. Pour faciliter le développement REPL, il a créé tmux-repl-mcp en Python afin que l'IA exécute des commandes dans le REPL plus directement, ce qui a réduit les coûts et accéléré les tests. L'expérience montre que les modèles d'IA produisent beaucoup mieux du code Python (ou Go) que du Lisp, en partie à cause de plus de données d'entraînement et de l'inadéquation des API d'IA à l'interaction REPL. Cette dynamique économique pousse l'auteur à envisager de réécrire son outil dans un langage plus entraîné par l'IA malgré sa préférence personnelle pour Lisp. Il compare cette transformation aux routes en planches remplacées par le chemin de fer et s'interroge sur les adaptations nécessaires pour que Lisp survive et fonctionne mieux avec les IA.

06:02

Ruckus: Racket for iOS

L'application permet d'exécuter des programmes Racket localement sur iPhone et iPad et d'afficher la sortie en temps réel. Elle propose une coloration des parenthèses selon la profondeur et un appariement des crochets. L'indentation intelligente prend en charge les formes Racket comme define, let et cond et ajoute une rangée de clavier pour les crochets et mots-clés courants. Plusieurs thèmes de couleurs sont disponibles, notamment Catppuccin Mocha, Dracula, Gruvbox, Nord, One Dark et Solarized. L'éditeur inclut la recherche et le remplacement, l'ouverture de fichiers .rkt depuis l'app Fichiers et l'exécution automatisable via Raccourcis et widgets sur l'écran d'accueil.

06:02

Advice to young people, the lies I tell myself (2024)

L'auteur insiste sur l'importance de choisir activement sa vie, d'assumer la responsabilité de ses décisions et de lâcher l'anticipation pour mieux vivre le présent. Il recommande de développer une forte agence personnelle, d'élargir son champ de perception pour "faire sa chance" et de se positionner comme la solution aux problèmes des recruteurs. La confiance se construit par la répétition et la pratique — la "mémoire du succès" acquise en s'exposant régulièrement à des défis et en agissant malgré la peur. Sur le plan intime, il préconise de ne pas s'identifier uniquement à son travail, de simplifier les systèmes, de cultiver la bonté envers les proches et de pratiquer les rôles familiaux avant d'en avoir besoin. Enfin, il aborde la gestion financière et stratégique en conseillant d'utiliser les "potions" disponibles, de privilégier quelques bonnes décisions plutôt que beaucoup de mauvaises, de parler d'argent ouvertement et de valoriser son temps et ses relations.

06:02

Show HN: Contrapunk – Real-time counterpoint harmony from guitar input, in Rust

Il s'agit d'un générateur d'harmonie MIDI en temps réel et d'un convertisseur guitare‑vers‑MIDI permettant de jouer de la guitare et d'entendre du contrepoint instantanément. Le moteur d'harmonie applique de véritables règles de contrepoint avec huit modes (Palestrina, Bach, Jazz, Free), 28 modes d'échelle et un voicing déterministe. L'entrée guitare intègre la détection de hauteur en temps réel, le suivi des attaques et l'auto‑calibration pour une interaction réactive. Développé en Rust, il fonctionne partout (application native via Tauri, navigateur via WebAssembly ou en mode serveur) et revendique une latence inférieure à 10 ms adaptée au jeu en direct. Le projet est open source sous licence MIT, gratuit sans inscription, et implémente des règles de conduite des voix comme le rejet des quintes parallèles, la prévention des croisements et des règles d'espacement.

06:02

Zml-smi: universal monitoring tool for GPUs, TPUs and NPUs

L'outil fournit des diagnostics et une surveillance en temps réel des accélérateurs matériels (GPU, TPU, NPU) sur plusieurs plateformes telles que NVIDIA, AMD, Google TPU et AWS Trainium. Il offre un affichage interactif de la performance via l'option --top et affiche des métriques d'utilisation, de température et de mémoire ainsi que des informations sur les processus consommateurs. Conçu pour être complètement sandboxé, le programme n'exige que le pilote et la GLIBC sur la machine cible et embarque ou charge des bibliothèques fournisseur pour accéder aux métriques. Les métriques hôtes comprennent modèle CPU, utilisation, mémoire, uptime et load average, tandis que les métriques par processus affichent PID, index de dispositif, utilisation et ligne de commande. Le recueil des métriques spécifiques utilise NVML pour NVIDIA, AMD SMI (avec une astuce d'interception de fopen64 et un fichier amdgpu.ids sandboxé) pour AMD, l'endpoint gRPC local pour TPU et une API privée embarquée pour AWS Trainium.

06:02

Show HN: I made open source, zero power PCB hackathon badges

Des badges sans alimentation active conçus pour le hackathon Overglade à Singapour intègrent un SoC RP2040, une mémoire flash de 4 Mo et un pilote d'encre électronique. Ils offrent une NFC passive pour le tap, une NFC active optionnelle, un support e-ink consommant zéro courant pour les fonctions principales et 20 broches GPIO accessibles via des headers. Le circuit imprimé est une carte simple à deux couches avec remplissages de masse et des formes et motifs CAO dessinés pour assurer une symétrie esthétique. La programmation se fait par USB-C en installant le bootloader MicroPython du Pi Pico, en utilisant Thonny pour téléverser le firmware et en modifiant un fichier config.json ainsi que les bitmaps si nécessaire. Les PCB se fabriquent facilement en série (environ 5 $ par carte plus 5 $ pour l'écran e-ink, MOQ ≈ 100 $ pour 5 en PCBA), l'auteur a utilisé JLC pour l'assemblage et remercie l'équipe et les contributeurs du HackClub.

06:01

I used AI. It worked. I hated it

L'auteur se déclare fortement opposé aux modèles génératifs mais a choisi d'en utiliser un dans le cadre de son travail d'expert en sécurité IA afin de mieux les comprendre et de tester leurs risques. Pour migrer l'institut TTI hors de Teachable et Discord, il a développé un générateur de certificats (webhook, PDF Typst avec QR et page de vérification) en utilisant Claude Code, Rust pour le backend, Svelte pour le frontend et l'API Typst pour les PDFs. Le processus de développement a reposé sur le "Plan Mode" du modèle, le développement piloté par les tests (TDD), des fichiers Markdown de suivi (TASKS.md, TODO.md, FINDINGS.md) et un contrôle humain minutieux de chaque modification. Le résultat a fonctionné en production en trois semaines et a même permis d'identifier et corriger des vulnérabilités, mais le travail a été éprouvant, ponctué d'hallucinations du modèle et de risques (DoS, chaîne de temps, path traversal) nécessitant une vigilance humaine constante. L'auteur conclut que ces outils peuvent être utiles de façon limitée et encadrée mais posent des problèmes éthiques, environnementaux et juridiques (vol de propriété intellectuelle, affaiblissement des compétences, caractère addictif), et il préfère les éviter tout en n'excluant pas leur usage responsable par d'autres.

06:01

Rubysyn: Clarifying Ruby's Syntax and Semantics

L'article propose une syntaxe alternative de type Lisp pour Ruby qui préserve la sémantique de Ruby et vise une grammaire complète, triviale à analyser et sans sucre syntaxique, tout en clarifiant des cas limites mal documentés. Il détaille la syntaxe complète des littéraux de tableau, explique le comportement du "constructing array splat" (l'astérisque) et sa désucreisation via une fonction array_splat, et rappelle que [] est lui‑même du sucre et que nil.to_a et les hashes ont des comportements par défaut. Les règles d'affectation sont précisées : l'assignation simple déclare des variables initialisées à nil avant d'évaluer le côté droit, l'assignation multiple opère sur un tableau résultant avec gestion des discordances de taille, support d'un seul splat à gauche et cas particulier du splat nu. Le système définit des primitives sémantiques comme les synvars, les labels et les tailcalls pour implémenter le flux de contrôle (seq, if, while) avec collecte statique des déclarations, et exprime break/next/redo, les lambdas, l'appel dynamique (call) et le return via des labels de retour implicites. Enfin, la spécification couvre les classes, modules, méthodes et singletons en associant def à des lambdas, distingue $$self et $$receiver, décrit send et un sucre d'opérateurs, règle l'ambiguïté variable versus appel sans arguments, et restreint la syntaxe des littéraux de chaînes, symboles et hash.