<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: yui</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/yui.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2013-01-03T14:23:00+00:00</updated><author><name>Simon Willison</name></author><entry><title>What are the strategies for a front end developer to keep up to date with the emerging technologies?</title><link href="https://simonwillison.net/2013/Jan/3/what-are-the-strategies/#atom-tag" rel="alternate"/><published>2013-01-03T14:23:00+00:00</published><updated>2013-01-03T14:23:00+00:00</updated><id>https://simonwillison.net/2013/Jan/3/what-are-the-strategies/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/What-are-the-strategies-for-a-front-end-developer-to-keep-up-to-date-with-the-emerging-technologies/answer/Simon-Willison"&gt;What are the strategies for a front end developer to keep up to date with the emerging technologies?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Step one: find developers who you respect and subscribe to their blogs, follow them on Twitter/Google+/etc and try to understand what they are talking about and what they think is exciting.&lt;/p&gt;

&lt;p&gt;Step two: find some good dedicated online communities relating to those topics - mailing lists, forums, sub-reddits, Quora topics and so on. Get involved there.&lt;/p&gt;

&lt;p&gt;Step three: figure out the most vibrant conferences around that topic and go to one of them. For JavaScript Full Frontal in the UK or any of the JSconf series are worth a look. If you don't want to splash out for a conference, seek out local meetups and user groups and go to some free evening networking events.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-development"&gt;web-development&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/frontend"&gt;frontend&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="javascript"/><category term="web-development"/><category term="yui"/><category term="quora"/><category term="frontend"/></entry><entry><title>Porting Flickr to YUI 3: Lessons in Performance (at YUIConf 2010)</title><link href="https://simonwillison.net/2010/Nov/10/porting/#atom-tag" rel="alternate"/><published>2010-11-10T18:33:00+00:00</published><updated>2010-11-10T18:33:00+00:00</updated><id>https://simonwillison.net/2010/Nov/10/porting/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://lanyrd.com/2010/yuiconf/spdm/"&gt;Porting Flickr to YUI 3: Lessons in Performance (at YUIConf 2010)&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Some very interesting tips here. The new Flickr photo pages suffered from what I’ve been calling “Flash of Un-Behavioured Content”, where slow loading JavaScript results in poor behaviour from some UI controls. They started using “Action Queueing”, where a small JS stub ensures a loading indicator is shown for clicks on features that have not yet fully loaded. Also, it turns out some corporate firewalls (Sonicwall in particular) dislike URLs over 1600 characters, and filter out any URL with xxx in it.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/flickr"&gt;flickr&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/urls"&gt;urls&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/recovered"&gt;recovered&lt;/a&gt;&lt;/p&gt;



</summary><category term="flickr"/><category term="javascript"/><category term="urls"/><category term="yui"/><category term="recovered"/></entry><entry><title>Introducing the YUI 3 Gallery</title><link href="https://simonwillison.net/2009/Nov/4/yuigallery/#atom-tag" rel="alternate"/><published>2009-11-04T23:14:17+00:00</published><updated>2009-11-04T23:14:17+00:00</updated><id>https://simonwillison.net/2009/Nov/4/yuigallery/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.yuiblog.com/blog/2009/11/04/introducing-the-yui-3-gallery/"&gt;Introducing the YUI 3 Gallery&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Write a plugin for YUI3, BSD license it and sign a CLA and Yahoo! will push your module out to their CDN and make it loadable using the YUI().use() statement. They’re coordinating the submissions using GitHub.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/bsd"&gt;bsd&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/cla"&gt;cla&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/git"&gt;git&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/github"&gt;github&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/open-source"&gt;open-source&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yahoo"&gt;yahoo&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui3"&gt;yui3&lt;/a&gt;&lt;/p&gt;



