Simon Willison’s Weblog


Flickr without the Flash

10th April 2005

One of my favourite panels at SxSW this year was the Flash vs. HTML Game Show, in which a team of HTML/JavaScript gurus took on a team of Flash gurus showing off pre-prepared solutions to tasks set for the panel. One of the challenges was to come up with enhancements to Flickr using the team’s assigned technology.

The JavaScript team were happy to admit that Flickr’s use of Flash was extremely smart. In addition to the incredible Organizr, Flickr uses Flash to power the annotations attached to images. Chris Wetherell on the HTML team showed off a partial implementation of this feature, and emphasized that with a little more time it could duplicate the Flash implementation.

I don’t know if Neil Kandalgaonkar was at SxSW, but he’s taken the inspired step of combining a JavaScript reimplementation of Flickr’s annotations with greasemonkey. The result is Lickr, by far the most impressive userscript released to date. Lickr hooks in to Flickr, removes the Flash annotation interface entirely and replaces it with a HTML/JavaScript/Ajax equivalent. Get this though... the JavaScript one is better than the original Flash. It loads faster, feels smoother and allows you to open dozens of photos in new tabs without your browser slowing to a crawl.

Be sure to read Neil’s notes on the implementation. He had to reverse engineer the communication between the Flash file and the backend server, and ended up producing a mini-JavaScript API to manage the interactions.

Neil also touches on the fascinating cultural issues brought up by userscripts:

Lately I’ve been considering Lickr as an experiment in web politics. Exactly how far can the users go in controlling a website? Right now I’m at the point where I can stop thinking about just duplicating Flickr; I can think about adding features.

Adding Persistent Searches to Gmail has already demonstrated new features enabled by userscripts, and that’s evidently just the tip of the iceberg. Plans are underway to provide greasemonkey with its own persistence mechanism. Once that happens, the sky’s the limit.

Previously hosted at