J’ai restauré le site de Crash Bandicoot 3

J’aime bien les sites web. Et je trouve qu’il y a un truc assez merveilleux de pouvoir naviguer sur un site conçu il y a vingt à trente ans. Il y a par exemple la toute première page web (1991) et le célèbre site du premier Space Jam (1996).

En 2023, Neal Agarwal a mis en ligne Internet Artifacts, une sorte de musée en ligne exposant différents artefacts marquants de l’Internet et du Web. Et chaque page web intégrée est « vivante », fonctionnelle et interactive. (Sans les éventuelles erreurs et manques laissés parfois par Archive.org.) Et je trouve ça fabuleux.

Je me suis demandé ce que ça ferait de restaurer un site web que j’ai connu dans mon enfance. Et, peut-être parce que je me suis remis à beaucoup jouer à la Playstation récemment, j’ai repensé au site du jeu Crash Bandicoot 3 (1998). J’étais déjà retombé sur le site, émerveillé, en 2015. Le site de 1998 était toujours en ligne, intact, dans son jus. Mais il avait malheureusement ensuite été supprimé à la résurrection de la licence en 2017.

Alors je me suis mis en tête de le restaurer.
Et voici le résultat.

Capture d'écran de la page d'introduction du site de Crash Bandicoot 3.
https://crash3.hteumeuleu.com/

Techniquement, ce n’était pas très compliqué. J’ai recherché chaque URL des quelques soixante-dix pages du site sur Archive.org. J’ai fait « Fichier > Enregistrer sous… » dans mon navigateur. J’ai nettoyé les fichiers HTML pour retirer les traces de Archive.org. Et j’ai réparé les liens pour que tout soit fonctionnel.

J’ai également ajouté une feuille de styles liée sur chaque page pour réduire la taille du texte. (J’imagine que le rendu de la police de base utilisée est légèrement différent de nos jours et rendait les textes trop grand pour leurs conteneurs.) Et j’ai appliqué un vilain hack pour centrer le site et le rendre facilement consultable sur mobile.

Je me suis limité à la restauration du site dans sa version HTML, et uniquement en anglais.

Et je suis plutôt content du résultat. Loin de me plonger dans une nostalgie réactionnaire (« C’était mieux avant »), ce site me fait réaliser les progrès réalisés depuis, que ce soit en terme de conception et d’ergonomie (je vous met au défi de représenter l’arborescence du site), de code (bonjour les balises <frameset>, <frame>, <font>, …) ou tout simplement de contenus (la galerie d’images avec les miniatures en 67×50 et la vidéo archi-compressée en 320×240).

Je trouverai ça très très chouette que la « restauration de site » devienne un concept en soi-même. Alors si vous avez le souvenir d’un site de votre jeunesse, essayez !

Influenceurs

Lu via Jeff Atwood sur Mastodon :

Nous nous trouvons maintenant au sein d’un autre changement de communication de masse. Un changement où les algorithmes ont remplacé l’encre et les ondes. Et, tout comme les médias de masse du vingtième siècle ont créé le concept de consommateur il y a un cent ans, ce nouveau changement a redéfini comment nous interagissons avec le monde. Et accepter que ce changement est permanent, dans le sens où nous ne pouvons plus faire marche arrière, est, j’en suis convaincu, la seule voie à suivre. Nous sommes soit des influenceurs soit des influencés. Trump et ses copains comprennent ça très bien. Les Démocrates, clairement, ne le comprennent toujours pas.

[…]

C’est comme ça que les Démocrates sont arrivés somnambules dans la dernière élection, supposant qu’ils étaient toujours en train de vendre un produit — l’ancienne Vice Présidente Kamala Harris — à des consommateurs (nous). Alors que Trump et les Républicains ont très bien compris qu’ils mettaient en avant un influenceur — Trump — soit à d’autres plus petits influenceurs ou des membres de leurs publics (qui, bien sûr, rêvent probablement de devenir influenceurs eux-mêmes).

font-synthesis

Je découvre via ce toot et cet article la propriété CSS font-synthesis qui permet de désactiver le faux gras ou italique généré par le navigateur (avec font-synthesis:none;). C’est supporté depuis 2014 dans Firefox, 2015 dans Safari et 2022 dans Chrome.

