What is Where? Plaze vs. Location

May 5th, 2008 by Peter Rukavina

Here’s a list of five locations — geographic points on the surface of the earth identified in various ways:

These locations are each expressed in the native languages of GPS receivers, navigation systems, and street atlases.

But, in this raw form these locations don’t mean much. And unless you’re particularly familiar with the geography of New York, or the know your latitudes and longitudes exceedingly well, this list doesn’t tell you that much.

Take these five “raw locations,” however, and express them as Plazes, and they instantly become a lot more meaningful:

Not only can you quickly scan the list and get an instant sense of where I’m talking about, but follow the links and you can find that a whole bunch of people will be at Cloud Club for a Crazy Rooftop Party & Brunch with 20 DJs next weekend, and that Felix stayed at Pod Hotel last year. So did Robert and Kosmo and Erik. You’ll find that Shawn hangs out at My Dog Joe a lot, that David hiked the Matterhorn last year.

That’s a whole lot more than a latitude and a longitude. And that whole lot more is what distinguishes Plazes from being a simple “location tracker” service.

Take an address or a geo-location and overlay the collected activity stream of thousands of Plazes users, and the photos and comments and ratings they add about real world locations, and then add tools to coordinate your activities at those locations, and you go from having a simple collection of dots on a map to a rich social tool that’s more about sharing and coordinating and amplifying location than it is about simply saying “I’m at 84 Fitzroy Street.”

What’s more, because you have access to all of this rich data through the Plazes API, you can use Plazes as a sort of “clearinghouse” to feed other services: you can peel off parts of the rich set of social geopresence data that you maintain on Plazes and parcel it out to services that deal only in a certain slices of what Plazes maintains.

So you can share with services that only deal in status message updates (like Twitter) or only in “current location brokering” (like Fire Eagle) or only in calendar management (like Google Calendar).

Plazes and the Location Web

April 29th, 2008 by felix

What is unique about Plazes? Why Plazes in a world of GPS Phones and with “mobile social networks” popping up left and right? Doesn’t Plazes seem a little old?

Here are some of the answers why we think Plazes is a key bulding block to the location web:

Context, Context, Context

Semantic Location

In social interaction (and in contextual marketing) the fact that you’re at 52.30N/13.25E is essentially useless raw data for humans: in a mobile social environment I need more than a location, I need context.

Is this location a home or a restaurant? Have you been there for more than 20 minutes? Are you in transit? Are you with others? Are there pictures available? Has anyone I know been at that location before?

This contextual information can be more helpful than the actual coordinate: if I know you are at home for dinner it is much more useful information than the fact that you are currently 1km away. Plazes is about meaningful location and not just geographic coordinates.

Snap-to-Grid

Snap-to-grid

If all you have is coordinates (for example from you GPS Phone or your Plazer), Plazes can make an educated guess at what meaningful location you are at. We call it “snap-to-grid”.

For example, in the the building where our office resides on the second floor there is a coffee shop on ground level. If I work at the office, Plazes will assume that if I am in that building I am probably at the office.  If you, by contrast, get your coffee at the Lavazza Cafe every day, Plazes will assume that you’re at the coffee shop.  We’re both “in the same place” as far as raw coordinates are concerned, but we’re actually in very different Plazes.

Using Other People’s Presence

Plazes uses “location hints” — GPS location, MAC address of networks, wifi access points — to make its “meaningful location guessing” more accurate.  It also factors in presence history when offering suggestions: if you are at Heathrow Airport for the first time and there are a bunch of Plazes defined for the different gates, restaurants, etc., Plazes will suggest to you the Plaze with the most presences from others who’ve been there before you — the generic Plaze “Heathrow,” for example, and not the BA First Class Lounge Plaze.

Plazes’ rich geopresence history — the breadcrumbs of those who’ve gone before, so to speak — enriches its predictive abilities.

Name Space and Plaze Harmonization

