1 điểm bởi GN⁺ 6 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Các công cụ vẽ sơ đồ và thiết kế UI dựa trên văn bản thuần monospace đang được dùng trở lại; sự quen thuộc của giao diện chỉnh sửa văn bản và tính di động của định dạng tệp mang lại sức sống bền lâu cho chúng
  • Các công cụ như Mockdown, Wiretext và Monodraw phù hợp để tạo sơ đồ cường độ thấp trong khi vẫn giữ các lựa chọn thị giác bị giới hạn có chủ đích, đồng thời cũng thích hợp để nhúng vào mã nguồn
  • Mockdown có thể dùng ngay trên web và di động, Wiretext chạy trên web nhưng chỉ dành cho desktop, còn Monodraw được cung cấp dưới dạng ứng dụng Mac
  • Cách làm từng đạt đỉnh vào thập niên 1970~1980 đang quay trở lại theo hình thái gợi nhớ đến dòng TUI như Turbo Vision, đồng thời được bổ sung cảm quan hiện đại, hiệu năng, khả năng truy cập web và khả năng thao tác bằng chuột·trackpad
  • Càng khi hiệu năng máy tính tăng lên, phương thức làm việc tự đặt ràng buộc càng hữu ích, và các công cụ văn bản thuần như thế này cũng ngày càng được dùng như điểm vào cho gen AI

Tính bền vững của công cụ văn bản thuần

  • Với các công cụ vẽ sơ đồ và thiết kế UI dựa trên văn bản thuần hoặc “ASCII”, bài viết nhắc đến Mockdown, Wiretext, Monodraw
    • Mockdown chạy trực tiếp trên web và cũng hỗ trợ di động
    • Wiretext chạy trên web nhưng chỉ có thể dùng trên desktop
    • Monodraw được cung cấp dưới dạng ứng dụng Mac
  • Những công cụ này được dùng khi muốn ưu tiên các lựa chọn thị giác bị giới hạn có chủ đích, khi cần tạo sơ đồ cường độ thấp để đưa vào mã nguồn, và ngày càng nhiều hơn như điểm vào cho gen AI
  • Một phương thức từng đạt đỉnh vào thập niên 1970~1980 đang hồi sinh theo cách hiện đại
    • Gợi nhớ đến dòng TUI như Turbo Vision
    • Đồng thời được bổ sung cảm quan hiện đại, hiệu năng, khả năng truy cập web và khả năng thao tác bằng chuột lẫn trackpad
  • Bản thân phương thức làm việc có ràng buộc đang trở nên quan trọng hơn
    • Khi hiệu năng máy tính tăng lên, việc tự đặt ràng buộc để làm công việc dễ hơn đã sẵn hữu ích
    • Cùng với sự lan rộng của AI, tự ràng buộc cũng trở nên quan trọng theo hướng khiến công việc khó hơn
  • Văn bản thuần monospace có sức sống lâu dài không chỉ nhờ tính di động của định dạng tệp, mà còn vì việc chỉnh sửa văn bản như một giao diện là thứ phổ biến và mạnh mẽ
  • ASCII spray của Mockdown được xem là một yếu tố đặc biệt thú vị
  • “ASCII” ở đây không hẳn là một thuật ngữ kỹ thuật nghiêm ngặt, mà gần hơn với cách nói khẩu ngữ tương tự như gọi chung hoạt ảnh lặp là “GIF”