</summary><category term="bsd"/><category term="cla"/><category term="git"/><category term="github"/><category term="javascript"/><category term="open-source"/><category term="yahoo"/><category term="yui"/><category term="yui3"/></entry><entry><title>YUI 3.0.0: First GA Release of YUI's Next-Generation Codeline</title><link href="https://simonwillison.net/2009/Sep/29/yui/#atom-tag" rel="alternate"/><published>2009-09-29T23:38:18+00:00</published><updated>2009-09-29T23:38:18+00:00</updated><id>https://simonwillison.net/2009/Sep/29/yui/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.yuiblog.com/blog/2009/09/29/yui-3-0-0/"&gt;YUI 3.0.0: First GA Release of YUI&amp;#x27;s Next-Generation Codeline&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
YUI 3 has some very neat ideas—everything is dynamically loaded, so you start with a tiny bootstrap script and call YUI().use(’module-name’) to load just the code you need. Congratulations to the team.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/libraries"&gt;libraries&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yahoo"&gt;yahoo&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui3"&gt;yui3&lt;/a&gt;&lt;/p&gt;



</summary><category term="javascript"/><category term="libraries"/><category term="yahoo"/><category term="yui"/><category term="yui3"/></entry><entry><title>Today's News and Yahoo!'s Developer Program</title><link href="https://simonwillison.net/2009/Jul/30/yahoo/#atom-tag" rel="alternate"/><published>2009-07-30T12:20:30+00:00</published><updated>2009-07-30T12:20:30+00:00</updated><id>https://simonwillison.net/2009/Jul/30/yahoo/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://developer.yahoo.net/blog/archives/2009/07/developer_update.html"&gt;Today&amp;#x27;s News and Yahoo!&amp;#x27;s Developer Program&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
“For SearchMonkey and BOSS, we currently do not have anything concrete to tell you” ... “We wanted to let you know that today’s news does not affect these products [YUI, YQL, Pipes]”.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/boss"&gt;boss&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/pipes"&gt;pipes&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/searchmonkey"&gt;searchmonkey&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yahoo"&gt;yahoo&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yahoo-pipes"&gt;yahoo-pipes&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ydn"&gt;ydn&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yql"&gt;yql&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;&lt;/p&gt;



</summary><category term="boss"/><category term="pipes"/><category term="searchmonkey"/><category term="yahoo"/><category term="yahoo-pipes"/><category term="ydn"/><category term="yql"/><category term="yui"/></entry><entry><title>Coupling asynchronous scripts</title><link href="https://simonwillison.net/2009/Apr/30/coupling/#atom-tag" rel="alternate"/><published>2009-04-30T19:57:38+00:00</published><updated>2009-04-30T19:57:38+00:00</updated><id>https://simonwillison.net/2009/Apr/30/coupling/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.stevesouders.com/blog/2008/12/27/coupling-async-scripts/"&gt;Coupling asynchronous scripts&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
More from Steve Souders, this time discussing methods to cause externally loaded scripts to execute in the correct order, obeying dependencies. Surprisingly there’s no mention of YUI loader or the Dojo packaging system.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/dojo"&gt;dojo&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/loading"&gt;loading&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/steve-souders"&gt;steve-souders&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;&lt;/p&gt;



</summary><category term="dojo"/><category term="javascript"/><category term="loading"/><category term="steve-souders"/><category term="yui"/></entry><entry><title>A Snapshot of The Yahoo! Photos Beta (from 2006)</title><link href="https://simonwillison.net/2009/Jan/12/snapshot/#atom-tag" rel="alternate"/><published>2009-01-12T22:21:16+00:00</published><updated>2009-01-12T22:21:16+00:00</updated><id>https://simonwillison.net/2009/Jan/12/snapshot/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.schillmania.com/content/entries/2009/yahoo-photos-frontend-thoughts/"&gt;A Snapshot of The Yahoo! Photos Beta (from 2006)&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Scott Schiller shares an internal retrospective on the Yahoo! Photos interface from 2006, which was years ahead of its time (they started building it before the term Ajax had even been coined). The material on memory management and event delegation is particularly interesting.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/ajax"&gt;ajax&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/eventdelegation"&gt;eventdelegation&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/scott-schiller"&gt;scott-schiller&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yahoo"&gt;yahoo&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yahoo-photos"&gt;yahoo-photos&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;&lt;/p&gt;



