The Banality of Nearby

At SXSW there was a lot of Instagramming going on. I wanted to see what sort of pictures people were taking, but there didn’t seem to be an easy way of doing it and I was too busy eating to fix it myself at the time. But now,

Behold: LOCALGRAM 1.

Localgram asks your browser where you are, then shows you recent nearby uploads. That’s it. It’ll look decent on the desktop, and decent on an iPhone. It might work on other things. Internally, this is a single Instagram API call, with maps and pictures on it. It’s so ridiculously simple that it barely seemed worth building, which is why I built it.

Playing with this around London, I’ve come to two conclusions.

  1. Other people’s Instagram photos are really boring. Good grief. Without the filters of the phone app, it’s just an undifferentiated stream of graffiti, food, and duck face.

  2. It’s surprising to me that so many photos are geotagged. Photos at a foursquare venue have maps on the photo page, but it seems that even photos without a first-class venue can have a location associated with them and visible through the API. The default web photo page doesn’t display the location at all. I hadn’t realised that photos retained their location. I wonder how many other people don’t know this.. Of course, this might be because some of the locations on these photos are clearly complete rubbish..

I’m playing with Instagram2 a lot recently. I like the live nature of the photo stream. I like their API (I like OAuth2). I don’t like their lack of feeds and app-only approach, but I can fix the first one of those myself.

I’m also playing with the lovely Toner maps tiles from Stamen, because I was looking for a gratuitous excuse to do something with them. I’m using modestmaps.py (thanks to some prodding from Aaron) to render out the static maps – hopefully this won’t kill anything – I’m not really set up to be a maptile server here. We’ll see.


  1. I come up with such terrible names. 

  2. I’d link to them, but what’s the point? 

Bad geotagged EXIF data off the iPhone

The iPhone camera geotags photos you take using it. This is a nice feature, and I like it. But if you use iPhoto to get your pictures off the camera, it breaks them.

This file was pulled using Image Capture

$ md5 Desktop/IMG_0115.JPG
MD5 (Desktop/IMG_0115.JPG) = db9551d666e312dad10b01607b758bc1

