HN Digest
Briefing personnel.

Edition quotidienne

Lire vite. Garder l'essentiel.

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

7134 articles Page 1/714 Sans filtre

06:08

Protobuf-py: Protobuf for Python, without compromises

Buf annonce protobuf-py, une implémentation complète de Protocol Buffers écrite en Python qui passe la suite de conformité binaire et JSON pour proto2, proto3 et editions et prend en charge extensions, options personnalisées, champs inconnus, messages dynamiques et types bien connus. La bibliothèque génère du code Python lisible et typé, stocke les messages comme objets Python (__slots__) sans dépendances d'exécution et fonctionne en pur Python 3.10+, avec un accélérateur Rust optionnel qui rend les performances comparables à upb. Elle vise à offrir à la fois l'exhaustivité d'une implémentation conforme au standard et une API idiomatique pour Python, en évitant les compromis des autres options comme le paquet de Google, conçu pour C++/Java, ou betterproto, qui est incomplet. En gardant les données comme objets Python, la lecture de champs devient un simple accès d'attribut, les fichiers générés sont lisibles et typés, les imports sont relatifs et les types se résolvent via un registre explicite plutôt que par un pool global. Les benchmarks montrent qu'upb gagne en parsing isolé mais protobuf-py dépasse upb sur des charges réelles end-to-end, l'accélérateur Rust étant optionnel avec des roues précompilées disponibles, et le projet, développé par l'équipe Buf, fournit documentation, code et instructions pour l'essayer.

06:08

Stellantis to sell small Fiat Topolino EV for $13,995 in U.S.

Stellantis a ouvert les commandes aux États-Unis pour la Fiat Topolino électrique, affichée à partir de $13,995. Le véhicule est un quadricycle ressemblant à une petite voiture mais fonctionnant plutôt comme une voiturette, capable d'atteindre 19 mph et d'offrir une autonomie jusqu'à 46 miles. Un kit de conversion gratuit permet de relever la vitesse maximale à 25 mph pour la rendre légale sur certaines routes, mais des frais de destination obligatoires de $990 portent le prix client à $14,985. La Topolino est produite au Maroc et sera disponible en quantités limitées cette année en version hardtop avec portes ou Dolce Vita décapotable avec une corde à la place des portes. Stellantis indique que la Topolino vise à proposer un style de vie simple et joyeux, alors que les petites Fiat ont historiquement eu de faibles ventes sur le marché américain.

06:08

AI boosts research careers but narrow the span of ideas explored: study

Une analyse de 41,3 millions d'articles couvrant six disciplines montre que les chercheurs qui utilisent des outils d'IA publient en moyenne trois fois plus d'articles, reçoivent presque cinq fois plus de citations et accèdent plus tôt à des postes de responsabilité que leurs pairs non utilisateurs. Cependant, ces travaux assistés par l'IA occupent un espace intellectuel plus restreint, se concentrent sur des problèmes riches en données et suscitent moins d'engagements de suivi entre études, réduisant la diversité des sujets explorés. Les auteurs, dirigés par le sociologue James Evans, relient ce phénomène à une dynamique historique où les incitations de carrière orientent les scientifiques vers des questions plus sûres et constatent que l'adoption de l'IA semble intensifier cette tendance. Parmi les conséquences observées figurent une hausse de manuscrits de faible qualité et de fraudes produites à grande échelle, ainsi que la tendance de l'IA à automatiser les parties les plus praticables de la recherche plutôt qu'à ouvrir de nouveaux territoires. Les chercheurs recommandent de repenser les structures de récompense et de concevoir des outils et des politiques qui encouragent l'utilisation de l'IA pour explorer de nouvelles questions et préserver la diversité et l'originalité de la science collective.

06:08

The four horsemen behind Postgres outages

