From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Ergus Newsgroups: gmane.emacs.devel Subject: Re: Question collaborative editing. Date: Thu, 24 Sep 2020 03:36:55 +0200 Message-ID: <20200924013655.asv2tem25cbwv5et@Ergus> References: <20200921120518.35d56p747pr5mhta.ref@Ergus> <20200921120518.35d56p747pr5mhta@Ergus> <87eemuanct.fsf@red-bean.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="37432"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Stefan Monnier , emacs-devel@gnu.org To: Karl Fogel Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Sep 24 03:37:57 2020 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kLGCq-0009Tv-Lg for ged-emacs-devel@m.gmane-mx.org; Thu, 24 Sep 2020 03:37:56 +0200 Original-Received: from localhost ([::1]:37042 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kLGCp-0001HQ-Mm for ged-emacs-devel@m.gmane-mx.org; Wed, 23 Sep 2020 21:37:55 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:46150) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kLGCC-0000qk-6h for emacs-devel@gnu.org; Wed, 23 Sep 2020 21:37:16 -0400 Original-Received: from sonic302-1.consmr.mail.bf2.yahoo.com ([74.6.135.40]:37223) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kLGC4-0007KZ-9A for emacs-devel@gnu.org; Wed, 23 Sep 2020 21:37:14 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aol.com; s=a2048; t=1600911426; bh=0yq3xFOcUgbJphjoUSUK6OSwwn3YS8aX+bMLQQTBRbc=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From:Subject; b=iE+3hLQUPhBcZHS/WtaCUkVZaaX4GGOx+Rt6NccgXJYzbvh1wf04D8q5D/25H9tEeJksfbqRP0GDD6jP9Mex+gMURyJ/JUOZ8JAUnrtyuUEowE2rP/niRHJHrQQ2zkvEbf4eDZy+dl6LnXdrkiKy/EwzirRPE00YjRh4+N6B6BfnNfyKtZZq29qr2TSkd6vwnYeJ9guvni5fbsYDvu8DEMaYcoQqTS70y6z7Hd7ri+IkMMM7Cv690vtkhs6AZ7unjIdGSBwSPr/Wn2SmQcCJR/rqa8rTIJol92ZN3rn12giwPUlxaAw3gdewPEX/3oEf0SylgxTwPVLgIyX+YGKwew== X-YMail-OSG: eCovjUwVM1mdzTJpco3WBLcZUcGBGbuppGpnDz6dVLTh3PjC.qfGWqE1kUpmm5H L2Ysa0.fTBIf9Kd35g49Ghg.W7t9tFue8YoZFOPKbby5Vv8FG4nCRZNE1pvguEOFUGHQsAVQklpr E60rAvhIo.AzJhuynMgdiD5dneSHNX3UiGRgry4Hx4DhmevaZHjzCE8ul3ZfEUHYtPsXD4yL1uTz db3GnfWpciAEbZxD9FffdMo9eNJNjPFQZ7VYAB13ES1jj4Wxf6FZI1R8FLtAWpStEwKNna4pGbVe L9Hn_uSezxZ_Zn4Ka2FKmhtFKwluNIE2F1OZxovq0zbloeLEGbFx1ZtnznWn2rEKHXVTQJN4NexN lWpoCLSxkadRPFhyo7tiW3P42aY0G82ZAgozRe.1Tp27sjVmoyacCePdMcB8s7joaBF1zMJ8vWJi jFG6wiyHSKlA0e6Yrsm3TXOqRb01lBE8HETqhlCZG1YW1kcQ9jtJLFcE6v.75U3pmTOTt9xZClwb EgXBuKysl1MeNwXji3DID0aFSsfdd8R_fepHUTUdgSLvuHDWFINOqQUvlN8_HLce7M1hlHOJiVLZ JHp9RpVx30AfpNbgpkziOCnYl67SoOeY_yRCklJtC3Dbc3DF4vPbJYgLYOOTDsAEvktzZ9HREFrI eqvdgpppI9Ju1dFP6He4kN9q7paBC2xe9ANKwOnLxNgQIzSCtFAfbqKZv6UuR0u1ZNHR4wyDlxfR jTNUVJhFY9RkKGkpxWJ2ipsJBdZfPOl_GjO6Fn64wcd9kkTXh6V8ZiVqVkQNDfrTds3Qlpi.krQ9 ZF_QUmkUQ0V2SfV5QwEw3HIeQZLrcnxPHnuLrRBMZf Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic302.consmr.mail.bf2.yahoo.com with HTTP; Thu, 24 Sep 2020 01:37:06 +0000 Original-Received: by smtp423.mail.ir2.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID a9e105d1c6f191f84b21732048333e6f; Thu, 24 Sep 2020 01:37:04 +0000 (UTC) Content-Disposition: inline In-Reply-To: <87eemuanct.fsf@red-bean.com> X-Mailer: WebService/1.1.16674 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.aol Apache-HttpAsyncClient/4.1.4 (Java/11.0.7) Received-SPF: pass client-ip=74.6.135.40; envelope-from=spacibba@aol.com; helo=sonic302-1.consmr.mail.bf2.yahoo.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/23 21:37:06 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:256386 Archived-At: On Mon, Sep 21, 2020 at 03:25:38PM -0500, Karl Fogel wrote: >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/ > Very thanks Karl thanks to your link I found this: https://conclave-team.github.io/conclave-site/ Which is indeed very detailed.