emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Question collaborative editing.


From: Karl Fogel
Subject: Re: Question collaborative editing.
Date: Mon, 21 Sep 2020 15:25:38 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

On 21 Sep 2020, Stefan Monnier wrote:
>> Just a question. I have seen in emacswiki the different alternatives for
>> collaborative editing and so far all of them look a bit hack so I
>> decided to ask if anyone is working in such a functionality for
>> emacs or have any hint. Maybe with tramp or emacsserver?
>
>Discussed before.
>Emacsserver/client is definitely not a good solution for it.
>
>Rudel (in GNU ELPA) was a serious attempt to do it, but it's been
>unmaintained for a long time, so it needs a fair bit of love.
>
>I don't think there's a protocol for that with a good Emacs client (or
>server) yet :-(

I'm very interested in this too, but don't have time to work on it.

However, I've been collecting references related to collaborative editing, 
especially in Emacs, in case I were ever to get time to work on it.  Perhaps 
those references would be useful for you, Ergus, so here they are in Org Mode 
format:

* Collaborative Editing | Parallel Editing | OT, CDRT, and more
** [[https://github.com/holtzermann17/linepad][Linepad]] Emacs + Etherpad.  But 
no progress since 2012?
** 
[[https://anarc.at/blog/2018-06-26-collaborative-editors-history/][Historical 
inventory of collaborative editors]] (2018)
** [[https://github.com/zk-phi/togetherly/][Togetherly]] Emacs-only; simple, 
but apparently works.  Insecure.  (2017)
** [[https://blog.kevinjahns.de/are-crdts-suitable-for-shared-editing/][Are 
CRDTs suitable for shared editing?]]
   Author of [[https://github.com/yjs/yjs][Yjs]] talks about his optimizations.
   "In this article, I will introduce you to a simple optimization for
   CRDTs and examine the exact performance trade-off of using Yjs for
   shared editing. I hope to convince you that the overhead is
   actually very small even for large documents with long edit
   histories."
** https://github.com/codimd/server
** [[https://floobits.com/help/plugins/emacs][Floobits client-side Emacs 
plugin]]
   The server-side is proprietary (see https://floobits.com/) but the Emacs
   client-side plugin is free software, under the Apache-2.0 license; you can do
   'git clone https://github.com/Floobits/floobits-emacs.git' to get it.
   This doesn't work without the proprietary server, of course, but it might 
help
   as a guide to what's needed on the client side.  I emailed Floobits and 
asked them
   whether they would consider freeing their server-side code, perhaps for a 
fee,
   but never received a response.  Email reference:
   > From: Karl Fogel
   > To: Floobits Info Contact Address
   > Subject: An odd business inquiry.
   > Date: Wed, 06 May 2020 00:00:21 -0500
   > Message-ID: <87368d1wuy.fsf@red-bean.com>
*** [[https://github.com/codimd/server/blob/master/docs/dev/ot.md][Docs on 
Operational Transform]]
*** https://operational-transformation.github.io/
** [[https://martin.kleppmann.com/papers/pushpin-papoc20.pdf][PushPin: Towards 
Production-Quality Peer-to-PeerCollaboration]]
   Peter van Hardenberg
   Ink & Switch, LLCSan Francisco, CA, USA

   Martin Kleppmann
   University of Cambridge
   Cambridge, United Kingdom
** [[https://lord.io/blog/2019/splicing-crdts/][Notes on Splicing CRDTs for 
Structured Hypertext]]
** https://github.com/typeintandem/tandem
** "Creating a Collaborative Editor" (Pierre Hedkvist, 11 June 2019)
   https://www.pierrehedkvist.com/posts/1-creating-a-collaborative-editor
** "Data Laced with History: Causal Trees & Operational CRDTs"
   Etherpad, Google Docs, etc
   http://archagon.net/blog/2018/03/24/data-laced-with-history/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]