L'article identifie quatre problèmes courants de Postgres qui provoquent des incidents en production : VACUUM et débordement des identifiants de transaction, limites de connexion et modèle par processus, mauvais plans de requête, et gestion du JSON. Les VACUUMs consomment beaucoup d'E/S et le suivi sur 32 bits des identifiants de transaction peut forcer l'arrêt de la base si le nettoyage prend du retard, et pgrust envisage d'utiliser des identifiants 64 bits ou une architecture sans VACUUM (undo log) pour réduire ces risques. Postgres crée un processus par connexion ce qui impose une limite de connexions et rend le parallélisme coûteux, tandis que pgrust a été conçu dès le départ sur un modèle basé sur des threads en Rust pour améliorer la scalabilité et la sécurité. Le planificateur de requêtes de Postgres peut choisir des plans catastrophiques sans contrôle fin, et pgrust vise à développer un planificateur adaptatif capable de détecter des régressions de performance, d'analyser les changements de plan et de corriger automatiquement les choix. Postgres ne collecte pas de statistiques utiles ni de compression pour les colonnes JSON, ce qui provoque de mauvais plans et une surconsommation d'espace, et pgrust prévoit d'ajouter des statistiques JSON et des mécanismes de compression tout en poursuivant la compatibilité et la stabilité.

06:07

Show HN: Mindwalk – Replay coding-agent sessions on a 3D map of your codebase

Le projet rend visible la façon dont un agent de programmation a exploré et modifié un dépôt en retraçant les fichiers touchés pour montrer sa compréhension et son empreinte. L'interface représente le dépôt comme une carte nocturne où les fichiers s'illuminent selon les actions (recherche, lecture, édition), mettant en évidence erreurs, churn et phases d'édition. Une application Go lit localement les journaux Claude Code et Codex et sert une interface web (React/Three.js), accessible via des commandes CLI pour servir, ouvrir, construire et tracer des sessions. La visualisation propose des vues arbre/terrain, états de contact colorés, une timeline avec marques cliquables, un inspecteur de visites et des raccourcis clavier pour contrôler la lecture. Le back-end sépare deux artefacts (trace normalisée et citymap déterministe) que le serveur combine, le projet est open source sous licence MIT et fournit des instructions pour contribuer.

06:07

Unauthenticated RCE in Motorola's MR2600 Router

L'auteur a découvert une exécution de code à distance non authentifiée sur le routeur Motorola MR2600 en analysant le firmware officiel. La vulnérabilité combine une validation incorrecte du format SEAMA lors du téléchargement (les développeurs testent les octets bruts du multipart au lieu d'extraire le champ fichier) et une contournement de l'authentification pour la requête SOAP de flashage dû à une comparaison incohérente des chemins. L'exploit consiste à téléverser une image SEAMA brute via /WEBCGI1/prog.fcgi?method=/cgi-bin/fwupload.cgi puis à appeler LoadFirmwareValidation en ajoutant un paramètre pour bypasser la vérification, ce qui déclenche mtd_write et redémarre le routeur avec le firmware malveillant. L'attaque est exploitable par un acteur situé sur le réseau local et peut être déclenchée depuis Internet si la gestion à distance est activée, 41 appareils MR2600 étant visibles publiquement sur Shodan au moment de l'analyse. Après des tentatives de signalement à Motorola Mobility et Motorola Solutions qui se sont renvoyé la responsabilité et vu l'état end-of-life du modèle, l'auteur a choisi la divulgation publique.

06:07

Croc: Securely transfer files and folders between two computers

Le projet fournit un outil CLI permettant à deux ordinateurs de transférer simplement et de manière sécurisée des fichiers et dossiers via un relais. Il offre un chiffrement de bout en bout basé sur un accord de clé authentifié par mot de passe (PAKE), la reprise des transferts interrompus, le support multiplateforme et la possibilité d'utiliser un proxy comme Tor. L'installation est proposée pour de nombreux systèmes et gestionnaires de paquets (macOS, Windows, diverses distributions Linux, NixOS, Docker, Android) et il est possible de compiler depuis la source en Go. L'utilisation se fait par envoi et réception avec une code-phrase partagée, et de nombreuses options permettent de personnaliser le comportement (phrase personnalisée, exclusion de dossiers, pipes, QR code, paramètres de presse-papiers, mode silencieux, algorithmes et courbes). Un relais auto-hébergé est disponible (y compris via Docker) avec configuration de ports et mot de passe, et le projet reconnaît plusieurs contributeurs ayant aidé à son évolution.

