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:46:24 +0200 Message-ID: <20200929214624.mmqnccmewsc7lepf@Ergus> References: <20200921120518.35d56p747pr5mhta.ref@Ergus> <20200921120518.35d56p747pr5mhta@Ergus> <87eemuanct.fsf@red-bean.com> <20200924013655.asv2tem25cbwv5et@Ergus> <2ACED303-9A2C-4363-BE56-2E9AF0B8DC85@posteo.net> <20200925002239.fgg3vw2nylltcoyp@Ergus> <20200926163353.mmf2blvqw6qurby4@Ergus> <09182F6D-B178-4447-B6D7-15740C0F67E9@mit.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="27602"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Fermin , Emacs developers , Karl Fogel , Stefan Monnier To: Qiantan Hong Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Sep 29 23:48:13 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 1kNNTp-000731-8J for ged-emacs-devel@m.gmane-mx.org; Tue, 29 Sep 2020 23:48:13 +0200 Original-Received: from localhost ([::1]:50720 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kNNTo-00026K-AN for ged-emacs-devel@m.gmane-mx.org; Tue, 29 Sep 2020 17:48:12 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48778) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kNNST-0001Dk-As for emacs-devel@gnu.org; Tue, 29 Sep 2020 17:46:49 -0400 Original-Received: from sonic303-3.consmr.mail.bf2.yahoo.com ([74.6.131.42]:46877) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kNNSN-00062p-Uy for emacs-devel@gnu.org; Tue, 29 Sep 2020 17:46:48 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aol.com; s=a2048; t=1601415998; bh=GoTG9PUcXlO2zfFDx5GZfUI4gqnj57GciQAnJHKhvNs=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From:Subject; b=MugYabRSK5XDQL6+FBWrNtXWObb6zeUHJSe2j5+LHBihmOD3UlxqED9M40ImdpP84Q6f8gDpgFwWiuFPMGmZSX4UwWZ6XXZCY28I4OnBoKz9kwFdFki7VpG41d+Wn4GDoj8u/u0IZmHm9N5jY8DILZBo69kf4N1st/0EBTZTtoKLyq0KWpGOwyOf2nSsd490HiaVEoh8rvs+00MmMXdCZFaLf2pfmCsb8ZRarpU6rk+kKg37Dm192ptsBt1lsyM2CIA8r5epH7Pee2cDSVJ9LHE+CGx/fMKzRyNZcrSAB9moSCEJw9dGXsRF7JTbmnoAeTofCK8vevquC9mFYOEluQ== X-YMail-OSG: kTr83VYVM1nFtLN.NJflbFRgNHfj.1JuPZoOljfuuifECOUTmXNFr72dv6Ef6g0 Gm2KCn97vwrflTV5VNcowfGylykjg1WAYpVk.ezfZkbdTCwZuIZHIMf1LminxzV1uo6aIN4F_yuz _qzo10Y1aSO0bXGaFUgmiHyco4BI5RPsWdOUMbYNCm.gfZr1i8iCMi9TmqaOdX8g4m30fg1eJb.8 LHLgyz6QQz6IGPbNc0UGJBIpp4WFbt5U2SfQvDeZ8yZ35g7daj.O4o8r6j9.gDZuhZmUqZUurHiE i9SXsyow6F5dvhhZXjnt.VVFtATfvh4DIBKa48FP0spH59go16MaTcwhRiN1jCy3hCw0o6Nz36_q YewjU6ixZQW_Qrrjb0QTyPnq0lTRbDtM.4wdB1m6X6UWrXZOd5mL_lBVH92pzC6EXMCMZSX_REFl GTGCHnaQ9oFiKWeEu9iZv48Ro8U_Si.PLRwLmfWvOFW7ROzjqgMPNKrVmTFiD_XBk.1xzpd2Ploq Dl3a8jcL4zTYvJ0T631Rf.yC0E4qt6Xdzylm12_7v26S8nfNWPfyQMVhfTotjdWeoQvtOgfI8xld IyoMBCLvM1ZRh54m_Yz1jrCrC1YRBMR9BwuY0jibxbr64NU06PThdjAMKBA690NtTnVM2RTCDRKr CnaMZgGQnBkkr7MqyG4BJIzsPwr0f3m8Vqx.Dd0c4BdQaH3h3rrf2SOvHnwU52Jn43WVggJKVUbq j7hqNxVCVUCrUH5Ktxtb.siTkVpTs._mMhSxaH1PCC4GmTBb9ATHQSYu8MNJ6d3mPqqFPwbhzmUw YrHAzds6CpZkkWSm6xx2Vjkj2bl28ltpMEc55ZbCxs Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic303.consmr.mail.bf2.yahoo.com with HTTP; Tue, 29 Sep 2020 21:46:38 +0000 Original-Received: by smtp419.mail.ir2.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID aa9dca75fc628950e5aaf341c1cdaed2; Tue, 29 Sep 2020 21:46:33 +0000 (UTC) Content-Disposition: inline In-Reply-To: <09182F6D-B178-4447-B6D7-15740C0F67E9@mit.edu> 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.42; envelope-from=spacibba@aol.com; helo=sonic303-3.consmr.mail.bf2.yahoo.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/29 17:46:38 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:256732 Archived-At: On Tue, Sep 29, 2020 at 04:01:56PM +0000, Qiantan Hong wrote: >> I want to try Rudle first to see if it fit some minimal "needs". That >> it: >> >> 1) Not require modem/routers special configurations to open ports or >> have a static IP. >> >> 2) Use CRDT instead of OT >> >> 3) It could be integrated with other editors to create "mix" sessions. I >> mean, it doesn't enforces some emacs specific features and plugins could >> be created for other editors. >I took a glance at source of rudel, and I have to admit I didn’t >enjoy reading it — I have to track through several M-. just to >get to some factory method (srsly)? I wonder how much effort >it will take to make such big change in its infrasture. > >On the other hand a separate CRDT library is a quite orthogonal >issue and might be potentially reused by other packages, or >even other use cases — like, making Emacs plugins asynchronous. > >I’ll work on a separate CRDT library. Actually this was my intention since the beginning. If you can start with that is much much better (you can share the link to the repo if you like and I will try to help). The basic algorithms could easily be implemented in an editor agnostic C library. It can receive a json string and return json as well (as we already have a good and fast json parser in emacs). Also the communication can he handled in that level. And at the end it will be possible to implement plugins for almost any editor with json support or using a json external library.... Did you checked Tandem? It has almost everything we need except because it is Python+javascript, node.js... :( You could check these 4 links: https://github.com/typeintandem/tandem https://github.com/typeintandem/tandem/issues/125 https://github.com/jscheid/tandem-emacs https://github.com/typeintandem/tandem/wiki/Interacting-with-the-Tandem-Agent My idea was more or less to reproduce the last one but without all the agent, stdin, python and JS mess. Best, Ergus