[sugar] [ANNOUNCE] Gadget 0.0.3 released

2008-11-27 Thread Guillaume Desmottes
The "Down on the Farm" release.

Highlights:

  - According to our tests, you should use at least ejabberd 2.0.2 to
have
Gadget working properly. See README for details.
  - Fix handling of view close messages".

Tarballs: http://dev.laptop.org/pub/gadget/


Regards,


G.


___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] Presence Service

2008-11-20 Thread Guillaume Desmottes
Le jeudi 20 novembre 2008 à 12:04 +0100, Bert Freudenberg a écrit :
> On 20.11.2008, at 11:52, Morgan Collett wrote:
> 
> > On Thu, Nov 20, 2008 at 12:24, Bert Freudenberg  
> > <[EMAIL PROTECTED]> wrote:
> >> On 20.11.2008, at 10:17, Morgan Collett wrote:
> >>> Collabora have therefore suggested replacing Presence Service with a
> >>> combination of Mission Control and moving functionality up into
> >>> sugar-toolkit and the activities themselves, so that everything is
> >>> talking Telepathy and not some arbitrary abstraction of an  
> >>> abstraction
> >>> framework.
> >>
> >>
> >> Will the DBus interface to Mission Control be available by then? I
> >> only saw a year-old proposal for it. If not, it will take a
> >> considerable amount of boring work to migrate Etoys.
> >
> > The plan would have to include providing the same or similar API for
> > non python activities as the current PS API - without failing to
> > remove unnecessary indirection and abstraction...
> 
> 
> Just to clarify: I was specifically referring to a D-Bus API. An  
> activity written in C could easily use the existing C-level API to  
> Mission Control. Not all "non-Python" activities are created equal :)

The new mission control (5.x) will implement a standardised D-Bus API as
any other Telepathy component.
Some of these API's were already merged to the Telepathy specification
[1].

G.



[1] http://telepathy.freedesktop.org/spec.html
 

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


[sugar] [RELEASE] sugar-presence-service 0.83.1 released

2008-10-29 Thread Guillaume Desmottes
A new release of Presence Service is available at:
https://dev.laptop.org/pub/sugar/sources/sugar-presence-service/sugar-presence-service-0.83.1.tar.bz2


Enhancements:

* dev.laptop.org #7581: Don't ignore buddies without keys. This improve
  interoperability with non Sugar client.
* dev.laptop.org #7849: Display PS version in the log.
* Use gconf to get Sugar profile settings.
* dev.laptop.org #8444: Don't rely on the roster to check if a contact
handle
is channel specific or not. So PS will properly create Buddy objects
discovered
using Gadget. Furthermore, this workaround has the nice side effect to
improve
compatibility with bugged shared roster (as the one of ejabberd).

Fixes:

* dev.laptop.org #5618; Discard invalid handles if InspectHandles
failed.


Regards,


G.


___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] telepathy-glib and glib 2.16 dependency

2008-10-20 Thread Guillaume Desmottes
Le vendredi 17 octobre 2008 à 21:46 +0200, Marco Pesenti Gritti a
écrit :
> Hello,
> 
Hi Marco

> commit dd2c13d56672d7ff7e69f59138c1bf3493e3dddf
> Author: Guillaume Desmottes <[EMAIL PROTECTED]>
> Date:   Fri Oct 17 17:37:36 2008 +0100
> 
> upgrade to telepathy-glib 0.7.17
> 
> This adds a dependency on glib 2.16. It would mean to drop support for
> Fedora 8 and the equivalent Ubuntu version. My plan so far was to do
> it after Ubuntu/Fedora releases (the logic being to keep support for
> two latest releases of these major distributions).
> 
> Can you explain the reason of the glib version bump so that we can
> better decide on it?

The new telepathy-glib and telepathy-gabble use glib 2.16 new API. You
can revert my commit for now, we don't need this new tp-glib yet. But
we'll do soon as we'll need the futur Gabble release for Gadget.



G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


[sugar] [ANNOUNCE] Gadget 0.0.2 released

2008-10-17 Thread Guillaume Desmottes
The "Monster Lake" release.

Highlights:

  - Support for constraining activity search results.
  - Various bug fixes.
  - Adds load simulation tools for testing purposes.
  - Support for multi criteria search.


Tarballs: http://dev.laptop.org/pub/gadget/



G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] Proposed: Cerebro status meeting

2008-10-17 Thread Guillaume Desmottes
Le vendredi 17 octobre 2008 à 13:45 +0200, Morgan Collett a écrit :
> I'd like to catch up on the progress of Cerebro, telepathy-synapse and
> other ideas for scalable link local presence before we get into
> planning this feature for Sugar 0.84:
> http://sugarlabs.org/go/DevelopmentTeam/0.84/Collaboration#Scalable_link_local_presence
> 
> Can we have a meeting next week to see where things are at?
> 
> Channel: #sugar-meeting
> 
> Proposed time: Wednesday Oct 22, at 14:00 UTC
> (http://timeanddate.decenturl.com/1400utc) or 17:00 UTC
> (http://timeanddate.decenturl.com/1700utc)

I'd prefer 14:00 UTC



G.


___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] Congrats to Telepathy

2008-09-25 Thread Guillaume Desmottes
Le mercredi 24 septembre 2008 à 19:05 -0400, Benjamin M. Schwartz a
écrit :
> -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA1
> 
> Congratulations are in order, I think, for the Telepathy developers. Gnome
> 2.24 was just released, and from


Thank you very much. :)

Note that we have some plan to make sugar uses Telepathy in a much
similar way as we do on the desktop. That should lead to a better
interoperability with non-sugar client and increase code reuse.
More on this, hopefully, soon.



G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] [Telepathy] ANNOUNCE: telepathy-salut 0.3.5 released

2008-09-18 Thread Guillaume Desmottes
Le mercredi 17 septembre 2008 à 20:14 +0200, Morgan Collett a écrit :
> For those not on the Telepathy list...


And as said, on #8441 there is a backport of this fix in the rpm package
which seems to fix the issue.

> -- Forwarded message --
> From: Guillaume Desmottes <[EMAIL PROTECTED]>
> Date: Wed, Sep 17, 2008 at 18:38
> Subject: [Telepathy] ANNOUNCE: telepathy-salut 0.3.5 released
> To: [EMAIL PROTECTED]
> Cc: [EMAIL PROTECTED]
> 
> 
> telepathy-salut 0.3.5 (2008-09-17)
> ==
> The "Please don't flood my network" release.
> 
> Tarball:
> http://telepathy.freedesktop.org/releases/telepathy-salut/telepathy-salut-0.3.5.tar.gz
> Signature:
> http://telepathy.freedesktop.org/releases/telepathy-salut/telepathy-salut-0.3.5.tar.gz.asc
> 
> 
> This release fixes an annoying bug causing Salut announcing all the OLPC
> activities which are present on the network. You should consider
> upgrading if they are OLPC XO's running on your network.
> 
> Enhancements:
> 
> * Add a test framework
> 
> Fixes:
> 
> * Only announce OLPC activity we actually joined (dev.laptop.org #8441)
> 
> 
> 
> Regards,
> 
> 
>G.
> 
> ___
> Telepathy mailing list
> [EMAIL PROTECTED]
> http://lists.freedesktop.org/mailman/listinfo/telepathy
> ___
> Sugar mailing list
> Sugar@lists.laptop.org
> http://lists.laptop.org/listinfo/sugar
> 

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


[sugar] [ANNOUNCE] Gadget 0.0.1 released

2008-08-21 Thread Guillaume Desmottes
Hi,

Daf and I are happy to announce the first release of the Gadget XMPP
component. See http://wiki.laptop.org/go/Gadget for more info about
Gadget.

Tarball: http://people.collabora.co.uk/~cassidy/gadget-0.0.1.tar.gz


The "live CDs are not usually meant to automatically format your disk"
release.

This is the first version release of the XMPP component Gadget.
It implements most of the basic expected features including:
  - subscriptions management
  - buddy views (by buddy properties, by alias and random)
  - activity views (by activity properties, by participants and random)

Note this is an alpha quality release. It certainly contains lot of bugs
and the underlying XMPP protocol is still subject to changes.



G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


[sugar] [RELEASE] sugar-presence-service 0.82.2 released

2008-08-08 Thread Guillaume Desmottes
A new release of Presence Service is available at:
https://dev.laptop.org/pub/sugar/sources/sugar-presence-service/sugar-presence-service-0.82.2.tar.bz2


The "I should use pyflakes more often" release.

This brown paper bag release fixes a stupid name error in #5618 fixe.



Regards,


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


[sugar] [RELEASE] sugar-presence-service 0.82.1 released

2008-08-07 Thread Guillaume Desmottes
A new release of Presence Service is available at:
https://dev.laptop.org/pub/sugar/sources/sugar-presence-service/sugar-presence-service-0.82.1.tar.bz2


The "One more bug fixed" release.

Fixes:

* dev.laptop.org #5618: PS should drop handles causing InspectHandles
failing



Regards,


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


[sugar] sugar-presence-service branched for sucrose-0.82

2008-08-06 Thread Guillaume Desmottes
sugar-presence-service has been branched for 0.82.

The main goal for this cycle is the Gadget [1] integration which should
hopefully increase the scalability of server-oriented collaboration.


G. 


[1] http://wiki.laptop.org/go/Gadget

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


[sugar] [RELEASE] sugar-presence-service 0.82.0 released

2008-08-06 Thread Guillaume Desmottes
A new release of Presence Service is available at:
https://dev.laptop.org/pub/sugar/sources/sugar-presence-service/sugar-presence-service-0.82.0.tar.bz2


The "Woo I'm stable!" release.

No code change since 0.81.4, the point of this release is to sync
version number with Sucrose 0.82.0.



Regards,


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] How do I connect to a Jabber server ?

