unofficial mirror of emacs-tangents@gnu.org
 help / color / mirror / Atom feed
* Re: TODO crdt-stop-session, selecting deleted buffer, fails to remove session from the list
       [not found]   ` <CDA708E8-3CE4-4C8A-8FAC-7E484CCA6F95@mit.edu>
@ 2020-10-21 23:47     ` Jean Louis
       [not found]       ` <5AA05FFC-47C1-458D-AAA9-1AC63CF30858@mit.edu>
  2020-10-21 23:54     ` crdt.el: proposal that server enforces the mode Jean Louis
  1 sibling, 1 reply; 11+ messages in thread
From: Jean Louis @ 2020-10-21 23:47 UTC (permalink / raw)
  To: Qiantan Hong; +Cc: emacs-tangents

I think you should at least post this to emacs-tangents@gnu.org as it
is related to Emacs, not yet to Emacs development. I make copy there,
OK? There could be people with good ideas.

You have that account on Savannah to contribute to Emacs or ELPA? I
hope so.

* Qiantan Hong <qhong@mit.edu> [2020-10-22 02:31]:
> I find that it require some non trivial refactoring to do this
> — currently I just assume that client always open any buffer server is sharing.
> 
> So to solve the problem there’s two way:
> 
> - Keep the invariant "client always open any buffer server is sharing”.
> If client try to kill a shared buffer, warn them and say if doing so, it will
> cause the client to leave the whole session. This is very simple to do.
> 
> - Change the model and not keeping the invariant
> "client always open any buffer server is sharing”. This will require
> non-trivial work. After doing so, however, we can allow feature like
> lazily pull buffer from server (only when the client need it).
> 
> What do you think?

My suggestion is that you install Gobby collaborative editor and look
inside, I did, then follow the well established model, you almost have
it by same model.

My opinion is that client should connect:

- immediately to the buffer shared, if it is the only one

- to the selection of buffers if there are multiple

- and to be given option to connect to other available buffers, but
  not automatically

> - Keep the invariant "client always open any buffer server is sharing”.
> If client try to kill a shared buffer, warn them and say if doing so, it will
> cause the client to leave the whole session. This is very simple to do.

It is not good to kill the session by closing the buffer, as client
did not decide to kill the session, and in the mean time, server could
provide other files, right?

It is better to ask user if the session should be also disconnected,
and not do it automatically.

If there are other available files that appeared in the mean time,
user shall be informed in that message.

Generally option 2 seem logical more than option 1, which looks not
well planned for multi users having multi sessions with multi buffers.

Jean



^ permalink raw reply	[flat|nested] 11+ messages in thread