To build a grid of relevant, meaningful locations requires a database and a namespace for locations. Plazes users have built a database of hundreds of thousands of locations.  But even more importantly, Plazes provides a mechanism for creating arbitrary Plazes like “My Couch,” offering the freedom to not only check in at public points of interest like restaurants and bars but anywhere.

This is more than a “personal bookmark” on a map: it’s in the public domain and you could also check in at “My Couch”.  Plazes provides tools for building a user-contributed flat name space that, at the same time, provides the tools for harmonization and weighing based on relevancy.

Consumer Services AND Geopresence Engine

Plazes Extensions

Plazes’ abilities to  bring meaning to location are what drive the Plazes.com service.  But you can use Plazes also for your own applications using our set of APIs over at Plazes.net.  So in addition to being a rich consumer service, Plazes is an important building block for the location web.

More Fire Eagle invitations available

April 29th, 2008 by giuseppe

As you probably already know from a precedent post, Plazes now works with Fire Eagle, the new location based service by Yahoo!, currently in beta and invitation only.

If you want to try it out and connect it to your Plazes account, just leave a reply to this post (be sure you type your correct e-mail address): we will send you as soon as possible your unique code to access Fire Eagle.

Be the first to get it!

Adobe AIR + Plazes

April 25th, 2008 by Peter Rukavina

In the regular web world, it’s difficult or impossible to build pure-JavaScript applications to interact with Plazes because cross-domain scripting restrictions mean you can’t interact with the Plazes API without a server-side intermediary.

Developing an application for Adobe AIR, a cross-platform runtime environment, allows you to overcome this restriction, and makes it really easy to build desktop applications that interact with Plazes using only JavaScript and HTML.

I’ve created a simple proof-of-concept Adobe AIR application called AirPlazer that simulates some of the behaviour of the standard Plazer application: it grabs the XML of the public Plazes activity stream, and displays it in a fashion similar to the way that Plazer does:

Adobe AIR Plazes Application Screen Shot

To try the application out, just install the AIR runtime for your platform and then install AirPlazer (it’s a self-signed application, so you’ll get a “Are you sure you want to install this application to your computer?” warning on installation).

If you want to experiment with the source, first grab the Adobe AIR SDK for your platform. Next, get the AirPlazer source code. Unzip it and then simply:

cd AirPlazer
adl AirPlazer-app.xml

Obviously it’s not a very feature-complete Plazer. But given that all you need to understand to extend it is JavaScript and HTML, it’s a reasonable starting place.

Plazes adds Fire Eagle Support

April 21st, 2008 by felix

Good news: Plazes now works with the Fire Eagle! (learn more here)

In case you didn´t  know, Fire Eagle is a location broker recently released by the guys around Tom Coates over at the Yahoo Brickhouse. (Here´s a helpful post on GigaOm). Unfortunately you need an invite to get an account at this time. But you can request one on the Fire Eagle Website.

So what´s the point and isn´t Plazes kind of the same as Fire Eagle, you ask? Well not quite. And depending on how you use it, it can be quite useful to connect the two.

Use the Plazer as an automatic source of location for Fire Eagle

The Plazer Software automatically detects your location based on fingerprinting your local network. So once you´ve got the Plazer on your laptop or work computer you can turn autostart and auto-plazing on and Plazes will know that you are at home, at work or at Heathrow Airport (Unfortunately Plazer can´t tell you where your luggage is). Now, all you need to do is authenticate the Fire Eagle for your Plazes account and there you go. Fire Eagle now retrieves the address of your current Plaze and sets it as your location.

Use Plazes SMS to update your location from any mobile

Don´t have a phone with GPS? Do not worry. Once you have connected Plazes to the Fire Eagle you can easily update your location simply by sending an SMS to Plazes. Of course you can also use any other extension that you use to plaze yourself to update your location on Fire Eagle. Use the Plazes Facebook app, Peter´s iPlazer or the Presence Router. Really, whatever is most convenient for you.

Connect your Plazes account to all Services supporting Fire Eagle

