HN Digest
Briefing personnel.

Edition quotidienne

Lire vite. Garder l'essentiel.

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

7089 articles Page 388/709 Sans filtre

06:06

Game devs explain the tricks involved with letting you pause a game

Mettre un jeu en pause est une action très courante et généralement tenue pour acquise par les joueurs. Les développeurs utilisent différentes méthodes pour la pause, comme régler le timescale à zéro ou à une valeur extrêmement petite selon le moteur. Il existe plusieurs types de pauses (menu, déconnexion de manette, inventaire, menu système) qui peuvent entrer en conflit et provoquer des bugs. Une méthode fréquente consiste à prendre une capture d'écran du jeu au moment de la pause pour l'afficher en arrière-plan pendant que le jeu réel est arrêté ou déplacé. Beaucoup de développeurs font des erreurs à leurs débuts, apprennent à organiser les contrôles de pause (par exemple une seule vérification hiérarchique) et améliorent ainsi les performances et la robustesse.

06:06

The seven programming ur-languages (2022)

L'article décrit sept familles fondamentales de langages — ALGOL, Lisp, ML, Self, Forth, APL et Prolog — qui imposent chacune des schémas de pensée et des patterns de programmation distincts. La famille ALGOL regroupe les langages impératifs classiques et constitue la base de la plupart des langages courants en organisant le code autour d'assignations, conditions, boucles et fonctions. Lisp se caractérise par une syntaxe en listes et un système de macros permettant de redéfinir la sémantique, tandis que ML met l'accent sur les fonctions de première classe, la récursion et les types Hindley-Milner. Self et Smalltalk incarnent la programmation par objets et messages, Forth est un langage à pile et extensible, APL traite tout comme des tableaux n-dimensionnels avec des opérateurs symboliques, et Prolog exprime la programmation comme recherche logique sur des faits et règles. L'auteur conseille de bien connaître un langage de la famille ALGOL, d'apprendre SQL, puis d'explorer régulièrement des langages issus d'autres familles pour élargir ses compétences et ses « voies neuronales ».

06:06

Reading Input from an USB RFID Card Reader

L'auteur décrit un lecteur RFID bon marché qui, une fois branché, se comporte comme un clavier et envoie les frappes vers l'entrée standard lorsqu'on passe une carte. Pour empêcher que les événements ne soient propagés à d'autres applications, il utilise l'appel ioctl EVIOCGRAB pour capturer le périphérique en exclusivité. Plutôt que d'utiliser une bibliothèque Python externe, il présente une implémentation en Go qui ouvre le périphérique /dev/input/by-id, applique EVIOCGRAB et lit les événements. Le programme définit une structure inputEvent, utilise une table de correspondance des codes de touches pour reconstituer les caractères, assemble le code de la carte jusqu'à l'appui sur Entrée puis affiche la valeur RFID et libère la prise exclusive à la fin. Le texte indique d'identifier le périphérique avec find /dev/input/by-id et montre que le chemin du périphérique peut être passé en argument de ligne de commande pour l'adapter au système.

06:06

Archive of BYTE magazine, starting with issue #1 in 1975

Ce numéro de septembre 1975 couvre des sujets matériels et logiciels liés aux micro-ordinateurs, tels que mémoire, interfaces et langages d'assemblage. Parmi les articles figurent des thèmes matériels comme le recyclage de circuits intégrés, le décryptage de claviers mystérieux et un guide sur le choix de microprocesseur. Des rubriques pratiques présentent une interface série, la revue d'un kit micro-ordinateur RGS 008A et des conseils pour écrire son propre assembleur. La partie applications inclut une contribution sur le programme Life et des sections régulières traitent de la genèse du magazine, des clubs, critiques de livres et lettres de lecteurs. Le fascicule comprend également des services aux lecteurs, des annonces de clubs et des ressources pour développeurs et amateurs d'informatique.

06:06

3D-Printing a Trombone

L'auteur présente un projet d'impression 3D d'un trombone en commençant par expliquer la physique des instruments à vent pour poser le contexte. Il détaille la différence entre tuyaux ouverts et demi-ouverts, comment embouchure et pavillon rapprochent les harmoniques et mentionne les notes pédales et double pédales. La coulisse allonge le tube d'environ √2 pour baisser la note mais ne couvre pas entièrement l'écart entre le pédal et le deuxième harmonique, nécessitant des solutions comme une attachment ou des «faux» tons. Le journal de construction indique l'utilisation de tuyaux PEX, d'un embout métallique, des modifications de fichiers pour la durabilité, des problèmes d'impression résolus et environ 16 heures d'impression au total. Le prototype fonctionne et sonne de façon proche d'un trombone métallique avec des harmoniques assez justes, bien que certains tons soient mous, la coulisse soit un peu flexible et l'équilibre de poids nécessite un ajustement.

06:05

A. J. Ayer – ‘What I Saw When I Was Dead’ (1988)

A. J. Ayer raconte qu'après une rechute de pneumonie et un arrêt cardiaque de quatre minutes provoqué par une fausse route, il a été réanimé et a récupéré plus vite que prévu. Il rapporte une expérience très vive au moment de la mort apparente, décrivant une lumière rouge douloureuse, des pensées devenant des personnes et une tentative symbolique d'opérer sur le temps pour rétablir l'ordre de l'espace. Il examine les implications philosophiques de cette expérience en discutant des critères de la mort, de la dépendance probable de la pensée au cerveau et des théories empiriques de l'identité personnelle de Hume et William James. Il conclut que, même si son expérience affaiblit quelque peu sa conviction que la mort serait la fin de la conscience, elle ne le conduit pas à croire en l'existence d'un dieu et n'apporte pas de solution décisive aux problèmes du rapport esprit-corps ou de l'identité personnelle. Il évoque aussi la résurrection du corps, la possibilité d'une vie future sans attachement corporel et les positions d'autres philosophes comme McTaggart, Broad et Ewing, en soulignant que la preuve d'un au-delà n'implique pas nécessairement l'existence d'un dieu.

06:05

Reverse Engineering ME2's USB with a Heat Gun and a Knife

En 2024 une mise en ligne d'un client PC a motivé l'auteur, déjà engagé dans la préservation de jeux portables, à étudier le dispositif ME2 afin de restaurer sa synchronisation USB entre l'appareil et le serveur. L'appareil contient une mémoire flash SST39VF3201 et un microcontrôleur en chip-on-board masqué par de l'époxy; l'auteur a enlevé la puce flash au pistolet à chaud, obtenu un dump et finalement décapsulé le CoB avec un cutter pour exposer le die. L'analyse des photos du die a permis d'identifier un microcontrôleur GeneralPlus GPL162002A/B exécutant l'architecture μ'nSP, ce qui a autorisé le désassemblage et l'annotation du firmware. L'étude du firmware a révélé des commandes USB propriétaires (ID 0xFF) implémentant des opérations de lecture, programmation et effacement de la flash, que l'auteur a pilotées via libusb/rusb pour modifier points et gemmes, et un bug de contrôle de bornes a permis la lecture arbitraire de toute la mémoire et l'extraction de l'ROM intégrée. Le travail a abouti à un utilitaire en ligne de commande (lecture/écriture de flash, lecture/réglage des points et gemmes, dump mémoire et surveillance des boutons) publié dans le dépôt ME2-Restoration, montrant qu'il est possible de restaurer le protocole matériel sans le logiciel officiel et fournissant en prime un cliché haute qualité du die.