1 points par GN⁺ 2024-02-14 | 1 commentaires | Partager sur WhatsApp
  • La proposition originale du WWW de Tim Berners-Lee est un document Microsoft Word for Macintosh 4.0 de 68 608 octets ; l’enjeu était de savoir s’il était possible, dans un environnement moderne, de l’ouvrir au plus près de l’original et de le convertir en PDF
  • Microsoft Word et Apple Pages ont échoué, tandis qu’Apache OpenOffice a pu l’ouvrir mais n’a pas correctement préservé la mise en forme et les diagrammes
  • LibreOffice a ouvert le document et affiché des diagrammes nets, mais les marges, tailles de police, en-têtes/pieds de page et espacements différaient de l’original, nécessitant des corrections supplémentaires
  • Alors que le PDF de 1998 du CERN compte 20 pages, la mise en page originale vérifiée avec un Macintosh des années 1990 et Word dans Infinite Mac apparaît en 22 pages au format A4
  • Le fichier .odt corrigé manuellement ainsi qu’un PDF créé sur un Mac émulé ont été publiés sur GitHub ; même un document vieux de 34 ans n’est pas facile à ouvrir et à préserver fidèlement

La nature du fichier original et l’objectif de conversion

  • Le W3C propose, sur la page de la proposition originale du WWW de Tim Berners-Lee, un téléchargement qui semble être le fichier de document original
  • Ce téléchargement était accompagné de la mention « I think - I can't test it », et il existe séparément une version RTF ainsi qu’une version HTML générée en 1998 à partir du fichier original
  • La commande file sur Mac identifie le document original comme un fichier Microsoft Word for Macintosh 4.0
  • Une note sur la page du W3C indique également que ce document est le document MacWord ou Word for Mac original rédigé en mars 1989, redistribué sans modification hormis l’ajout d’une date de mai 1990
  • L’objectif était d’ouvrir le document original et, si possible, de le convertir dans un format moderne comme un PDF haute fidélité

Essais avec des logiciels modernes

  • Pour commencer par Microsoft Word, l’extension .doc a été ajoutée au fichier avant de le téléverser sur OneDrive et de tenter de l’ouvrir
  • Apple Pages ne comprend pas non plus les anciens fichiers Microsoft Word for Macintosh
  • Apache OpenOffice a pu ouvrir le fichier, mais la mise en forme a disparu et les diagrammes manquaient
  • LibreOffice a ouvert le fichier et affiché les diagrammes de façon nette
    • Toutefois, les marges étaient étranges et d’autres problèmes de mise en forme subsistaient

Différences entre le PDF du CERN et la sortie de LibreOffice

  • Le CERN propose une version PDF de la proposition
  • Ce PDF semble avoir été généré en 1998 avec Acrobat Distiller Daemon 2.1 for SunOS/Solaris (SPARC) et compte 20 pages
  • La version importée dans LibreOffice comptait 24 pages
  • Après avoir créé un PDF à partir de la version LibreOffice, une comparaison avec le PDF du CERN a été effectuée dans la vue planche-contact d’Apple Preview
    • Dans la version LibreOffice, la marge de droite disparaît
    • La majeure partie du corps du texte apparaît en 14 pt, et non en 12 pt comme dans le PDF du CERN
    • L’en-tête contenant les initiales TBL se transforme en pied de page
    • À en juger par la position des images, les sauts de page semblaient globalement corrects, et le principal problème paraissait être la taille de police
    • Le PDF du CERN contient un espace sous le titre, absent de la version LibreOffice

Vérification de la mise en page originale par émulation

  • Pour vérifier l’apparence réelle du document original, un Macintosh des années 1990 a été démarré dans Infinite Mac, puis le document original a été ouvert avec Word for Macintosh 4.0
  • Cette méthode a permis de vérifier les polices, tailles de police et la mise en page réelles
  • Le résultat observé sur le Mac émulé montrait que le document Mac original et le PDF du CERN différaient sensiblement
    • Le PDF du CERN compte 20 pages
    • Le document ouvert dans Word for Macintosh 4.0 avec du papier A4 compte 22 pages
  • L’objectif a alors changé : il ne s’agissait plus de reproduire le PDF du CERN, mais de se rapprocher du document original tel qu’il apparaît sur Mac

