The Wandering Yamamura Theater Troupe
Résumé indisponible pour cet article.
Les meilleurs longs formats de Hacker News, relus plus calmement.
Résumé indisponible pour cet article.
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.
Résumé indisponible pour cet article.
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.
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.
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.
Résumé indisponible pour cet article.
Résumé indisponible pour cet article.
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.
L'article explique comment appeler des fonctions imbriquées avec d'anciennes versions de GCC sans nécessiter une pile exécutable. GCC génère une petite trampoline sur la pile qui contient l'adresse du code et une chaîne statique permettant d'accéder aux variables capturées. On peut lire ces deux pointeurs depuis la trampoline (en extrayant des octets constants) et les utiliser avec __builtin_call_with_static_chain pour appeler directement la fonction imbriquée. Les inconvénients sont que la trampoline est toujours créée et que le compilateur ne peut pas dévirtualiser l'appel, mais comme la trampoline n'est jamais exécutée on peut désactiver la pile exécutable a posteriori (par exemple via patchelf) pour réduire le risque. Une autre approche consiste à traiter l'adresse de la trampoline comme un descripteur de fonction et à vérifier au point d'appel si le pointeur désigne une trampoline, extraire alors la chaîne statique et l'adresse de code et appeler directement via un petit interprète inline, solution explorée dans la bibliothèque expérimentale noplate.