1 điểm bởi GN⁺ 2024-02-14 | 1 bình luận | Chia sẻ qua WhatsApp
  • Bản đề xuất WWW gốc của Tim Berners-Lee là một tài liệu Microsoft Word for Macintosh 4.0 có dung lượng 68.608 byte; trọng tâm là liệu có thể mở nó trong môi trường hiện đại sao cho gần với bản gốc và chuyển đổi sang PDF hay không
  • Microsoft Word và Apple Pages đều thất bại; Apache OpenOffice mở được nhưng không bảo toàn đúng định dạng và sơ đồ
  • LibreOffice mở được tài liệu và hiển thị cả sơ đồ sắc nét, nhưng lề, cỡ chữ, đầu trang/chân trang và khoảng trắng khác với bản gốc nên cần hiệu chỉnh thêm
  • PDF năm 1998 của CERN có 20 trang, trong khi bố cục gốc kiểm tra bằng Macintosh thập niên 1990 và Word trên Infinite Mac cho thấy 22 trang theo khổ A4
  • Tệp .odt đã chỉnh thủ công và PDF tạo trên máy Mac giả lập đã được đưa lên GitHub; ngay cả tài liệu 34 năm tuổi cũng không dễ mở và bảo tồn một cách chính xác

Bản chất tệp gốc và mục tiêu chuyển đổi

  • W3C cung cấp một bản tải xuống có vẻ là tệp tài liệu gốc trên trang original WWW proposal của Tim Berners-Lee
  • Bản tải xuống đó có mô tả “I think - I can't test it”, và cũng có riêng phiên bản RTF cùng phiên bản HTML được tạo từ tệp gốc vào năm 1998
  • Lệnh file trên Mac nhận diện tài liệu gốc là tệp Microsoft Word for Macintosh 4.0
  • Ghi chú trên trang W3C cũng viết rằng tài liệu này là tài liệu MacWord hoặc Word for Mac gốc được viết vào tháng 3/1989, được phân phối lại không thay đổi ngoại trừ việc thêm ngày tháng 5/1990
  • Mục tiêu là mở tài liệu gốc và, nếu có thể, chuyển đổi sang một định dạng hiện đại như PDF có độ trung thực cao

Kết quả khi mở bằng phần mềm hiện đại

  • Trước tiên thử Microsoft Word bằng cách thêm phần mở rộng .doc vào tệp, tải lên OneDrive rồi mở
  • Apple Pages cũng không hiểu được các tệp Microsoft Word for Macintosh cũ
  • Apache OpenOffice có thể mở tệp nhưng định dạng biến mất và sơ đồ bị thiếu
  • LibreOffice mở được tệp và cũng hiển thị sơ đồ rõ nét
    • Tuy nhiên lề bị bất thường và vẫn còn các vấn đề định dạng khác

Khác biệt giữa PDF của CERN và đầu ra của LibreOffice

  • CERN cung cấp phiên bản PDF của bản đề xuất
  • PDF này có vẻ được tạo năm 1998 bằng Acrobat Distiller Daemon 2.1 for SunOS/Solaris(SPARC) và có 20 trang
  • Phiên bản nhập vào LibreOffice có 24 trang
  • Sau khi tạo PDF từ phiên bản LibreOffice, dùng chế độ xem contact sheet của Apple Preview để so sánh với PDF của CERN
    • Phiên bản LibreOffice mất lề phải
    • Phần lớn nội dung hiển thị ở 14pt thay vì 12pt như trong PDF của CERN
    • Phần đầu trang có chữ viết tắt TBL bị biến thành chân trang
    • Nhìn vào vị trí ảnh, việc ngắt trang nhìn chung có vẻ đúng; vấn đề lớn nhất dường như là cỡ chữ
    • PDF của CERN có khoảng trắng bên dưới tiêu đề, còn phiên bản LibreOffice thì không

Xác nhận bố cục gốc bằng giả lập

  • Để kiểm tra tài liệu gốc thực sự trông như thế nào, khởi động một Macintosh thập niên 1990 trên Infinite Mac và chạy tài liệu gốc bằng Word for Macintosh 4.0
  • Cách này cho phép kiểm tra phông chữ, cỡ chữ và bố cục thực tế
  • Kết quả trên máy Mac giả lập cho thấy tài liệu trên Mac gốc và PDF của CERN khá khác nhau
    • PDF của CERN có 20 trang
    • Tài liệu chạy bằng Word for Macintosh 4.0 với giấy A4 có 22 trang
  • Sau đó, mục tiêu chuyển từ việc khớp với PDF của CERN sang tạo bản gần với tài liệu gốc nhìn thấy trên Mac

