Re: Avahi optimisations

2008-02-26 Thread Simon McVittie
On Tue, 26 Feb 2008 at 06:58:10 -0500, Ivan Krstić wrote:
 On Feb 26, 2008, at 5:48 AM, Morgan Collett wrote:
  actually we are normally using b64 encoding so
  that brought it down to 28 bytes. Using SHA-256 it's 44 bytes in the  
  TXT
  record.
 But _why_ are we encoding at all? TXT RDATA is one or more character  
 strings, which are each a length octet followed by up to 255 arbitrary  
 characters treated as a binary string. Am I misremembering the RFC?

You're correct, and I've replied as such to the Trac ticket. Can we move
any further discussion there?

Simon
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: python activities startup

2008-02-07 Thread Simon McVittie
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On Wed, 06 Feb 2008 at 23:06:19 -0500, Michael Stone wrote:
 Next, according to dbus-python's dbus/_dbus.py, the SessionBus returned
 when you call SessionBus() is cached in 
 
   Bus._shared_instances[BUS_SESSION]

This is not an API guarantee; neither is it API at all. I accept no
responsibility if the entire platform mysteriously crashes after a
dbus-python upgrade...

It ought to be sufficient for Rainbow to call close() on the SessionBus
after forking, but before executing the target code. This should remove it
from _shared_instances automatically, causing subsequent calls to SessionBus()
to create a new instance, although that code-path is not well tested and you
might need some patches or a newer version of dbus-python.

A better solution would be for Rainbow to avoid SessionBus() entirely,
and instead use an instance of the superclass, dbus.bus.BusConnection. This
does not have the weird caching behaviour at all (one call to the
constructor = one instance = one D-Bus connection). The code that gets run
after forking is still free to use the shared SessionBus.

This may require some care in the libraries that Rainbow uses - they
should all be able to accept a BusConnection argument rather than
implicitly using the shared SessionBus, but they don't necessarily get
this right. Libraries that can only use the shared SessionBus should
probably be considered buggy anyway, though.

Simon
-BEGIN PGP SIGNATURE-

iD8DBQFHqzX8WSc8zVUw7HYRAg6uAJ0XPz2C0az/DQ1XCAqNXZokzgFpeACdEfT3
MCpT4HahnUjTgG/rN1UFELw=
=zVsd
-END PGP SIGNATURE-
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: python activities startup

2008-02-06 Thread Simon McVittie
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On Wed, 06 Feb 2008 at 10:13:23 -0600, Klaus Weidner wrote:
 Would it be feasible/helpful to use the uncore approach used by Emacs?
[...]
 Of course, any initialization done initially must not depend on external
 state, so for example any connections to the X server or other network
 connections would need to be delayed