06:07

Circular Obstacle Pathfinding (2017)

L'article explique comment utiliser l'algorithme A* sur un graphe construit à partir d'obstacles circulaires en représentant les trajectoires par des segments rectilignes (surfing) et des arcs (hugging). Les arêtes de surfing sont les bitangentes internes et externes entre paires de cercles, calculées par des formules trigonométriques, puis filtrées si d'autres cercles bloquent la ligne de vue en mesurant la distance point-segment. Les arêtes de hugging relient les points tangents sur un même cercle et sont générées entre tous les points d'appui, puis éliminées si des intersections de cercles montrent qu'elles sont obstruées. L'article aborde les cas où les cercles se touchent ou se recouvrent (ajustements des formules et du clamp pour u), propose l'expansion de Minkowski pour gérer un acteur de rayon non nul et recommande la génération différée des arêtes pendant l'exécution d'A* pour réduire le coût combinatoire. Pour améliorer l'efficacité, on supprime les arêtes de hugging créant des cuspides en séparant chaque nœud selon le sens de parcours et on élimine les chemins partiels dont les arêtes de surfing se croisent, afin de conserver l'optimalité tout en réduisant l'exploration.

06:07

Since Chromium 148, Math.tanh is now fingerprintable to link underlying OS

Les fonctions mathématiques renvoient parfois des bits de différence selon la bibliothèque mathématique de l'OS (glibc, libsystem_m, UCRT), ce qui permet d'identifier le système à partir d'appels comme Math.tanh. La fuite est apparue quand V8 a cessé d'utiliser son fdlibm embarqué pour tanh (Chrome 148+), et s'observe aussi parce que CSS et WebAudio appellent directement les libm hôtes, exposant des différences par site d'appel. Quatre pièges compliquent la falsification: seules certaines fonctions fuient, les chemins JS/CSS/WebAudio sont distincts, macOS a deux implémentations (libsystem_m vs Accelerate) et l'architecture (ARM vs x86) change le comportement via FMA et NaN. La seule façon fiable de clore la fuite est de reproduire bit à bit les algorithmes (coefficients minimax, fma explicite, flags de compilation) ou de lever la bibliothèque native (par ex. mapper ucrtbase.dll) en gérant l'ABI et le commutateur d'exécution, tout en conservant des performances natives. Les équipes ont validé la reproduction par des tests exhaustifs et des oracles sur appareils réels, et Scrapfly/Scrapium affirme atteindre une parité bit-à-bit avec Chrome macOS pour les appels concernés, faisant de la mathématique un signal de fingerprinting petit mais robuste.

06:06

Show HN: Codebase Posters – turn any Git repo into generative poster art

Un outil qui génère des affiches picturales à partir de l'historique de commits d'un dépôt Git et ouvre une galerie dans le navigateur. Une seule commande dans n'importe quel dépôt lance une exposition de dix-huit posters peints en direct à partir des ajouts, suppressions et commits importants. Le programme s'exécute entièrement en local, sans téléversement, sans télémétrie, sans compte, est déterministe et respecte la confidentialité du dépôt. Il produit des images imprimables haute résolution (3600×4800 px) et des vidéos MP4 de l'animation de peinture, chaque poster pouvant être rejoué en temps réel. Le projet est léger (101 kB, zéro dépendance), open source sous licence MIT, et inclut des instructions npm pour lancer la galerie ou ajouter de nouvelles recettes de composition.