1 bình luận

 
Ý kiến trên Hacker News
  • Tôi rất vui khi thấy kế toán plaintext được nêu làm ví dụ
    Tôi đã chuyển sổ sách cho doanh nghiệp một người từ QuickBooks sang Beancount+Fava và thấy hài lòng hơn nhiều, còn gắn thêm hệ thống hóa đơn dựa trên văn bản cùng theo dõi quãng đường xe chạy, và cũng thêm validator để các khoản chi có trạng thái thuế bắt buộc phải được đính kèm chứng từ
    Nhanh hơn, dễ dùng hơn nhiều so với QuickBooks, không phải xem quảng cáo, lại có thể gắn git và bằng chứng commit RFC3161 để chứng minh đã thêm gì vào lúc nào, giảm nguy cơ bản ghi bị mất do sửa nhầm văn bản, và cũng dễ kiểm tra từng mục được tạo khi nào
    Cốt lõi vẫn hoàn toàn là plain text, nhưng nếu muốn thì tôi cũng đã thêm extension cho Fava để xử lý trên trình duyệt; sẽ còn tuyệt hơn nếu có một TUI Fava làm được cả biểu đồ, nhưng web UI hiện tại cũng đủ ổn
    Giờ chỉ còn lại chuyện xem kế toán của tôi sẽ đọc cái này thế nào

    • Tôi mới biết đến Beancount và thấy khá hấp dẫn
      Tôi là người Mỹ nhưng làm việc ở nước khác nên lúc nào cũng phải xử lý 2 loại tiền tệ, còn Gnucash thì không xử lý đa tiền tệ theo cách khiến tôi hài lòng, nên vợ chồng tôi đến giờ vẫn ghi chép bằng file văn bản
      Chúng tôi đã dùng định dạng khá nhất quán, nên khi chuyển sang Beancount có lẽ có thể dùng script chuyển đổi hoặc nhờ LLM hỗ trợ để tự động hóa khoảng 95% công việc, rồi chỉ cần hiện cảnh báo cho những mục không parse được
      Khả năng cao tôi cũng sẽ chuyển sang Beancount + Fava
    • Đây thực sự là nguồn cảm hứng rất tốt cho các dự án plain text accounting của tôi
      Tôi đặc biệt muốn biết chi tiết hơn về cách dùng bằng chứng commit RFC3161
      Tôi đoán là có ký GPG để chứng minh người tạo commit đúng là họ, nhưng tôi tò mò không biết có dùng dịch vụ đóng dấu thời gian bên ngoài và CA bên ngoài hay không, hay là tự xây chuỗi tin cậy riêng
      Tôi cũng muốn biết nếu kiểm toán viên kế toán yêu cầu xác minh tính xác thực của các commit sổ sách thì trên thực tế người ta sẽ chứng minh bằng những tài liệu và quy trình nào
    • Cách này thực sự rất hay
      Ngay cả khi tự làm một định dạng file đơn giản, tôi cũng luôn nghĩ sẵn xem nếu cần thì sẽ chuyển sang định dạng phổ biến hơn như thế nào
      Chỉ riêng việc biết rằng khi cần có một lối thoát để bàn giao cho người khác cũng đã thấy yên tâm hơn nhiều
      Trong trường hợp này có vẻ cũng có thể dễ dàng chuyển sang CSV mà kế toán chấp nhận được
  • Dù thời kỳ đỉnh cao có thể là thập niên 1970~80, nhưng ngay cả vào đầu thập niên 1990 thời DOS cũng có rất nhiều TUI xuất sắc
    Khi đó Windows vẫn chưa hoàn toàn thống trị, và đa số máy có card đồ họa cùng màn hình tương thích VGA nên có thể dùng chế độ văn bản có độ phân giải cao, rõ nét, thậm chí chỉnh được font, và nhiều máy cũng có chuột
    Chính môi trường đó với QBASICEDIT.COM là thứ tôi lớn lên cùng và quen thuộc nhất
    Thậm chí một số ứng dụng thời đó còn triển khai cả con trỏ chuột tử tế, và video của Bisqwit minh họa rất rõ điều đó: https://www.youtube.com/watch?v=7nlNQcKsj74

    • Tôi thực sự rất thích trình soạn thảo mã của Borland thời đó
      Đó là trình soạn thảo đi kèm Turbo-C, Turbo-Pascal v.v., và đủ hoàn chỉnh để gần như có thể gọi là IDE
      WordPerfect, WordStar, Lotus 1-2-3 ở chế độ văn bản cũng rất xuất sắc
    • Theo tôi, thứ gần với đỉnh cao của TUI nhất là Norton Commander hoặc Midnight Commander
    • Ngược lại, tôi cho rằng thời kỳ đỉnh cao của TUI chính là bây giờ
      Nhìn vào Omarchy, một hệ điều hành xoay quanh terminal và file cấu hình, thì gần như là thiên đường
      Nếu tương lai thật sự tiến đến chỗ giao diện chính với máy móc là hội thoại dựa trên văn bản, tôi rất tò mò xu hướng này còn đi xa đến đâu
      Tôi biết ở đây nhiều người không thích nhắc đến AI, nhưng cá nhân tôi thực sự mong chờ tương lai đó
  • Đọc tiêu đề khiến tôi nghĩ lệch sang một hướng hơi khác so với bài viết, nhưng nếu bạn tin plain text là nền tảng của kiểu điện toán đơn giản và bền vững, thì bài nói There's no such thing as plain text của Dylan Beattie rất đáng xem
    https://www.slideshare.net/slideshow/theres-no-such-thing-as-plain-text-dylan-beattie/249952971
    Cũng có thể dễ dàng tìm thấy nhiều video hội thảo khác

    • Tôi chưa xem video, nhưng chỉ nhìn slide thì có vẻ một trong các ý chính là vấn đề encoding
      Có cả ví dụ như UTF-16LE và UTF-16BE
      May mắn là giờ UTF-8 đã trở thành mặc định trên thực tế, nên trừ khi có lý do đặc biệt thì hầu hết tài liệu có thể giả định là UTF-8
      Ngay cả khi nhận một file văn bản mà không biết encoding, tôi cũng nghĩ xác suất nó là UTF-8 phải cỡ 99,7%, nên giờ có lẽ lại có thể nói rằng plain text thực sự tồn tại
    • Chỉ nhìn slideshow thì tôi không nắm được luận điểm lắm
      Nếu ý là những thứ như code page hay UTF-16 đều là plain text nhưng thực ra lại không phải, thì đến năm 2026 lập luận đó có vẻ khá lạc hậu
      Giờ UTF-8 gần như ở khắp mọi nơi rồi
    • Tôi đã dùng cách diễn đạt đó từ lâu, chỉ là vẫn mơ hồ nghĩ chắc hẳn phải có một bài nói tử tế về nó rồi
      Thật vui khi thấy tài liệu như vậy thực sự tồn tại
    • Tôi không đồng ý mạnh mẽ với lập luận đó
      Những hệ thống phức tạp và kỳ quặc như Unicode không thể gọi là plain được, và ngay cả bây giờ rất nhiều ứng dụng vẫn thường xuyên gặp lỗi liên quan đến Unicode
      Theo tôi, hệ thống văn bản duy nhất thực sự hoạt động tốt ở mọi nơi vẫn là ASCII, và chỉ đến mức đó mới nên gọi là plain text
      Điều đó đúng là giới hạn theo tiếng Anh, nhưng trong nhiều môi trường lại khá tự nhiên, và dù tôi không phải người bản ngữ tiếng Anh, tôi vẫn có thể bảo vệ quan điểm đó
  • Plain text thực sự rất tuyệt
    Tôi quản lý hơn 20 năm ghi chú của mình bằng https://github.com/nickjj/notes
    Tôi cũng đã xử lý hóa đơn theo kiểu plain text khoảng 7 năm bằng https://github.com/nickjj/invoice
    Còn để theo dõi thu chi thì có https://github.com/nickjj/plutus, và tôi rất hài lòng
    Giờ tôi chỉ cần xuất CSV từ ngân hàng rồi đưa vào Plutus, chỉnh lại một chút phần danh mục trong vài phút là xong sổ sách
    Tôi cũng đã dùng cách này để khai thuế suốt 2 năm nay

  • Văn bản có tính Lindy
    Nó đã vượt qua thử thách của thời gian, và phổ biến rộng khắp chẳng kém gì SQL hay TCP/IP
    Tôi cũng nhớ đến bài viết cũ của Graydon Hoare, Always bet on text
    [1]: https://news.ycombinator.com/item?id=8451271
    [2]: https://graydon2.dreamwidth.org/193447.html

  • Tôi tự hỏi ở đây người ta có xem HN là plaintext không
    Rõ ràng trang này là HTML và có hyperlink, nhưng trải nghiệm sử dụng thực tế lại khá gần với một giao diện văn bản có thể nhấp được
    Xét về mặt mã hóa thì HTML cũng được mã hóa bằng ascii/utf-8 nên có thể gọi là plaintext, nhưng ở mức MIME type thì text/plaintext/html phân biệt cấu trúc tài liệu với thông tin trình bày
    Terminal cũng thường được xem là plaintext, nhưng thực ra lại nhúng metadata bằng các escape sequence mà con người khó đọc trực tiếp
    Ngược lại, trên mạng xã hội có rất nhiều ảnh chỉ chứa vài dòng chữ, và các nền tảng di động gần đây còn nhận diện được chữ trong ảnh để cho phép chọn
    Vậy thì một hình ảnh chỉ chứa văn bản mà không có yếu tố nào khác có được xem là plaintext không
    Rốt cuộc điều tôi muốn hỏi là sau hàng chục năm kể từ lần triển khai ban đầu, ta nên vạch ranh giới của plaintext ở đâu

    • HN chỉ là HTML thông thường, nên gọi là plaintext cũng không quá vô lý
  • Hơi khác với nội dung bài, nhưng tôi chợt nhớ đến biểu đồ thống kê dựa trên ký tự văn bản
    Rất lâu trước đây tôi từng dùng bản giáo dục của MINITAB cho DOS, và nó vẽ scatter diagram, dotplot, box-and-whisker plot bằng ký tự văn bản
    Nếu tôi nhớ không nhầm thì có thể chọn văn bản thuần, ASCII, hoặc ký tự kẻ khung của DOS
    Mục đích là để người dùng khám phá dữ liệu trước khi đi vào các phép kiểm định thống kê chính thức
    Tôi tự hỏi bây giờ còn chương trình nào vẽ dotplot tử tế trong terminal theo kiểu đó không

  • Danh sách ở trên còn có thể dài hơn nữa
    https://asciiflow.com/
    https://asciidraw.github.io/
    Tôi cũng tò mò còn công cụ nào khác nữa không

  • Còn có M-x artist-mode, dùng trực tiếp trong Emacs

  • Plain text rõ ràng là rất tốt, nhưng đến lúc cần cấu trúc hóa thì bạn lại phải bắt đầu từ con số 0 cho từng file
    Lúc nào cũng có người hoài niệm kiểu ghép nối ngẫu hứng các công cụ Unix cũ để xử lý plain text, nhưng cách tiếp cận đó chỉ ổn trong tình huống tạm thời chứ không thể thay thế định dạng được đặc tả rõ ràng

    • Có rất nhiều định dạng plaintext có cấu trúc như XML, JSON, YAML, RDF, EDN, LaTeX, OrgMode, Markdown
      Chúng vừa có thể xử lý như văn bản thông thường theo từng dòng, vừa có thể chuyển đổi dữ liệu có cấu trúc, và cũng đã có sẵn các client hoặc reader có thể render chúng gần như WYSIWYG