HN Digest
Briefing personnel.

Lire vite.
Garder l'essentiel.

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

11978 articles Page 361/1198 Sans filtre

Incentives are for losers

L'auteur critique l'explication par les incitations comme trop répandue et tautologique, car elle suppose qu'il est normal d'obéir aux récompenses. Il soutient que fonder sa vie sur des incitations mène à une absence de convictions et que développer un sens du but personnel est essentiel pour résister aux appétits de statut, d'argent et de pouvoir. Des recherches sociologiques et psychologiques, évoquant le « déisme thérapeutique moralisant » et l'illusion de profondeur explicative, montrent que beaucoup de gens n'ont que des croyances morales et religieuses superficielles. L'auteur raconte comment des confrontations brutales avec la réalité, comme l'écart entre conférences académiques et misère de rue ou l'exemple de Charles Sumner, peuvent provoquer un réveil moral poussant à désobéir aux incitations. Il conclut qu'il faut chercher à améliorer les systèmes d'incitations tout en cultivant le courage et la fermeté morale de faire ce qui est juste malgré les récompenses, citant la nécessité d'une « colonne vertébrale » chez les dirigeants.

Fastmail offers EU data region

Fastmail propose désormais de placer la copie principale des données dans l'Union européenne en hébergeant ses propres serveurs à Amsterdam, alors qu'auparavant tous les comptes étaient stockés aux États-Unis. L'infrastructure utilise du matériel et des logiciels appartenant à Fastmail, avec chiffrement au repos, réplicas et gestion par l'équipe interne plutôt que des services cloud loués. Le choix de région fait vivre la copie primaire en UE ou aux États-Unis selon votre sélection, les applications se connectent préférentiellement à cette région et basculent vers d'autres emplacements si le site principal est indisponible. Certaines données et services restent partagés ou situés aux États-Unis, notamment les sauvegardes d'urgence à Philadelphie, des métadonnées, les journaux systèmes et des prestataires tiers, et l'entreprise reste soumise au droit australien pour les demandes légales. Fastmail a pré-sélectionné des comptes selon l'adresse de facturation, permet de changer de région via les paramètres avec migration des données, et précise qu'il n'existe pas de garantie que les données restent uniquement en UE et qu'aucun surcoût n'est appliqué pour le choix européen.

Shopify replaced Redis with MySQL for inventory reservations–and it scaled

Pendant la finalisation d'un achat, il faut garantir que les articles sont encore disponibles pour éviter des doubles ventes ou des ventes manquées, un enjeu critique à l'échelle de Shopify où les transactions atteignent des millions par minute lors des pics. Le modèle précédent utilisait Redis pour les réservations mais séparait réserve et débit définitif entre Redis et MySQL, ce qui rendait impossible une opération atomique et introduisait des risques d'oversell, d'undersell, l'absence de prise en compte multi‑emplacements et des coûts opérationnels supplémentaires. La nouvelle approche repose sur MySQL avec une ligne par unité vendable exploitant SKIP LOCKED et une piscine bornée (1 000 lignes par couple article/lieu) alimentée par un processus de réapprovisionnement unique pour absorber les rafales sans balayages excessifs ni thundering herd. Des choix techniques clés ont permis la montée en charge : clé primaire composite pour réduire les verrous, isolation READ COMMITTED pour éviter les gap locks, ordre d'acquisition de verrous cohérent pour prévenir les deadlocks, et agrégation des réservations par UNION ALL; la bascule a été faite en mode shadow avec double écriture Redis/MySQL puis migration progressive. Le goulot réel était l'épuisement des connexions, découvert en annotant les requêtes et en mesurant le temps de connexion via ProxySQL, ce qui a permis d'optimiser d'autres parties du parcours de checkout, d'ajuster la configuration InnoDB et d'atteindre finalement les objectifs de débit sans oversells; les enseignements principaux sont de réexaminer d'anciennes décisions et de prototyper petit pour observer.

Dithered QR Codes