Corrections manuelles et résultat de conservation

  • Plusieurs éléments ont été ajustés manuellement afin de rapprocher le document LibreOffice de l’original
    • Définition du papier en A4
    • Réglage de la marge droite à la même taille que la marge gauche
    • Ajustement séparé de la première page, dont la gouttière, le pied de page et l’en-tête ne correspondaient pas
    • Passage de la police du corps de texte de 14 pt et d’autres tailles à 12 pt
    • Traitement manuel du texte mal coupé entre les pages et des problèmes d’alignement
    • Correction des éléments transformés en pieds de page pour les remettre en en-têtes
  • Le résultat final est devenu assez proche du document affiché sur Mac
  • La version convertie en .odt a été mise en ligne dans un dépôt GitHub
  • Ce travail montre qu’il est difficile de préserver d’anciens documents dans des formats modernes, et que les logiciels open source peuvent être utiles pour ce type de conversion
  • L’objectif initial était d’obtenir des diagrammes de haute qualité de la proposition originale pour une présentation, mais l’opération a pris plus de temps que prévu

PDF supplémentaire créé avec un Mac émulé

  • Dans les commentaires Hacker News, quelqu’un a suggéré qu’il était possible de créer un fichier PostScript ou un PDF avec un Mac émulé
  • Avec System 7, Word de 1992 et le pilote d’impression Print2PDF capable de produire des fichiers PDF, une sortie a été générée directement depuis Word for Macintosh 5.1a
  • Le PDF créé de cette manière a également été ajouté à GitHub
    • Cette version compte 20 pages
    • La police est différente, mais l’exigence initiale — produire un PDF — est satisfaite
  • Un autre commentaire Hacker News renvoie à un cas où une bonne conversion vers un format moderne a été produite avec une autre version de Word et quelques ajustements

