1 points par GN⁺ 2024-01-26 | 1 commentaires | Partager sur WhatsApp
  • Dans les années 1990, le web personnel manquait d’outils de mise en page standardisés : on bricolait la disposition et les effets avec des techniques comme , , 1x1.gif,   et DHTML
  • Avant que les mises en page CSS ne s’imposent, 1x1.gif et les   répétés servaient presque d’outils de mise en page essentiels pour pousser les éléments à leur place, ce que l’article tourne en dérision avec une nostalgie exagérée
  • Les premiers usages de CSS se concentraient sur de petits effets visuels, comme supprimer le soulignement des liens ou changer le style de a:hover, au point de brouiller la distinction entre liens et texte normal
  • DHTML mêlait CSS et JavaScript pour créer des effets comme des alert() au chargement, des flocons de neige, des menus accordéon ou des `` personnalisés, dans une culture du copier-coller
  • Polices pixel, boutons 88x31, Internet Explorer 4.0, GeoCities et FrontPage ’98 apparaissent comme autant de façons dont les sites personnels affichaient alors leurs choix techniques et leur identité

Quand et faisaient office d’animation

  • La combinaison consistant à mettre dans était traitée avec humour comme une incroyable animation informatique sur le web des années 1990
  • Le texte repose sur une fierté exagérée selon laquelle les développeurs web des années 1990 avaient des choses plus importantes à raconter que jQuery ou les bases de données non relationnelles d’aujourd’hui

Des mises en page poussées au 1x1.gif

  • 1x1.gif, spacer.gif et transparent.gif désignent tous un GIF transparent de 1 pixel × 1 pixel
  • En définissant de grandes valeurs pour les attributs WIDTH et HEIGHT d’une image HTML, on pouvait créer un espace invisible et pousser les éléments de la page à l’endroit souhaité
  • L’exemple de code utilise ensemble , , , , ``, ainsi qu’un CGI de compteur web, pour gérer à la fois la structure et la décoration
  • La satire se poursuit en affirmant que 1x1.gif permettait de placer des éléments n’importe où sur la page et reste encore aujourd’hui la seule façon de centrer verticalement

L’espacement manuel au  

  • Quand il était difficile d’utiliser une balise image, on pouvait aussi répéter   pour ajuster les espacements
  • Un exemple montre plusieurs   insérés entre PLEASE SIGN et MY GUESTBOOK BELOW: pour positionner le texte du livre d’or
  • La blague se poursuit : si l’on avait reçu un nickel pour chaque   utilisé dans les années 1990, on aurait eu largement de quoi payer les dépassements mensuels d’AOL

