HN Digest
Briefing personnel.

Lire vite.
Garder l'essentiel.

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

11521 articles Page 123/1153 Sans filtre

Inside ZCode: Silently uploading your Git history to the cloud

L'application ZCode packe silencieusement l'intégralité de l'espace de travail, y compris l'historique .git, le cache LFS et les reflogs, puis tente de téléverser le tout vers Aliyun OSS. Le flux utilise un chiffrement par enveloppe où la clé publique RSA est fournie dynamiquement par le serveur et la clé privée n'existe que côté cloud, empêchant le déchiffrement local. Le manifeste des fichiers est conservé en clair et montre que la majeure partie des données capturées provient du dossier .git, incluant historiques et fichiers sensibles. Les options d'interface n'empêchent pas la capture ni l'upload tant que l'utilisateur est connecté, car la routine de packaging s'exécute inconditionnellement en arrière-plan. L'auteur propose comme solution de verrouiller le répertoire des checkpoints via chflags (macOS) ou chattr (Linux) pour bloquer définitivement l'écriture locale et empêcher les uploads.

Claude Code now reads AGENTS.md if there is no Claude.md

Cette version ajoute plusieurs modèles récents (Opus 4.6/4.7, Sonnet 5, Fable 5), améliore le mode Auto et étend la prise en charge des plateformes tierces comme Bedrock, Vertex, Foundry et des gateways. Le système de plugins et de marketplaces est enrichi avec installation, mise à jour, validation et options d’installation, et Claude Code introduit des agents, des sous‑agents, des tâches en arrière‑plan et le contrôle à distance pour l’automatisation. La sécurité et le contrôle sont renforcés par un système de permissions granulaire (PreToolUse/PostToolUse, hooks), des règles de sandboxing et des paramètres gérés pour les organisations afin de prévenir les contournements. Le CLI, l’intégration VS Code et l’Agent SDK bénéficient d’améliorations de performance, de reprise de session, de compactage de contexte et d’observabilité (OpenTelemetry), ainsi que de nombreuses corrections d’instabilité. De très nombreux correctifs ciblent la gestion des sessions, des plugins, des outils MCP, l’interface terminale et la résilience réseau (OAuth, proxys, délais), visant à améliorer la fiabilité et l’expérience utilisateur.

Cyclomatic Complexity in C#

La complexité cyclomatique est une métrique qui compte le nombre de chemins d'exécution indépendants d'une méthode, généralement calculée comme 1 plus le nombre de points de décision (if, while, for, case, &&, ||, ?:, ??, etc.). Un score élevé rend le code plus difficile à lire, tester et modifier, avec des seuils pratiques souvent cités : ≤10 simple, 11–20 modérément complexe, et >25 considéré excessif par l’analyse CA1502 de Microsoft. On mesure et visualise cette métrique avec des outils comme Visual Studio, NDepend, SonarAnalyzer et autres analyseurs Roslyn, et il est recommandé d’imposer des règles basées sur l’évolution (delta) plutôt que de refondre massivement un legac y. Pour réduire la complexité on préconise d’extraire des méthodes, d’utiliser des clauses de garde, de remplacer des conditionnelles par du polymorphisme, d’exploiter le pattern matching et les switch expressions, ou d’utiliser des tables de correspondance au lieu de longues chaînes de if. La métrique gagne à être croisée avec la couverture de tests (en particulier la couverture de branches) et des mesures composites comme le CRAP, et il est aussi utile de mesurer la complexité au niveau IL pour évaluer le risque des bibliothèques tierces.

Cache-to-Cache: Direct Semantic Communication Between LLMs (2025)

Les systèmes multi-LLM exploitent la complémentarité de modèles variés mais, dans les approches existantes, la communication par texte entraîne une perte sémantique et une latence due à la génération token par token. Des expériences oracle montrent que l'enrichissement de la sémantique du KV-cache peut améliorer la qualité des réponses sans augmenter la taille du cache, ce qui suggère que le KV-cache est un bon vecteur de communication inter-modèles. Les auteurs proposent un nouveau paradigme de communication directe entre modèles qui projette et fusionne le KV-cache de la source avec celui de la cible via un réseau neuronal, et qui utilise un mécanisme de gating apprenable pour sélectionner les couches cibles bénéfiques. Par rapport à la communication textuelle, cette approche tire parti des représentations profondes spécialisées des deux modèles tout en évitant la génération intermédiaire explicite de texte. Les expériences rapportées indiquent des gains moyens d'exactitude de 6,4 à 14,2 % par rapport aux modèles individuels, une amélioration de 3,1 à 5,4 % par rapport à la communication par texte, et une accélération moyenne de latence d'environ 2,5×.

The Farnese letter