$ exif Desktop/IMG_0115.JPG
EXIF tags in 'Desktop/IMG_0115.JPG' ('Motorola' byte order):
--------------------+----------------------------------------------------------
Tag                 |Value
--------------------+----------------------------------------------------------
Manufacturer        |Apple
Model               |iPhone
Orientation         |right - top
x-Resolution        |72.00
y-Resolution        |72.00
Resolution Unit     |Inch
Date and Time       |2008:07:14 09:39:31
Compression         |JPEG compression
Orientation         |right - top
x-Resolution        |72.00
y-Resolution        |72.00
Resolution Unit     |Inch
FNumber             |f/2.8
Date and Time (origi|2008:07:14 09:39:31
Date and Time (digit|2008:07:14 09:39:31
Color Space         |Uncalibrated
PixelXDimension     |1600
PixelYDimension     |1200
Gamma               |2.20
North or South Latit|N
Latitude            |51.00, 31.49, 0.00
East or West Longitu|W
Longitude           |0.00, 5.25, 0.00
--------------------+----------------------------------------------------------
EXIF data contains a thumbnail (4879 bytes).

And this file is the EXACT SAME PICTURE pulled using iPhoto

$ md5 /Users/tomi/Pictures/iPhoto/Modified/2008/14 Jul 2008/IMG_0115.JPG
MD5 (/Users/tomi/Pictures/iPhoto/Modified/2008/14 Jul 2008/IMG_0115.JPG) = 571f8966a47ac583026090b63d7cde2a

$ exif /Users/tomi/Pictures/iPhoto/Modified/2008/14 Jul 2008/IMG_0115.JPG
EXIF tags in '/Users/tomi/Pictures/iPhoto/Modified/2008/14 Jul 2008/IMG_0115.JPG' ('Motorola' byte order):
--------------------+----------------------------------------------------------
Tag                 |Value
--------------------+----------------------------------------------------------
Manufacturer        |Apple
Model               |iPhone
Orientation         |top - left
x-Resolution        |72.00
y-Resolution        |72.00
Resolution Unit     |Inch
Software            |QuickTime 7.5
Date and Time       |2008:07:14 09:40:28
YCbCr Positioning   |centered
Compression         |JPEG compression
x-Resolution        |72.00
y-Resolution        |72.00
Resolution Unit     |Inch
YCbCr Positioning   |centered
FNumber             |f/2.8
Exif Version        |Exif Version 2.2
Date and Time (origi|2008:07:14 09:39:31
Date and Time (digit|2008:07:14 09:39:31
Color Space         |Uncalibrated
Latitude            |51.00, 31.49, 0.00
Longitude           |0.00, 5.25, 0.00
--------------------+----------------------------------------------------------
EXIF data contains a thumbnail (2670 bytes).

Geolocated photos as a privacy risk

The new iPhone firmware geolocates all the photos you take. It asks your permission first, but not in a very good way – it’ll say something like ‘This app would like access to your location’. Say yes, and you’re putting your exact position into every photo you take. Put an incidental photo on flickr and everyone knows where you were and when (because there’s a timestamp in the upload as well). Sell something on eBay, using a photo you took in your house, and now everyone knows where you live.

Is this not a little creepy?

(True, Flickr don’t import geotagging information by default. But I can still get the EXIF tags from the original image if you allow me access to that)

Oh, also, an argument from the exact opposite direction. The camera app gives no indication of if it knows where you are, and how close, so if you want a geolocated photo, you never know if you’ve got a fix yet and it’s safe to take one. The camera roll doesn’t indicate which photos are geotagged. You can’t look at a photo on the iPhone (or in iPhoto for that matter) and see where you were when you took it. So to a normal user, the feature is totally unexposed, and to a power user, it’s totally unusable.

This geotagging feature is completely half-arsed.

photo gallery

All I want, and I don’t feel that this is a lot, is to be able to put photos on my web page from iPhoto. Because writing iPhoto plugins is a pain, this requires me to use either Flickr, which I don’t want to (because I’d like to control my own photos, please, and not pay money for it), or php gallery, which has it’s own issues for me, mostly that it’s written in php.

As a perl (most of the time) programmer, I resent the fact that my web page is increasingly powered by php, but alas that’s where all these little toys come from nowadays. I’ve dabbled in php myself a little now, and it seems like a bearable language, although not one I’d actually want to write serious code in. Of course, with my colo going through.. pain recently, it’s tempting to restrict myself to a very simple subset of things, specifically, a subset of the stuff that the main box admin uses, because I know that it works and I don’t have to think about it. No more compiling weird perl/C modules on solaris as root with bizarre things tacked onto the end of my library path for me. The other colo has debian on it, which I like, but only 64 megs of memory, which I don’t. Hardware (even virtual hardware) sucks.

Of course, having got a gallery, I want to do things like have ‘5 most recent’ pictures on the front page of the site, and this is where things fall down a little. Noone else seems to want to do this stuff – I may end up subscribing to my own RSS feed, syndicating from one bit of my site to another, which seems disgustingly wasteful.

flickr

flickr is annoyingly slick. I messed around for a few hours trying to learn enough php to parse the RSS feed or use their API or something to get a list of recent photos on the page here, then I realised that there’s a page that just does all the work for you. You need to mess with javascript, but I can cope with that. Don’t I look silly now?

Also, I can get (atom? rssd+? Who cares?) feeds of anyone’s photostream, I can upload from my mobile via email from anywhere (leading to silly photos), I can just link to anything without having to explicitly share it… As has been said to me, these aren’t necessarily very clever features from a technical point of view, but it’s all about the workflow, innit? It’s so easy to use.