HN Digest
Briefing personnel.

Lire vite.
Garder l'essentiel.

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

11890 articles Page 822/1189 Sans filtre

We need a federation of forges

GitHub a montré des signes d'instabilité récemment, ce qui souligne la fragilité de dépendre d'un unique fournisseur pour la plupart des projets open source. Historiquement, la collaboration sur le code a séparé le transfert du code avec git et la communication par email, sites comme GitHub ou protocoles fédérés. Tangled est un projet qui fédère des événements entre serveurs git appelés "knots" et permet de collaborer et de forker des dépôts à travers différents serveurs. Le projet utilise le protocole AT pour transférer de façon authentifiée des événements liés au code — issues, pull requests, invitations de collaborateurs et clés SSH — tout en conservant git pour le reste. L'objectif est de réduire la dépendance aux monocultures comme GitHub tout en maintenant des aspects sociaux et conviviaux de la collaboration sur le code.

An open-source stethoscope that costs between $2.5 and $5 to produce

Projet open-source fournissant des plans pour une stéthoscope validée par la recherche, destinée à être fabriquée à bas coût avec pièces imprimées et matériaux simples. Les auteurs visent un coût d'environ 1–2 USD pour la cloche et un coût similaire pour le reste, et la version résultante a des performances comparables au Littmann Cardiology III selon une publication revue par les pairs. La nomenclature décrit des pièces imprimées (tête, tuyaux auriculaires, Y, ressort, anneau), des tubes en silicone de dimensions précises, un diaphragme découpé de 40 mm dans une couverture plastique et des embouts auriculaires standards. Les instructions d'impression exigent 100 % d'infill, l'utilisation de PETG ou ABS, une hauteur de couche de 0,2 mm et des paramètres PrusaSlicer prédéfinis, et donnent des conseils d'assemblage et de dépannage ainsi que des avertissements sur l'utilisation de PLA et la mise à l'échelle affectant l'acoustique. Le projet inclut des fichiers SCAD et procédures d'industrialisation légère, un système de numérotation de lots, des conseils pour l'impression d'étiquettes et une diffusion sous licence TAPR OHL avec références à d'autres modèles similaires.

Laws of UX

