From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Thien-Thi Nguyen Newsgroups: gmane.emacs.devel Subject: Re: GSoC: collaborative editing Date: Mon, 13 Apr 2009 16:43:20 +0200 Message-ID: <873acclilz.fsf@ambire.localdomain> References: <87ab6ngdjb.fsf@tunes.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1239634121 6310 80.91.229.12 (13 Apr 2009 14:48:41 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 13 Apr 2009 14:48:41 +0000 (UTC) Cc: emacs-devel@gnu.org To: Brian Templeton Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Apr 13 16:50:00 2009 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1LtNTw-0006kw-B9 for ged-emacs-devel@m.gmane.org; Mon, 13 Apr 2009 16:49:56 +0200 Original-Received: from localhost ([127.0.0.1]:43708 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LtNSX-0002WO-Tc for ged-emacs-devel@m.gmane.org; Mon, 13 Apr 2009 10:48:29 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LtNSH-0002Nk-8O for emacs-devel@gnu.org; Mon, 13 Apr 2009 10:48:13 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LtNSG-0002N7-6s for emacs-devel@gnu.org; Mon, 13 Apr 2009 10:48:12 -0400 Original-Received: from [199.232.76.173] (port=58934 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LtNSG-0002N4-1E for emacs-devel@gnu.org; Mon, 13 Apr 2009 10:48:12 -0400 Original-Received: from smtp-out113.alice.it ([85.37.17.113]:2723) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LtNSF-0002dS-JU for emacs-devel@gnu.org; Mon, 13 Apr 2009 10:48:11 -0400 Original-Received: from FBCMMO01.fbc.local ([192.168.68.195]) by smtp-out113.alice.it with Microsoft SMTPSVC(6.0.3790.3959); Mon, 13 Apr 2009 16:48:10 +0200 Original-Received: from FBCMCL01B05.fbc.local ([192.168.69.86]) by FBCMMO01.fbc.local with Microsoft SMTPSVC(6.0.3790.3959); Mon, 13 Apr 2009 16:48:10 +0200 Original-Received: from ambire.localdomain ([79.21.70.147]) by FBCMCL01B05.fbc.local with Microsoft SMTPSVC(6.0.3790.3959); Mon, 13 Apr 2009 16:48:10 +0200 Original-Received: from ttn by ambire.localdomain with local (Exim 4.63) (envelope-from ) id 1LtNNY-0002wa-MB; Mon, 13 Apr 2009 16:43:20 +0200 In-Reply-To: <87ab6ngdjb.fsf@tunes.org> (Brian Templeton's message of "Sat, 11 Apr 2009 16:07:20 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) X-OriginalArrivalTime: 13 Apr 2009 14:48:10.0447 (UTC) FILETIME=[DD5EA5F0:01C9BC46] X-detected-operating-system: by monty-python.gnu.org: Windows 2000 SP4, XP SP1+ X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:110234 Archived-At: () Brian Templeton () Sat, 11 Apr 2009 16:07:20 -0400 [introduction] Sounds interesting. Have you thought about a peer-to-peer architecture? I don't know if i'm qualified to be a sponsor, but i wouldn't mind helping, w/ the caveat that the design move away from requiring a separate server and towards peer-to-peer. 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. Why must these be replaced? 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, comprising: - A client written in Emacs Lisp. - A modified version of an existing server written in Erlang. I think a server written in Emacs Lisp would gain more traction. 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: discuss change functions and then] 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. Probably you want to avoid binary protocol unless absolutely necessary. Why not translate the existing protocol to use Emacs-`read'able sexps? 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. Many of these features are supplied by Emacs itself. Indeed, Emacs is already a "simple interactive client" of its change-recording internals. thi