From: Qiantan Hong <qhong@mit.edu>
To: Jean Louis <bugs@gnu.support>
Cc: "emacs-tangents@gnu.org" <emacs-tangents@gnu.org>
Subject: Re: crdt.el: proposal that server enforces the mode
Date: Thu, 22 Oct 2020 00:04:49 +0000 [thread overview]
Message-ID: <241BE8A8-1CCE-403F-B9D8-41B01DD1967D@mit.edu> (raw)
In-Reply-To: <X5DKO9QlWT1/2D9f@protected.rcdrun.com>
[-- Attachment #1: Type: text/plain, Size: 3131 bytes --]
I thought about exactly this, and this come up when I was
discussing read-only mode with my friends. Currently it doesn’t
interact well with crdt.el
Currently artist-mode works fine with crdt.el (and it’s fun!), but
if variables like tab-width have different value on different peers
it doesn’t behave well.
That leads me to the idea of synchronizing buffer local variables, and
more generally: (copied from my post on /r/emacs)
<start quote>
My real long-term objective is Emacs as an collaborative operating system —
with a few annotations, developer should be able to make any Emacs application
collaboration-powered. This is based on the observation that lots of Emacs application
is centered around the buffer and buffer-local-variables, and I imagine by implementing
synchronization primitives for all components in a buffer pretty much everything
can be made collaborative.
See the crdt-org-sync-overlay-mode as a prototypical example. It's powered by the
synchronization of overlays (also based on CRDT). IMO once the synchronization
of buffer text, text-properties, overlays, markers and buffer-local-variables (with annotation)
is all implemented, it could be much more powerful than any existing collaborative environment.
<end quote>
I’m not sure about the idea of letting the server “dictate” anything.
Emotionally I don’t like it — I try to avoid power hierarchy. And technically,
I can synchronize Boolean variable also using CRDT.
> On Oct 21, 2020, at 7:54 PM, Jean Louis <bugs@gnu.support> wrote:
>
> I do not know why, but often when I go do some personal hygiene, my
> mind get new ideas. I am programming in Emacs Lisp, but not internals
> of Emacs, so I cannot know if following is right or wrong.
>
> I was thinking of various modes, likes ses-mode for spreadsheet or Org
> mode, there is also artist mode and other kind of special modes.
>
> It would not be good if client can choose the mode and change it, that
> would influence data, it could be disaster.
>
> So in that sense, the mode of editing should be set and dictated by
> the server.
>
> Now, what if client does not have some of the modes? This condition
> also has to be handled, maybe there should be option
>
> crdt-allow-client-with-non-existant-mode or similar
>
> As maybe some modes are just fine to be edited on server let us say in
> Org mode, and fundamental mode could be used on client's side.
>
> From Internet searches and report of my friend, I got impression that
> major collaboration is on spreadsheet, that is why there is Ethercalc
> software, it works online. So if it is on spreadsheets, people wish to
> insert their statistics or reports. Spreadsheets are exactly related
> to this proposal.
>
> ses-mode handles spreadsheets, there may be dismal spreadsheet, and
> there may be table modes in Emacs.
>
> For example, in Org mode, table handling, if I press TAB, I can all
> the table nicely aligned, if I press TAB in mail-mode I get several
> spaces, it would not be same thing, you will say more about that.
[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 1858 bytes --]
next prev parent reply other threads:[~2020-10-22 0:04 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20201018092201.GG9782@protected.rcdrun.com>
[not found] ` <2F36D10F-A179-445D-9417-65194F1CF2F1@mit.edu>
[not found] ` <CDA708E8-3CE4-4C8A-8FAC-7E484CCA6F95@mit.edu>
2020-10-21 23:47 ` TODO crdt-stop-session, selecting deleted buffer, fails to remove session from the list Jean Louis
[not found] ` <5AA05FFC-47C1-458D-AAA9-1AC63CF30858@mit.edu>
2020-10-23 8:10 ` Jean Louis
2020-10-23 10:59 ` Eli Zaretskii
[not found] ` <35C726EA-20E4-4D2A-969D-90B3132F0391@mit.edu>
2020-10-23 14:36 ` Jean Louis
2020-10-23 14:58 ` Qiantan Hong
2020-10-21 23:54 ` crdt.el: proposal that server enforces the mode Jean Louis
2020-10-22 0:04 ` Qiantan Hong [this message]
2020-10-22 0:12 ` crdt.el: proposal that server enforces the mode\ Jean Louis
2020-10-22 0:16 ` Qiantan Hong
2020-10-22 0:28 ` Jean Louis
2020-10-22 0:31 ` crdt.el: include chat buffer Jean Louis
2020-10-22 0:33 ` Aldric Giacomoni
2020-10-22 0:40 ` 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=241BE8A8-1CCE-403F-B9D8-41B01DD1967D@mit.edu \
--to=qhong@mit.edu \
--cc=bugs@gnu.support \
--cc=emacs-tangents@gnu.org \
/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.