4 điểm bởi GN⁺ 2024-10-05 | 1 bình luận | Chia sẻ qua WhatsApp
  • Cartographist là một trình duyệt thử nghiệm dành cho luồng nghiên cứu khi người dùng đào sâu theo các liên kết; thay vì mở cửa sổ mới, nó hiển thị ngữ cảnh duyệt bằng các panel nối tiếp theo chiều ngang
  • Không chỉ lưu lịch sử truy cập dưới dạng danh sách theo thời gian, mà hiển thị dưới dạng tổng quan cấu trúc cây, giúp người dùng dễ nắm được mình đã đi theo đường nào để tới một trang
  • Có thể lưu và tải lại trạng thái phiên dưới dạng trails, cho phép tiếp tục việc khảo cứu một chủ đề kéo dài từ đúng điểm đã dừng
  • Bắt đầu từ một thử nghiệm trình duyệt phục vụ nghiên cứu vào mùa hè 2020, chịu ảnh hưởng từ bố cục website của Andy Matuschak, thử nghiệm stack view trình duyệt di động của Nate Parrot, Miller columns và trình duyệt lớp của Smalltalk
  • Trong nghiên cứu thực tế, quá trình tổng hợp — thu thập một phần tài liệu rồi sắp xếp lại — quan trọng hơn việc bảo toàn toàn bộ lịch sử; việc lưu vị trí cuộn, vùng chọn hoặc lịch sử có thể chỉnh sửa có thể thực dụng hơn

Cách Cartographist hỗ trợ khám phá

  • Cartographist là một trình duyệt web thử nghiệm tập trung vào kiểu duyệt “hang thỏ”
  • Thay vì mở cửa sổ mới bằng cmd-click, mỗi khi mở một liên kết, nó tạo một panel cuộn ngang
  • Không tìm trang trong lịch sử truy cập tuyến tính, mà hiển thị luồng khám phá dưới dạng tổng quan cấu trúc cây
  • Không phải bắt đầu lại mỗi lần; có thể lưu và tải lại đúng trạng thái tại thời điểm rời phiên dưới dạng trails
    • Phù hợp với cách sử dụng khi khảo cứu một chủ đề trong thời gian dài
  • Mã nguồn được công khai tại szymonkaliski/Cartographist

Bối cảnh và giới hạn của thử nghiệm

  • Dự án bắt đầu vào mùa hè 2020 khi thử nghiệm ý tưởng về một trình duyệt web lấy nghiên cứu làm trung tâm
    • Phân biệt nền tảng là xem browsing như một hoạt động mở, mang tính phân nhánh, còn searching là truy xuất thông tin
    • Sau khi chia sẻ bản xem trước trên Twitter, các yêu cầu chia sẻ tiếp tục xuất hiện nên dự án được công khai
  • Duyệt dựa trên panel chịu ảnh hưởng từ nhiều giao diện
  • Cách duyệt bằng panel tương tự cũng được dùng để duyệt mã trong Vim
    • Đó là cách mở định nghĩa hàm trong một panel mới bằng một phím tắt
    • Glamorous Toolkit có thể được xem là một trường hợp mở rộng hơn của ý tưởng duyệt bằng panel
  • Lịch sử được lưu trên đĩa hấp dẫn về mặt lý thuyết ở chỗ sau một thời gian vẫn có thể quay lại phiên duyệt và chủ động chọn mình đang ở trong “topic” nào
  • Trên thực tế, tính hữu dụng của toàn bộ lịch sử tự thân khá hạn chế
    • Biết mình đã đến đâu bằng cách nào đôi khi hữu ích, nhưng điều quan trọng hơn trong nghiên cứu là tổng hợp: chọn ra một phần từ tổng thể lớn, sắp xếp lại, tái kết hợp và suy nghĩ cùng tài liệu
    • Những cải tiến nhỏ hơn có thể gồm lưu vị trí cuộn hoặc vùng chọn, và lịch sử có thể chỉnh sửa để xóa các ngõ cụt và thêm ghi chú
  • Vẫn có khả năng cần giải quyết vấn đề ở một tầng khác
    • Một trình quản lý cửa sổ tốt gần như có thể thay thế Cartographist
    • Tác giả đã thử nghiệm bố cục dạng cột trong HHTWM, nhưng vì không có cuộn ngang nên rốt cuộc không mấy hữu ích