* crdt.el: proposal that server enforces the mode
       [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
@ 2020-10-21 23:54     ` Jean Louis
  2020-10-22  0:04       ` Qiantan Hong
  1 sibling, 1 reply; 11+ messages in thread
From: Jean Louis @ 2020-10-21 23:54 UTC (permalink / raw)
  To: Qiantan Hong; +Cc: emacs-tangents

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.



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: crdt.el: proposal that server enforces the mode
  2020-10-21 23:54     ` crdt.el: proposal that server enforces the mode Jean Louis
@ 2020-10-22  0:04       ` Qiantan Hong
  2020-10-22  0:12         ` crdt.el: proposal that server enforces the mode\ Jean Louis
  0 siblings, 1 reply; 11+ messages in thread
From: Qiantan Hong @ 2020-10-22  0:04 UTC (permalink / raw)
  To: Jean Louis; +Cc: emacs-tangents@gnu.org

[-- 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 --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: crdt.el: proposal that server enforces the mode\
  2020-10-22  0:04       ` Qiantan Hong
@ 2020-10-22  0:12         ` Jean Louis
  2020-10-22  0:16           ` Qiantan Hong
  0 siblings, 1 reply; 11+ messages in thread
From: Jean Louis @ 2020-10-22  0:12 UTC (permalink / raw)
  To: Qiantan Hong; +Cc: emacs-tangents@gnu.org

* Qiantan Hong <qhong@mit.edu> [2020-10-22 03:05]:
> 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.

You need to make set of variables that will be dictated by server and
buffer local set on each of clients. This list may grow with the time.

> 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.

Exactly that is it.

> 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.

dictate

* Overview of verb dictate

The verb dictate has 3 senses (first 2 from tagged texts)
1. (8) order, prescribe, dictate -- (issue commands or orders for)
2. (1) dictate -- (say out loud for the purpose of recording; "He dictated a report to his secretary")
3. dictate -- (rule as a dictator)

My usage of dictate is in the sense of definition 1, not 3, so when
you press a key in Emacs you already issue some commands, if you share
a buffer, you dictate that it is shared, right?

crdt.el shall be collaborative, with many factors in synchronization.

My proposal is directed for those using ses mode, table modes, org
mode, and maybe other dismal mode or other spreadsheet modes, as that
is what people use on proprietary software, like Microsoft Excell.

If that feature is implemented, then subset of those people could
start using free software.



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: crdt.el: proposal that server enforces the mode\
  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
  0 siblings, 2 replies; 11+ messages in thread
From: Qiantan Hong @ 2020-10-22  0:16 UTC (permalink / raw)
  To: Jean Louis; +Cc: emacs-tangents@gnu.org

[-- Attachment #1: Type: text/plain, Size: 1452 bytes --]

> 
>> 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.
> 
> dictate
> 
> * Overview of verb dictate
> 
> The verb dictate has 3 senses (first 2 from tagged texts)
> 1. (8) order, prescribe, dictate -- (issue commands or orders for)
> 2. (1) dictate -- (say out loud for the purpose of recording; "He dictated a report to his secretary")
> 3. dictate -- (rule as a dictator)
> 
> My usage of dictate is in the sense of definition 1, not 3, so when
> you press a key in Emacs you already issue some commands, if you share
> a buffer, you dictate that it is shared, right?
> 
> crdt.el shall be collaborative, with many factors in synchronization.
> 
So in this occasion particularly, I’m asking whether should the server
decide exclusively what minor-mode to enable, or values of buffer local variables,
or any client can change it?

For Boolean variables (like on/off of minor modes), I can give write access to
every peer and synchronize it using PN counter CRDT. I can also do similar
thing to some other buffer local variables with the help of some annotations.

However, (although I don’t like it very much), I think one can argue that giving
server exclusive write permission avoid communicational conflicts or even chaos.
What do you think?

[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 1858 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: crdt.el: proposal that server enforces the mode\
  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
  1 sibling, 0 replies; 11+ messages in thread
From: Jean Louis @ 2020-10-22  0:28 UTC (permalink / raw)
  To: Qiantan Hong; +Cc: emacs-tangents@gnu.org

* Qiantan Hong <qhong@mit.edu> [2020-10-22 03:17]:
> So in this occasion particularly, I’m asking whether should the server
> decide exclusively what minor-mode to enable, or values of buffer local variables,
> or any client can change it?

You have to select what would be set by server only and that list of
variables should be later explained in the info file or README. It
should not be general, it could make anything insecure or weird if you
make it general.

In my opinion those variables dictated by server should be in the
customization group, so that user can remove the variable or set it.

If client can change it, it makes no much sense really, not to me, but
it may make sense to somebody.

If I use ses-mode, I need spreadsheet and not damages.

> However, (although I don’t like it very much), I think one can argue that giving
> server exclusive write permission avoid communicational conflicts or even chaos.
> What do you think?

Server need not be necessarily manager or leader of the team, but
leader will like to decide upon those variables to be set by the
server.

Thus my opinion is that customization group should be there where
server's user can set it up on what to be dictated by the server, for
example modes, variables, etc.





^ permalink raw reply	[flat|nested] 11+ messages in thread

* crdt.el: include chat buffer
  2020-10-22  0:16           ` Qiantan Hong
  2020-10-22  0:28             ` Jean Louis
@ 2020-10-22  0:31             ` Jean Louis
  2020-10-22  0:33               ` Aldric Giacomoni
  1 sibling, 1 reply; 11+ messages in thread
From: Jean Louis @ 2020-10-22  0:31 UTC (permalink / raw)
  To: Qiantan Hong; +Cc: emacs-tangents

Proposal is that you make additional chat buffer, where lines by each
users are simply appended.

When buffers are destroyed or upon last buffer destroyed the chat
buffer should remain.

Chat buffer offers collaboration line beyong editing buffer and users
do need communication in collaboration.

Chat buffer should open by default, and it should be customizable to
turn it off in general, as some people may use video or sound
collaboration, which tools may already have their own text chat as
well.

Jean



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: crdt.el: include chat buffer
  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
  0 siblings, 1 reply; 11+ messages in thread
From: Aldric Giacomoni @ 2020-10-22  0:33 UTC (permalink / raw)
  To: Jean Louis; +Cc: Qiantan Hong, emacs-tangents

[-- Attachment #1: Type: text/plain, Size: 778 bytes --]

Is this truly the best place to have a conversation about a single emacs
package? Surely the project has a dedicated space for this.

--

Aldric.
Sent from a mobile device.

On Wed, Oct 21, 2020, 20:32 Jean Louis <bugs@gnu.support> wrote:

> Proposal is that you make additional chat buffer, where lines by each
> users are simply appended.
>
> When buffers are destroyed or upon last buffer destroyed the chat
> buffer should remain.
>
> Chat buffer offers collaboration line beyong editing buffer and users
> do need communication in collaboration.
>
> Chat buffer should open by default, and it should be customizable to
> turn it off in general, as some people may use video or sound
> collaboration, which tools may already have their own text chat as
> well.
>
> Jean
>
>

[-- Attachment #2: Type: text/html, Size: 1108 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: crdt.el: include chat buffer
  2020-10-22  0:33               ` Aldric Giacomoni
@ 2020-10-22  0:40                 ` Jean Louis
  0 siblings, 0 replies; 11+ messages in thread
From: Jean Louis @ 2020-10-22  0:40 UTC (permalink / raw)
  To: Aldric Giacomoni; +Cc: Qiantan Hong, emacs-tangents

* Aldric Giacomoni <trevoke@gmail.com> [2020-10-22 03:33]:
> Is this truly the best place to have a conversation about a single emacs
> package? Surely the project has a dedicated space for this.

Looks like it is, crdt.el is important.

See here:
http://savannah.gnu.org/mail/?group=emacs

Emacs news and miscellaneous discussions outside the scope of other
Emacs mailing lists



Jean



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: TODO crdt-stop-session, selecting deleted buffer, fails to remove session from the list
       [not found]       ` <5AA05FFC-47C1-458D-AAA9-1AC63CF30858@mit.edu>
@ 2020-10-23  8:10         ` Jean Louis
  2020-10-23 10:59           ` Eli Zaretskii
  0 siblings, 1 reply; 11+ messages in thread
From: Jean Louis @ 2020-10-23  8:10 UTC (permalink / raw)
  To: Qiantan Hong; +Cc: emacs-tangents

I will post this to emacs-tangents, maybe other people wish to
contribute to this package.

* Qiantan Hong <qhong@mit.edu> [2020-10-23 05:42]:
> Just implemented option 2 and pushed.
> 
> Also talking about savannah, I’ve just registered an account.
> Any further action to take?
> Also our school’s copyright office is being super slow these days
> and I haven’t got my disclaimer yet.

Alright, regarding that you please communicate to eliz AT gnu.org Eli
Zaretskii or somebody else.

I am not in GNU project neither represent GNU project, I am just
interested to have collaboration.

By the way, please look into the package rudel as that package was
also compatible with Gobby editor.

I do not say that you should make compatibility, that is not
necessary, it is better that we have it for Emacs only.

You may always try to install package:

M-x package-install-from-buffer

and you will see compiler warnings, it may be little different than if
you just use M-x emacs-lisp-byte-compile

In toplevel form:
crdt.el:77:1: Warning: Unused lexical variable ‘eol’
crdt.el:367:1: Warning: Unused lexical argument ‘key’
crdt.el:454:1: Warning: Unused lexical argument ‘crdt-buffer’
crdt.el:467:1: Warning: Unused lexical argument ‘k’
crdt.el:498:1: Error: Symbol’s function definition is void: crdt--with-buffer-name-make-body

There are some issues in the package for convention purposes:

;; Keywords: collaboration crdt

Keywords should only be those that you may find when using:

M-x finder-list-keywords

To verify if your keywords are alright, please use:

M-x checkdoc-package-keywords

It will give you errors.

People will start installing the package and it is good that you
increase version numbers, so that it is not always 0.0.0, at least
0.0.1 and so on, it could be 0.0.10 and 0.0.11 and I do not know if
there is some format for that, it is good to increase version numbers.

Commentary section shall later involve more instructions for users.

Docstrings are missing for some functions.

Items TODO, by my opinion:

- [ ] after M-x crdt-share-buffer, the prompt is as following:
  "Choose a server session (create if not exists): "

  However, there is nothing to be chosen.

  Thus:

  - [ ] if there is no server session to be chosen, let the user
    create new session, maybe something like: "New session name? "

  - "create if not exists" is imperative, but that asks user to create
    it. It has somehow vague meaning. The way how prompt looks like it
    gives me impression that some default session will be created if I
    just press enter. Is it maybe good to create default session
    automatically?

    Maybe username@host-number could be something good for new session
    name to be invented by default.

    This default value could be shown to user on the prompt, and user
    could just change it. See function docstring for
    read-from-minibuffer if you use that one

  - Other issue is that if I do press ENTER, it quits with the
    beep. That is not enough, it is better if you give message that
    crdt aborted.

    The workflow for me was: crdt-share-buffer, it tells me "create if
    not exists" and I may assume that it will be created by default, I
    press enter and then what? I can see "Quit" but I cannot know what
    really it means, did I quit session maybe? What did I quit?

    It is better to use prompt that will not let user go out of it by
    pressing enter. 

- [ ] I see that in M-x crdt-list-users there is one user name
  highlighted, I do not think that highlighting is necessary and if
  you include that, that you should not hard code highlighting as
  users may have such different themes. Additionally, is good to test
  it on console as well.

- [ ] crdt-connect should not fail because host name was not
  entered as it should not move to port prompt if host name is not
  entered. 

- [ ] my suggestion is that you try to share the buffer always, so I
  tried sharing this buffer for email to you. It gave me some
  errors. I was using M-x orgalist mode inside. My debugger opened up
  on error.

  Now, because there were errors, I could not save the buffer. 

  See this temporary video: https://gnu.support/files/tmp/2020-10-23/2020-10-23-10:54:21.ogv
  The video will self destruct after some weeks.

- [ ] M-x crdt-connect, now I get the screen of the session, I can
  see: Local Buffer in first column, what does that mean for me as
  remote user? Does it mean the remote buffer should become my local
  buffer? I do not know as user

- [ ] M-x crdt-connect, when entered into same list of buffers, I can
  see "Network Name" and under that column I can see the name of the
  file being edited. That is contradictory.

  I think that you should not call that Network as you have not asked
  user for Network name, you asked for Session name. Maybe you mean
  session, maybe file, now I do not know it.

- [ ] in the same list i see entry under Local Buffer "--" and this is
  also vague. If you wish to tell there is none buffer or similar,
  then you could say maybe "not yet connected".

- [ ] column width in the tabulated mode can be adjusted, you could
  assume safely that most users have at least 80 chars width. When I
  finally connect to the buffer, I see: crdt - mutt-pr... but  that is
  way to narrow, my file name was mutt-protected-1001-9722-56588427
  and more than that.

- [ ] Gobby editor also helps users choose a color. I see that cursor
  of other user is visible and it looks as block cursor. Some people
  will want to customize their own cursor to be like a line or else. I
  am just thinking as if you wish to show multiple cursors in one
  buffer which is also logical for multi user editing, then maybe you
  should assign to users various colors. Is that maybe why you
  highlighted the username in the list of buffers?

- [ ] I could not save the buffer shared, I tried killing it too. If I
  kill the buffer the connected user should maybe get informed and
  connection to that buffer should disconnect.

Debugger entered--Lisp error: (wrong-type-argument hash-table-p nil)
  puthash("mutt-protected-1001-9722-5658842758353437585" nil nil)
  (progn (puthash crdt--buffer-network-name nil (crdt--buffer-table)) (crdt--broadcast-maybe (crdt--format-message (cons 'cursor (cons crdt--buffer-network-name (cons (crdt--local-id) '(nil nil nil nil)))))) (if (eq (crdt--focused-buffer-name) crdt--buffer-network-name) (progn (crdt--broadcast-maybe (crdt--format-message (cons 'focus (cons (crdt--local-id) '...)))) (crdt--focused-buffer-name-setter nil))) (crdt--refresh-users-maybe))
  (if crdt--buffer-network-name (progn (puthash crdt--buffer-network-name nil (crdt--buffer-table)) (crdt--broadcast-maybe (crdt--format-message (cons 'cursor (cons crdt--buffer-network-name (cons (crdt--local-id) '...))))) (if (eq (crdt--focused-buffer-name) crdt--buffer-network-name) (progn (crdt--broadcast-maybe (crdt--format-message (cons 'focus (cons ... ...)))) (crdt--focused-buffer-name-setter nil))) (crdt--refresh-users-maybe)))
  crdt--kill-buffer-hook()
  kill-buffer("mutt-protected-1001-9722-5658842758353437585")
  funcall-interactively(kill-buffer "mutt-protected-1001-9722-5658842758353437585")
  #<subr call-interactively>(kill-buffer nil nil)
  apply(#<subr call-interactively> kill-buffer (nil nil))
  call-interactively@ido-cr+-record-current-command(#<subr call-interactively> kill-buffer nil nil)
  apply(call-interactively@ido-cr+-record-current-command #<subr call-interactively> (kill-buffer nil nil))
  call-interactively(kill-buffer nil nil)
  command-execute(kill-buffer)

-- 
Jean Louis



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: TODO crdt-stop-session, selecting deleted buffer, fails to remove session from the list
  2020-10-23  8:10         ` Jean Louis
@ 2020-10-23 10:59           ` Eli Zaretskii
  0 siblings, 0 replies; 11+ messages in thread
From: Eli Zaretskii @ 2020-10-23 10:59 UTC (permalink / raw)
  To: Jean Louis; +Cc: qhong, emacs-tangents

> Date: Fri, 23 Oct 2020 11:10:28 +0300
> From: Jean Louis <bugs@gnu.support>
> Cc: emacs-tangents@gnu.org
> 
> I will post this to emacs-tangents, maybe other people wish to
> contribute to this package.

emacs-tangents is not for discussing Emacs development in general and
Emacs packages in particular.  That should happen on emacs-devel.
This list is for issues that are only tangentially related to Emacs.



^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2020-10-23 10:59 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [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
2020-10-21 23:54     ` crdt.el: proposal that server enforces the mode Jean Louis
2020-10-22  0:04       ` Qiantan Hong
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).