2008-08-05 Thread Guillaume Desmottes
Le mardi 05 août 2008 à 12:24 +0100, Gary C Martin a écrit :
> On 5 Aug 2008, at 09:46, Morgan Collett wrote:
> 
> >> The xochat.org jabber server is the one I seem to reliably attach to
> >> for my XO testing, though I'd love to see an official developer  
> >> jabber
> >> server, so as not to pester real G1G1 users with my tests, and so we
> >> can 'eat our own dogfood' in a dev environment**. Connecting to a
> >> remote jabber server is currently the way to see and share with other
> >> remote users*** in the neighborhood.
> >>
> >> ** perhaps Sugar Labs could run such an environment?
> >
> > Collabora run a server which is the default setting for jhbuild:
> > olpc.collabora.co.uk
> 
> That's good to hear re-confirmed, but I've not seen any buddies/ 
> activities shared on olpc.collabora.co.uk for weeks/months. I'd just  
> assumed your server was always borked by lots of connections, or in  
> some unstable dev status, so I had switched over to xochat.org which  
> always seems to respond and have buddies showing.
> 
> Using your recent "nc olpc.collabora.co.uk 5222" trick I can now see  
> olpc.collabora.co.uk is responding with some xml just fine. So, is no  
> one else using it, or should I do some debugging? Are you running a  
> dev version of a jabber server that's doing something different?

olpc.collabora.co.uk was recently reinstalled to a new ejabberd server
in order to test Gadget. The shared roster hack was removed which
improve stability but doesn't automatically display all the connected
buddies anymore. Gadget should solve that, I plan to merge it at the
beginning of the 9.1.0 cycle.


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] July 31 - Sucrose 0.81.6 Tarballs Due

2008-07-31 Thread Guillaume Desmottes
Le mercredi 30 juillet 2008 à 19:25 +0200, Simon Schampijer a écrit :
> Dear maintainers,
> 
> the next development release is tomorrow the 31th July. Please provide source 
> code 
> tarballs by the end of tomorrow for the following modules:

Not code change in sugar-presence-service since 0.81.4.


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] Presence Participant ID

2008-07-30 Thread Guillaume Desmottes
Le mercredi 30 juillet 2008 à 13:57 +0200, Bert Freudenberg a écrit :
> Hi,
> 
> I just noticed the addition of this function to the PS API:
> 
>   • SearchActivitiesByParticipants(au) → o
>   • Search for activities having the given participants.
>   • Returns: the view representing the result of the search.
> 
> What participant id does this take? Presence "participants" are  
> buddies, so I would have expected this function to take an 'ao'  
> argument.


fixed.

nice catch :)


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] Presence Participant ID

2008-07-30 Thread Guillaume Desmottes
Le mercredi 30 juillet 2008 à 13:57 +0200, Bert Freudenberg a écrit :
> Hi,
> 
> I just noticed the addition of this function to the PS API:
> 
>   • SearchActivitiesByParticipants(au) → o
>   • Search for activities having the given participants.
>   • Returns: the view representing the result of the search.
> 
> What participant id does this take? Presence "participants" are  
> buddies, so I would have expected this function to take an 'ao'  
> argument.

You are completely right. I also noticed this problem this morning and
I'm working on it atm :)


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] SMS messaging

2008-07-25 Thread Guillaume Desmottes
Le jeudi 24 juillet 2008 à 09:59 +0200, Guillaume Desmottes a écrit :
> The plan with Gadget is to allow user to request random buddies (and
> activities) or perform search based on different criteria. As you can
> see on [1], currently only search based on buddy properties is
> implemented but we plan to add alias search soon (maybe next week if you
> really need it).


I implemented search by alias using Gadget.

The gadget branch is not merged yet and the Gabble one is
http://monkey.collabora.co.uk/telepathy-gabble-gadget/

See
http://people.collabora.co.uk/~cassidy/spec-olpc-gadget.html#org.laptop.Telepathy.Gadget
 for the API.


G.


___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] File Transfer (was Sugar mtg minutes, 24th July 2008)

2008-07-25 Thread Guillaume Desmottes
Le vendredi 25 juillet 2008 à 10:43 +0200, Morgan Collett a écrit :
> On Fri, Jul 25, 2008 at 10:07, Guillaume Desmottes
> <[EMAIL PROTECTED]> wrote:
> > About file transfer. There is currently an intern working on the new FT
> > spec and its implementation in Salut. So we should hopefully have
> > something working at the end of this summer.
> > Once the spec merged, we could implement it in telepathy-synapse (the
> > Cerebro connection manager) too.
> 
> Will there be file transfer in Gabble too? A simpler mechanism for
> cases like Read's PDF sharing should increase reliability.

Yeah the plan is to implement FT in Gabble too using Jingle (so, using
p2p connections) but that needs some refactoring in Gabble's jingle
code.

> Which Tube types and CMs do (or soon will) support Out Of Band (direct
> TCP, not base64 over XML over the server)?

http://telepathy.freedesktop.org/wiki/Tubes contains a good overview of
the current state.

Once Jingle's code will be refactored in Gabble, we could use it to
implement p2p connections for stream tubes. There are still some issues
in current Jingle XMPP protocol but I think Rob made good progress on
this at the XMPP summit this week.



G.


___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] Sugar mtg minutes, 24th July 2008

2008-07-25 Thread Guillaume Desmottes
Le jeudi 24 juillet 2008 à 21:59 +0200, Tomeu Vizoso a écrit :
> Hi,
> 
> these are the minutes of today's sugar developer meeting. Please check
> the minutes and complete what I may have missed.
> 
> http://sugarlabs.org/go/DevelopmentTeam/Meetings#Thursday_July_24_2008_-_17.00_.28UTC.29


Hi guys,

I read the backlog of yesterday meeting and can clarify some points to
you.

As said, most of the work was done in Gadget. That's a lot of work as it
involves changes/work in a lot of different areas : XMPP protocol, the
gadget component itself, Gabble, PS and Sugar.
Things are starting to be in a good shape and I think we'll have
something ready for wider testing pretty soon.
See [1] for an overview of things missing and links to some tickets.

I don't think Gadget will be ready for inclusion in 8.2 but I'm pretty
confident to have it ready for merging at the beginning of the 9.1 cycle
and so be able to properly test and debug it during the whole cycle.

For 8.2, the main changes in collaboration are :
- The upgrade of telepathy-glib, telepathy-gabble and telepathy-salut to
newest releases fixing lot of various bugs (not necessarily collab
related but fixing at least #6658 and #6647).

- Various sugar-presence-service fixes and improvements (see PS's NEWS
file) 

About file transfer. There is currently an intern working on the new FT
spec and its implementation in Salut. So we should hopefully have
something working at the end of this summer.
Once the spec merged, we could implement it in telepathy-synapse (the
Cerebro connection manager) too.

Now some replies to direct questions.

 18:35:51> -does gadget and cerebro solve similar problems?
 18:35:53> -I mean
 18:36:04> -if we have cerebro, would gadget still be
necessary?

They intend to solve a similar problem (the scalability) but in 2
different cases.
Gadget is a XMPP component we are developing to replace the shared
roster hack. So it should solve scalability problems in server mode (XO
connected to the jabber server).
On the other hand, telepathy-synapse is a potential replacement of
telepathy-salut that should, hopefully, increase the scalability in
serverless mode (children under a tree).
So, yeah, we need both.

 18:41:56> +cassidy: is there anything you need from the Sugar
team to accelerate Gadget's progress?

It would be good to review #7543 and #7544 in order to have them ready
for merge at the begin of 9.2.
We should also discuss about the right way to implement #7545.
Last Sugar part is the search UI. I'll open a ticket about that.

 18:42:06> +I've also wanted to support metadata searches ie.
activity:chat

That's already implemented in Gabble and Gadget. The last missing part
is the GUI.


Hope that help. Of course, feel free to ask if you have any other
questions. :)