1 bình luận

 
GN⁺ 2024-10-05
Ý kiến trên Hacker News
  • Hơi lạc đề một chút, nhưng đoạn bài viết nói rằng khi duyệt code bằng Vim thì “mở định nghĩa hàm sang một panel mới chỉ bằng một phím tắt” khiến tôi thấy hứng thú, nên đã vào GitHub của tác giả để tìm cấu hình .vim
    Cách làm là nnoremap gF vgF: https://github.com/szymonkaliski/dotfiles/blob/357fc7c76ca86...
    nnoremap gD :call CocActionAsync('jumpDefinition', 'vsplit'): https://github.com/szymonkaliski/dotfiles/blob/357fc7c76ca86...
    Cuối cùng tôi chốt lại trong Lua của nvim với buf_set_keymap('n', 'gds', 'vlua vim.lsp.buf.definition()', opts), và để nó ở một mapping khác với gd thường dùng để có thể chọn có mở cửa sổ chia mới hay không. Ví dụ, nếu biến chỉ được định nghĩa ở phía trên 20 dòng thì tôi sẽ không muốn mở cửa sổ chia mới

    • Với mục đích kiểu này thì Haystack cũng khá ổn: https://haystackeditor.com/
    • Với các tính năng của Vim, nếu chúng ta nghĩ ra được thì khả năng cao là đã có ai đó triển khai rồi, chỉ là mình chưa thấy thôi. Dù vậy, sẽ rất hay nếu có một tổ hợp phím kiểu “khi đi tới định nghĩa, nếu một phần văn bản hiện đang nhìn thấy vẫn còn nằm trên màn hình thì cứ nhảy tới đó, còn nếu xa hơn thế thì hãy mở cửa sổ chia
    • Tôi thích cấu hình này nên đã thêm vào cấu hình nvim của mình, nhưng gds làm gd bị trễ nhẹ khi tôi định dùng nó, nên tôi đổi sang gv
    • Lệnh chính xác là vim.api.nvim_buf_set_keymap hoặc đơn giản là vim.keymap.set
  • Khá tuyệt. Tôi rất khuyến nghị liên hệ với Kay Xu, người nghiên cứu về sensemakingberrypicking
    Có vẻ họ đang làm một phiên bản mới hơn và tốt hơn dựa trên tiện ích mở rộng trình duyệt thay vì renderer riêng, và nếu hợp tác thì có lẽ sẽ có ích cho cả hai bên
    https://vis4sense.github.io/sensemap/paper.pdf
    https://vis4sense.github.io/sensemap/
    https://web.archive.org/web/20080112091521/http://www.gseis....

    • Không hỗ trợ Firefox. Và có ghi rằng “phiên bản cũ của SenseMap không còn được bảo trì nữa, còn phiên bản mới tên HistoryMap đang được phát triển”, nhưng trang web thì đã chết
  • Tôi từng làm một thứ tương tự hơn 20 năm trước. Nó còn hỗ trợ tìm kiếm toàn văn trong nội dung trang, và cũng hoạt động giống lịch sử trình duyệt nên tôi đã dùng trong vài năm
    Giải pháp thực sự thì tôi thấy ở một người cực kỳ kiên trì, có chứng khó học, trong một căn phòng với tủ dưới tầng hầm nhét đầy giấy cuộn khổ lớn. Để hiểu sách giáo khoa, anh ấy tự tạo ra một kiểu ngữ pháp riêng bằng cách sắp xếp lại nội dung trên những cuộn giấy khổng lồ, và kết quả giống như sự pha trộn giữa mind map và ZUI
    Ý tưởng “liên kết” của anh ấy gần với một hệ thống chỉ mục hơn. Anh ấy kéo một cuộn giấy khác có dán nhãn ra khỏi tủ, mở đến vùng “được liên kết”, rồi gập nó trên bàn để đặt hai cuộn cạnh nhau
    Tôi nhận ra tính tổng quát của nó gần như ngay lập tức, và hơn 10 năm trước đã dành vài tháng làm một cách mới để duyệt web, nhưng rồi không theo tiếp được. Tôi vẫn luôn nghĩ mình nên làm tiếp, nhưng lo âu và trầm cảm thực sự rất khó khăn. Giờ thì còn có thể dùng LLM để gắn nhãn ontology thông minh nữa. Các mảnh ghép đều đã ở ngay đó rồi, chỉ cần nhặt lên thôi

    • Bạn cũng có thể làm kiểu dán giấy, ảnh, ghi chú... lên tường hoặc một bảng ghim khổng lồ, rồi dùng dây đỏ và đinh ghim để nối các mục có liên quan
    • Thú vị đấy. Sẽ rất hay nếu có link để xem thêm về dự án đó và nguồn cảm hứng của bạn. Nếu có blog hay tài khoản mạng xã hội đáng theo dõi thì bạn cũng nên viết lại thành bài
    • Bạn có thể giải thích hệ thống liên kết đó theo cách khác được không? Tôi vẫn chưa hình dung rõ. Cụ thể “mở cuộn giấy ‘chỉ mục’ có dán nhãn tới vùng được liên kết” nghĩa là gì?
    • Nghe giống Zettelkasten + transclusion
  • Đoạn “Tôi chia sẻ bản xem trước trên Twitter và nhận được phản hồi cực lớn ngoài dự đoán, nhưng rồi lại bị phân tâm bởi việc khác nên không quay lại dự án nữa” thật buồn cười
    Làm một trình duyệt để khám phá hố thỏ rồi chính mình lại bị xao nhãng
    Bỏ chuyện đùa sang một bên, phần mô tả tính năng Vim làm tôi nhớ tới trình duyệt Whisper của Squeak. Nó có một thứ kiểu SmalltalkBrowser thiên về chiều sâu để tránh việc cửa sổ cứ tất yếu sinh sôi trong quá trình làm việc thông thường. Cũng thú vị ở chỗ việc tái tổ chức duyệt mã nguồn theo kiểu đó trong Vim chỉ cần cỡ hai dòng cấu hình. Tất nhiên, trình duyệt Whisper không chỉ có duyệt ngang mà còn có cả chồng lớp và UI mới

  • Tuyệt. Khi làm Chrome, một vài người, thực ra gần như chỉ mình tôi, đã rất mê một trình duyệt shell IE tên là iRider. Nó có tab dạng cây và tính năng ghim nên rất hữu ích theo cách khá tương tự
    Nếu nhớ không nhầm thì còn có một tính năng cũng rất hợp ở đây: kéo qua nhiều tab để điều khiển hàng loạt. Bạn bấm nút đóng hoặc ghim rồi kéo dọc qua các tab khác, và thao tác tương tự sẽ được áp dụng, khiến việc xử lý đống tab cứ dài ra mãi trở nên cực kỳ dễ dàng

    • Tôi muốn thêm duyệt lịch sử theo chiều ngang này vào “Chrome ảo hóa”, tức Chrome như một ứng dụng client-server, là BrowserBox và SaaS của nó là CloudTabs: https://browse.cloudtabs.net
  • Trông như một thứ vừa là giấc mơ vừa là cơn ác mộng đối với người dùng ADHD
    Có phải chỉ mình tôi là thường kết thúc một phiên duyệt web với 300 tab không? Có vẻ tính năng này sẽ khiến tôi lạm dụng quá mức và làm cuộc sống tệ đi rất nhiều

    • Gần đây tôi biết đến yếu tố trí nhớ làm việc của ADHD, và điều đó khá mang tính bước ngoặt. Tôi nhận ra việc quan trọng nhất có thể làm vào bất kỳ ngày nào là dọn trống bàn cờ, để có không gian tập trung và cũng giảm bớt gánh nặng cảm nhận trong ngày
      Mất một thời gian, nhưng giờ khi nhìn đống linh tinh như tab hay ảnh chụp màn hình, tôi không còn nghĩ về việc sẽ lưu hay mất cái gì nữa, mà nghĩ rằng nếu không có đống đó thì mình sẽ làm được thêm bao nhiêu việc. Khi đó nó bắt đầu trông như là đang đạt được chứ không phải mất đi, và điều đó có ích. Không phải lúc nào cũng hiệu quả, nhưng những ngày hiệu quả thì thực sự đáng kinh ngạc
    • Với tôi, việc tab chồng chất thường liên quan đến nỗi sợ mất mát. Kiểu lưu trữ kỹ thuật số những thứ có thể một ngày nào đó sẽ cần đến. Vì thế nếu có sự yên tâm rằng luôn có bản ghi lưu lại thì có khi lại tốt hơn
      Sẽ còn hữu ích hơn nếu có thể gắn thẻ dễ dàng trong lúc khám phá, rồi sau đó tìm nhanh theo thẻ và nội dung của các trang đã xem. Khi có niềm tin rằng có thể tìm lại được, việc đóng tab sẽ dễ hơn
      Cũng từ góc nhìn ADHD, dạo này tôi dọn tab đóng bớt theo chu kỳ. Thường là vào các sự kiện liên quan như lúc bắt đầu hoặc kết thúc một ngày làm việc, hay khi bắt đầu hoặc hoàn thành một công việc. Tôi cố giữ một cửa sổ cho mỗi việc đang làm, còn các tab khác thì đưa sang nơi khác. Ví dụ nếu là tab liên quan đến việc cần làm thì cho vào bảng kanban, nếu là thứ để đọc thì gửi sang Instapaper, còn nếu thấy thú vị và muốn xem lại sau thì ghi một dòng vào nhật ký LogSeq kèm mô tả ngắn. Nếu không chỉ đơn thuần chất đống, hẳn sẽ có lý do để lưu tab, nên nguyên tắc là làm rõ lý do đó và đặt nó vào nơi có thể tìm lại vào lúc thích hợp
    • Nếu bị ADHD thì có lẽ bạn sẽ thích offpunk. Đây là một trình duyệt Gemini, Gopher, web tối giản chạy ngoại tuyến
      Bạn thêm bookmark, RSS feed, v.v., chạy offpunk --sync, rồi chạy offpunk. Cuối cùng nhập tour hoặc t ở dấu nhắc, rồi cứ bấm t cho đến khi xem hết mọi blog hay trang tin
      Đọc các trang bằng phím cách, và nếu muốn đọc lại thì gõ less, khi đó có thể truy cập bằng số liên kết. Để quay lại thì nhấn b. Mọi nội dung đều được lưu ngoại tuyến để dùng về sau
      URL https://sr.ht/~lioploum/offpunk/
    • Tôi cũng y hệt như vậy. Tôi cần một thứ gì đó giúp mình luôn ở đúng quỹ đạo. Ít nhất là một thứ báo hiệu “Chú ý! Bạn đang chui vào hang thỏ” thay vì xúi mình lao vào hang thỏ
      Mặt khác, khả năng nhanh chóng quay lại điểm rẽ nơi mình đã lệch khỏi lộ trình ban đầu thực sự rất quý giá
      Ngay cả trong Vim tôi cũng không thể thật sự tiếp nhận tính năng nhánh hoàn tác. Tôi hiểu nó, nhưng không dùng được trong thực tế. Có vẻ bộ não ADHD của tôi xử lý lịch sử tuyến tính tốt hơn lịch sử phân nhánh
    • Khi tab nhiều đến mức không kiểm soát nổi thì cứ chuyển sang OneTab
  • Thú vị đấy. Có phần chồng lấn với các tiện ích mở rộng Firefox sau
    Tree Style Tabs: https://addons.mozilla.org/en-US/firefox/addon/tree-style-ta... — đơn giản hơn và không có tính năng lưu phiên
    Tree Tabs: https://addons.mozilla.org/en-US/firefox/addon/tree-tabs — phức tạp hơn và cũng có thể lưu phiên, nhưng không tương thích với một số tiện ích khác và chưa được Mozilla đánh giá bảo mật
    Cả hai đều không sắp xếp lại tab trong cửa sổ, mà chỉ cung cấp danh sách cây thay thế cho các tab đang mở

    • Sideberry là phiên bản phát triển hơn của những tiện ích đó
    • Firefox cũng từng có một tiện ích hiển thị tab theo dạng lưới trong cùng một cửa sổ, nhưng nó đã biến mất cùng với XUL
    • Sẽ hay nếu có thứ gì đó kiểu Miller columns
    • Tôi chỉ thấy foxytab là có thể sắp xếp lại tab trong cửa sổ
  • Mọi người đều nói về rủi ro tồn vong mà AI sẽ mang lại, còn người này thì lại thả công cụ như thế này ra thế giới mà chẳng có bất kỳ rào chắn an toàn nào, thật đáng lo
    Nghiêm túc hơn một chút, nếu có đồ thị tab ArXiv thay cho danh sách tab tuyến tính thì có thể khá hữu ích khi đào sâu tài liệu khoa học

    • Cái này thì liên quan gì đến “AI”?
    • Cách tiếp cận bằng đồ thị có thể mở rộng ra toàn bộ việc duyệt web. Có trường hợp bạn mở trang B từ trang A, rồi cũng mở trang B từ trang C
      Với kiểu duyệt dạng cây, bạn sẽ mở hoặc nhìn thấy B hai lần, và cũng không dễ nhận ra rằng bạn đã đi tới B từ cả A lẫn C
  • Cần mang siêu văn bản đúng nghĩa trở lại
    Trình duyệt nên hoạt động như đang điều hướng tài liệu. Có thể đi tới đi lui, và mỗi “khung nhìn” nên được lưu trong bộ nhớ đệm và có thể lưu lại, chứ không phải trở thành thứ rác SPA chở theo main.min.js nặng 20MB

  • Đây là câu hay nhất trong bài của người tạo ra trình duyệt tối ưu cho việc khám phá hang thỏ: “Tôi chia sẻ bản xem trước trên Twitter và nhận được phản hồi khổng lồ ngoài mong đợi, nhưng rồi lại bị phân tâm bởi việc khác và không thể quay lại với dự án”