Oct7'08

Introducing Geode


Always know where you are.

You’ve arrived in a new city, a new continent, a new coffee shop. You don’t really know where you are, and are looking for a good place to eat. You pull out your laptop, fire up Firefox, and go to your favorite review site. It automatically deduces your location, and serves up some delicious suggestions a couple blocks away and plots directions there.

In order for this to be a possibility, your browser needs to know where you are.

To do this, future versions of Firefox plan on supporting the new W3C Geolocation Specification, which adds the native ability for Web sites to request, and you to optionally grant access to, your location.  We’re still working out the specifics, but we’re hoping that location will be provided by one or more user selectable service providers and methods, e.g. GPS-based, WiFi-based, manual entry, etc. You’ll be able to play with this in the upcoming beta releases of Firefox 3.1, as well as alpha releases of Fennec.

We realized, though, that some of our Firefox 3 users might also want to get a head start playing with gelocation Today.

Introducing Geode, an experimental add-on to explore geolocation in Firefox 3 ahead of the implementation of geolocation in a future product release. Geode provides an early implementation of the W3C Geolocation specification so that developers can begin experimenting with enabling location-aware experiences using Firefox 3 today, and users can tell us what they think of the experience it provides. It includes a single experimental geolocation service provider so that any computer with WiFi can get accurate positioning data.

The potential here is for more than just resturant lookups. For example, imagine an RSS reader that knows the difference between home and work and automatically changes it’s behavior appropriately. Or a news site whose local section is, in fact, actually local. Or Web site authentication that only allows you to login from certain physical locations, like your house.

What else will location make possible? Even if you can’t code, you can share your thoughts by commenting on this post or via the Concept Series, a forum for surfacing, sharing, and collaborating on new ideas and concepts.

How It Works & Privacy Implications

With Geode when a web site requests your location a notification bar will ask how much information you want to give that site: your exact location, your neighborhood, your city, or nothing at all.

We’re using Skyhook’s Loki technology to map the Wifi signals in your area to your location. Unlike normal GPS-based methods which can take upwards of 45 seconds for a lock, Geode works both inside and outside with an accuracy of between 10 to 20 meters, normally within a second.

Please note that in this early implementation, both location and IP information is sent to the current provider, Skyhook, everytime a website is granted access to your location. Skyhook’s privacy policy is that they do not store or use any personal identifying information, and they promise to only keep data in anonymized agregate. The ultimate plan for Firefox is that service providers and geolocation methods will be pluggable and user selectable — to provide users with as many choices and privacy options as possible.

As an experiment, Geode is also the beginning of a conversation about location-based privacy and integrating services that share personal data into Web browsers.

Download & Try It Out

You can download Geode here.

To see Geode in action you can check out the demo Food Finder, which shows you the cafes and restaurants within walking distance.

To kick off Geode, two other websites have started innovating with location. Both require accounts before you can try them out.

Pownce is a service that makes it easy to send stuff (music, photos, events, and messages) to your friends. Adding the power of location — where you are when you uploaded a photo or sent a message — paints a compelling picture that helps you discover friends and activities around you. Head there to see it in action (you’ll have to sign up for an account).

Yahoo! Fire Eagle is a service that acts as a broker for your location, creating a single place where any web service, from any device can get access to your last updated location. Fire Eagle integrates with Geode so that you’ll never have to manually enter your location again. Once you have a Fire Eagle account, you can see Geode working here.

Differences between Geode and Geolocation in Firefox 3.1

Geode and the Geolocation Services in Firefox 3.1 will use the same W3C API for Geolocation, meaning that the same Javascript code will work in both. The still-in-developement Firefox 3.1 version will allow the user to choose a geolocation service provider, which can either be a peripheral device like a GPS, or a web-based service provider like we’ve used in Geode. We’ll be using the feedback we get from Geode, as well as the feedback we see on the upcoming Firefox 3.1 Beta and Fennec Alpha releases, to refine the feature before shipping it in a future Mozilla product release. We’re particularly interested in ensuring that the final implementation is as sensitive to user privacy and choice as possible.

Get Involved

We’ve implemented a portion of the tentative W3C Specification for Geolocation that we’ve been collaborating on. This means that if you add geolocation to your site for use with Geode, it’s future-proofed to work when Firefox (and other browsers) bundle geolocation.

Using Geode on your site as simple as:

navigator.geolocation.getCurrentPosition(function(pos) {
  alert( pos.latitude + ", " + pos.longitude );
})

For two more pedagogical examples, see here and here. For a run-down of exactly what’s implemented, see the Geode wiki page. You can also get involved with the Firefox 3.1 feature either by commenting on the W3C specification, or by participating in the mozilla.dev.apps.firefox mailing list.