G.



[1] http://wiki.laptop.org/go/Gadget_integration_TODO


___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] SMS messaging

2008-07-24 Thread Guillaume Desmottes
Le jeudi 24 juillet 2008 à 03:36 -0400, Ankur Verma a écrit :
> 
> As per our earlier discussion, the method at present is to use
> roster.py, which you are planning to remove in the next versions.

Humm not really. Using the roster is and will always be a sane way to
find contacts. But, as you can guess, it assumes that the contact is in
your roster.
Currently this is a sane assumption because of the shared roster hack.
But when we'll drop it, that won't be true anymore.

> As roster.py also uses Telepathy to get the nicks of XO who have
> subscribed or are friends, are there any alternative functions which I
> can use to fetch the list of XOs? I am ready to look more into
> telepathy specs, but I am curious to know the answer.

The plan with Gadget is to allow user to request random buddies (and
activities) or perform search based on different criteria. As you can
see on [1], currently only search based on buddy properties is
implemented but we plan to add alias search soon (maybe next week if you
really need it).

So for now, I suggest you to use a server with the shared roster hack or
manually subscribe your SMS user with a test buddy for your tests.
So you could test most of the part of your app and just change it to use
alias search later.


G.

[1]
http://people.collabora.co.uk/~cassidy/spec-olpc-gadget.html#org.laptop.Telepathy.Gadget
 


___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] SMS messaging

2008-07-23 Thread Guillaume Desmottes
Le mercredi 23 juillet 2008 à 12:38 -0400, Ankur Verma a écrit :
> 
> I can run a bash/python script upon the reception of the message with
> the message parameters.  This makes it flexible enough to call any
> application.
> 

Then I think you should write a Python application which connect to the
jabber server, find the buddy and send him the message.

As a start I suggest you to take a look on the Telepathy spec [1] and
telepathy-python examples.


G.


[1] http://telepathy.freedesktop.org/spec.html



___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] SMS messaging

2008-07-23 Thread Guillaume Desmottes
Le mardi 22 juillet 2008 à 18:36 -0400, Ankur Verma a écrit :
> 
> Message is in the format Nick_Name:Message. Though its true that
> Nicknames are not unique across a school, but it is the only way to
> specify XO in a user-friendly manner. 
> 
> If XO is not currently connected, a SMS autoreply will be sent
> indicating XO is not present in the mesh. One of the use cases would
> be when parents want to know about their child's presence in the
> school considering every XO in school is connected!

Ok, then I think the Telepathy based client connected to the jabber
server could be a good solution. In which language is written your
application?


G.


___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] SMS messaging

2008-07-22 Thread Guillaume Desmottes
Le mardi 22 juillet 2008 à 09:18 -0400, Ankur Verma a écrit :
> 
> Hi Guillaume,
> 
> Thank you for your message.
> 
> Though it is an external application, but its intended to be run on
> server (Application has similarities with server implementation like
> it runs Apache)
> 
> 
> A) If that's an external application, then you have to connect
> to the
> jabber server as any client/XO. You'll be able to see all the
> connected
> XO's that are in your jabber roster. Currently we are using an
> ugly hack
> called "shared roster" meaning you'll see all the connected
> XO's but we
> plan to drop it soon.
> A solution could be to use Gadget [1] but we currently don't
> have API to
> search for buddies based on their alias (that's probably
> something
> useful to have so we could consider to add one).
> Another solution would be for each buddies to subscribe to
> your
> application (as a Friend) if they are interested about
> receiving SMS
> messages but that's not very convenient IMHO.
> 
> The idea of having the API to search for buddies based on their nicks
> and forwarding message to them seems good.

Be aware that with this solution, you won't find the XO if he's not
currently connected. How do you plan to handle such case?


> One of the solution to forward message can be a XMPP message, though I
> am not sure how to implement this. Can you think of any alternatives?

If you use Telepathy, sending a XMPP message to the contact will be
trivial.


> B) A server plugin. You'll be able to use the server API (and
> so be able
> to know which buddies are connected, etc) but you'll be depend
> on a
> server implementation and your app will have to run on the
> same box as
> the server.
> 
> Server API doesn't let us know about the nicks of  current buddies
> that are connected. As Wad meant to say, Jabber IDs are available
> which are not human readable and they cannot be mapped to nicks at
> present. 

I have no idea how plugin's API work but I guess you should be able to
access to most of the server's model, including the alias.


G.



___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] SMS messaging

2008-07-22 Thread Guillaume Desmottes
Le mardi 22 juillet 2008 à 09:11 -0300, John Watlington a écrit :
> As I mentioned earlier to Ankur in a separate email, I believe the
> real problem here isn't technically how to connect to the presence  
> service,
> but rather that the presence service offers no human-usable ID which
> is guaranteed to be unique within a school.

This application won't run on the XO so it doesn't have to use
presence-service at all.


G.


___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


[sugar] sugar-presence-service 0.81.4 released

2008-07-22 Thread Guillaume Desmottes
A new release of Presence Service is available at:

https://dev.laptop.org/pub/sugar/sources/sugar-presence-service/sugar-presence-service-0.81.4.tar.bz2


The "Oooops I'm late" release.

Fixes:

* dev.laptop.org #7451: Presence Service should start even with no
interfaces up


Sorry for the delay.

Regards,

G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] SMS messaging

2008-07-22 Thread Guillaume Desmottes
Le jeudi 17 juillet 2008 à 15:44 -0400, Ankur Verma a écrit :
> Hello,

Hi Ankur,

> I am able to receive SMS text messages through a mobile phone intended
> to be attached to school server. I need to forward this message to a
> specific XO connected on the jabber server. At this moment, I have the
> message in the format XO_name:SMS_Message. My plan is:
> 
> 1. Get information (Unfriendly Jabber ID? or Nick?) about all the XOs
> connected.

As I said last time we discussed this on IRC, that depends what is your
application exactly:

A) If that's an external application, then you have to connect to the
jabber server as any client/XO. You'll be able to see all the connected
XO's that are in your jabber roster. Currently we are using an ugly hack
called "shared roster" meaning you'll see all the connected XO's but we
plan to drop it soon.
A solution could be to use Gadget [1] but we currently don't have API to
search for buddies based on their alias (that's probably something
useful to have so we could consider to add one).
Another solution would be for each buddies to subscribe to your
application (as a Friend) if they are interested about receiving SMS
messages but that's not very convenient IMHO.

B) A server plugin. You'll be able to use the server API (and so be able
to know which buddies are connected, etc) but you'll be depend on a
server implementation and your app will have to run on the same box as
the server.

C) A XMPP component. That's generally how XMPP gateways work. People
will have to explicitly subscribe to your component.

If you choose A. then I strongly suggest you to use Telepathy (Gabble)
as we already have a nice API you could use instead of dealing with XMPP
directly.


Hope that help.

G.




[1] http://wiki.laptop.org/go/Gadget



___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] Presence Service D-Bus API

2008-07-15 Thread Guillaume Desmottes
Le lundi 14 juillet 2008 à 21:54 -0700, Bert Freudenberg a écrit :
> Am 14.07.2008 um 05:48 schrieb WikiAdmin:
> 
> > anonymous user 91.179.26.46 edited Presence Service D-Bus API
> > http://wiki.laptop.org/index.php?title=Presence_Service_D-Bus_API&diff=0&oldid=137835
> 
> 
> This adds the GetBuddyByTelepathyHandle() and ListChannels() methods.  
> Should we document the PS version of when this was introduced?

I am this anonymous user. :)

GetBuddyByTelepathyHandle() was in PS since age but was forgotten on the
wiki, so I added it.

ListChannels() was recently added (PS 0.81.3), see #4757 for details.


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] [SURVEY] builders, how do you build? what do you build?