En avril 1542, une lettre chiffrée du cardinal Alessandro Farnese à Giovanni Poggio, conservée à l'Archivio Apostolico Vaticano, a été transcrite et soumise à un défi de déchiffrement. L'auteur a conçu une procédure combinant un modèle de langue italien (5-grammes), une recherche en faisceau et un recuit simulé pour rechercher simultanément la clef et les coupures entre codes. La clef retrouvée associe des chiffres simples aux voyelles, des paires aux consonnes et un null (9), avec des points diacritiques modifiant certaines lectures, et des vérifications sur les photographies ont corrigé des erreurs de transcription et de segmentation. Le texte déchiffré rend compte d'engagements du pape à contribuer contre le Turc tout en hésitant entre dépenses navales et soutien en Hongrie, d'une offre publique d'aide présentée à la Diète de Spire et des agissements de Ridolfo Gonzaga à Luzzara et Poviglio. La lecture proposée est robuste et contrôlée par des tests et des vérifications codicologiques, mais elle demeure une solution candidate n'ayant pas encore été confirmée de façon indépendante.

Photon-Emission-Guided Laser Fault Injection Enables RP2350 Secure Debug

Les chercheurs ont localisé, grâce à la microscopie d'émission photonique, un registre DEBUGEN qui peut réactiver l'accès débogueur sécurisé et ont restauré cet accès par injection laser malgré la désactivation permanente du débogage. En procédant à un "rescue reset" qui bloque le processeur dans le ROM de démarrage avant l'exécution du firmware, ils ont pu activer DEBUGEN, arrêter le cœur sécurisé et lire un secret stocké en mémoire OTP dont le verrouillage logiciel aurait autrement empêché la lecture. Le registre DEBUGEN n'a pas de codage redondant documenté et ses bits, ainsi que leurs bits de verrouillage, ont pu être modifiés par des impulsions laser même lorsque DEBUGEN_LOCK empêchait les écritures logicielles. L'attaque exige un accès physique destructif (décapsulation arrière), un équipement de laboratoire spécialisé d'environ 250 000 dollars et des compétences avancées en sécurité matérielle. Les auteurs concluent que les verrous logiciels et à l'exécution sont insuffisants face à des fautes physiques et que l'analyse de sécurité doit couvrir la chaîne complète d'application des protections, de l'OTP aux registres de contrôle et au comportement au reset.

OpenJev

Il s'agit d'une expérience locale dans le navigateur qui compare deux façons d'obtenir les probabilités de choix d'un modèle sans serveur. Un chemin lit directement les logits et normalise les probabilités sur les options affichées, tandis que l'autre demande au modèle de générer les probabilités au format JSON token par token. Les modèles sont chargés depuis Hugging Face et restent en cache dans le navigateur; les entrées ne quittent pas la page et le chargement peut prendre plusieurs minutes selon la taille du modèle et le GPU. Les mesures de temps réelles (préparation, exécution directe, premier token généré et fin de génération) s'effectuent localement et les deux méthodes s'exécutent séquentiellement sur le même modèle chargé pour éviter la contention GPU. La démo précise que les probabilités directes sont des softmax conditionnels non calibrés, que la quantification et le choix de la taille du modèle affectent vitesse et qualité, et que aucun modèle n'est garanti d'égaler les références publiées.

Goroutine Leak Profiles

Les fuites de goroutines surviennent lorsque des goroutines restent bloquées sur des primitives de concurrence dont les conditions de déblocage ne pourront jamais être satisfaites, ce qui dégrade la performance et augmente l'utilisation mémoire et CPU. Des outils de test comme goleak et le package synctest améliorent la détection en tests unitaires, mais ne couvrent pas les systèmes de production à grande échelle ni les scénarios non réproduits par les tests. Go 1.27 introduit un profileur de fuites de goroutines accessible via runtime/pprof ou net/http/pprof qui détecte précisément les goroutines bloquées de façon permanente sur des channels ou des primitives du package sync. Le profileur repose sur une définition inductive de vivacité et adapte le processus de marquage du ramasse-miettes pour propager la vivacité via les références et classer comme fuyantes les goroutines non atteintes. La détection est limitée aux primitives Go de premier ordre (channels, selects bloquants, Mutex, RWMutex, WaitGroup, Cond), peut manquer des cas liés à l'accessibilité globale ou à l'E/S système, et peut augmenter le temps de GC dans certains cas pathologiques.

You can run Git on object storage if you re-make packfiles

L'auteur décrit la création d'un serveur Git open-source reposant sur du stockage d'objets (Tigris) et explique que le prototype initial utilisant un calque système de fichiers n'était pas adapté aux très gros dépôts. Le principal goulot d'étranglement venait des packfiles Git et des accès aléatoires, incompatibles avec la latence des appels réseau et l'absence d'un mécanisme équivalent à mmap en object storage. Pour y remédier il a conçu un nouveau format de packfile natif composé d'un fichier .bin pour les données et d'une feuille d'index .cue enregistrements fixes, permettant de construire des requêtes HTTP Range précises pour extraire un objet. Les benchmarks montrent une chute massive du nombre d'appels au stockage et des accélérations importantes des opérations de push et de clone sur plusieurs dépôts, parfois d'un ordre de grandeur. Le projet reste expérimental et incomplet, sans authentification ni autorisation et avec un besoin futur de compactage des petits packfiles, donc il n'est pas recommandé de l'exposer en production tel quel.