HN Digest
Briefing personnel.

Lire vite.
Garder l'essentiel.

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

11978 articles Page 749/1198 Sans filtre

Prolog Basics Explained with Pokémon

L'auteur décrit comment la modélisation détaillée des mécaniques de Pokémon lui a permis de comprendre et d'adopter Prolog comme langage adapté aux relations complexes. Il présente les bases de Prolog — faits, prédicats, variables et unification — et compare la simplicité des requêtes déclaratives à une implémentation équivalente en SQL. Dans son projet il encode types, mouvements, statistiques et règles du jeu pour interroger des propriétés utiles comme les mouvements à priorité, en ajoutant des filtres pour exclure les cas doubles ou de protection et en gérant des capacités spéciales comme Prankster. Il met en évidence que Prolog excelle pour décrire des combinaisons ad hoc et pour superposer des règles de façon cohérente, rendant les requêtes plus lisibles et extensibles que les formules de tableur. L'auteur envisage de transformer cette base en applications web, signale l'utilisation de Scryer Prolog et s'interroge sur la prévalence des feuilles de calcul comme solution maintenue par la communauté.

CUDA Books

Cette liste recense les ouvrages majeurs sur la programmation GPU NVIDIA, classés par niveau et par thème. Elle est organisée en sections : débutant, architecture et programmation parallèle, guides pratiques, optimisation, Python et publications récentes. On y trouve des classiques pédagogiques, des manuels universitaires, des guides pratiques pour la production et plusieurs titres récents publiés entre 2022 et 2026. Les contributeurs sont invités à proposer des PR en suivant des critères (titre, auteurs, année, description, lien) avec préférence pour les ouvrages post‑2018 ou toujours pertinents. Le dépôt conseille de compléter les livres par le guide officiel CUDA et est distribué sous licence MIT.

Show HN: Mezz, a curl-able WiFi sandbox for IoT pentesting

Cet outil crée un réseau Wi‑Fi isolé entre vos objets connectés et le reste de votre réseau domestique afin d'inspecter leur trafic. Il fournit un point d'accès sur un sous‑réseau distinct, DHCP et DNS pour les clients, NAT via l'interface filaire, un domaine local et un journal DNS par requête pour visualiser les destinations des appareils. Pour fonctionner il nécessite un hôte Linux avec deux interfaces réseau (une Wi‑Fi prenant en charge le mode AP et une liaison câblée), Docker Engine 20.10+ avec Compose v2 et les droits root pour initialiser la pile réseau. Des profils optionnels ajoutent des services comme un proxy transparent mitmproxy (activable via COMPOSE_PROFILES et MITM_ENABLED) et la doc couvre l'affectation d'interfaces, le dépannage et les particularités des adaptateurs Realtek. L'usage est strictement éducatif et réservé aux tests autorisés sur vos propres réseaux et appareils, et des commandes rapides permettent de démarrer la stack avec docker compose up -d ou de restaurer l'état hôte avec net-init teardown.

A Good Lemma Is Worth a Thousand Theorems (2007)

L'auteur soutient que, bien que les théorèmes soient importants, les lemmes — souvent faciles à démontrer une fois énoncés — peuvent avoir une valeur dépassant celle des théorèmes profonds. Il cite en particulier le lemme de régularité de Szemerédi, dont des extensions hypergraphiques ont été utilisées dans la percée de Green et Tao et qui a joué un rôle lié à au moins deux médailles Fields. On souligne que Szemerédi est surtout célèbre pour son théorème, mais que son lemme est considéré comme encore plus significatif. Plusieurs remarques et citations sont rapportées, notamment la remarque de Paul Taylor selon laquelle « les lemmes font le travail tandis que les théorèmes prennent le crédit », ainsi qu'un passage d'Aigner et Ziegler décrivant qu'un bon lemme doit être applicable largement, évident une fois vu et esthétiquement satisfaisant. Des ajouts ultérieurs mentionnent aussi une critique d'un économiste sur les lemmes compliqués et l'idée finale que les observations peuvent être encore plus importantes que les lemmes.

WriteUp: 16 Bytes of x86 that turn Matrix rain into sound

Un programme de 16 octets en assembleur x86 réel pour DOS exploite la mémoire vidéo et le port 0x61 pour générer à la fois une image fractale de type Sierpinski et un signal audio. Le code appelle int 10h et positionne DS sur 0xB800 pour utiliser le tampon texte (octet caractère + octet attribut) comme espace de calcul prérempli. En remplaçant l'addition par XOR et en isolant le bit 1, la progression suit la règle 60 des automates cellulaires, reproduite mathématiquement via le théorème de Lucas. La boucle avance effectivement de -56 octets par itération (équivalant spatialement à +12 colonnes), ce qui cisaille le motif en dix colonnes verticales et, du fait du cycle plus long, abaisse la fréquence audio d'une octave. L'effet visuel et sonore dépend de l'état mémoire initial laissé par le BIOS ou l'émulateur, et une initialisation explicite garantirait la reproductibilité au prix d'un dépassement de la limite de 16 octets.

Two EA-18 fighter jets collide at Mountain Home airshow, pilots ejected safely

Deux avions de chasse de la Marine américaine EA-18G Growler sont entrés en collision et se sont écrasés dimanche lors d'une démonstration aérienne à la base de Mountain Home, dans l'Idaho. Les quatre membres d'équipage ont éjecté en toute sécurité et ont été évalués par du personnel médical, sans blessés parmi les spectateurs ou sur la base. Des vidéos de témoins montrent les parachutes des pilotes s'ouvrir tandis que les appareils chutent et explosent au sol, et la base a été placée en confinement pendant l'intervention. Les organisateurs et responsables militaires ont salué la rapidité et le professionnalisme des secours et ont insisté sur la priorité donnée à la sécurité. Les autorités ont annoncé des fermetures de routes et une enquête en cours, rappelant les efforts continus pour améliorer la sécurité des meetings aériens après des accidents passés.

Jank now has its own custom IR

Jank dispose désormais d'une représentation intermédiaire (IR) personnalisée, adaptée aux sémantiques de Clojure, stockée en structures C++ et exportable en données Clojure pour le débogage. Cette IR est basée sur la forme SSA et un graphe de flot de contrôle, ce qui facilite les analyses, les optimisations et la génération de C++ dont les variables reflètent les noms IR. L'équipe a commencé la chaîne d'optimisations en ajoutant l'inlining des opérations arithmétiques, en éliminant des instructions IR inutiles, en corrigeant l'accès global à nil et en introduisant le pointeur taggé pour représenter les entiers sans allocation. Sur le benchmark récursif fibonacci, ces améliorations ont réduit le temps d'exécution de 5 522 ms à 114 ms, le plaçant devant les ~200 ms mesurés sur la JVM pour le même cas. Les travaux se poursuivront sur d'autres benchmarks et l'auteur invite la communauté à contribuer, rejoindre les discussions ou le soutenir financièrement pour poursuivre le développement à plein temps.