2008-07-01 Thread Guillaume Desmottes
Le vendredi 27 juin 2008 à 17:23 -0400, Erik Garrison a écrit :
> Developers, specifically those running build systems,
> 
> Many of us are confused about the software flows inherent in the daily
> build processes which are occuring at OLPC.  I would like to conduct a
> simple survey of all people building software for OLPC so that all of us
> can better understand the sources of the software running on the XO and
> XS without individually hassling the responsible parties every time we
> have generic questions about their build processes.
> 
> Builders, please describe your local build network:
> 
> 0) Who are you and who do you directly work for?

Guillaume Desmottes, working for Collabora Ltd.

> 1) What do you build?

The Telepathy Stack: telepathy-gabble, telepathy-glib, telepathy-salut,
telepathy-stream-engine
The Farsight Stack (used for the video-chat activity): farsight,
gstreamer-plugins-farsight, libjingle

and sugar-presence-service.

> 2) Where does it come from? / Who directly provides you with source code?

Most of the time I package mine own new releases (as I'm upstream of the
presence-service, Gabble and Salut) or include a patch I just wrote to
fix some issue.

I also occasionally package latest stable releases of the rest of the
stack when I need one new feature or I know it improves general
stability.

> 3) Where does the output of your build process go?  / Who handles the
> immediate output of your builds?

Directly to Koji.

> 4) Where specifically is it built? (I want server names and/or
> descriptions, where security is a concern please share them with me
> privately.)

My builds are submitted from teach.laptop.org to Koji.

> 5) What build systems do you use to build software?  Please briefly
> describe their operation or provide a link to documentation or source
> code which does.

No idea :)



Hope that help,


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] sugar-presence-service 0.81.2 released

2008-06-23 Thread Guillaume Desmottes
Le vendredi 20 juin 2008 à 20:54 +0200, Morgan Collett a écrit :
> The "Features on ice" release.
> 
> tar:
> https://dev.laptop.org/pub/sugar/sources/sugar-presence-service/sugar-presence-service-0.81.2.tar.bz2
> 
> 

Thanks for managing the release Morgan (I was in holidays last week). :)


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] review: Guillaume's 'activity' branch of Gadget

2008-06-11 Thread Guillaume Desmottes
Le mardi 10 juin 2008 à 14:42 +0100, Dafydd Harries a écrit : 
> > diff --git a/gadget/component.py b/gadget/component.py
> > index b5fc702..dd85a03 100644
> > --- a/gadget/component.py
> > +++ b/gadget/component.py
> > @@ -92,8 +92,9 @@ class Room(object):
> >  def __init__(self, own_nick):
> >  self.own_nick = own_nick
> >  self.membership = None
> > -self.members = {}
> > +self.members = set()
> >  self.properties = {}
> > +self.id = None
> >  
> 
> Would it be possible to just have a Room.activity property and use that to
> store members/id?
> 

I'll remove the Room object and move membership management to Activity
as we discussed yesterday.


> >  class GadgetService(component.Service):
> >  debug = False
> > @@ -333,7 +334,7 @@ class GadgetService(component.Service):
> >  def message(self, stanza):
> >  type = stanza.getAttribute('type', 'normal')
> >  
> > -if type in ('chat', 'groupchat'):
> > +if type in ('chat'):
> >  return
> 
> This doesn't do quite what you want. "()" doesn't create a tuple, "," does, so
> this is the same as "type in 'chat'", which will be true if type is a
> substring of "chat". Better to just say "==".
> 

Right. Forgot about that, good catch. Fixed.

> >  
> >  if type == 'normal':
> > @@ -343,12 +344,17 @@ class GadgetService(component.Service):
> >  return
> >  elif (elem.uri == ns.ACTIVITY_PROP and
> >elem.name == 'properties'):
> > -self.message_activity_properties(stanza, elem)
> > +self.message_pre_invite_activity_properties(stanza, 
> > elem)
> >  return
> >  elif elem.uri == ns.PUBSUB_EVENT and elem.name == 'event':
> >  self.message_pubsub_notification(stanza, elem)
> >  return
> >  
> > +elif type == 'groupchat':
> > +for elem in stanza.elements():
> > +if elem.uri == ns.ACTIVITY_PROP and elem.name == 
> > 'properties':
> > +self.message_activity_properties(stanza, elem)
> 
> You should return here. Perhaps we should dispatch messages more like we
> dispatch IQs, i.e. using a dict.
> 

fixed. I added a FIXME suggestion a better dispatch system.

> > +
> >  # FIXME: handle close query stanza
> >  log.msg('got unhandled ')
> >  
> > @@ -357,7 +363,7 @@ class GadgetService(component.Service):
> >  if elem.uri == ns.MUC_USER and elem.name == 'invite':
> >  self.message_muc_invite(stanza, elem)
> >  
> > -def create_room(self, jid, properties):
> > +def create_room(self, jid, properties, id):
> 
> Hmm, can we put the id before the properties? I think it's more aesthetically
> pleasing that way.
> 

done.

> >  if jid in self.mucs:
> >  # We already have a room by this name.
> >  return
> > @@ -366,9 +372,10 @@ class GadgetService(component.Service):
> >  # join it.
> >  room = Room('inspector')
> >  room.properties = properties
> > +room.id = id
> >  self.mucs[jid] = room
> >  
> > -def message_activity_properties(self, stanza, properties_elem):
> > +def message_pre_invite_activity_properties(self, stanza, 
> > properties_elem):
> >  # XXX Restrictions on from address?
> >  
> >  try:
> > @@ -384,7 +391,7 @@ class GadgetService(component.Service):
> >  if not (properties and activity and room_jid):
> >  return
> >  
> > -self.create_room(room_jid, properties)
> > +self.create_room(room_jid, properties, activity)
> 
> Perhaps we should rename 'activity' to 'activity_id' for clarity.
> 

done.

> >  def message_muc_invite(self, stanza, invite):
> >  to = stanza.getAttribute('to')
> > @@ -502,17 +509,54 @@ class GadgetService(component.Service):
> >  # Presence for our in-room self; we've finished joining the
> >  # room.
> >  room.membership = 'joined'
> > +
> > +# activities are created and added to the model when the
> > +# inspector actually joined the muc.
> 
> English nitpicks: Your tenses don't agree here. "are created" ... "joined".
> s/joined/join/. If you use a full stop, you should also capitalise the first
> letter.
> 

fixed.

> > +# If we'll do it before, we won't be able to properly track
> > +# activity's properties and members.
> 
> I don't understand this comment.
> 

Humm me neither actually :) Removed.

> > +activity = self.model.activity_add(room.id, room_jid,
> > +room.properties)
> > +
> > +# Activity and Room now share the same set() object
> > +activity.members = room.members
> >  return
> >  
> > +item = xpath_query('/p

Re: [sugar] journal object transfer for 8.2

2008-06-10 Thread Guillaume Desmottes
Le lundi 09 juin 2008 à 16:12 -0400, Michael Stone a écrit :
> Tomeu,
> 
> > have heard occasional requests to implement the sending and sharing of
> > journal entries.
> 
> It's a desirable feature but, from my perspective, it's much lower in
> immediate priority than work which brings the sugar UI revision into a
> releasable condition and which "polish" the existing work by closing
> several of the 379 tickets assigned to component 'sugar':
> 
>   
> http://dev.laptop.org/query?status=assigned&status=new&status=reopened&component=sugar&order=priority&col=id&col=summary&col=status&col=type&col=priority&col=milestone&col=component
> 
> > So the questions are: is this a feature we should deliver for the 8.2
> > release? 
> 
> In my opinion, "no". 
> 
> Do you think differently?


The new (work in progress) Telepathy file transfer specification should
be able to nicely implement object transfer. But I doubt we'll have an
implementation ready for 8.2.

Could be a cool feature for the next release cycle though.


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] review: Daf's view branch

2008-06-05 Thread Guillaume Desmottes
Le jeudi 05 juin 2008 à 12:58 +0200, Guillaume Desmottes a écrit :
> Le jeudi 05 juin 2008 à 12:40 +0200, Guillaume Desmottes a écrit :
> > +class ActivityViewHandler(object):
> > This class should have member_added and member_removed methods as its
> > dummy implementation in test_model. A FIXME would be enough for now.
> > We should probably have a properties_changed method too.
> 
> Btw, activity_found should also send activity properties and
> participants.
> I wrote protocol for activity added/removed:
> http://wiki.laptop.org/go/XMPP_Component_Protocol#Added
> 

... and each time we send buddies jid (in  as participants and
in  announcements) Gadget should include buddy properties if the
user doesn't already have an view with this buddy (as then he already
knows about his properties).


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] review: Daf's view branch