Credits

Special thanks to Ryan Sarver at Skyhook Wireless, Leah Culver at Pownce, and Chris Martin at Yahoo! for participating in the development and launch of the Geode prototype.

Thanks to Doug Turner for developing Geolocation Services in Firefox 3.1. And Justin Dolske and Aza Raskin for developing Geode.

Tags: ,

149 Responses to “Introducing Geode”

  1. coderrr says:

    To see the actual (proprietary) protocol they use to query Skyhook Wireless’ database with the current wifi signals you’re receiving, check here: http://coderrr.wordpress.com/2008/09/10/get-the-physical-location-of-wireless-router-from-its-mac-address-bssid/

  2. Albert says:

    Nicholas (and others): you’re claiming that the next Firefox will have Geode included. Where did you get that idea?

    Just read the text FULLY before you start blabbing nonsense about forking and sueing:
    “The ultimate plan for Firefox is that service providers and geolocation methods will be pluggable and user selectable [...]” and “The still-in-developement Firefox 3.1 version will allow the user to choose a geolocation service provider, which can either be a peripheral device like a GPS, or a web-based service provider like we’ve used in Geode.”

    So, the next Firefox will NOT have SkyHooks proprietary SERVICE PROVIDER included, only the API that is fully pluggable using addons.

  3. NoFeatureBloatPlease says:

    @Albert Why does the core of a browser need geolocation API? Shouldn’t that be part of an addon as well. See my previous comment on feature bloat.

    Firefox still has many open issues with core browsing (for example, tabs should be independent like chrome, DOM code needs to be re-written for performance, rendering performance on Linux sucks, javascript optimizations need even more effort, flash and plugins should be crash-proof). Firefox should provide a SOLID base platform, not a feature bloat.

  4. Nicholas K. says:

    Albert wrote:
    “Nicholas (and others): you’re claiming that the next Firefox will have Geode included. Where did you get that idea?”
    Well, that’s the general idea if you read most news sites, like this one: http://news.cnet.com/8301-17939_109-10053615-2.html?part=rss&subj=news&tag=2547-1_3-0-20 Who knows, maybe I misunderstood. Actually, I *REALLY* hope it is a misunderstanding. Maybe the news sites misunderstood as well, in which case the Mozilla guys should probably rethink about how they can market this thing. (With Mozilla everything revolves around marketing these days – see the Guinness record attempt. It’s almost sad.)

    Albert wrote:
    “So, the next Firefox will NOT have SkyHooks proprietary SERVICE PROVIDER included, only the API that is fully pluggable using addons.”

    And why should an open-source project provide an API to (as you say yourself) closed, proprietary stuff, of dubious quality, security and intentions?

    I thought that one of the most important reasons for using an open-source platform like Mozilla Firefox was to be sure that your privacy would be protected; not to allow open-source software act as a trojan horse allowing unsafe binary components to sneak inside, giving you only a false sense of security. (On a sidenote, the new privacy mode is a definite improvement for Firefox 3.1)

    Nicholas K.

  5. Nicholas K. says:

    PS. And what the hell happened to the whole \lightweight, solid browser\ idea? NoFeatureBloatPlease is right. I seriously doubt that the geolocation API has anything to do with core browsing, and I also think that it will be useless for the majority of Firefox users. Not to mention that Firefox is a multiplatform application and as such it should provide consistent user experience and features across the various platforms.

  6. Frank Boës says:

    Nicely done, although it does not work at my company (Berlin, Germany).

    I incorporated it for testing purposes right next to Google Gears geolocation API for finding hotels near you – or getting the last police reports in your neighborhood.

    As for privacy concerns: Hey guys, your position can be as easily looked up via ip2location server-sided, and without the user having to allow it. And for mobile devices it is a real charm to have – I think about rigging our event-database with it.

  7. Potmos says:

    This should definitely be optional and only installed as a plugin!

    If it is indeed included by default in the Fox’s builds, I will completely abandon this browser for Konqueror.

    It’s outrageous. At least I hope that, since we are talking Open Source, someone will compile the browser without this hideous feature.

  8. FP says:

    @Nicholas K

    The API is not proprietary, there’s a link to it in the orginal post, how about reading it before going off on inane and incorrect rants?

    http://dev.w3.org/geo/api/spec-source.html

    As for claiming that Firefox should not implement new web standards because they’re bloat, I don’t even know how to respond to that (perhaps you should move to IE, they’re not too keen on implementing the lastest W3C technologies).

  9. Nicholas K says:

    FP wrote:
    “The API is not proprietary, there’s a link to it in the orginal post, how about reading it before going off on inane and incorrect rants?”

    Did I *EVER* say that the API was proprietary? Really? I am not fluent in English but it seems your reading and understanding skills need some improvement as well.

    The API is not. So what? An API is just an interface. If it is only going to be used by proprietary and potentially dangerous stuff, then I’d say skip it. Mozilla used to protect its users…

    This discussion is going nowhere, I think this is my last post here. (And I thought I was a Mozilla fanboy, but clearly there are worse cases than mine!)

  10. FP says:

    Nicholas K wrote:

    “The API is not. So what? An API is just an interface. If it is only going to be used by proprietary and potentially dangerous stuff, then I’d say skip it”

    Now you’re trolling plain and simple. The only person claiming that all implementations will be proprietary is you. There is already at least one* (admittedly very simple) tri-licenced provider, and I’m pretty sure (despite you implying otherwise) that the open-source community is more that capable of developing more.

    *https://addons.mozilla.org/en-US/firefox/addon/8420

  11. Nik says:

    “Geode” could not be installed because it is not compatible with your Firefox build type (Darwin_ppc-gcc3). Please contact the author of this item about the problem.

  12. Ryan says:

    Check out BrightKite’s implementation of the Geolocation API for Geode users: http://brightkite.com/places/guess. You’ll need an account…

  13. PJ says:

    Granted Neighbourhood access and tried the “food finder” (im in the UK). It didnt drop anywhere near me. I refreshed the page and it was somewhere totaly different, still nowhere near me. Nice idea, could do better.

  14. Jonas Wisser says:

    Not working on 32-bit Intrepid Ibex or OS X running on a G4 PPC processor. No good reason for either that I can see, since the vast majority of extensions work just fine on all platforms.

  15. LKM says:

    This is freaking awesome. I’ve added it to our intranet portal, so now we can display a google map showing where in the world all our employees are :-)

  16. You should not intergrate Geode (or Geode-alike) functionality to the core of Firefox 3.1. Not now! New versions of Firefox appear once or twice per year; extensions may be developed and updated at much better pace. Firefox 3.1 should not really contain anything but JS API for geolocation; the rest should be implemented in extensions.

  17. http://www.boorah.com/restaurants/dineFinder.jsp

    A clever BooRah application that shows you the Ten Best Restaurants near you on a Map. Zoom in tight on the map, and we’ll show you up to 10 very close-by choices; zoom the map out a bit, and we’ll choose the top 10 based on a broader selection of choices.

  18. NoFeatureBloatPlease says:

    @FP “As for claiming that Firefox should not implement new web standards because they’re bloat, I don’t even know how to respond to that ”

    Firefox should just have the basic API so that an addon can provide geolocations support if needed. My point is, first finish the basic features and then move to advanced stuff.

    While Firefox is great, it is far from providing a rock solid and fast base platform. Other W3C fancy specs should follow that. And I think, there is no need to list all the core browsing features things that Firefox lacks.

  19. Works a treat in Sydney, Australia.

    Here’s a basic test site I threw together, if anyone wants to play with it in Virtual Earth:

    http://dev.mapds.com.au/vegeodedemo/

    I’m keen to play with a fuller implimentation – the position accuracy property is an essential for the final release!

    Cheers,
    Hugh

  20. Russ Taylor says:

    “Error getting your position. Mea Culpa!”

    Somerset, England :(

  21. Bramus! says:

    Testing from Ghent, Belgium:

    Geolocation demo.
    Requesting location…
    Got error: 6 — Loki provider failed: Location cannot be determined.

    (yeah yeah, got the mea culpa too … but this was an other demo ;) )

    Now, what I don’t understand is: how can this thing know where I am if I’m not on WiFi? It states that it’s measured via WiFi signals … so IP addresses are out?

  22. Alexander says:

    Another resounding ‘boo!’ here.

  23. Yeraze says:

    It doesn’t seem to work on my XP64 workstation. I assume this is because Loki won’t work without some client-side Java App which requires Administrative Priveledges, which I do not have on my workstation.

  24. I’ve read http://developer.mozilla.org/En/Using_geolocation

    I’ve read http://developer.mozilla.org/en/nsIGeolocationProvider

    I see now that Firefox 3.1 implements only the frozen API (for script to use), and leaves the geolocation providing task to the extensions. That’s good news and now I have nothing to worry about.

  25. Yeraze says:

    Oh, just figured it out.. It requires WiFi. if you’re on a cabled network, it won’t work (hence the Mea Culpa).

    Could be a little more descriptive on the error message guys.

  26. wizardbyte says:

    It found my old address too. I haven’t lived there for over a year. Does anyone have an explanation for this?

  27. Not sure if anyone else is experiencing the same bug as me:
    https://bugzilla.mozilla.org/show_bug.cgi?id=459903

  28. Jonathan R says:

    It’s not working here in Ecuador, South America.

  29. Pipppetto says:

    WTF means “Geode 1.5 is not compatible with Firefox 3.1 release” ?

    How am I supposed to use it, if this is not able to install in the current version of Firefox 3.1b1 ?

  30. Adam Jack says:

    Are there any plans to include an HTTP header, or some way to pass the Geo URI on the first HTTP request without requiring a second one to pass it back to the site? I know everything is AJAX these days, but I am sure there are many applications that would be optimized with a single shot mechanism.

  31. Tomas says:

    This seems like a decent idea but it could have been done in a much better way. When I tried to use it, it couldn’t find my location. Rather than try to be all fancy and auto-find me, why not just let me tell it where I am? I have GPS on my laptop so I could give me exact location directly to if, if there was some kind of input dialogue. Admittedly not everyone has GPS available, but chances are that they know the city they are in. It just seems it could be a lot more compatible if it wasn’t trying to be so fancy.

  32. Alex says:

    It seems to me there is at least a documentation (if not an implementation) error:

    While the W3C specification at http://dev.w3.org/geo/api/spec-source.html says that unknown altitude should be reflected as *null* (= no value), the Firefox 3.1 developer documentation at http://developer.mozilla.org/En/Using_geolocation says that it is *zero* (which cannot be distinguished from zero elevation…)

    I haven’t actually tried to verify that in the software, but at least it looks like a documentation bug.

    (Note: I haven’t found any mailing list to post this to, so i’m using that blog comment)

  33. simonsonjh says:

    I have to buy Windows in order to use this plugin? How about supporting poor, penniless Linux folks?

  34. A.T. says:

    “Geode” could not be installed because it is not compatible with your Firefox build type (Linux_x86-gcc3). Please contact the author of this item about the problem. — shame :( ((

  35. ftr says:

    Nice idea, but doesn’t work here in France.
    When I try the Food Finder demo and click on any of the location icons afterwards the page remains empty.

  36. Nitin says:

    hmmm… not sure whether i’m correct.. But i came across this service provided by google. Enter the link http://www.google.com/jsapi and in the variable google.loader.ClientLocation we get our latitude and longitude. So may br using that we could achieve the same thing???

  37. xulsolar says:

    Can’t believe it! Why can you do things for everyone!!
    It doesn’t work in Linux!!
    Think Free man!!

  38. keith thompson says:

    yeah as with russ taylor i get the same response -’mea culpa’ in the uk – and as with france and ecuador comments i guess it is US only at mom.

  39. keith thompson says:

    as with the comment from somerset, france and ecuador i could not get further than the ‘mea culpa’ message so i guess it works in the US only!

  40. mike harrop says:

    typo in page http://labs.mozilla.com/2008/10/introducing-geode/

    geolocation is spelled gelocation

    cheers
    mike

  41. Derek says:

    Where is the Linux version? Why do you not disclose that the thing does not work with Linux so people don’t waste their time fiddling with it?

  42. Tom Coates says:

    Note that the Skyhook implementation is not what’s being proposed to be core, but the APIs that allow a website to query your location IF you’ve specified a location provider. So the Geode plugin is just an example of the kinds of things you can do if you want.

  43. nikhil says:

    Hi All,

    whenever i tried to use Geode to find the exact location, Mozilla crashes. I am using the Mozilla version Firefox/3.0.6. Has somebody faced the issue

    Thanks
    NikhiL

  44. Please make this compatible with Linux soon.

  45. It can’t be installed on Firefox 64 bit, can you do something about that? thanks.

  46. I see from your download page that this is apparently compatible with Linux, now. Oh, what joyous news! Except, of course, that it still refuses to install and work in my browser.

  47. Wilhelm says:

    Hum, not working on my Powerbook G4 either. Bummer I was looking forward to trying this out. How hard can it be to compile for PPC?

  48. Your Food Finder demo just tells me that Geode is required – after I just installed it!

  49. Cosmitar says:

    Doesnt work on Firefox 3.0.10 for Ubuntu canonical – 1.0
    :@

About the Author

Chris Beard

Chris works at Mozilla Labs.

More from Chris Beard »

Category

Mozilla Labs

Follow us!

About Mozilla Labs

Laboratories are where science and creativity meet to develop, research, and explore new ideas. Mozilla Labs embraces this great tradition - a virtual lab where people come together to create, experiment, and play with new Web innovations and technologies.

Newsletter

Enter your email address here to subscribe to our mailing list for announcements: