From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Thomas Lord Newsgroups: gmane.emacs.devel Subject: Re: GSoC: collaborative editing Date: Mon, 13 Apr 2009 09:11:12 -0700 Message-ID: <1239639072.6492.16.camel@dell-desktop.example.com> References: <87ab6ngdjb.fsf@tunes.org> <873acclilz.fsf@ambire.localdomain> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1239639466 28973 80.91.229.12 (13 Apr 2009 16:17:46 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 13 Apr 2009 16:17:46 +0000 (UTC) Cc: Brian Templeton , emacs-devel@gnu.org To: Thien-Thi Nguyen Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Apr 13 18:19:04 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 1LtOpY-0002hd-6Q for ged-emacs-devel@m.gmane.org; Mon, 13 Apr 2009 18:16:20 +0200 Original-Received: from localhost ([127.0.0.1]:48040 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LtOo9-00080Q-Fd for ged-emacs-devel@m.gmane.org; Mon, 13 Apr 2009 12:14:53 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LtOkh-0006pv-Gt for emacs-devel@gnu.org; Mon, 13 Apr 2009 12:11:19 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LtOkd-0006mq-T1 for emacs-devel@gnu.org; Mon, 13 Apr 2009 12:11:19 -0400 Original-Received: from [199.232.76.173] (port=42007 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LtOkd-0006mh-Mb for emacs-devel@gnu.org; Mon, 13 Apr 2009 12:11:15 -0400 Original-Received: from smtp131.iad.emailsrvr.com ([207.97.245.131]:57067) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1LtOkd-0003TI-C6 for emacs-devel@gnu.org; Mon, 13 Apr 2009 12:11:15 -0400 Original-Received: from relay23.relay.iad.mlsrvr.com (localhost [127.0.0.1]) by relay23.relay.iad.mlsrvr.com (SMTP Server) with ESMTP id 925F41B4038; Mon, 13 Apr 2009 12:11:14 -0400 (EDT) Original-Received: by relay23.relay.iad.mlsrvr.com (Authenticated sender: lord-AT-emf.net) with ESMTPSA id BC34C1B4027; Mon, 13 Apr 2009 12:11:13 -0400 (EDT) In-Reply-To: <873acclilz.fsf@ambire.localdomain> X-Mailer: Evolution 2.22.3.1 X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.4-2.6 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:110235 Archived-At: I have been organizing some materials about a "Collaboration WebOS" project: a project to help many free software projects - like Emacs - build in collaboration features in coordinated ways. See http://basiscraft.com On Mon, 2009-04-13 at 16:43 +0200, Thien-Thi Nguyen wrote: > () Brian Templeton > () Sat, 11 Apr 2009 16:07:20 -0400 > > [introduction] > > Sounds interesting. [...] > 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. Please consider this third alternative which I think has advantages to both: 1. Do not write a custom server. 2. Use a chat server (such as a Jabber implementation). 3. If some server-side computation is needed other than just forwarding messages in the manner of a chat session, write that new server-side code as a chat client. Reasons: a. "no new server" means less work b. "no new server" means less work for server administrators if they are already running a chat server c. "use Jabber (XMPP)" means that the same message bus can be shared with other programs such as the "collaborative whiteboard" feature of Inkscape d. XMPP implementations are actively maintained and aggressively improved. It is hard to image a new, less general-purpose server "catching up" and to catch up suggests doing a lot of redundent work There is a second question. What payload goes in chat messages? How are mutually remote buffers synchronized. In that area I suggest: 1. Carefully evaluating and considering adopting (and helping to adapt) the "mobwrite" system of "diff sync" (see http://code.google.com/p/google-mobwrite/ ) Reasons and Cautions: a. Caution: "mobwrite" currently makes the same mistake of using a custom server. To make it acceptable for this project, ideally it would be modified to use XMPP. b. Caution: "mobwrite" is new and experimental. The design needs to be scrutinized with care. c. Caution: "mobwrite" is a project of Google Inc. Past experience with free software development projects that become intertwined with development corporations of for-profit firms is that the for-profit firm's motives to cooperate may prove fickle. It is easy to wind up with a situation where the for-profit firm benefits for its own purposes, but the cause of software freedom gains little or even loses ground. d. Reason: Perhaps using "mobwrite" can save work. e. Reason: Since other editors are considering or being modified to use "mobwrite", perhaps this approach can ultimately allow collaborative sessions in which some users are using "emacs" while others use "bespin" or "vim" or what have you. -t