emacs-devel
[Top][All Lists]
Advanced

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

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