Once you´ve got your location set from Plazes, Fire Eagle will, depending on your privacy settings, pipe it through to other services. For example you can update your current city on Dopplr based on your current Plaze. And in the future once more services retrieve your location form Fire Eagle you can synchronise a whole bunch of services auto-magically with Plazes.

Let´s hope that the guys over at Fire Eagle start supporting Plaze ID soon so that you can not only be at an address or lat/lon but actually at a meaningful Plaze.

Right now, Plazes only pushes your location to Fire Eagle. The other way around is a little tricky because we have to match your lat/lon with a Plaze. We are working on it… So if you have any suggestions where we should take things, go ahead and comment. Have fun for now!

Start here (Login required)

Update: In order for Fire Eagle to see your presence it needs to be public on Plazes. You can still leave your default privacy on Plazes on a tighter settting like “friends only” but the individual Plazings that you wish to publish will need to be public. One idea for the future might be that you add Fire Eagle as a friend on Plazes. Feel free to comment.

Update: The great guys at Fire Eagle gave us invites. So drop us a mail with your Plazes username and well see to it.

New Plazer Release

April 19th, 2008 by Peter Rukavina

New Plazer

Thanks to Lance Wicks for the pointer to io9.

Moving Beyond the MAC Address with Plazes.net

April 11th, 2008 by Peter Rukavina

If you peer deep inside the recesses of Plazes you will find that in its heart it’s about connecting MAC addresses to physical locations. Plazes is much more than that, of course. And this technical magic isn’t something a regular everyday user of Plazes need know anything about. But that simple idea is where Plazes started, and its still very much a part of how Plazes “knows where you are.”

Whenever you connect to the Internet, you’re using a gateway: the router or access point in your home, office or coffee shop that connects you to the net. Every gateway has a unique ID number called a MAC address, and the magic of the Plazer is that when you connect to the Internet, it discovers the MAC address of your gateway, sends this address to Plazes, and gets back information about the Plaze you’re at (or not — if you’re the first person to use Plazes from that network, Plazer will prompt you to create a new Plaze).

While Plazes is no longer strictly tied to this mechanism — you can create Plazes “on the fly” using SMS, or from the Plazes.com website — it’s still a very useful way for narrowing down your general location.

With Plazes.net we’re adding more “narrowing down” options by allow additional network identifiers to be associated with a Plaze: it’s no longer just MAC addresses, but in fact any sort of network identifier.

Take a look at the Plazes.net documentation for creating a presence and you’ll see that one of the parameters you can pass is networks. To duplicate the current MAC address functionality, you do something like this:

POST /presences.xml
Content-type: application/xml
<presence>
<networks type=”array”>
<network>
<mac_address>00:00:00:00:00:aa</mac_address>
</network>
</networks>
</presence>

or this:

POST /presences.xml
Content-type: application/x-www-form-urlencoded
presence[networks][][mac_address]=00:00:00:00:00:01

The interesting new feature is that the networks parameter is simply a set of key-value pairs, and you can use anything as the key. So instead of mac_address, for example, you could pass a GSM Cell ID, or a Bluetooth Device Address.

On the other side of the equation, you can query Plazes using network identifiers. For example, the Bluetooth Device Address of my office computer is 00:16:cb:36:cc:d0. So I can create a presence here at the office (already a Plaze) like this:

POST /presences.xml
Content-type: application/x-www-form-urlencoded
presence[networks][][bd_addr]=00:16:cb:36:cc:d0&presence[plaze_id]=17631

Once I’ve done that — gluing the Bluetooth Device Address, using the key bd_addr to the Plaze — I can now build a mobile application that scans for Bluetooth addresses and queries Plazes:

GET /plazes.xml?presence[networks][][bd_addr]=00:16:cb:36:cc:d0

…and I’ll get the XML for my office returned.

While the key used for the networks parameter can be arbitrary, we’ve created a Network Identifiers page in the Plazes Google Code Project where we put forward some proposed standards. We welcome input on these, and suggestions for additional ones.