Un code QR est une grille de modules comprenant des motifs fonctionnels très visibles servant à l'alignement et des modules de données modifiables où l'information est stockée. En réduisant les modules de données (par exemple en divisant chaque module en une grille 3×3 et en réservant le centre pour l'information) on peut intégrer une image binaire basse résolution au milieu d'un "bruit" de sel-et-poivre. Pour éviter un simple seuillage on utilise le tramage (Bayer) et surtout la diffusion d'erreur de Floyd‑Steinberg, qui propage les erreurs de quantification vers les pixels voisins pour obtenir des demi‑tons plus naturels et moins distrayants. En appliquant une double diffusion d'erreur — une première passe qui fixe les couleurs des modules de données connus et répartit les grosses erreurs sur l'entourage, puis une passe classique — on obtient une image beaucoup plus propre, et bien que l'on puisse aussi modifier quelques modules grâce à la correction d'erreurs cela compromet la robustesse du code. En pratique ces codes fonctionnent bien sur grands supports si l'on n'en abuse pas, mais il faut accepter le compromis esthétique/fiabilité, prévoir des marges d'encadrement adaptées (et faire attention au flou des navigateurs lors du redimensionnement) et respecter la couleur de marge opposée au centre des repères afin d'assurer la lecture.

Improving Heuristics for A* Pathfinding

Cette technique améliore l'heuristique d'A* en utilisant des points de repère («landmarks») pour mieux refléter les murs et la topologie du graphe, ce qui réduit le nombre de nœuds explorés. Un heuristique parfaite qui connaît tous les murs et le but existe mais est impraticable à calculer et à stocker pour chaque objectif. En précalculant pour chaque landmark les distances depuis tous les nœuds (avec Dijkstra ou BFS) on peut appliquer l'inégalité triangulaire pour obtenir la borne cost(B,X) ≥ cost(B,L) - cost(X,L) et combiner ces bornes (max) en une heuristique différentielle plus informée. Concrètement, on alloue un tableau cost[node][landmark], on lance une recherche depuis chaque landmark pour remplir ce tableau puis on remplace dans la fonction heuristique traditionnelle par le maximum entre l'heuristique de base et les différences de coûts (ou la valeur absolue pour les graphes non orientés), sans modifier l'algorithme A* lui‑même. Plusieurs landmarks couvrent mieux la carte, leur placement peut être manuel, basé sur analyses aléatoires ou automatisé, et il faut prendre en compte que des changements de graphe peuvent rendre l'heuristique temporairement sur‑estimée (non admissible) ou moins efficace; des démonstrations montrent de fortes améliorations sur labyrinthes et cartes pièce‑couloir.

Os8088: A powerful Mac-like OS for the IBM XT, 286, 386

Il s'agit d'un système d'exploitation graphique écrit entièrement en assembleur réel pour processeurs 8086/8088 et démarrant depuis le premier secteur d'une disquette. L'interface reproduit l'aspect du Macintosh System 1 avec fenêtres superposées, menus déroulants, souris série, icônes de disquette et un dock pour les programmes chargés depuis une seconde disquette. Le noyau occupe 78 950 octets, le code source totalise 112 792 lignes de NASM, le tout tient dans 256 Ko de RAM et le système prend en charge jusqu'à 12 tâches préemptives à 18,2 Hz. Ce n'est pas DOS, il n'y a pas de protection mémoire ni de réseau, les programmes partagent un segment de 64 Ko avec le noyau et l'API disque transfère des fichiers entiers sans cache. C'est un projet amateur utilisable, reproduit en émulation et booté sur du matériel d'époque (IBM 5150, Toshiba T1100 Plus, 286) et distribué sous forme d'images de disquette.

My server is a phone now

L'auteur a remplacé son VPS par un téléphone ARM64 (CMF Phone 1) pour faire tourner des services personnels afin de réduire les coûts. Après une tentative ratée de remplacer Android par postmarketOS, il a restauré Android et utilisé Termux comme environnement hôte avec runit, Tailscale et Cloudflared pour superviser les services. Les applications sont déployées comme rootfs Debian gérés par Ansible depuis un dépôt Git, et l'auteur est passé de proot à un chroot rooté pour améliorer les performances sans recourir à Docker. L'ingress utilise Cloudflare Tunnel pour les HTTP et un tunnel WebSocket chiffré pour la connexion sensible de Surf, tandis que Tailscale assure l'accès d'administration et la mobilité réseau. Le système est reproductible et surveillé par un tableau de bord local, mais il exige des sauvegardes externes, étend le périmètre de confiance en root et reste dépendant des comportements d'Android.

"The original URL for this prediction will no longer be available in 11 years." (2011)

Le pari couvre une période de onze ans, de 2011 à 2022, avec mille dollars misés. Le montant ira au Bletchly Park Trust si Jeremy Keith l'emporte, ou à l'Internet Archive si Matt Haughey gagne. Jeremy Keith soutient que la dégradation des liens et la disparition des ressources web rendent très improbable la persistance d'une URL sur onze ans. Matt Haughey affirme que les pratiques de redirection et la maturité des technologies permettent de maintenir des URI stables, en citant des sites personnels fonctionnant depuis treize ans. Les termes exigent que le 22 février 2022 l'adresse http://www.longbets.org/601 retourne un document HTML contenant la phrase «The original URL for this prediction (www.longbets.org/601) will no longer be available in eleven years.», une redirection 301 vers une page contenant ce texte étant également valide, auquel cas Haughey (Matt) gagne et sinon Keith (Jeremy) gagne.

The BBC Tetris Companion

L'auteur a entrepris de faire tourner un jeu de type Tetris sur une console pédagogique britannique des années 1980 destinée à l'enseignement du bridge. Il décrit le matériel de la console, notamment un processeur Z80, un TMS9129 VDP et des cartouches ROM commercialisées avec neuf titres officiels. Pour exécuter son propre code, il a rétro‑ingénieré le BIOS afin de fabriquer un en‑tête de cartouche compatible et a appris l'assembleur Z80 pour développer Bridgetris. Parallèlement il a réparé une unité achetée en remplaçant le connecteur de cartouche, réalisé des PCB de cartouche et mis au point une modification composite pour améliorer la sortie vidéo. Il annonce la publication prochaine d'articles détaillés sur la réparation, le mod vidéo et la programmation, ainsi que la diffusion du ROM et du code source.

What is a product?

Beaucoup de projets générés rapidement avec l'IA ressemblent à des produits mais ne sont souvent que des prototypes ou des démos superficielles. Les mises à jour fréquentes des modèles produisent des exemples impressionnants qui inondent les réseaux mais n'aboutissent pas forcément à des produits viables. Quatre ans après l'avènement des grands chatbots, on ne voit pas de véritables concurrents des plateformes majeures créés uniquement avec l'IA, car l'innovation exige plus que des prompts. Un vrai produit nécessite des utilisateurs réels, un marché et la résolution de problèmes concrets, pas seulement du code ou une belle maquette. Par conséquent, un prototype sans adoption n'est qu'un jouet, et il ne faut pas confondre démonstrations rapides avec des produits aboutis.