all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Ergus <spacibba@aol.com>
To: Qiantan Hong <qhong@mit.edu>
Cc: Karl Fogel <kfogel@red-bean.com>,
	Emacs developers <emacs-devel@gnu.org>, Fermin <fmfs@posteo.net>,
	Noam Postavsky <npostavs@gmail.com>,
	Jean Louis <bugs@gnu.support>,
	Stefan Monnier <monnier@iro.umontreal.ca>
Subject: Re: Question collaborative editing.
Date: Wed, 30 Sep 2020 02:13:33 +0200	[thread overview]
Message-ID: <20200930001333.g6b3mqa4mdsoxiue@Ergus> (raw)
In-Reply-To: <84B86B7C-81F0-42DF-894C-BF577E4B3D6E@mit.edu>

On Tue, Sep 29, 2020 at 11:40:53PM +0000, Qiantan Hong wrote:
>> 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.
>
>I’m not sure if it’s easy (or worth the effort) to provide CRDT in an
>editor-agnostic way from C-level. Seems that the most natural
>choice is to tag characters with CRDT data structures. Emacs has
>text property which is very suitable for this, and I’m implementing
>it in this way as an Elisp library. However, this relies on the particular
>data structure for buffer/text emacs uses.
>
Oh; I get it.

I would be concerned about the performance (but I am paranoid about
Emacs performance anyway so don't worry for that). AFAIR emacs buffers
are stored in a contiguous way (I may be wrong) and in that case the
search with CRDT may be expensive. At least as it was explained here (in
the optimization section):

https://conclave-team.github.io/conclave-site/

Unless some extra optimizations are implemented of course.

>If implemented as a separate C library, I imagine the CRDT library
>need to have its own buffer/text data structure and somehow keep
>in sync with Emacs’ .. doesn’t sound so clean.

Agree. That was exactly my idea. Keep all that in the library and emacs
just processes the final translated outputs with absolute char positions
from the json.

I took Tandem as the starting point in my considerations... But you may
be right. If it is easier to implement and works; it may be fine and
simpler than what I had in mind.

Best,
Ergus



  reply	other threads:[~2020-09-30  0:13 UTC|newest]

Thread overview: 151+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20200921120518.35d56p747pr5mhta.ref@Ergus>
2020-09-21 12:05 ` Question collaborative editing Ergus
2020-09-21 13:35   ` Stefan Monnier
2020-09-21 16:24     ` Ergus
2020-09-21 20:25     ` Karl Fogel
2020-09-24  1:36       ` Ergus
2020-09-24 21:41         ` Fermin
2020-09-25  0:22           ` Ergus
2020-09-25 10:34             ` Fermin
2020-09-26 16:33               ` Ergus
2020-09-29 16:01                 ` Qiantan Hong
2020-09-29 21:46                   ` Ergus
2020-09-30  9:52                     ` Jean Louis
2020-09-28  0:43               ` Ergus
2020-09-29  0:00                 ` Fermin
2020-09-29  1:01                   ` Noam Postavsky
2020-09-29  8:25                     ` Jean Louis
2020-09-29 12:45                       ` Ergus
2020-09-29 15:58                         ` Qiantan Hong
2020-09-29 16:29                           ` Stefan Monnier
2020-09-29 16:33                             ` Qiantan Hong
2020-10-27  5:10                             ` Qiantan Hong
2020-10-27 12:46                               ` Jean Louis
2020-09-29 17:35                         ` Karl Fogel
2020-09-29 21:58                           ` Ergus
2020-09-29 23:40                             ` Qiantan Hong
2020-09-30  0:13                               ` Ergus [this message]
2020-09-30  0:47                                 ` Qiantan Hong
2020-09-30  7:40                                 ` Karl Fogel
2020-09-30 13:19                                   ` Ergus
2020-09-30 17:00                                     ` Karl Fogel
2020-10-02 18:48                                     ` Emacs + Etherpad compatibility? (was: Question collaborative editing.) Karl Fogel
2020-10-02 20:34                                       ` Emacs + Etherpad compatibility? Stefan Monnier
2020-10-03 10:01                                         ` Michael Albinus
2020-09-30 13:46                                 ` Question collaborative editing Eli Zaretskii
2020-09-30 13:43                               ` Eli Zaretskii
2020-09-30 15:47                                 ` Qiantan Hong
2020-09-30 16:19                                   ` Eli Zaretskii
2020-09-30 17:00                                     ` Qiantan Hong
2020-09-30 17:04                                       ` Qiantan Hong
2020-09-30 17:20                                         ` Eli Zaretskii
2020-09-30 17:48                                           ` Qiantan Hong
2020-09-30 18:08                                             ` Eli Zaretskii
2020-09-30 23:11                                               ` Ergus
2020-10-01 13:40                                                 ` Eli Zaretskii
2020-10-01 15:21                                                   ` Qiantan Hong
2020-10-01 23:10                                                     ` Karl Fogel
2020-10-01 15:55                                                   ` Ergus
2020-09-30 17:08                                       ` Stefan Monnier
2020-10-01 14:11                                     ` Jean Louis
2020-10-01 16:01                                       ` Ergus
2020-10-01 16:44                                         ` Pankaj Jangid
2020-10-01 16:53                                           ` Ergus
2020-10-01 17:29                                             ` Yuri Khan
2020-10-02  3:00                                               ` Pankaj Jangid
2020-10-02  7:30                                             ` Michael Albinus
2020-10-02  7:35                                               ` Eli Zaretskii
2020-10-02 10:01                                               ` Pankaj Jangid
2020-10-02 11:33                                               ` Ergus
2020-10-02 12:13                                                 ` Michael Albinus
2020-10-04 17:54                                           ` Question collaborative editing - Wikipedia reference Jean Louis
2020-10-04 18:45                                             ` Caio Henrique
2020-10-04 19:48                                               ` Jean Louis
2020-10-04 23:59                                                 ` Qiantan Hong
2020-10-05  0:05                                                   ` Qiantan Hong
2020-10-05  1:08                                                     ` Karl Fogel
2020-10-05  4:40                                                     ` Karl Fogel
2020-10-05  5:48                                                       ` Jean Louis
2020-10-05  6:18                                                         ` Qiantan Hong
     [not found]                                                           ` <EC602765-9F1A-4269-9F2E-4F05C50AE1E7@mit.edu>
2020-10-05  8:07                                                             ` crdt.el collaborative real time editing for Emacs Jean Louis
2020-10-05  8:22                                                               ` Qiantan Hong
2020-10-05 14:03                                                                 ` Jean Louis
2020-10-05 17:05                                                                   ` Qiantan Hong
2020-10-05 18:17                                                                     ` Jean Louis
2020-10-05 14:11                                                                 ` Jean Louis
2020-10-05  9:39                                                               ` Eli Zaretskii
2020-10-05  8:51                                                           ` Jean Louis
2020-10-05  3:53                                                   ` crdt.el - collaborative " Jean Louis
2020-10-05  4:02                                                   ` Question collaborative editing - Wikipedia reference Jean Louis
2020-10-05  4:11                                                     ` Qiantan Hong
2020-10-05  5:34                                                       ` Jean Louis
2020-10-05  5:58                                                       ` Eli Zaretskii
2020-10-05  6:15                                                     ` Stefan Monnier
2020-10-05  6:51                                                       ` Eli Zaretskii
2020-10-05  7:31                                                         ` Ergus via Emacs development discussions.
2020-10-05  8:44                                                       ` Jean Louis
2020-10-05 13:20                                                         ` Stefan Monnier
2020-10-05 17:20                                                           ` Karl Fogel
2020-10-06  1:03                                                             ` Qiantan Hong
2020-10-06  1:41                                                               ` T.V Raman
2020-10-06  8:52                                                               ` Jean Louis
2020-10-06 17:32                                                               ` Jean Louis
2020-10-20 16:15                                                                 ` Ergus
2020-10-20 17:11                                                                   ` Qiantan Hong
2020-10-20 18:51                                                                     ` Jean Louis
2020-10-26 20:36                                                                       ` Qiantan Hong
2020-10-27 21:54                                                                         ` Mathias Dahl
2020-10-27 22:45                                                                           ` Qiantan Hong
2020-10-29 16:21                                                                             ` Ergus
2020-10-28 16:29                                                                         ` Question collaborative editing - tools to connect Jean Louis
2020-10-28 16:40                                                                           ` Qiantan Hong
2020-10-28 17:13                                                                             ` Question collaborative editing - crdt.el, does it use SSL? Jean Louis
2020-10-28 21:51                                                                               ` Qiantan Hong
2020-10-28 22:36                                                                                 ` Jean Louis
2020-10-28 23:08                                                                                   ` Qiantan Hong
2020-10-29  5:43                                                                                     ` Jean Louis
2020-11-02  9:47                                                                                       ` Robert Pluim
2020-11-02 10:02                                                                                         ` Jean Louis
2020-10-28 17:20                                                                             ` Question collaborative editing - torify emacs Jean Louis
2020-10-28 18:01                                                                               ` Qiantan Hong
2020-10-28 18:56                                                                                 ` Jean Louis
2020-10-29  4:57                                                                             ` Question collaborative editing - tools to connect Richard Stallman
2020-10-31  4:16                                                                           ` Qiantan Hong
2020-10-31  5:33                                                                             ` Jean Louis
2020-10-20 18:21                                                                   ` Question collaborative editing - Wikipedia reference Jean Louis
2020-10-06 18:20                                                               ` Karl Fogel
2020-10-07  0:00                                                                 ` Qiantan Hong
2020-10-09  1:50                                                                   ` Yuan Fu
2020-10-09  1:58                                                                   ` Yuan Fu
2020-10-09  2:12                                                                     ` Qiantan Hong
2020-10-09  2:42                                                                       ` Yuan Fu
2020-10-09  7:04                                                                         ` Qiantan Hong
2020-10-09  8:36                                                                           ` joakim
2020-10-09 13:33                                                                             ` Joe Corneli
2020-10-09 15:33                                                                               ` Qiantan Hong
2020-10-11 17:49                                                                               ` Qiantan Hong
2020-10-11 18:21                                                                                 ` Eli Zaretskii
2020-10-11 18:26                                                                                   ` Qiantan Hong
2020-10-11 18:56                                                                                     ` Eli Zaretskii
2020-10-11 19:57                                                                                       ` Qiantan Hong
2020-10-12  2:26                                                                                         ` Eli Zaretskii
2020-10-12  3:22                                                                                           ` Qiantan Hong
2020-10-12 14:40                                                                                             ` Eli Zaretskii
2020-10-12 16:53                                                                                               ` Qiantan Hong
2020-10-13 13:31                                                                                                 ` Yuan Fu
2020-10-11 18:40                                                                                 ` Joe Corneli via Emacs development discussions.
2020-10-09 17:46                                                                           ` Jean Louis
2020-10-09 17:50                                                                             ` Qiantan Hong
2020-10-09 20:31                                                                           ` Karl Fogel
2020-10-10 17:09                                                                             ` Qiantan Hong
2020-10-09  7:09                                                                         ` Qiantan Hong
2020-10-05  5:50                                                   ` Eli Zaretskii
2020-10-05  3:10                                               ` Richard Stallman
2020-10-20 16:37                                             ` Aurélien Aptel
2020-10-20 18:41                                               ` Jean Louis
2020-10-26 19:47                                                 ` Eli Zaretskii
2020-10-26 20:26                                                   ` too many Jean Louis
2020-10-28  4:45                                                   ` Question collaborative editing - Wikipedia reference Richard Stallman
2020-10-28 15:08                                                     ` Eli Zaretskii
2020-10-28 16:20                                                       ` Jean Louis
2020-10-28 16:33                                                         ` Eli Zaretskii
2020-10-28 16:59                                                           ` Jean Louis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200930001333.g6b3mqa4mdsoxiue@Ergus \
    --to=spacibba@aol.com \
    --cc=bugs@gnu.support \
    --cc=emacs-devel@gnu.org \
    --cc=fmfs@posteo.net \
    --cc=kfogel@red-bean.com \
    --cc=monnier@iro.umontreal.ca \
    --cc=npostavs@gmail.com \
    --cc=qhong@mit.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.