WordPress

Voici trois faits concernant WordPress.

  1. D’après un rapport quotidien du site W3Techs, WordPress est utilisé par 43,6 % des sites web au monde.
  2. Le 12 octobre 2024, Matt Mullenweg (à la tête de WordPress.org — la solution open source — et WordPress.com — la solution privée d’hébergement) a unilatéralement repris le contrôle de l’extension Advanced Custom Fields (ACF). L’extension est développée par WP Engine, une autre solution d’hébergement de WordPress, concurrente de WordPress.com. Depuis septembre, Mullenweg est parti complètement en vrille contre WP Engine, initialement pour un litige autour de l’utilisation de la marque « WordPress ».
  3. Le 20 janvier 2025, en commentaire à un tweet de Matt Mullenweg se félicitant que le nouveau site de la maison blanche du gouvernement de Donald Trump tourne sur WordPress, le compte officiel @WordPress déclare « We stand ready to serve. 🫡 » (ce qui peut se traduire par « Nous sommes à votre service. », affublé d’un emoji de salut militaire).

Qu’est-ce qui pourrait mal tourner ?

J’ai accidentellement supprimé ma chaîne Youtube

En 2010, en créant ce blog et le feu-compte Twitter qui allait avec, je m’étais aussi créé un compte Google Apps gratuit pour avoir une adresse mail associée à mon domaine. Peu de temps après, je m’étais aussi créé un compte Youtube avec mon adresse e-mail de mon propre domaine. (À l’époque, les comptes Google et Youtube n’étaient pas unifiés.)

Avance rapide jusqu’en janvier 2022 où Google annonce l’arrêt de sa versions gratuite de G Suite. Je bascule alors mes mails chez Migadu (et j’en suis très content). Et je n’ai alors plus aucune utilité de mon compte G Suite, que je compte laisser mourir de sa belle mort quand Google en aura ainsi décidé.

Avance rapide jusqu’en novembre 2024. Après des mois de relance et de rappel de Google pour m’avertir de la fermeture prochaine et définitive de mon compte G Suite, Google m’informe que ça y est, c’est fait. « Tant mieux », me dis-je, n’en ayant plus aucune utilité.

Sauf que dans le tas, tous les services Google associés à l’adresse e-mail que j’utilisais sont eux aussi supprimés. Et ça vaut donc pour mon compte Youtube.

Je m’en servais assez peu. Mais j’aimais bien avoir ce petit espace où je rassemblais toutes mes représentations en conférence, des rediffusions de mes rares lives sur Twitch, quelques enregistrements pour illustrer certains articles, et un essai infructueux de carrière de Youtuber.

Ce qui m’embête le plus, c’est que je n’ai pas vraiment de sauvegarde de tout ça. En creusant, je peux probablement retrouver certaines conférences diffusées ailleurs. Mais je ne suis pas sûr du tout d’avoir conversé les fichiers sources de tout le reste. Et j’ai aussi un peu la flemme et la fatigue de rechercher tout ça.

J’ai bien tenté de contacter le service client de Youtube qui m’a gentiment expliqué qu’il n’y avait rien à faire.

Ainsi soit-il.

Giving A.I. The Middle Fingers

Cette fausse couverture issue du numéro 41 de février 2025* de MAD Magazine est formidable.

Fausse couverture de Mad Magazine. Le titre Mad est remplacé par : M.A.I.D. En dessous, le titre "Faire des doigts d'honneur à l'IA." Dessous, l'illustration d'une main à six doigts qui tends deux majeurs.

*Je suis toujours émerveillé devant l’absurdité des dates de publication américaines, où la course à être le premier à sortir son édition du mois pousse à sortir son numéro de février 2025 en décembre 2024.

MySQL

Aujourd’hui, j’ai appris que le « My » de « MySQL » n’est pas un article possessif mais une référence au prénom de la fille ainée de son créateur, Michael Widenius. « My », comme « Little My » (Petite Mu en français) dans les Moomins.

.DS_store

