all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
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 --]

  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.