Twitter’s new geolocation facilities are all the rage. Actually, most users don’t know about them yet, but they should soon. And by “facilities”, I mean just a couple fields in your XML/JSON that’s fed through the API to/from a few clients. Most Twitter clients don’t yet support this new geolocation, but they may come around… if they figure out how to be accurate.
Geo Services
There’s no lack of geo-aware tools out there: fireeagle, brightkite, latitude, shizzow, foursquare, loopt, more I don’t remember trying and tossing, and I’m sure a bunch more I’ve never heard of. I tried most of them just this year, as most are pretty new. But they generally lack users, at least compared to Twitter, who’s new to the geo game. Just try importing your friends from gmail, twitter, and facebook with some of these services, and you’ll see what I mean. Latitude will be interesting to watch — given android’s impending ubiquity — but Google’s may be too big to be the real innovator in this space (despite all their leverage).
Mobility
I wonder where we’re going with mobility. I gather that the majority of Twits are still using non-browser-based Twitter Desktop Clients (TDCs). Maybe the sea-change to smartphones is underway. But I’m not sure. Granted, this luddite got a MyTouch a few months ago, and I’ve got latitude and foursquare (and other random android apps crashing my phone) constantly sending my location around (after giving up on brightkite and shizzow clients). But I know a lot of (predominantly AIR?) desktop apps are still overwhelmingly popular; they’re just lacking something…
The Problem With Desktop Geo-awareness
Quick background. Smartphones now have GPS, and it tends to be readily available (and now easy enough to turn off to save batteries) and incredibly accurate, often pinning you to the residence/office/coffee shop/place you shouldn’t be, you’re actually in. That constant information stream can really open some doors to innovation (e.g., geo-time-plot-animating your week). It’s the impetus for all those geo-services. Also, browsers like Firefox 3.5 can pinpoint you with similar accuracy with a little magic that I haven’t completely figured out. It seems to have to do with IP lookup combined with unique MAC address locations and a nice relationship with Google who’s probably got MACs/SSIDs for most routers in your neighborhood. Probably collected while taking pictures of your street. So at least one bleeding-edge browser has it. Some others will figure it out too over the coming years.
But what about all those TDCs? When will they really become geo-aware? I tried out Python Twitter Tools today and it actually supported the geo-tag features just introduced into the Twitter API. I’m expecting it’s one of the few language libs with support as of today. It’s really simplistic and naturally adapts to API changes (for better or worse), unlike the de facto python-twitter whose recent patches we’re insufficient and thus far ignored (by all but me?). So pretending to be a TDC I wanted to figure out how to send accurate geo-info alongside a tweet.
The TDC scenario is that we have no GPS and we’re outside a browser. That leaves us with a local IP address, like 192.168.1.X, and some mapping APIs. You can determine your un-NAT-ed IP most easily with somthing like:
curl www.whatismyip.com/automation/n09230945.asp
Then you can make use of GeoIP, which (along with its database) is installable via apt-get and some path-tweaking (or a bunch of other commercial offerings) to determine your approximate location, for widely varying degrees of approximate. I understand this approach can be way off outside the US, and my testing shows it’s not too great here either — something like “in the vicinity” 80% of the time.
For serious geo-tracking (illnesses, events, friends, advertising, etc) that’s usually not good enough. So I’m perplexed — what are all the TDCs going to do to make use of this compelling feature? Seriously, leave a comment if you’ve got some insights.
Redundant and Confusing
Since Day 1 Twitter has offered a “Location” field, to represent the city you live in (I guess). It’s been bastardized by various mobile clients to reflect a user’s current location. Through the API a client can mess with a user’s profile to be constantly updating the Location field when she tweets. It apparently wasn’t designed to be used this way (or else why are they rolling out this shiny coord-only geo stuff?), but it has worked. In fact it works just about as well as the new-geo-facilities. But now we have two ways to do it.
The difference is that the new formal mechanism seems to enforce (or just encourage?) GeoRSS/GeoJSON (which have their own odd inconsistencies, like disagreeing on lat/lon and lon/lat). And it’s on a tweet-by-tweet basis, so the location is associated with the tweet itself; not the user (picture the schema). That’s really cool to be able to see where a user has been as he sends each tweet. But it would be a lot better IMHO if Twitter enabled geo updating without the tweets themselves (no, @devnull is not available for constant dumping of DMs with geo-coords). Then it might supplant any of the other new geo-services. I find it a little annoying to see floods of “I’m here!” tweets from the geo-aware-ati(?) I follow. So new-geo is for tweets, and I guess old-geo (Location field) is for users, and should be kept pretty static, maybe conventionally indicating where the user lives permanently.
I wish the intended uses of the fields had been made more clear. For now, I’m just hoping that the TDCs figure out how to get accurate geo-info, and start making use of new-geo. I’ll try to be tweeting from a mobile client like Twidroid that supports new-geo. And I’ll continue to let Latitude and FourSquare track me automatically, in hopes that their gathered data becomes useful. Eventually I hope to see a massive adoption of geo-aware clients so we can start to do real things with all that data (assuming we can continue to mine it en masse). I expect that Facebook will again be playing fast-follower once this really catches on.
Tags: geo, geolocation, Mining, twitter