Trình duyệt web thử nghiệm tối ưu cho việc khám phá “hang thỏ”
(szymonkaliski.com)- 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
browsingnhư một hoạt động mở, mang tính phân nhánh, cònsearchinglà 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
- Phân biệt nền tảng là xem
- Duyệt dựa trên panel chịu ảnh hưởng từ nhiều giao diện
- Bố cục website của Andy Matuschak
- Thử nghiệm xếp cạnh nhau các view trình duyệt web di động của Nate Parrot
- Miller columns
- Trình duyệt lớp Smalltalk nguyên bả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
Ý 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
.vimCách làm là
nnoremap gF vgF: https://github.com/szymonkaliski/dotfiles/blob/357fc7c76ca86...Và
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ớigdthườ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ớigdslàmgdbị trễ nhẹ khi tôi định dùng nó, nên tôi đổi sanggvvim.api.nvim_buf_set_keymaphoặc đơn giản làvim.keymap.setKhá tuyệt. Tôi rất khuyến nghị liên hệ với Kay Xu, người nghiên cứu về sensemaking và berrypicking
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....
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
Đ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
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
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
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
Bạn thêm bookmark, RSS feed, v.v., chạy
offpunk --sync, rồi chạyoffpunk. Cuối cùng nhậptourhoặctở dấu nhắc, rồi cứ bấmtcho đế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ấnb. Mọi nội dung đều được lưu ngoại tuyến để dùng về sauURL https://sr.ht/~lioploum/offpunk/
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
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ở
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
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.jsnặ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”