1 điểm bởi GN⁺ 4 giờ trước | 2 bình luận | Chia sẻ qua WhatsApp
  • Tony Krueger đã tham gia phát triển tính năng hiển thị ngay các vấn đề chính tả và ngữ pháp bằng gạch sóng đỏ và xanh lá, để lại một dấu ấn UI mà gần như mọi người dùng đều từng thấy trong Microsoft Word
  • Trình kiểm tra chính tả của Word thời kỳ đầu phải do người dùng tự chạy, và ngay cả Auto Spell Check cũng là một tác vụ chặn ngăn các công việc tiền cảnh như lưu hay thoát, nên nhiều người đã tắt nó đi
  • Krueger đã tạo ra một cách làm ít gây phiền hơn để việc kiểm tra không chặn người dùng lại, và khi phát hiện vấn đề thì hiển thị dưới từ mà không cần chờ chạy riêng
  • Ông đã tham gia Word 1.0, 1.1, 2.0, Word for OS/2, Word for Mac, Word 6.0 và nhiều phiên bản về sau, đồng thời cũng đảm nhiệm bản chuyển Chip’s Challenge sang Windows
  • Ngày nay, không chỉ gạch sóng đỏ mà cả gạch sóng xanh lá và xanh dương đã lan rộng khắp các trình xử lý văn bản và phần mềm khác, và công việc của Krueger vẫn còn lại như một UI phản hồi chỉnh sửa hằng ngày

Tony Krueger và UI gạch sóng của Word

  • Tony Krueger là một người mà thành quả thì rất nổi tiếng nhưng tên tuổi lại tương đối ít được biết đến
  • Trên Wikipedia, ông được ghi nhận là người chuyển Chip’s Challenge cho Windows trong Windows Entertainment Pack
    • Bản chuyển này là công việc đảo ngược rồi triển khai lại cho Windows mà không có mã nguồn của bản MS-DOS
  • Đoạn mã chạm tới nhiều người hơn là tính năng đánh dấu chính tả và ngữ pháp trong Microsoft Word

Dấu ấn để lại trên nhiều phiên bản Word

  • Krueger đã tham gia phát triển nhiều phiên bản Word
    • Word 1.0
    • Word 1.1
    • Word 2.0
    • Word for OS/2
    • Word for Mac
    • Word 6.0 và nhiều phiên bản về sau
  • Ông được nhắc đến như người có thể đang giữ kỷ lục “phát hành nhiều phiên bản Word nhất”

Vì sao trình kiểm tra chính tả ban đầu lại bất tiện

  • Spell Check của Word thời kỳ đầu là một tính năng mà người dùng phải chủ động chạy
  • Người dùng phải đợi chương trình tìm hết các lỗi gõ nhầm tiềm năng, rồi xem từng từ một để quyết định cách xử lý
  • Word đã giới thiệu Auto Spell Check, cơ chế chạy kiểm tra chính tả trước khi người dùng rảnh
    • Mục tiêu là để khi người dùng bấm nút Spell Check thì kết quả đã sẵn sàng
    • Nhưng Auto Spell Check vẫn tiếp tục là một tác vụ chặn ngăn công việc tiếp theo của người dùng
  • Đây cũng là lý do nhiều người đã tắt tính năng này
    • Nếu việc kiểm tra chính tả bắt đầu đúng lúc người dùng định lưu tài liệu và thoát, họ vẫn phải đợi cho đến khi việc kiểm tra kết thúc

Sự ra đời của gạch sóng đỏ và xanh lá

  • Krueger đã thay đổi trình kiểm tra chính tả theo một cách ít gây phiền hơn nhiều, để nó không cản trở công việc tiền cảnh
  • Khi phát hiện vấn đề, hệ thống không chờ đến lúc người dùng chạy Spell Check mà lập tức vẽ gạch sóng đỏ dưới lỗi gõ nhầm tiềm năng
  • Về sau, gạch sóng xanh lá được dùng cho các lỗi ngữ pháp tiềm năng
  • Ngày nay, cách làm này có thể thấy ở gần như mọi trình xử lý văn bản, và cũng thường xuyên được dùng ngoài phạm vi trình xử lý văn bản
    • Không chỉ gạch sóng đỏ mà cả gạch sóng xanh lá và xanh dương cũng được dùng rộng rãi