</summary><category term="ajax"/><category term="eventdelegation"/><category term="javascript"/><category term="scott-schiller"/><category term="yahoo"/><category term="yahoo-photos"/><category term="yui"/></entry><entry><title>Manage Amazon EC2 With New Web-Based AWS Management Console</title><link href="https://simonwillison.net/2009/Jan/9/amazon/#atom-tag" rel="alternate"/><published>2009-01-09T09:34:49+00:00</published><updated>2009-01-09T09:34:49+00:00</updated><id>https://simonwillison.net/2009/Jan/9/amazon/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://aws.typepad.com/aws/2009/01/manage-amazon-ec2-with-new-webbased-console.html"&gt;Manage Amazon EC2 With New Web-Based AWS Management Console&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Finally! I’m amazed it took Amazon so long to do this. Managing EC2 instances from a custom Firefox extension was pretty bizarre. It’s a very nice interface, built on top of YUI. Unfortunately you still have to manage your entire virtual server farm using a single shared Amazon account.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/amazon"&gt;amazon&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/aws"&gt;aws&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/cloud-computing"&gt;cloud-computing&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ec2"&gt;ec2&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;&lt;/p&gt;



</summary><category term="amazon"/><category term="aws"/><category term="cloud-computing"/><category term="ec2"/><category term="javascript"/><category term="yui"/></entry><entry><title>Visual Event</title><link href="https://simonwillison.net/2008/Dec/10/visualevent/#atom-tag" rel="alternate"/><published>2008-12-10T15:38:59+00:00</published><updated>2008-12-10T15:38:59+00:00</updated><id>https://simonwillison.net/2008/Dec/10/visualevent/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.sprymedia.co.uk/article/Visual+Event"&gt;Visual Event&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
External code loading bookmarklet that visualises the JavaScript events hooked up to the current page, and lets you view the source code of the event handling function for each one. Only works for events added by jQuery, YUI or MooTools since those libraries maintain a cache of event handlers that they add, to work around the standard DOM’s omission of handler introspection.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/allan-jardine"&gt;allan-jardine&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/bookmarklets"&gt;bookmarklets&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/dom"&gt;dom&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/events"&gt;events&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jquery"&gt;jquery&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mootools"&gt;mootools&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/visualevent"&gt;visualevent&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;&lt;/p&gt;



</summary><category term="allan-jardine"/><category term="bookmarklets"/><category term="dom"/><category term="events"/><category term="javascript"/><category term="jquery"/><category term="mootools"/><category term="visualevent"/><category term="yui"/></entry><entry><title>YUI 3.0 Preview Release 1</title><link href="https://simonwillison.net/2008/Aug/14/yui/#atom-tag" rel="alternate"/><published>2008-08-14T10:03:00+00:00</published><updated>2008-08-14T10:03:00+00:00</updated><id>https://simonwillison.net/2008/Aug/14/yui/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://yuiblog.com/blog/2008/08/13/yui3pr1/"&gt;YUI 3.0 Preview Release 1&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
YUI sandboxing is a really good idea, which cleverly addresses both the need to run multiple versions of the library at once and the complaints about how verbose traditional YUI code can get.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/sandboxing"&gt;sandboxing&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui3"&gt;yui3&lt;/a&gt;&lt;/p&gt;



</summary><category term="javascript"/><category term="sandboxing"/><category term="yui"/><category term="yui3"/></entry><entry><title>Doctype: /trunk/goog</title><link href="https://simonwillison.net/2008/May/14/revision/#atom-tag" rel="alternate"/><published>2008-05-14T21:12:07+00:00</published><updated>2008-05-14T21:12:07+00:00</updated><id>https://simonwillison.net/2008/May/14/revision/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://doctype.googlecode.com/svn/trunk/goog/"&gt;Doctype: /trunk/goog&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Google’s newly released JavaScript library (pure JavaScript, so more along the lines of YUI and jQuery than GWT). I haven’t found the documentation for it yet, but the code is extremely well commented. UPDATE: The documentation is spread throughout Doctype.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/dojo"&gt;dojo&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/goog"&gt;goog&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/google"&gt;google&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/googledoctype"&gt;googledoctype&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/gwt"&gt;gwt&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jquery"&gt;jquery&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/libraries"&gt;libraries&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;&lt;/p&gt;



