[Sugar-devel] [ANNOUNCE] Groupthink 0.1 pre-alpha
Tomeu Vizoso
tomeu at sugarlabs.org
Wed Jan 14 12:56:13 EST 2009
On Wed, Jan 14, 2009 at 18:54, Gary C Martin <gary at garycmartin.com> wrote:
> On 14 Jan 2009, at 17:33, Tomeu Vizoso wrote:
>
>> On Wed, Jan 14, 2009 at 18:23, Gary C Martin <gary at garycmartin.com> wrote:
>>>
>>> On 14 Jan 2009, at 13:02, Tomeu Vizoso wrote:
>>>
>>>> Hi Ben,
>>>>
>>>> can we use this on non-sugar pygtk apps?
>>>>
>>>> For example, could we use it to add collaboration features to
>>>> Labyrinth (a pygtk app that we are reusing as a Sugar activity)? Or
>>>> does it depend on Sugar in any way?
>>>
>>> Tomeu, FWIW I've tried multiple times to (politely) make contact with the
>>> original Labyrinth authors since Dec. Not a peep response from anyone,
>>> and
>>> the google mail list is dead (authorised posters only and no one is
>>> authorising any one new it seems). Don't hold out hope of upstream
>>> support –
>>> I think there's a lot of code in the core that needing changing to
>>> improve
>>> UI and a lot of code we don't need to bundle (custom win NT support!?).
>>> I'm
>>> guessing upstreaming would work much better for a project with a well
>>> established code-base, and an active maintainer – we seem to have
>>> neither.
>>>
>>> I'm happy to fork, and make it work its best for us under Sugar, so we
>>> have
>>> a solid activity.
>>
>> Makes sense. What about keeping the old code or starting anew?
>
> For me, it'll be quicker to work with what's there already, trim it down to
> what we need, and tune it for Sugar (and specifically XO) use. Is there some
> FOSS political/religious baggage about forking like this that I've just
> trodden in? Or were you just hoping to engage upstream to do some of the
> work for Sugar support ;-)
The latter ;)
Tomeu
>
>> Regards,
>>
>> Tomeu
>>
>>> --G
>>>
>>>> If the data model supported sharing through telepathy tubes, I think
>>>> that the upstream GNOME developers would be interested in helping us
>>>> maintain this code.
>>>>
>>>> Regards,
>>>>
>>>> Tomeu
>>>>
>>>> On Wed, Jan 14, 2009 at 06:11, Benjamin M. Schwartz
>>>> <bmschwar at fas.harvard.edu> wrote:
>>>>>
>>>>> -----BEGIN PGP SIGNED MESSAGE-----
>>>>> Hash: SHA1
>>>>>
>>>>> Groupthink [1] is a development toolkit for collaborative activities.
>>>>> It's designed to hide all the collaboration boilerplate and algorithms
>>>>> under a clean high-level abstraction, so that Activity developers can
>>>>> spend more time on what they really care about.
>>>>>
>>>>> Groupthink is deeply pre-alpha. Any application is likely to find a
>>>>> multitude of blocker bugs. If that is acceptable to you, then by all
>>>>> means start your experiments. If you are interested, please ask
>>>>> questions
>>>>> or read the code.
>>>>>
>>>>> As an example of the power of Groupthink, I have created a
>>>>> collaborative
>>>>> version of Chris Ball's "Words" activity, a multilingual dictionary.
>>>>> This
>>>>> required adding the groupthink library into the bundle. It also
>>>>> required
>>>>> two patches, attached. Together, these patches represent a total of 5
>>>>> lines changed. The resulting activity has the main input field shared
>>>>> synchronously across all instances. This activity will be released,
>>>>> pending further testing.
>>>>>
>>>>> Groupthink: Collab should be easy.
>>>>>
>>>>> - --Ben
>>>>>
>>>>> [1] http://dev.laptop.org/git?p=projects/dobject;a=summary
>>>>> -----BEGIN PGP SIGNATURE-----
>>>>> Version: GnuPG v2.0.9 (GNU/Linux)
>>>>>
>>>>> iEYEARECAAYFAkltdAwACgkQUJT6e6HFtqQ80wCfa4f13gAvJQYcdkhdmefBPBuU
>>>>> rYEAoJne2buq5hhC29/4ZFCdVvegBsne
>>>>> =aS94
>>>>> -----END PGP SIGNATURE-----
>>>>>
>>>>> --- activity.py.orig 2009-01-12 22:51:15.000000000 -0500
>>>>> +++ activity.py 2009-01-12 23:31:59.000000000 -0500
>>>>> @@ -1,9 +1,11 @@
>>>>> from sugar.activity import activity
>>>>>
>>>>> -class ViewSourceActivity(activity.Activity):
>>>>> +from groupthink.sugar_tools import GroupActivity
>>>>> +
>>>>> +class ViewSourceActivity(GroupActivity):
>>>>> """Activity subclass which handles the 'view source' key."""
>>>>> - def __init__(self, handle):
>>>>> - super(ViewSourceActivity, self).__init__(handle)
>>>>> + def __init__(self, handle, service_name):
>>>>> + super(ViewSourceActivity, self).__init__(handle, service_name)
>>>>> self.__source_object_id = None # XXX: persist this across
>>>>> invocations?
>>>>> self.connect('key-press-event', self._key_press_cb)
>>>>> def _key_press_cb(self, widget, event):
>>>>>
>>>>> --- pippy_app.py.orig 2009-01-13 23:37:25.000000000 -0500
>>>>> +++ pippy_app.py 2009-01-13 00:13:49.000000000 -0500
>>>>> @@ -28,6 +28,8 @@
>>>>> from sugar.activity.activity import ActivityToolbox, \
>>>>> get_bundle_path, get_bundle_name
>>>>>
>>>>> +import groupthink.gtk_tools
>>>>> +
>>>>> SERVICE = "org.laptop.Words"
>>>>> IFACE = SERVICE
>>>>> PATH = "/org/laptop/Words"
>>>>> @@ -36,7 +38,7 @@
>>>>> """Words Activity as specified in activity.info"""
>>>>> def __init__(self, handle):
>>>>> """Set up the Words activity."""
>>>>> - super(WordsActivity, self).__init__(handle)
>>>>> + super(WordsActivity, self).__init__(handle, SERVICE)
>>>>> self._logger = logging.getLogger('words-activity')
>>>>>
>>>>> from sugar.graphics.menuitem import MenuItem
>>>>> @@ -69,7 +71,8 @@
>>>>> label2 = gtk.Label("Translation")
>>>>>
>>>>> # Text entry box to enter word to be translated.
>>>>> - self.totranslate = gtk.Entry(max=50)
>>>>> + self.cloud.totranslate =
>>>>> groupthink.gtk_tools.RecentEntry(max=50)
>>>>> + self.totranslate = self.cloud.totranslate
>>>>> self.totranslate.connect("changed", self.totranslate_cb)
>>>>> self.totranslate.modify_font(pango.FontDescription("Sans 14"))
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Sugar-devel mailing list
>>>>> Sugar-devel at lists.sugarlabs.org
>>>>> http://lists.sugarlabs.org/listinfo/sugar-devel
>>>>>
>>>>>
>>>> _______________________________________________
>>>> Sugar-devel mailing list
>>>> Sugar-devel at lists.sugarlabs.org
>>>> http://lists.sugarlabs.org/listinfo/sugar-devel
>>>
>>>
>
>
More information about the Sugar-devel
mailing list