Les débuts de CSS ont commencé par supprimer le soulignement des liens

  • CSS est présenté comme une technologie apparue à la fin de l’âge d’or du HTML, avec la promesse de séparer contenu et style
  • La première chose que l’on faisait alors avec CSS était de supprimer le soulignement des liens
  • Les liens ressemblaient à du texte, le texte ressemblait à des liens, et il devenait difficile de savoir où cliquer
  • L’effet de traînée de flammes derrière le curseur de la souris est également mentionné
  • Un exemple de fichier index.shtml de 2000 ne contient, en CSS inline, que a:hover {text-decoration: none; color: #000000}
    • Ce code supprime le soulignement au survol et change la couleur en noir
    • Le fait qu’il s’agisse d’un fichier index.shtml utilisant SSI est aussi souligné sur le ton de la plaisanterie

DHTML et la culture du copier-coller de code

  • Après avoir supprimé le soulignement des liens avec CSS, la suite consistait à afficher un alert("Welcome to my website!") au chargement de la page avec JavaScript
  • L’association de CSS et JavaScript est tournée en dérision comme une « technologie de la terreur » appelée DHTML
  • Parmi les effets DHTML figuraient des flocons tombant sur la page, des images maps animées en menus accordéon et des personnalisés utilisant
  • Grâce à des sites comme Dynamic Drive, tout semblait pouvoir se résoudre en copiant-collant un bloc de 50 lignes de code plutôt qu’en réglant soi-même le problème
  • DHTML est comparé au Twitter Bootstrap de l’époque

Polices pixel et esthétique de la basse résolution

  • Les écrans d’ordinateur de l’époque étaient des CRT, physiquement grands mais à faible résolution
  • Pour utiliser efficacement les pixels disponibles, il existait une tendance aux petites polices d’environ 6 points
  • En voyant de simples fontes basées sur des pixels, des développeurs web se mettaient à vouloir devenir illustrateurs, et certains tentaient d’ajouter des illustrations pixel art isométriques aux écrans de démarrage
  • Une autre blague suggère qu’il aurait peut-être mieux valu consacrer ce temps et cet argent à investir dans des introductions en Bourse dot-com plutôt qu’à installer Photoshop

Internet Explorer 4.0 et les boutons 88x31

  • Le texte ironise en disant que si les gens détestent Internet Explorer aujourd’hui, c’est parce qu’il s’est éloigné de la « forme pure » d’Internet Explorer 4.0
  • Internet Explorer 4.0 est exagérément présenté comme un navigateur parfait, avec Active Desktop et Channels
  • À l’époque, de nombreux sites affichaient des boutons de 88x31 pixels indiquant quel navigateur les visiteurs devaient utiliser, ainsi que les outils et services employés par le site
  • Ces boutons sont comparés aux décorations d’un uniforme militaire, montrant les choix et les appartenances de l’administrateur du site
    • Exemple d’éditeur : FrontPage ’98
    • Exemple de serveur web : GeoCities
    • Une blague ajoute que l’on voulait un web ring qui propulse le site tout en haut, mais qu’en réalité cela n’existait pas

Une plaisanterie sur le web d’aujourd’hui

  • Le web actuel est décrit comme un empilement de multiples abstractions au-dessus de JavaScript
  • Le texte se conclut en s’étonnant que l’on en soit arrivé au web d’aujourd’hui, tout en plaisantant sur le fait que JavaScript ne sait même pas faire correctement des calculs mathématiques
  • Il se termine en suggérant d’ajouter beaucoup de   dans la prochaine pull request pour taquiner l’équipe

1 commentaires

 
GN⁺ 2024-01-26
Avis sur Hacker News
  • L’histoire des images maps côté serveur me parle vraiment
    Je suis plutôt admin système qui fabrique de temps en temps des outils web qu’un vrai programmeur web, donc mes compétences web sont restées bloquées au début des années 2000, et j’ai aussi une sorte d’aversion bizarre pour JavaScript. Dans un outil récent, j’avais besoin d’un comportement de base pour gérer des points sur une image ; cinq lignes de JavaScript auraient suffi, mais en 2023 je l’ai fait avec une image map côté serveur
    Au final, au lieu de 5 lignes de JavaScript, je me suis retrouvé avec 50 lignes de Python pour gérer l’état et un cas spécial dans le gestionnaire de requêtes pour traiter une étrange syntaxe de fragments. C’est un peu gênant, mais j’éprouve quand même une fierté bizarre à l’avoir fait fonctionner

    • Le pire avec les images maps côté serveur, c’est que ça casse complètement l’archivage
      Si vous trouvez un vieux site dans la Wayback Machine d’archive.org et que toute sa page d’accueil est une image map côté serveur, sans le serveur d’origine il n’y a aucun moyen de connaître les URL de destination du reste du site : c’est une impasse totale
    • En 2015, j’ai corrigé la prise en charge des images maps côté serveur dans Chromium
      À l’époque, c’était quasiment cassé : si le zoom n’était pas à 100 % ou si le padding n’était pas à 0, les coordonnées étaient fausses, et il y avait plusieurs problèmes similaires. Personne ne s’en était rendu compte parce que les images maps elles-mêmes étaient déjà très peu utilisées, et les images maps côté serveur encore moins
      Moi aussi, je voulais m’en sortir facilement sans JavaScript et je me suis souvenu du HTML des années 90, mais après avoir corrigé le bug de Chromium, j’ai fini par conclure que les images maps côté serveur n’étaient pas terribles ; j’ai utilisé JavaScript, et la version JavaScript était meilleure
    • Je comprends complètement ce sentiment de “même si ce n’est que 5 lignes de JavaScript dans tout ce truc infernal, je ne mettrai pas ça dans mon programme”
      HTMX ressemble vraiment à une délivrance, et en achetant Tailwind UI, n’importe qui peut devenir quelqu’un d’assez dangereux côté frontend. Cela dit, je suis curieux de connaître d’autres points de vue sur ce qui rend JavaScript si désagréable. Personnellement, le manque de cohérence de la syntaxe y est pour beaucoup, et côté TypeScript, rien que le dossier node_modules me donne la nausée
      Globalement, cette impression de ne pas pouvoir contrôler ce qui se passe m’a tenu longtemps éloigné du frontend
    • Fin 2019, je devais manipuler depuis chez moi l’interface graphique d’un appareil au bureau, mais il n’y avait pas de bureau à distance ; seulement un outil de capture d’écran et un outil en ligne de commande pour injecter des clics
      J’ai écrit quelques dizaines de lignes de Lisp pour créer un serveur web qui servait une image map de l’écran, et quand une requête d’image map arrivait, il injectait le clic. C’était un petit outil jetable pour m’éviter un aller-retour au bureau, puis le COVID est arrivé et beaucoup trop de gens se sont mis à l’utiliser ; je ne sais même pas si quelqu’un l’utilise encore aujourd’hui
  • “C’est encore aujourd’hui le seul moyen de centrer verticalement un élément” n’est plus vrai, mais le coût en productivité de ne pas avoir pu simplement utiliser vertical-align: middle; dans un div pendant ces 30 dernières années doit se chiffrer en milliards de dollars
    Je me souviens aussi de la mode, à l’époque d’IE4 ou IE6, qui consistait à mettre un style overline sur :hover pour les liens. On fabriquait aussi des div et des boutons aux coins arrondis avec des tableaux, et même dans les années 2000, la souffrance consistant à découper dans Photoshop puis à placer les morceaux dans des cellules de tableau continuait

    • Même à l’époque, dans les cellules de tableau, il y avait VALIGN=MIDDLE
      Je ne sais pas si c’était déjà possible dans les années 90, mais dans les années 2000, ça existait clairement
    • Aujourd’hui, je fais écrire ce genre de CSS par ChatGPT, et le plus drôle, c’est qu’il semble proposer au moins une douzaine de solutions
      Cela dit, il mélange souvent des règles redondantes, du genre en ajouter cinq ou plus alors que deux ou trois suffiraient. C’est vraiment bête à un point presque comique
    • L’époque où l’on faisait des coins arrondis avec des tableaux était vraiment une mode
      Je ne sais pas combien de temps on a perdu à cause de ces fichus coins
    • Même aujourd’hui, l’alignement vertical reste un gros casse-tête, et demande beaucoup de compréhension subtile
      Même avec Tailwind CSS, ce n’est pas simple : il faut sans cesse vérifier si l’élément est un bloc, du texte, quel est le layout parent, etc.
    • Un de mes hacks CSS préférés est div { display: table-cell; vertical-align: middle; }
      Ça ne marche pas dans toutes les situations, mais même si ça paraît sale au début, la séparation des préoccupations reste préservée et je ne vois pas vraiment d’autre inconvénient
  • Dans ce contexte, DHTML signifiait Dynamic HTML, pas Distributed HTML, et c’est aussi pour ça que le “Dynamic” de Dynamic Drive s’appelait ainsi

    • “DHTML, c’est évidemment distributed HTML” était une blague, mais elle semble avoir été mal citée
      Comme d’autres personnes l’ont mal citée de la même façon, il est aussi possible que l’auteur l’ait récemment modifiée sur le ton de la plaisanterie
    • Cela dit, la description “Technology of Terror” reste tout à fait valable sans contestation
    • Je me suis demandé si c’était censé faire allusion au passage plus bas sur le fait qu’on pouvait “simplement copier-coller”, et peut-être que c’était aussi un détournement de DCOM
    • Ça a été discuté dans le fil ci-dessous : https://news.ycombinator.com/item?id=39127528
      La conclusion était que c’était bien une blague, mais pas une très bonne
    • On dirait bien qu’on a trouvé ici de vrais ennemis du fun
  • Impossible de faire l’impasse sur les frames. C’était la “solution” d’origine au problème consistant à devoir modifier la barre de navigation sur toutes les pages
    Le problème, c’est que les moteurs de recherche pouvaient indexer séparément chaque page de frame, et qu’il fallait donc gérer le cas où quelqu’un arrivait directement sur une page de frame. Les lignes de séparation entre les sections étaient aussi toujours très visibles, ce qui rendait le tout maladroit et peu pratique

    • Les vrais cadors utilisaient les Server Side Includes
      On mettait un commentaire spécial dans le HTML, et Apache le remplaçait par le contenu d’un autre fichier avant de l’envoyer au client
    • Si un autre site web mettait ma page dans une frame, on déployait un script frame-buster, et si une page se retrouvait orpheline sans ma frame, on invoquait un script frame-joiner
    • Les frames sont encore étonnamment bien utilisées aujourd’hui comme technologie de micro-frontend sous-jacente
      La théorie est ici : https://martinfowler.com/articles/micro-frontends.html#Run-t..., et on peut voir une implémentation sur https://luigi-project.io
    • Une proportion ridiculement importante des usages “AJAX” de JavaScript aurait aussi pu être gérée avec des frames, et si les frames avaient continué à évoluer un peu au lieu de stagner, les performances auraient probablement été meilleures
      Si, en plus, les tableaux HTML avaient eu des fonctionnalités de base, et si des tableaux et vues en liste alimentés par des sources de données avaient été disponibles au milieu des années 2000, on aurait économisé un temps et un argent considérables
      Et ne me lancez même pas sur tout l’argent qu’on aurait économisé si le web avait adopté un standard de paiement et si le navigateur lui-même avait géré la saisie des informations de paiement
    • Les bordures entre sections n’étaient même pas exactement identiques d’un navigateur à l’autre
      Les jeunes, il fut un temps où tout le monde n’utilisait pas le même navigateur
  • En 1996, la page d’accueil de Microsoft avait une barre de menus qui se déployait au survol de la souris, et je m’étais mis en tête de comprendre comment ça marchait
    À l’époque, IE avait un bouton “Afficher la source”, mais, faute de sens de la plateforme, il ouvrait le document dans Notepad ; comme le serveur était sous Unix, les retours à la ligne étaient en \n, alors que Windows attendait \r, si bien que le source HTML apparaissait comme un très long document sur une seule ligne
    J’ai épluché le source : les balises HTML, je les connaissais toutes, et le contenu n’était rien d’autre que le texte visible sur la page. La seule chose inconnue, c’étaient les entités HTML, et comme j’en voyais sur tous les sites avec des menus animés, j’étais persuadé que c’était lié
    Pendant six mois, j’ai cru que les effets DHTML étaient en réalité implémentés par des formules magiques faites de entités HTML, puis j’ai fini par trouver des tutoriels WebMonkey, ce qui m’a entraîné dans toute une carrière

    • Afficher la source a été mon point de départ
      Les minificateurs et les compilateurs sont formidables, mais l’époque où l’on pouvait lire le source bien rangé et maintenu d’un site bien conçu me manque vraiment
      J’aurais aimé qu’on s’oriente vers des méthodes de compression qui préservent, même en production, la forme d’origine du code source, et qui conservent l’idée que d’autres personnes, partout dans le monde, liront notre code. Cette culture a joué un grand rôle dans l’évolution rapide du web à ses débuts, et elle a clairement beaucoup compté dans mon entrée dans le secteur
    • Je me demande ce qui créait réellement les menus animés à l’époque. Comme je ne faisais pas partie de la génération qui codait alors, j’imagine que c’était probablement une balise ou un script quelconque
    • J’ai eu une expérience similaire en voulant changer une image au survol de la souris
      J’ai acheté JavaScript Bible chez Barnes & Noble, je l’ai lu pendant le week-end, et je n’ai jamais cessé d’apprendre depuis
    • WebMonkey, voilà qui réveille les souvenirs
  • Il ne faut pas oublier que les tableaux servaient aussi aux coins arrondis
    On créait un tableau 3×3, on mettait des images dans toutes les cellules sauf celle du centre pour fabriquer un élément de site web aux coins arrondis, et ça donnait l’impression d’avoir atteint le sommet de l’expression humaine
    Les e-mails HTML étaient aussi à la mode, et comme les clients mail se mettaient à jour bien plus lentement que les navigateurs, cette technique a continué à être utilisée jusque dans les années 2010 si l’on voulait un affichage correct

    • Je n’oublierai jamais les lots d’images du genre tl.gif, tr.gif, bl.gif pour les tableaux 3×3
      À l’époque, les navigateurs ne rendaient pas l’image de fond des cellules vides, donc il fallait aussi le fameux 1x1.gif mentionné dans l’article pour faire apparaître le fond des cellules de gauche et de droite. C’était le bon temps
    • Dès qu’on a obtenu border-radius, la mode en design a changé et plus personne n’a voulu de coins arrondis
    • Plusieurs éléments de l’article me semblent plutôt relever du début des années 2000 que des années 90
      Avant de faire des coins arrondis avec des tableaux, je me souviens avoir bricolé des skins pour une appli de messagerie multi-protocoles appelée Trillian. Elle gérait Yahoo Chat, ICQ, etc., et on mettait des images répétées dans les cellules du haut et des côtés, un peu comme pour les coins arrondis, afin que le redimensionnement de la fenêtre fonctionne bien
    • https://www.folklore.org/Round_Rects_Are_Everywhere.html
      Le plus grand accomplissement du grand et tout-puissant Oz. Bon, l’iPhone a peut-être été plus important
    • Les tableaux servaient aussi pour les ombres
  • Sur les sites web des années 90/2000, impossible de ne pas avoir un bouton “optimisé pour une résolution de 800×600
    Si l’on voulait faire un peu plus chic, on ajoutait aussi “Valid HTML 4.01”
    À l’époque, les publicités n’étaient pas les amas complexes de JavaScript et les pubs vidéo d’aujourd’hui, mais de simples bannières aux dimensions standard. Je me souviens avoir été sidéré en voyant Norton Internet Security 2003 réécrire discrètement le HTML des pages visitées pour supprimer uniquement les bannières aux tailles publicitaires standard, en laissant le reste intact. C’était aussi une confirmation, vieille de 20 ans, qu’un bloqueur de pubs est une solution de sécurité

  • Que le mot webmaster n’apparaisse pas une seule fois dans tout l’article me fait me demander si Zach était vraiment là dans les années 90

    • J’ai encore une carte de visite “Webmaster” que j’avais faite à la fin des années 90
      Personne ne peut comprendre à quel point ce titre paraissait “cool” à l’époque. Aujourd’hui, même moi je trouve ça gênant, mais j’en garde vraiment beaucoup de bons souvenirs
    • J’ai déjà travaillé avec une femme qui se qualifiait officiellement de “webmistress”
      Ce n’était pas une blague
  • Si vous voulez faire vous-même l’expérience du Web des années 90, je recommande The Geocities Gallery https://geocities.restorativland.org/
    Il y a quelque chose de beau dans ces pages Web personnelles. Chaque page a une apparence bien à elle et, rien qu’avec ça, elle en dit long sur la personnalité de son auteur
    En général, on y trouve une présentation de soi, quelques photos personnelles au hasard, une liste de liens recommandés avec de courtes descriptions, des textes assez libres sur des centres d’intérêt, etc. C’est très personnel et paisible. Le contraste est net avec les réseaux sociaux d’aujourd’hui, où toutes les pages de profil se ressemblent, plates et ennuyeuses, avec une pression pour entretenir un flux de contenu sans fin et une certaine image de sa vie

    • Du coup, je suis tombé dans un terrier de lapin
      J’ai passé un long moment à chercher mon ancien site, dont je ne me souviens plus dans quel répertoire sous Area51 il se trouvait — et qui n’a peut-être même pas été archivé —, et aussi simplement à revivre cette époque
      La mémoire est étrange. En voyant Geocities, je me suis même rappelé l’odeur de l’ancien Internet ; c’était sans doute celle de la pièce familiale où se trouvait l’ordinateur
    • Je me souviens qu’au milieu des années 90, on obtenait un effet plutôt sympa en combinant le fond « briques » de Windows avec des graffitis en GIF transparent
      Les premiers travaux de groupes d’art BBS comme ACID, ICE ou FIRE étaient vraiment impressionnants à l’époque
      Avant la domination d’IE5/6, ce qui était plus sophistiqué a généralement basculé vers Flash. Au début des années 2000, j’ai créé un framework proche de React basé sur E4X ; ActionScript/Flash/Flex et Mozilla/Netscape le prenaient en charge, et cela ressemblait aussi à la notation des littéraux XML de VB.Net
      Microsoft et Google ne l’ont pas adopté, et JSON a fini par régner en maître
  • Dans les années 90, la réponse aux questions de mise en page Web était presque toujours les tableaux
    L’alignement du texte déraillait ? Tableau. Besoin d’un menu sympa ? Tableau. Construire tout un site ? Tableaux imbriqués. Pourquoi aurait-on eu besoin de CSS alors qu’on pouvait hacker le design avec des lignes et des cellules ?

    • En 2024, c’est toujours vrai pour la mise en page des emails
    • Et il ne faut pas oublier qu’il fallait mettre une balise font dans chaque cellule
    • À l’époque, tout était du TDD. Du TD-Driven Design
    • J’aime toujours les tableaux
      Ils sont vraiment excellents pour le design dynamique, avec prise en charge de la fusion de colonnes/lignes, de l’alignement et des pondérations. CSS reste bien plus complexe que les anciens tableaux
    • Désormais, on dispose d’une façon un peu plus sémantiquement correcte de faire cela