2008-06-05 Thread Guillaume Desmottes
Le jeudi 05 juin 2008 à 12:40 +0200, Guillaume Desmottes a écrit :
> +class ActivityViewHandler(object):
> This class should have member_added and member_removed methods as its
> dummy implementation in test_model. A FIXME would be enough for now.
> We should probably have a properties_changed method too.

Btw, activity_found should also send activity properties and
participants.
I wrote protocol for activity added/removed:
http://wiki.laptop.org/go/XMPP_Component_Protocol#Added


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


[sugar] review: Daf's view branch

2008-06-05 Thread Guillaume Desmottes
Just few comments:


+class ActivityViewHandler(object):
This class should have member_added and member_removed methods as its
dummy implementation in test_model. A FIXME would be enough for now.
We should probably have a properties_changed method too.



+self.activity_views = {}
A comment explaining the type of the keys and values would be good.


I think you're right, we could stop to support multi actions in queries
(as you already dropped them in views)


In test_model.py you have some: #self.assertEquals(42, context) that
could be removed.


Same for  #self.assertEquals([activity2], found_log.


What's your test.py hack? Didn't we already merge the one making error
message more informative?


Except that looks good. I like how you refactored query/view parsing
code and the general design of views.


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] [PATCH] Refactor invites for 1-1 Chat (#6298)

2008-06-04 Thread Guillaume Desmottes
Le mercredi 04 juin 2008 à 17:08 +0200, Morgan Collett a écrit :
> The main code to review is at:
> http://dev.laptop.org/git?p=users/morgan/sugar;a=shortlog;h=6298 (3
> most recent patches).

As bundle_id is passed to both constructor, you could move it to
BaseInvite.__init__


Didn't read code carefully but InviteButton and InvitePalette still
contain lot of:

if shared:
  ...
else:
  # private


Maybe it would be worth to abstract these 2 classes too if possible?



G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] Preparing for the feature freeze

2008-06-04 Thread Guillaume Desmottes
Le mardi 03 juin 2008 à 14:33 -0400, Polychronis Ypodimatopoulos a
écrit :
> Guillaume Desmottes wrote:
> > Search queries will return a {Buddy,Activity}View object. This object
> > will have a Get{Buddies,Activities} method to retrieve the result of the
> > search, a "Changed" (or Added/Removed) signal to track changes and a
> > Closed method when user is not interested anymore by the result of the
> > search.
> >
> > Does it make sense to you? Suggestions are welcome.
> > I'll update http://wiki.laptop.org/go/Presence_Service_D-Bus_API with my
> > changes.
> >   
> I would suggest not returning objects on any of the dbus calls; this 
> makes it harder to go through and debug the code both in the presence 
> service and telepathy. We should try to keep it as simple as possible 
> wrt the messages that are exchanged between the presence service and 
> telepathy. The presence service currently offers a nice abstraction of 
> how telepathy works, but this abstraction is hindered by the fact the 
> the presence service returns telepathy objects.

PS won't return Telepathy objects but buddies and activities as it
always did. The {Buddy,Activity}Views returned in Telepathy won't be the
same as the one returned by PS. In the TP case, views contains handles,
in the PS case they contains buddy and activity objects (as when
GetBuddies or GetActivities methods are called on PS).



G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] Preparing for the feature freeze

2008-06-03 Thread Guillaume Desmottes
Le mardi 03 juin 2008 à 12:34 +0200, Marco Pesenti Gritti a écrit :
> > For now I'm focusing on PS API. If someone wants to work on the GUI side
> > when they are done that would be great.
> 
> What kind of API are you planning for the PS? Trying to understand how
> much work it will be to hook it up into the UI.

Probably something similar than the Gabble one. See
http://people.collabora.co.uk/~cassidy/spec-olpc-gadget.html#org.laptop.Telepathy.Gadget

Search queries will return a {Buddy,Activity}View object. This object
will have a Get{Buddies,Activities} method to retrieve the result of the
search, a "Changed" (or Added/Removed) signal to track changes and a
Closed method when user is not interested anymore by the result of the
search.

Does it make sense to you? Suggestions are welcome.
I'll update http://wiki.laptop.org/go/Presence_Service_D-Bus_API with my
changes.


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] Preparing for the feature freeze

2008-06-03 Thread Guillaume Desmottes
Le mardi 03 juin 2008 à 12:11 +0200, Marco Pesenti Gritti a écrit :
> On Tue, Jun 3, 2008 at 11:59 AM, Morgan Collett
> <[EMAIL PROTECTED]> wrote:
> > Gadget is a server side component for the jabber server that will
> > address the scalability issues by showing presence for only a subset
> > of those on the server. It will therefore allow many more on the
> > server at once.
> >
> > There will be PS and mesh view changes required - see Guillaume's
> > recent mail(s) to [EMAIL PROTECTED]
> 
> When is the backend planned to land?
> 

Well, this involves work in a lot of modules:
- the gadget component itself
- telepathy-gabble: new API's for search/random and protocol to talk to
Gadget
- sugar-presence-service: new API's using Gabble's search features
- sugar-toolkit: convenient wrapper for PS new API's
- sugar: GUI to perform searches, etc

Currently, most of the work has been done in Gadget and Gabble and I
recently started PS changes.

> What happens if we land only the backend without the search features?
> Do we only see a random number of buddies?

Yes, if sugar request these buddies (shouldn't be more complicated than
a D-Bus method call on PS).

I think that's a good idea to focus on random queries for now as it
doesn't require new UI and sugar changes should be pretty simple.

That's not a new feature from user pov but could allow us to deploy a
public jabber server without the shared roster hack and see how it
scales.


> How does it work from the UI code perspective? We set a filter and
> buddies which doesn't match the search disappear (as if they have had
> left)?

Don't know. I'm not a GUI expert, we are open to any suggestion.


> Is Collabora planning to do the UI side of it?
> 

For now I'm focusing on PS API. If someone wants to work on the GUI side
when they are done that would be great.

> Sorry, lots of questions :)

np :)


G.



___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


[sugar] Gadget's feature integration in Sugar

2008-06-02 Thread Guillaume Desmottes
Hi,

Daf and I are making good progress on Gadget, so that's a good time to
start to think about its integration in Sugar.

Basically, Gadget is a XMPP server component that should solve our
current scalability issues and drop the ugly "shared roster" hack.
I invite you to take a look on the "Use Cases" and "Design Goals"
sections of http://wiki.laptop.org/go/XMPP_Component_Protocol to have a
better idea of what Gadget is and which problem it tries to solve.

Here is a list of few points that should be discussed about their sugar
integration.

- We need GUI to perform buddy searches. Buddies can be searched using
their properties (color, key, jid).

- We also need GUI to perform Activity searches. Activities can be
searched using their properties (color, name, type, tags) or their
participants (based on their jid).

I guess these searches should be done directly from the mesh view. How
should we expose the different type of search in the GUI?

- As we intent to drop the shared buddy server hack, people won't see
all the buddies connected on the server anymore.
They'll see their friends, the result of the active searches and a
maximum of $N random buddies and $N' random activities.

Should we hardcode the value of this $N? Make it configurable from the
GUI? From sugar-control-panel (and so stored in a config file)?
Adapt it according the number of buddies already displayed on the mesh
view?

Once a search is performed, user will automatically received change
notifications from the result of the search until the "search
result" (called "view" in Gadget) is closed. Do we want to allow users
to keep more than one search result a time? If yes, we need GUI to close
views. If not, I'll guess that each new search will close the previous
one.

For privacy reasons, user can choose to not be indexed by gadget (so he
can't be found by other users). Do we want to expose this in the GUI? As
that's not a really common use case, I guess an option modifiable using
sugar-control-panel should be enough.


Suggestions are more than welcome.


Thanks,

G.


___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


[sugar] ANNOUNCE: sugar-presence-service 0.81.1 released

2008-05-21 Thread Guillaume Desmottes
The "I'm full of Glucose" release.

tar:
https://dev.laptop.org/pub/sugar/sources/sugar-presence-service/sugar-presence-service-0.81.1.tar.bz2


- No code change since 0.79.3, the point of this release is to sync
version number with Sucrose.


Regards,


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] review: gadget presence branch

2008-05-16 Thread Guillaume Desmottes
Le jeudi 15 mai 2008 à 21:57 +0100, Dafydd Harries a écrit :
> > +# FIXME: we should send presence to buddies subscribed to gadget. 
> > How?
> >  if self.debug:
> >  self.xmlstream.setDispatchFn(self.onElement)
> >  
> 
> I'm guessing your roster branch answers this question.
> 

yep