Suite à une conversation avec un collègue, la question « pourquoi ces fichiers tout nuls s’appellent .DS_store ? » est survenue. Et je me suis souvenu de cet article de 2006 :

En 1999, j’étais le technical lead pour le Finder de Mac OS X chez Apple. À cette époque, la base de code du Finder avait huit ans et avaient atteint sa fin de vie. Faire le moindre changement demandait d’énormes efforts d’ingénierie, et le moindre changement cassait généralement deux ou trois trucs sans rapport en apparence. Pour Mac OS X, nous avons décidé de réécrire le Finder de zéro.

Une partie du travail impliquait de séparer son interface utilisateur de ses fonctionnalités, son back-end. Le back-end du Finder énumérait les fichiers, regardait les changements dans le système de fichier, gérait les métadonnées, comprenant l’emplacement des icônes et les réglages des dossiers. En interne, ces deux composants étaient connus sous les noms de Finder_FE et Finder_BE (Front-end et back-end).

Cependant, on s’est vite rendu compte que le back-end du Finder allait être utile en dehors du Finder. Ainsi est né le plan de le rendre un jour disponible en tant qu’API publique. Vu que j’étais responsable des noms « Icon Services » et « Navigation Services », on a décidé de partir sur « Desktop Services ». (À l’époque, on envisageait de renommer le Finder en « Desktop »). D’où le nom de .DS_store, pour « Desktop Services Store ».

Lucille Bluth de la série Arrested Development. L’air dédaigneux, une tasse de café à la main.

C’est juste une page web. Combien est-ce que ça peut peser ? 10 Mo ?

Lire la suite de « C’est juste une page web. Combien est-ce que ça peut peser ? 10 Mo ? »

Les Habits neufs de l’empereur

Molly White au XOXO Festival (à partir de 9:16) :

Ces derniers temps, on dirait que le Web est juste devenu un autre outil du capitalisme débridé, alors que des entreprises massives contruisent des murs toujours plus hauts autour de leurs empires numériques, traitant les personnes qui utilisent leurs logiciels comme des ressources dont ils peuvent extraire de l’argent et des données personnelles.

Que reste-t-il pour celles et ceux parmi nous qui ont vu le Web comme une toile infinie, un outil pour atteindre celles et ceux qu’on aurait jamais pu rêvé d’atteindre auparavant, un medium qui pouvait étendre les limites de ce qui était possible dans un monde analogique ?

Si on en croit les principaux sujets de discussion autour de la tech dans le grand public, et l’invention de termes comme « techlash » pour décrire l’opinion bien plus dur envers les sociétés du numérique comparé à leurs premiers jours, je pense que c’est un ressenti assez répandu.

Ceci étant dit, est-ce que ça vous surprend si je dis que, maintenant plus que jamais, je ressens ce sentiment brûlant d’excitation de ce qui est possible ? C’est parce que ce qui est vraiment nul ces jours-ci avec le Web, ce qui nous donne du désespoir et de la colère, a tout à voir avec l’industrie qui s’est formée autour du Web, mais pas avec le Web lui-même.

Le Web est toujours juste un support sur lequel n’importe quoi peut-être construit. Plus important encore, le Web c’est les gens qui l’utilisent, pas les sociétés qui se sont établies autour. Et la grande désillusion qu’on voit en ce moment est peut-être une bonne chose. Plus que jamais, des gens ont réalisé que les rêves utopiques d’un Web qui n’apporterait que du positif et des choses merveilleuses étaient peut-être erronés. Que les sociétés du numérique n’ont peut-être pas toujours nos propres intérêts à l’esprit. Et que les slogans comme « Don’t be evil » sont plus proches du marketing que de la vérité.

Avec ce savoir vient du pouvoir. Le pouvoir de donner au Web la forme que l’on souhaite tout en se battant contre les formes dont on ne veut pas. L’industrie du numérique a un pouvoir structurel et financier, c’est sûr. Mais la seule chose qui permet ce genre de gangrène — et pour citer le grand Cory Doctorow, de « merdification » — que l’on a vu se propager à travers les plate-formes qui font désormais parties intégrantes de la vie des gens, est la main mise des dites plate-formes sur le Web. Et c’est fragile.

