ปลั๊กอินใหม่ของ Obsidian ที่ชื่อ Note Codes ได้จุดประกายการถกเถียงอย่างเข้มข้นในชุมชนเกี่ยวกับแนวทางการสร้างตัวระบุสั้นๆ สำหรับโน้ต ปลั๊กอินนี้สร้างรหัส 4 ตัวอักษรเช่น AB-CD เพื่อช่วยให้ผู้ใช้สามารถอ้างอิงโน้ตดิจิทัลของตนในสมุดบันทึกที่เขียนด้วยลายมือและระบบภายนอกอื่นๆ ได้อย่างรวดเร็ว อย่างไรก็ตาม การอภิปรายทางเทคนิคได้เผยให้เห็นปัญหาทางคณิตศาสตร์พื้นฐานที่อาจจำกัดประโยชน์ใช้สอยของมัน
ข้อมูลจำเพาะทางเทคนิค:
- รูปแบบโค้ด: อักขระตัวเลขและตัวอักษร 4 ตัว (XX-XX)
- อัลกอริธึมแฮช: SHA-256 (ใช้ 20 บิตแรก)
- การเข้ารหัส: Base32 ของ Douglas Crockford
- อักขระที่ไม่รวม: 0, I, L, U (เพื่อความชัดเจน)
- ตัวจัดการโปรโตคอล:
obsidian://note-codes/open?code=XX-XX
![]() |
---|
ภาพหน้าจอของแอปพลิเคชัน Obsidian ที่แสดงบันทึก แสดงให้เห็นบริบทการจดบันทึกแบบดิจิทัลที่เกี่ยวข้องกับปลั๊กอิน Note Codes |
Birthday Paradox โจมตีอีกครั้ง
ความท้าทายที่ใหญ่ที่สุดของปลั๊กอินนี้อยู่ที่คณิตศาสตร์ความน่าจะเป็นพื้นฐาน สมาชิกชุมชนได้ระบุอย่างรวดเร็วว่าระบบ 4 ตัวอักษรที่ใช้ข้อมูลแฮช 20 บิตสร้างการผสมผสานที่เป็นไปได้เพียงประมาณ 1 ล้านแบบเท่านั้น แม้ว่าจำนวนนี้จะฟังดูเยอะ แต่ birthday paradox ทำให้การชนกันเป็นไปได้มากกว่าที่คาดหวัง
ด้วยโน้ตเพียง 500 ชิ้นใน vault ผู้ใช้จะเผชิญกับโอกาสประมาณ 10% ที่โน้ตสองชิ้นจะใช้รหัสเดียวกัน ที่ 900 โน้ต สัดส่วนนี้เพิ่มขึ้นเป็น 33% และเมื่อถึง 1,200 โน้ต การชนกันจะมีแนวโน้มเกิดขึ้นมากกว่าไม่เกิดขึ้น ตัวเลขเหล่านี้แสดงถึงขนาด vault ที่สมจริงสำหรับผู้ใช้ Obsidian หลายคน ทำให้ปัญหาการชนกันเป็นข้อกังวลในทางปฏิบัติมากกว่าความกังวลเชิงทฤษฎี
นักพัฒนายอมรับปัญหานี้ แต่แนะนำว่าการแสดงโน้ตที่ตรงกันทั้งหมดเมื่อค้นหาอาจช่วยให้ผู้ใช้ระบุโน้ตที่ถูกต้องผ่านบริบทได้ นักวิจารณ์โต้แย้งว่าแนวทางนี้ทำลายจุดประสงค์หลักของปลั๊กอินในการให้ตัวระบุที่ไม่ซ้ำกันและเชื่อถือได้
ความน่าจะเป็นของการชนกันตามขนาดของ Vault:
- 500 โน้ต: มีโอกาสชนกันประมาณ 10%
- 900 โน้ต: มีโอกาสชนกันประมาณ 33%
- 1,200 โน้ต: มีโอกาสชนกันมากกว่า 50%
- รหัสที่เป็นไปได้ทั้งหมด: 1,048,576 (32^4)
ปรัชญาการออกแบบสร้างข้อกังวลเพิ่มเติม
นอกเหนือจากข้อจำกัดทางคณิตศาสตร์แล้ว ตัวเลือกการออกแบบของปลั๊กอินยังได้รับการวิพากษ์วิจารณ์จากชุมชน รหัสโน้ตจะเปลี่ยนแปลงเมื่อใดก็ตามที่ไฟล์ถูกเปลี่ยนชื่อหรือย้าย ทำให้การอ้างอิงภายนอกใดๆ ที่ผู้ใช้อาจจดไว้เสียหาย สิ่งนี้ขัดแย้งโดยตรงกับวิธีที่ผู้ใช้หลายคนคาดหวังให้ระบบตัวระบุทำงาน
ฉันเข้าใจแนวคิดของการกำหนดตัวระบุสั้นๆ ให้กับสิ่งต่างๆ แต่แล้วทำไมฉันถึงอยากให้ ID นั้นเปลี่ยนแปลงเมื่อฉันเปลี่ยนคุณสมบัติสุ่มๆ เกี่ยวกับโน้ต?!
นักพัฒนาอธิบายว่าการตัดสินใจนี้เกิดจากความต้องการให้ระบบยังคงเป็นอิสระจาก Obsidian เอง โดยการใช้รหัสที่อิงจากเส้นทางไฟล์เป็นหลัก อัลกอริทึมสามารถทำงานกับระบบจดบันทึกใดๆ ได้ในทางทฤษฎี อย่างไรก็ตาม ผู้ใช้ตั้งคำถามว่าแนวทางที่ไม่ขึ้นกับแพลตฟอร์มนี้ให้ประโยชน์จริงหรือไม่เมื่อมันเสียสละความเสถียรและความน่าเชื่อถือ
แนวทางทางเลือกและกรณีการใช้งาน
แม้จะมีการวิพากษ์วิจารณ์ แต่สมาชิกชุมชนบางคนก็ชื่นชมแนวคิดนี้และเสนอแนะการปรับปรุง ไอเดียต่างๆ รวมถึงการใช้รหัสที่ยาวขึ้น การใช้การตรวจจับการชนกัน หรือการสร้างระบบแบบลำดับชั้นที่รหัสไดเรกทอรีรวมกับตัวระบุเฉพาะโน้ต
ปลั๊กอินนี้ทำงานได้ดีในกรณีการใช้งานเฉพาะ ผู้ใช้ที่ดูแลสมุดบันทึกที่เขียนด้วยลายมือควบคู่ไปกับโน้ตดิจิทัลพบว่ารหัส 4 ตัวอักษรง่ายกว่ามากในการเขียนและจำกว่าชื่อไฟล์เต็มหรือตัวระบุที่ยาวกว่า ระบบนี้ยังใช้งานได้สำหรับงานสคริปต์และระบบอัตโนมัติอย่างรวดเร็วที่ความกระชับสำคัญกว่าความไม่ซ้ำกันที่สมบูรณ์แบบ
ผู้ใช้หลายคนสังเกตว่า Obsidian มีฟังก์ชันการทำงานที่คล้ายกันอยู่แล้วผ่านนามแฝงและระบบลิงก์ที่มีอยู่ อย่างไรก็ตาม คุณสมบัติในตัวเหล่านี้ต้องการให้อยู่ในระบบนิเวศ Obsidian ในขณะที่ Note Codes มีเป้าหมายเพื่อเชื่อมโยงเวิร์กโฟลว์การจดบันทึกแบบดิจิทัลและแบบแอนะล็อก
การถกเถียงนี้เน้นย้ำคำถามที่กว้างขึ้นเกี่ยวกับการออกแบบตัวระบุในระบบการจัดการความรู้ส่วนบุคคล แม้ว่าการใช้งานปัจจุบันจะมีข้อจำกัดทางคณิตศาสตร์ที่ชัดเจน แต่มันแสดงถึงความพยายามที่น่าสนใจในการแก้ไขความท้าทายของการเชื่อมต่อแนวทางการจดบันทึกแบบดิจิทัลและแบบฟิสิคัล
อ้างอิง: Obsidian Note Codes