Dorward

Fire Eagle and MarcoPolo

09 April 2008

Yahoo! discontinued the Fire Eagle service in 2013, so these instructions won't do you a great deal of good any more.

Yahoo! recently released a beta of Fire Eagle, a central place for storing a small piece of information - your location. After giving a little background I'm going to explain a two minute hack for updating location data based on the network you connect a (Mac) laptop to with no need to apply for an API key.

The idea behind Fire Eagle is that you have some applications that tell it where you are (and these might connect to a GPS or cell tower triangulation and so on to find that out) and other applications make use of that (e.g. to find nearby restaurants or the best route home by public transport). Applications might also make use of other people's data ("It is outside working hours and your mate Bob is within a mile of you, want to phone him and see if he wants a drink?")

I quite like this idea, it opens up a lot of possibilities for making things more convenient. I don't own a GPS though, and the iPhone doesn't yet have anything that can automatically grab my location and do things with it (it does do cell tower triangulation, but only on demand, and the information is only available within the maps application). This might change in the future, but for the time being, my phone is not the answer to telling Fire Eagle where I am.

With the phone out of the question, that leaves one other bit of kit with an Internet connection that I have with me a lot of the time — my laptop.

Thanks to an application called MarcoPolo, my laptop already knows where I am when I visit certain locations that I visit frequently. It gets this information from a set of rules that describe inputs the computer only receives in certain locations. If it is assigned a certain IP Address then it knows I am at the office, while if it can see a wireless access point with a certain SSID, it knows that I am at home.

What makes MarcoPolo useful is that it performs various actions depending on the location. The key ones that I use are switching to a different default printer and SMTP server based on my location. There are plenty of others though, including the ability to open any file you like.

"Any file you like" includes webloc files, which are simple XML files that include a URI. Running them opens that URI in your default browser.

Creating a weblog file

Combine a webloc file with the exceptionally RESTful URI format that Fire Eagle uses, and you have a quick way to update your location. Throw in MarcoPolo and you can skip clicking the file each time.

So, in simple steps, this is what you do:

  1. Get a Fire Eagle account (invite only at the time of writing)
  2. Install MarcoPolo and teach it about your network locations
  3. Create a webloc file for each location
    1. Visit http://fireeagle.yahoo.net/my/location/is/Your Address Here (I'm being naughty, you should replace the spaces with + signs, but most browsers will do that for you)
    2. Check that the address it comes up with is the one you actually wanted, and refine the URL if it is not
    3. Drag the favicon from beside the location bar to a Finder window (this creates a webloc file in most Mac browsers)
    4. Rename the file to something more useful than "Fire Eagle - My - Where Am I?". I keep a folder dedicated to my locations and then just name the file after the location.
    5. Either Confirm or Cancel the location change in the browser window.
  4. Tell MarcoPolo to use the location information
    1. Open the preferences
    2. Select the Actions tab
    3. For each location create a new Open Action:
      • Open action
      • On arrival
      • The context relating the location you want
      • Set the parameter to the webloc file for the same location
Configuring MaroPolo

Now, when the computer identifies the location you've arrived at, it will open the Fire Eagle website where (possibly after confirming your password) you will be asked to approve the change of location. This isn't quite as seamless as can be achieved with a dedicated application and an API key, but is a quick and simple method that does the job for me for the time being.