HN Digest
Briefing personnel.

Edition quotidienne

Lire vite. Garder l'essentiel.

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

5732 articles Page 3/574 Sans filtre

06:05

Adaptive PDFs

Le PDF est un format visuel qui enregistre des instructions de dessin et, bien que la spécification prévoie le PDF balisé, la plupart des fichiers rencontrés ne contiennent pas cette structure sémantique. La spécification PDF inclut depuis la version 1.4 une propriété (ActualText) permettant d'associer du texte de remplacement au contenu marqué, texte que les renderers ignorent mais que les extracteurs retournent s'ils la gèrent. En appliquant ce texte de remplacement au niveau du flux de contenu pour contenir du Markdown structuré, on obtient un même fichier qui s'affiche normalement pour les humains tout en produisant du Markdown hiérarchique propre pour les machines. Des essais avec PyMuPDF, Poppler, des outils en ligne et des LLMs ont montré que l'extraction restituait le Markdown embarqué, que le nombre de tokens reste proche mais que la densité d'information par token augmente, et que le surcoût de taille est généralement en pourcentage à un chiffre. Le code est disponible sur GitHub et l'auteur propose de poursuivre le développement, notamment via une extension Google Docs pour faciliter la création de ces PDF adaptatifs.

06:05

Introduction to UEFI HTTP(s) Boot with QEMU/OVMF

L'article explique que PXE/TFTP est ancien, difficile à configurer et peu sûr, et que l'UEFI moderne supporte le démarrage via HTTP(S) comme alternative. En Qemu/OVMF il faut fournir un générateur de nombres aléatoires (par ex. -device virtio-rng-pci) pour activer la pile réseau, et on peut accélérer le boot en désactivant le PXE legacy via -fw_cfg. On peut injecter une URI de démarrage dans les variables UEFI avec virt-fw-vars pour obtenir un démarrage reproductible sans dépendre du DHCP. Le démarrage HTTPS exige un magasin de certificats de confiance fourni à OVMF (par ex. conversion du store système avec p11-kit et -fw_cfg etc/edk2/https/cacerts) et l'usage de builds DEBUG pour obtenir des logs TLS exploitables. Un obstacle fréquent est qu'EDK II impose un niveau de sécurité OpenSSL élevé (security level 3) qui peut refuser certains certificats serveur, ce qui se résout par un patch du firmware ou par l'utilisation de certificats compatibles.

06:05

SkillSpector

SkillSpector est un outil d'analyse de sécurité pour les compétences d'agents IA qui identifie vulnérabilités et comportements potentiellement malveillants avant installation. Il détecte 64 motifs répartis en 16 catégories couvrant les injections de prompt, l'exfiltration de données, l'escalade de privilèges, la chaîne d'approvisionnement, l'abus d'outils, le code dangereux, le suivi de taint et des signatures YARA. L'analyse se déroule en deux étapes : une analyse statique rapide (regex et AST) suivie, en option, d'une évaluation sémantique par LLM pour réduire les faux positifs et fournir des explications lisibles. Les fonctionnalités incluent des entrées multi-format (dépôts Git, URL, zip, répertoires, fichiers), des recherches CVE en direct via OSV.dev avec bascule hors-ligne, plusieurs formats de sortie et un score de risque 0-100 assorti de recommandations. Le projet propose une installation via environnement virtuel et Makefile, une API Python et une CLI, et comporte des limites telles que l'incapacité à analyser les images, le code compilé ou le comportement d'exécution dynamique.

06:04

A generic dynamic array in C that stores no capacity and needs no struct

Le code présente une manière de réaliser un tableau dynamique générique en C en utilisant un tableau de deux pointeurs, le premier stockant la longueur et le deuxième pointant vers les données. Par exemple, int *vec[2] = { 0 }; représente un tableau dynamique d'entiers vide et (uintptr_t)vec[0] contient la longueur tandis que vec[1] pointe vers le tableau de données. Une macro vec_push ajoute une valeur à la fin du tableau dynamique et renvoie true en cas de succès, le code utilisant des expressions de bloc (extension GNU) dans un contexte C23. L'approche évite la création de structures nommées et stocke la longueur dans un pointeur interprété comme uintptr_t, ce qui repose sur un comportement dépendant de l'implémentation quant à la taille et à la représentation. La capacité n'est pas conservée mais recalculée à la demande : lorsque la longueur est nulle ou une puissance de deux, realloc est appelé pour la puissance de deux suivante, ce qui rend difficile la réservation manuelle de plus d'éléments car une réserve plus grande peut être ignorée lors d'un push.