Mon expérience de lutte dans ce combat m’a convaincu d’à quel point nous, les gens normaux de tous les jours, avons du pouvoir. Même quand on a en face des plate-formes massives et des sociétés qui valent des milliards de dollars.

J’ai un site appelé « Web3 is Going Just Great ». Et je l’ai créé fin 2021. Et pour celles et ceux qui étaient là en 2021, l’industrie du numérique faisait ce qu’elle sait faire de mieux : « hyper » une nouvelle sous-industrie, en vendant aux gens des produits dont ils n’avaient probablement pas envie, et en leur racontant l’histoire que la blockchain va être le futur de la finance, du Web, et même de la société, et que rater le train en marche causera leur péril. L’histoire était que tout ce que vous faites serait bientôt sur la blockchain, ce qui, je crois, était censé être une promesse excitante et pas une menace.

Inutile de dire que j’avais quelques inquiétudes. Pour moi, il semblait que le vrai récit n’était pas dit. Perdue au milieu de titres décrivant des jeunes de vingt ans à bord de Lamborghini était la réalité de l’industrie : que beaucoup de personnes étaient blessées par un secteur qui semblait avoir 99 fraudes pour chaque projet qui essayait un tant soit peu de faire quelque chose de valeur. Mais qu’est-ce que je pouvais faire ? J’étais juste une ingénieure logiciel d’une vingtaine d’années, sans plate-forme, sans relations. J’ai fini par faire ce que j’aime faire : construire quelque chose de cool, principalement pour le plaisir de le faire, et j’y ai écrit ce que je voyais. J’ai codé vite fait un site web qui pouvait illustrer les désastres de cette industrie soit-disant prometteuse. Juste en postant un résumé rapide à chaque fois qu’un projet se faisait hacker ou que les fondateurs se barraient avec tout l’argent, ou que quelqu’un proposait de faire quelque chose comme mettre vos données médicales sur la blockchain. (Ils n’arrêtent pas de faire ça !) J’ai pensé que la mise en page en frise chronologique aiderait à illustrer la fréquence à laquelle tout ça arrive, et que le compteur d’argent en feu pouvait illustrer l’échelle incroyable à laquelle ceci se faisait au détriment des gens.

Je ne pensais pas que ça irait où que ce soit. Ce serait juste un petit projet amusant pour moi et les quelques amies qui ressentent la même chose à propos des « habits neufs de l’empereur » qui se joue devant nos yeux.

Alors ça c’est drôle parce que, pas plus tard que la semaine dernière, j’ai relu avec mes enfants Les Habits neufs de l’empereur. Je n’aurai jamais été capable de faire ce rapprochement. Mais c’est tellement parfait.

À chaque fois que je vois des articles de presse ou des gens en ligne s’extasier sur les crypto-monnaies, la réalité virtuelle, l’intelligence artificielle, et je ne sais quoi encore, je me pince et je me demande si je suis le seul à trouver ça complètement nul et sans intérêt.

L’objectif sous-jacent de l’IA

Lu sur Mastodon :

The underlying purpose of AI is to allow wealth to access skill while removing from skill the ability to access wealth.

Ce qui, en français, donnerait :

L’objectif sous-jacent de l’IA est de permettre aux riches d’accéder à des compétences tout en supprimant à ces dernières la capacité d’accéder à la richesse.

Utiliser un certificat SSL sur un site Jekyll en local

Sur Playorama.app, j’ai mis en place la possibilité de streamer son écran d’ordinateur vers la Playdate. J’utilise la bibliothèque pd-usb qui utilise l’API Web Serial (fonctionnalité propriétaire de Chromium, meh). Et pour que ça fonctionne, il faut impérativement être en HTTPS (même en local).

J’étais tombé il y a quelques mois sur cet article qui explique parfaitement la marche à suivre (dans mon cas, sur un site Jekyll). En résumé :

brew install mkcert
brew install nss # for firefox
mkcert -install

Puis dans le dossier du projet :

mkdir ssl/
mkcert -key-file ssl/key.pem -cert-file ssl/cert.pem "playorama.local"

Et enfin on lance Jekyll avec les arguments suivants :