> > @@ -235,6 +236,9 @@ class GadgetService(component.Service):
> >  def presence(self, stanza):
> >  type = stanza.getAttribute('type')
> >  from_ = stanza.getAttribute('from')
> > +# remove the ressource
> > +jid = from_.split('/')[0]
> > +to = stanza.getAttribute('to')
> >  
> >  if from_ is None:
> >  return
> 
> Twisted has code for handling JIDs; let's use that.
> 
>   >>> from twisted.words.protocols.jabber import jid
>   >>> jid.JID('[EMAIL PROTECTED]/baz').userhost()
>   '[EMAIL PROTECTED]'
> 

Good catch fixed.



> Looks great otherwise. Please merge!
> 

merged.
Thanks for the review.


G.


___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] review: gadget buddy search code

2008-05-16 Thread Guillaume Desmottes
Le jeudi 15 mai 2008 à 20:33 +0100, Dafydd Harries a écrit :
> Ar 15/05/2008 am 15:04, ysgrifennodd Guillaume Desmottes:
> > Le mercredi 14 mai 2008 à 22:52 +0100, Dafydd Harries a écrit :
> > > > +# FIXME: add more types
> > > > +type_to_str = {str: 'str'}
> > > > +str_to_type = {'str': str}
> > > > +
> > > 
> > > We should check which types the buddy/activity interfaces support for
> > > properties, and test each of those types.
> > > 
> > 
> > Gabble supports the following types: str, bytes, int, uint and bool.
> > 
> > I started to write tests for parse_properties and properties_to_xml but
> > I encountered a problem.
> > Currently we store properties in a dict like {'key': (type, 'value')} as
> > {'color': (str, 'red')} for example.
> > 
> > But how should I store an uint as Python doesn't have an uint type?
> > Using dbus type? Or we could store the string representation of the type
> > instead of a python type ('str' instead of str).
> > 
> > And how should we store the value? Using the type-converted value (so
> > the numerical value for int/uint, True/False for bool, etc) or the
> > string version?
> 
> The only thing the value representation matters for is searching. Storing them
> as strings should be ok as long as there is only one string representation for
> each value.
> 
> I'm not sure that the representation of the type matters. We should do
> whatever is simplest. I suspect that might be storing the types as strings,
> but I'm not sure.
> 

As you said, the only purpose of these properties is for searching so
storing both values and types as string is the easiest solution.

I changed that and added support to uint, bool and bytes types.


> > +self.log("Ignore activity properties message from %s 
> > containing an invalid property"
> 
> This should be in the present tense ("Ignoring...") or the past tense
> ("Ignored..."). I think I prefer the former.
> 

fixed.

> Sure. But:
> 
> +class BuddyIqTest5(TestCase):
> +"""buddy multi query with two results"""
> 
> +class BuddyIqTest5(TestCase):
> +"""buddy query with an invalid property"""
> 
> Let's rename the second one to BuddyIqInvalidPropertyTest or something like
> that.
> 

done.

> Otherwise, go ahead and merge.
> 

merged, thanks for your comments


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] review: gadget buddy search code

2008-05-16 Thread Guillaume Desmottes
Le jeudi 15 mai 2008 à 21:41 +0100, Dafydd Harries a écrit :
> Ar 15/05/2008 am 20:33, ysgrifennodd Dafydd Harries:
> > Otherwise, go ahead and merge.
> 
> A couple of other nitpicks:
> 

both are fixed.

> > +class ParsePropertiesTest(TrialTestCase):
> ...
> > +class PropertiesToXmlTest(TrialTestCase):
> 
> These don't use any Trial features, so could just be unittest.TestCases.
> 
> > +try:
> > +parse_properties(properties)
> > +except PropertyTypeError, e:
> > +pass
> > +else:
> > +assert False, "should not be reached"
> 
> self.assertRaises is the idiomatic way to do this.
> 

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] review: gadget buddy search code

2008-05-16 Thread Guillaume Desmottes
Le jeudi 15 mai 2008 à 21:38 +0100, Dafydd Harries a écrit :
> Ar 15/05/2008 am 20:33, ysgrifennodd Dafydd Harries:
> > +class BuddyIqTest5(TestCase):
> > +"""buddy multi query with two results"""
> > 
> > +class BuddyIqTest5(TestCase):
> > +"""buddy query with an invalid property"""
> > 
> > Let's rename the second one to BuddyIqInvalidPropertyTest or something like
> > that.
> 
> Same applies to ActivityIqTest4.
> 

fixed.


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] review: gadget buddy search code

2008-05-15 Thread Guillaume Desmottes
Le mercredi 14 mai 2008 à 22:52 +0100, Dafydd Harries a écrit :
> > +# FIXME: add more types
> > +type_to_str = {str: 'str'}
> > +str_to_type = {'str': str}
> > +
> 
> We should check which types the buddy/activity interfaces support for
> properties, and test each of those types.
> 

Gabble supports the following types: str, bytes, int, uint and bool.

I started to write tests for parse_properties and properties_to_xml but
I encountered a problem.
Currently we store properties in a dict like {'key': (type, 'value')} as
{'color': (str, 'red')} for example.

But how should I store an uint as Python doesn't have an uint type?
Using dbus type? Or we could store the string representation of the type
instead of a python type ('str' instead of str).

And how should we store the value? Using the type-converted value (so
the numerical value for int/uint, True/False for bool, etc) or the
string version?


> > @@ -46,10 +50,25 @@ def parse_properties(elem):
> >  if type is None or name is None or value is None:
> >  continue
> >
> > -properties[name] = (type, value)
> > +try:
> > +properties[name] = (str_to_type[type], value)
> > +except KeyError:
> > +continue
> 
> We shouldn't just ignore failed conversions. We should throw an error, and
> make the caller return an error to the client. Perhaps the exception class
> would have some convenience code for generating the error stanza.
> 
Good idea. Implemented.


> > +def properties_to_xml(properties, elem):
> > +for key, (type, value) in properties.iteritems():
> > +try:
> > +str_type = type_to_str[type]
> > +except KeyError:
> > +continue
> > +
> > +property = elem.addElement((None, 'property'))
> > +property['type'] = str_type
> > +property['name'] = key
> > +property.addContent(value)
> > +
> >  class Room(object):
> >  def __init__(self, own_nick):
> >  self.own_nick = own_nick
> 
> Again, we shouldn't silently ignore errors. This lookup should never fail,
> because it would mean that we've stored invalid property data in the model.
> 
Right, fixed.


> >  @@ -118,19 +137,100 @@ class GadgetService(component.Service):
> >
> >   def iq_buddy_query(self, stanza):
> >   result = make_iq_result(stanza)
> >  +_query = stanza.firstChildElement()
> >   query = result.firstChildElement()
> >
> >  -for buddy in self.model.buddy_search({}):
> >  +results = set()
> >  +if len(_query.children) == 0:
> >  +# no buddy childs. We want all the buddies
> >  +results.update(self.model.buddy_search({}))
> 
> s/childs/children/.
> 
> Please put blank lines before blocks, for consistency.
> 
> Can we say "if _query.children:" instead? It's more idiomatic.
> 

fixed.


> >  +
> >  +for elem in _query.children:
> 
> I'm not sure we should support answering multiple queries in one IQ. I'm not
> sure if it does any harm, but I haven't seen other XMPP protocols allow it.
> 

Don't know, I implemented the protocol described on
http://wiki.laptop.org/go/XMPP_Component_Protocol



> > +if elem.name != 'buddy':
> > +continue
> > +found = None
> > +
> > +# jid search
> > +try:
> > +tmp = set([self.model.buddy_by_id(elem['jid'])])
> > +if found is None:
> > +found = tmp
> > +else:
> > +found.intersection_update(tmp)
> > +except KeyError:
> > +pass
> 
> The "if found is None:" seems strange, becuase "found" should always be None
> at this point in the code.
> 
fixed.


> There's too much code inside the try: clause. What lookup are we expecting
> might fail? If it's the elem['jid'] lookup, I'd prefer this approach:
> 

buddy_by_id can raise the exception too. I made this code clearer.

>   jid = elem.getAttribute('jid')
> 
>   if jid is None:
>   continue
> 
> > +
> > +# properties search
> > +for e in elem.children:
> > +if e.name == 'properties' and e.uri == ns.BUDDY_PROP:
> > +props = parse_properties(e)
> > +tmp = set(self.model.buddy_search(props))
> > +if found is None:
> > +found = tmp
> > +else:
> > +found.intersection_update(tmp)
> 
> Can we rename "tmp" to "buddies" or "results"?
> 
done


