Afficher le texte complet de Moby Dick dans un bouton 88x31 animé avec ImageMagick
Sommaire
En bref
- Un développeur a créé un GIF animé de 4,2 Mo qui affiche le texte intégral de Moby Dick, encadré dans un bouton web 88x31 pixels, défilant sur 19 heures.
- Le projet utilise ImageMagick pour générer les frames et la police TomThumb, conçue pour être lisible à très bas pixels.
- L'auteur explique le processus complet : extraction du texte, formatage avec les outils POSIX (cat, tr, fold), puis conversion en GIF animé.
Ce que dit la source
L'auteur s'interroge sur la possibilité d'animer un bouton 88x31 au-delà de simples clignotements ou défilements de quelques mots, et décide de relever le défi en y enchâssant un texte complet, Moby Dick. Le projet démontre que les formats GIF n'ont pas de limite pratique sur le nombre de frames (théoriquement jusqu'à 2^16 x 2^16 pixels), et qu'il est donc techniquement possible de créer une animation extrêmement longue.
- L'auteur s'appuie sur TomThumb, une police de caractères conçue pour être lisible à très bas pixels (6x4 pixels après espacement), ce qui permet d'afficher environ 22 caractères par ligne et 5 lignes par bouton
- Le texte est formaté en amont avec des outils POSIX simples (cat, tr, fold, sed) plutôt que de compter sur ImageMagick pour la mise en page, car celui-ci gère mal le texte multiligne
- La commande ImageMagick `convert` lit le texte formaté ligne par ligne depuis stdin et génère une frame GIF par ligne, soit environ 13 000 frames pour Moby Dick complet
- Le GIF final fait 4,2 Mo et dure 19 heures en animation continue (délai de 600 centiseconde par frame)
- L'auteur ajoute un script Python optionnel pour centrer le texte horizontalement dans le bouton, au lieu de l'aligner à gauche
Dans les commentaires
Débat enthousiaste et léger, axé sur l'appréciation de l'absurdité créative du projet. Peu de friction technique substantielle.
- Un commentateur signale l'utilisation inutile de `cat` en début de pipeline (la critique classique UUOC sur HN), suggérant de lire directement le fichier avec `tr < input.txt`.
- Quelques commentateurs auraient préféré une résolution plus lisible avec Arial et une animation accélérée, plutôt que 19 heures avec une petite police.
- Un commentateur note que GIMP plante en tentant de charger les ~12 000 frames du fichier complet, illustrant les limites pratiques des outils standards face à ce type de fichier extrême.
Notre lecture
Un projet clairement futile mais exécuté avec élégance et pédagogie. La valeur réside moins dans le résultat (un bouton web qui prend 19 heures à lire) que dans la démonstration accessible des chaînes POSIX, ImageMagick et des conventions du web vintage (88x31). L'article embrasse son inutilité avec humour, ce qui en fait un exemplaire intéressant du type de défi technique que les développeurs se lancent pour le plaisir. Aucune implication pratique pour une organisation, mais un contenu instructif et amusant pour qui explore les outils Unix et la programmation créative.