HN Digest
Briefing personnel.

Edition quotidienne

Lire vite. Garder l'essentiel.

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

6522 articles Page 204/653 Sans filtre

06:01

A Good Lemma Is Worth a Thousand Theorems (2007)

L'auteur soutient que, bien que les théorèmes soient importants, les lemmes — souvent faciles à démontrer une fois énoncés — peuvent avoir une valeur dépassant celle des théorèmes profonds. Il cite en particulier le lemme de régularité de Szemerédi, dont des extensions hypergraphiques ont été utilisées dans la percée de Green et Tao et qui a joué un rôle lié à au moins deux médailles Fields. On souligne que Szemerédi est surtout célèbre pour son théorème, mais que son lemme est considéré comme encore plus significatif. Plusieurs remarques et citations sont rapportées, notamment la remarque de Paul Taylor selon laquelle « les lemmes font le travail tandis que les théorèmes prennent le crédit », ainsi qu'un passage d'Aigner et Ziegler décrivant qu'un bon lemme doit être applicable largement, évident une fois vu et esthétiquement satisfaisant. Des ajouts ultérieurs mentionnent aussi une critique d'un économiste sur les lemmes compliqués et l'idée finale que les observations peuvent être encore plus importantes que les lemmes.

06:01

WriteUp: 16 Bytes of x86 that turn Matrix rain into sound

Un programme de 16 octets en assembleur x86 réel pour DOS exploite la mémoire vidéo et le port 0x61 pour générer à la fois une image fractale de type Sierpinski et un signal audio. Le code appelle int 10h et positionne DS sur 0xB800 pour utiliser le tampon texte (octet caractère + octet attribut) comme espace de calcul prérempli. En remplaçant l'addition par XOR et en isolant le bit 1, la progression suit la règle 60 des automates cellulaires, reproduite mathématiquement via le théorème de Lucas. La boucle avance effectivement de -56 octets par itération (équivalant spatialement à +12 colonnes), ce qui cisaille le motif en dix colonnes verticales et, du fait du cycle plus long, abaisse la fréquence audio d'une octave. L'effet visuel et sonore dépend de l'état mémoire initial laissé par le BIOS ou l'émulateur, et une initialisation explicite garantirait la reproductibilité au prix d'un dépassement de la limite de 16 octets.

06:01

Two EA-18 fighter jets collide at Mountain Home airshow, pilots ejected safely

Deux avions de chasse de la Marine américaine EA-18G Growler sont entrés en collision et se sont écrasés dimanche lors d'une démonstration aérienne à la base de Mountain Home, dans l'Idaho. Les quatre membres d'équipage ont éjecté en toute sécurité et ont été évalués par du personnel médical, sans blessés parmi les spectateurs ou sur la base. Des vidéos de témoins montrent les parachutes des pilotes s'ouvrir tandis que les appareils chutent et explosent au sol, et la base a été placée en confinement pendant l'intervention. Les organisateurs et responsables militaires ont salué la rapidité et le professionnalisme des secours et ont insisté sur la priorité donnée à la sécurité. Les autorités ont annoncé des fermetures de routes et une enquête en cours, rappelant les efforts continus pour améliorer la sécurité des meetings aériens après des accidents passés.

06:00

Jank now has its own custom IR

Jank dispose désormais d'une représentation intermédiaire (IR) personnalisée, adaptée aux sémantiques de Clojure, stockée en structures C++ et exportable en données Clojure pour le débogage. Cette IR est basée sur la forme SSA et un graphe de flot de contrôle, ce qui facilite les analyses, les optimisations et la génération de C++ dont les variables reflètent les noms IR. L'équipe a commencé la chaîne d'optimisations en ajoutant l'inlining des opérations arithmétiques, en éliminant des instructions IR inutiles, en corrigeant l'accès global à nil et en introduisant le pointeur taggé pour représenter les entiers sans allocation. Sur le benchmark récursif fibonacci, ces améliorations ont réduit le temps d'exécution de 5 522 ms à 114 ms, le plaçant devant les ~200 ms mesurés sur la JVM pour le même cas. Les travaux se poursuivront sur d'autres benchmarks et l'auteur invite la communauté à contribuer, rejoindre les discussions ou le soutenir financièrement pour poursuivre le développement à plein temps.

06:00

Show HN: Semble – Code search for agents that uses 98% fewer tokens than grep