> > +
> > +if found is not None:
> > +results.update(found)
> > +
> > +for buddy in results:
> >  buddy_elem = query.addElement((ns.BUDDY, 'buddy'))
> >  buddy_elem['jid'] = buddy.jid
> > +properties = buddy_elem.addElement((ns.BUDDY_PROP, 
> > 'properties'))
> > +properties_to_xml(buddy.properties, properties)
> >
> >  return res

Re: [sugar] Volunteers/help for sugar/cerebro integration

2008-05-15 Thread Guillaume Desmottes
Le mercredi 14 mai 2008 à 12:23 -0400, Polychronis Ypodimatopoulos a
écrit :
> The integration can be done in either of these two ways:
> 
> 1) Create a new telepathy connection manager that will act as interface 
> between telepathy and cerebro. Some preliminary work already done by 
> Michael Stone [2].
> 

This way is a lot much saner. If you implement a new presence-service,
XO won't be able to connect to a school server (using jabber) anymore.
Furthermore, activities use also the Telepathy API (for tubes and chat
mainly) so you'll need it anyway.
Please don't break the abstraction layer.


G.

> 2) Add the necessary callbacks in cerebro that will allow it to act as 
> presence service to sugar directly [3]. Cerebro provides the necessary 
> functionality, but lacks several dbus callbacks.
> 



___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] [PATCH] Push get_buddy from Connect into sugar.presence (#6473)

2008-05-14 Thread Guillaume Desmottes
Le mercredi 14 mai 2008 à 15:58 +0200, Morgan Collett a écrit :
> In case it is a channel with channel specific handles...
> 
> if self.self_handle == cs_handle:
> # It's me, just get my global handle
> handle = self._conn.GetSelfHandle()
> 
> We either need to call GetSelfHandle regardless of knowing whether the
> group has channel specific handles, or we need to call GetGroupFlags
> regardless of whether it is my handle. Is either of those less costly?
> 

Right, I forgot self.self_handle could be channel specific too. My bad.

> > I'm wondering if it shouldn't be better to override watch_participants
> > (or add a new similar mechanism) returning directly buddies instead of
> > handles. Would it be possible/worth to completely hide handles and
> > always use buddies from the activity Pov?
> 
> There's a chance that some will want to use telepathy calls directly
> in the activity, in case we end up oversimplifying the collaboration
> API. You could make the same argument about the bus names... but if
> you think it's a good idea, provide a patch we can review :)

I don't know really, was just a random thought. I guess your patch is
good for now. We'll still be able to improve this API later if needed.


G.



___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] OLPC priorities for Sugar in the August release

2008-05-14 Thread Guillaume Desmottes
Le mercredi 14 mai 2008 à 11:48 +0200, Tomeu Vizoso a écrit :
> * Groups, models for groups (Peru, Hernan)
> 
> Is this groups in Sugar? Do we have some kind of requirements?

There are some discussions about groups here:
https://dev.laptop.org/ticket/4043


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] [PATCH] Push get_buddy from Connect into sugar.presence (#6473)

2008-05-14 Thread Guillaume Desmottes
Le mardi 13 mai 2008 à 17:03 +0200, Morgan Collett a écrit :
> This subclasses TubeConnection to make a version (SugarTubeConnection)
> that can resolve a handle to a Buddy.
> 
> Patches are for sugar(.presence) and Connect.


+handle = self._conn.GetSelfHandle()

Why call the GetSelfHandle() D-Bus method as you already have the
handle?
handle = self.self_handle
should be enough


+# deal with failure to get the handle owner
+if handle == 0:
+return None
I think this should always be done, not only in the else branch.


I'm wondering if it shouldn't be better to override watch_participants
(or add a new similar mechanism) returning directly buddies instead of
handles. Would it be possible/worth to completely hide handles and
always use buddies from the activity Pov?


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] Shared Terminal Idea

2008-05-13 Thread Guillaume Desmottes
Le lundi 12 mai 2008 à 13:25 -0400, Benjamin M. Schwartz a écrit :
> I think shared Terminal would be very cool.  A lot of other people seem to
> think so too.  It would be a fun way to learn command-line stuff, by
> sharing a prompt with a remote friend.
> 

Definitely. Shared terminal could be a killer feature. I'd like to see
something similar in GNOME using gnome-terminal and Empathy. Most of the
work could probably be reused.


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] f8+ sugar-jhbuild telepathy-gabble problem

2008-05-09 Thread Guillaume Desmottes
Le vendredi 09 mai 2008 à 12:34 +0200, Marco Pesenti Gritti a écrit :
> On Fri, May 9, 2008 at 12:07 PM, Guillaume Desmottes
> <[EMAIL PROTECTED]> wrote:
> >
> > Thanks to the help of Frédéric Peters (jhbuild upstream maintainer) I
> > found the reason of this.
> > I pushed a fix to
> > https://dev.laptop.org/git?p=users/guillaume/sugar-jhbuild;a=shortlog;h=fix-fedora8
> >
> > Waiting review from Marco before merging it to HEAD.
> 
> Please push. In general everyone with access to the sugar-jhbuild
> module should feel free to push changes to sysdeps (just ask in the
> case that you are unsure).
> 

pushed.

Martin: could you retry to build telepathy-gabble with an updated
sugar-jhbuild please?


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] f8+ sugar-jhbuild telepathy-gabble problem

2008-05-09 Thread Guillaume Desmottes
Le vendredi 09 mai 2008 à 11:47 +0200, Guillaume Desmottes a écrit :
> Le jeudi 08 mai 2008 à 14:10 +0100, Martin Dengler a écrit :
> > Hi sugar@,
> > 
> > I'm having a problem with sugar-jhbuild that's somewhat new:
> > loudmouth is 1.2.3 on a F8 + updates, but sugar-jhbuild now requires
> > it to be 1.3.2:
> > http://cree.xades.com/~martin/src/xo-sugar-jhbuild/telepathy-gabble.html#configure
> 
> 
> That's weird, loudmouth is supposed to be built in sugar-jhbuild as a
> dependency of telepathy-gabble.
> 
> I tested on my box and loudmouth isn't build by sugar-jhbuild. You can
> easily check that running:
> ./sugar-jhbuild list | grep loudmouth
> 
> I'm investigating why.

Thanks to the help of Frédéric Peters (jhbuild upstream maintainer) I
found the reason of this.
I pushed a fix to
https://dev.laptop.org/git?p=users/guillaume/sugar-jhbuild;a=shortlog;h=fix-fedora8

Waiting review from Marco before merging it to HEAD.


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] f8+ sugar-jhbuild telepathy-gabble problem

2008-05-09 Thread Guillaume Desmottes
Le jeudi 08 mai 2008 à 14:10 +0100, Martin Dengler a écrit :
> Hi sugar@,
> 
> I'm having a problem with sugar-jhbuild that's somewhat new:
> loudmouth is 1.2.3 on a F8 + updates, but sugar-jhbuild now requires
> it to be 1.3.2:
> http://cree.xades.com/~martin/src/xo-sugar-jhbuild/telepathy-gabble.html#configure


That's weird, loudmouth is supposed to be built in sugar-jhbuild as a
dependency of telepathy-gabble.

I tested on my box and loudmouth isn't build by sugar-jhbuild. You can
easily check that running:
./sugar-jhbuild list | grep loudmouth

I'm investigating why.



G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] [PATCH] 1-1 Chat (non-Sugar Jabber clients #6298)

2008-05-07 Thread Guillaume Desmottes
Le mercredi 07 mai 2008 à 10:03 +0200, Morgan Collett a écrit :
> I've attached patches for Sugar and Chat that handle incoming XMPP 1-1
> connections, from a non-Sugar Jabber client.
> 
> It's a bit of a proof of concept, because although it works there are
> some issues that need improving - so please review and comment... I'm
> looking for input from Marco/Tomeu, Eben, Daf/Guillaume...
> 
> * From a Jabber client registered on the Jabber server I initiate a
> chat with the Buddy.
> * Presence Service sends private-invitation to sugar.presence and then
> to the shell.
> * The signal has the Telepathy channel for this 1-1 connection which
> needs to get to Chat.
> * I'm (ab)using activityfactory.create_with_uri to launch Chat with
> the Telepathy channel in the metadata.
> * That makes Chat launch magically. That violates the requirement that
> the user initiate the activity.
> * I'm using json (probably badly?) to pass the two strings identifying
> the Telepathy channel.
> * The first message from the non-Sugar client (which initiates the
> connection) gets dropped somewhere, and only subsequent messages get
> through to Chat.


I guess you should be able to got this message using
channel[CHANNEL_TYPE_TEXT].ListPendingMessages()
See
http://telepathy.freedesktop.org/spec.html#org.freedesktop.Telepathy.Channel.Type.Text
We should probably call it in set_received_callback()

Btw, it seems we never acked received messages. Is that intentional?
According the spec each message should be acked when they are displayed.


> * Presence Service sends private-invitation on both CHANNEL_TYPE_TEXT
> and CHANNEL_TYPE_STREAMED_MEDIA (which should go to video chat
> eventually). When we have agreed on how to handle Chat I'll figure out
> how to differentiate them and send the media one to video chat.

You can find the type of the channel by calling 
GetChannelType() on the channel object.

Or maybe we could just add the channel type in the signal.

> It has also been suggested that the incoming chat appear as an
> invitation. I had a look but couldn't yet figure out how best to
> represent something that is not an activity, does not have colors, and
> is not a room on the server. Input appreciated.
> 

I agree, displaying an incoming chat as an invitation is much more saner
than automatically launch Chat.


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] E-mail, XMPP, and non-Sugar identities

