HN Digest
Briefing personnel.

Edition quotidienne

Lire vite. Garder l'essentiel.

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

5917 articles Page 81/592 Sans filtre

06:05

Navier-Stokes fluid simulation explained with Godot game engine

L'auteur explique comment implémenter une simulation de fluides pour jeux en Godot en partant de zéro, en précisant que le projet est pédagogique, CPU-only et que le code est disponible sur GitHub. La simulation utilise une grille N×N avec bordures, des tableaux scalaires pour la densité et des tableaux pour les composantes de vitesse u/v, un indexeur IX, et des fonctions d'affichage pour dessiner la densité et des flèches de vitesse ainsi que l'interaction par la souris pour injecter densité et vitesse. Les opérations physiques sont réalisées par advection inversée (suivi arrière et interpolation bilinéaire), diffusion par relaxation de Gauss-Seidel répétée, et gestion des frontières en copiant ou en inversant les valeurs selon le type de champ. Pour garantir l'incompressibilité, l'auteur calcule la divergence, résout un champ de pression par itérations Gauss-Seidel puis soustrait le gradient de pression de la vitesse (projection), en appelant cette correction après diffusion et advection. Le billet détaille les paramètres modifiables, conseille des compromis précision/performance, évoque des améliorations possibles comme le confinement de vorticité et une future implémentation sur GPU via compute shader, et invite à consulter le dépôt et à contacter l'auteur.

06:05

90% of the T Distribution

William Sealy Gosset (alias Student) a montré qu'il faut corriger les intervalles de confiance pour la moyenne quand l'écart-type de la population est inconnu en développant la loi de Student. Pour un intervalle de confiance à 90 %, il propose des facteurs multiplicateurs de l'écart-type estimé selon le nombre d'échantillons (par exemple 4× pour n=2, 2× pour n=3, 1,5× pour n=4, 1,2× pour n=6–8 et 1,1× pour n=9–20) puis on multiplie par 1,645. Si le nombre d'échantillons dépasse 20, l'estimation naïve de l'écart-type suffit pour un intervalle à 90 %. Avec seulement deux valeurs on peut estimer l'écart-type par (haut−bas)/√2 corrigé par un facteur t≈1,846, ce qui revient quasiment à multiplier la différence par 1,3. Par exemple, à partir de 43 et 47 litres la différence est 4, la déviation estimée devient environ 5 litres et 49 litres se trouve à moins d'un écart-type de la moyenne, donc ce n'est pas un résultat exceptionnel.

06:04

Zig: Build System Reworked

La nouvelle implémentation du linker ELF peut désormais lier le compilateur Zig auto-hébergé avec LLVM et LLD, permet des reconstructions incrémentales très rapides sur x86_64 Linux et s'active avec -fnew-linker, bien que la génération d'informations DWARF pour le code Zig soit encore manquante. Le système de build a été réorganisé en séparant un petit processus "configurer" qui sérialise la configuration et un processus "maker" optimisé et mis en cache, ce qui accélère fortement zig build, réduit les recompilations inutiles et introduit quelques changements d'API comme la suppression de l'accès direct aux arguments pour run_cmd.addPassthruArgs(). Le backend LLVM prend désormais en charge la compilation incrémentale pour réduire le temps passé dans le compilateur, et une refonte de la résolution de types rend l'analyse plus paresseuse, élimine de nombreuses sur-analyses et produit des messages d'erreur plus utiles pour les boucles de dépendances. La bibliothèque standard propose des implémentations std.Io basées sur io_uring et Grand Central Dispatch reposant sur le basculement de pile utilisateur, tandis que la gestion des paquets stocke désormais les dépendances dans zig-pkg localement, conserve un cache global recompressé et ajoute l'option --fork pour utiliser des forks locaux dans le graphe des dépendances. L'effort pour préférer les API natives Windows (ntdll) sur kernel32 vise à éviter allocations et comportements imprévisibles, et le sous-projet zig libc remplace progressivement des centaines de fichiers C par des wrappers Zig pour réduire la dépendance aux libc externes et améliorer l'optimisation transversale.