bundle exec jekyll serve --ssl-key ssl/key.pem --ssl-cert ssl/cert.pem

Et ça marche.

Résoudre l’erreur « Unable to provision site » avec Local pour WordPress sur macOS

J’ai récemment découvert l’application « Local » pour facilement déployer un site WordPress en local. Mais à mon grand désarroi, l’application sur macOS sur un Mac avec un processeur Apple (M1, M2, …) déclenchait une erreur « Unable to provision site » (comme celle-ci) à la création d’un site.

La solution ? Installer Rosetta à la main en exécutant la commande suivante dans un Terminal :

softwareupdate --install-rosetta

LEGO Jurassic Park: The Unofficial Retelling

J’ai enfin vu le court-métrage animé « LEGO Jurassic Park: The Unofficial Retelling ». Bon, ça casse pas des briques (huhu), c’est très enfantin, mais j’ai quand même ri deux fois. Et surtout j’ai bien aimé le clin d’oeil à la fin avec ce personnage non nommé qui porte le même T-shirt que Spielberg sur le tournage du film.

À gauche, une photographie de Steven Spielberg sur le tournage de Jurassic Park, avec casquette, lunettes et T-shirt arborant plusieurs T-Rex sur fonds colorés. À droite, une capture d'écran du film LEGO montrant un personnage barbu avec casquette, lunettes et le même T-shirt.À gauche, une photographie de Steven Spielberg sur le tournage de Jurassic Park, avec casquette, lunettes et T-shirt arborant plusieurs T-Rex sur fonds colorés. À droite, une capture d'écran du film LEGO montrant un personnage barbu avec casquette, lunettes et le même T-shirt.

Tirer parti d’OpenType pour créer une police de coloration syntaxique

J’adore l’idée. Un des avantages non mentionné que j’y vois est que, vu qu’il s’agit simplement d’une déclaration @font-face, le fichier de police (qui fait 53 Ko) n’est pas téléchargé s’il n’est pas utilisé sur une page.

Playdate Pizza Cover

Panic sort une housse de protection pour la Playdate en forme de boîte à pizza. C’est ridicule donc parfaitement indispensable. Et le site offre une utilisation rare de border-image pour faire le cadre en damier.

La housse de protection version Pizza pour la Playdate.

Contrôles alternatifs.

Madeline Thorson (la conceptrice du jeu Celeste) a partagé sur Mastodon :

Il y a un nombre surprenant de personnes qui jouent à Celeste avec une combinaison de clavier et de manette, avec une main sur chaque, comme ça :

Schéma d'un clavier et d'une manette PS5 côte à côte. Les touches ZQSD contrôlent la direction, les boutons de la manette contrôlent le saut, le dash et l'interaction.

Ça m’a fait penser à cette technique utilisée par les personnes qui jouent à Tetris de manière compétitive jouent : le rolling. J’ai découvert ça via la formidable chaîne Youtube EGO :

Le rolling, ça consiste à utiliser ses cinq doigts pour les taper les uns à la suite des autres très vite contre l’arrière de la manette, de manière à presser la manette contre votre doigt.

À voir (à partir de 7 minutes).

Not By AI

Un badge pour signaler qu’une création a été faite sans Intelligence Artificielle. (On en est là.) D’autres alternatives ici, ou .

Au revoir Twitter.

La semaine dernière, j’ai définitivement supprimé mon compte Twitter. Je n’y ai rien posté depuis plus d’un an, et je n’y mettais quasiment plus les pieds. Les frasques du nouveau propriétaire ne me font rien regretter du tout. Je laisse derrière moi 15 116 abonnés et plus de 24 000 tweets. J’ai mis en place une archive de mes tweets sur tweets.hteumeuleu.fr grâce à Tweetback (qui tourne sous Eleventy). Je suis désormais plutôt actif sur Mastodon et j’espère vous y retrouver.

Responsive Web Design

Lu sur Mastodon :

Après toutes ces années, je viens seulement de me rendre compte que l’illustration de l’article d’Ethan Marcotte qui a donné naissance au Responsive Design est elle-même responsive.

Je… Je… Je le découvre aussi.