Posts Tagged ‘google’

My Google Latitude History as a heat map

Friday, May 28th, 2010

Update (8 May 2011): I revisited this a year later to make a version that you can try online with your own Latitude data
Update (15 Jan 2012): A fixed version of the code to handle the new Google Latitude file format.


Google Latitude is starting to get very interesting. The new dashboard lets you see some graphs of how much time you spend at work, home, and out and about, and a list of your most visited places.

You can also see a Google Map with your 500 latest updates added as pushpins.

I had a random idea while looking at it this evening – why don’t they let you see all your updates on a map, in a heatmap that shows where you’ve been?

Naturally, once I had the idea, I had to give it a quick try.

This is the result:


View Larger Map

From the Google Latitude dashboard, you can export your history of location updates as a KML file. I downloaded my history, and wrote a short, hacky Python script to parse it, and generate a heat map to overlay on a Google map.

In this post, I’ll show the sorts of results it can generate, and share my script, in case any other Latitude users fancy giving it a go.

(more…)

Getting free routing data for the UK

Saturday, May 8th, 2010

I wrote this week about my new Android app, which checks for road traffic problems affecting UK routes. I mentioned that it wasn’t ready for release yet, because there are a few admin issues that I need to sort.

One of the problems is in how I get the routing data.

The app relies on comparing the locations of traffic problems with the user’s route.

Getting the location of traffic problems isn’t too hard as there are feeds from the Highways Agency and the BBC that offer that.

But getting a detailed description of a route between two places, in a format that I can use to compare against the traffic problems, proved harder.

(more…)

Tracking my location on TV

Wednesday, October 21st, 2009

Location tracking on TV

This is what you see if you press the “Find Dale” button on my TV remote control.

(Well, actually the “Teletext” button… cos I wasn’t using it, and there isn’t another button that makes any more sense!)

The on-screen-display adds a message at the bottom of the screen for a few seconds, saying my last recorded location and when I was there.

People following me on twitter may have noticed me talking about setting up a new home media server: a small Linux server that has become our Freeview box, PVR, home photo album, and music server.

And now it’s set up, it is surprisingly easy to do amazingly useful, and not-at-all annoying things like this! 😉

In my defence, I stopped just short of making the script poll for my location and display an on-screen message whenever my location changes. Which would’ve been very cool, but probably drive my family nuts. So I compromised with a script that runs when you press a button on the remote.

(more…)

Accessing authenticated Google App Engine services from a .NET CF client

Monday, August 24th, 2009

Google App Engine (GAE) gives you an easy way to build and host web applications for free.

For any address you specify in your GAE app, you can require users to be authenticated. For example, if you have this in your app.yaml:

- url: /authme
  script: myAuthenticatedService.py
  login: required

When a user goes to http://yourapp.appspot.com/authme in their browser, they get taken first to a google.com logon page and promtped for their google username and password.

Only if they authenticate correctly will Google pass them back to your page, and let them access your /authme page.

(This is kinda nice, because as a GAE app developer, you shouldn’t need to see the user’s password. Although, I guess most users won’t make a distinction between typing in their username and password into the google.com login page and into a login form on an appspot.com page.)

If you are writing browser-delivered apps, this is all fine and works as described. This is slightly trickier if you are writing a web service that you want to be accessed by a client app. I wanted to access a GAE web service from a mobile client – this is how I’m doing it.

(more…)

Addressing concerns over location sharing

Tuesday, May 12th, 2009

I wrote a quick post on Sunday morning about the mobile location sharing hack I wrote at Open Hack London. My post tried to explain the tech behind it, but I wanted to follow it up with a post to explain my thinking around the social innovation in the idea.

Sharing your location with your friends. People have been talking about this for ages, but recently it’s started to hit the mainstream.

More and more mobile phones are coming with GPS. For the ones that don’t, systems like Skyhook and Google Maps for Mobile are getting smarter at using GSM Cell IDs and WiFi access point addresses to work out where you are.

The reaction to this stuff finally arriving for the masses hasn’t all been positive, though. The response to the UK launch of Google Latitude – Google’s mobile application for sharing your location with friends from your Google contact list – is a good example.

A threat to privacy?

Privacy International said that “…Google has created an unnecessary danger to the privacy and security of users…”. They argued that it was too easy for Latitude to be “…enabled by a second party without a user’s knowledge or consent…” and that once enabled it could remain undetected for a long time, with massive potential for abuse.

Liberal Democrat MPs Tom Brake and my local MP Chris Huhne submitted an Early Day Motion to Parliament arguing that Latitude “…could substantially endanger user privacy…” and that “…Google has created an unnecessary danger to user privacy…”.

Tom Brake followed this up with the now widely reported quote that “Google Latitude poses an insidious threat to our hard-won liberties“.

I personally think this was unnecessarily alarmist, but at any rate, it is clear that the model of granting ongoing access to your location (until / unless you revoke it) worries some people.

(more…)

Developing for Android

Wednesday, November 26th, 2008

I wrote an admittedly gushing post a few weeks ago about my first impressions of the new “Google phone”, the Android-powered T-Mobile G1. Now that I’ve had a few weeks to play with it, I thought I’d add a comment about some frustrations with it as a developer.

None of this is to retract what I said before – I still agree with what I said before. But it’s worth adding a couple of comments.

I’ve not written any code for Android yet, but I’ve had a couple of tentative looks into how I might. And in general, it seems to be a combination of being really impressed by the theory, followed by being frustrated by the practice.

This is perhaps best described with a couple of examples.

(more…)

Android

Tuesday, November 4th, 2008

As a true early-adopting mobile geek, I was one of the people in my local T-Mobile store last week on the launch day for the new Android phone, the G1.

I’ve had a few days to play with it now, so I thought I’d share my thoughts on it so far.

If you want a considered review which discusses specific features, it’s worth checking out Engadget, Ars Technica, or CNET. Rather than duplicate proper reviews like that, I thought I’d share a less coherent post of my feelings about the device. 🙂

In short, I don’t regret buying it. I like it. But I’m not sure I’d recommend it.

I’ll try and explain why…

(more…)

Programmatically accessing authenticated Google App Engine services

Friday, September 19th, 2008

This one has been bugging me for a few days, and with help from a very helpful Google engineer I’ve finally got this working, so I thought I’d share my code where the next poor soul to try and do it might find it!

The problem:
I’ve written a small web service which I am hosting on Google App Engine.

By adding “login: required” to specific services in the app’s app.yaml file, I can make sure that you need to login to access a service.

If you’re accessing the service from a web browser, this is fine – you get redirected to a Google login page, and after entering your username and password and hitting ‘submit’, you get sent on to the web service you wanted.

But how do you do that programmatically? I wanted to do it from a Python application on my desktop, without being able to navigate the HTML login form.

(more…)