HN Digest
Briefing personnel.

Lire vite.
Garder l'essentiel.

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

11752 articles Page 860/1176 Sans filtre

Global freedom declined for the 20th consecutive year in 2025

En 2025, la liberté dans le monde a reculé pour la vingtième année consécutive, 54 pays ayant connu une détérioration des droits politiques et des libertés civiles contre 35 pays en amélioration. Les principaux moteurs de ce déclin sont les coups d'État, les conflits armés, l'érosion des institutions démocratiques et la répression par des dirigeants autoritaires, avec des chutes marquées en Guinée-Bissau, en Tanzanie, au Burkina Faso, à Madagascar et au Salvador. Les atteintes les plus sévères ont visé la liberté des médias, la liberté d'expression personnelle et le respect du dû processus, et des démocraties telles que les États-Unis, la Bulgarie et l'Italie ont aussi vu leur score diminuer. Le groupe des pays partiellement libres s'est notablement réduit, dix-neuf d'entre eux étant tombés dans la catégorie non libre, tandis que des régimes autoritaires se coordonnent pour affaiblir la société civile et les observateurs électoraux internationaux. Malgré ces tendances négatives, des progrès existent — la Bolivie, les Fidji et le Malawi sont passés à la catégorie libre en 2025 et de nombreux pays démocratiques montrent une résilience, mais la réduction du soutien occidental à l'aide à la démocratie risque d'affaiblir ces avancées.

PgQue: Zero-Bloat Postgres Queue

C'est une implémentation pure SQL/PLpgSQL compatible Postgres 14+ qui réimplémente l'architecture PgQ sans extension C ni démon externe. Le système utilise le batching par snapshot et la rotation par TRUNCATE pour éviter l'accumulation de tuples morts et maintenir des performances stables sous charge soutenue. La conception offre un journal d'événements partagé avec curseurs indépendants pour le fan-out, garantissant la durabilité ACID et l'absence de duplication des données par abonné. La livraison présente une latence end-to-end typique d'environ 1–2 secondes par défaut, réglable via la fréquence de tick (pg_cron recommandé) ou force_tick pour les tests. L'installation se fait en un seul fichier SQL et crée des rôles séparés pour lecteurs, auteurs et administrateurs, avec des bibliothèques clientes d'exemple et des benchmarks préliminaires montrant de hauts débits.

It's OK to compare floating-points for equality