D-Bus connections, too. If a process forks or does a core/uncore cycle after
opening a D-Bus connection (including, but not limited to, any call to
dbus-python's dbus.Bus(), dbus.SessionBus() etc.), chaos is likely to ensue.

Regards,
Simon
-BEGIN PGP SIGNATURE-

iD8DBQFHqe2ZWSc8zVUw7HYRAhKIAKDFXV5n2QKZeBeTW1rxL1G3bHo9SwCghprv
ChdeTcKOMpYXdzdxM1fFXHc=
=Bb4Z
-END PGP SIGNATURE-
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: coping with lost connectivity (was: mesh portal discovery)

2008-01-13 Thread Simon McVittie
On Sat, 12 Jan 2008 at 12:00:02 -0500, Benjamin M. Schwartz wrote:
 This is precisely what I am saying.  Telepathy should only register a 
 disconnect
 if there is no way to route between two XOs.  The mesh system should be 
 designed
 so that moving about within the mesh, or handing off between Salut and Gabble,
 or switching from one internet-connected wireless network to another, does not
 cause a Telepathy disconnect.

For the record: Telepathy, which is a standard API used on OLPC and elsewhere,
does not and will not do this. A Telepathy Connection object represents a
connection (e.g. a Gabble connection represents a TCP connection to the
server) and we're not going to mangle the API to behave otherwise.

You're right that a possible solution for activities' networking would
be for some lower layer to paper over the cracks - Telepathy is the
wrong layer to be doing this, but the Presence Service could do it, or
so could a library in the sugar. hierarchy.

However, each activity is fundamentally going to need a way to sync its state
on initial connection; for at least the medium term, as Sjoerd said, we propose
that the same mechanism be used to resync after connectivity loss.

If we have enough developer time to be able to work on library code for
activities' networking, it's likely that the API will involve an
activity-supplied resync callback that's called when initially joining
an activity, and when connectivity is regained after a connection loss.

 In each of these cases, the path between XOs
 remains routable, with a gap of at most a few seconds.

I'm not convinced this is even technically feasible, given the
constraints of the quality of the underlying network (if the packets
aren't arriving, there's nothing we can do about it). It's certainly a
much lower priority right now than making the servers scale properly.

Many of Sjoerd's bugfixes to Salut have been to do with detecting and
signalling loss of connectivity - not in the sense of I lost my IP
address, but in the sense of I'm sending packets to Fred and he's not
acknowledging any of them, so either he's not receiving them or I'm not
receiving the acknowledgements. No amount of programming will fix
packets just not turning up, so the only improvements we can bring here
are by tweaking the trade-off of bandwidth use vs timely error recovery.

This suggests that however much we can improve the API, activities will still
have to be able to deal with situations where other users fall off the
network, in a more or less graceful way - and if you can do that, then you
can use the same mechanisms to resync after connectivity changes, in the way
that Sjoerd suggests.

We can probably never make it entirely transparent, because however
quick it becomes to reconnect after connectivity loss, you can't
guarantee that you haven't lost messages; and in a message-passing
system, as soon as you can't make that guarantee, the only way back to a
consistent state is to ask someone else what's going on, which is exactly
the resync I'm talking about.

Simon
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: mesh portal discovery

2008-01-10 Thread Simon McVittie
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On Wed, 09 Jan 2008 at 22:17:18 -0500, John Watlington wrote:
 We have a presence service which  
 provides a way for P2P applications to find
 one another, even after the IP changes.

Presence Service isn't magical. If a laptop's IP address changes, in the
link-local backend (Salut) this will most likely appear as a disconnect +
reconnect (and the user will leave all shared activities they were currently
in). This is somewhat unavoidable, but if it's a hard requirement that Salut
do its best to survive IP addresses changing, file a bug against
telepathy-salut.

In the server-based backend, an IP address change *will* cause a
disconnect and reconnect. This is definitely unavoidable, since XMPP
uses a long-lived TCP connection to the server.

Simon
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFHhd6wWSc8zVUw7HYRArqcAKCsl70pz9HTAefk05uUulh+9NJzmgCfWzZX
sBzd9bWu/1RpvBi+GGTnIfk=
=0pb8
-END PGP SIGNATURE-
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: server-to-server communication (was: A jabber hosting offer)

2008-01-06 Thread Simon McVittie
On Sat, 05 Jan 2008 at 22:01:03 -0700, drew einhorn wrote:
 If we are going to have small local communities instead of one big one,
 the we need to be able to contact multiple jabber servers

The underlying protocol of the server-based collaboration is XMPP. In
XMPP, you never need to connect to more than one server unless
you need more than one identity (e.g. personal and work addresses) -
servers communicate among themselves to forward their users' messages, just
like e-mail (server federation in XMPP jargon).

Server federation is a high priority as a future feature, but the current
Activity protocol doesn't scale beyond one smallish server, because of the
Shared Roster hack. We have people working on a replacement Activity protocol
involving a server component that acts as an activity registry, that can
work correctly across federated servers, and doesn't require that everyone is
on everyone's roster (buddy list) at the XMPP level (this is the Shared
Roster hack that causes us so much trouble in both ejabberd and Openfire).

In principle, once we get a scaleable activity protocol, (a) we'll be
able to fit many more XOs on one server, and (b) there'll just be one
big worldwide community (school servers can become part of the existing XMPP
network, which includes e.g. jabber.org and Google Talk) and kids will be
able to add friends on other servers. Obviously, there are UI and
privacy issues to be solved before we open up connectivity between
servers, but it's definitely the plan.

So, in summary: yeah, we're on it :-)

Regards,
SMcV