Semble est une bibliothèque de recherche de code conçue pour les agents, qui retourne instantanément les extraits de code pertinents en utilisant environ 98% moins de tokens que grep+read. Elle indexe et recherche un dépôt complet en moins d'une seconde en CPU seul, avec un indexage ~200× plus rapide et des requêtes ~10× plus rapides qu'un transformeur spécialisé pour le code, sans clés API ni services externes. Semble s'exécute comme serveur MCP ou outil en ligne de commande et s'intègre aux agents populaires (Claude Code, Cursor, Codex, OpenCode, etc.) ainsi qu'à une API Python pour un usage programmatique. La recherche combine des embeddings statiques Model2Vec et BM25, fusionnés par Reciprocal Rank Fusion puis réordonnés par des signaux spécifiques au code (poids adaptatif, boost de définitions, stemming d'identifiants, cohérence de fichier et pénalités de bruit). Sur des benchmarks multi-langages, Semble atteint 99% de la qualité d'un modèle CodeRankEmbed Hybrid tout en indexant ~218× plus vite et en répondant ~11× plus vite, fournit des statistiques d'économie de tokens, et est distribué sous licence MIT.

06:00

Prolog Coding Horror

Le texte met en garde les programmeurs Prolog contre des pratiques qui rendent les programmes défectueux, coûteuses et sans bénéfice. Il identifie deux défauts principaux : produire des réponses incorrectes et omettre des solutions voulues, ces dernières étant souvent causées par des constructions impures et non monotones comme !/0, (->)/2 et var/1. L'utilisation de l'état global via assertz/1 et retract/1 ou l'impression directe sur le terminal crée des dépendances implicites et empêche de raisonner, tester et réutiliser le code comme relation. L'exemple du "horror_factorial" illustre les problèmes des constructions bas niveau comme (is)/2 qui entraînent des pertes de solutions et des erreurs d'instanciation pour les requêtes générales. La solution proposée est de rester dans le sous-ensemble pur et monotone de Prolog, d'utiliser des contraintes (CLP(FD)), dif/2, if_/3, des arguments pour passer l'état et des descriptions pures de sortie afin d'obtenir des programmes plus généraux et faciles à enseigner.

06:00

I turned a $80 RK3562 Android tablet into a Debian Linux workstation

Ce projet fournit un système de build qui génère une image Debian 12 Bookworm bootable sur carte SD pour la tablette Doogee U10 équipée du SoC Rockchip RK3562, permettant de démarrer Debian sans déverrouiller le bootloader et de revenir à Android en retirant la carte SD. L'ensemble a été ré-implémenté par rétro-ingénierie sans BSP ni documentation constructeur, développé avec l'aide de Claude, Codex et Antigravity (Google Gemini) en s'appuyant sur des dépôts open source Firefly RK3562. La plupart des périphériques sont fonctionnels (écran, tactile 10 points, Wi‑Fi, Bluetooth, audio, microphone, capteurs, carte SD et USB OTG), l'accélération 3D via Panfrost est partielle, les caméras sont opérationnelles mais nécessitent un réglage ISP, et le NPU est actif pour l'inférence LLM locale via RKLLM avec Qwen3‑0.6B mesurant de meilleures performances que Qwen2.5 sur cet appareil. Le dépôt contient scripts, overlays et paquets nécessaires pour compiler U‑Boot, le noyau et le rootfs Debian, le build se fait sur un hôte x86‑64 Linux avec dépendances listées, l'image finale s'écrit sur la carte SD (xz | dd) et des mises à jour OTA sont prises en charge via des paquets update.tar.gz. Parmi les problèmes connus figurent une jauge de batterie pouvant afficher 0% après extinction prolongée (corrigée au démarrage par un service), des couleurs de caméra à calibrer, des comptes par défaut chaos/root à modifier au premier démarrage, et le projet est publié sous licence MIT en 2026.

06:00

GenCAD

Les auteurs présentent un modèle conditionné par image qui génère à la fois un solide 3D et l'historique paramétré complet des commandes CAD. Ils soulignent que la complexité des structures CAD comme les B-reps rend l'apprentissage difficile et que les représentations courantes (maillages, voxels, nuages de points) sacrifient précision et modifiabilité. La méthode produit des séquences de commandes paramétriques convertibles en modèle solide via un noyau géométrique et s'appuie sur un cadre d'apprentissage de représentations multi-modalités. L'architecture combine quatre étapes : un encodeur transformeur autorégressif pour les latents de commandes, un modèle d'apprentissage contrastif pour les représentations jointes image-commande, un modèle de diffusion latente conditionné par l'image, et un décodeur pour reconvertir les latents en séquences de commandes. Ce travail affirme progresser vers une modélisation 3D plus précise et modifiable à partir d'images, ce qui peut améliorer l'automatisation des processus de conception et de fabrication.

06:07

HTML Lists

Resume indisponible pour cet article.