L'auteur remet en question l'idée reçue selon laquelle on ne doit jamais comparer des nombres flottants par égalité exacte, en soutenant que l'usage d'epsilons est souvent une mauvaise solution et que d'autres approches plus robustes existent. Il identifie trois problèmes majeurs des comparaisons par epsilon: ce sont des rustines temporaires, elles peuvent provoquer des bogues difficiles à déboguer en cascade et elles reposent sur des seuils arbitraires non transatifs qui brisent des invariants algorithmiques. À travers des cas concrets (mouvement sur grille, slerp, calcul de norme, résolution de systèmes linéaires, intersection rayon-boîte, enveloppe convexe), il montre des alternatives : séparation modèle/présentation, usages de propriétés IEEE754 (clamp, vérification d'égalité à 1 ou du sin(angle) nul), normalisation par la composante maximale, test exact du pivot nul, gestion des zéros/infini/NaN, ou recours à des méthodes numériques robustes (arrondi sur grille, précision arbitraire, arithmétique d'intervalle). Il admet cependant que les epsilons sont pertinents dans certaines situations pragmatiques comme le filtrage d'entrées utilisateur suivant l'échelle d'affichage ou l'écriture de tests unitaires, en recommandant d'utiliser des valeurs justifiées (par exemple FLT_EPSILON ou des seuils dérivés de la résolution) plutôt qu'un chiffre arbitraire. La conclusion est pratique et neutre : il faut réfléchir au problème concret, privilégier des solutions numériques correctes ou des réorganisations d'algorithmes, et n'employer des epsilons que lorsqu'ils sont documentés et adaptés au contexte.

Fuzix OS

La version 0.4 conserve le noyau principal tout en corrigeant de nombreux bogues et en remaniant la pile réseau pour la rendre plus modulaire et pouvoir, sur les machines 8 bits, l’exécuter dans un autre espace d’adresses. Les formats exécutables ont été unifiés (notamment 8080/8085/Z80 et compatibilité ABI entre 68HC11 et 6803), les binaires 32 bits utilisent désormais a.out avec extensions pour la relocation, et l’environnement de construction a été simplifié avec une cible make diskimage et des recommandations pour make clean et make kclean. Le projet a adopté de nouveaux noms (N8VEM devient Retrobrew et une distinction explicite est faite entre RC2014 pour la gamme produit et RCbus pour le bus), et certaines plates‑formes ont été retirées ou ne sont pas testées actuellement, notamment Pentagon, Pentagon 1024, Scorpion, P112 et SocZ80. La version 0.4 prend en charge un large éventail de processeurs en production tels que 6303/6803, 6502/65C02/65C816, 6809, 68HC11, 68000 (jusqu’au 68EC020), 8080, 8085, diverses variantes Z80/Z180, ARM (M0/M4), ESP8266 et NS32K, tandis que d’autres ports (par exemple 6800, 8086, ESP32, ez80, RiscV) restent expérimentaux ou partiellement fonctionnels. De nombreuses machines rétro et cartes SBC sont prises en charge ou ciblées (RC2014/RCbus, divers ZX Spectrum et clones, Amstrad, MSX, Tandy/Dragon, Pico68K, SBC divers, etc.), avec des ports additionnels en cours de développement pour élargir la compatibilité matérielle.

Bipartisan Bill to Tighten Controls on Sensitive Chipmaking Equipment

Le représentant Michael Baumgartner a présenté la loi MATCH, soutenue bipartisanement et accompagnée de projets connexes au Sénat, visant à renforcer la sécurité nationale américaine en comblant des lacunes des contrôles à l'exportation sur les équipements de fabrication de semi-conducteurs (SME). La Chine finance massivement son industrie des semiconducteurs et progresse rapidement, tandis que des puces fabriquées en Chine sont déjà intégrées dans certains systèmes d'armement, plateformes de renseignement et infrastructures critiques américains. Les États-Unis ont imposé des contrôles à l'exportation stricts, mais les alliés n'ont pas toujours harmonisé leurs mesures, laissant des trous que la Chine exploite. Le texte prévoit notamment une interdiction nationale de vente des « chokepoint » SME (y compris la lithographie DUV par immersion et les outils d'attaque cryogénique), la désignation de grandes entreprises chinoises et de leurs filiales comme sites couverts soumis à des restrictions proches de la liste d'entités, des délais de négociation diplomatique avec une dérogation pour la sécurité nationale, et la possibilité pour les États-Unis d'imposer unilatéralement des contrôles et d'élargir leur compétence via la Foreign Direct Product Rule si les alliés ne s'alignent pas. Des instituts et experts estiment que la loi rétablirait l'équité pour les fabricants américains, protégerait les chaînes d'approvisionnement et contribuerait à préserver l'avantage des États-Unis et de leurs alliés en matière de fabrication de puces et de technologies critiques comme l'intelligence artificielle.

Floating Point Fun on Cortex-M Processors

L'article présente l'utilisation de l'API PSA Crypto sur deux MCU (nRF52840 et ESP32-S3) et signale que sur le nRF52840 l'opération ECDSA est déléguée à une bibliothèque propriétaire, révélant des variantes nrf_cc310_mbedcrypto hard-float et soft-float susceptibles de provoquer des erreurs de linkage. Arm définit trois ABI pour le flottant contrôlés par -mfloat-abi : soft (émulation logicielle et passage d'arguments en registres entiers), softfp (instructions FPU autorisées mais convention d'appel soft) et hard (utilisation des registres flottants pour le passage d'arguments et des conventions spécifiques). Des exemples de compilation montrent concrètement les différences : l'ABI soft appelle la routine runtime __addsf3 avec arguments en GPR, softfp utilise des instructions FPU tout en passant les arguments en GPR, et hard passe les arguments dans les registres flottants et émet vadd.f32. Dans Zephyr, la configuration CONFIG_FPU et CONFIG_CPU_HAS_FPU contrôle l'activation du matériel FPU et le choix d'ABI, avec west/build affichant les options telles que -mfloat-abi, tandis que z_arm_floating_point_init est appelé au démarrage pour configurer le coprocesseur flottant selon la configuration. Il est possible d'activer le FPU "just in time" en initialisant les registres CPACR/FPCCR dans une fonction ou via le gestionnaire de faute NOCP, mais cette approche comporte des risques et l'auteur promet d'explorer ultérieurement les cas d'utilisation et les compromis entre flottant matériel et logiciel.

Understanding the FFT Algorithm (2013)

L'article explique que la transformée de Fourier discrète (DFT) est une opération linéaire utile en traitement du signal mais coûteuse en calcul en O(N^2) dans sa forme naïve. Cooley et Tukey exploitent des symétries en divisant la DFT en sous-transformées sur les indices pairs et impairs, ce qui permet une approche récursive réduisant la complexité à O(N log N). Une implémentation récursive en Python est présentée, qui bascule vers une DFT lente pour les petits blocs et vérifie la validité par comparaison avec NumPy. Une version vectorisée utilisant NumPy regroupe les calculs en produits matriciels pour gagner en efficacité, tout en restant moins rapide que les bibliothèques optimisées écrites en Fortran. L'auteur conclut que ces exemples aident à comprendre les principes et compromis derrière les implémentations rapides de la transformée de Fourier utilisées en pratique.

80386 Memory Pipeline

L'auteur a fait tourner DOS, des applications comme Norton Commander et des jeux comme Doom sur son cœur 386 FPGA (DE10‑Nano à 75 MHz) et saisit l'occasion pour étudier le pipeline mémoire critique du 80386. Il explique que le microcode utilise des signaux RD/WR et des points de synchronisation DLY, ce qui impose que le chemin d'adresse soit extrêmement rapide pour ne pas brider l'exécution en flux continu. La segmentation est accélérée par des caches de descripteurs et par des calculs parallèles de relocation et de vérification de limite, tandis que les formes d'adresse courantes sont optimisées pour éviter des additions en série coûteuses. Des techniques comme Early Start, un TLB pour le fast path, un bus non multiplexé et une hiérarchie de cache externe permettent de recouvrir les latences et d'atteindre un chemin d'adresse souvent autour de 1,5 cycle en pratique, au prix d'une complexité accrue et de corner cases. Pour l'implantation FPGA, l'auteur adapte le design historique en remplaçant les latches par des registres synchrones, en acceptant deux cycles pour la traduction d'adresses et en intégrant des caches L1 synchrones de 16 Ko pour réduire les temps d'attente et maintenir un Fmax et un faible CPI.