Một plugin mới của Obsidian có tên Note Codes đã gây ra cuộc tranh luận sôi nổi trong cộng đồng về cách tiếp cận tạo ra các định danh ngắn cho ghi chú. Plugin này tạo ra các mã 4 ký tự như AB-CD để giúp người dùng nhanh chóng tham chiếu đến các ghi chú kỹ thuật số của họ trong nhật ký viết tay và các hệ thống bên ngoài khác. Tuy nhiên, các cuộc thảo luận kỹ thuật đã tiết lộ một vấn đề toán học cơ bản có thể hạn chế tính hữu dụng của nó.
Thông số kỹ thuật:
- Định dạng mã: 4 ký tự chữ và số (XX-XX)
- Thuật toán băm: SHA-256 (sử dụng 20 bit đầu tiên)
- Mã hóa: Base32 của Douglas Crockford
- Ký tự loại trừ: 0, I, L, U (để đảm bảo rõ ràng)
- Trình xử lý giao thức:
obsidian://note-codes/open?code=XX-XX
![]() |
---|
Ảnh chụp màn hình ứng dụng Obsidian hiển thị một ghi chú, minh họa bối cảnh ghi chú kỹ thuật số liên quan đến plugin Note Codes |
Birthday Paradox lại tấn công
Thách thức lớn nhất của plugin nằm ở toán học xác suất cơ bản. Các thành viên cộng đồng nhanh chóng nhận ra rằng hệ thống 4 ký tự sử dụng 20 bit dữ liệu hash chỉ tạo ra khoảng 1 triệu tổ hợp có thể. Mặc dù con số này nghe có vẻ nhiều, nhưng birthday paradox khiến việc xung đột trở nên có khả năng xảy ra cao hơn nhiều so với dự kiến.
Chỉ với 500 ghi chú trong một vault, người dùng phải đối mặt với khoảng 10% khả năng hai ghi chú chia sẻ cùng một mã. Ở 900 ghi chú, con số này tăng lên 33%, và đến 1.200 ghi chú, xung đột trở nên có khả năng xảy ra hơn là không. Những con số này đại diện cho kích thước vault thực tế của nhiều người dùng Obsidian , khiến vấn đề xung đột trở thành mối quan tâm thực tế chứ không phải lo lắng lý thuyết.
Nhà phát triển thừa nhận vấn đề này nhưng đề xuất rằng việc hiển thị tất cả các ghi chú khớp khi tìm kiếm có thể giúp người dùng xác định đúng ghi chú thông qua ngữ cảnh. Các nhà phê bình cho rằng cách tiếp cận này làm suy yếu mục đích cốt lõi của plugin là cung cấp các định danh độc nhất, đáng tin cậy.
Xác suất va chạm theo kích thước kho lưu trữ:
- 500 ghi chú: ~10% khả năng xảy ra va chạm
- 900 ghi chú: ~33% khả năng xảy ra va chạm
- 1.200 ghi chú: >50% khả năng xảy ra va chạm
- Tổng số mã có thể: 1.048.576 (32^4)
Triết lý thiết kế tạo ra những lo ngại bổ sung
Ngoài những hạn chế toán học, các lựa chọn thiết kế của plugin đã thu hút sự chỉ trích từ cộng đồng. Mã ghi chú thay đổi bất cứ khi nào tệp được đổi tên hoặc di chuyển, phá vỡ bất kỳ tham chiếu bên ngoài nào mà người dùng có thể đã viết ra. Điều này trực tiếp mâu thuẫn với cách nhiều người dùng mong đợi các hệ thống định danh hoạt động.
Tôi hiểu ý tưởng gán một định danh ngắn cho mọi thứ, nhưng tại sao tôi lại muốn ID đó thay đổi khi tôi thay đổi các thuộc tính ngẫu nhiên về ghi chú?!
Nhà phát triển giải thích quyết định này xuất phát từ việc muốn hệ thống vẫn độc lập với chính Obsidian . Bằng cách dựa mã hoàn toàn trên đường dẫn tệp, thuật toán về mặt lý thuyết có thể hoạt động với bất kỳ hệ thống ghi chú nào. Tuy nhiên, người dùng đặt câu hỏi liệu cách tiếp cận không phụ thuộc vào nền tảng này có cung cấp lợi ích thực sự khi nó hy sinh tính ổn định và độ tin cậy.
Các cách tiếp cận thay thế và trường hợp sử dụng
Bất chấp những chỉ trích, một số thành viên cộng đồng đánh giá cao khái niệm này và đề xuất các cải tiến. Các ý tưởng bao gồm sử dụng mã dài hơn, triển khai phát hiện xung đột, hoặc tạo ra các hệ thống phân cấp nơi mã thư mục kết hợp với các định danh cụ thể của ghi chú.
Plugin này thực sự phục vụ tốt các trường hợp sử dụng cụ thể. Người dùng duy trì nhật ký viết tay cùng với ghi chú kỹ thuật số thấy mã 4 ký tự dễ viết và nhớ hơn nhiều so với tên tệp đầy đủ hoặc các định danh dài hơn. Hệ thống cũng hoạt động cho các tác vụ scripting và tự động hóa nhanh nơi tính ngắn gọn quan trọng hơn tính độc nhất hoàn hảo.
Một số người dùng lưu ý rằng Obsidian đã cung cấp chức năng tương tự thông qua aliases và hệ thống liên kết hiện có của nó. Tuy nhiên, những tính năng tích hợp này yêu cầu ở lại trong hệ sinh thái Obsidian , trong khi Note Codes nhằm mục đích kết nối các quy trình ghi chú kỹ thuật số và analog.
Cuộc tranh luận làm nổi bật những câu hỏi rộng lớn hơn về thiết kế định danh trong các hệ thống quản lý kiến thức cá nhân. Mặc dù việc triển khai hiện tại có những hạn chế toán học rõ ràng, nó đại diện cho một nỗ lực thú vị để giải quyết thách thức kết nối các thực hành ghi chú kỹ thuật số và vật lý.
Tham khảo: Obsidian Note Codes