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: Tue, 29 Sep 2020 23:58:49 +0200 Message-ID: <20200929215849.zg4wzytbrwx2b7ih@Ergus> References: <20200924013655.asv2tem25cbwv5et@Ergus> <2ACED303-9A2C-4363-BE56-2E9AF0B8DC85@posteo.net> <20200925002239.fgg3vw2nylltcoyp@Ergus> <219042AC-556D-48CC-8920-82D9BF2BD3AA@aol.com> <3A81FB67-A558-4281-8285-CDD9B01033E3@posteo.net> <1C949FC9-6023-467E-99EC-75D57B08AFB0@gnu.support> <20200929124513.fd745r2txowwbiir@Ergus> <87blho7af9.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="11057"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Emacs developers , Fermin , Noam Postavsky , Jean Louis , Stefan Monnier To: Karl Fogel Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Sep 30 00:02:35 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 1kNNhj-0002ls-20 for ged-emacs-devel@m.gmane-mx.org; Wed, 30 Sep 2020 00:02:35 +0200 Original-Received: from localhost ([::1]:36446 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kNNhi-0000Hl-3i for ged-emacs-devel@m.gmane-mx.org; Tue, 29 Sep 2020 18:02:34 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:51078) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kNNeQ-0007LH-Et for emacs-devel@gnu.org; Tue, 29 Sep 2020 17:59:10 -0400 Original-Received: from sonic311-14.consmr.mail.bf2.yahoo.com ([74.6.131.124]:40049) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kNNeL-0007KB-Fr for emacs-devel@gnu.org; Tue, 29 Sep 2020 17:59:09 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aol.com; s=a2048; t=1601416741; bh=+6Fyv8VQkkUtenfR6MNXg92Tc6WVEpxwkhRUtTkhpMQ=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From:Subject; b=kwEI7HGjj2LMACl8mgBlXXZEFJ3L21sPWIeFvGXsYllb+0mchypEezjBTdGNQVcUlvrFZv0psNFy00MqmTEmyuif9g43lKBOGs85sD0zec98iUqhIjU2oT3qYOYxEbqmgxCfGdEfpzj0xAFLxyGsRzksHjxssN9ipQ/RZ7cvGxjvrN7PCHHIiIgNjJP1QvLr6Djhse/e1lmWwezaDB59Lbzk20xM9ZryzJKMHFa6JChBDLTy0PAQlkiSgFRdUti9wgmVgAiRjpjEJFCJMU72u+mcO9LompSRV2BIa+VwuA0pmJRrPZUykg6H+4/uTFELWqouVALxozE+93/gcQrZyQ== X-YMail-OSG: G50pJmUVM1l_WH0U3zwoj6srVOHF9gd8WV1KubDKak1TxcuRezRVAAzu77VY.jX h1cNfEXLRrH1g5V0UDk0sVM577yVc0hAH09mNWGfXd46W.4_creLK1mNWG20QYJ1Fzj1t6IAOcjF C6xBNJ4qzLi.EH7T81k.viHmhQy.Wbdo4pHGIa7hRci93rofrvMkaDAhm61bvOvv0uAw0Ot1pI7R NsYptBSZR1C2nzn24Hnb0HotPzgUn_FCLmiPjWIAXzkdZvupb0IYeSOKF2T4UeT4nVZW1..r82E2 a5lyrvPqrbww4g1TBFJ0ql6VtRgnGmSOpAXWYqDIisLSXrE6fDyLgoKZVT3V37gsRJP_t6v9fzqa 7U.Bjkqhy.QT8R6oH9iWoYL5p8wJAQzR0S6SCXxOx.GI5wV8s4FyPteLlPXrlP6Kw1YuJZKRc5sA vFQ_upjETY1s6Vv1wXI19OdgcCXuqnsFS7kXyzmJxmDv9dzGpBO2Bqaa0HUH4fu5TNuxLXCsvV1k xE8oLe_EkJsWhjDAcdawJQGaspDeMYijXYNf9bosyOBv2HbXgh37uf3EpSjkL14npedpuwQL_Nj0 kDdU43CCTXLzQ5rq75LCsxzg1Mo3fPDiu1ESAqNIilC02PgReqUxhF7TShOKJsKpyuBP1RuQe5YZ YhjcyYocBvBap.qgj4.QyIlVtO5L2c8X24uk2945_v46HB07sp6OoNYu2LFbnRFkytXNdSyMrZxm hP3JNMQajPWl5bl9CiSjgs439tUprznZRI5X_ikY11TLQw2Ja8jh6dqllcZQpKhoqm6OVGSJSt2u 2zXMynn91JpjhxlWNECQDhBBnAyQsJeJeCwtuwrDq4 Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic311.consmr.mail.bf2.yahoo.com with HTTP; Tue, 29 Sep 2020 21:59:01 +0000 Original-Received: by smtp415.mail.ir2.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID e6eb716d954f10581aea3c52545ae0d5; Tue, 29 Sep 2020 21:58:58 +0000 (UTC) Content-Disposition: inline In-Reply-To: <87blho7af9.fsf@red-bean.com> X-Mailer: WebService/1.1.16718 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.131.124; envelope-from=spacibba@aol.com; helo=sonic311-14.consmr.mail.bf2.yahoo.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/29 17:59:01 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 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.614, 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:256735 Archived-At: On Tue, Sep 29, 2020 at 12:35:54PM -0500, Karl Fogel wrote: >On 29 Sep 2020, Ergus wrote: >>1) On one hand such services require some servers (to work like google >>spreadsheet) and need to be provided somehow... something difficult as I >>don't think gnu or fsf have resources to maintain a service like that >>and provide it. >> >>2) On the other hand it will be better if the service is somehow >>distributed in order to give more privacy-security but also to reduce >>the load of the servers... I still can't find any infrastructure we can >>use, cause most of the peer-to-peer libraries are for C++, javascript, >>Node.js and so on (example: webrtc). Just on yesterday I found >>n2n... But I am not a web specialist so it requires a lot of >>experimenting time for me. >> >>3) The other workflow (create a local server for others) is the >>"simplest" approach at the moment. But that is a problem for many use >>cases due to dynamic ip addreses, firewalls, opening ports and so on. It >>is fine for a class room or company, but not for working from home. > >It's okay if a central server is required, as long as it's free software. In practice, there would be a few "well-known" central servers that people use (the way many people just use https://pad.riseup.net/ for Etherpad today). One of those well-known servers can even be set as the default in the client code in Emacs. If some people want to use a different server instance to collaborate, all they have to do is set that variable, or specify the server through some interactive prompt. > >This doesn't necessarily imply OT instead of CRDT or vice-versa. Still, despite the "CRDTs are the future" message at https://josephg.com/blog/crdts-are-the-future/, I suspect that for Emacs's purposes OT might be the better solution: simpler to implement and maintain. In any case, I hope development of this feature doesn't block on decentralization. While decentralization would be nice, it's not required; people can set up their own servers when they really need to. > >Best regards, >-Karl > Hi Karl: In the library level we could (and maybe should) implement both (OT and CRDT). This will only require a hint from the server side (or the connection starter client) to inform the client's libraries "what to use this time". Then practice will say what's better. ATM we could start with a C library in order to provide a nice free back-end editor agnostic. Because IMO the most interesting part of this will be to open emacs to interact with other editors with a free infrastructure emacs-centric. IMO: it should/must be like Tandem but made in C and using free libraries. Without python or JS dependencies and with a JSON (or standard interface).