</summary><category term="dojo"/><category term="goog"/><category term="google"/><category term="googledoctype"/><category term="gwt"/><category term="javascript"/><category term="jquery"/><category term="libraries"/><category term="yui"/></entry><entry><title>Insert Dojo and YUI bookmarklets</title><link href="https://simonwillison.net/2007/Dec/9/morethanseven/#atom-tag" rel="alternate"/><published>2007-12-09T12:38:03+00:00</published><updated>2007-12-09T12:38:03+00:00</updated><id>https://simonwillison.net/2007/Dec/9/morethanseven/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://morethanseven.net/posts/insert-dojo-and-yui-bookmarklets/"&gt;Insert Dojo and YUI bookmarklets&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Combine with Jash for interactive API experimentation on any web page.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/bookmarklets"&gt;bookmarklets&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/dojo"&gt;dojo&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/gareth-rushgrove"&gt;gareth-rushgrove&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jash"&gt;jash&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/shell"&gt;shell&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;&lt;/p&gt;



</summary><category term="bookmarklets"/><category term="dojo"/><category term="gareth-rushgrove"/><category term="jash"/><category term="javascript"/><category term="shell"/><category term="yui"/></entry><entry><title>YUI 2.4.0 released</title><link href="https://simonwillison.net/2007/Dec/5/yui/#atom-tag" rel="alternate"/><published>2007-12-05T15:32:31+00:00</published><updated>2007-12-05T15:32:31+00:00</updated><id>https://simonwillison.net/2007/Dec/5/yui/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://yuiblog.com/blog/2007/12/04/yuii-240/"&gt;YUI 2.4.0 released&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Lots of great new features, but the one I’m most excited about is Selector: YUI finally has a CSS query engine.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/libraries"&gt;libraries&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/selector"&gt;selector&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yahoo"&gt;yahoo&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;&lt;/p&gt;



</summary><category term="css"/><category term="javascript"/><category term="libraries"/><category term="selector"/><category term="yahoo"/><category term="yui"/></entry><entry><title>ActsAsUndoable</title><link href="https://simonwillison.net/2007/Sep/18/actsasundoable/#atom-tag" rel="alternate"/><published>2007-09-18T15:51:14+00:00</published><updated>2007-09-18T15:51:14+00:00</updated><id>https://simonwillison.net/2007/Sep/18/actsasundoable/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.nodetraveller.com/blog/javascript/actasundo/"&gt;ActsAsUndoable&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Lawrence Carvalho shows how robust undo functionality can be added to a JavaScript application through careful application of the Memento design pattern.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/actsasundoable"&gt;actsasundoable&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/design-patterns"&gt;design-patterns&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/lawrence-carvalho"&gt;lawrence-carvalho&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/memento"&gt;memento&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/undo"&gt;undo&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;&lt;/p&gt;



</summary><category term="actsasundoable"/><category term="design-patterns"/><category term="javascript"/><category term="lawrence-carvalho"/><category term="memento"/><category term="undo"/><category term="yui"/></entry><entry><title>Protoscript</title><link href="https://simonwillison.net/2007/Sep/7/protoscript/#atom-tag" rel="alternate"/><published>2007-09-07T22:55:26+00:00</published><updated>2007-09-07T22:55:26+00:00</updated><id>https://simonwillison.net/2007/Sep/7/protoscript/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://protoscript.com/"&gt;Protoscript&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
JavaScript tool designed for easy prototyping of JS interactions; powered by YUI and jQuery.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="http://looksgoodworkswell.blogspot.com/2007/09/announcing-protoscript.html"&gt;Bill Scott&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/bill-scott"&gt;bill-scott&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jquery"&gt;jquery&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/libraries"&gt;libraries&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/protoscript"&gt;protoscript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/prototyping"&gt;prototyping&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;&lt;/p&gt;



</summary><category term="bill-scott"/><category term="javascript"/><category term="jquery"/><category term="libraries"/><category term="protoscript"/><category term="prototyping"/><category term="yui"/></entry><entry><title>Some Notes on the YUI Rich Text Editor</title><link href="https://simonwillison.net/2007/Aug/15/some/#atom-tag" rel="alternate"/><published>2007-08-15T20:13:19+00:00</published><updated>2007-08-15T20:13:19+00:00</updated><id>https://simonwillison.net/2007/Aug/15/some/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://yuiblog.com/blog/2007/08/13/rte-notes/"&gt;Some Notes on the YUI Rich Text Editor&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Dav Glass explains how he achieved the impressive feat of building a rich text editor widget that also works in Safari.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/dav-glass"&gt;dav-glass&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/richtext"&gt;richtext&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/safari"&gt;safari&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;&lt;/p&gt;