Hiệu chỉnh thủ công và kết quả bảo tồn

  • Để làm cho tài liệu LibreOffice gần với bản gốc hơn, nhiều mục đã được chỉnh thủ công
    • Đặt khổ giấy là A4
    • Đặt lề phải bằng kích thước lề trái
    • Trang đầu tiên có gutter, chân trang và đầu trang không giống nhau nên được chỉnh thành định dạng riêng
    • Đổi phông chữ nội dung từ 14pt và các cỡ khác về 12pt
    • Xử lý thủ công các đoạn văn bản bị ngắt sai giữa các trang và vấn đề căn chỉnh
    • Sửa các thành phần đã bị biến thành chân trang trở lại thành đầu trang
  • Kết quả cuối cùng khá gần với tài liệu hiển thị trên Mac
  • Phiên bản .odt là kết quả chuyển đổi đã được tải lên kho GitHub
  • Công việc này cho thấy việc bảo tồn tài liệu cũ ở định dạng hiện đại là khó, và phần mềm nguồn mở có thể hữu ích cho những chuyển đổi như vậy
  • Mục đích ban đầu là lấy sơ đồ chất lượng cao của bản đề xuất gốc để dùng trong bài thuyết trình, nhưng mất nhiều thời gian hơn dự kiến

PDF bổ sung được tạo bằng máy Mac giả lập

  • Trong bình luận trên Hacker News, có người gợi ý rằng có thể tạo tệp PostScript hoặc PDF bằng máy Mac giả lập
  • Sử dụng System 7, Word năm 1992 và trình điều khiển máy in Print2PDF để tạo tệp PDF, tài liệu được xuất trực tiếp từ Word for Macintosh 5.1a
  • PDF được tạo bằng cách này cũng được thêm vào GitHub
    • Phiên bản này có 20 trang
    • Phông chữ khác, nhưng đáp ứng yêu cầu ban đầu là tạo PDF
  • Một bình luận khác trên Hacker News dẫn tới một trường hợp tạo được bản chuyển đổi tốt sang định dạng hiện đại thông qua một phiên bản Word khác và một số điều chỉnh

