2 puan yazan GN⁺ 2024-12-08 | 1 yorum | WhatsApp'ta paylaş
  • 2024'ün başında, Moment'in temel metin editöründe kullanılacak ortak düzenleme sistemini araştırmaya başladılar. Şu anda çeşitli algoritmaların çevrimiçi ve çevrimdışı düzenleme sorunlarını çözdüğünü iddia ediyor. Ancak pratikte çevrimdışı düzenleme deneyiminin iyi olmadığını fark ettiler.
  • Çevrimdışı düzenlemenin sorunları
    • CRDT'ler ve OT gibi popüler algoritmalar, doğrudan düzenleme çakışmalarını sezgisel olmayan biçimde çözüyor ve bu da kullanıcıların bunu veri bozulması olarak algılamasına yol açıyor.
    • Çevrimdışı düzenleme, doğrudan çakışma olasılığını artırıyor ve bu algoritmalar çevrimdışı düzenleme için uygun değil.
  • Örnek: küçük bir düzenleme çakışması
    • Alice ve Bob belgeyi çevrimdışı durumdayken düzenliyor. Bob, 'Color' ifadesini 'Colour' olarak değiştiriyor; Alice ise tüm metni siliyor. Daha sonra tekrar çevrimiçi olduklarında, bu çakışmanın çözülmesi gerekiyor.
    • Bu tür çakışmalar yaygın ve sonuç olarak kullanıcılar verinin bozulduğunu düşünüyor.
  • Algoritmaların sınırları
    • Yjs, ShareJS ve Peritext gibi projeler çevrimdışı düzenlemeyi desteklediğini iddia etse de, gerçekte sık hatalar ortaya çıkıyor.
    • Algoritmalar kullanıcı niyetini bilemez ve karakter düzeyinde çalıştıkları için sonuçlara dair güvenceleri zayıf kalır.
  • UI/UX sorununa geçiş
    • Sorun yalnızca algoritmalarla tamamen çözülemez; buna bir UI/UX problemi olarak yaklaşmak gerekir.
    • git benzeri belge birleştirme arayüzleri zaten mevcut; bunları daha erişilebilir ve daha otomatik hale getirmenin yolları araştırılmalı.
    • Bazı araştırmacılar bu soruna bir UI/UX problemi olarak odaklanıyor; Ink & Switch'in işbirliği geçmişi araştırması buna örnek.

1 yorum

 
GN⁺ 2024-12-08
Hacker News yorumu
  • Eg-walker ve ShareJS'in yazarı, gerçek zamanlı işbirliği araçlarının çevrimiçi birlikte çalışırken faydalı olduğunu, ancak çevrimdışı düzenleme veya uzun süreli branch'lerde çatışma işaretleyicileri ekleyip manuel inceleme yapma seçeneğinin gerekli olduğunu belirtiyor

    • Eg-walker algoritması, tüm kullanıcılardan karakter düzeyinde düzenleme takibini saklayıp tüm değişikliklerin ne zaman gerçekleştiğini kaydederek çatışma aralıklarını tespit edip gösterebilen bir CRDT oluşturma olasılığını ortaya koyuyor
    • Bunun ilginç bir problem olduğu ve hâlâ çözülmediği için daha fazla ilgiye ihtiyaç duyduğu vurgulanıyor
  • CRDT kullanan uygulamaların bir başka sorunu da altyapı yükü

    • CRDT kullanacaksanız Redis veya MyRocks gibi bir şey kullanmanın daha iyi olduğu, RDBMS'e, özellikle de Postgres'e yedeklememenin tavsiye edildiği belirtiliyor
  • CRDT'yi not alma yazılımına entegre etmeye çalışan kullanıcıya teşekkür ediliyor

  • Mekanik birleştirme algoritmalarının farklı türde çatışmalarda farklı performans gösterebileceği ve CRDT'nin birleştirilmiş metnin kullanıcının niyet ettiği şey olup olmadığını belirleyemeyeceği belirtiliyor

    • Upwelling makalesi, anlamsal çatışmalar ile sözdizimsel çatışmalar arasındaki farkı ayrıntılı biçimde açıklıyor
    • Ciddi işbirliğinin bir belge inceleme problemi olduğu, özellikle gazetecilik ve bilimsel yayıncılıkta bunun önemli olduğu ifade ediliyor
  • İşbirlikçi metin düzenlemede kullanılan algoritmaların (CRDTs ve OT), düzenleme işlemlerinin yürütülmesi ve etkileşimine dair katı cebirsel gereksinimleri var

    • Sunucu işlemleri UX mantığına göre ele alabilir ve istemciler iyimser düzenlemeye izin veren rebase/tahmin stratejileri kullanabilir
  • Matematiksel, nedensel ve entropik çatışma kavramlarının anlamsal çatışmalarla karıştırıldığı belirtiliyor

    • CRDT'ler içinde çatışmayı koruyan sınıfın en umut verici yaklaşım olduğu ve kullanıcının çatışmayı görsel olarak inceleyebilmesi gerektiği söyleniyor
  • Yapay zeka kullanarak birleştirmeyi tahmin etme olasılığı ortaya atılıyor

    • Bir LLM'in yazarın değişiklik setlerine bakıp düzenlemelerin çakışıp çakışmadığını sorarak ve değişiklik sırasını belirleyerek %90 oranında iyi sonuç verebileceği belirtiliyor
  • CRDT'ler dağıtık veri yapıları için mükemmel bir resmi model olsa da, tüm çatışmaların otomatik olarak çözülmesi gerektiği fikrinde sorun olduğu belirtiliyor

    • Çatışmaları yapısal olarak ifade edip paylaşımlı ve işbirlikçi biçimde çözebilen bir modele ihtiyaç var
    • "Lazy Merging" adlı yapısal çatışma ifade modeli geliştirilerek, matematiksel bir yaklaşımla basit bir kavramsal model sunuluyor
  • Birden fazla varlığın aynı anda veri üzerinde yetkiye sahip olmasının çözülemeyen bir problem olduğu belirtiliyor

    • Bunun dağıtık sistemlerden öğrenilen bir ders olduğu ve belgelerin dağıtık düzenlenmesinde açıkça görüldüğü söyleniyor
  • 2009'da Git'in değişiklikleri otomatik olarak birleştiren algoritmaları hakkında çok tartışma vardı ve Torvalds'ın otomatik birleştirmenin sınırları konusunda şüpheci olduğu belirtiliyor

    • Çevrimdışı düzenlemenin bir UI/UX problemi olduğu ve eski çözümleri tekrar etme eğilimindeki bilişim sorunuyla bağlantılı olduğu ifade ediliyor
    • Metin düzenlemede çevrimdışı işbirlikçi birleştirmenin sürecin merkezinde olması gerektiği ve MacWrite gibi yerel maksimumlardan çıkmanın zor olduğu belirtiliyor