Những người còn nhớ đến tính năng này

  • Krueger là một fan từ sớm của bộ đôi ảo thuật - hài Penn and Teller
  • Một người bạn và cũng là đồng nghiệp đã nhờ hai người ký tặng ảnh cho Tony sau buổi diễn, đồng thời nói rằng ông từng ở trong nhóm làm gạch sóng đỏ và xanh lá của Word
  • Penn Jillette đã phản ứng bằng giọng lớn đến mức vang khắp nhà hát: “The red and green squiggles!? I love the red and green squiggles!”, còn Teller cũng lặng lẽ đồng tình
  • Krueger nhận bức ảnh có chữ ký đó như một món quà sinh nhật, và không rõ ông vui hơn vì chính bức ảnh ký tặng hay vì chuyện Penn and Teller thích tính năng của mình
  • Về sau, gạch sóng đỏ của Word còn xuất hiện thoáng qua trong video nhại Word Crimes của “Weird Al” Yankovic, và cũng chính người bạn đó đã xin được chữ ký lên ảnh chụp màn hình tương ứng

Dấu vết còn lại

  • Gạch sóng đỏ vẫn tồn tại như một dạng phản hồi chỉnh sửa hằng ngày giúp bắt lỗi của người dùng
  • Công việc mà Krueger khởi đầu sau đó đã lan rộng thành cách hiển thị lỗi văn bản trong nhiều phần mềm khác