</summary><category term="dav-glass"/><category term="javascript"/><category term="richtext"/><category term="safari"/><category term="yui"/></entry><entry><title>YUI 2.3.0</title><link href="https://simonwillison.net/2007/Aug/1/yui/#atom-tag" rel="alternate"/><published>2007-08-01T08:20:33+00:00</published><updated>2007-08-01T08:20:33+00:00</updated><id>https://simonwillison.net/2007/Aug/1/yui/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://yuiblog.com/blog/2007/07/31/yui-2-3-0-released/"&gt;YUI 2.3.0&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
New components are a rich text editor, dojo-style package loader, lazy ImageLoader, colour picker and unit test framework. Easier skinning as well.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/dojo"&gt;dojo&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/skinning"&gt;skinning&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/testing"&gt;testing&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;&lt;/p&gt;



</summary><category term="dojo"/><category term="javascript"/><category term="skinning"/><category term="testing"/><category term="yui"/></entry><entry><title>YUI-based Image Cropper Widget</title><link href="https://simonwillison.net/2007/Jul/30/julien/#atom-tag" rel="alternate"/><published>2007-07-30T12:56:57+00:00</published><updated>2007-07-30T12:56:57+00:00</updated><id>https://simonwillison.net/2007/Jul/30/julien/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.julienlecomte.net/blog/?p=6"&gt;YUI-based Image Cropper Widget&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Nice implementation of a useful widget.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/widget"&gt;widget&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;&lt;/p&gt;



</summary><category term="javascript"/><category term="widget"/><category term="yui"/></entry><entry><title>A JavaScript Module Pattern</title><link href="https://simonwillison.net/2007/Jun/12/javascript/#atom-tag" rel="alternate"/><published>2007-06-12T23:30:22+00:00</published><updated>2007-06-12T23:30:22+00:00</updated><id>https://simonwillison.net/2007/Jun/12/javascript/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://yuiblog.com/blog/2007/06/12/module-pattern/"&gt;A JavaScript Module Pattern&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
I’ve been using this pattern for a few months—it works really well, though I tend to keep my own code in my own namespace rather than adding it to YAHOO.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yahoo"&gt;yahoo&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;&lt;/p&gt;



</summary><category term="javascript"/><category term="yahoo"/><category term="yui"/></entry><entry><title>start.gotapi.com</title><link href="https://simonwillison.net/2007/Jun/5/gotapi/#atom-tag" rel="alternate"/><published>2007-06-05T18:05:52+00:00</published><updated>2007-06-05T18:05:52+00:00</updated><id>https://simonwillison.net/2007/Jun/5/gotapi/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://start.gotapi.com/"&gt;start.gotapi.com&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Lightning fast lookups of API documentation; includes Python docs, YUI, HTML, CSS and lots more.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/docs"&gt;docs&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/documentation"&gt;documentation&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/gotapi"&gt;gotapi&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/html"&gt;html&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;&lt;/p&gt;



</summary><category term="css"/><category term="docs"/><category term="documentation"/><category term="gotapi"/><category term="html"/><category term="python"/><category term="yui"/></entry><entry><title>Online and offline development with the YUI and Charles</title><link href="https://simonwillison.net/2007/May/15/online/#atom-tag" rel="alternate"/><published>2007-05-15T14:41:39+00:00</published><updated>2007-05-15T14:41:39+00:00</updated><id>https://simonwillison.net/2007/May/15/online/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://muffinresearch.co.uk/archives/2007/04/26/online-and-offline-development-with-the-yui-and-charles/"&gt;Online and offline development with the YUI and Charles&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Stuart Colville shows how the Charles debugging proxy can be used to serve up hosted YUI files while developing offline.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="http://yuiblog.com/blog/2007/05/15/in-the-wild-20070515/"&gt;Yahoo! User Interface Blog&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/charles"&gt;charles&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/debugging"&gt;debugging&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/offline"&gt;offline&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/proxies"&gt;proxies&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/stuart-colville"&gt;stuart-colville&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;&lt;/p&gt;