(no longer working on OLPC myself, but previously part of the Collabora
OLPC team)
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: [PATCH] [XoIRC] Make default nicks more meaningful (#5385)

2007-12-28 Thread Simon McVittie
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On Sat, 22 Dec 2007 at 18:36:49 -0600, Phil Bordelon wrote:
 By default, XoIRC uses the username when another nick is not
 provided.  Alas, for every XO, this is 'olpc'.  This makes for
 rather a mess in the IRC channels.
 
 This patch instead generates a more-meaningful nick:
 
 * It takes up to 11 alphabetic characters from the user's Sugar
   nick;
 * it appends a hyphen; and
 * it adds the last four hexadecimal digits of the MD5 hash of
   the user's public key.

If you instead chose the *first* few hex digits of the *SHA-1* of the user's
public key, it'd match the beginning of the XO's default userIDs in the normal
activity sharing/chat mechanism, which may be useful if you're trying to sort
out network issues.

In the XMPP/Jabber backend, the account Sugar currently tries to create is the
hex SHA-1 of the public key, plus @, plus the server name. In the
link-local (Bonjour) backend, Sugar uses the first few hex digits of
the SHA-1 of the public key (I forget how many - I think it's 6 or 8?)
plus @ and the XO's hostname (which defaults to xo-11-22-33 if the MAC
address is xx:xx:xx:11:22:33).

Simon
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: OpenPGP key: http://www.pseudorandom.co.uk/2003/contact/ or pgp.net

iD8DBQFHdPiaWSc8zVUw7HYRAuxnAKCOqP2SNxN834x18t2MxVdQ+8cdowCfWsEv
13CP6SDIgcKyGgYjc6zrzyI=
=9l2p
-END PGP SIGNATURE-
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Fake mesh over IP.

2007-12-08 Thread Simon McVittie
On Wed, 05 Dec 2007 at 11:36:08 +0200, Jani Monoses wrote:
 Is there an easy way of using salut on the regular (non-mesh) wifi 
 interface? That would cover only laptops on the same LAN and be suited 
 for a school laboratory or a household.

Join an ordinary wifi access point and this will happen. (This is how
Salut is most often tested, in fact.)

Simon
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Active activities as Widgets

2007-11-30 Thread Simon McVittie
On Fri, 30 Nov 2007 at 07:51:38 -0500, Eben Eliason wrote:
 I'm not sure that a multi-way video conference is even
 feasible yet.

It's certainly not in the short term - the Telepathy and Farsight frameworks,
and the underlying protocols they currently use (Jingle), only support 1-1
audio/video calls at this point, and we'd need a lot of API and protocol
design work to even start on this.

Whenever we've talked about video-conferencing in the office, our VoIP
people's opinion has been that in practice we'd probably also need a (fairly
hefty) server to multiplex the streams for us, which doesn't work so well in
the OLPC use-case anyway.

(disclaimer: I might be wrong, opinions might have changed; I'm not a
VoIP hacker myself)

Simon
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: when an xo loses connection, how long does it take to disappear from other's neighbor view?

2007-11-08 Thread Simon McVittie
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On Wed, 07 Nov 2007 at 17:49:52 -0500, Eben Eliason wrote:
 Just a mention, since this thread is getting a lot of attention. There
 is an added visual element which should be in play here, according to
 the design.  There should be an intermediate state before XOs
 disappear from the view, as outlined in:
 
 http://dev.laptop.org/ticket/3657

As outlined in that bug, this has nothing to do with the Telepathy
backends and PS, it's just a layout/presentation tweak in the Sugar
shell (and indeed, the bug is assigned to sugar, not presence-service).

Getting more information from the network, via Telepathy and PS, to the shell
would be necessary to take it beyond what you suggest in comment#2, but
is not feasible in the short term (i.e. Update.1).

Simon
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: OpenPGP key: http://www.pseudorandom.co.uk/2003/contact/ or pgp.net

iD8DBQFHMukAWSc8zVUw7HYRAtF/AKDlmpJsI08JeWrYlebdtGHovF4oSgCfeEAV
ZIXr8UwO6guqBRbkbvlVivw=
=dRfa
-END PGP SIGNATURE-
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: when an xo loses connection, how long does it take to disappear from other's neighbor view?

2007-11-08 Thread Simon McVittie
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On Wed, 07 Nov 2007 at 13:36:45 -0500, Giannis Galanis wrote:
 I can definitely try to arrange this. But, can you please send me the
 tarball to test it in the mean time?

Will do.

 I don't think it's feasible to implement correct handling of PS restarts in
  sugar.presence for Update.1, so unless the release engineering team
  specifically tell me to, I won't be addressing that bug until a later
  release.
 
 Ok, i will reassign the bug to presenceservice. As long as restarting sugar
 works, we can stick to that for now.

No, it's not a Presence Service bug, it's a Sugar bug (the sugar.presence
module is part of Sugar, and it's that module that will have to be changed).
Please assign to component Sugar, with owner smcv or morgs, and keep the
'collaboration' keyword (we use that to keep track of collaboration-related
bugs in other people's components).

 $getent hosts jabber.laptop.org
  2001:4830:2446:ff00:201:6cff:fe07:68ec jabber.laptop.org   -
 frequent reply
  18.85.46.41 jabber.laptop.org  --rare reply
 
 $ping jabber.laptop.org
  PING jabber.laptop.org (18.85.46.41) 56(84) bytes of data.
  64 bytes from jabber.laptop.org (18.85.46.41): icmp_seq=1 ttl=63 time=
 67.4 ms
  ...
 
 $telnet jabber.laptop.org 5222
  blabla... connected
 hello
  replied with an xml packet with xml-not-well-formed included
 
 so it seems that it is a PS issue. Perhaps it is not waiting long enough, or
 doesnt make enough tries when trying to connect. I have reassigned the bug
 to presenceservice.

Was all this done on a machine exhibiting the failure you mention?

PS makes an unlimited number of connection attempts, with a short
delay between each one (we should probably change this to use an
exponential backoff process so the delays get longer as you're offline
for longer, up to a maximum of perhaps 10 minutes).

 What I meant here is, Does the PS check if jabber server is accessible, and
 then runs telepathy-gabble?, or this is one of the tasks of
 telepathy-gabble?, which as I see you replied to

Like I said, the PS doesn't check whether the server is accessible, it
just optimistically tries to connect anyway. I believe this is the right
thing to do.

 have you tried to check connecting to gabble with the laptops available
 there? Does it work fine?

Not recently with XOs, I must admit (downloading filesystem images takes
a while) but it's always worked fine from my jhbuild.

 Perhaps you can connect to an XO here with ssh, and debug real time what is
 exactly happening.

Talk to me on #sugar when you have an Internet-accessible XO that's
exhibiting this problem. I'm smcv on IRC.

 it was suggested (i think bug 4700) that it is possible that the jabber
 server might have a limit in number of users. Is this possible?

It's possible, but it's always worked for me...

Simon
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: OpenPGP key: http://www.pseudorandom.co.uk/2003/contact/ or pgp.net

iD8DBQFHMtxBWSc8zVUw7HYRAj3fAJ95oDyvE30EXR3UP4/muZdWtbAE3ACggXbS
EEhhwpa+vAW+7uwvuIMkK/g=
=uOn0
-END PGP SIGNATURE-
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Compiler optimization for Geode, migrating to F8, build system

2007-11-06 Thread Simon McVittie
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On Mon, 05 Nov 2007 at 15:13:39 -0500, Bernardo Innocenti wrote:
 Yes.  The problem is that building a package or two in a separate
 environment is feasible, but rebuilding a whole distribution from
 scratch is *hard*.  It requires you to install and configure local
 copies of pilgrim, mock, createrepo, yum...

If this sort of thing is of interest to people, it's likely to be worth
examining how Debian does it - there are regular efforts to rebuild all
of Debian, usually for mass-bug-filing purposes (e.g. filing bugs
against all packages that don't build correctly with a newer version
of gcc, so that those bugs can be fixed before the newer version becomes
the default).

Because of Debian's decentralized nature, much of its infrastructure is
in a form that can be used to set up third-party repositories without
any particular permission or help from Debian itself.

In particular, Debian's debootstrap package (used to construct a minimal
chroot with a particular version of Debian) is so useful that it was
adopted for use as the first stage of the official installer (the
installer now uses a C reimplementation, cdebootstrap, but the principle
is the same), and the schroot and sbuild packages (used to set up a
chroot, and build packages in a chroot with automatic installation of
build dependencies, respectively) are also very well constructed.

http://buildd.debian.org/ runs the official package autobuilders, but
there are a number of third-party clones running the same software, such
as http://experimental.ftbfs.de/.

Simon
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: OpenPGP key: http://www.pseudorandom.co.uk/2003/contact/ or pgp.net

iD8DBQFHMEtTWSc8zVUw7HYRAn/oAJ4nPq/cM9jWfuzBwWmpgmN6F78KaACgr26O
dt2azi6/rgiRedVIrPQy7fI=
=2eAt
-END PGP SIGNATURE-
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: when an xo loses connection, how long does it take to disappear from other's neighbor view?

2007-11-06 Thread Simon McVittie
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

In reply to your previous mail, iff means if and only if. It's often
used by mathematicians.

On Tue, 06 Nov 2007 at 03:23:39 -0500, Giannis Galanis wrote:
 What does proper notification mean? Which are the cases that it happens?

If Salut is explicitly asked to disconnect, it will tell Avahi to delete
all its mDNS records (this actually consists of re-sending all the
records it was advertising, with the Time To Live set to 0 seconds).
This is sometimes referred to as a goodbye packet. See
http://files.multicastdns.org/draft-cheshire-dnsext-multicastdns.txt
section 11.2 Goodbye Packets.

The only time we'll currently do this is when switching off Salut because
Gabble has connected successfully.

 Probably this is not if an XO moves slowly to a place with poor
 connectivity.

This is never done in response to network conditions - we can't know that
we've lost network connectivity until it's too late.

If the Time To Live on our mDNS records expires, that should have the same
effect; however, as Sjoerd explained, we currently ignore that, because
the 1CC mesh network is apparently unstable enough that the TTL
sometimes expires even for laptops that are actually present.

 In the case of a temporary(short) disruption of connectictivity, how much
 time does it generally take for it to return? You mentioned that in the past
 XOs were appearing  and disappearing constantly. This implies that the
 common drop of connectivity is in the scale of few seconds.

You tell me! :-) I don't have enough XOs to replicate the conditions of
a large mesh network like 1CC, so I can't comment on packet loss rates.
Perhaps Dan Williams (who used to maintain Presence Service) could help
you.

 If it is lost
 for more than a few minutes, than it is not bad for the XO to leave and
 return.  So I believe that 1h or even 10min are too long timeouts.

I believe we're currently using Avahi's default timeouts, which are
those recommended in the mDNS draft (linked above). If I'm right about
that, then we're using 120 second TTLs for the SRV and A records.

Assuming Salut and Avahi follow the draft's recommendations, this means
that for the records representing activities, buddies and laptops, if we
haven't seen an annoucement of a particular record, we will:

- - re-query after 96 - 98.4 seconds;
- - if no reply, re-query after 102 - 104.4 seconds;
- - if no reply, re-query after 114 - 116.4 seconds;
- - if no reply, assume the record has vanished after 120 seconds.

(In each of the ranges given for the re-queries, the exact time is
chosen at random, to avoid simultaneous queries from everyone in the
network.)

The timeout is reset as soon as we see any announcement of a record.

The only ones whose disappearance matters are the SRV and A records - if
a TXT record fails to disappear when it shouldn't, we don't really care.
TXT records have a substantially longer timeout (the draft recommends 75
minutes).

 There are a couple more things I would like to address:
 
 1. Is there a way to restart the presence service? In that way we can
 resolve a weird state. Will killing restarting the porcess work?

Only if client code that accesses the PS is amended to cope with this
(I just filed #4681 to represent this). Until #4681 is closed, if the PS
was restarted, nothing would work - use Ctrl+Alt+Backspace to restart all of
Sugar. Please see the bug for more details or to reply.

 2. At what point in the source code, the presence serivce
 i.will try to connect to the jabber server?
 ii. run gabble?

I'll answer (ii.) first. Gabble is automatically run by the session bus
(dbus-daemon) via service activation, the first time the Presence Service
uses it, if it isn't already running. So there is no explicit code in the PS
to run Gabble.

OK, now (i.):

When Network Manager indicates that we have a valid IP address, we run
the _init_connection method of the ServerPlugin instance. If the Gabble
connection fails, we schedule a timer (currently 5 seconds) and retry
running _init_connection when the timer runs out. (classes
TelepathyPlugin and ServerPlugin, methods _init_connection,
_reconnect_cb, _could_connect, _handle_connection_status_change.)

What _init_connection does is: If there's already a Gabble connection and it's
connected, it'll be used. (class ServerPlugin, method
_find_existing_connection). Otherwise we make a new connection (method
_make_new_connection).

ServerPlugin (src/server_plugin.py) inherits from TelepathyPlugin
(src/telepathy_plugin.py) so some of the methods I mentioned are defined
in TelepathyPlugin, some in ServerPlugin, and some are defined in
TelepathyPlugin but overridden in ServerPlugin.

 ii. what type of communication is taking place between NM and PS

D-Bus messages, on the system bus.

 iv. the internet connectivity is detected by NM and sent to PS, or detected
 by PS

Internet connectivity isn't really detected, as such. The PS listens for
signals from Network Manager that 

Re: when an xo loses connection, how long does it take to disappear from other's neighbor view?

2007-11-06 Thread Simon McVittie
On Tue, 06 Nov 2007 at 12:05:59 +0200, Morgan Collett wrote:
 Giannis Galanis wrote:
  1. Is there a way to restart the presence service? In that way we can
  resolve a weird state. Will killing restarting the porcess work?
 
 Killing it will result in it being restarted. However, Sugar remains in
 an inconsistent state, with buddies stuck on the mesh view if they left
 while PS was not running, since PS never told Sugar that they left.

The situation would actually be worse than that, see #4681.

Simon
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Mandatory Changelogs

2007-10-29 Thread Simon McVittie
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On Sat, 27 Oct 2007 at 18:55:34 -0400, Michael Stone wrote:
 Dear Sugar and Devel,
 
 ChangeLogs in the format described on 
 
   http://wiki.laptop.org/go/Build_system#ChangeLog_Format
 
 are now MANDATORY for package inclusion. Please write yours.

How does this work for Koji users? I build the OLPC Telepathy components
for what-was-FRS-last-time-I-looked in the OLPC-2 stream in Koji.

Will they be integrated into Joyride automatically, or do I have to download
the RPMs (assuming that's even possible) and re-upload them via my public_rpms?

If they're integrated automatically, how and where do I write
changelogs? I'm happy to write the RPM %changelog in the desired format
if that's what you want...

Simon
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: OpenPGP key: http://www.pseudorandom.co.uk/2003/contact/ or pgp.net

iD8DBQFHJbPmWSc8zVUw7HYRAu7uAJ48urtIwmlI4/MMSsgxNBYD7OAcEgCfbwp3
vj+9tWFehBxQ7azm1xJYYFk=
=BF29
-END PGP SIGNATURE-
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: ip4-address buddy property - still needed?

2007-10-26 Thread Simon McVittie
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On Fri, 26 Oct 2007 at 00:20:01 -0400, Giannis Galanis wrote:
 The feature, although not usable by the activities, it has other benefits.
 
 By observing the buddy list, you acquire instant information of the network
 connection go the users:
 when connected to channel 1 for example:
 169.254.x.x address are in link-local
 172.18.x.x are connected to schoolserver

Wouldn't it be better if the information that was exposed was the
information you actually want, rather than a coincidental factoid from
which you can guess it?

I'm connected to the mesh vs I'm connected via school server
foo.schools.laptop.org vs I'm connected to some other random access
point.

 1. in the case of connecting to multiple jabber servers, the user should be
 able to tell which XO in the neighbout view belongs to the same school

Users should only need to connect to multiple Jabber servers if they
want multiple distinct identities (e.g. I have a personal Jabber account
and a work Jabber account). This seems an unlikely goal for OLPC.

If two users on different Jabber servers want to communicate, the way that is
done is that their servers communicate with each other (each user connects only
to their own server, which stores and forwards messages, just like e-mail).
For instance if a Google Talk user talks to a jabber.org user, a typical
message path would be something like:

[EMAIL PROTECTED] - talk.google.com server - jabber.org server - [EMAIL 
PROTECTED]

When we add inter-server communication (#3371, currently scheduled for
1.1) that's the model we should follow, because it's how the protocol
already works. At the moment OLPC is only using a subset of the
information.

The fact that the school server is likely to be geographically close to
the user is another OLPC-specific simplification, which is not required
by the Jabber protocol. Most jhbuild instances use olpc.collabora.co.uk
as their Jabber server; this happens to be on our server in London, but as
long as you have an IP route to the Internet, it doesn't actually matter
whether you're in an Internet cafe, the MIT Media Lab, the Collabora UK
office or whatever.

The underlying Telepathy connection managers are fully aware of which server
the user is on (the part of the JID after the @); Presence Service
currently hides this, in an attempt to provide a simplified view to
activities. It would be entirely possible to expose additional
information, or for interested activities to query the Telepathy
connection manager directly.

 2. get the geopraphical location of another user
 
 In future versions of the neighbor view, or through other activities, the
 user should be able to filter for specific XOs according to location, or
 school(in the case he's connected to many servers). Two children in the same
 school should be able to recognize each other even if they are connected
 through a jabber server, other then the one in the school.

If what you want is geographical location, please ask for geographical
location. IP address is a poor approximation, particularly since the
public IP address may not be well-defined.

Simon
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: OpenPGP key: http://www.pseudorandom.co.uk/2003/contact/ or pgp.net

iD8DBQFHIdabWSc8zVUw7HYRAjB5AKCJwAVcT43BOwTwWE3Mp4joTMVtVgCgrH6z
yCWo9Rc5gR9j9va3sns+smY=
=BcPE
-END PGP SIGNATURE-
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: ip4-address buddy property to be replaced by stream tubes

2007-10-25 Thread Simon McVittie
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On Thu, 25 Oct 2007 at 10:37:50 -0400, Benjamin M. Schwartz wrote:
 Erik Blankinship wrote:
  Record uses ip4-address, but we've just about completed Record Tubes
  (and it is working great).
 
 Should Activity developers assume that stream tubes will be available in both
 Gabble and Salut by OLPC 1.0?

Yes, I think you should. They work in Gabble at the moment, so you can
test collaboration, as long as you make sure you have Internet access.

They'll work in Salut (server-less link local collaboration) soon - we have a
branch in which they work, but I'm not very happy with the implementation, so
it's not in builds yet.

If you were previously using ip4-address, using the IPv4 socket type for
stream tubes will give you the nearest API match. I patched Read to use
stream tubes (patches are attached to #4927) if you want an example.

For something like Record it may be best to use a hybrid solution - D-Bus
tubes (because of their ability to broadcast) for new photos, and stream tubes
(because of their potentially higher efficiency) for newly joined
buddies to catch up with the activity state. That's entirely possible,
and I can probably help you with the API, although obviously fixing
up PS, Gabble and Salut will have to take priority for me.

Simon
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: OpenPGP key: http://www.pseudorandom.co.uk/2003/contact/ or pgp.net

iD8DBQFHILUaWSc8zVUw7HYRAhTXAKCHuBkdvDOWzhyodPuzXjPypfWSbgCgkPpa
O4S+f2hf00k6RrQaJIf6KeI=
=uUlt
-END PGP SIGNATURE-
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


New FRS blocker #4438 - Salut collaboration not working

2007-10-24 Thread Simon McVittie
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

In Joyride builds 89 and up, Salut Tubes channels don't work due to a
mismatch between the low- and high-level implementation. Guillaume has a
fix, I'm filing this bug to track the process of getting it into builds.
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: OpenPGP key: http://www.pseudorandom.co.uk/2003/contact/ or pgp.net

iD8DBQFHH1ljWSc8zVUw7HYRAvpDAKCyc9pW9EeoaGpbpUSb420tN6gflwCfTp1o
3acclgVwicofwLE+r8VXA0s=
=ZYMe
-END PGP SIGNATURE-
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: Presence service bugs/enhancements

2007-10-23 Thread Simon McVittie
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On Tue, 23 Oct 2007 at 07:55:57 -0400, Kim Quirk wrote:
  1. The presence service should detect more efficiently the internet
  connectivity and switch to gabble when appropriate(4193)

As I commented on the bug, we need debug logs - this should have worked, and
without logs we can't know why it didn't.

  2. In link-local XOs are seen in neighbor view but cannot be shared with.
  Sometimes they are not connected to the mesh anymore, but still present. In
  some such cases the avahi-browse cannot resolve the services of the
  corresponding XO. This is high priority but i dont have a log file in a
  blocking case, although i have experienced it in build617(4402)

Sjoerd is the expert for this one.

  3. Ability to switch from gabble to salut manually using the options:
  auto,salut,gabble(4403)

As I commented on the bug, I'd like some more idea what the
requirements are for this.

  4. Ability to keep an activity alive when passing from salut to gabble and
  vice versa. This can occur automatically when internet connectivity is
  dynamically lost or recovered(4404)

As commented:

This is difficult, and can't be fixed purely within PS - activities will
need to handle the switchover themselves, since we don't and can't know how
to resynchronize arbitrary activities (the activity can't assume that everyone
migrates at the same time). I don't think this is feasible for 1.0.

  5. In gabble, the public IP must be available in the buddy list, or at
  least be accessible through the jabber server upon request(4405)

As I commented, the private addresses are going away soon too - we only
have them because some activities (Read) haven't been ported to use
Tubes for collaboration yet (bug filed). The only reason they're visible in
the dev console is that it's meant to give a complete picture of what the PS is
thinking, so it should expose all information the PS knows about.

The XO might not *have* a public IP, might not be usefully reachable at
its public IP, (e.g. when behind NAT), and so on, so this is not
generally useful information for PS to provide.

  6. The jabber servers should be switchable(to change from one to the
  other) in a neater way then accessing the config file and rebooting. This
  can probably be invoked by sending smth like ..xmlns:stream=
  http://etherx.jabber.org/streams; to=jabber.laptop.orgas i noticed
  in the log files.  If it is simple to apply, can you describe how it can be
  done properly?(not on trac)

No, you can't send a new stream:stream element to the server to
magically turn it into a different server :-) Gabble needs to be told to
open a new TCP connection to the new server and do XMPP over that, and
drop its old connection. This is entirely possible; Gabble already supports
connecting to many servers simultaneously, if this is ever needed.

It would be possible to add API to the Presence Service to drop its
connection to the current server and connect to a different server. What
are the requirements for this task? Is there a UI requirement that we should
be supporting? I'd guess that this would be part of the same UI that
handled switching between Gabble and Salut?

Parts of the PS theoretically support connecting to arbitrarily many Telepathy
connections (any combination of Gabble and Salut), but sharing becomes
awkward in that case (you can't yet share across multiple servers, and
sharing the same activity across XMPP and link-local at the same time is
a minefield). Activities involving XOs from multiple servers are currently
planned for 1.1; it's too early to say whether that's overly optimistic.
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: OpenPGP key: http://www.pseudorandom.co.uk/2003/contact/ or pgp.net

iD8DBQFHHfQhWSc8zVUw7HYRAig+AJ0XzTzFGnx5MeOpbAZ5/sosbGl3uwCgwS0y
BoVS+nQu5DrEYehaQpMUD7k=
=HJhs
-END PGP SIGNATURE-
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Salut (link-local) protocol changing - don't expect interop between versions

2007-10-18 Thread Simon McVittie
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Just a heads-up for anyone who isn't already aware:

We're replacing the Salut (link-local collaborative backend) rMulticast
protocol with a better version, over the next week or so (bug #4044). This is
an incompatible change; there may in fact be more than one incompatible change
involved, if we have to change the protocol further when it's had
larger-scale testing.

As a result, until further notice, Salut is not expected to be compatible
between different versions. Please do not report bugs in link-local
(serverless) collaboration unless all participants in the activity are
running exactly the same snapshot of Salut (e.g. the same XO image).

We'll freeze the network protocol again between now and the 1.0 freeze. The
improved rMulticast protocol either fixes, or will enable us to fix, #3294,
#3969, #3465, #3338 and possibly #4127; we might also take the
opportunity to improve the mDNS part of the protocol.

Checking the version on an OLPC: rpm -q telepathy-salut

Checking the version in jhbuild: ls -d source/telepathy-salut-*, see which
one has the latest date in the directory name

Regards,
Simon
on behalf of the OLPC Telepathy team
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: OpenPGP key: http://www.pseudorandom.co.uk/2003/contact/ or pgp.net

iD8DBQFHF4ZmWSc8zVUw7HYRAqtDAJ9AWv5rE8jZzl84zlZW+MRLd6zxqACfRD3z
OgPyBcBGKb1tZjbY+PT432I=
=ouwQ
-END PGP SIGNATURE-
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: keyboard layout image license

2007-10-15 Thread Simon McVittie
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On Sun, 14 Oct 2007 at 11:43:48 -0400, Ed Trager wrote:
 Based on my understanding of a recent discussion I had with licensing
 experts at the institution where I currently work (USA),  LGPLv2 or
 Apache or other software licenses which Albert mentioned are not
 applicable to a visual image work.  A Creative Commons license is what
 we want.  Public Domain is not recommended.
 
 Bundling or including CC-licensed image artwork in a software package
 is of course allowed so long as you state the license and provide
 attribution, so I see no need for multi-licensing under LGPL or
 Apache or whatever.

If the artwork is bundled in a software package, you should be aware
that that software package will not be allowed into Debian, or other
distributions that use the Debian Free Software Guidelines (on which the
Open Source Definition is based - so these are quite influential
guidelines!), unless the artwork is removed.

Debian's criticisms of the Creative Commons Attribution license (and
derivatives) as a Free Software license can be found here:
http://people.debian.org/~evan/ccsummary.html

I must admit, I can't see why images of keyboard layouts need to be
protected by copyright. A very simple permissive non-copyleft license
like the Expat (MIT/X11) license would seem more appropriate, if placing them
in the public domain is problematic.

It's also a bad idea to recommend a Creative Commons license without
explicitly specifying which one, since the CC licenses range from CC-BY
(clearly intended to be a permissive non-copyleft Free Software license,
although it has the issues I linked above) to CC-NC-ND (clearly incompatible
with the aims of the free software movement in that it denies permission for
commercial use and derivative works).

Simon
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: OpenPGP key: http://www.pseudorandom.co.uk/2003/contact/ or pgp.net

iD8DBQFHEy9KWSc8zVUw7HYRAgPRAKCURHFsZVi9ciVFrcYhwR/YizU2RwCgtpaM
zZRJdockLuj4qjsXTvHDy78=
=fvVs
-END PGP SIGNATURE-
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: funny behaviour gtk+python

2007-10-04 Thread Simon McVittie
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Sorry, didn't send my reply to both the mailing lists. Replying to
myself to preserve the cross-posting.

On Thu, 04 Oct 2007 at 14:44:08 +0100, Simon McVittie wrote:
 On Thu, 04 Oct 2007 at 14:23:58 +0100, Victor Lazzarini wrote:
  Just to add a  little to say that this particular csound error is
  issued when there is an incorrect numeric format, say
  11.B or 11.1A. In here, if I only use integers, there is
  no error, but all decimals are raising the error. Here's the
  Csound code fragment that issues the error:
 ...
 tmpVal = (MYFLT) strtod(s, tmp);
 
 strtod() respects the process' locale settings. Importing gtk probably
 pulls in the locale settings from the environment and sets them as the
 process-wide locale (see setlocale(3)).
 
 GLib has a function g_ascii_strtod(), and Python has PyOS_ascii_strtod
 (which is actually the same function). csound ought to be using something
 equivalent to this to parse locale-independent decimals, rather than
 using the C library's strtod().
 
 See http://www.python.org/dev/peps/pep-0331/ for more details.
 
   Simon
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: OpenPGP key: http://www.pseudorandom.co.uk/2003/contact/ or pgp.net

iD8DBQFHBO76WSc8zVUw7HYRAo9QAKDQTOgMxUF1v6idnj51nHr7ek3xAgCg5OLj
QlEtQT1TYSccWjnM+0pktt8=
=VpHU
-END PGP SIGNATURE-
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel