It's not a good time to be a fan of modernist architecture in London. The last two years have seen a number of 1960s and 1970s buildings being demolished, notably Drapers Gardens (which I really should write a eulogy for) and Mondial House. Meanwhile, two pieces of brutalist architecture, Milton Court and Pimlico School, are facing demolition (in fact, Milton Court's already wrapped up for the process to start. 122 Leadenhall Street and 20 Fenchurch Street continue the casualty list.
I could rant about what's replacing these (invariably, tedious glass and steel boxes), but instead I'd like to concentrate on another development at risk, Robin Hood Gardens. Currently, English Heritage are considering whether or not to list the estate, which Tower Hamlets would rather redevelop. The minister responsible for acting on their recommendation, Margaret Hodge, has been reported as saying
"Decisions on listing modern architecture should be left to people who can be booted out if they get it wrong. And when some concrete monstrosity - sorry, I mean modernist masterpiece - fails to make the cut, despite having expert opinion behind it, let's find a third way: a perfect digital image of the building, inside and out, could be retained forever."
This is a horrific statement. If Hodge is prejudging applications based on opinions like that, she's in no position to be making them. Imagine the fuss if she'd said "Gothic monstrosity" and "Victorian masterpiece" - the reaction would be overwhelming. (Just look at how much attention has been paid to St Pancras as it reopens housing the Eurostar terminal.) However, as the BBC's Magazine notes today,
"In the 1960s, 'Victorian' and 'monstrosity' were two words that seemed to be inextricably linked," says architect Robert Adam.
This brings me to the second point: Hodge argues that the decision should be made be "people who can be booted out if they get it wrong". But who does she think is making that judgement? Voters? Well, perhaps that's one way to do it, but we're really talking about preserving buildings for the future here. We won't really know if Hodge and English Heritage were right or wrong for decades, perhaps even centuries. Just because she won't be able to answer to them doesn't mean she should be catering to the prejudices of today's constituency.
Finally, her "third way", a "perfect digital image", seems like a joke. I linked to photos of Mondial House above, and while I know they're far from comprehensive, and they do give a sense of the building, they can't really convey what it was like to stand between it and the Thames, to see it from London Bridge at sunset or Guy's at night. If demolition has to happen, then I'd welcome better archiving of buildings than we have (try finding an image of Euston's old ticket hall, or even the arch), but it's hardly a replacement for the building itself.
Building Design is currently running a petition to save the Gardens, but I fear what's really needed is the same cultural change that makes casually bashing modernist buildings as unacceptable as denigrating Victorian buildings is now.
Until now, online communication has lacked personality, being limited to text (IM, SMS, email). Seesmic changes that, bringing conversation alive through video
"At last, the Internet is really social: you can see and hear people express their ideas and thoughts, you can join in, and you can make new friends. With Seesmic, everyone can participate in live conversations rich with personality, bought to life through video," commented Ron Conway
Now I'm running Mac OS X 10.5, I thought it might be fun to use this as an exercise in using Ruby to call Objective C, and hence the new Scripting Bridge. Together, this means you can call AppleEvents (the interprocess communication layer that underlies AppleScript) from a Ruby script, and that script can also access the rest of the ObjC APIs.
Getting started was pretty straightforward. There's a good overview on Apple's developer site which gets you going, and I lifted a small piece of code from Tom Insam's Shelf that allows you to see all the methods you can call on an ObjC object (which, handily, includes ones you can fetch from AppleEvents). (It's the dump routine from extractor.rb.) Pretty rapidly I could loop through my iPhoto library, pulling out dates and keywords, and I've had enough experience with rflickr to do the same with my remote photos, once I'd applied a couple of strategic patches. A bit of hash-munging and I had two data structures I could use to find matching photos (by datestamp) and tag them.
Unfortunately, this is where I hit a big speedbump. iPhoto 7's keyword adding interface has improved massively, but not, unfortunatly, from the scripting side. It's impossible to add a keyword that's not already defined, and even adding one that is requires that the photo be highlighted in the app. This is horrific - it potentially means that the user can interact with the program between the selection and the tagging and muck things up.
I also ran into what seemed to be a Scripting Bridge bug. Despite hitting the right syntax, the AppleEvent sent by Ruby (and Python - I tried both) ended up not working. I looked at the debugging output from all three, and it seems as if only AppleScript and Script Editor send the right parameters for a call that doesn't have a return value. In the end, I dropped back to using a shell call to osascript. Sigh. Maybe I'll change to using filesystem metadata.
Thankfully, tagging at the Flickr end was far easier (although their use of space-delimited tags means there's an annoying amount of faffy quoting), and now I have a script that will find the most recent 100 photos on Flickr, and see if they're in iPhoto. If so, it'll add the "flickr" tag to them (if necessary), while Flickr gets two machine tags (so they don't scare real people), one with the original file name and the other with the location of the current iPhoto image. (This isn't technically the same as the image that was uploaded, unfortunately, but it's still useful.)
The script is currently very much "programmer quality" - you need to be able to get a Flickr API key and know where to edit it into a Ruby script, plus it has a few caveats (as I said, it'll only do 100 photos, and it's also going to get confused if you have more than one image a second) - but if you're interested, feel free to download it and give it a go. (You can see the Flickr-side machine tags on most of my recent photos.) If you're at all interested in scripting applications, it might have a few useful tips, too.
So, what have we learnt?
- Flickr's API is pretty cool. Ruby's Flickr libraries are bitrotten.
- Scripting Bridge and language support in 10.5 is pretty cool too.
- Unfortunately, it's not entirely bug free, and the bugs are baffling.
- Some applications have rubbish scripting definitions.
- Tom Insam is full of useful hints for programming.
I think that'll do for one weekend.