2008-05-02 Thread Guillaume Desmottes
Le mercredi 30 avril 2008 à 17:57 -0400, Benjamin M. Schwartz a écrit :
> It seems that many people would prefer if non-Sugar users could be
> integrated into the interface.  For example, it has been suggested that
> Sugar should provide a mechanism for enabling text chat with non-Sugar
> Jabber users.  Clearly, they cannot participate in arbitrary Sugar
> activities, but perhaps they can send text or files, and stream audio or
> video.  I believe that the Telepathy developers have thought a great deal
> about integrating with standard Jabber when possible.
> 

The communication layer (XMPP and XMPP link local (used by Salut)) is
ready for that. For example, last week I established an audio/video call
between my XO running the video-chat activity and my desktop running
Empathy.

Most of the work is in Sugar:
- Chat should properly handle 1-1 chats and not activity mucs (#6298)
- Sugar should offer a way to add not OLPC Friends (by entering their
JID)
- Sugar should also ask to the user if he accepts a subscription request
- We should display not OLPC buddies (== without key) in the mesh view.

Et voilà! We'll be able to communicate with not OLPC Jabber and XMPP
link local users. For bonus point, we could even optionally use other
Telepathy connection managers (trivial presence-service work) and gain
support of others protocols for free. As MSN (telepathy-butterfly), IRC
(telepathy-idle), SIP (telepathy-sofiasip) and all the protocols
supported by Pidgin (telepathy-haze).
That's the whole point of our Telepathy abstraction. You implement your
UI once and gain support of a lot of protocols just by installing new
connection managers.


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] request for help - how to restart gabble ?

2008-04-14 Thread Guillaume Desmottes
Le samedi 12 avril 2008 à 15:18 -0400, Chris Ball a écrit :
> Hi Mikus,
> 
>> Is re-starting Sugar (ctl-alt-erase) the only "approved" way to
>> re-start gabble, or are there commands which would do it without
>> having to re-start the currently running Sugar ?
> 
> I believe the gabble/salut logic is triggered by the network interfaces
> going up, so clicking on your AP again in the mesh view (to force a
> reconnect) should trigger it.

Yeah you can do that.
The other way is just to wait a bit as Gabble will constantly try to
connect to the jabber server using an exponential backoff (which is
limited to ~ 5 minutes IIRC).


G.


___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] Automatic transfer/update of activities on the mesh (Was: Sharing behavior in the core Read activity)

2008-03-26 Thread Guillaume Desmottes
Le mardi 25 mars 2008 à 16:02 -0400, Benjamin M. Schwartz a écrit :
> This works, and will work for the proposed case.  For the future, I see
> file transfer as precisely the sort of thing that should be handled
> internally to Telepathy.  Perhaps Telepathy should implement XEP-0234
> (file transfer)[2] or even XEP-0214 (file sharing)[3].
> 

We have a draft of spec for file transfer (but it will be probably
modified) and a Salut branch implementing it. So that's definitely
something that could be done at some point.


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


[sugar] The futur of the mesh view

2007-12-04 Thread Guillaume Desmottes
Hi,

We recently started the design of a futur XMPP server component. It
should solve the scalability problems with current implementation and
will avoid to display hundreds of buddies and activities on the mesh
view, making it unusable.

We'd like to know what are the exact plans from an use cases point of
view and discuss few points about that.

- Friends will always be displayed in the mesh view when they are
online.  Do we want to show: them, them and their current activity, them
surrounded by all their activities, their current activity surrounded by
everyone in that activity?

- Do we want any extra information for the friends screen, for example
your friend surrounded by all of his activities?

- Users will be able to search for buddies (using search keys as color,
alias, name, email, etc.). The result of this search will be displayed
on the mesh view. Same question, what about their activities? Should we
display them too?

- Kids will also perform activity searches (using keys as name, type,
color, maybe participants?). Here again, the result will appear on the
mesh view. Do we plan to display buddies who are in these activities
too?

- Which kind of search method will be proposed in the GUI? Should we
support different options in our search protocol (as substring,
equality, case insensitive,...)?
How do we plan to distinguish a search for users from a search for
activities? Should we show all matching activities and all matching
buddies?

- Currently each activity has an globally unique identifier. This ID
make sense in Sugar as it have to identify shared and not shared
activities. But it's redundant in the PS and CM's (Gabble and Salut) as
each shared activity can also be identified using its muc's jid. Would
it be possible to make activity ID's *locally* unique? So we could
simplify/sanitize our XMPP protocol and Telepathy API. It seems activity
ID's are used when restoring shared instance but it's not clear if it
should assume these ID's are global or not.


You can find more explanations about the current stage of our
investigations on http://wiki.laptop.org/go/XMPP_Extensions#Use_Cases
and http://wiki.laptop.org/go/XMPP_Component_Protocol .
Please tell us if you see wrong assumptions or missing use cases.


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


[sugar] new tubes API

2007-08-29 Thread Guillaume Desmottes
Hi,

Since yesterday, sugar jhbuild uses Gabble and Salut trial 3 branches.
Theses branches implement the latest spec tubes and so provide a new API
for activities.
See
http://telepathy.freedesktop.org/spec.html#org.freedesktop.Telepathy.Channel.Type.Tubes

Changes are mostly trivial for D-Bus tubes and CM should be backward
compatible.
Basically:
OfferTube -> OfferDBusTube
AcceptTube -> AcceptDBusTube
GetDBusServerAddress -> GetDBusTubeAddress

Sugar, Connect, Write, Memorize and Web have been updated to use this
new API. If I forgot an activity please tell me and I'll write a patch
for it.

Futur trial-3 builds should be sure to ship the new version of these
modules.


Of course, please tell us if you find any regression due to these
changes.


G.
___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar


Re: [sugar] Tubes message dropping

2007-07-23 Thread Guillaume Desmottes
Le samedi 21 juillet 2007 à 21:02 +0100, Simon McVittie a écrit :
> On Sat, 21 Jul 2007 at 13:50:27 +0200, J.M. Maurer wrote:
> > To the Tube guys:
> > 
> > Do you drop messages on your XMPP server? An AbiCollab packet that
> > contains an image never gets sent over, resulting in documents getting
> > out of sync (in fact, the PS seems to disconnect the buddy altogether
> > from the Write session).
> 
> Without reading the source for Gabble: It's possible that (a) we don't
> fragment large Tubes messages into multiple XMPP-level messages, and (b) the
> XMPP server we're using fails on large messages. I'd have to check the
> source and XEPs to be sure. If this is the case, a workaround would be to
> avoid sending very large single messages in user apps, and the correct fix
> would be to fragment the D-Bus message into multiple XMPP messages in Gabble.
> 
> Guillaume: you touched it last, I think. Are we likely to have this bug?
> 

Right, currently we don't fragment large messages and make the
assumption "one IBB message == one tube message".
So, it's probably the server who reject too big IBB stanzas.

We could modify our IBB implementation to fragment big stanzas but that
would make the code sensibly more complicated. Furthermore I'm not sure
the server will allow us to send N MAX_SIZE stanzas consecutively. IBB
is really not designed to send big datas (XEP suggests 4096 bytes as max
payload size).
A quick workaround could be to raise the allowed stanza max size in the
server config.

Oth, I can't see how to easily implement MUC D-Bus tubes without using
IBB, so maybe at some point we'll have to implement messages
fragmentations anyway.


G.

___
Sugar mailing list
Sugar@lists.laptop.org
http://lists.laptop.org/listinfo/sugar