HN Digest
Briefing personnel.

Lire vite.
Garder l'essentiel.

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

12026 articles Page 681/1203 Sans filtre

Constant Q Transform – A Visual Guide

La transformée à Q constant (CQT) maintient un rapport constant entre la fréquence centrale et la largeur de bande des bins, ce qui impose des fenêtres d'analyse longues pour les basses fréquences et courtes pour les aiguës afin d'imiter la résolution logarithmique de la perception musicale. Contrairement à la FFT qui utilise des bins espacés linéairement en Hertz, la CQT espace ses bins logarithmiquement afin que les notes musicales occupent des largeurs proportionnelles et aient un poids visuel et analytique comparable. Sur un axe logarithmique les octaves sont également espacées et le nombre de bins par octave (par exemple 12, 24, 36) détermine la granularité en hauteur au prix de fenêtres plus longues aux basses fréquences. Chaque bin CQT est calculé avec une fenêtre de longueur Nk = ⌈Q·fs/fk⌉ qui garantit le même nombre de cycles par fenêtre, et des algorithmes efficaces utilisent l'FFT pour précalculer des noyaux spectraux ou recourir au sous-échantillonnage pour accélérer le calcul. La CQT sert de base au calcul de chromagrammes par repliement en octave et elle est largement utilisée pour le suivi de hauteur, la reconnaissance d'accords, la synthèse audio et comme entrée pour des modèles d'apprentissage profond en musique.

GitHub and the crime against software

L'auteur documente des problèmes récurrents de disponibilité, de sécurité et de performance chez GitHub. Il présente une expérience comparative sur le front-end de GitHub, GitLab et Codeberg montrant que GitHub télécharge beaucoup plus de code JavaScript/CSS et utilise davantage de mémoire et de temps de chargement. Selon l'article, l'intégration agressive de fonctionnalités d'IA et d'agents poussées par GitHub et sa maison-mère Microsoft augmente la charge et semble prioriser de nouvelles fonctionnalités au détriment de la fiabilité. L'étude fournit des mesures détaillées (HAR, snapshots mémoire, tests de compression) et recommande des correctifs pratiques comme la réduction du code, la mise en cache, la compression et la consolidation des ressources. En conclusion, l'auteur estime que ces problèmes reflètent des lacunes d'architecture et de gouvernance dans les grands services logiciels et invite à des améliorations concrètes pour restaurer performance et fiabilité.

A 10 year old Xeon is all you need

L'auteur décrit comment il a fait tourner localement un modèle Gemma 4 26B-A4B MoE sur un serveur recyclé (Intel Xeon E5-2620 v4, 128 Go DDR3, sans GPU) malgré le matériel ancien. Il explique que pour l'inférence la bande passante mémoire, et non la puissance brute du processeur, constitue le goulot d'étranglement, chaque token exigeant le transfert massif des poids de la RAM vers le cache. La solution a consisté à activer de nombreuses optimisations d'ik_llama.cpp — notamment le décodage spéculatif avec un petit drafter, le routage MoE adapté au CPU, la fusion des projections, run-time-repack, mlock, flash-attn et MLA — pour garder les données dans les caches et réduire les allers-retours vers la RAM. Avec ces réglages l'auteur rapporte une empreinte mémoire d'environ 82 Go (≈25 Go de poids et ≈56 Go de cache KV pour un grand contexte) et une génération à vitesse de lecture malgré l'absence de GPU, en notant que beaucoup d'options sont peu documentées ou échouent silencieusement. La leçon principale est que la limite pour exécuter localement des modèles open-weight de pointe est souvent logicielle et opérationnelle, et que comprendre et adapter le moteur d'inférence à l'architecture mémoire du système permet de réduire le fossé d'utilisabilité sans matériel exotique.

Tracing HTTP Requests with Go's net/HTTP/httptrace

Le package net/http/httptrace, présent depuis Go 1.7, expose des hooks permettant d'observer des étapes internes d'une requête HTTP sortante telles que la résolution DNS, l'acquisition de connexion, la poignée TLS et l'arrivée du premier octet de réponse. Au lieu d'une interface Tracer, il attache un *ClientTrace au context.Context, ce qui permet de propager le traçage automatiquement avec la requête, d'éviter l'état mutable partagé et de n'introduire qu'un léger coût lorsque le trace est absent. ClientTrace est une structure contenant des champs fonctions optionnels pour chaque hook (DNSStart, ConnectStart, TLSHandshakeDone, GotFirstResponseByte, etc.), de sorte que l'on ne définit que les hooks utiles et que de nouveaux hooks peuvent être ajoutés sans casser le code existant. L'article illustre deux usages pratiques — un CLI style curl qui enregistre des timestamps dans chaque hook pour afficher une répartition des durées, et un http.RoundTripper qui attache un ClientTrace à chaque requête pour journaliser les timings (en enveloppant éventuellement res.Body pour mesurer la durée totale), en précisant que les traces s'ajoutent (se composent) si plusieurs traces sont fixées sur le même contexte. Enfin, httptrace permet de vérifier la réutilisation des connexions via GotConnInfo.Reused et d'autres métadonnées, et l'auteur conclut que ce petit API contextuel est suffisant pour déboguer les requêtes lentes sans recourir immédiatement à des agents APM ou bibliothèques externes.

