HN Digest
Briefing personnel.

Lire vite.
Garder l'essentiel.

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

11567 articles Page 959/1157 Sans filtre

Show HN: Email.md – Markdown to responsive, email-safe HTML

Vous avez reçu un code de confirmation à saisir dans votre fenêtre de navigateur pour vous connecter. Le code de confirmation est DFY-X7U. Si vous n'avez pas demandé cet e-mail, vous pouvez l'ignorer en toute sécurité. L'e-mail provient d'Acme Inc. et indique l'adresse 123 Main St. Un lien de désinscription est fourni pour arrêter la réception de ces messages si nécessaire.

Why did the chicken cross the road?

Le texte mêle réflexions sur la mort et les croyances posthumes à une analyse de la manière dont l'humour naît du décalage entre attente et déception. Il retrace l'histoire de la blague du poulet, née comme anti-blague au XIXe siècle, et la relie aux premiers accidents de voiture, notamment celui d'Henry H. Bliss en 1899. L'auteur décrit comment l'avènement de l'automobile a transformé les routes en zones dangereuses et comment la culture populaire a intégré ces risques dans des chansons et des plaisanteries. Le texte présente également le jeu du poulet en théorie des jeux, expose sa matrice de gains et souligne les problèmes moraux lorsque les asymétries de pouvoir rendent le risque inégal. Enfin, l'essai aborde la mondialisation culturelle et industrielle en évoquant Taylor Swift, la fabrication chinoise et les événements de la place Tian'anmen pour montrer comment tragédies, humour et consommation se retrouvent liés.

Intel Device Modeling Language for virtual platforms

DML est un langage spécifique au domaine permettant d'écrire des modèles de périphériques fonctionnels ou au niveau transactionnel rapidement pour des plates-formes virtuelles, et son compilateur (DMLC) génère du code C ajusté à un simulateur. Pour construire DMLC, il faut une installation et un projet Simics, puis récupérer le dépôt dans modules/dmlc et lancer make dmlc (ou bin\make dmlc sous Windows), et les tests unitaires s'exécutent avec make test-dmlc ou bin/test-runner --suite modules/dmlc/test. Plusieurs variables d'environnement facilitent le développement local, notamment DMLC_DIR pour pointer vers <votre-projet>/<hosttype>/bin, T126_JOBS pour exécuter des tests en parallèle, DMLC_PATHSUBST pour réécrire les chemins d'erreur vers les sources, et PY_SYMLINKS pour créer des symlinks Python au lieu de copier les fichiers. D'autres variables contrôlent le comportement du compilateur et du débogage, par exemple DMLC_DEBUG affiche les traces d'exception, DMLC_CC permet de remplacer le compilateur lors des tests, DMLC_PROFILE active l'auto-profilage, et DMLC_DUMP_INPUT_FILES produit une archive .tar.bz2 contenant toutes les sources DML pour reproduire un problème en dehors du contexte de build. La variable DMLC_GATHER_SIZE_STATISTICS génère un fichier se terminant par -size-stats.json contenant des triples [tot_size, emplacement, num] pour chaque méthode afin d'identifier les points de génération de code coûteux et proposer des remèdes (déclarer la méthode comme shared, extraire le corps d'une boucle, etc.) pour réduire la taille du code et accélérer la compilation.

Fun with CSF firmware (RK3588 GPU firmware)

Le GPU Arm v10 (par exemple Mali-G610) requiert un firmware mali_csffw.bin qui s'exécute sur un microcontrôleur intégré pour prendre en charge des fonctions précédemment gérées par le noyau. Le microcontrôleur est un Cortex-M7 sans FPU qui peut tourner à haute fréquence (jusqu'à ~990 MHz sur certains RK3588) et gère sa propre organisation mémoire via un MPU et des mappings. L'accès mémoire combine trois couches distinctes — l'MPU du MCU, les mappings du MCU et le MMU du GPU — chacune ayant des responsabilités, des alignements et des gestionnaires de faute différents. La communication entre MCU, noyau et userspace s'effectue par interruptions et "doorbells", et des régions MMIO et de mémoire partagée servent aux tracebuffers, commandes et contrôles matériels. Le fichier firmware contient des entrées mem/trace/configuration et métadonnées, et l'auteur décrit des outils et expérimentations (panFWost, panloader), le débogage via gdb, MicroPython sur le MCU et des essais d'utilisation de Rust.

Show HN: DuckDB community extension for prefiltered HNSW using ACORN-1

Ce fork de duckdb-vss ajoute la recherche HNSW filtrée en intégrant l'algorithme ACORN-1 pour appliquer les prédicats pendant la traversée du graphe. Contrairement à l'extension upstream qui filtre après que l'index HNSW a renvoyé des résultats (ce qui donne souvent moins de lignes que le LIMIT demandé), ce fork pousse les filtres dans la traversée pour garantir le nombre correct de résultats avec une forte recall. L'approche utilise une expansion ACORN-1 en deux sauts pour récupérer la connectivité sous filtrage sélectif, une commutation de stratégie basée sur la sélectivité (>60% post-filtre, 1–60% ACORN-1, <1% scan exact), et un seuil d'expansion par nœud inspiré de la règle 90% de Lucene. Les paramètres hnsw_acorn_threshold (par défaut 0,6) et hnsw_bruteforce_threshold (par défaut 0,01) sont configurables, l'optimiseur détecte automatiquement WHERE + ORDER BY distance + LIMIT, et les requêtes préparées avec vecteur paramétré sont supportées. Sur un benchmark de 228k films avec embeddings 768D, ACORN-1 a renvoyé systématiquement 10/10 résultats pour des filtres peu sélectifs (par ex. japonais ~3% ou coréen ~1%) alors que l'upstream retournait 0–1/10, et des limites existent comme le support uniquement des FLOAT et la nécessité que l'index tienne en RAM.