[Sugar-devel] GSoC Groupthink Update: SharedTextDemo-4
Walter Bender
walter.bender at gmail.com
Fri Jul 17 07:18:57 EDT 2009
On Thu, Jul 16, 2009 at 10:06 PM, Benjamin M.
Schwartz<bmschwar at fas.harvard.edu> wrote:
> Download:
> http://bemasc.net/~bens/SharedTextDemo-4.xo
>
> Requires Sugar 0.82 or better.
>
> Short:
> This version adds support for automerge after offline editing. User may start a
> shared session, then edit separately, and when they come back together their
> text will be combined automatically. This is a strong form of "asynchronous
> collaboration"
>
> Talk to me if you would like your activity to gain this capability.
>
> Long:
> I've been instigating a lot of discussion lately about how asynchronous
> collaboration, and in particular "re-joining" of shared activities, does work,
> and should work. I have noted several times that the current Sugar versions do
> not seem to allow activities resumed from the Journal to join back together into
> a shared instance, bringing their saved state with them.
>
> As it turns out, this is not strictly true. The Chat activity, for example,
> will re-join perfectly when resumed from the Journal. The problem is that the
> sugar.activity.activity.Activity class, when resumed from the Journal, will
> emit the 'shared' or 'joined' signal during __init__ ... but it is not possible
> to register any gobject signal handlers until _after_ __init__, by which time it
> is too late. I was able to resolve this problem by overriding the share()
> method to set a flag, which the activity can later check to determine whether
> it initiated sharing or joined an existing shared session.
>
> With this change
> 1. Any session saved in the Journal that was previously shared, will be shared
> again with the same scope upon resume.
> 2. If there is an existing shared session visible with the same activity_id, the
> activity will join that session.
>
> This behavior is good enough for me. However, it does preclude users from
> working privately on the results of a shared session, unless they totally
> deactivate their network connection. I could add this ability to work
> privately to groupthink's GroupActivity superclass, or it could be added to
> sugar's Activity class. A number of other interesting behaviors, such as
> forking an existing document, are also unavailable in the present system.
Maybe an option for "keep" could be to "keep a private copy"?
-walter
> Nonetheless, I feel that this is a solid start on the very old problem of
> "asynchronous collaboration". Given this promising development, my next step
> may be to work on performance for shared text editing, in the hope that an
> activity like Pippy might reasonably make use of this system.
>
> _______________________________________________
> Sugar-devel mailing list
> Sugar-devel at lists.sugarlabs.org
> http://lists.sugarlabs.org/listinfo/sugar-devel
>
--
Walter Bender
Sugar Labs
http://www.sugarlabs.org
More information about the Sugar-devel
mailing list