06:04

Design Engineering Magazine

L'auteur réfléchit à ce qui rend une interface excellente et conclut que ce sont souvent de nombreux petits détails soignés qui font la différence. Dans l'ère de l'intelligence artificielle, la simple rapidité de développement ne suffit plus et les produits durables doivent être conçus avec une intention et un soin extraordinaires. La publication vise à partager les connaissances de son auteur sur l'ingénierie de conception, couvrant l'animation, la typographie, la mise en page, la couleur et d'autres aspects du design d'interface, et est rédigée par Jakub, ingénieur en design ayant travaillé notamment chez OpenSea. L'abonnement donne accès à une plateforme contenant des numéros interactifs avec démonstrations et code source, une bibliothèque de ressources et d'outils, des compétences d'agents et une communauté privée sur Discord, avec au moins une nouvelle parution chaque mois. Le magazine a été lancé avec trois numéros initiaux et est régulièrement mis à jour selon les retours des lecteurs, avec une newsletter pour annoncer les nouvelles publications.

06:04

Dusklight – GC Twilight Princess Decompiled

Dusklight porte un jeu d'aventure classique vers les plateformes PC et mobiles avec diverses corrections et améliorations. L'installation nécessite que l'utilisateur fournisse sa propre copie du jeu original pour faire fonctionner Dusklight. Grâce à la couche de compatibilité Aurora, le projet prend en charge Windows, Linux, macOS, iOS et Android. Les graphismes ont été libérés des contraintes matérielles du début des années 2000 et prennent en charge des résolutions et des fréquences d'images bien supérieures. De nombreuses options de qualité de vie permettent de choisir entre une expérience authentique ou une version plus moderne du jeu.

06:04

Mechanical Pencin: A website about the hidden engineering in everyday objects

Le site propose des démontages et des analyses illustrées d'objets du quotidien pour expliquer leur fonctionnement. L'auteur, Bryan, est ingénieur mécanique et artiste et réalise ce projet principalement par plaisir pour concilier ingénierie et dessin. Sa méthode consiste à démonter les objets, les modéliser en CAO, illustrer chaque vue, animer les pièces et présenter le résultat sur le web. Le nom du projet renvoie à sa profession d'ingénieur mécanique et à son goût pour le dessin au critérium pendant son enfance. Les visiteurs peuvent s'inscrire pour recevoir des mises à jour et sont invités à contacter l'auteur pour en savoir plus.

06:04

Microcode inside the Intel 8087 floating-point chip: register exchange

En 1980, Intel a introduit le coprocesseur flottant 8087 dont le fonctionnement repose sur un microcode complexe que le groupe Opcode Collective est en train de rétro-ingénier. L'article analyse en détail l'instruction FXCH, qui échange deux registres de la pile et s'implémente en 14 micro-instructions utilisant deux registres temporaires (tmpA et tmpB) et des nop pour respecter la temporisation. Le 8087 représente tout en interne comme des nombres flottants 80 bits (64 bits de mantisse, 15 bits d'exposant et un bit de signe) et dispose de huit registres organisés en pile, chaque registre ayant deux bits d'étiquette pour indiquer valide, spécial, zéro ou vide. Les exceptions sont gérées conjointement par microcode et matériel et couvrent six catégories ; elles peuvent être masquées pour permettre une poursuite raisonnable de l'exécution (par exemple en remplaçant des registres vides par NaN) ou non masquées pour provoquer une interruption traitée par le processeur hôte. Le microcode ROM de 1 648 micro-instructions a été extrait par imagerie du die et analyse des transistors d'une ROM semi-analogique, révélant de nombreuses optimisations matérielles, cas particuliers et fonctions ad hoc qui restent partiellement à élucider.