</summary><category term="charles"/><category term="debugging"/><category term="javascript"/><category term="offline"/><category term="proxies"/><category term="stuart-colville"/><category term="yui"/></entry><entry><title>Using YUI with the Yahoo! Maps AJAX API</title><link href="https://simonwillison.net/2007/May/8/using/#atom-tag" rel="alternate"/><published>2007-05-08T16:07:00+00:00</published><updated>2007-05-08T16:07:00+00:00</updated><id>https://simonwillison.net/2007/May/8/using/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://yuiblog.com/blog/2006/12/14/maps-plus-yui/"&gt;Using YUI with the Yahoo! Maps AJAX API&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
I got bitten by this today—if you’re using both YUI and a Yahoo! map on the same page you need to take a few precautions to avoid library version conflicts.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/yahoo"&gt;yahoo&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yahoo-maps"&gt;yahoo-maps&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;&lt;/p&gt;



</summary><category term="yahoo"/><category term="yahoo-maps"/><category term="yui"/></entry><entry><title>The YUI Team Is Hiring an Engineer To Work on Firebug</title><link href="https://simonwillison.net/2007/May/7/job/#atom-tag" rel="alternate"/><published>2007-05-07T22:40:20+00:00</published><updated>2007-05-07T22:40:20+00:00</updated><id>https://simonwillison.net/2007/May/7/job/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://yuiblog.com/blog/2007/05/07/firebug/"&gt;The YUI Team Is Hiring an Engineer To Work on Firebug&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
“... we’re opening a search for a full-time developer to work with Joe on advancing the Firebug roadmap.”


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/firebug"&gt;firebug&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jobs"&gt;jobs&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yahoo"&gt;yahoo&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;&lt;/p&gt;



</summary><category term="firebug"/><category term="jobs"/><category term="yahoo"/><category term="yui"/></entry><entry><title>The website to web application gradient</title><link href="https://simonwillison.net/2007/Apr/20/frameworkers/#atom-tag" rel="alternate"/><published>2007-04-20T00:30:45+00:00</published><updated>2007-04-20T00:30:45+00:00</updated><id>https://simonwillison.net/2007/Apr/20/frameworkers/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.flickr.com/photos/74105777@N00/464449077/"&gt;The website to web application gradient&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Jeremy snapped this cunning illustration at my JavaScript Libraries panel at the Web 2.0 Expo.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/alex-russell"&gt;alex-russell&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/bret-taylor"&gt;bret-taylor&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/dojo"&gt;dojo&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/flickr"&gt;flickr&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/gwt"&gt;gwt&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jeremy-keith"&gt;jeremy-keith&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/john-resig"&gt;john-resig&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jquery"&gt;jquery&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/matt-sweeney"&gt;matt-sweeney&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web2expo"&gt;web2expo&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web2expo07"&gt;web2expo07&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;&lt;/p&gt;



</summary><category term="alex-russell"/><category term="bret-taylor"/><category term="dojo"/><category term="flickr"/><category term="gwt"/><category term="javascript"/><category term="jeremy-keith"/><category term="john-resig"/><category term="jquery"/><category term="matt-sweeney"/><category term="web2expo"/><category term="web2expo07"/><category term="yui"/></entry><entry><title>Ext JS</title><link href="https://simonwillison.net/2007/Apr/3/extjs/#atom-tag" rel="alternate"/><published>2007-04-03T22:11:57+00:00</published><updated>2007-04-03T22:11:57+00:00</updated><id>https://simonwillison.net/2007/Apr/3/extjs/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://extjs.com/"&gt;Ext JS&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Jack Slocum is building a business around his excellent Ext JavaScript library (which can now run on top of YUI, jQuery or Prototype). The library itself is LGPL, but you can pay for a commercial license and support.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/jack-slocum"&gt;jack-slocum&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jquery"&gt;jquery&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/prototype-js"&gt;prototype-js&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yuiext"&gt;yuiext&lt;/a&gt;&lt;/p&gt;



