About Buddycloud

Buddycloud lets you share your location with your friends without needing a GPS phone. It also shows you other people in the area that are free to chat.

A unique approach to location

Elvis at Simon's PlaceBuddycloud takes a different approach to location. We show you at places you like rather than try to put you on a map. (In the screenshot on the right you can see that Elvis Presley is at Simon's Place.)

Buddycloud can work without a GPS. The Buddycloud mobile software will look to see what cell towers are in the area and will also look to see what WiFi access points are nearby.

Of course if you have a GPS we can use that too but we find that our positioning works just fine without it. This also means your battery will last longer.

The buddycloud location magic is performed behind the scenes by our location server, or "butler" as we call it (for no better reason than to distinguish it from other members of our "server staff").

The buddycloud location service is based upon placemarks. A placemark is simply a place, defined by a name (and optionally address and description), coupled with a list of nearby cell towers or wifi access-points that are "visible" from that place. The job of the Buddycloud location butler is to let people define and manage placemarks, as well as to determine their location by comparing their recently seen cell towers and access points by those stored with the placemarks. This information is provided by the Buddycloud clients who repeatedly informs the butler about their cell and wifi surroundings. The butler responds with location. The location result is a layered stack on the form country, city, part of city, street, place (for example: USA, New York, Manhattan, 6th Avenue, Joe's Pizza). If no exact place match is found, the butler will do an outward search for nearby places linked by overlapping cell towers to try derive country, city and part of city. This information is,
as mentioned, optionally entered by users when defining placemarks. If an exact address is supplied, the butler will use reverse geocoding to associate the placemark with geographical coordinates.

Devices that support GPS positioning can also submit GPS coordinates in addition to, or instead of cell tower and wifi access points. This is then used to locate the user to reversly geotagged places, as well as to enhance the butlers knowledge about the approximate location of cell towers and access-points.

Placemarks are private by default, meaning that if you defined a placemark 'My Castle' for your own apartment, none of your visitors will be located to this placemark (they will have to make their own placemark, say 'Bob's Dump', here assuming your name is Bob and that your friends do not think as highly of your apartment as you do :-). However, placemarks can also be public. That means that anyone can be located using this place mark. Public placemarks also brings some other benefits. For example, the butler will keep track of the "population" of any place for which a public place mark is defined, and publish this to anyone who is interested.

Buddycloud clients also have the possibility to submit the IDs of any Bluetooth devices that might be within range. The butler will use this information to look for other Buddycloud users nearby and automatically synchronize their location to the same place (remember Bluetooth has a range of only 5-15 meters). This has the advantage that users on simple devices can leverage the wifi or GPS capabilities of nearby users.

All this happens silently in the background with the user only having to participate actively when defining new placemarks. For most users this happens between 2-5 times. Typically with "Home" and "Work" as private placemarks and frequented pubs and restaurants as public placemarks.

Standards compliant

Location sharing

Multi levels of location

Reverse correlation

Simple beacon logging

Powerful Location Sharing

Location gets interesting when it's shared. Anyone can turn on a GPS and know where they are.What's the user of knowing where you are?

Standards compliant

Scalable

Logging stanza easily fits into a caml or USSD channel and can be built into the SIMTOOLKIT

 

 

Architectural separation:

XMPP Clouds RuleBuddycloud is two components. There's the mobile client and the server backend. To glue the two ends together we use Jabber/XMPP to send and receive data. This works our really well: we achieve a nice API and separation of frontend features from backend features. It also means that anyone else can build a service that uses XMPP and immediately plug in and leverage what we have already done.

XMPP Rocks!

Did I mention that XMPP was a great protocol? You probably already know how cool XMPP is for transporting data and events and federating servers together. Even Google Talk uses it now. It has enabled us to build a realtime, event driven feature rich application that is also standards compliant. There is no need to continuoiusly poll for new data. With XMPP, when an event occurs (like a user leaving a location) all their friends are automatically pushed the update. And if they are offline, it's spooled for the next tiem they connect.

Low data use

XMPP Rocks! Again. We have managed to squeeze all data down to about 25KB/hour using stream compression. Stream compression is build into XMPP (although was tricky to implement well). All events being sent to and leaving the phone are highly compressed. This really helps in a world where carriers are still charging large amounts for data.

Even Lower data usage

We've done some other cool things with warm restarts. Keeping a connection open in the mobile world is not easy. Starting a new data connection is more data intensive (downloading friends, subscribing to resources, joining group chats). We developed some "warm-start" routines which mean that when you resurface from being underground or turn off flight-mode, Buddycloud will gracefully (and automatically) re-join you to the network without running up huge data bills.

Buddycloud is federated

Wanna chat to your Google buddies? Go right ahead. Wanna chat to other XO laptop hackers? Go right ahead. Did we mention that Yahoo and AOL are also doing XMPP federation? Buddycloud federates with all other Jabber networks. Federation with other networks means that you are no longer locked into just talking to your AOL instant messenger buddies or your Gtalk buddies. Federation means you are free to talk to users on all XMPP networks. And that rocks.

 

Who is nearby?

There's a lot to be said for serendipity. Our goal has been to improve your chances of bumping into the people that matter to you. Buddycloud will show you friends in the area. We will also show you other places defined by Buddycloud users.

Buddycloud is integrated

We have integrated buddycloud with Twitter and Facebook as examples of how easy integration with thrird party applications is. Like with location data becoming mroe valuable when it's shared with your friends, we believe that other bits of data are also valuable. So we set them free to flow to the sites of your choice. Update your Status message on buddycloud, it's updated everywhere and includes the location where it was updated for applications like Twittervision.

Standardisation

You probably already guessed that we have one or two standardisation freaks in our midst. We want to build something once and have it interoperate. So we use standards like XMPP. And when there isn't a standard we build, what we think will work well, test it, refine it and then put it out there for others to hammer on. And when everyone has ironed out the kinks, we work to get it released for the rest of the world to use too. Shortly you will be seeing some of the fruits of this. So develop once, and develop with a standard.