[FOSS-GPS] Re: Geolocation services for FoxtrotGPS

Joshua Judson Rosen rozzin at geekspace.com
Fri May 7 23:10:47 EDT 2010


Guilhem Bonnefille <guilhem.bonnefille at gmail.com> writes:
>
> Reading the roadmap of FoxtrotGPS, two points attracted my attention.
> The first one concerns the GPS access. You plan to use "libgps".
> Do you evaluated an higher layer? I'm thinking about geoclue.
> http://www.freedesktop.org/wiki/Software/GeoClue

Yes, at least for the time being, the plan is to use libgps--mainly because
Timo Juhani Lindfors had already done most of the work in that direction
for tangoGPS, and it's becoming increasingly apparent that we just need
*something* to support the new gpsd protocol as it gains wider adoption.
We've basically been broken by the inflexibility of `just' maintaining
our own internal implementation of the gpsd protocol, so the first goal
is simply to become un-broken.

To that end, I merged Timo's patches into the trunk today--along with
a minor tweak to allow us to handle the increased range of some values
reported by libgps beyond what the tangoGPS parser was capable of
reporting (e.g.: our codebase assumed that localtime() could never fail,
but libgps is capable of reporting `unknown time' in a format that
causes localtime() to correctly fail rather than reporting the epoch).

GeoClue looks pretty awesome, though; I wouldn't put it on the roadmap
as a definite just yet, but I'd love to see someone experimenting
with it. If you're interested in helping but have to make a choice
as to where you should focus your efforts, though, I'll ask you to focus
on something of higher priority--which happens to be your second point:

> The second one concerns the "friends" part. You plan to use XMPP and
> youlock.net services.

Well, XMPP and youloc.net are described on the website as the
`obvious candidates'. They were the first things that sprang to mind
as options for established, open-standards systems that seemed like
they would make sense as a basis for the sort of functionality that
currently exists in tangoGPS and FoxtrotGPS (currently using what is,
as far as I can tell, a proprietary web service).

I was delighted to see XEP-0080 <http://xmpp.org/extensions/xep-0080.html>,
because it made it apparent that other people were at least working on the
same idea, and that it might actually gain enough traction in the community
to take hold as a standard such that it wouldn't just be us driving it.

The more I look into it, the more it seems like my intuition was right--
that something XMPP-based is the way forward.

> Do you evaluated the telepathy framework? It already implement
> geolocation of friends over XMPP.
> http://telepathy.freedesktop.org/wiki/

There hasn't been any discussion about the possibility of using
Telepathy yet--I was not aware that it already had support for
doing Geolocation over XMPP; that's exactly the sort of thing
that I like to hear, though :)

Do you have any experience with these facilities?

> Of course, my two ideas bring HUGE dependencies, compared to
> home-made/raw solutions. But they simplify the specific code and
> allow a better integration with other services. Furthermore, these
> framework are already packaged in small devices like Nokia N900.

That's certainly a consideration. I'm not particularly fearful of
depending on other packages per se--the bigger question for us is
perhaps not so much `how many dependencies?' as it is `how much
overhead is there?': if we add too many layers, do we have to worry
about bogging-down our CPU or blowing-up our memory-footprint and
disk-storage requirements? Although it may be contrary to intuition,
depending on more (popular) shared libraries can actually be a way of
*reducing* memory-footprint, but it really depends on how well the
goals behind each component align with our own goals.

If components are already in use on `small devices', that's a good sign.
Having said that, I think the N900 is a much `bigger' system in some ways
than my FreeRunner is; I wonder if I'm actually the lower bound--
is anyone interested in running FoxtrotGPS on something `smaller'
(less RAM, less persistent storage, and/or a slower CPU/bus) than
the FreeRunner?

> What's your opinion about these ideas? I can imagine you're not
> interested yet in them because they bring lot of lower priority work.
> But I also can imagine to find time to give an help about these
> topics. So I need to know if you will be interested in them, if it
> worth to invest time in these directions.

Oh, I'd think that using Telepathy would be a way of *saving* work,
wouldn't it? Especially if they've already done the geolocation stuff
for us. This is exactly the sort of input I've been hoping to get
from the community.

I think there's probably less of a need to move from direct use
of libgps to GeoClue than there is a need to replace the `friend finder'
back-end--with libgps now integrated so that we can actually support
both new and old gpsd servers, and reconstruction of the missing
GladeXML file nearing completion, replacing the proprietary
`friends & IM' subsystem is of increasing priority.

So far, your suggestion of using Telepathy & Gabble to accomplish it
is the best (and only) one that we have :)

So, unless someone else offers a critique of Telepathy/Gabble
(I don't yet have any experience with it, myself) or suggests
a different toolkit to use, I'm inclined to say "let's go for it".

-- 
"Don't be afraid to ask (λf.((λx.xx) (λr.f(rr))))."


More information about the FOSS-GPS mailing list