HN Digest
Briefing personnel.

Lire vite.
Garder l'essentiel.

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

11333 articles Page 47/1134 Sans filtre

Reverse-engineering a $35 backup camera display (AMT630A)

Cette bibliothèque Arduino/ESP32 permet de contrôler le moteur OSD matériel des moniteurs LCD composite basés sur le circuit AMT630A, offrant gestion de cinq fenêtres matérielles, textes, glyphes personnalisés, bitmaps 4bpp, palette animée, opacité, mise à l'échelle et mouvements de fenêtres. Le projet s'appuie sur des tests matériels et du reverse engineering, mais signale que les firmwares, timings et connexions I2C varient entre produits et que certaines fonctionnalités sont spécifiques au matériel ou au firmware testé. L'API propose l'initialisation I2C (pins ESP32 par défaut SDA=21, SCL=22), la configuration de fenêtres texte/bitmap, la gestion de l'Index RAM et de la Font RAM, le contrôle du blending/opacity/brightness, le support du blink matériel, le batching d'opérations et un convertisseur Python pour générer des en-têtes bitmap adaptés. Une mise en garde documente un conflit d'accès au registre système C6 entre le microcontrôleur 8051 interne et le contrôle I2C externe qui peut figer l'affichage sur le firmware testé, et décrit une procédure optionnelle utilisant un 74HC4066 pour entrer le menu usine et éviter cette contention sur ce firmware particulier. La distribution inclut de nombreux exemples (polices, glyphes personnalisés, bitmaps, animations, entrée en mode usine), une référence API complète, un outil de conversion d'images avec calibration et gestion de palette, ainsi que les instructions d'installation pour le gestionnaire de bibliothèques Arduino.

Hacking SimCity 2000 saved games

L'auteur raconte son expérience avec un ordinateur Packard Bell 386 SX sous MS-DOS où il jouait à des jeux et utilisait des logiciels éducatifs. En jouant à SimCity 2000, il a découvert que les parties sauvegardées étaient des fichiers modifiables et a appris à utiliser un éditeur hexadécimal pour augmenter artificiellement l'argent en jeu. Il évoque la conversion décimal-hexadécimal, un programme que son père aurait écrit pour l'aider, et la découverte que Norton DiskEdit possédait un convertisseur intégré. En vérifiant plus tard le format de sauvegarde, il a appris que les données utilisaient un encodage par longueur de répétition et que la valeur d'argent était stockée comme un entier 32 bits signé, et il a aussi expérimenté des outils de modification de mémoire comme Game Wizard. Cette pratique de modification binaire lui a permis de se familiariser avec les bits, octets et l'hexadécimal et a contribué à son intérêt ultérieur pour créer ses propres jeux.

Commit description as a thinking tool

Avant l'ère de l'IA, les descriptions de commit longues servaient à centraliser les informations utiles et à expliquer le quoi et surtout le pourquoi. Le fait de rédiger ces descriptions oblige à relire le code, à résumer les changements et souvent à réévaluer les décisions prises. Avec les agents d'IA qui génèrent code et messages de commit, il existe un risque que, faute de disposer de tout le contexte, l'IA invente des motifs qui ne correspondent pas aux raisons réelles. Fournir tout le contexte à l'agent réduit les fabrications, mais cela ne remplace pas la nécessité pour le développeur de vérifier que le code fait bien ce que la description affirme, et rédiger soi-même la description sert d'outil de vérification et de réflexion. La pratique de rédiger le pourquoi met aussi en lumière les décisions temporaires et leurs critères de sortie, oblige à formuler ce qui paraît évident et confirme la compréhension de ce qui est livré.

Solving Factorio Quality

L'extension Space Age de Factorio introduit un système de qualité en cinq paliers influencé par des modules qui ajoutent de l'aléatoire aux crafts. Simon Sapin modélise ces transformations de qualité par des matrices de transition T_quality et montre comment composer plusieurs étapes par multiplication matricielle. Pour les boucles de recyclage et d'upcycling il établit un équilibre à long terme traduit par un système linéaire A·x=b qu'il résout précisément par élimination de Gauss au lieu d'approximer une somme infinie d'itérations. Les exemples chiffrés montrent que le « washing » pur a un rendement très faible pour obtenir du légendaire, que l'upcycling (craft+recyclage) peut produire beaucoup mieux certains objets, et que le retraitement d'astéroïdes donne un rendement relatif avantageux pour le légendaire. L'auteur a implémenté un calculateur interactif en TypeScript utilisant des rationnels exacts et l'héberge en ligne pour permettre d'explorer ces modèles et paramètres.