[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GSoC: collaborative editing

From: Michael Albinus
Subject: Re: GSoC: collaborative editing
Date: Sun, 12 Apr 2009 20:02:12 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.92 (gnu/linux)

Brian Templeton <address@hidden> 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

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 via email to

[Prev in Thread] Current Thread [Next in Thread]