From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Qiantan Hong Newsgroups: gmane.emacs.devel Subject: Re: crdt.el collaborative real time editing for Emacs Date: Mon, 5 Oct 2020 08:22:13 +0000 Message-ID: <0B1844BF-23B6-4B26-A715-F5A3528AAEE1@mit.edu> References: <20201004175447.GG15516@protected.rcdrun.com> <87362tvnil.fsf@gmail.com> <20201004194815.GH15516@protected.rcdrun.com> <11EB917D-3276-4D34-8DCD-2336E8062950@mit.edu> <874kn9709y.fsf@red-bean.com> <20201005054829.GU15516@protected.rcdrun.com> <20201005080726.GA4453@protected.rcdrun.com> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="Apple-Mail=_4D2E207D-CAAF-4537-8469-380761E97C9D"; protocol="application/pkcs7-signature"; micalg=sha-256 Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="30872"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Emacs developers To: Jean Louis Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Oct 05 10:23:00 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 1kPLlr-0007sE-ME for ged-emacs-devel@m.gmane-mx.org; Mon, 05 Oct 2020 10:22:59 +0200 Original-Received: from localhost ([::1]:49298 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kPLlp-0006m8-OZ for ged-emacs-devel@m.gmane-mx.org; Mon, 05 Oct 2020 04:22:57 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:36376) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kPLlE-0006H4-LO for emacs-devel@gnu.org; Mon, 05 Oct 2020 04:22:20 -0400 Original-Received: from outgoing-exchange-5.mit.edu ([18.9.28.59]:60599) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kPLlA-00077m-C7 for emacs-devel@gnu.org; Mon, 05 Oct 2020 04:22:20 -0400 Original-Received: from w92exedge3.exchange.mit.edu (W92EXEDGE3.EXCHANGE.MIT.EDU [18.7.73.15]) by outgoing-exchange-5.mit.edu (8.14.7/8.12.4) with ESMTP id 0958MEPb025920; Mon, 5 Oct 2020 04:22:14 -0400 Original-Received: from oc11expo16.exchange.mit.edu (18.9.4.47) by w92exedge3.exchange.mit.edu (18.7.73.15) with Microsoft SMTP Server (TLS) id 15.0.1293.2; Mon, 5 Oct 2020 04:21:27 -0400 Original-Received: from oc11expo16.exchange.mit.edu (18.9.4.47) by oc11expo16.exchange.mit.edu (18.9.4.47) with Microsoft SMTP Server (TLS) id 15.0.1365.1; Mon, 5 Oct 2020 04:22:14 -0400 Original-Received: from oc11expo16.exchange.mit.edu ([18.9.4.47]) by oc11expo16.exchange.mit.edu ([18.9.4.47]) with mapi id 15.00.1365.000; Mon, 5 Oct 2020 04:22:14 -0400 Thread-Topic: crdt.el collaborative real time editing for Emacs Thread-Index: AQHWmu6UkfNHaS9nLkCHUSXh1vR0FKmI7nKA In-Reply-To: <20201005080726.GA4453@protected.rcdrun.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [18.18.245.17] Received-SPF: pass client-ip=18.9.28.59; envelope-from=qhong@mit.edu; helo=outgoing-exchange-5.mit.edu X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/05 04:22:15 X-ACL-Warn: Detected OS = Windows 7 (Websense crawler) X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, 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:257086 Archived-At: --Apple-Mail=_4D2E207D-CAAF-4537-8469-380761E97C9D Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Thanks! Actually, it will be incredibly useful if you can get a dump of CRDT ID state. To do this, M-: (set-buffer-multibyte nil) in=20 *Message* (to make it unibyte, CRDT ID are arbitrary binary strings in general and multibyte buffer does some unicode conversion stuff), and then M-: (crdt--dump-ids) in the CRDT server/client buffers. This basically dump out the complete state of CRDT IDs and should be easy to spot inconsistency between dumps on different emacsen. Note that it might be very long and get truncated by *Message*. M-: (setq some-var (crdt--dump-ids)) in the CRDT buffer and then M-: (insert some-var) in a unibyte buffer is a workaround. Or any other method that you prefer. > If undo is done on connected computer, the undo is not shown on the > server. Yep haven=E2=80=99t work on undo-redo at all. Any behavior can happen. > On Oct 5, 2020, at 4:07 AM, Jean Louis wrote: >=20 > Hello Qiantan, >=20 > I have the Ethernet switch and few computers in house, I can test > features. >=20 > * Qiantan Hong [2020-10-05 09:45]: >> Hi Jean, >>=20 >> Thanks again for the report! Currently the code is at very >> alpha stage so sorry for any bugs in it. >=20 > That is natural. >=20 >> Could you provide a bit more detail on the yanking issue? >=20 > Yes, I have been testing that, first it appeared to work, then when > yanked from server, it did not appear on the connected computer. >=20 > Then I have saved file on server. Then I have yanked again into file, > it did not appear on connected computer. >=20 >> Did it just failed for one particular yank operation or all yanking >> doesn=E2=80=99t work? >=20 > Now I cannot say why it happens, I say it happens. >=20 > If undo is done on connected computer, the undo is not shown on the > server. >=20 >> I=E2=80=99m more worried about the former case =E2=80=94 which means = some >> bug lies in the algorithm implementation and it=E2=80=99s really hard = to >> reproduce =E2=80=94 haven=E2=80=99t reproduce it yet. >=20 >> It would be also helpful in this case that you can provide some >> description of operations happened before this bug is triggered. >=20 >> But if it=E2=80=99s the latter then it might just be some other = package >> interference with the change hook or the change hook is not >> installed correctly, either case, much easier to fix. >=20 > Sure, I will do that little later, when I have computers one to each > other, right now they are separate, I have to walk from room to room > and do action by action. >=20 > What means crdt.el ? >=20 > Many times of editing are collaborative editing, to say that it is > only collaborative would not be proper, it is better to say "real time > collaboration" and even better "simultaneous editing": > https://en.wikipedia.org/wiki/Simultaneous_editing >=20 > The mode should be named in easier fashion, something that is easy for > users to enable or turn off. >=20 > Later I will give you more detailed transcript what I did, the crdt.el > leaves some messages too, I can collect those as well.=20 >=20 > Jean --Apple-Mail=_4D2E207D-CAAF-4537-8469-380761E97C9D Content-Disposition: attachment; filename="smime.p7s" Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCA70w ggO5MIIDIqADAgECAhAaql39NsO1qLVjkS2hl517MA0GCSqGSIb3DQEBCwUAMGwxCzAJBgNVBAYT AlVTMRYwFAYDVQQIEw1NYXNzYWNodXNldHRzMS4wLAYDVQQKEyVNYXNzYWNodXNldHRzIEluc3Rp dHV0ZSBvZiBUZWNobm9sb2d5MRUwEwYDVQQLEwxDbGllbnQgQ0EgdjEwHhcNMjAwODAzMDEyNDIz WhcNMjEwODAxMDEyNDIzWjCBoTELMAkGA1UEBhMCVVMxFjAUBgNVBAgTDU1hc3NhY2h1c2V0dHMx LjAsBgNVBAoTJU1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3kxFTATBgNVBAsT DENsaWVudCBDQSB2MTEVMBMGA1UEAxMMUWlhbnRhbiBIb25nMRwwGgYJKoZIhvcNAQkBFg1xaG9u Z0BNSVQuRURVMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAylUlEQdK4BSXKzoGh6As CKN/TpLmC0kjhPdxUKMj1/86Xl6GDCla4h95uISDOWVAKdu3cIlA8m9zRLT2jNEIkt1DVpXP6c9h y8RRyfJm0qlrvr6tsHi5AmO4Li6s2dEGaTxbakPL6vEn7ZYr86t5orq56nubki77Z8ZvRv9/fWdF bF/YBNGDayLNk0NbXIEQdCHiz1l+bxfw+GHHRmdOge3MKWSg463+GGMdxtLQ61AbtR2vm47FIJBt c0X6ptcInWUg4Nf/9vSNGl6KvREvfbEWKCT6TfL5ncIFlitf6ZWKue2PZ4ULFfIQ3/7EsEk03xxr S7sTOy7e2dbPboe/WwIDAQABo4GhMIGeMAkGA1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgWgMB0G A1UdJQQWMBQGCCsGAQUFBwMEBggrBgEFBQcDAjALBgNVHQ8EBAMCBeAwHQYDVR0OBBYEFDeb9Jlj XSm+y0CD872IhzRDIGv1MDMGA1UdHwQsMCowKKAmoCSGImh0dHA6Ly9jYS5taXQuZWR1L2NhL21p dGNsaWVudC5jcmwwDQYJKoZIhvcNAQELBQADgYEApBTx4tBbD5rQ+bNGd/Z3OBV07qFsm5QHNg0+ 6lxJ3j7q5zMMq35o6y5cBIhcFG6t+MFqJIdERZ3EprDturyqozQsIBMHFnqh+iZcMg0uQyssEqKZ hrzIdw8GuY4Z6jNewdGy5mwwG9yjpEbzWWgdofSM5rnezZz7EvCQu9ilt1sxggNDMIIDPwIBATCB gDBsMQswCQYDVQQGEwJVUzEWMBQGA1UECBMNTWFzc2FjaHVzZXR0czEuMCwGA1UEChMlTWFzc2Fj aHVzZXR0cyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neTEVMBMGA1UECxMMQ2xpZW50IENBIHYxAhAa ql39NsO1qLVjkS2hl517MA0GCWCGSAFlAwQCAQUAoIIBkzAYBgkqhkiG9w0BCQMxCwYJKoZIhvcN AQcBMBwGCSqGSIb3DQEJBTEPFw0yMDEwMDUwODIyMTRaMC8GCSqGSIb3DQEJBDEiBCAfxP46AlD/ FzbGPmlPjwjutZjXQqZFJXjAFMUo9ICaQDCBkQYJKwYBBAGCNxAEMYGDMIGAMGwxCzAJBgNVBAYT AlVTMRYwFAYDVQQIEw1NYXNzYWNodXNldHRzMS4wLAYDVQQKEyVNYXNzYWNodXNldHRzIEluc3Rp dHV0ZSBvZiBUZWNobm9sb2d5MRUwEwYDVQQLEwxDbGllbnQgQ0EgdjECEBqqXf02w7WotWORLaGX nXswgZMGCyqGSIb3DQEJEAILMYGDoIGAMGwxCzAJBgNVBAYTAlVTMRYwFAYDVQQIEw1NYXNzYWNo dXNldHRzMS4wLAYDVQQKEyVNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5MRUw EwYDVQQLEwxDbGllbnQgQ0EgdjECEBqqXf02w7WotWORLaGXnXswDQYJKoZIhvcNAQEBBQAEggEA bfxuQ6gEBE5X/JNU/ddlzDYJXW+cY9lQTZhWIXFE5d0UECzewXLiWN1KU9GpYLQwHpOISfLr2p5U 43bEOvpqUssHtEi3WrtWG0dGYsAKf9+VnqWTcFo8dD/Evcg+EBbEaPZaavNnColu2eLvCUaqDkr8 yb93LT0V4CoIDFJ2SsSVlM0QZVkF+QXasQgiRXQtV4XU4iOBW8foJPzkIKXAcIeRV25antddEMtE ZB/Q2OM2FwZhekKA7CYimucIihFJ/+YpYgWbnfEQzd1N2a5DU0W8FrPMmd/sxDTpan9rg4Nlj+7d 5z5foUaB8j7M9O60lbTkYKQqneHP2gRQ6YlcJQAAAAAAAA== --Apple-Mail=_4D2E207D-CAAF-4537-8469-380761E97C9D--