all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Michael Albinus <michael.albinus@gmx.de>
To: Brian Templeton <bpt@tunes.org>
Cc: Alban Crequy <muadda@gmail.com>, emacs-devel@gnu.org
Subject: Re: GSoC: collaborative editing
Date: Sun, 12 Apr 2009 20:02:12 +0200	[thread overview]
Message-ID: <87r5zxrbrv.fsf@gmx.de> (raw)
In-Reply-To: <87ab6ngdjb.fsf@tunes.org> (Brian Templeton's message of "Sat, 11 Apr 2009 16:07:20 -0400")

Brian Templeton <bpt@tunes.org> writes:

> Would anyone be willing to mentor me for this project, if my application
> is accepted?
>
> Package name and title of the project (e.g.: emacs - better foo bar):
>
> Emacs - collaborative editing system
>
> Summary:
>
> A real-time collaborative editing system for GNU Emacs.
>
> Benefits:
>
> This project will provide a free alternative to existing proprietary
> collaborative editors such as SubEthaEdit and MoonEdit, and it will be
> more extensible and will have more powerful editing features than
> existing free collaborative editors like Gobby.
>
> As an ancillary benefit, a precise change tracking mechanism will be
> useful to other Emacs projects, particularly projects involving
> hypertext and version control. For example, Planner could transclude
> task list entries instead of keeping multiple copies of the same data in
> different files, ensuring the consistency of the task database as well
> as providing a more intuitive user interface.
>
> Deliverables:
>
> 1. A precise change reporting mechanism, replacing
>    {before,after}-change-functions. This will require cooperation with
>    other Emacs developers and must not reduce performance for
>    applications not requiring precise change reporting.
>
> 2. A transclusion system, which will be used as a test of the new change
>   reporting mechanism.
>
> 3. A collaborative editing system using a modified version of the
>    Jupiter algorithm
>    (<ftp://ftp.lambda.moo.mud.org/pub/MOO/papers/JupiterWin.ps>),
>    comprising:
>
>    - A client written in Emacs Lisp.
>    - A modified version of an existing server written in Erlang. (I
>      wrote the server in 2007 for a commercial project; it has not yet
>      been released to the general public.)
>
> 4. End-user documentation, including a user guide published either as
>    Texinfo or on the EmacsWiki.
>
> 5. An updated version of the Emacs Lisp manual describing the new change
>    reporting mechanism.
>
> Plan:
>
> In the time before May 23, I'll familiarize myself with the relevant
> parts of Emacs's C code and discuss possible designs for an improved
> change-tracking system with other Emacs developers -- on emacs-devel,
> etc.
>
> In the six weeks before mid-term evaluations, I'll implement the new
> change-tracking system, write the transclusion library, and improve the
> GOTO inclusion transformation function to avoid inefficient corner
> cases. I'll also debitrot the Erlang server and add support for a simple
> binary protocol in addition to the HTTP interface used by the old JS and
> Flash clients.
>
> During the last half of the program I will work on the client itself --
> implementing the revised Jupiter algorithm, support for the binary
> protocol, a simple interactive client, lists of remote users,
> visualization of the activity of other users (e.g. coloring spans of
> text according to who last edited it, indicating others' point
> positions, etc.), and so on. If time permits, I hope to include some
> sort of history-browsing feature and a useful undo command. I will also
> write the user documentation during this time period.
>
> I will be able to work on this full-time.
>
> Communication:
>
> I am willing to use whatever communications media my mentor finds
> convenient: email, IM, telephone or voice-chat, etc.
>
> I will publish my code in darcs repositories available via HTTP and in
> AFS space.
>
> Qualification:
>
> I have been using Emacs and writing in Emacs Lisp since 2001 or so. I
> have contributed small amounts of code to GNU Emacs and am the original
> author of a few publicly released Emacs packages, including HCoop's
> domtool-mode. I also have previous experience with real-time
> collaborative editing systems; in 2007 I wrote a collaborative editing
> system with an Erlang server and Javascript and Flash clients, and began
> work on an Emacs client but found that it was not possible to write a
> reliable client without hacking on Emacs internals.

[Fullquote for the benefit of Alban, who doesn't follow emacs-devel]

Hi Brian,

half a year ago, I wrote a small collaborative editing package for
Emacs, using Alban Crequy's approach described at
<http://alban.apinc.org/blog/collaborative-editing/>. He wrote plug-ins
for gvim and gedit. All these editors were able to communicate with each
other (with some deficiencies, but it was just a proof of concept).

The major advantage was usage of D-Bus for communication. This means,
that no addition to the core of those editors are necessary. The obvious
disadavantage is, that it doesn't run on systems which do not speak
D-Bus.

Maybe you can have a look on this. Since then, the project is stalled,
unfortunately (in my case: lack of time). But I believe, there are good
reasons to add collaborative editing features to Emacs, so I am willing
to discuss your plans with you in detail.

Best regards, Michael.




  reply	other threads:[~2009-04-12 18:02 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-11 20:07 GSoC: collaborative editing Brian Templeton
2009-04-12 18:02 ` Michael Albinus [this message]
2009-04-13  1:22   ` Miles Bader
2009-04-13  9:08     ` Michael Albinus
2009-04-13 14:43 ` Thien-Thi Nguyen
2009-04-13 16:11   ` Thomas Lord
2009-04-13 22:04     ` Brian Templeton
2009-04-13 22:49       ` Thomas Lord
2009-04-14  3:41         ` Brian Templeton
2009-04-14  5:24           ` Thomas Lord
2009-04-13 22:52       ` Thomas Lord
2009-04-14 10:42     ` Thien-Thi Nguyen
2009-04-15  2:03       ` Thomas Lord
2009-04-13 17:44   ` Stefan Monnier
2009-04-13 23:10     ` Richard M Stallman
2009-04-13 23:32   ` Brian Templeton
2009-04-14  3:01     ` Stephen J. Turnbull
2009-04-14  4:02       ` Brian Templeton
2009-04-14  7:29         ` Stephen J. Turnbull
2009-04-14  9:09           ` Brian Templeton
2009-04-15  2:02             ` Thomas Lord
2009-04-14 21:14       ` Richard M Stallman
2009-04-15  2:18         ` Thomas Lord
2009-04-15  1:19 ` Brian Templeton
2009-04-15  1:27   ` Brian Templeton

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=87r5zxrbrv.fsf@gmx.de \
    --to=michael.albinus@gmx.de \
    --cc=bpt@tunes.org \
    --cc=emacs-devel@gnu.org \
    --cc=muadda@gmail.com \
    /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.