2 bình luận

 
Ý kiến trên Hacker News
  • Nếu tiếp tục ở lại ngành làm phần mềm và để lại tên mình trong mã nguồn, rồi sẽ có ngày bạn được nhớ đến vì một sản phẩm hay tính năng mà bản thân chưa từng ngờ tới
    Còn những thứ bạn đã dốc sức làm nhất và từng mong được biết đến vì chúng thì theo thời gian lại bị lãng quên. Quá trình tạo ra một thứ gì đó hoàn toàn nằm trong tầm kiểm soát của bạn, nhưng việc bạn sẽ được biết đến vì điều gì thì hoàn toàn nằm ngoài tầm kiểm soát

  • Prowrite trên Amiga đã có kiểm tra chính tả theo thời gian thực trước cả Word
    Có thể trước đó đã có chương trình khác có cùng tính năng, nhưng Prowrite vẽ gạch chân lượn sóng màu đỏ dưới các từ sai
    https://www.atarimagazines.com/compute/issue123/P215_1_REVIE...

    • Có chắc không? Trang được dẫn link chỉ nói rằng “trình kiểm tra chính tả 100.000 từ hỗ trợ kiểm tra phạm vi văn bản, tra cứu từng từ, kiểm tra liên tục và thêm từ điển người dùng”, chứ không hề nhắc đến gạch chân từ
      Tôi cũng không tìm thấy ảnh chụp màn hình nào của tính năng đó. Với bảng màu AmigaOS 1.x thì màu chuẩn là đen/trắng/xanh dương/cam, nên đường lượn sóng có lẽ là màu cam chứ không phải đỏ. Từ AmigaOS 2 trở đi là đen/trắng/xám/xanh dương để tạo hiệu ứng 3D, nên màu nhấn mạnh có lẽ phải là xanh dương
    • PC-Write trên DOS cũng có
  • Trong môi trường làm việc với nhiều ngôn ngữ, gạch chân lượn sóng thường không hữu ích
    Hệ thống cố đoán ngôn ngữ của đoạn tôi đang viết nhưng hầu như toàn đoán sai, và kết quả là thành nhiễu thị giác mà tôi phải chống lại hoặc phớt lờ. Việc phải đổi cài đặt ngôn ngữ thủ công mỗi lần tương tác cũng quá bất tiện

    • Tôi gán phím tắt cho kiểu ký tự dùng để chỉ định ngôn ngữ kiểm lỗi. Ví dụ, shift-alt-1 là tiếng Anh, shift-alt-2 là tiếng Đức
      Vì là kiểu ký tự nên nó áp dụng được cả tại vị trí đang nhập lẫn vùng đã chọn. Ngay cả khi quên đặt trước và một dòng đã đầy gạch lượn sóng thì vẫn xử lý được. Hoặc có thể đặt ngôn ngữ kiểm lỗi của toàn bộ văn bản thành None để tắt hết kiểm tra chính tả và ngữ pháp
    • Tôi cũng gặp cùng vấn đề. Mỗi chương trình xử lý ở mức khác nhau, và bộ Affinity đặc biệt tệ
  • Điều thú vị là bài của Chen dẫn tới trang Wikipedia như bằng chứng rằng Tony Krueger là người đã port nó
    Nhưng ở bản mới nhất, nguồn cho mục đó lại dẫn ngược về chính bài của Chen

    • Theo trình tự thời gian thì như sau: trước khi bài của Chen được thêm làm tham chiếu, trang Wikipedia là https://en.wikipedia.org/w/index.php?title=Chip%27s_Challeng..., và nội dung “được Tony Krueger viết mã” lấy nguồn từ “hộp About của trò chơi”, còn nội dung “[Krueger] đã viết nó trong một mùa hè” lấy nguồn từ một bài đăng diễn đàn
      Bài của Chen viết rằng “Tony Krueger được Wikipedia nhớ đến là người đã port …” rồi thêm chú thích rằng “việc ông ấy làm được điều này mà không có mã nguồn có lẽ không được ghi lại rộng rãi đến vậy. Ông đã đảo ngược phiên bản MS-DOS rồi hiện thực lại nó cho Windows.” Sau đó bài Wikipedia đã trích bài của Chen cho phần thông tin bổ sung này. Mọi thứ đều ổn và phù hợp, và tôi vừa chỉnh sửa để chỗ trích dẫn lại rõ ràng hơn
    • Để tham khảo, trích dẫn blog của Raymond Chen cụ thể được gắn với tuyên bố không có mã nguồn nên đã đảo ngược bản port MS-DOS
      Trước khi chỉnh sửa, trò chơi tự nó là nguồn cho việc ghi Tony và Ed Halley là các nhà phát triển, nhưng người thêm giai thoại đảo ngược từ blog Chen đã tách câu ra, khiến trích dẫn về tên nhà phát triển chỉ còn áp dụng cho người kia
      https://en.wikipedia.org/w/index.php?title=Chip%27s_Challeng...
    • Chen không dùng Wikipedia làm nguồn cho việc Krueger đã port trò chơi
      Ông chỉ chỉ ra Wikipedia đang ghi Krueger nổi tiếng nhất vì điều gì, rồi bổ sung thêm một điểm đáng chú ý khác về Krueger, tức là gạch chân lượn sóng. Nếu đọc toàn bộ bài của Chen thì bên dưới còn có thêm chi tiết về việc port, nên rõ ràng ông ấy biết chuyện đó. Dùng bài này làm nguồn cho việc port cũng không sao. Wikipedia đúng là đôi khi có những vòng lặp dẫn nguồn kiểu này, nhưng có vẻ không phải trường hợp này
  • Tôi thích những bài như thế này. Trong vô số nhánh khả dĩ, cuối cùng lại là đường lượn sóng được chọn, mà còn xuất phát từ một quyết định ngẫu hứng của một người, vậy mà rốt cuộc lại thay đổi hoàn toàn thế giới

    • Mọi nhánh đều đã xảy ra, và hiện giờ chúng ta chỉ đang sống trong vũ trụ có đường lượn sóng đó thôi
  • Tôi không phải lúc nào cũng thích gạch chân lượn sóng, nhưng như một mẫu UI thì nó rất đáng công nhận
    Trong các dấu hiệu trực quan để thể hiện “từ này có vấn đề gì đó”, đây là một trong những kiểu trực quan và dễ nhận ra nhất

  • Chỉ cần nhìn tiêu đề bài gửi và tên miền microsoft.com là tôi luôn nhận ra đó là bài của Raymond. Tôi thật sự rất thích ông ấy

  • “Ông ấy làm được việc này mà không có mã nguồn” à, tất nhiên rồi. Đây là HN mà, ai cần mã nguồn chứ
    Nhưng thay vì đảo ngược, nếu là tôi thì có lẽ tôi sẽ tìm hoặc tự làm một trình giả lập. Vì sau đó có thể sẽ còn được yêu cầu “port” phần mềm khác nữa. Việc chúng ta hầu như không biết ai là người chịu trách nhiệm cho các tính năng tốt và xấu trong phần mềm mình dùng thật ra là điều khá buồn. Phim ảnh có thông lệ chiếu credit rất dài ở cuối, và tôi thích đọc kỹ chúng. Phát triển phần mềm cũng nên có văn hóa như vậy. Một số game có làm thế, và vài Easter egg cũng đóng vai trò đó

  • Sẽ thật tuyệt nếu có thể tắt hẳn kiểm tra chính tả
    Tôi biết đây là sở thích rất ngách, nhưng tôi thấy ổn khi sống chung với lỗi của mình, và không muốn phải “dạy” cho hệ thống hết lần này đến lần khác các tiếng lóng, thuật ngữ kỹ thuật hay từ viết tắt. Tôi cũng thường tự hỏi những người viết tiếng Anh không chuẩn mực thời nay xoay xở thế nào. Thật khó tưởng tượng James Joyce sẽ thích chuyện này

    • Có gì ngăn cản đâu? Tôi đã tắt kiểm tra chính tả trên mọi thiết bị của mình
      Tôi cũng không phải người bản ngữ nên rõ ràng nó có ích, nhưng tôi cũng ghét việc nó phàn nàn hoặc tự sửa những chuỗi ký tự mà tôi viết có chủ ý
    • MS Word có tùy chọn “kiểm tra chính tả khi nhập” và có thể tắt nó. Kiểm tra ngữ pháp cũng vậy
  • Tôi nhớ Larry Constantine thật sự rất ghét gạch chân lượn sóng
    Theo cách ông ấy diễn đạt, khi viết thì bạn luôn phải nghĩ đến từ tiếp theo, còn đường lượn sóng lại kéo sự chú ý về từ bạn vừa viết xong. Nó như đang hét lên: “Này, nghe đây! Mày thật sự nghĩ mình biết đánh vần à? Cái ‘fatouos’ mày vừa viết là cái quái gì vậy?” rồi cứ hành hạ bạn cho đến khi bạn dừng lại, bấm vào từ bị gạch lượn sóng và sửa nó. Về cơ bản, đó là dạng nguyên thủy của Clippy
    Nếu Word có hai chế độ như vi thì có thể giải quyết được. Ở chế độ viết, nó không làm phiền gì và chỉ để bạn viết; đến khi bấm nút chuyển sang chế độ chỉnh sửa thì hãy cứ tung ra thoải mái gạch lượn sóng và các gợi ý AI

 