</summary><category term="jack-slocum"/><category term="javascript"/><category term="jquery"/><category term="prototype-js"/><category term="yui"/><category term="yuiext"/></entry><entry><title>DED|Chain JavaScript Library</title><link href="https://simonwillison.net/2007/Mar/20/dedchain/#atom-tag" rel="alternate"/><published>2007-03-20T10:36:16+00:00</published><updated>2007-03-20T10:36:16+00:00</updated><id>https://simonwillison.net/2007/Mar/20/dedchain/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://dedchain.dustindiaz.com/"&gt;DED|Chain JavaScript Library&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Dustin’s new JavaScript library, which puts a JQuery style chained API on top of YUI.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="http://www.dustindiaz.com/introducing-ded-chain/"&gt;Introducing DED|Chain JavaScript Library&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/dedchain"&gt;dedchain&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/dustin-diaz"&gt;dustin-diaz&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jquery"&gt;jquery&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;&lt;/p&gt;



</summary><category term="dedchain"/><category term="dustin-diaz"/><category term="javascript"/><category term="jquery"/><category term="yui"/></entry><entry><title>Serving YUI Files from Yahoo! Servers</title><link href="https://simonwillison.net/2007/Feb/23/yui/#atom-tag" rel="alternate"/><published>2007-02-23T18:45:34+00:00</published><updated>2007-02-23T18:45:34+00:00</updated><id>https://simonwillison.net/2007/Feb/23/yui/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://developer.yahoo.com/yui/articles/hosting/"&gt;Serving YUI Files from Yahoo! Servers&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
If everyone who uses YUI links to the same set of files, your users will already have the YUI code cached in their browser when they arrive on your site.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="http://yuiblog.com/blog/2007/02/22/free-yui-hosting"&gt;Free Hosting of YUI Files from Yahoo!&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yahoo"&gt;yahoo&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;&lt;/p&gt;



</summary><category term="javascript"/><category term="yahoo"/><category term="yui"/></entry><entry><title>Fork JavaScript</title><link href="https://simonwillison.net/2007/Jan/20/fork/#atom-tag" rel="alternate"/><published>2007-01-20T23:39:39+00:00</published><updated>2007-01-20T23:39:39+00:00</updated><id>https://simonwillison.net/2007/Jan/20/fork/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://forkjavascript.org/"&gt;Fork JavaScript&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
A great name for Yet Another JavaScript Library. This one tries to combine the best bits from YUI and Prototype.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/forkjavascript"&gt;forkjavascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/prototype-js"&gt;prototype-js&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;&lt;/p&gt;



</summary><category term="forkjavascript"/><category term="javascript"/><category term="prototype-js"/><category term="yui"/></entry><entry><title>YUI CSS Grid builder</title><link href="https://simonwillison.net/2006/Dec/16/grid/#atom-tag" rel="alternate"/><published>2006-12-16T22:30:39+00:00</published><updated>2006-12-16T22:30:39+00:00</updated><id>https://simonwillison.net/2006/Dec/16/grid/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://blog.davglass.com/files/yui/grids/"&gt;YUI CSS Grid builder&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
The YUI CSS grid system can be hard to get your head around. This interactive tool makes it much easier to figure out.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="http://www.ejeliot.com/pages/quick-links-archive"&gt;Ed Eliot&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;&lt;/p&gt;



</summary><category term="css"/><category term="javascript"/><category term="yui"/></entry><entry><title>Notes on JavaScript Libraries</title><link href="https://simonwillison.net/2006/Jun/26/libraries/#atom-tag" rel="alternate"/><published>2006-06-26T15:03:00+00:00</published><updated>2006-06-26T15:03:00+00:00</updated><id>https://simonwillison.net/2006/Jun/26/libraries/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;a href="http://www.vivabit.com/atmedia2006/"&gt;@media 2006&lt;/a&gt; was a blast. Great talks, great people and some of the highest production values I've ever seen at a conference (check out &lt;a href="http://www.flickr.com/search/?q=atmedia2006+bags"&gt;the bags&lt;/a&gt;!).&lt;/p&gt;