1 bình luận

 
GN⁺ 2024-02-14
Các ý kiến trên Hacker News
  • Dành cho những ai quan tâm, tôi đã đăng một tài liệu ở định dạng Word hiện đại trong đó toàn bộ artwork vector và phông chữ đều được giữ lại: https://jasomill.at/proposal.docx
    Việc chuyển đổi được thực hiện bằng cách mở và lưu lại bằng Word 98[1] trên Power Mac được giả lập bằng QEMU, rồi mở bằng Word for Mac 16.82 hiện đại
    Tuy nhiên hình ảnh thì bị thiếu, và Word báo “There is not enough memory or disk space to display or print the picture.”, nhưng có vẻ vấn đề không phải RAM mà là Word không còn hỗ trợ định dạng ảnh PICT nữa
    Tôi đã khôi phục ảnh bằng cách tạo PDF trong Word 98 qua chức năng in PDF của Acrobat 5.0.10, rồi dùng Adobe Illustrator hiện đại trích xuất riêng từng trong ba ảnh thành PDF để giữ nguyên phông chữ, vector, kích thước và bounding box ban đầu, sau đó kéo thả từ Finder vào
    Để so sánh, PDF tạo bằng Acrobat từ Word 98 trên Power Mac là https://jasomill.at/proposal-Word98.pdf, còn PDF do Word hiện đại trên macOS Sonoma tạo là https://jasomill.at/proposal-Word16.82.pdf
    [1] https://archive.org/details/ms-word98-special-edition

    • Tôi tò mò không biết bạn có thử trích xuất riêng các hình rồi chuyển đổi trực tiếp bằng chương trình khác không. Theo Archive Team, LibreOffice có thể đọc các tệp PICT vector[1], và cũng có thể lưu thành SVG
      Dĩ nhiên nếu có văn bản thì vẫn còn vấn đề phông chữ, nhưng tôi chưa từng nghĩ đến cách giữ vector bằng PDF, mà PDF cũng nhúng phông chữ khá tốt
      [1] http://fileformats.archiveteam.org/wiki/PICT
    • Nhân tiện, MacClippy 98 đã biết trước tình hình rồi: https://jasomill.at/Clippy.png
    • Nghề nhà khảo cổ học số từng xuất hiện trong khoa học viễn tưởng đang dần trở thành hiện thực
    • Không ngờ lại thấy LHC trong một tài liệu cũ như thế này
      Trong lúc làm việc tôi có tra nhanh nhưng không xác định được dự án LHC bắt đầu khi nào và vì sao nó đã có liên quan vào năm 1990; việc đó là 20 năm trước khi vận hành thực tế cũng khiến tôi thấy khoảng thời gian dài hơn nhiều so với dự đoán
  • Việc “có thể xem phông chữ thực, cỡ chữ và bố cục để xác nhận tài liệu đáng lẽ trông như thế nào” chỉ đúng khi có phông chữ gốc
    Word 4.0 được phát hành cho System 6 và hỗ trợ đến tận System 3.2; thời đó phông chữ có các tệp riêng cho màn hình và cho máy in theo từng độ phân giải đầu ra
    Nếu không có phông máy in thì khi in sẽ phóng to phông màn hình bằng phương pháp nearest neighbor, còn nếu không có phông màn hình thì thay bằng phông hệ thống. Như trong ảnh chụp màn hình, mặc định là Geneva
    Trong trường hợp này chỉ cần Palatino và Courier nổi tiếng, nhưng LibreOffice đã thay bằng Times New Roman dù đã cài Palatino Linotype

    • Có lẽ nguyên nhân rất có thể là tên nội bộ của Palatino Linotype trong bản đi kèm Windows là PalatinoLinotype, còn trong bản Adobe OpenType là PalatinoLTStd
      Nếu không có ngoại lệ hard-code, việc khớp phông dựa trên tiền tố chung rất dễ cho ra kết quả không phù hợp. Ví dụ có thể ánh xạ Lucida sang LucidaConsole, trong khi xét theo ý định của người soạn tài liệu thì gần như bất kỳ phông sans-serif tỉ lệ nào cũng có thể tốt hơn
      Hơn nữa, khớp tên chính xác cũng không được bảo đảm. Apple từng phát hành hai phông có tên nội bộ là NewYork: một là bản chuyển sang TrueType từ thiết kế bitmap Macintosh gốc năm 1983 của Susan Kare, còn bản kia là một thiết kế không liên quan ra mắt năm 2019
    • Điều đó có thể giải thích phần nào những khác biệt như vậy, nhưng thứ tôi chủ yếu muốn kiểm tra trong giả lập là cỡ chữ
  • Người hùng dễ bị đánh giá thấp trong câu chuyện nhỏ này là lệnh file(1) cũ kỹ
    proposal: Microsoft Word for Macintosh 4.0
    Khi tò mò một tệp là gì, tôi gần như dùng nó theo phản xạ, và thông tin trả về vừa đủ để thỏa mãn trí tò mò mà vẫn hữu dụng về mặt thực tế, nên nó thật sự rất tiện

    • Đồng ý. file là một công cụ tuyệt vời
      Trước đây khi phải ngồi trước máy tính làm việc chạy Windows mà không thể dùng công cụ này một cách dễ dàng, tôi đã chửi thề không ít lần. Sau này nhờ WSL thì dễ chịu hơn, còn hiện giờ may mắn là gần như không phải dùng Windows nữa
  • LibreOffice mở được tệp này trực tiếp. Khả năng hỗ trợ các định dạng tệp tài liệu cũ thật sự xuất sắc, nên tôi vẫn cài nó cho những việc như thế này: https://imgur.com/a/JENgq6V
    Dù vậy tôi cũng thích dùng các trình giả lập BasiliskII và InfiniteMac

    • Bài gốc cũng nói LibreOffice mở được, nhưng đồng thời nói “lề bị lạ và có các vấn đề định dạng khác”
      Có vẻ ảnh chụp màn hình cũng cho thấy vấn đề đó; hỗ trợ được một định dạng độc quyền cũ như thế này ở mức đó là khá tốt, nhưng nếu còn các vấn đề như vậy thì gọi là “thật sự xuất sắc” có lẽ hơi khó
    • QEMU cũng đáng thử. Các phiên bản mới giả lập Power Mac khá tốt, có thể chạy cả 9.2.2, phiên bản PowerPC mới nhất của classic Mac OS, lẫn Mac OS X 10.5
    • Ngay cả thời đó cũng đã có StarOffice rồi
      Tôi tự hỏi liệu trong LibreOffice hiện nay vẫn còn mã phân tích cú pháp định dạng bên thứ ba từ đầu thập niên 1990 hay không, hay chính mã tương thích/chuyển đổi được tạo bằng cách reverse-engineer các phiên bản Word muộn hơn nhiều mới là phần thực sự đang xử lý
  • Một ví dụ cho thấy khả năng tương thích ngược của Microsoft: trong Word 2401 bản Windows, tệp nhìn chung mở khá tốt và bố cục cũng trông giống bản PDF trong bài viết
    Theo mặc định, định dạng tệp bị chặn, nhưng việc cho phép thì khá dễ
    Tuy nhiên, do không có bộ lọc đồ họa cho định dạng Microsoft Word Picture nên hình ảnh không mở được. Có vẻ nó đã bị loại bỏ từ khá lâu, nhưng Word 2003 có lẽ mở được, và cũng không cũ đến mức không chạy được trên hệ thống hiện đại

    • Thử cài Word 2003 thì tài liệu mở ngay lập tức và hoàn hảo với thiết lập mặc định
      Lưu từ đó thì nó được chuyển thành .doc hiện đại, rồi có thể mở trong Office 365 để chuyển sang PDF, v.v.
      Bài học là đội Windows Office có vẻ dành thêm một chút thời gian cho khả năng tương thích ngược
  • Tôi nghĩ một công ty như Microsoft nên coi trọng việc đảm bảo có thể mở tài liệu do mọi phiên bản Microsoft Word tạo ra, dù chúng cũ đến đâu
    Tôi cho rằng họ có trách nhiệm xã hội, lịch sử và kinh tế
    Nếu lo ngại lỗ hổng trong mã phân tích cú pháp cũ, họ có thể chuyển nó sang tiến trình bên ngoài, chạy trong môi trường sandbox cách ly và tạo ngay một phiên bản mới có thể đọc được. Không nên loại bỏ hẳn chức năng này
    Sửa: tôi biết được rằng Word trên desktop mở tệp tốt, chỉ bản web là không, nên có thể xem bài này là không còn giá trị
    Sửa 2: tài liệu mở được, nhưng có vẻ không hiển thị hoặc in được đồ họa nhúng

    • Rất nhiều định dạng cũ thực chất là bản dump nhị phân của bộ nhớ, hoặc không khác mấy so với vậy
      Việc ghi tài liệu cho định dạng cũng không phải là chuẩn mực. Tôi đồng ý là có trách nhiệm xã hội, nhưng với tư cách người từng làm công việc lưu trữ số, ngày xưa thật sự, thật sự rất lộn xộn. Đúng là vậy
    • Không cần quay về tận năm 1990, vẫn dễ tìm thấy các trường hợp ứng dụng Microsoft hiện đại, đặc biệt là ứng dụng đám mây, gặp vấn đề khi mở tài liệu được tạo bằng phiên bản trước
    • Tôi thật sự tò mò liệu có công ty nào có danh tiếng tốt hơn Microsoft về khả năng tương thích ngược của phần mềm thương mại không
    • Các định dạng tệp cũ có lỗ hổng bảo mật. Word phiên bản online về cơ bản được thiết kế chỉ dành cho docx, và chỉ mở được một số tài liệu nhị phân
    • Đã bỏ sót điểm là Word thực tế mở tệp này tốt. Vấn đề chỉ nằm ở phiên bản web giống đồ chơi, còn Mac cũng có thể như vậy nhưng đó là chuyện khác
  • Nếu muốn biết bản in lúc đó chính xác trông như thế nào, có thể cài một hàng đợi in tạo tệp PostScript trong trình giả lập chạy Word for Mac 4.0
    Tệp .ps đó có thể chuyển sang PDF
    Hoặc nếu ngay cả trên một hệ điều hành cũ đến mức đó cũng có Acrobat, có thể tạo PDF trực tiếp bằng driver máy in ảo

    • https://web.mit.edu/ghostscript/www/Ps2pdf.htm
      Nếu muốn tự tinh chỉnh nhiều hơn, có thể lặn sâu vào Ghostscript :)
      https://www.ghostscript.com
    • Tôi vẫn còn một máy Mac chạy Word 5.1a, và cá nhân tôi cho rằng đó là phiên bản Word cuối cùng mình cần
      Tôi nhớ là cũng từng mở tệp Word 4.0
    • Gợi ý hay. Tôi vừa dùng Print2PDF để tạo PDF từ Word và sẽ cập nhật blog
  • LibreOffice thật đáng kinh ngạc. Không chỉ mở được nhiều định dạng tài liệu, nó còn có thể tự động hóa các tác vụ như chuyển đổi định dạng bằng chế độ chạy headless và tùy chọn dòng lệnh
    Những việc như vậy thường khó làm theo cách khác
    https://help.libreoffice.org/latest/en-US/text/shared/guide/start_parameters.html
    https://opensource.com/article/21/3/libreoffice-command-line

  • Có một vấn đề tiềm ẩn mà các công ty thường đánh giá thấp. Một số công ty có bản sao lưu lưu giữ vô thời hạn
    Sao lưu lưu giữ 10 năm là chuyện phổ biến, và có nơi lưu 20 năm vì lý do pháp lý, nhưng phần lớn không hiểu sự khác nhau giữa “có thể đọc được” và “có thể sử dụng được”
    Tùy dữ liệu, có những công ty sao lưu toàn bộ máy ảo vô thời hạn và tin rằng sau này có thể chạy lại. Khôi phục máy vSphere 5.x trên vSphere 8 mới nhất đã đủ khó rồi, nên tôi không hiểu lắm kiểu lãng phí dung lượng này

    • Nếu sao lưu tất cả, sau này có thể dọn dẹp, và cuối cùng cũng không cần dọn. Trên Google Cloud, chi phí lưu trữ 1TB là 1 USD mỗi tháng
      Với mức giá này thì không đáng để dọn. Một DevOps tốn hơn 100 USD mỗi giờ, chưa kể chi phí cơ hội khi họ làm việc dọn dẹp nhàm chán thay vì việc hiệu quả hơn
      Sau khi công ty bị mua lại hoặc đủ thời gian trôi qua, chỉ cần xóa hoặc vứt dữ liệu mà không cần dọn dẹp
      Với máy ảo, nếu là VMDK chẳng hạn, có thể đọc đĩa thô mà không cần boot. Không đáng chấp nhận rủi ro mất dữ liệu chỉ để tiết kiệm 10 USD mỗi tháng; số tiền đó cũng tương đương việc một lập trình viên uống thêm một cốc bia trong sự kiện của đội
    • Các tệp hoặc image đĩa cũ thường nhỏ so với kích thước tệp hiện đại
      Vì vậy, đó giống lãng phí về mặt quản lý hơn là lãng phí dung lượng
  • Đây là một câu chuyện cảnh báo hay cho thấy các định dạng lỗi thời nhanh đến mức nào, đặc biệt là định dạng đóng nguy hiểm ra sao
    Với tài liệu cần lưu trữ lâu dài, tôi dùng Markdown, văn bản thuần và PNG
    Ngay cả khi những định dạng này biến mất, việc tự triển khai lại parser cũng sẽ khá dễ

    • Triển khai parser Markdown tuyệt đối không hề đơn giản
      Tạo một parser hoạt động giống parser Markdown trong các trường hợp đơn giản, khiến mọi người tin rằng mình đang parse được, thì dễ; nhưng parser thật sự lại là chuyện khác
      Dù vậy, dữ liệu Markdown vẫn có khả năng cao khôi phục được. Nếu là dữ liệu do chính mình tạo ra, HTML có khi còn an toàn hơn
    • Vấn đề của Markdown là khi chuyển thành một tập hợp trang có định dạng, đầu ra sẽ khác nhau tùy theo phiên bản bộ chuyển đổi
      HTML cũng tương tự, và văn bản thuần ở một mức độ nào đó cũng vậy. PDF thì lẽ ra phải giống hệt mãi mãi, nhưng trong các định dạng tài liệu có thể chỉnh sửa, theo tôi biết thì chỉ TeX/LaTeX là thực sự giữ nguyên định dạng ngay cả khi phần mềm được cập nhật
      Trên thực tế, trong LaTeX, nếu cùng một tài liệu đầu vào không tạo ra bố cục giống hệt phiên bản trước thì chính thức được xem là lỗi
    • Vì những lý do này, tôi nghĩ tài liệu về giao thức và định dạng tệp nên được viết bằng văn bản ASCII thuần nhiều nhất có thể
      Sẽ đặc biệt rắc rối nếu tài liệu của một định dạng hay giao thức phức tạp hơn lại phải được viết bằng chính định dạng hoặc giao thức đó
      Cũng có wiki Just Solve The File Format Problem. Tôi cũng từng bổ sung nội dung vào đó; nó dùng HTML và không có đầy đủ đặc tả hoàn chỉnh của mọi định dạng tệp, một số chỉ là liên kết đến tệp bên ngoài, nhưng vẫn hữu ích để tìm thông tin về định dạng tệp
    • Markdown chẳng phải cũng là văn bản thuần sao? Tôi đâu có khuyên không dùng
    • Lẽ ra ngay từ khi bắt đầu giảm lưu trữ bản in giấy, xã hội đã phải nghiêm túc hơn với bảo tồn số
      Người ta nói ai không biết lịch sử sẽ lặp lại sai lầm, nhưng nếu tài liệu của chúng ta không thể đọc được hoặc biến mất đối với các thế hệ tương lai, họ làm sao học được từ sai lầm của chúng ta?