<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.yuiblog.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.yuiblog.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><!-- generator="wordpress/2.3.3" --><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Yahoo! User Interface Blog</title>
	<link>http://yuiblog.com/blog</link>
	<description>News and Articles about Designing and Developing wiht Yahoo! Libraries.</description>
	<pubDate>Fri, 09 May 2008 00:04:40 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.yuiblog.com/YahooUserInterfaceBlog" type="application/rss+xml" /><item>
		<title>inputEx — a YUI-based Forms Utility</title>
		<link>http://feeds.yuiblog.com/~r/YahooUserInterfaceBlog/~3/286442055/</link>
		<comments>http://yuiblog.com/blog/2008/05/08/inputex/#comments</comments>
		<pubDate>Fri, 09 May 2008 00:04:40 +0000</pubDate>
		<dc:creator>Eric Miraglia</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://yuiblog.com/blog/2008/05/08/inputex/</guid>
		<description><![CDATA[
Parisian coder Eric Abouaf (aka &#8220;Neyric&#8221;) released version 0.1.0 of his YUI-based forms library, inputEx.
As of this release, inputEx supports only client-side-generated views &#8212; form fields are configured in a JSON format and created for you on the fly. Eric identifies the following unique features in inputEx:


complex data structures (list/objects/tree/list of urls/objects of objects etc&#8230;)
composition [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://javascript.neyric.com/blog/2008/05/07/inputex-010-released/"><img src="http://yuiblog.com/assets/inputx.png" alt="Click through to visit the announcement for inputEx v. 0.1.0" width="510" height="236" ></a></p>
<p>Parisian coder Eric Abouaf (aka &#8220;Neyric&#8221;) <a href="http://javascript.neyric.com/blog/2008/05/07/inputex-010-released/">released version 0.1.0</a> of his YUI-based forms library, <a href="http://javascript.neyric.com/inputex/">inputEx</a>.</p>
<p>As of this release, inputEx supports only client-side-generated views &mdash; form fields are configured in a JSON format and created for you on the fly. Eric identifies the following unique features in inputEx:</p>
<blockquote>
<ul>
<li><strong>complex data structures</strong> (list/objects/tree/list of urls/objects of objects etc&#8230;)</li>
<li><strong>composition</strong> between the fields (for &#8220;meta&#8221;-fields such as InPlaceEdit, List, Tree, Pair, &#8230;)</li>
<li><strong>javascript object mapping</strong> for greater interactivity</li>
<li>a <strong>common &#8220;updated&#8221; event</strong> to handle different browsers and different field interactions</li>
</ul>
</blockquote>
<p>Eric has <a href="http://javascript.neyric.com/inputex/doc/js_docs_out/index.html">API docs</a>, a <a href="http://javascript.neyric.com/inputex/doc/js_docs_out/getting_started.html">Getting Started</a> tutorial, <a href="http://javascript.neyric.com/inputex/doc/js_docs_out/examples.html">examples</a>, and more <a href="http://javascript.neyric.com/inputex/">on the website</a>.  He&#8217;s looking for contributors, if you&#8217;re interested in extending the library; check out the website for full details on the project.</p>
<div class="feedflare">
<a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=PfnEbH"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=PfnEbH" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=2rU2kH"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=2rU2kH" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=zofJWh"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=zofJWh" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=xXMDyh"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=xXMDyh" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://yuiblog.com/blog/2008/05/08/inputex/feed/</wfw:commentRss>
		<feedburner:origLink>http://yuiblog.com/blog/2008/05/08/inputex/</feedburner:origLink></item>
		<item>
		<title>Yahoo! Juku: Calling Tomorrow’s Front-End Rock Stars</title>
		<link>http://feeds.yuiblog.com/~r/YahooUserInterfaceBlog/~3/284236260/</link>
		<comments>http://yuiblog.com/blog/2008/05/05/juku-2/#comments</comments>
		<pubDate>Mon, 05 May 2008 22:41:08 +0000</pubDate>
		<dc:creator>Nick Fogler</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://yuiblog.com/blog/2008/05/05/juku-2/</guid>
		<description><![CDATA[A few months ago, we posted an article describing an innovative training program here at Yahoo called the &#8220;Juku.&#8221;  The basic premise of the Juku is to help fill the void of professional-grade Front-End Web Development training.  Our motives for doing this are at least a little selfish: The program provides us with [...]]]></description>
			<content:encoded><![CDATA[<p>A few months ago, we posted <a href="http://yuiblog.com/blog/2007/12/06/juku/">an article describing an innovative training program here at Yahoo called the &#8220;Juku.&#8221;</a>  The basic premise of the Juku is to help fill the void of professional-grade Front-End Web Development training.  Our motives for doing this are at least a little selfish: The program provides us with a stream of talent well-versed in skills that tend to be challenging to source and hire.  On the flip-side, we remain committed to using the program as a platform to further the state of Front End Engineering for the entire development community.</p>
<p>The training curriculum includes semantic HTML, CSS, JavaScript, DOM, YUI, PHP, accessibility, performance, and more.  Juku trainees are full-time Yahoo employees, and upon completion of training they move on to roles within the Yahoo network as Front End Engineers.  Last fall, we piloted the program with a group of 13 students and the results have been overwhelmingly positive.</p>
<p>We&#8217;re excited to announce that we currently have a few openings to join our next 10-week training session beginning in mid-June in Sunnyvale, California.  If you&#8217;re a budding Front-End genius with a strong background in programming fundamentals and a passion to learn, <a href="https://yahoo.recruitmax.com/MAIN/careerportal/Job_Profile.cfm?szOrderID=14954&#038;szReturnToSearch=1&#038;szWordsToHighlight">we’d like to hear from you</a>.  But, the good news is you don’t have to work for Yahoo to benefit from Juku training: The lecture portions of the training will be videotaped for distribution via the <a href="http://developer.yahoo.com">Yahoo! Developer Network</a> later this summer.</p>
<p>To apply for a spot in the next Juku training session, check the <a href="https://yahoo.recruitmax.com/MAIN/careerportal/Job_Profile.cfm?szOrderID=14954&#038;szReturnToSearch=1&#038;szWordsToHighlight">job posting</a>. Applications must be received by May 15th.</p>
<div class="feedflare">
<a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=qPfMbH"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=qPfMbH" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=kyusjH"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=kyusjH" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=3DJmzh"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=3DJmzh" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=ANN8uh"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=ANN8uh" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://yuiblog.com/blog/2008/05/05/juku-2/feed/</wfw:commentRss>
		<feedburner:origLink>http://yuiblog.com/blog/2008/05/05/juku-2/</feedburner:origLink></item>
		<item>
		<title>Free Chapter from Douglas Crockford’s “JavaScript: The Good Parts”</title>
		<link>http://feeds.yuiblog.com/~r/YahooUserInterfaceBlog/~3/284017269/</link>
		<comments>http://yuiblog.com/blog/2008/05/05/crockford-inheritance/#comments</comments>
		<pubDate>Mon, 05 May 2008 15:51:16 +0000</pubDate>
		<dc:creator>Eric Miraglia</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://yuiblog.com/blog/2008/05/05/crockford-inheritance/</guid>
		<description><![CDATA[The #2 book on Amazon&#8217;s JavaScript shelf this morning is Douglas Crockford&#8217;s forthcoming Javascript: The Good Parts (currently available for preorder and due for release later this month).  In this volume, Douglas articulates a philosophy of coding in JavaScript that builds up on and extends the content of his popular video series and articles. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://yuiblog.com/assets/pdf/crockford-good-parts-ch-5.pdf"><img src="http://yuiblog.com/assets/crockford-cover.png" alt="Click through to read Ch. 5 of Douglas's forthcoming book." width="300" height="385" hspace="5" align="right"></a>The <a href="http://www.amazon.com/gp/bestsellers/books/3617/ref=pd_zg_hrsr_b_1_5_last">#2 book on Amazon&#8217;s JavaScript shelf</a> this morning is Douglas Crockford&#8217;s forthcoming <em><a href="http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742/">Javascript: The Good Parts</a></em> (currently available for preorder and due for release later this month).  In this volume, Douglas articulates a philosophy of coding in JavaScript that builds up on and extends the content of his <a href="http://developer.yahoo.com/yui/theater/">popular video series</a> and <a href="http://crockford.com/javascript/">articles</a>. The premise, as Douglas puts it: &quot;Most programming languages contain good parts and bad parts. I discovered that I could be a better programmer by using only the good parts and avoiding the bad parts.&quot;</p>
<p>Douglas and his editors at O&#8217;Reilly were kind enought to let us offer a sneak preview of <em>JavaScript: The Good Parts </em>here:</p>
<ul>
<li><strong><a href="http://yuiblog.com/assets/pdf/crockford-good-parts-ch-5.pdf">Chapter 5: Inheritance</a></strong> &mdash; 1.2MB PDF</li>
</ul>
<p>Here&#8217;s how Douglas opens the discussion of inheritance in JavaScript:</p>
<blockquote>
<p>Inheritance is an important topic in most programming languages.</p>
<p>In the classical languages (such as Java), inheritance (or <code>extends</code>) provides two useful<br />
services. First, it is a form of code reuse. If a new class is mostly similar to an existing<br />
class, you only have to specify the differences. Patterns of code reuse are extremely<br />
important because they have the potential to significantly reduce the cost of software<br />
development. The other benefit of classical inheritance is that it includes the<br />
specification of a system of types. This mostly frees the programmer from having to<br />
write explicit casting operations, which is a very good thing because when casting,<br />
the safety benefits of a type system are lost.</p>
<p>JavaScript, being a loosely typed language, never casts. The lineage of an object is<br />
irrelevant. What matters about an object is what it can do, not what it is descended<br />
from.</p>
<p>JavaScript provides a much richer set of code reuse patterns. It can ape the classical<br />
pattern, but it also supports other patterns that are more expressive. The set of possible<br />
inheritance patterns in JavaScript is vast. In this chapter, we&#8217;ll look at a few of the<br />
most straightforward patterns. Much more complicated constructions are possible,<br />
but it is usually best to keep it simple.</p>
<p><a href="http://yuiblog.com/assets/pdf/crockford-good-parts-ch-5.pdf">Click here to keep reading</a> (1.2MB; PDF).</p>
</blockquote>
<p>Thanks to Laurel Ackerman and Simon St. Laurent at O&#8217;Reilly for the permission to share the sample chapter.</p>
<div class="feedflare">
<a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=IK7MJH"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=IK7MJH" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=7oyFvH"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=7oyFvH" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=oILhOh"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=oILhOh" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=CS0h9h"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=CS0h9h" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://yuiblog.com/blog/2008/05/05/crockford-inheritance/feed/</wfw:commentRss>
		<feedburner:origLink>http://yuiblog.com/blog/2008/05/05/crockford-inheritance/</feedburner:origLink></item>
		<item>
		<title>Writing a WYSIWYG Wiki Editor with YUI and Grails</title>
		<link>http://feeds.yuiblog.com/~r/YahooUserInterfaceBlog/~3/281734508/</link>
		<comments>http://yuiblog.com/blog/2008/05/01/wiki-rte/#comments</comments>
		<pubDate>Thu, 01 May 2008 23:18:01 +0000</pubDate>
		<dc:creator>Eric Miraglia</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Glen Smith]]></category>

		<category><![CDATA[Grails]]></category>

		<category><![CDATA[Rich Text Editor]]></category>

		<category><![CDATA[RTE]]></category>

		<category><![CDATA[textile-j]]></category>

		<category><![CDATA[wiki]]></category>

		<category><![CDATA[yui]]></category>

		<guid isPermaLink="false">http://yuiblog.com/blog/2008/05/01/wiki-rte/</guid>
		<description><![CDATA[
One of the challenges faced in creating and deploying Rich Text Editors is the number of markup formats you may need to support on the output side &#8212; ranging from HTML to Wiki-style text to purely idiosyncratic markup styles.  Dav worked hard on the YUI Rich Text Editor to make output transformations as straightforward [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.bytecode.com.au/glen/2008/05/01/writing-a-wysiwyg-wiki-editor-with-yui-and-grails.html"><img src="http://yuiblog.com/assets/wikirte-1.png" alt="Read Glen Smith's tutorial on using the YUI RTE to create and edit wiki text." width="510" height="197"></a></p>
<p><a href="http://blogs.bytecode.com.au/glen/2008/05/01/images/2008/wikiEditor.mov"><img src="http://yuiblog.com/assets/wikirte-2.png" alt="Check out Glen's screencast showing the editor in action." width="300" height="270" hspace="10" vspace="3" align="right"></a>One of the challenges faced in creating and deploying Rich Text Editors is the number of markup formats you may need to support on the output side &mdash; ranging from HTML to Wiki-style text to purely idiosyncratic markup styles.  Dav worked hard on <a href="http://developer.yahoo.com/yui/editor/">the YUI Rich Text Editor</a> to make output transformations as straightforward as possible.  (If you&#8217;re doing YUI RTE work and haven&#8217;t seen Dav&#8217;s video intro to the component, <a href="http://video.yahoo.com/watch/2359450/7378948">you can check it out here</a>.)</p>
<p>Glen Smith from Canberra shared some antipodean YUI goodness today with <a href="http://blogs.bytecode.com.au/glen/2008/05/01/writing-a-wysiwyg-wiki-editor-with-yui-and-grails.html">a quick tutorial on using the YUI RTE for editing Wiki text</a>.  He&#8217;s been using the <a href="http://grails.codehaus.org/YUI+Plugin">Grails YUI Plugin</a>, mixing in a little <a href="https://textile-j.dev.java.net/">textile-j</a>, and he&#8217;s got something working well enough for version 1:</p>
<blockquote>
<p>Turns out the recipe for making all this work is pretty straighforward:</p>
<ul>
<li>When switching from Wiki markup to HTML, do an Ajax call to a backend Grails controller that uses <a href="https://textile-j.dev.java.net/">textile-j</a> to convert from textile markup to html. Feed the result of the AJAX call to the YUI Rich Editor and you&#8217;re in business.</li>
<li>To support switching from RichText to Textile, again do an Ajax call back to the Grails controller to the do the conversion. This time you&#8217;re on your own in regexp land, but you can trim the amount of work you&#8217;ve got to do by what you expose in the Rich editor. Return the results and inject into the Wiki textarea. </li>
<li>To get the underlying html from the editor just use <code>myEditor.getEditorHTML()</code>. Awesome!</li>
</ul>
</blockquote>
<p>For more, check out Glen&#8217;s <a href="http://blogs.bytecode.com.au/glen/2008/05/01/writing-a-wysiwyg-wiki-editor-with-yui-and-grails.html">blog post</a> and accompanying <a href="http://blogs.bytecode.com.au/glen/2008/05/01/images/2008/wikiEditor.mov">QuickTime movie</a>.</p>
<div class="feedflare">
<a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=tp3tsH"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=tp3tsH" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=hgilPH"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=hgilPH" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=drGM9h"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=drGM9h" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=ph2nFh"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=ph2nFh" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://yuiblog.com/blog/2008/05/01/wiki-rte/feed/</wfw:commentRss>
		<feedburner:origLink>http://yuiblog.com/blog/2008/05/01/wiki-rte/</feedburner:origLink></item>
		<item>
		<title>Unobtrusive Rollovers Using YUI</title>
		<link>http://feeds.yuiblog.com/~r/YahooUserInterfaceBlog/~3/279721812/</link>
		<comments>http://yuiblog.com/blog/2008/04/28/unobtrusive-rollovers-using-yui/#comments</comments>
		<pubDate>Tue, 29 Apr 2008 00:12:41 +0000</pubDate>
		<dc:creator>Eric Miraglia</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[2tbsp.com]]></category>

		<category><![CDATA[christian heilmann]]></category>

		<category><![CDATA[rollovers]]></category>

		<category><![CDATA[unobtrusive javascript]]></category>

		<guid isPermaLink="false">http://yuiblog.com/blog/2008/04/28/unobtrusive-rollovers-using-yui/</guid>
		<description><![CDATA[
Chad at 2tbsp.com wrote up a nice tutorial last week outlining some practical fundamentals with respect to writing &#34;unobtrusive JavaScript.&#34; His example implements a standard rollover, beginning with bad-old-days obtrusive scripting, migrating to unobtrusive scripting, and concluding with an unobtrusive script that leverages YUI&#8217;s Event Utility for event attachment and the Dom Collection&#8217;s getElementsByClassName, addClass [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://2tbsp.com/node/91"><img src="http://yuiblog.com/assets/2tbsp-1.png" alt="Introduction to Unobtrusive JavaScript, DOM Scripting, and the Yahoo! User Interface (YUI) Library on 2tsp.com." width="510" height="174"></a></p>
<p>Chad at 2tbsp.com <a href="http://2tbsp.com/node/91">wrote up a nice tutorial last week</a> outlining some practical fundamentals with respect to writing &quot;unobtrusive JavaScript.&quot; His example implements a standard rollover, beginning with bad-old-days obtrusive scripting, migrating to unobtrusive scripting, and concluding with an unobtrusive script that leverages YUI&#8217;s <a href="http://developer.yahoo.com/yui/event/">Event Utility</a> for event attachment and the <a href="http://developer.yahoo.com/yui/dom/">Dom Collection</a>&#8217;s <a href="http://developer.yahoo.com/yui/docs/YAHOO.util.Dom.html#method_getElementsByClassName"><code>getElementsByClassName</code></a>, <a href="http://developer.yahoo.com/yui/docs/YAHOO.util.Dom.html#method_addClass"><code>addClass</code></a> and <a href="http://developer.yahoo.com/yui/docs/YAHOO.util.Dom.html#method_removeClass"><code>removeClass</code></a> for class management.</p>
<p><a href="http://2tbsp.com/system/files/yui-rollover.html">Click through</a> for his functioning example.</p>
<p><a href="http://2tbsp.com/system/files/yui-rollover.html"><img src="http://yuiblog.com/assets/2tbsp-2.png" alt="Click through for the functioning example." width="510" height="96"></a></p>
<p>Of course, Chad just means this as an example of some of the practical points involved in unobtrusive scripting. Others have looked at the problem more encyclopedically — for a more ambitious (and not YUI-related) analysis of the paradigm, check out Christian Heilmann&#8217;s &quot;<a href="http://icant.co.uk/articles/seven-rules-of-unobtrusive-javascript/">The seven rules of Unobtrusive JavaScript</a>&quot;.</p>
<div class="feedflare">
<a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=RXItaG"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=RXItaG" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=nFaZNG"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=nFaZNG" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=bB94Kg"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=bB94Kg" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=KdIFvg"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=KdIFvg" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://yuiblog.com/blog/2008/04/28/unobtrusive-rollovers-using-yui/feed/</wfw:commentRss>
		<feedburner:origLink>http://yuiblog.com/blog/2008/04/28/unobtrusive-rollovers-using-yui/</feedburner:origLink></item>
		<item>
		<title>DjangoSnippets: YUI Loader as Django Middleware</title>
		<link>http://feeds.yuiblog.com/~r/YahooUserInterfaceBlog/~3/277604889/</link>
		<comments>http://yuiblog.com/blog/2008/04/25/django-yui-loader/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 12:47:32 +0000</pubDate>
		<dc:creator>Eric Miraglia</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[In the Wild]]></category>

		<category><![CDATA[autocomplete]]></category>

		<category><![CDATA[django]]></category>

		<category><![CDATA[python]]></category>

		<category><![CDATA[yui]]></category>

		<category><![CDATA[yui loader]]></category>

		<guid isPermaLink="false">http://yuiblog.com/blog/2008/04/25/django-yui-loader/</guid>
		<description><![CDATA[
Over on DjangoSnippets.org, akaihola has posted a YUILoader class (based on Adam Moore&#8217;s client-side YUI Loader) that makes it a snap to pull YUI components into your Django projects.
This server-side middleware implements some of the functionality in the Yahoo User Interface Loader component.  YUI JavaScript and CSS modules requirements can be declared anywhere in [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.djangosnippets.org/snippets/712/"><img src="http://yuiblog.com/assets/djangosnippets.jpg" alt="YUI Loader integration on DjangoSnippets.com" width="510" height="205"></a></p>
<p>Over on DjangoSnippets.org, <a href="http://www.djangosnippets.org/snippets/712/">akaihola has posted a YUILoader class</a> (based on <a href="http://developer.yahoo.com/yui/yuiloader/">Adam Moore&#8217;s client-side YUI Loader</a>) that makes it a snap to pull YUI components into your Django projects.</p>
<blockquote><p>This server-side middleware implements some of the functionality in the <a href="http://developer.yahoo.com/yui/yuiloader/">Yahoo User Interface Loader</a> component.  YUI JavaScript and CSS modules requirements can be declared anywhere in the base, inherited or included templates, and the resulting, optimized <code>&lt;script&gt;</code> and <code>&lt;link rel=&quot;stylesheet&quot;&gt;</code> tags are inserted at the specified position of the resulting page.</p>
<p>Requirements may be specified in multiple locations.  This is useful when zero or more components are included in the HTML head section, and inherited and/or included templates require possibly overlapping sets of YUI components in the body across inherited and included templates.  All tags are collected in the head section, and duplicate tags are automatically eliminated.</p>
<p>The middleware understands component dependencies and ensures that resources are loaded in the right order.  It knows about built-in rollup files that ship with YUI.  By automatically using rolled-up files, the number of HTTP requests is reduced.</p>
</blockquote>
<p>Back in August on DjangoSnippets, <a href="http://www.djangosnippets.org/snippets/392/">pigletto posted a nice YUI snippet for use with the YUI AutoComplete Control</a>.</p>
<div class="feedflare">
<a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=PXEqhoG"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=PXEqhoG" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=wDL4jiG"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=wDL4jiG" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=uuR8OXg"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=uuR8OXg" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=FXOdhdg"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=FXOdhdg" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://yuiblog.com/blog/2008/04/25/django-yui-loader/feed/</wfw:commentRss>
		<feedburner:origLink>http://yuiblog.com/blog/2008/04/25/django-yui-loader/</feedburner:origLink></item>
		<item>
		<title>David Cilley’s Tutorial Series on Ajax Image Sliders</title>
		<link>http://feeds.yuiblog.com/~r/YahooUserInterfaceBlog/~3/276893853/</link>
		<comments>http://yuiblog.com/blog/2008/04/24/david-cilley-image-sliders/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 13:14:16 +0000</pubDate>
		<dc:creator>Eric Miraglia</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[david cilley]]></category>

		<category><![CDATA[images]]></category>

		<category><![CDATA[slider]]></category>

		<category><![CDATA[tutorial]]></category>

		<category><![CDATA[yui]]></category>

		<guid isPermaLink="false">http://yuiblog.com/blog/2008/04/24/david-cilley-image-sliders/</guid>
		<description><![CDATA[
David Cilley this week published the second in his series of articles on using the YUI Slider Control to provide real-time previewing of image changes.

Part 1: The OnDemand method.
Part 2: The Interval method.

In this second installment, David takes on the challenge of making the preview feel instantaneous without computing or delivering every possible image represented [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.atalasoft.com/cs/blogs/davidcilley/archive/2008/04/21/ajax-image-sliders-part-2-intervals-with-on-demand.aspx"><img src="http://yuiblog.com/assets/imageslider1.jpg" alt="David Cilley on Ajax image sliders using YUI." width="510" height="157"></a></p>
<p><a href="http://www.atalasoft.com/cs/blogs/davidcilley/archive/2008/04/21/ajax-image-sliders-part-2-intervals-with-on-demand.aspx"><img src="http://yuiblog.com/assets/imageslider2.jpg" alt="David Cilley on Ajax image sliders using YUI." width="250" height="227" hspace="10" align="right"></a>David Cilley this week published the second in his series of articles on using the <a href="http://developer.yahoo.com/yui/slider/">YUI Slider Control</a> to provide real-time previewing of image changes.</p>
<ul>
<li><a href="http://www.atalasoft.com/cs/blogs/davidcilley/archive/2008/04/16/ajax-image-sliders-part-1.aspx">Part 1: The OnDemand method</a>.</li>
<li><a href="http://www.atalasoft.com/cs/blogs/davidcilley/archive/2008/04/21/ajax-image-sliders-part-2-intervals-with-on-demand.aspx">Part 2: The Interval method</a>.</li>
</ul>
<p>In this second installment, David takes on the challenge of making the preview <em>feel</em> instantaneous without computing or delivering every possible image represented by the slider&#8217;s continuum:</p>
<blockquote><p>On the previous slider example, I used a YUI slider that had a range from -100 to 100.  This is a total of 201 different combinations for one image dialog, and that&#8217;s about 10-20 times more requests than a web server should have to handle in a reasonable amount of time.  We want to make this look as if the slider is actually changing the image while we scroll it, but we don&#8217;t want to request 201 images up front, and we don&#8217;t want to load them all on demand either.</p></blockquote>
<p>A part 3 in the series, David notes, will continue to refine the control.  [<strong>Update:</strong>  <a href="http://www.atalasoft.com/cs/blogs/davidcilley/archive/2008/04/28/sliders-part-3-intervals-with-opacity.aspx">David has posted Part 3.</a>]</p>
<p>For more Slider Control examples, check out the <a href="http://developer.yahoo.com/yui/examples/slider/">YUI Slider example roster</a>; and don&#8217;t miss Todd Kloots&#8217;s <a href="http://developer.yahoo.com/yui/examples/button/btn_example14.html">Slider/Button example</a>, which would be another way of presenting the control David is describing in his article series.</p>
<div class="feedflare">
<a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=3mq0bfG"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=3mq0bfG" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=fBSaK6G"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=fBSaK6G" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=N6klEVg"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=N6klEVg" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=JW1OlEg"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=JW1OlEg" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://yuiblog.com/blog/2008/04/24/david-cilley-image-sliders/feed/</wfw:commentRss>
		<feedburner:origLink>http://yuiblog.com/blog/2008/04/24/david-cilley-image-sliders/</feedburner:origLink></item>
		<item>
		<title>Hidden Gems in the YAHOO Object</title>
		<link>http://feeds.yuiblog.com/~r/YahooUserInterfaceBlog/~3/276171714/</link>
		<comments>http://yuiblog.com/blog/2008/04/23/plank-hidden-gems/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 13:45:30 +0000</pubDate>
		<dc:creator>Eric Miraglia</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[In the Wild]]></category>

		<category><![CDATA[hidden gems]]></category>

		<category><![CDATA[plankdesign]]></category>

		<category><![CDATA[yahoo]]></category>

		<category><![CDATA[yui]]></category>

		<guid isPermaLink="false">http://yuiblog.com/blog/2008/04/23/plank-hidden-gems/</guid>
		<description><![CDATA[
Mitch at PlankDesign.com has posted a nice review of one of the least-discussed aspects of YUI Core &#8212; the YAHOO Global Object&#8217;s YAHOO.lang member.  He covers a number of the language conveniences provided therein, including type checking, trim, substitute, later and merge.
Luke Smith from the YUI team recently added some great examples of other [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://plankdesign.com/en/blog/posts/langs_little_gems"><img src="http://yuiblog.com/assets/plank.jpg" alt="Lang's little gems, on PlankDesign.com" width="510" height="270" /></a></p>
<p>Mitch at <a href="http://plankdesign.com/">PlankDesign.com</a> <a href="http://plankdesign.com/en/blog/posts/langs_little_gems">has posted a nice review</a> of one of the least-discussed aspects of YUI Core &mdash; the <a href="http://developer.yahoo.com/yui/yahoo/">YAHOO Global Object</a>&#8217;s <code>YAHOO.lang</code> member.  He covers a number of the language conveniences provided therein, including type checking, <code>trim</code>, <code>substitute</code>, <code>later</code> and <code>merge</code>.</p>
<p>Luke Smith from the YUI team recently <a href="http://developer.yahoo.com/yui/examples/yahoo/index.html">added some great examples of other features in the YAHOO object</a>, so check those out, too, if you&#8217;re interested in learning more about this essential building block of YUI.</p>
<p>Thanks for the insights, Mitch!</p>
<div class="feedflare">
<a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=GKljuVG"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=GKljuVG" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=cOTxJZG"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=cOTxJZG" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=kkuqfpg"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=kkuqfpg" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=aU0Wmhg"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=aU0Wmhg" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://yuiblog.com/blog/2008/04/23/plank-hidden-gems/feed/</wfw:commentRss>
		<feedburner:origLink>http://yuiblog.com/blog/2008/04/23/plank-hidden-gems/</feedburner:origLink></item>
		<item>
		<title>YUI Engineers at Web 2 Expo This Week</title>
		<link>http://feeds.yuiblog.com/~r/YahooUserInterfaceBlog/~3/275835116/</link>
		<comments>http://yuiblog.com/blog/2008/04/22/web2expo/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 02:30:24 +0000</pubDate>
		<dc:creator>Eric Miraglia</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[adam moore]]></category>

		<category><![CDATA[dav glass]]></category>

		<category><![CDATA[jenny han donnelly]]></category>

		<category><![CDATA[web 2 expo]]></category>

		<category><![CDATA[yahoo]]></category>

		<category><![CDATA[ydn]]></category>

		<category><![CDATA[yui]]></category>

		<guid isPermaLink="false">http://yuiblog.com/blog/2008/04/22/web2expo/</guid>
		<description><![CDATA[
If you&#8217;re heading to Web 2.0 Expo this week, stop by the big Yahoo booth and say hello. Dav Glass will be at the booth tomorrow (Wednesday) and Jenny Han Donnelly will be joined by Adam Moore on Thursday along with our friends and colleauges from the Yahoo Developer Network. We&#8217;ll have YUI Cheat Sheet [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.oreilly.com/webexsf2008/public/content/home"><img src="http://yuiblog.com/assets/web2expo.jpg" alt="YUI Engineers Dav Glass, Jenny Han Donnelly, and Adam Moore" width="515" height="142" /></a></p>
<p>If you&#8217;re heading to <a href="http://en.oreilly.com/webexsf2008/public/content/home">Web 2.0 Expo</a> this week, stop by the big Yahoo booth and say hello. Dav Glass will be at the booth tomorrow (Wednesday) and Jenny Han Donnelly will be joined by Adam Moore on Thursday along with our friends and colleauges from the <a href="http://developer.yahoo.com/">Yahoo Developer Network</a>. We&#8217;ll have YUI Cheat Sheet packets to give away and lots of other good YDN schwag; come by early and often! Dav, Adam and Jenny will obviously be there to answer any questions you might have about YUI, too, so bring those by if you want some one-on-one time with the team.</p>
<div class="feedflare">
<a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=HKDWaHG"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=HKDWaHG" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=9N9WVrG"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=9N9WVrG" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=YSW6BXg"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=YSW6BXg" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=gheu21g"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=gheu21g" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://yuiblog.com/blog/2008/04/22/web2expo/feed/</wfw:commentRss>
		<feedburner:origLink>http://yuiblog.com/blog/2008/04/22/web2expo/</feedburner:origLink></item>
		<item>
		<title>Creating Component Communication Pipelines with YUI (Decoupling)</title>
		<link>http://feeds.yuiblog.com/~r/YahooUserInterfaceBlog/~3/275617275/</link>
		<comments>http://yuiblog.com/blog/2008/04/22/caridy-decoupling/#comments</comments>
		<pubDate>Tue, 22 Apr 2008 19:29:32 +0000</pubDate>
		<dc:creator>Caridy Patiño</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[bubbling library]]></category>

		<category><![CDATA[caridy patiño mayea]]></category>

		<category><![CDATA[custom events]]></category>

		<category><![CDATA[decoupling]]></category>

		<guid isPermaLink="false">http://yuiblog.com/blog/2008/04/22/caridy-decoupling/</guid>
		<description><![CDATA[

Caridy, a leading and always-helpful contributor to the YUI community forum, has been working in front of a PC since the nineties. For the past eight years he&#8217;s been a professional programmer developing LAMP applications for the University of Las Villas where he received his B.S. in Computer Science in 2003, and for several companies [...]]]></description>
			<content:encoded><![CDATA[<div class="interview">
<div class="intro"><img src="http://yuiblog.com/assets/caridy-portrait.jpg" alt="Caridy Pati&#241;o Mayea" width="150" height="150" hspace="10" vspace="5" align="right"></p>
<p><em>Caridy, a leading and always-helpful contributor to the <a href="http://groups.yahoo.com/group/ydn-javascript">YUI community forum</a>, has been working in front of a PC since the nineties. For the past eight years he&#8217;s been a professional programmer developing LAMP applications for the University of Las Villas where he received his B.S. in Computer Science in 2003, and for several companies around the world. He left his university job in August to pursue an independent consulting career and to follow his passion for open source solutions and agile development.</em></p>
<p><em>For the last two years he&#8217;s been focused on JavaScript as a development platform. Early last year he decided to create an easy-to-adopt YUI extension called &#8220;<a href="http://bubbling-library.com/">Bubbling Library</a>&#8221; as a side project; you can read <a href="http://yuiblog.com/blog/2007/09/13/bubbling-library-by-caridy/">his YUIBlog introduction to the Bubbling Library here</a>.</em></p>
</div>
</div>
<p>Creating complex web applications demands organization and modularization.  Modularization introduces a new problem — the comunication pipes between components. This is a serious challenge for developers, as more components and widgets mean more pipelines and more dependencies. In this article, we&#8217;ll look at a technique to mitigate these issues: Creating an abstraction layer to moderate the comunication between the components and widgets in a web application. This technique is based on YUI and makes use of my <a href="http://www.bubbling-library.com/">Bubbling Library</a>, which is a BSD-licensed superset of functionality that builds on top of the YUI foundation.</p>
<p>Most  current YUI components use &quot;<a href="http://developer.yahoo.com/yui/event/#customevent">Custom Events</a>&quot; as their main communication pipes.  This is good. Using custom events you can, for example, know when a <a href="http://developer.yahoo.com/yui/container/panel/">YUI Panel</a> is opened or closed, and the components in your application can subscribe a listener to this custom event to know when the Panel&#8217;s status changes. </p>
<pre>
YAHOO.example.myPanel.showEvent.subscribe(function(){  // your stuff here&#8230;});</pre>
<p>
The weakness of this model is that all the components in your application need to know about or have access to the YUI Panel object to subscribe a listener.  Even worse, they all need to wait until the YUI Panel instance is created (because that&#8217;s when the custom event is created and becomes available for subscription), so they need to be aware of the timeline in the application. If you need to introduce a new component in your application, to attach a listener you must wait until the YUI Panel has been created.  What happens if you have several panels instead of one?  You keep adding more and more listeners, creating more dependencies, and more timeline control.</p>
<p>The solution for this overwhelming amount of complexity is simple and very useful for complex web applications. Those who are accustomed to high-level programming languages, blackbox programmers,and APIs fans will love this implementation for sure. </p>
<h3>Decoupling</h3>
<p> The idea here is to create components that do not need to know about other components in the application. Each component will catch certain messages (listening events) generated by another component, o create a new message (broadcasting events) based on the received message, and fire the new message to reach all the listeners. We&#8217;ll have an abstraction layer that will allow us to subscribe listeners for a specific message.  For example:</p>
<pre>YAHOO.Bubbling.on( 'onPanelShow', function(layer, args) {
    // do the job here&#8230;
});</pre>
<p><img src="http://yuiblog.com/assets/caridy-decoupling/article1.jpg" alt="Decoupling" width="400" height="194" hspace="10" vspace="5" align="left">In this diagram, we have two components that will broadcast a message to the abstraction layer (Custom Behavior Layer), reaching all the listeners for that specific message (keying on the message&#8217;s name).</p>
<p>Each component will also have three listeners (C1: B1,B2 and B3; C2:B4, B5, B2). In the case of the message B2, both components will be listeners for the same message, and both will be able to react when the message arrives.</p>
<p style="clear:both;">What&#8217;s critical here is that we will be able to subscribe listeners to an <em>undefined</em> event, without worrying about what will fire this type of event or about what else might belistening for the same event. And this new listener will be executed whenever something (a component in your application) fires an event with the same name, in this case <code>onPanelShow</code>.</p>
<p>On the other hand, we will be able to fire an event, without previously defining it.  For example:</p>
<pre>YAHOO.Bubbling.fire ('onPanelShow', {  param1: value1,
  param2: value2});</pre>
<p>This call will send a message to all listeners, passing the name of the layer and the literal object (second argument).</p>
<p>We can go one step further, and pass the YUI Panel&#8217;s reference in the literal object, and the listeners will be able to query the Panel instance&#8217;s data, check the panel name, etc. For example::</p>
<pre>var myPanel = YAHOO.widget.Panel(&quot;win&quot;, {fixedcenter: true});

myPanel.showEvent.subscribe(function(){  YAHOO.Bubbling.fire (&#8217;onPanelShow&#8217;, {    panel: myPanel,
    param1: &#8216;value1&#8242;,
    param2: &#8216;value2&#8242;  });});</pre>
<p>Each time the YUI Panel is displayed, a broadcast message will be fired, the name of the event will be <code>onPanelShow</code>, and the listeners of this type of event will be queried, using the <code>panel</code>, <code>param1</code> and <code>param2</code> as references. There are some interesting aspects to this example.  You don&#8217;t need a global reference for the Panel object because there will be no subscribers attached directly to the YUI Panel object. Instead, we will subscribe the listener to the abstract layer (<code>YAHOO.Bubbling</code>). You can have more than one Panel,  each Panel will fire the same event, and the listeners will be able to handle the broadcast without knowing anything about the Panel&#8217;s nature or environment. Finally, each subscriber will be able to define its execution scope, using the 3rd parameter:</p>
<pre>YAHOO.Bubbling.on( 'onPanelShow', myListenerFunc, myScope);</pre>
<p>Utilized well, this technique gives us the possibility to create a complex web application where each component will have an API to use for communicating with other components without knowing the component itself, or knowing the nature of the component.</p>
<h3>Requirements</h3>
<p>The <a href="http://www.bubbling-library.com/">Bubbling Library YUI Extension</a> has already implemented this technique, so the requirements are simple:</p>
<pre id="line1">&lt;script type="text/javascript" src="http://yui.yahooapis.com/2.5.1/build/yahoo-dom-event/yahoo-dom-event.js"&gt;&lt;/script&gt;&lt;script type=&#8221;text/javascript&#8221; src=&#8217;http://js.bubbling-library.com/1.5.0/build/bubbling/bubbling.js&#8217;&gt;&lt;/script&gt;
</pre>
<p><em><small>* Bubbling Core (6k minify version)</small></em></p>
<h3>Other examples</h3>
<ul>
<li>Creating a notification system that will handle application messages — displaying each message in a box on the bottom-right corner of the browser, with different backgrounds, all the components in your application will be able to broadcast a message; the notification system will catch the event and will display the message in the corresponding box, depending on the parameters sent by the sender.</li>
<li>Creating a loading mask (just like Gmail) that will display the message every time that the <a href="http://developer.yahoo.com/yui/connection/">YUI Connection Manager</a>, the <a href="http://developer.yahoo.com/yui/get/">YUI Get Utitlity</a> or the <a href="http://developer.yahoo.com/yui/yuiloader/">YUI Loader</a> starts waiting for a response from the server. In this case, all the components will have access to the <a href="http://developer.yahoo.com/yui/connection/">Connection Manager</a>, and each component will need to fire the LOADING EVENT every time it uses one of the loading mechanisms.</li>
<li>In a web app that supports multiple layouts — every time you switch the current layout, all the web parts will need to be notified in order to readjust the visual interface. All the components can define a listener to the switching action, and all will be notified with the name of the new layout to apply and new css rules isplaying or hiding certain information related to the component.</li>
<li>In a webmail system, you need to be notified when a new message arrives or when an unread message has been read. There are some pieces of the application that would be interested in this event (inbox, messenger, the message counter, etc), but the reader panel don&#8217;t know which of these parts are present on the page.</li>
</ul>
<h3>Conclusions</h3>
<ul>
<li>This technique is ideal for a large development teams.  It reduces the complexity of the code and minimizes the number of global variables by eliminating the hard pipelines between components.</li>
<li> Large applications with many dynamic areas are tricky when you need to control the loading timeline. Using this technique you don&#8217;t need to worry about the loading timeline.</li>
<li>Applications based on this technique are easy to extend.</li>
<li>Each component has a simpler API making it easier for other developers to understand and reuse.</li>
<li>All the listeners will share the same syntax <br />
    <code>YAHOO.Bubbling.on('onEventName', function(layer, args) {});</code></li>
</ul>
<div class="feedflare">
<a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=ouaAdlG"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=ouaAdlG" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=R3aspnG"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=R3aspnG" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=LwRa6cg"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=LwRa6cg" border="0"></img></a> <a href="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?a=CyCRWHg"><img src="http://feeds.yuiblog.com/~f/YahooUserInterfaceBlog?i=CyCRWHg" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://yuiblog.com/blog/2008/04/22/caridy-decoupling/feed/</wfw:commentRss>
		<feedburner:origLink>http://yuiblog.com/blog/2008/04/22/caridy-decoupling/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic Page Served (once) in 0.793 seconds --><!-- Cached page served by WP-Cache -->
