<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7653.38">
<TITLE>RE: [Sugar-devel] [ANNOUNCE] Groupthink 0.1 pre-alpha</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->
<BR>

<P><FONT SIZE=2>Hi Benjamin,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thanks very much! I'm very interested in looking at the source code and data structures.<BR>
<BR>
These kind of problems are exactly what abicollab (as used by Write) solves.<BR>
<BR>
I have given some detailed presentations about this. You can find one here:<BR>
<BR>
(the ogg version)<BR>
<BR>
<A HREF="http://mirror.linux.org.au/pub/linux.conf.au/2008/Wed/mel8-083.ogg">http://mirror.linux.org.au/pub/linux.conf.au/2008/Wed/mel8-083.ogg</A><BR>
<BR>
(presentation odp)<BR>
<BR>
<A HREF="http://mirror.linux.org.au/pub/linux.conf.au/2008/slides/083-AbiCollab.odp">http://mirror.linux.org.au/pub/linux.conf.au/2008/slides/083-AbiCollab.odp</A><BR>
<BR>
and wiki write up:<BR>
<BR>
<A HREF="http://www.abisource.com/wiki/AbiCollab">http://www.abisource.com/wiki/AbiCollab</A><BR>
<BR>
Maybe these ideas can help.<BR>
<BR>
Cheers!<BR>
<BR>
Martin<BR>
<BR>
<BR>
-----Original Message-----<BR>
From: sugar-devel-bounces@lists.sugarlabs.org on behalf of Benjamin M. Schwartz<BR>
Sent: Thu 1/15/2009 3:25 PM<BR>
To: Martin Edmund Sevior<BR>
Cc: bens@alum.mit.edu; Sugar Devel; Chris Ball<BR>
Subject: Re: [Sugar-devel] [ANNOUNCE] Groupthink 0.1 pre-alpha<BR>
<BR>
-----BEGIN PGP SIGNED MESSAGE-----<BR>
Hash: SHA1<BR>
<BR>
Martin Edmund Sevior wrote:<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; How do you solve &quot;internet lag&quot;.<BR>
&gt;<BR>
&gt; User A puts a character &quot;A&quot; in position 10, then before user B see sees<BR>
this (because of the finite propagation time), he puts character &quot;B&quot; in<BR>
position 10?<BR>
&gt;<BR>
&gt; Who wins? You just have to make sure the the document remains the same<BR>
for both users.<BR>
<BR>
This is, indeed, the central problem.&nbsp; For the moment, the answer is:<BR>
Groupthink does not support full documents, only short snippets of text.<BR>
I have prototyped a data structure that I believe can coherently resolve<BR>
these sorts of edit conflicts in long documents without any negotiation,<BR>
but it remains to be seen if the design will work.<BR>
<BR>
In general, Groupthink's approach (described at length in docstrings in<BR>
the code) is to write each data structure in such a way that any two users<BR>
who have observed the same set of messages will arrive at the same state,<BR>
regardless of the order in which those messages are received.&nbsp; The hard<BR>
part is figuring out how to do this for each kind of data structure.<BR>
However, once it is working, the code can be reused for many purposes<BR>
without needing to understand how it works.<BR>
<BR>
- --Ben<BR>
-----BEGIN PGP SIGNATURE-----<BR>
Version: GnuPG v2.0.9 (GNU/Linux)<BR>
<BR>
iEYEARECAAYFAkluuskACgkQUJT6e6HFtqQb2QCfXnSJHwZpn6Q/OsDSs8nJEb3x<BR>
vWIAoIJYuSuEp8EFOeKynHDLctW2S5iq<BR>
=Po5R<BR>
-----END PGP SIGNATURE-----<BR>
_______________________________________________<BR>
Sugar-devel mailing list<BR>
Sugar-devel@lists.sugarlabs.org<BR>
<A HREF="http://lists.sugarlabs.org/listinfo/sugar-devel">http://lists.sugarlabs.org/listinfo/sugar-devel</A><BR>
<BR>
</FONT>
</P>

</BODY>
</HTML>