<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: neil-kandalgaonkar</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/neil-kandalgaonkar.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2005-04-10T03:29:46+00:00</updated><author><name>Simon Willison</name></author><entry><title>Flickr without the Flash</title><link href="https://simonwillison.net/2005/Apr/10/lickr/#atom-tag" rel="alternate"/><published>2005-04-10T03:29:46+00:00</published><updated>2005-04-10T03:29:46+00:00</updated><id>https://simonwillison.net/2005/Apr/10/lickr/#atom-tag</id><summary type="html">
    &lt;p&gt;One of my favourite panels at &lt;acronym title="South by South West"&gt;SxSW&lt;/acronym&gt; this year was &lt;a href="http://2005.sxsw.com/interactive/conference/panels/?action=show&amp;amp;id=IAP0062"&gt;the Flash vs. HTML Game Show&lt;/a&gt;, 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 &lt;a href="http://www.flickr.com/"&gt;Flickr&lt;/a&gt; using the team's assigned technology.&lt;/p&gt;

&lt;p&gt;The JavaScript team were happy to admit that Flickr's use of Flash was extremely smart. In addition to the incredible &lt;a href="http://www.flickr.com/tools/organizr.gne"&gt;Organizr&lt;/a&gt;, Flickr uses Flash to power the annotations attached to images. &lt;a href="http://www.massless.org/"&gt;Chris Wetherell&lt;/a&gt; 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.&lt;/p&gt;

&lt;p&gt;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 &lt;a href="http://greasemonkey.mozdev.org/"&gt;greasemonkey&lt;/a&gt;. The result is &lt;a href="http://brevity.org/code/mozilla/greasemonkey/lickr/"&gt;Lickr&lt;/a&gt;, 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 &lt;em&gt;better&lt;/em&gt; 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.&lt;/p&gt;

&lt;p&gt;Be sure to read Neil's &lt;a href="http://brevity.org/code/mozilla/greasemonkey/lickr/"&gt;notes&lt;/a&gt; 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 &lt;acronym title="Application Programming Interface"&gt;API&lt;/acronym&gt; to manage the interactions.&lt;/p&gt;

&lt;p&gt;Neil also touches on the fascinating cultural issues brought up by userscripts:&lt;/p&gt;

&lt;blockquote cite="http://brevity.org/code/mozilla/greasemonkey/lickr/"&gt;&lt;p&gt;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.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="http://persistent.info/archives/2005/03/01/gmail-searches"&gt;Adding Persistent Searches to Gmail&lt;/a&gt; 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.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/flash"&gt;flash&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/flickr"&gt;flickr&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/greasemonkey"&gt;greasemonkey&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/neil-kandalgaonkar"&gt;neil-kandalgaonkar&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/sxsw"&gt;sxsw&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="flash"/><category term="flickr"/><category term="greasemonkey"/><category term="javascript"/><category term="neil-kandalgaonkar"/><category term="sxsw"/></entry></feed>