HN Digest
Briefing personnel.

Edition quotidienne

Lire vite. Garder l'essentiel.

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

4119 articles Page 1/412 Sans filtre

06:08

Human typing habits and token counts

Les tokenizers segmentent le texte selon des motifs fréquents et les fournisseurs facturent par token, si bien que fautes de frappe, abréviations et espaces superflus peuvent modifier la facture sans changer l'intention. Des erreurs d'orthographe et des formes rares fragmentent souvent les segments, multipliant les tokens pour le même mot (par exemple «template» vs «tempalte»). Les remplissages conversationnels (fillers, hésitations, formules de politesse) et les ponctuations expressives augmentent aussi le nombre de tokens sans contribuer à la tâche. Les abréviations et raccourcis ne sont pas toujours plus économiques, et des éléments techniques comme UUID, horodatages, URL ou chemins de fichier peuvent créer des fuites de tokens importantes. Les modèles peuvent retrouver le sens malgré ces variations, mais la facturation ne le fait pas, de sorte que les habitudes de frappe ont désormais un impact financier.

06:08

The surprisingly complex journey to text-selectable client-side generated PDFs

Le texte décrit des paramètres typographiques modifiables tels que la taille de base en pixels, la hauteur de ligne et l'échelle des tailles. Il précise des réglages détaillés pour les blocs de code, les citations et les graphiques, avec la possibilité de les remplacer individuellement. D'autres options concernent les marges, l'espacement des éléments, les retraits, l'épaisseur des bordures et la taille de police en em. L'enregistrement des paramètres se fait dans ~/.sdocs/styles.yaml et nécessite l'outil sdocs-dev, installé via npm link depuis la racine du projet ou npm i -g pour la CLI globale. Le projet indique être entièrement privé, open source avec vérification du serveur, fournit un dépôt GitHub et soumet l'utilisation à des conditions d'utilisation.

06:08

Man finds $1M worth of Yu-Gi-Oh cards in a dumpster

Un homme a suscité l'attention de la communauté Yu-Gi-Oh en vendant en ligne des centaines de feuilles non découpées et des cartes rares qu'il affirme avoir trouvées dans une benne. Les photos et les annonces étaient souvent floues et incohérentes, ses ventes ont été erratiques et certains acheteurs ont reçu des articles endommagés. Des collectionneurs ont rapidement suspecté un vol plutôt qu'une trouvaille fortuite, d'autant que Konami contrôle strictement la distribution et demande la destruction des feuilles non officielles ou des erreurs d'impression. La mère du vendeur est intervenue publiquement pour le défendre, tandis que des rumeurs et des témoignages indiquent que de nombreuses feuilles ont été écoulées localement à des prix importants. Le montant total recueilli et l'origine exacte des feuilles restent incertains, Konami n'a pas confirmé l'affaire, et l'événement soulève des questions juridiques et éthiques sur la provenance et la revente de ces objets de collection.

06:08

ClojureScript Gets Async/Await

Une nouvelle version de ClojureScript a été publiée et les utilisateurs sont invités à lire attentivement les notes de version. ClojureScript cible désormais ECMAScript 2016 et introduit le hint ^:async qui fait émettre par le compilateur des fonctions JavaScript async. L'exemple donné montre l'utilisation d'await dans des fonctions annotées ^:async, y compris dans des tests, et illustre l'interopération avec Promise. Cette amélioration répond à une forte demande de la communauté pour une meilleure interopérabilité JavaScript et évite souvent d'ajouter des dépendances supplémentaires pour les APIs modernes et bibliothèques. La version contient d'autres corrections et changements listés dans les notes et les contributeurs, dont Michiel Borkent, sont remerciés.

06:08

GeoJSON

Ce format sert à encoder diverses structures de données géographiques. Un exemple montre un objet Feature contenant une géométrie de type Point avec des coordonnées et des propriétés. Il prend en charge les types géométriques Point, LineString, Polygon, MultiPoint, MultiLineString et MultiPolygon. Les objets géométriques assortis de propriétés sont appelés Feature et les ensembles de ces objets sont regroupés dans des FeatureCollection. En 2015, un groupe de travail de l'IETF a standardisé le format, aboutissant à la RFC 7946 publiée en août 2016 qui remplace la spécification de 2008.

06:07

Jetro – JSON query engine for Rust (jq-like DSL with compilation and VM)

Jetro est un moteur d'expressions compact pour interroger et façonner des données JSON, qui accepte des octets JSON et renvoie un serde_json::Value. L'API publique est minimale et orientée octets, centrée sur Jetro::from_bytes(bytes) et collect(expr), avec simd-json activé par défaut. Le langage permet de combiner requête et construction de formes en une expression unique, supportant filtres, projections, agrégats, groupements, opérations de patch et correspondance de motifs. L'exécution est optimisée par une planification consciente de la demande et une matérialisation paresseuse, offrant des chemins spécialisés comme index structurels, pipelines streamés, vues empruntées, voies columnaires ou un fallback VM. La documentation principale est le Jetro Book, complétée par une référence de syntaxe, des exemples, des notes de sécurité, un changelog et un CLI pour usage interactif.

06:07

Podman rootless containers and the Copy Fail exploit

La vulnérabilité CVE‑2026‑31431 (Copy Fail), divulguée le 29 avril, permet à un utilisateur local non privilégié d'obtenir un shell root en exécutant un script Python fourni. Podman facilite l'exécution « rootless » en utilisant des namespaces utilisateurs par utilisateur, ce qui fait que le root du conteneur est mappé à un UID non privilégié sur l'hôte et offre une isolation meilleure que le modèle daemon root de Docker. L'article explique comment le mapping des UID/GID et les capacités Linux déterminent les privilèges dans le conteneur et montre que faire tourner les processus en tant qu'utilisateur non root et supprimer les capacités réduit significativement la surface d'attaque. Des mesures complémentaires comme --security-opt=no-new-privileges, --cap-drop=all, systèmes de fichiers en lecture seule, limites de ressources, images minimales, pare‑feu et seccomp atténuent l'impact d'une compromission, mais le correctif du noyau reste nécessaire pour bloquer l'exploit. La conclusion recommande une défense en profondeur : corriger le noyau, durcir les images et la configuration des conteneurs, et ne pas considérer les conteneurs comme la seule frontière de sécurité, tout en notant que Podman rootless apporte un meilleur isolement que la configuration Docker par défaut.