Ý kiến trên Lobste.rs
  • Một di sản thú vị. May mà gạch chân lượn sóng đã được đón nhận tích cực
    Và chú thích này cũng khá ghê: “Có lẽ không nhiều người biết, nhưng ông ấy đã [port Chip's Challenge] mà không có mã nguồn. Ông đảo ngược phiên bản MS-DOS rồi triển khai lại cho Windows.”
    • Cái gật đầu nhắc tới Penn and Teller / Weird Al hẳn cũng là một cảm giác cực kỳ tuyệt vời
      Vừa tìm thử thì thấy Tony làm ở Microsoft từ năm 1989 cho đến cuối cùng, nếu tính đúng thì là hơn 37 năm một chút
  • Phản ứng đầu tiên của tôi là “Ồ, chuyện làm cho cái này không khựng lại vài giây liên tục có vẻ dễ hơn tưởng tượng”
    Nhưng rồi lại nghĩ vào đầu thập niên 90 thì RAM chắc chỉ khoảng 4~8MB, nên có lẽ không thể đơn giản nạp cả danh sách từ tiếng Anh vào bộ nhớ. Với lại tôi không rõ đa luồng trong C++ đầu thập niên 90 như thế nào, nhưng ngay cả cuối những năm 2000 nó vẫn khá khó chịu, nên đây hẳn là một bài toán khá hóc búa
    • Word ’95 chạy trên Windows 95/NT, nên đã dùng đa nhiệm ưu tiên và Win32, và việc đa luồng hẳn dễ và ổn định hơn so với Windows 3.x. Có vẻ đó cũng là lý do chính khiến UI gạch chân lượn sóng màu đỏ trở nên khả thi
      Còn về kích thước từ điển, một trong những trình kiểm tra chính tả đời đầu đã thành công nhét từ điển tiếng Anh vào 64KB RAM từ cuối thập niên 1970 (xem Programming pearls của Jon Bentley). Dùng DAWG thì có thể nén một từ điển tiếng Anh cỡ trung bình 100.000 từ xuống 400KB, mà việc tìm gợi ý chính tả cũng nhanh: https://www.strchr.com/ternary_dags
  • Đây là một tính năng hay, nhưng chắc vì mọi người hay dùng ảnh chụp màn hình nên cứ mỗi lần gạch chân lượn sóng xuất hiện nguyên vẹn trong bản in hay slide thuyết trình là tôi lại hơi rùng mình
    • Thường thì có vẻ là từ Google Docs hoặc Apple Notes, và chỉ nhìn kiểu mặc định cũng phân biệt được