1 commentaires

 
GN⁺ 2024-02-14
Avis sur Hacker News
  • Pour ceux que ça intéresse, j’ai mis en ligne un document au format Word moderne dans lequel les illustrations vectorielles et les polices sont toutes préservées : https://jasomill.at/proposal.docx
    La conversion a été faite en l’ouvrant puis en le réenregistrant avec Word 98[1] sur un Power Mac émulé via QEMU, puis en l’ouvrant dans le Word for Mac moderne 16.82
    En revanche, les images manquaient, et Word indiquait : « There is not enough memory or disk space to display or print the picture. » ; cela semble moins être un problème de RAM qu’un signe que Word ne prend plus en charge le format d’image PICT
    Pour restaurer les images, j’ai créé un PDF depuis Word 98 avec l’impression PDF d’Acrobat 5.0.10, puis extrait chacune des trois images en PDF avec Adobe Illustrator moderne afin de préserver les polices, les vecteurs, les dimensions et les boîtes englobantes d’origine, avant de les glisser-déposer depuis le Finder
    À titre de comparaison, le PDF créé depuis Word 98 sur le Power Mac avec Acrobat est ici : https://jasomill.at/proposal-Word98.pdf, et celui créé par le Word moderne sous macOS Sonoma est ici : https://jasomill.at/proposal-Word16.82.pdf
    [1] https://archive.org/details/ms-word98-special-edition

    • Je me demande si tu as essayé d’extraire les images séparément pour les convertir directement avec un autre programme. D’après Archive Team, LibreOffice peut lire les fichiers PICT vectoriels[1] et peut aussi les enregistrer en SVG
      Bien sûr, s’il y a du texte, le problème des polices reste entier, mais je n’avais pas pensé à l’idée de préserver les vecteurs via PDF, et le PDF gère aussi très bien l’intégration des polices
      [1] http://fileformats.archiveteam.org/wiki/PICT
    • À part ça, MacClippy 98 était déjà au courant de la situation : https://jasomill.at/Clippy.png
    • Le métier d’archéologue numérique qu’on voyait dans la SF est en train de devenir réalité
    • Je ne m’attendais pas à voir le LHC dans un document aussi ancien
      D’après les quelques recherches faites rapidement pendant le travail, je n’ai pas pu vérifier quand le projet LHC a commencé ni en quoi il était déjà pertinent en 1990, mais le fait que ce soit 20 ans avant sa mise en service réelle me paraît déjà beaucoup plus long que ce que j’aurais imaginé
  • Dire qu’on peut « voir les vraies polices, tailles de police et la mise en page pour vérifier à quoi le document était censé ressembler » n’est vrai que si l’on dispose des polices d’origine
    Word 4.0 est sorti pour System 6 et prenait en charge jusqu’à System 3.2 ; à l’époque, les polices existaient en fichiers séparés pour l’écran et pour l’imprimante, selon la résolution de sortie
    S’il n’y avait pas de police d’imprimante, la police écran était agrandie pour l’impression par interpolation au plus proche voisin ; s’il n’y avait pas de police écran, elle était remplacée par la police système. Comme sur la capture d’écran, la valeur par défaut est Geneva
    Dans ce cas, il ne faudrait que les célèbres Palatino et Courier, mais LibreOffice les a remplacées par Times New Roman même lorsque Palatino Linotype était installée

    • C’est probablement parce que le nom interne de Palatino Linotype est PalatinoLinotype dans la version fournie avec Windows, et PalatinoLTStd dans la version Adobe OpenType
      Sans exception codée en dur, la correspondance de polices basée sur un préfixe commun peut facilement donner des résultats inadaptés. Par exemple, Lucida peut être associée à LucidaConsole, alors que, du point de vue de l’intention de l’auteur du document, presque n’importe quelle police sans sérif proportionnelle serait préférable
      En plus, même une correspondance exacte du nom n’est pas garantie. Apple a distribué deux fois une police dont le nom interne est NewYork : l’une est une conversion TrueType du dessin bitmap Macintosh original de Susan Kare datant de 1983, l’autre est un dessin sans rapport sorti en 2019
    • Cela peut expliquer une partie de ces différences, mais ce que je cherchais surtout à vérifier dans l’émulation, c’était la taille des polices
  • Le héros facile à sous-estimer dans cette petite histoire, c’est la vieille commande file(1)
    proposal: Microsoft Word for Macintosh 4.0
    Quand on se demande ce qu’est un fichier, on l’utilise presque par réflexe, et les informations qu’elle renvoie sont juste assez suffisantes pour satisfaire la curiosité tout en restant pratiques ; c’est vraiment utile

    • Je suis d’accord. file est un excellent outil
      Par le passé, je me suis retrouvé plusieurs fois à pester devant un PC de travail sous Windows parce que je ne pouvais pas utiliser facilement cet outil. Plus tard, WSL a rendu les choses plus confortables, et aujourd’hui, heureusement, je vis presque sans Windows
  • LibreOffice ouvre directement ce fichier. Sa prise en charge des anciens formats de documents est vraiment excellente, et je le garde installé pour ce genre d’usage : https://imgur.com/a/JENgq6V
    Cela dit, j’aime aussi utiliser BasiliskII et l’émulateur InfiniteMac

    • Le texte original disait bien que LibreOffice l’ouvrait, mais ajoutait aussi que « les marges sont étranges et qu’il y a d’autres problèmes de mise en forme »
      Ces problèmes semblent aussi visibles sur la capture d’écran, et même si la prise en charge d’un format propriétaire aussi ancien à ce niveau est assez bonne, avec ce genre de problèmes il est difficile d’aller jusqu’à dire qu’elle est « vraiment excellente »
    • QEMU vaut aussi le coup d’être essayé. Les versions récentes émulent bien le Power Mac, au point de pouvoir lancer à la fois Mac OS 9.2.2, la dernière version PowerPC du Mac OS classique, et Mac OS X 10.5
    • À l’époque, StarOffice existait déjà
      Je me demande si du code de parsing de formats tiers du début des années 1990 est encore présent dans LibreOffice aujourd’hui, ou si c’est plutôt le code de compatibilité et de conversion écrit beaucoup plus tard par rétro-ingénierie de versions de Word ultérieures qui fait réellement le travail
  • Exemple illustrant la rétrocompatibilité de Microsoft : dans Word 2401 pour Windows, le fichier s’est globalement bien ouvert, et la mise en page semblait identique au PDF de l’article
    Le format de fichier était certes bloqué par défaut, mais il était facile de l’autoriser
    En revanche, faute de filtre graphique pour le format Microsoft Word Picture, les images ne se sont pas ouvertes. Il semble avoir été abandonné il y a assez longtemps, mais Word 2003 devrait sans doute pouvoir l’ouvrir, et ce n’est pas non plus au point d’être trop ancien pour tourner sur un système moderne

    • J’ai essayé d’installer Word 2003 : avec les réglages par défaut, le document s’est immédiatement ouvert parfaitement
      En l’enregistrant depuis là, il a été converti en .doc moderne, puis a pu être ouvert dans Office 365 et converti en PDF, entre autres
      La leçon, c’est que l’équipe Windows Office semble consacrer un peu plus de temps à la rétrocompatibilité
  • Une entreprise comme Microsoft devrait, à mon avis, considérer comme important de permettre l’ouverture de documents créés par toutes les versions de Microsoft Word, aussi anciens soient-ils
    Je pense qu’elle a une responsabilité sociale, historique et économique
    Si les vulnérabilités dans l’ancien code de parsing inquiètent, il suffit de le déplacer dans un processus externe, de l’exécuter dans un sandbox isolé et de lui faire produire à la volée une nouvelle version lisible. Il ne faut pas supprimer cette fonctionnalité
    Édit : j’ai appris que Word sur desktop ouvre bien le fichier, et que seule la version web ne le fait pas ; on peut donc considérer ce message comme caduc
    Édit 2 : le document s’ouvre, mais il semble impossible d’afficher ou d’imprimer les graphiques intégrés

    • Beaucoup d’anciens formats étaient en fait des dumps binaires de mémoire, ou n’en étaient pas très éloignés
      Documenter les formats n’était pas une norme. Je suis d’accord sur la responsabilité sociale, mais pour avoir travaillé dans l’archivage numérique, l’époque était vraiment, vraiment sale. Vraiment
    • Pas besoin de remonter jusqu’en 1990 : il est facile de trouver des cas où des applications Microsoft modernes, en particulier des applications cloud, ont des problèmes pour ouvrir des documents créés avec des versions antérieures
    • Je me demande sincèrement s’il existe une entreprise qui ait une meilleure réputation que Microsoft en matière de rétrocompatibilité des logiciels commerciaux
    • Les anciens formats de fichiers présentent des vulnérabilités de sécurité. La version en ligne de Word a été conçue par défaut comme réservée au docx, et ne peut ouvrir que certains documents binaires
    • J’avais manqué le fait que le vrai Word ouvre correctement ce fichier. Le problème ne concerne que la version web, qui ressemble à un jouet ; le Mac pourrait aussi être concerné, mais c’est une autre question
  • Si l’on veut savoir à quoi ressemblait exactement l’impression à l’époque, on devrait pouvoir installer, dans un émulateur exécutant Word for Mac 4.0, une file d’impression générant un fichier PostScript
    Ce fichier .ps peut ensuite être converti en PDF
    Ou, s’il existe Acrobat même sur un OS aussi ancien, il serait peut-être possible de produire directement un PDF via un pilote d’imprimante virtuelle

    • https://web.mit.edu/ghostscript/www/Ps2pdf.htm
      Si vous voulez régler davantage de choses vous-même, il suffit de plonger dans les eaux profondes de Ghostscript :)
      https://www.ghostscript.com
    • J’ai encore un Mac qui fait tourner Word 5.1a, et personnellement je considère que c’est la dernière version de Word dont on ait besoin
      Je me souviens aussi avoir ouvert des fichiers Word 4.0
    • Bonne suggestion. Je viens de créer un PDF depuis Word avec Print2PDF, et je mettrai le blog à jour
  • LibreOffice est impressionnant. Non seulement il peut ouvrir de nombreux formats de documents, mais il permet aussi d’automatiser des tâches comme la conversion de formats grâce à l’exécution headless et aux options en ligne de commande
    Ce genre d’opération est souvent difficile à faire autrement
    https://help.libreoffice.org/latest/en-US/text/shared/guide/start_parameters.html
    https://opensource.com/article/21/3/libreoffice-command-line

  • Il existe un problème potentiel que les entreprises sous-estiment souvent. Certaines disposent de sauvegardes conservées indéfiniment
    Les sauvegardes conservées 10 ans sont courantes, et certaines organisations les gardent 20 ans pour des raisons juridiques, mais la plupart ne comprennent pas la différence entre « lisible » et « exploitable »
    Cela dépend des données, mais certaines entreprises sauvegardent indéfiniment des machines virtuelles entières en pensant pouvoir les exécuter plus tard. Restaurer une machine vSphere 5.x sur un vSphere 8 récent est déjà suffisamment difficile ; j’ai donc du mal à comprendre un tel gaspillage d’espace

    • Si l’on sauvegarde tout, on peut trier plus tard, et au final on n’a même pas besoin de trier. Sur Google Cloud, 1 To de stockage coûte 1 dollar par mois
      À ce prix, cela ne vaut pas la peine de faire le tri. Un DevOps coûte plus de 100 dollars de l’heure, sans même compter le coût d’opportunité de lui faire faire un ménage ennuyeux au lieu d’un travail plus productif
      Une fois l’entreprise rachetée, ou suffisamment de temps écoulé, on peut supprimer ou jeter les données sans tri préalable
      Quant aux machines virtuelles, si c’est par exemple un VMDK, on peut lire le disque brut sans le démarrer. Cela ne vaut pas la peine de risquer une perte de données pour économiser 10 dollars par mois, une somme qui correspond à peu près à une bière de plus pour un développeur lors d’un événement d’équipe
    • Les anciens fichiers ou images disque sont souvent petits par rapport aux tailles de fichiers modernes
      Ce n’est donc pas tant un gaspillage d’espace qu’un gaspillage de gestion
  • Un bon avertissement sur la vitesse à laquelle les formats vieillissent, et en particulier sur le danger des formats fermés
    Pour les documents à conserver à long terme, j’utilise Markdown, du texte brut et PNG
    Même si ces formats disparaissaient, il serait facile de réimplémenter soi-même un parseur

    • Implémenter un parseur Markdown n’est pas du tout simple
      Il est facile de créer un parseur qui se comporte comme un parseur Markdown dans les cas simples, au point que les gens croient qu’il parse réellement, mais un vrai parseur, c’est autre chose
      Cela dit, les données Markdown ont de fortes chances d’être récupérables. Pour des données que l’on génère soi-même, HTML peut même être plus sûr
    • Le problème de Markdown, c’est que lorsqu’on le convertit en un ensemble de pages mises en forme, la sortie varie selon la version du convertisseur
      HTML est similaire, et le texte brut l’est aussi dans une certaine mesure. Le PDF devrait rester exactement identique pour toujours, mais parmi les formats de documents éditables, à ma connaissance, seul TeX/LaTeX conserve vraiment la même mise en forme malgré les mises à jour logicielles
      En pratique, dans LaTeX, si un même document d’entrée ne produit pas exactement la même mise en page qu’avec une version précédente, c’est officiellement un bug
    • Pour ces raisons, je pense qu’il vaut mieux rédiger autant que possible la documentation des protocoles et formats de fichiers en texte ASCII pur
      C’est particulièrement problématique quand la documentation d’un format ou d’un protocole plus complexe doit être rédigée dans ce format ou ce protocole lui-même
      Il existe aussi le wiki Just Solve The File Format Problem. J’y ai moi-même déjà ajouté du contenu ; il utilise HTML et ne contient pas les spécifications complètes de tous les formats de fichiers, certains étant des liens vers des fichiers externes, mais il aide à trouver des informations sur les formats de fichiers
    • Markdown, ce n’est pas aussi du texte brut ? Je n’ai pas dit que je le déconseillais
    • À partir du moment où l’on a commencé à réduire l’archivage de copies papier, la société aurait dû prendre plus au sérieux la préservation numérique
      On dit que ceux qui ne connaissent pas l’histoire sont condamnés à répéter les mêmes erreurs, mais si nos documents sont illisibles pour les générations futures ou ont disparu, comment pourront-elles apprendre de nos erreurs ?