HN Digest
Briefing personnel.

Lire vite.
Garder l'essentiel.

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

11752 articles Page 236/1176 Sans filtre

Manifesto – who we are and what do we want (2002)

Le collectif vise à reconquérir des espaces sur Internet pour favoriser la communication libre et des projets sociaux liés aux luttes réelles. Pour cela il a mis en place un serveur indépendant et propose des services gratuits (sites web, courriel, listes de diffusion, chats, blogs, bulletins, etc.) hors logique commerciale. Ces services sont réservés à un usage non commercial et excluent les partis politiques organisés, les religions et les acteurs disposant déjà de moyens importants pour diffuser leurs idées. Le groupe défend le partage systématique et gratuit des savoirs, s'oppose au copyright traditionnel et soutient les logiciels et licences libres. Le fonctionnement est autogéré, sans financements externes ni salaires, avec des décisions prises collectivement via les listes de diffusion, sans coordinateur ni porte-parole et sans recours au vote.

No Country for Mediocre Mathematicians

L'auteur explique qu'il ment souvent sur les raisons d'être mathématicien et simplifie son parcours pour éviter de raconter une longue histoire personnelle. Il décrit sa trajectoire : un doctorat en géométrie arithmétique avec quelques publications et présentations mais sans passion académique suffisante pour poursuivre une carrière universitaire dans un marché très concurrentiel. L'article évoque la jalousie envers jeunes prodiges et la comparaison avec leurs succès, tout en défendant la valeur des contributions modestes qui font progresser la discipline par petits pas. L'auteur analyse l'irruption des modèles d'IA dans la recherche mathématique, reconnaissant qu'ils augmentent fortement la productivité et assistent dans la recherche bibliographique et les expériences numériques tout en provoquant angoisse et fatigue. Il conclut que la pratique des mathématiques reste une quête de compréhension fondée sur la frustration et l'effort, que les petites découvertes ont de la valeur, et qu'il ressent une ambivalence sincère entre l'idéal collectif et ses motivations personnelles.

Hunting Down a Go Runtime Bug on 32-Bit Embedded Systems

Une application Go plantait sporadiquement sur des systèmes Linux embarqués 32 bits avec l'erreur fatale runtime: netpoll: eventfd ready for something unexpected. L'enquête a montré que le runtime stockait dans ev.Data soit un pointeur brut vers netpollEventFd soit un pointeur étiqueté vers pollDesc, mélangeant deux formats dans le même champ. Sur les architectures 32 bits little-endian, la comparaison ne couvrait que les 4 octets basses, ce qui permettait au compteur d'étiquette fdseq d'aliaser l'adresse de netpollEventFd après des millions de créations d'objets et de faire confondre un socket avec l'eventfd. Les auteurs ont produit un cas de reproduction, proposé un correctif consistant à stocker un pollDesc nil étiqueté pour l'eventfd afin d'uniformiser les données et éviter l'aliasing, et ce correctif a été fusionné. Le bug, introduit avec Go 1.14 en 2020 et signalé en 2025, a été corrigé en 2026 et l'équipe remercie Frequentis AG pour le financement de l'analyse et de la correction.

Europe's last regular standard-gauge steam passenger service

En raison d'une révision périodique de la locomotive à vapeur Pt47-65, du 20 août 2026 au 28 août 2026 inclus, le trafic prévu sera modifié. Pendant cette période, les circulations prévues seront assurées par la locomotive diesel SM42 6D en remplacement. Habituellement, du lundi au vendredi la locomotive à vapeur circule sur l'itinéraire Wolsztyn–Zbąszynek et le samedi sur l'itinéraire Wolsztyn–Poznań, tandis qu'il n'y a pas de circulation programmée les dimanches et jours fériés. Les billets sont disponibles sur le site www.koleje-wielkopolskie.com.pl, au guichet de la gare ou auprès du chef de train. Le départ du train s'effectue depuis la gare.

Time complexity of operations on Python's built-in types

Le document présente les complexités temporelles en notation Big O des opérations sur les types intégrés de CPython et précise que d'autres implémentations ou sous-classes peuvent avoir des coûts différents. Pour les listes, la plupart des opérations courantes sont en O(1) (accès, assignation, append amorti), mais les insertions, suppressions ou redimensionnements provoquent des déplacements et coûtent O(n - k) ou O(n). Les tuples, chaînes et bytes étant immuables, les copies sont souvent O(1), les slices O(j - i) et la concaténation ou la multiplication coûtent proportionnellement à la taille résultante. Les dictionnaires et ensembles offrent en moyenne des opérations de recherche, insertion et suppression en O(1), mais ces opérations peuvent dégénérer en O(n) en cas de collisions de hachage, et les opérations d'ensemble ont des coûts dépendant des tailles des opérandes. Les memoryview et range fournissent des vues et des slices en O(1) sans copie, tandis que des opérations globales comme l'itération, la conversion en bytes ou la recherche de sous-chaînes restent linéaires selon la taille traitée.

A safe MySQL upgrade that wasn't so safe

Après la bascule vers la réplique mise à jour, la table X a vu ses identifiants réordonnés et une des tables référentes pointait désormais vers de mauvaises lignes. Une migration antérieure avait ajouté une colonne id AUTO_INCREMENT à la table X et mis à jour six tables liées avec des requêtes JOIN pour remplacer x_old_id par x.id. L'ajout d'une colonne AUTO_INCREMENT avec ALTER TABLE peut produire des assignations d'identifiants différentes entre source et réplique selon le moteur et l'ordre de traitement des lignes. Le serveur utilisait binlog_format=MIXED, ce qui a amené cinq UPDATE à être répliqués en mode STATEMENT mais une table en mode ROW, entraînant la copie des valeurs d'id issues de la source vers une réplique où elles ne correspondaient pas. La leçon est qu'il faut se méfier des répliques MySQL : AUTO_INCREMENT et le format du journal binaire peuvent provoquer des incohérences subtiles et dangereuses en production.