2 poin oleh GN⁺ 2024-12-08 | 1 komentar | Bagikan ke WhatsApp
  • Pada awal 2024, mulai meneliti sistem pengeditan kolaboratif untuk digunakan pada editor teks inti Moment. Saat ini ada berbagai algoritme yang mengklaim dapat menyelesaikan masalah pengeditan online dan offline. Namun, dalam praktiknya ditemukan bahwa pengalaman pengeditan offline tidaklah baik.
  • Masalah pengeditan offline
    • Algoritme populer seperti CRDTs dan OT menyelesaikan konflik pengeditan langsung dengan cara yang tidak intuitif, sehingga pengguna menganggapnya sebagai kerusakan data.
    • Pengeditan offline meningkatkan kemungkinan konflik langsung, dan algoritme ini tidak cocok untuk pengeditan offline.
  • Contoh: konflik pengeditan sepele
    • Alice dan Bob mengedit dokumen saat offline. Bob mengubah 'Color' menjadi 'Colour', dan Alice menghapus seluruh teks. Setelah kembali online, konflik ini harus diselesaikan.
    • Konflik semacam ini umum terjadi, dan akibatnya pengguna menganggap data mereka rusak.
  • Keterbatasan algoritme
    • Proyek seperti Yjs, ShareJS, dan Peritext mengklaim mendukung pengeditan offline, tetapi dalam praktiknya kesalahan sering terjadi.
    • Algoritme tidak dapat mengetahui maksud pengguna dan bekerja pada tingkat karakter, sehingga jaminan atas hasilnya lemah.
  • Peralihan ke masalah UI/UX
    • Algoritme saja tidak dapat sepenuhnya menyelesaikan masalah ini, dan pendekatannya perlu dilihat sebagai masalah UI/UX.
    • UI penggabungan dokumen seperti git sudah ada, dan perlu diteliti cara untuk membuatnya lebih mudah diakses dan lebih otomatis.
    • Beberapa peneliti berfokus pada masalah ini sebagai isu UI/UX, dan studi Ink & Switch tentang sejarah kolaborasi adalah salah satu contohnya.

1 komentar

 
GN⁺ 2024-12-08
Komentar Hacker News
  • Penulis Eg-walker dan ShareJS menyebutkan bahwa alat kolaborasi real-time berguna saat bekerja bersama secara online, tetapi untuk penyuntingan offline atau branch jangka panjang, diperlukan opsi untuk menambahkan penanda konflik dan melakukan peninjauan manual

    • Algoritme Eg-walker menyimpan pelacakan edit per karakter dari semua pengguna dan mencatat kapan setiap perubahan terjadi, sehingga membuka kemungkinan membangun CRDT yang dapat mendeteksi dan menandai rentang konflik
    • Ia menekankan bahwa ini adalah masalah yang menarik dan masih belum terselesaikan, sehingga membutuhkan lebih banyak perhatian
  • Masalah lain dari implementasi yang menggunakan CRDT adalah beban infrastruktur

    • Jika menggunakan CRDT, disarankan memakai sesuatu seperti Redis atau MyRocks, dan tidak membackup ke RDBMS, khususnya Postgres
  • Menyampaikan terima kasih kepada pengguna yang sedang bekerja mengintegrasikan CRDT ke perangkat lunak pencatatan

  • Disebutkan bahwa algoritme merge mekanis bisa memiliki performa berbeda pada berbagai jenis konflik, dan CRDT tidak dapat menentukan apakah teks hasil penggabungan benar-benar sesuai dengan maksud pengguna

    • Makalah Upwelling menjelaskan secara rinci perbedaan antara konflik semantik dan konflik sintaktik
    • Kolaborasi yang serius adalah masalah peninjauan dokumen, dan ini sangat penting terutama dalam jurnalisme dan publikasi ilmiah
  • Algoritme yang digunakan untuk penyuntingan teks kolaboratif (CRDT dan OT) memiliki persyaratan aljabar yang ketat terkait pelaksanaan dan interaksi operasi edit

    • Server dapat memproses operasi sesuai logika UX, dan klien dapat menggunakan strategi rebase/prediksi yang memungkinkan penyuntingan optimistis
  • Disebutkan bahwa konsep konflik matematis, kausal, dan entropi telah tercampur dengan konflik semantik

    • Di antara CRDT, kelas yang mempertahankan konflik adalah yang paling menjanjikan, dan pengguna harus dapat melihat konflik itu secara visual
  • Mengemukakan kemungkinan menggunakan AI untuk memprediksi merge

    • Disebutkan bahwa LLM dapat melihat change set penulis, menanyakan apakah edit saling tumpang tindih, lalu menentukan urutan perubahan untuk mendapatkan hasil yang baik dalam 90% kasus
  • CRDT adalah model formal yang sangat baik untuk struktur data terdistribusi, tetapi ada masalah dengan gagasan bahwa semua konflik harus diselesaikan secara otomatis

    • Dibutuhkan model yang dapat merepresentasikan konflik secara struktural serta menyelesaikannya secara bersama dan kolaboratif
    • Mereka mengembangkan model representasi konflik struktural bernama "Lazy Merging", yang menyajikan model konseptual sederhana melalui pendekatan matematis
  • Disebutkan bahwa ketika beberapa entitas secara bersamaan memiliki otoritas atas data, itu adalah masalah yang tidak bisa diselesaikan sepenuhnya

    • Ini adalah pelajaran yang dipetik dari sistem terdistribusi, dan tampak jelas dalam penyuntingan dokumen secara terdistribusi
  • Pada 2009, ada banyak diskusi tentang algoritme Git untuk menggabungkan perubahan secara otomatis, dan disebutkan bahwa Torvalds skeptis terhadap batasan auto-merge

    • Penyuntingan offline adalah masalah UI/UX, dan terkait dengan masalah komputasi yang terus mengulang solusi lama
    • Disebutkan bahwa dalam penyuntingan teks, merge kolaboratif offline harus menjadi pusat proses, meski sulit keluar dari puncak lokal seperti MacWrite