Ce texte rassemble des principes de psychologie et d'ergonomie expliquant comment les utilisateurs perçoivent, comprennent, décident et se souviennent lors d'interactions numériques. Les lois de la perception visuelle et d'organisation (proximité, similarité, région commune, connexion uniforme, principe de Prägnanz) et l'importance de l'esthétique façonnent la façon dont les éléments sont groupés et interprétés. Les capacités limitées de la mémoire et de l'attention (mémoire de travail, loi de Miller, chunking, charge cognitive, attention sélective) expliquent des effets tels que la position sérielle, l'effet von Restorff et l'effet Zeigarnik. Les mécanismes de décision et de comportement (surcharge de choix, loi de Hick, effet de gradient vers l'objectif, règle du pic‑fin, principe de Pareto, loi de Parkinson, rasoir d'Occam et paradoxe de l'utilisateur actif) influencent l'engagement et les choix des utilisateurs. Pour concevoir efficacement, il convient de réduire la complexité inévitable, respecter les modèles mentaux attendus, optimiser la vitesse des interactions (seuil de Doherty), faciliter l'acquisition des cibles et privilégier la cohérence avec les sites connus.

Gooseworks (YC W23) Is Hiring a Founding Growth Engineer

La startup recrute un ingénieur croissance fondateur chargé à parts égales de construire et d'exploiter des moteurs de croissance pilotés par l'IA pour des clients et de convertir ces approches en playbooks self‑service. L'entreprise offre un workspace où des coworkers IA autonomes exécutent des tâches GTM comme outbound, contenu, SEO/AEO, Reddit, partenariats, UGC et marketing d'influence, et commercialise à la fois un produit PLG et un service sur mesure de Growth‑as‑a‑Service. L'équipe, très réduite, a déjà lancé un produit avec clients payants, accumulé des milliers d'inscriptions, plus de cinquante clients payants, une bibliothèque de compétences de plus de 100 items et une forte traction sociale et communautaire. Les missions couvrent la propriété complète des résultats clients — construction, exécution et itération des engines jusqu'à l'atteinte des KPI — ainsi que la R&D pour templatiser les moteurs en playbooks et expérimenter de nouvelles architectures d'agents, avec des objectifs définis sur 7, 30 et 90 jours. Le profil recherché est AI‑native avec expérience pratique sur Claude Code/OpenClaw/Hermes, de préférence ex‑fondateur ou opérateur d'agence growth, axé client, adaptable et capable de faire le travail opérationnel tout en automatisant, tandis que l'absence d'expérience agent ou la recherche d'horaires prévisibles sont des signaux d'inadéquation.

Why I still reach for Lisp and Scheme instead of Haskell

Il existe une tension persistante entre l'idéal mathématiquement pur de langages comme Haskell et la réalité pragmatique du besoin de prototyper et d'obtenir des résultats rapidement. L'auteur apprécie profondément Haskell pour son système de types complexe et ses apports (types algébriques, pattern matching, foncteurs, monades, DSLs), tout en reconnaissant la courbe d'apprentissage et la rigidité que cela implique. En pratique, ces abstractions rendent parfois les tâches impures simples (écriture de fichiers, réseau, débogage rapide) plus difficiles et coûtent en productivité lors de prototypages rapides. À l'inverse, Scheme et Lisp (notamment GNU Guile) privilégient la simplicité, les macros et un REPL puissant qui facilitent la métaprogrammation, l'interactivité et un flux de développement itératif très efficace. Le compromis est que Scheme peut manquer d'un écosystème "batteries-included" pour certains usages industriels, tandis que Haskell reste une référence théorique utile mais parfois trop contraignante pour le travail quotidien de l'auteur.

Mike: open-source legal AI

Il s'agit d'une alternative open source offrant les mêmes fonctions que les solutions existantes pour la gestion et la rédaction de contrats. L'assistant lit les documents, cite littéralement les passages, exécute des workflows multi-étapes et prend en charge la rédaction et l'édition contractuelle de bout en bout, tout en acceptant des clés de modèles externes comme Claude ou Gemini. Les projets fournissent des espaces de travail limités à un dossier qui conservent le contexte sur toutes les conversations et tous les documents, et la revue tabulaire extrait des données en parallèle avec des cellules toujours sourcées. Les workflows permettent d'enregistrer des invites réutilisables et des modèles d'entreprise pour standardiser des tâches telles que les synthèses d'accords ou les listes de contrôle de conformité. Le code est librement inspectable et modifiable : pas de coûts de licence récurrents, pas d'enfermement fournisseur, possibilité d'héberger sur site, d'étendre et d'auditer chaque ligne de code, ou d'utiliser une offre hébergée.

Creating a Color Palette from an Image

Spectrimage vise à produire une palette de cinq couleurs qui se sente choisie en analysant la couleur pixel par pixel et en privilégiant la stabilité plutôt que la mesure brute. L'auteur a remplacé un système HSL patché par un pipeline construit sur OKLCH/Oklab et K‑means++ avec sur‑échantillonnage (K initial = 14) pour détecter d'abord une douzaine de régions de couleur. Un regroupement naturel fusionne les centres proches selon une distance de 0,07 en Oklab en donnant un poids double au plan chromatique (a,b) par rapport à la luminosité, puis des passes structurées (phantom guard, allocation de slots achromatiques/chromatiques) affinent les clusters. Les petits phantoms sont éliminés (seuils 2,5 % et chroma < 0,05), les tons achromatiques sont bucketés en sombre/moyen/clair et chaque swatch est choisi soit comme le pixel de plus forte chroma proche du centroïde (si chroma ≥ 0,03) soit comme le pixel le plus proche du centroïde pour les gris. Le processus est déterministe (amorces par hash), s'exécute côté client sur jusqu'à 90 000 pixels, inclut une passe de secours pour promouvoir de petites régions significatives et retourne cinq swatches triés par teinte avec les achromatiques à la fin.

HERMES.md in commit messages causes requests to route to extra usage billing

Un bug provoque le routage des requêtes API vers la facturation "extra usage" lorsque l'historique récent de commits git contient exactement la chaîne sensible à la casse HERMES.md dans le message de commit. Des commandes minimales reproduisent le problème : un commit avec "add HERMES.md" renvoie l'erreur "You're out of extra usage", tandis qu'un commit avec "add hermes.md" (minuscules) utilise correctement le quota du plan. Ce comportement a consommé 200,98 $ de crédits supplémentaires alors que le plan Max 20x affichait encore plus de 86 % de capacité hebdomadaire non utilisée. Claude Code inclut les commits récents dans le prompt système et quelque chose côté serveur redirige différemment la requête selon la présence de cette chaîne, sans message d'erreur explicite facilitant le diagnostic. La recommandation est que le routage de facturation ne dépende pas du contenu des messages de commit et que les abonnés Max soient d'abord débités sur le quota inclus.

Consequences of passing too few register parameters to a C function

Les conventions d'appel modernes transmettent souvent des paramètres dans des registres, et appeler une fonction avec un nombre incorrect d'arguments est indéfini en C et C++. Si les paramètres sont passés sur la pile, omettre des arguments peut provoquer un déséquilibre de pile ou amener la fonction appelée à utiliser l'espace supposé réservé aux paramètres comme espace de travail, entraînant une corruption mémoire. Le compilateur peut réutiliser l'emplacement du paramètre non fourni pour une variable locale, ce qui fait qu'une valeur écrase la mémoire attendue même si le paramètre n'est pas utilisé. Si les paramètres sont transmis par registres, la fonction appelée peut lire des registres non initialisés, et sur Itanium des bits « Not a Thing » (NaT) peuvent forcer des vidages en mémoire ou déclencher des exceptions lors de leur consommation. Sur Itanium l'interface d'appel est architecturale : le nombre de registres de sortie déclarés détermine la fenêtre de registres visibles, et accéder ou écrire un registre en dehors de cette fenêtre peut produire des résultats indéfinis ou un défaut d'opération illégal, ce qui impose de passer le bon nombre d'arguments.