06:04

A key remapping daemon for Linux

keyd est un démon système pour Linux qui remappe les touches en utilisant les primitives noyau (evdev, uinput) afin d'offrir un remappage global et performant. Le projet vise la rapidité, la simplicité, la cohérence des modificateurs et la modularité via un modèle client-serveur extensible et des configs intuitives. Il offre des fonctionnalités avancées similaires à du firmware personnalisé comme les couches, la surcharge de touches tap/hold, le support Unicode et la configuration par clavier, ainsi qu'un mappage applicatif indépendant du serveur d'affichage. L'installation se fait par compilation ou via des paquets pour de nombreuses distributions et la configuration se gère par des fichiers texte avec rechargement dynamique et séquences de secours en cas d'erreur. La documentation couvre les dépendances optionnelles, les interactions avec libinput, les différences avec des outils comme xmodmap ou kmonad, et encourage les contributions.

06:04

Slightly reducing the sloppiness of AI generated front end

L'auteur cherche à générer rapidement des programmes personnels d'apparence correcte en utilisant des agents IA malgré son manque de sens esthétique. Il a expérimenté différentes demandes de style pour une application web simple et constate que la plupart des styles produisent une esthétique qu'il qualifie de "slop", souvent superposée sur d'autres styles. Demander explicitement un rendu de type Qt a réduit presque totalement cette impression de "slop" selon ses observations. Pour illustrer, il a demandé à ChatGPT de créer une application de type 270-to-win pour visualiser les projections du collège électoral de 2030 à partir d'un article d'Axios et d'une image fournie. Il a depuis transposé d'autres logiciels personnels au style Qt et sollicite des retours ainsi que des expérimentations sur d'autres styles ou lignes directrices de design générables par IA.

06:04

TycoonLE: A Jax reinforcement learning environment for long-horizon planning

Cet environnement de renforcement simule une économie logistique pour des tâches de planification à long terme où des agents gèrent le capital, construisent des routes, déplacent des cargaisons, gèrent la dette et optimisent des retours différés. Il est conçu pour étudier la légalité des actions, les interfaces de décision par candidats, le timing du financement, les récompenses retardées, la variation procédurale et la production de traces d'audit réutilisables. L'API propose une interface de forme fixe où les agents choisissent parmi des candidats valides de routes, de financement et d'attente, et les rollouts sont compatibles avec les transformations JAX telles que jit, vmap et scan. Une interface de relecture rend les politiques inspectables via les choix de routes, les flux de cargaison, les comportements de financement et les métriques de récompense, de score et de profit dans le temps, et un complément nommé TycoonBench fournit un rapport de benchmark en ligne. Le dépôt contient des instructions d'installation et d'exécution (Python 3.11/3.12, pip, npm), des exemples rapides, des tests, un exemple d'entraînement PPO, ainsi que des informations de citation et des crédits artistiques.

06:04

Tectonic: A modernized, complete, self-contained TeX/LaTeX engine

Ce logiciel convertit des fichiers TeX en PDF et est destiné aux documents nécessitant une typographie précise, notamment ceux contenant beaucoup d'équations mathématiques. Il télécharge automatiquement les fichiers de support nécessaires et utilise une technologie de bundles reproduisibles, avec de larges ressources hébergées par le Dataverse Project. Le programme gère automatiquement les boucles TeX/BibTeX, n'écrit pas les fichiers intermédiaires par défaut, s'exécute silencieusement en ligne de commande et prend en charge OpenType et Unicode grâce à XeTeX. Le moteur est extrait en une bibliothèque autonome réutilisable, le code provient d'un fork moderne de l'implémentation WEB2C et le développement est ouvert sur GitHub en utilisant notamment le langage Rust. Le logiciel est distribué sous licence MIT, s'appuie sur des travaux antérieurs (LaTeX, TeXLive, XeTeX, etc.) et certains composants restent sous d'autres licences open source.