1636 words on Software
Once more I am frustrated with software. And it’s not the MS-Office kind of frustration. Because that product doesn’t let you down. You expect it to suck and it does. It often feels much more frustrating to see small and more or less cool pieces of software pick up a great idea and then fail to actually be useful for yourself. They may not fail by a big margin. It may even just be that different of such small softwares look like they could really do exactly what you want when tied together. And then it takes a few minutes to figure out that actually tying them together is quite tricky and requires more time and expertise than you want to spend or have.
More often than not these situations feel like the maker of the software in question is letting you down. They come up with a cool and promising product. But it remains isolated and often is fixed to usage as originally envisioned by its creators. Try to go one step beyond that and you’ll face small or even huge roadblocks. Sure, it’s hard to make software ‘open minded’ in that way, but this often seems to be what distinguishes great software from its frustrating cousins. The crucial question doesn’t boil down to whether software can do something in principle but rather whether it lets you do it with reasonably effort.
It could be said that it’s this which many of the religious software wars boil down to. Linux may beat Mac OS X in features and flexibility any day. But it doesn’t just work
and thus only people with a special agenda (servers, open source zealotry, geekery) will find it compelling to use. These can be completely worthwhile and honourable agendas, but they are for a minority these days.
One of the genius tragedies on the Mac is AppleScript and its both simpler and more advanced sibling Automator. They try to do the right thing and open up the borders of the various applications on your computer and let you mix and match their features as you see fit. That’s the genius. If you have actually used AppleScript or Automator, you will most probably have noticed that in AppleScript things frequently end up being much more complicated that they should be thanks to the intrinsic weirdness of AppleScript. And when using Automator for something non-trivial, you will probably have quickly hit the wall where there wasn’t an action available for the very step you wanted to do and you saw your options reduced to giving up or manually writing an AppleScript action to do that step. I.e. both of these technologies aren’t as convenient as you’d expect them to be – the tragedy.
Automator is new so we may forgive its weaknesses, but I wonder whether it ever can reach beyond the almost trivial, as a bunch of pre-defined actions may just not be free-form enough. AppleScript, on the other hand, is old. It has proven itself for sure. But it has also formed the saying that it is a language that is easy to read but almost impossible to write. For a reason. There are rumours from time to time that Apple are working on that. And I hope they are true. But I won’t hold my breath.
But enough for these opening statements and the intricacies of some weird Apple technologies. I wanted to mention another software experience I recently ran into. A simple task involving both parts of the Mac OS and the internet. One that just required them to mildly work together. And one where they almost managed to do the right thing out of the box. But one where improving things from there seemed far to difficult.
My idea was a simple one: I enjoy photos and quite like looking at the Black and White groups over on Flickr. I thought having those photos as a screensaver would be great. And that’s where the problems started. Let me run through the software involved in this.
Mac OS X comes with bunch of screensavers, including one that can display slideshows. So the tool for presenting those photos is already in place. We just need to get the photos into that screensaver. Which is a bit tricky as the screensaver can only handle photos from iPhoto albums or from folders on your hard drive. While the photos I am interested in live on the Web rather than in an iPhoto album or on my hard drive, iPhoto 6 does support photocasts and you can just subscribe to the feed of a photo pool as a photocast. iPhoto will then display the recent photos from that pool in a photo album which in turn you can use for your screensaver.
Done?
Well, not quite. Because when you actually run the screensaver you will notice that the photos displayed in it are at a tiny size. And instead of being gorgeous and stunning, they are mainly pixely. And this is where the problems start: We almost get what we want but those pre-packaged solutions don’t give us the ability to switch to the larger size. So my next question was how to fix that.
In principle Flickr can do all we want. They have a powerful API which looks like it lets you browse photos and groups at your heart’s content. I am pretty sure I could get exactly what I want using the API: A combined feed of photos from several groups at large sizes.
Perfect?
Well, not for me. Because using the API means that you have to get your hands dirty and start scripting. Not only am I not a fan of those web scripting languages (and loathe their crappy documentation and am annoyed by the general inconvenience of running stuff on a server where I can’t really see what’s going on or even debug), it’d also require a bit of an effort. And I just wanted a fun screensaver without putting much work into it.
So I looked around a bit and hoped to find some online tools to do the actual work for me. And I felt lucky when people pointed to Yahoo Pipes in the past days.
What an excellent idea! Bringing the Unix Pipe to the web. Sounds like this could be pretty much the ultimate tool in making things work together. Mixing together web wide applications with the ease of a graphical interface.
Thrilled?
For about a second. Unfortunately the product looks severely half-assed at this stage. The number of tools it features is so small and limited that it makes Automator look flexible and very powerful in comparisonl. In fact you can do so little with Pipes that I didn’t even hit the the annoyance that a graphical interface of the Quartz Composer type causes once you want to do something non-trivial. (I guess this could be an interesting starting point for a Google vs. Yahoo essay [although I doubt they are still playing in the same league], but I digress.)
Still, and magically, I managed to at least find a use for that service: I could use its ‘Union’ tool to merge two photo pool feeds. To be sure this was far from perfect: While the Pipes site does support Flickr, that support is so limited that it can’t fetch photo pools and I had to enter the feed URL for that manually. And the XML of its output isn’t exactly pretty…
I had hoped to find something simple in that Pipes service like a search and replace tool. With that – my cunning plan was – I could replace the ‘_m’ in flickr image URLs by a ‘_b’ in order to get large images in the photocast instead of small ones. But a simple search and replace feature doesn’t seem to be part of the Pipes site (yet).
So there I was, a bit closer to my goal but still essentially not having reached much. So I figured I could just do the search and replace in PHP on our own server.
After a bit of struggling with PHP in itself (our server doesn’t have that http module installed and I had to settle with curl which isn’t quite as convenient) and some help from Steffen to help me find my mistakes, this worked out all right. I could do a simple search and replace. And that gave me my photocast.
Cool?
Errm, not quite. Because I had wrongly assumed that all images are available in flickr in the large size. But apparently they aren’t. And my wonderful photocast contained plenty of ‘image not available’ graphics from flickr. Which of course sucks. So I had to switch to the medium size, which is better than the original small size but things remain rather ugly that way. This, from my convenience’s point of view, would make it great if flickr offered a ‘best’ size which gives you an URL for the greatest size available without requiring you to dig into the API and figure that out for yourself.
So far so bad. Despite all those tools at my disposal, it seems there still is no way to get the result I want. And it’s more frustrating this way than it would be if none of those tools existed at all. Having something that’s definitely within reach and not being able to do it is just much worse than never getting the idea to do it to begin with.
I looked a bit around and while there are a few Mac screensavers around that are Flickr related, none of them seems up to the job I want them to do: display a group or two and look good. In case I missed one, please let me know.
I use ShuffleSaver, which works fine for tags or users but doesn’t know about groups/pools. Sigh.