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.
next prev parent 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.