[Sugar-devel] Collaboration support for sugar web activities

Emil Dudev emildudev at gmail.com
Mon Jan 20 16:22:34 EST 2014

On Mon, Jan 20, 2014 at 10:33 PM, Daniel Narvaez <dwnarvaez at gmail.com>wrote:

> On 20 January 2014 13:53, Emil Dudev <emildudev at gmail.com> wrote:
>> On Mon, Jan 20, 2014 at 12:48 PM, Daniel Narvaez <dwnarvaez at gmail.com>wrote:
>>> * Why did you go with a separate web activity instead on integrating
>>> directly in the shell?
>> Integrating it directly with the current neighborhood?
> Not necessarily, I was also wondering why you didn't write the same thing
> in python inside the shell. But now I probably see, an activity was the
> only sensible place to put it if you wasn't merging with the telepathy view.

I've got some plans rotating in my head to rebuild sugar entirely as a
desktop web app. It's subjective. I'll try to not think 'big'. When I have
some free time I'll work on integrating it with the current neighborhood.

> One problem would be of duplicates if a user is both on the telepathy
>> neighborhood and this 'new' one.
>>  As mentioned in the earlier messages, I was thinking of writing a python
>> class that would act as the client between the sugar's mesh and the web
>> socket server.
>> I wasn't sure how exactly to handle regular activities and web activities
>> in such a 'merged' neighborhood.
> I'm not sure to understand where we would get duplicates. It seems like
> the mesh view is a list of activities. The new framework will provide you
> another list. Isn't it just matter of merging the two? Even in the current
> view if the user is in two activities, I believe we show it two times.
> (Might very well be missing something!).

As mentioned in the earlier messages, I was never able to get collaboration
between normal activities to work, so probably I'm missing something.
>From what I was able to get working with telepathy is that on the network
view (without the user doing/sharing anything), I can see all the users in
'the neighborhood' (on the same jabber server). I see their XO icons. These
icons could be duplicated, as there would be an icon from the jabber server
and an icon from the web socket server for the same user.
Besides the XO icons on the network view, I've heard rumors (and/or seen
pictures) of having shared activities next to a user's icon, having adhoc/
wifi networks on the view, having other things on the view.
What I've done with the sugar-net activity is to place all the users on a
random position and when the mouse hovers the user's icon a list with that
user's shared activities will show. Clicking on an item from the list will
join the activity.
I've went for a similar, but slightly different approach. Who can I ask for
the proper behavior of the network view? When I'll be merging the two, it
would be good to know what to aim for. I'll probably not be able to test
all the features (e.g. wifi/adhoc networks).

The reason I want to figure out if it's possible to merge the views is that
> we are not going to be able to drop telepathy based collaboration any time
> soon. We will have first to prove that the new framework works better and
> get activity authors to buy into it, then deprecate, finally wait a few
> years for activities to be migrated. So we need a plan on how the two can
> coexist. I'm afraid having two separate views it's not something we can
> afford user experience wise... but it would be good to hear the design team
> opinions on this.

Right. Life would be a lot easier if you didn't have to worry about
backward compatibility and deprecation policies.
I haven't given much thought to telepathy and normal activities. It won't
happen again, I'll think of them first, before I do something collaboration

> * Would it be possible to implement this without adding to apisocket and
>>> thus making it sugar specific?
>> Making web collaboration sugar specific, or not (being able to
>> collaborate from a normal browser)?
>> Since apisocket.py is the only way to communicate between the javascript
>> code and sugar, I'd say it won't be easy.
>> As noted above, it won't be very easy to have collaboration outside of
>> sugar, because the browser does not know where the activity page lies (if
>> it needs to join/open an activity).
>> It is possible to join a web activity, without changes to apisocket.py.
>> The problem would be that the current webkit page (sugar-net activity)
>> would be overwritten by the new activity (the one that is joined). There's
>> no problem from the web activity's point of view. The problem is that sugar
>> would still think that this is the sugar-net activity, and I'm not sure
>> what that would lead to. An other problem is that the sugar-net activity is
>> lost (it's page was reloaded into the joined activity).
>> A possible way to solve this is to open the new activity's page into a
>> separate tab. But then there are other problems: sugar would think the
>> sugar-net activity and it's new tab (the new activity) are one. Also, I'm
>> not sure how tab handling would look in webkit, without the top navigation
>> bars.
> Yeah, some sugar specific bits will be necessary to launch the activity.
> It seems like it would be good to keep those bits as minimal as possible.

When the network view's are merged, launching an activity should be handled
without javascript. Actually the only thing that would be needed in
apisocket.py would be to let sugar know when the sharing has started and
when it has ended. Can't think of anything else, other than letting sugar
'force' a web activity into sharing itself.

The questions don't seem to have simple answers...
>> When I'm writing the code, I'm not sure which way to go. I don't believe
>> that I can decide what is best for sugar. It would be nice to know what the
>> community is thinking and what is their vision of how web collaboration
>> should be handled.
> Yes. I think we are all a bit unsure about the way we should go. The
> research you are doing is extremely valuable because it's bringing us
> closer to figure that out... Lionel and Suraj has been experimenting with
> collaboration too, so it would be very interesting to hear their feedback.

I'm glad that I can help sugar with it's evolution. At the same time I'm
able to learn a lot about the many technologies out there in the world. I
just hope I'm not doing things too slow.

Emil Dudev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sugarlabs.org/archive/sugar-devel/attachments/20140120/1091d82c/attachment-0001.html>

More information about the Sugar-devel mailing list