“Where Am I?” on a Nokia N95 in 8 lines of Python

April 10th, 2008 by Peter Rukavina

PyS60 on a Nokia N95

The Nokia N95 mobile phone is tailor-made for experimenting with Plazes: it has an internal GPS, Bluetooth, wifi, and can run Python. What more could you ask for in a location-based hacking device?

Here’s an 8-line proof-of-concept script that shows how you can use the internal GPS along with the new Plazes.net feature that lets you find Plazes near a latitude and longitude.

To use this you’ll need:

You need sign PythonScriptShell and LocationRequestor with SymbianSigned.com before you install them.

Once everything is installed, your GPS can see the sky, and you’re within range of a wifi access point, you can use this code to find the nearest Plaze to your current GPS location:

import httplib,locationrequestor
lr = locationrequestor.LocationRequestor()
lr.Open(lr.GetDefaultModuleId())
pos = lr.NotifyPositionUpdate()
connection = httplib.HTTPConnection('plazes.net:80')
connection.request("GET","/plazes.xml?near=" + str(pos[1]) + “,” + str(pos[2]) + “&limit=1″)
response = connection.getresponse()
print response.read()

Note that this is the most stripped-down possible way to do this; a real production script would build in error correction (is the GPS there? did I connect to wifi?). But if all the planets are aligned when you run it, you should get back the XML describing the nearest Plaze (change the limit=X if you want to retrieve more Plazes).

If you’re interested in exploring the combination of Python, S60 and Plazes, be sure to check out PythonS60Plazer from Tom Hughes-Croucher and Nick Burch’s excellent collection of scripts.

Plazes.net Bounding Box Query

April 8th, 2008 by Peter Rukavina

When Plazes.net was announced last week, we said that it would “receive continuous attention from us and evolve with your feedback.”

Well, it’s evolving. Quickly.

Ironically, one of the hardest things to do with Plazes, either at Plazes.com or using the current Plazes.com API has been to discover Plazes by browsing on a map.

So, for example, if I’m staying at the Ararat Park Hyatt in Moscow and I want to find Plazes to eat that are nearby, well, I can’t do that.

Except now, at least with Plazes.net, I can.

If you look at the evolving documentation for Plazes.net you’ll see that you can retrieve a Plazes Collection using a “bounding box.” That means that you can use a URL like this:

http://plazes.net/plazes.xml?bounds[sw]=55.7098,37.5172&bounds[ne]=55.7950,37.7279

to retrieve a collection of Plazes that fall within the box defined by the southwest and northeast corners of the area you’re interested in (note that, handily enough, Google Maps uses the same way to define a bounding box).

Here’s a demonstration of this new functionality in action (you can run it full-screen here):

That application uses the new Plazes.net bounding box query functionality to retrieve 100 Plazes within the current map window. Every time you pan or zoom the map, a new collection of Plazes is retrieved and displayed (who knew there were so many Plazes in Moscow!).

Remember that Plazes.net is the “experimental bleeding-edge” face of Plazes, so the specifics of this mechanism are subject to change; we welcome your feedback as always.

plazes.net: new home for the Plazes API

March 31st, 2008 by til

Starting from today the Plazes API has a new home at its own domain: plazes.net.

We built this to provide you with a full, general purpose geo-presence service which can be accessed by a variety of applications to publish and retrieve geo-presences of its users, for many different purposes, beyond the great user-centric experience that plazes.com already provides now.

plazes.net is a developer-centric web service which exposes the distilled core functionality of the geo-presence aspects of Plazes through a RESTful interface. The whole service is discoverable and usable with a web browser, but you can also talk to it in xml or json, and we’re adding additional formats where applicable.

plazes.net starts out with some new features such as search for plazes near GPS coordinates and flexible network identifiers, but it will receive continous attention from us and evolve with your feedback to become even more useful. Please send feedback and questions to the plazesapi mailing list.

Further technical details will be announced on the plazesapi mailing list.