The Future of Mathematics
Résumé indisponible pour cet article.
Les meilleurs longs formats de Hacker News, relus plus calmement.
Résumé indisponible pour cet article.
Résumé indisponible pour cet article.
Nightwatch est une application discrète dans la barre de menus macOS qui indique quand le ciel sera suffisamment dégagé pour une longue session d'imagerie et propose des cibles adaptées. Elle envoie des alertes (préavis avant le coucher, notification à l’ouverture de la fenêtre claire et annulation si le ciel se couvre), affiche le plan de la nuit avec favoris ordonnés par meilleur créneau, la semaine à venir et des fiches détaillées donnant champ, filtre et nombre d’expositions. Les prévisions proviennent d’Apple Weather quand le build est signé ou d’Open‑Meteo sinon, complétées par 7Timer pour seeing/transparency, et l’application calcule localement obscurité astronomique, positions et visibilité tout en documentant précisément les données externes récupérées. Parmi les fonctions avancées figurent des widgets de bureau synchronisés, la gestion d’horizons locaux (mesure par photo et données de terrain), la recherche de sites à ciel sombre certifiés ou calculés, des options pour nuits lumineuses et des alertes d’aurore paramétrables. Nightwatch se télécharge en DMG signée, peut être compilée depuis le dépôt avec les scripts fournis, synchronise ses réglages via iCloud, est distribuée sans publicité et décrit ses sources et licences dans la documentation.
foldl et foldr parcourent la liste dans le même ordre, mais diffèrent par l'association des opérations : foldl produit des associations à gauche tandis que foldr les produit à droite. Dans un langage strict, foldl peut être implémenté en boucle tail‑recursive et consommer de l'espace constant, alors que foldr nécessite des cadres de pile proportionnels à la longueur de la liste. En langage paresseux, foldl construit des thunks linéaires qui peuvent provoquer des fuites d'espace et il faut utiliser foldl' pour forcer l'accumulateur et conserver un espace constant, tandis que foldr peut profiter de la paresse du second argument pour produire des résultats incrémentaux et travailler sur des listes infinies. Règle pratique : pour une fonction d'accumulation stricte, préférer foldl' afin de consommer la liste en espace constant ; pour une accumulation paresseuse sur le second argument, préférer foldr ; éviter foldl et foldr' sur les listes sauf pour de très petits cas où l'optimisation importe peu. Ces conclusions s'appliquent surtout aux listes cons ; pour des structures où l'association est différente (snoc‑lists, arbres, etc.) le choix inverse peut être préférable et, pour des besoins de performance plus fins, foldMap (ou son pendant strict) est souvent une meilleure option.
Les cartes Ordnance Survey de l'enfance étaient reconnaissables à leurs bandes orange et à leur papier crème lisse, imprimées en diverses polices et au délicat échelle d'un pouce pour un mile. Ces cartes, souvent périmées avec des villes non déviées et des voies ferrées disparues, se sont révélées trompeuses pour marcher sans accompagnement parental. La génération suivante présentait des couvertures magenta, un lettrage sans empattement et une métrication au 1:50 000 signalée par un emblème en forme de clé combinant le rondel de l'Union et la lettre « M ». Le 1:50 000 était toutefois trop petit pour rendre visibles les limites de parcelles, posant des problèmes pratiques et juridiques qui ont conduit à l'adoption des cartes jaunes plus détaillées au 1:25 000. Beaucoup de personnes nées dans la seconde moitié du XXe siècle associent Ordnance Survey à ces feuilles pliées et continuent aujourd'hui d'alterner entre les cartes papier et leurs avatars numériques téléchargeables.
Les développeurs GNOME, comme beaucoup d'autres, ont du mal à écrire du code sécurisé avec des langages non sûrs tels que C, C++ ou Vala, ce qui cause des erreurs fréquentes et critiques pour les utilisateurs. L'auteur affirme qu'en 2026 le balayage de vulnérabilités par IA est devenu indispensable pour maintenir la qualité des logiciels, car les modèles détectent massivement des failles que les humains ne trouvent pas assez. Les rapports d'IA se sont améliorés mais génèrent encore beaucoup de bruit pratique : verbosité, exagérations, faux positifs, traces fabriquées et surcharge des mainteneurs, ce qui a notamment entraîné la fermeture du programme de bug bounty. Les analyses ont provoqué une forte augmentation des CVE et ont mis en lumière de nombreux problèmes dans des composants comme GLib et libsoup, incitant à des corrections importantes mais exigeant un tri et une validation coûteux. L'auteur préconise d'autoriser les rapports d'IA tout en conservant la revue humaine pour vérifier et prioriser, de réviser les politiques de contribution, et de rester prudent face aux risques de chaîne d'approvisionnement associés à des écosystèmes comme Cargo.
Résumé indisponible pour cet article.
L'auteur présente une méthode pour écrire des structures de données génériques et sûres en C en associant des informations de type via des unions et des macros. Il compare cette approche à d'autres techniques : inclusion répétée d'en-têtes paramétrés par macros, utilisation de void * (non sûre) et stockage inline avec membre de tableau flexible pour réduire les allocations et améliorer la localité. La solution principale utilise une union contenant un membre payload du type paramétré et des macros qui exploitent l'opérateur ternaire ou __typeof__ pour forcer la vérification de type à la compilation sans coût mémoire à l'exécution. L'article évoque aussi des optimisations pratiques comme l'allocation directe via list_alloc_front, recommande les arenas plutôt que malloc, et signale des limites liées à la duplication de définitions, à la compatibilité des compilateurs et à l'augmentation possible de la taille binaire. Enfin, l'auteur montre que la technique s'étend à d'autres structures comme les tables de hachage et indique que le code d'exemple est disponible via son bulletin d'information.
Résumé indisponible pour cet article.
L'article propose d'entraîner un modèle de génération MIDI à jouer « à la manière de » douze pianistes de jazz en s'inspirant des études stylistiques de Dick Hyman. Ils fine-tunent Aria, un transformeur pré-entraîné sur du piano MIDI, en ajoutant dans ses dernières couches un bloc de cross-attention conditionné par un petit embedding appris pour chaque pianiste et une porte d'échelle. Pour mesurer le style, ils laissent le modèle générer librement et utilisent un classifieur glissant : les continuations conditionnées sont attribuées au pianiste visé dans 70 % des fenêtres contre 37 % sans conditionnement, alors que la perplexité reste peu discriminante. Un classifieur entraîné uniquement sur musique synthétique identifie ensuite des enregistrements réels avec 95 % d'exactitude par morceau, ce qui indique un transfert de style mais avec des performances très variables selon les pianistes. Les exemples publiés sont en MIDI issu de transcriptions automatiques, les continuations sont des échantillons sélectionnés plutôt que des copies, et les auteurs signalent des biais du classifieur et la nécessité d'études d'écoute humaines.