Show HN: DepsGuard – One command to harden NPM/pnpm/yarn/bun/uv configs

Cet outil analyse les configurations de npm, pnpm, yarn, bun et uv pour détecter et recommander des réglages visant à protéger contre les attaques de la chaîne d'approvisionnement. Il est distribué comme binaire statique multiplateforme pour Linux, macOS et Windows, sans dépendances Rust externes, et propose des paquets précompilés ainsi qu'une installation via les gestionnaires classiques ou cargo. Une interface TUI interactive permet de scanner en lecture seule, prévisualiser des diff, sélectionner des corrections, appliquer les modifications avec création automatique de sauvegardes et restaurer des fichiers depuis ~/.depsguard/backups. Le programme vérifie et ajuste des paramètres de sécurité tels que les délais de publication (minimum release age), ignore-scripts, block-exotic-subdeps, trust-policy et strict-dep-builds dans les fichiers utilisateurs et de dépôt (ex. .npmrc, .yarnrc.yml, pnpm-workspace.yaml, uv.toml, configurations Renovate/Dependabot). La documentation couvre aussi les procédures pour contournements d'urgence, les emplacements de configuration, le dépannage et la philosophie de conception minimale du code source pour réduire la surface d'attaque.

What's gonna happen to software engineers?

L'auteur, développeur, s'interroge sur l'avenir des développeurs face à l'IA et reconnaît que personne ne sait exactement ce qui va se passer. Il distingue deux grandes catégories de développeurs : ceux qui utilisent le code comme moyen pour construire autre chose et ceux qui voient le code comme une finalité en soi. L'IA facilite le prototypage et permet à des non-techniciens de créer des produits, ce qui augmente la productivité mais peut aussi réduire l'avantage concurrentiel des développeurs et entraîner des pertes d'emploi. Il envisage plusieurs trajectoires plausibles sur 5–10 ans — maintien des rôles actuels, émergence de "product builders" utilisant le langage naturel, ou transition vers des rôles de gestion et de coordination (PMs) travaillant avec des agents. Il conclut que l'impact variera selon les contextes géographiques et sectoriels, qu'il faut s'adapter, et il adopte une attitude plutôt optimiste malgré les risques.

Sysadmining Like It's 2009

Legacy Labs lance son premier événement de deux mois destiné à encourager des explorations approfondies en rétro-informatique et permacomputing plutôt que des défis condensés sur une semaine. L'initiative est inspirée de l'Old Computer Challenge (OCC) et cherche à donner plus de temps et de liberté pour comprendre l'histoire, la conception et le fonctionnement des systèmes anciens. L'auteur prévoit un focus sur Windows Server 2008 Core et Windows Vista au sein d'un laboratoire baptisé provisoirement Project Half Duplex, en combinant matériel rétro (netbook Vista, équipement Cisco et Mikrotik) avec outils modernes. L'infrastructure reposera sur un nœud Incus sous Alpine hébergeant des VM pour Active Directory, serveur de fichiers, DHCP, Hyper-V et un ERP Syteline + Progress, avec Salt et Nebula pour le déploiement et l'accès distant. L'objectif principal est l'apprentissage et la documentation technique (images golden, ponts wlan/lan avec Mikrotik, intégrations de monitoring, workflow photo 5MP) et l'auteur invite toute participation selon les intérêts individuels.

Handmade Hawaiian Islands Map

L'auteur a créé une carte représentant l'ensemble de l'archipel s'étendant sur 1 500 miles, réalisée avec Adobe Fresco, aquarelle physique et marqueurs Copic. Cette carte inclut non seulement les îles principales mais aussi les atolls, bancs de sable, rochers et fragments éloignés des îles hawaïennes du Nord-Ouest. L'objectif était de combler l'absence en ligne de cartes montrant tous ces îlots mineurs, souvent inexistantes sur Internet. La représentation souligne que ces terres sont si petites par rapport aux îles majeures que l'artiste a choisi de montrer principalement les profondeurs autour d'elles. L'auteur a aussi réalisé une seconde carte détaillée des huit îles principales — Hawaiʻi Island, Maui, Kahoʻolawe, Lānaʻi, Molokaʻi, Oʻahu, Kauaʻi et Niʻihau — avec les mêmes techniques.

Linux Basics for Hackers (2019)

Ce cours structuré, basé sur les notes personnelles du livre d'OccupyTheWeb, présente des modules progressifs destinés aux débutants intéressés par l'administration Linux et la sécurité. Il couvre plusieurs modules traitant des bases du terminal, de la manipulation de texte, de la gestion des réseaux et des services, des permissions, du noyau, ainsi que du scripting en Bash et Python. Chaque module fournit des explications en langage clair, des commandes avec exemples, des tableaux de référence, des schémas et des exercices pratiques. La mise en œuvre nécessite un logiciel de virtualisation et une distribution Kali Linux 64 bits pour créer un laboratoire de tests. Le cours renvoie à des ressources externes pour s'entraîner davantage et rappelle que tout apprentissage doit rester strictement éducatif et se faire uniquement sur des systèmes dont on a l'autorisation.