&lt;p&gt;I sat on the &lt;a href="http://www.vivabit.com/atmedia2006/sessions/#dom"&gt;JavaScript Libraries: Friend or Foe?&lt;/a&gt; panel, with PPK, Dan Webb, Stuart Langridge and Cameron Adams chairing. It was my first participation in a panel and I really enjoyed it - I've always liked the Q&amp;amp;A bit of giving talks. JavaScript Libraries are an enormous topic but I felt we did them justice considering the time available. For the record, here are the key points that I wanted to get across:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Large JavaScript applications need some kind of library&lt;/strong&gt; - even if it's one built especially for that application. There are a number of problems in JavaScript (most of them originating with browser incompatibilities) that any moderately complex application will need to deal with - things like normalised event handling, DOM node selection, sane animation or drag and drop. Solve these problems once so you can get on to the interesting task of building the application. If you can find a library that solves them for you so much the better!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The big four.&lt;/strong&gt; &lt;a href="http://dojotoolkit.org/"&gt;Dojo&lt;/a&gt;, &lt;a href="http://mochikit.com/"&gt;MochiKit&lt;/a&gt;, &lt;a href="http://prototype.conio.net/"&gt;Prototype&lt;/a&gt;/&lt;a href="http://script.aculo.us/"&gt;Scriptaculous&lt;/a&gt; and the &lt;a href="http://developer.yahoo.com/yui/"&gt;Yahoo! UI Library&lt;/a&gt; are the top of the pile as far as I'm concerned. They cover the bases effectively and each one offers something interesting that makes it worth studying in its own right. If you plan to evaluate some existing libraries these make an excellent starting point.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Leaky abstractions.&lt;/strong&gt; Joel Spolsky's essay &lt;a href="http://www.joelonsoftware.com/articles/LeakyAbstractions.html"&gt;The Law of Leaky Abstractions&lt;/a&gt; is my favourite of all of his online articles. It's basic tenet is that abstractions that are designed to save the programmer time inevitably leak, and if they leak at a lower level of abstraction than the programmer is familiar with they prove almost impossible to debug. Paradoxically, the more time saving abstractions you are using the more you actually have to know.&lt;/p&gt;

&lt;p&gt;JavaScript is possibly the leakiest abstraction of them all, thanks to the many different browser environments it runs in. If you rely on a library to abstract away the browser bugs from you you are certain to run in to a bug that you can't fix sooner or later. Don't use libraries as crutches; if you're not prepared to figure out what the library is doing for you you'll end up in a world of pain further down the line.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Community and documentation matter.&lt;/strong&gt; As with all open-source software, it's a good idea to get a feel for the amount of community activity around a project before you commit to building on it. The big four all have active communities, which means less bugs, more support and a faster rate of improvement. Likewise, good documentation is invaluable.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Libraries should play well with others.&lt;/strong&gt; Reusable code that excludes other code from being reused has severely limited long-term value. In JavaScript, that means that libraries that mess with Object.prototype or pollute global namespaces should be treated with caution. The Prototype library was a major culprit here, but thankfully has cleaned up its act (at least with regards to altering Object.prototype) in recent releases. It's all very well saying that you'll always be using code built with your core language modifications in mind, but you may well change your tune when you try to incorporate Yahoo! or Google Maps and everything breaks.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Go with the grain.&lt;/strong&gt; If you take the time to learn it properly, JavaScript is a powerful and surprisingly elegant language. Good JavaScript code takes advantage of its dynamic, functional nature. Libraries that promise to take the pain out of JavaScript by &lt;a href="http://code.google.com/webtoolkit/" title="The Google Web Toolkit"&gt;writing the code for you&lt;/a&gt; probably aren't as smart as they seem.  Abstractions leak.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Dan Webb has &lt;a href="http://www.sitepoint.com/article/javascript-library"&gt;a good comparison of the big four&lt;/a&gt; on SitePoint, although he did overlook &lt;a href="http://developer.yahoo.com/yui/animation/"&gt;YUI's Animation library&lt;/a&gt; which I consider a highlight.&lt;/p&gt;

&lt;p&gt;For more accurate coverage of the @media panel itself, take a look at my co-worker Paul Hammond's &lt;a href="http://www.paulhammond.org/2006/06/atmedia2/javascript"&gt;detailed notes&lt;/a&gt;.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/atmedia"&gt;atmedia&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/dojo"&gt;dojo&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/libraries"&gt;libraries&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mochikit"&gt;mochikit&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/prototype-js"&gt;prototype-js&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/speaking"&gt;speaking&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/my-talks"&gt;my-talks&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/yui"&gt;yui&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="atmedia"/><category term="dojo"/><category term="javascript"/><category term="libraries"/><category term="mochikit"/><category term="prototype-js"/><category term="speaking"/><category term="my-talks"/><category term="yui"/></entry></feed>