<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Yahoo! User Interface Blog</title>
	<atom:link href="http://www.yuiblog.com/blog/index.php/feed" rel="self" type="application/rss+xml" />
	<link>http://www.yuiblog.com/blog</link>
	<description>News and Articles about Designing and Developing with Yahoo! Libraries.</description>
	<lastBuildDate>Thu, 02 Jul 2009 20:50:08 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Graded Browser Support Update: Q3 2009</title>
		<link>http://www.yuiblog.com/blog/2009/07/02/gbs-update-20090702/</link>
		<comments>http://www.yuiblog.com/blog/2009/07/02/gbs-update-20090702/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 18:04:20 +0000</pubDate>
		<dc:creator>Eric Miraglia</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[gbs]]></category>
		<category><![CDATA[graded browser support]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[qa]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[web browsers]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://www.yuiblog.com/blog/?p=388</guid>
		<description><![CDATA[This post announces an update to Graded Browser Support. The GBS page on the YUI site always has the most current information. This post includes a list of  changes, the updated chart of browsers that receive A-grade support, and our GBS forecast. The discussion section breaks out some of the strategy behind the current [...]]]></description>
			<content:encoded><![CDATA[<p>This post announces an update to Graded Browser Support. The <a href="http://developer.yahoo.com/yui/articles/gbs/">GBS page on the YUI site</a> always has the most current information. This post includes a list of <a href="#changes"> changes</a>, the <a href="#graded-browsers">updated chart of browsers that receive A-grade support</a>, and our <a href="#forecast">GBS forecast</a>. The <a href="#gbs0907_discussion">discussion</a> section breaks out some of the strategy behind the current GBS update.</p>
<h3 id="changes">GBS Changes for Q3 2009</h3>
<p>This GBS update adds A-grade support for Firefox 3.5 and for Safari 4.0. A-grade support is discontinued for Firefox 2, Opera on Mac OS X, and IE6 on Windows 2000. With this update, Windows 2000 drops from the A-Grade testing matrix and the testing surface is reduced to 14 browsers on 4 OS platforms (down from 15 browsers on 5 platforms). </p>
<ul>
<li>Initiated A-grade support for Firefox 3.5, Windows XP</li>
<li>Initiated A-grade support for Firefox 3.5, Windows Vista</li>
<li>Initiated A-grade support for Safari 4.0, Mac OS 10.4</li>
<li>Initiated A-grade support for Safari 4.0, Mac OS 10.5</li>
</ul>
<ul>
<li>Discontinued A-grade support for IE6, Windows 2000</li>
<li>Discontinued A-grade support for Firefox 3.0, Windows Vista</li>
<li>Discontinued A-grade support for Firefox 2.0, Mac OS 10.5</li>
<li>Discontinued A-grade support for Firefox 2.0, Windows XP</li>
<li>Discontinued A-grade support for Opera 9.6, Mac OS 10.5</li>
</ul>
<div id="graded-browsers">
<table summary="This chart lists browsers that receive A-Grade support as defined by Graded Browser Support.">
<thead>
<tr class="first">
<td></td>
<th scope="col" id="Windows_XP" abbr="Win XP" class="pc"><abbr title="Microsoft Windows XP">Win XP</abbr></th>
<th scope="col" id="Windows_Vista" abbr="Win Vista" class="pc"><abbr title="Microsoft Windows Vista">Win Vista</abbr></th>
<th scope="col" id="Macintosh_10.4" abbr="Mac 10.4" class="mac"><abbr title="Macintosh 10.4">Mac 10.4.&#0134;</abbr></th>
<th scope="col" id="Macintosh_10.5" abbr="Mac 10.5" class="mac"><abbr title="Macintosh 10.5">Mac 10.5.&#0134;</abbr></th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row" id="Mozilla_Firefox_3.0.&#0134;" abbr="Firefox 3"><abbr title="Mozilla Firefox 3.0.&#0134;">Firefox 3.0.&#0134;</abbr></th>
<td class="agrade">A-grade</td>
<td class="na"></td>
<td class="na"></td>
<td class="agrade">A-grade</td>
</tr>
<tr>
<th scope="row" id="Mozilla_Firefox_2.0.&#0134;" abbr="Firefox 2"><abbr title="Mozilla Firefox 2.0.&#0134;">Firefox 3.5.&#0134;</abbr></th>
<td class="agrade">A-grade</td>
<td class="agrade">A-grade</td>
<td class="na"></td>
<td class="agrade">A-grade</td>
</tr>
<tr>
<th scope="row" id="Opera_9.6.&#0134;" abbr="Opera 9.6"><abbr title="Opera 9.6 &#0134;">Opera 9.6.&#0134;</abbr></th>
<td class="agrade">A-grade</td>
<td class="na"></td>
<td class="na"></td>
<td class="na"></td>
</tr>
<tr>
<th scope="row" id="Internet_Explorer_8.0" abbr="IE 8"><abbr title="Internet Explorer 8.0">IE 8.0</abbr></th>
<td class="agrade">A-grade</td>
<td class="agrade">A-grade</td>
<td class="na"></td>
<td class="na"></td>
</tr>
<tr>
<th scope="row" id="Internet_Explorer_7.0" abbr="IE 7"><abbr title="Internet Explorer 7.0">IE 7.0</abbr></th>
<td class="agrade">A-grade</td>
<td class="agrade">A-grade</td>
<td class="na"></td>
<td class="na"></td>
</tr>
<tr>
<th scope="row" id="Internet_Explorer_6.0" abbr="IE 6"><abbr title="Internet Explorer 6.0">IE 6.0</abbr></th>
<td class="agrade">A-grade</td>
<td class="na"></td>
<td class="na"></td>
<td class="na"></td>
</tr>
<tr>
<th scope="row" id="Apple Safari_3.2&#0134;" abbr="Safari 3.2&#0134;"><abbr title="Apple Safari 3.2&#0134;">Safari 3.2.&#0134;</abbr></th>
<td class="na"></td>
<td class="na"></td>
<td class="na"></td>
<td class="agrade">A-grade</td>
</tr>
<tr>
<th scope="row" id="Apple Safari_3.2†2" abbr="Safari 3.2&#0134;">Safari 4.0.<abbr title="Apple Safari 3.2†">&#0134;</abbr></th>
<td class="na"></td>
<td class="na"></td>
<td class="agrade">A-grade</td>
<td class="agrade">A-grade</td>
</tr>
</tbody>
</table>
</div>
<p class="chart-notes"><em>Notes:</em></p>
<ul>
<li>The dagger symbol (as in &#8220;Firefox 3.5.&#0134;&#8221;) indicates that the most-current non-beta version at that branch level receives support.</li>
<li>Code that may be used on pages with unknown doctypes should be tested in IE7 quirks mode.</li>
<li>Code that may appear in IE8&#8217;s &quot;compatibility mode,&quot; which emulates but is not identical to IE7, should be tested explicitly  in compatibility mode.</li>
</ul>
<h3 id="forecast">GBS Forecast</h3>
<p>We expect to make the following changes in the Q4 2009 GBS update:</p>
<ul>
<li>Discontinue A-grade support for Firefox 3.0.x across  all OSs.</li>
<li>Discontinue A-grade support for Safari 3.2.x on Mac OS 10.5.</li>
<li>Begin publication of A-grade matrix for smartphones</li>
<li>Re-evaluate status of Google Chrome</li>
</ul>
<h3 id="gbs0907_discussion">Discussion</h3>
<ol>
<li><a href="http://people.opera.com/dstorey/images/OperaMarketShareEEhover.svgz"><img src="http://yuiblog.com/assets/russia-opera-marketshare-20090630-142910.jpg" alt="Opera's marketshare in eastern Europe." width="360" height="264" hspace="5" vspace="0" align="right" /></a><strong>Opera:</strong> Opera continues to be an important independent browser manufacturer, but its sub-1% global marketshare is now superseded by other browsers whose user base is growing more rapidly (including Safari on Apple&#8217;s iPhone OS and Google&#8217;s Chrome on Windows). In many ways, the X-grade browser class, which is full of excellent small-marketshare browsers, is the right category for Opera at this point. However, for developers of global products, <a href="http://people.opera.com/dstorey/images/OperaMarketShareEEhover.svgz">Opera&#8217;s strong position in Russia and eastern Europe</a> (source: <a href="http://gs.statcounter.com/#browser-RU-daily-20090601-20090630">StatCounter</a>) argues persuasively for its continued inclusion in the A-grade. Hence, our advice remains that you continue to test your applications in the latest version of Opera on Windows XP. We&#8217;ve dropped A-grade support for Opera on Mac OS 10.x to reduce the testing surface and accommodate future inclusion of browsers with rapidly growing marketshare.</li>
<li><strong>Chrome:</strong> One of the most common questions we get about GBS today is: &quot;What about Google Chrome?&quot; It&#8217;s a fair question. Chrome is an excellent, innovative browser that adheres to web standards, and it has a rapidly expanding marketshare. Chrome remains an X-grade browser today because its marketshare is still very small on a relative basis. If Chrome maintains its current marketshare growth, it will be reclassified as A-grade within one or two quarters. Note that <a href="http://www.google.com/chrome/intl/en/webmasters.html">Google&#8217;s developer page for Chrome</a> suggests that &quot;if you&#8217;ve tested your website with Safari 3.1 then your site should already work well on Google Chrome.&quot; This is good advice.</li>
<li><img src="http://yuiblog.com/assets/iphone-20090630-145715.jpg" alt="Yahoo! Search running on the iPhone OS version of Safari." width="185" height="329" hspace="5" vspace="0" align="right" /><strong>Safari on the iPhone OS:</strong> The OS that drives Apple&#8217;s iPhone and iPod Touch devices is another ascendant category of browser traffic. Is Safari for the iPhone OS an A-grade browser? Our answer: No, but that doesn&#8217;t mean you can ignore it in your product planning and testing. We regard the emerging class of full-featured browsers on handheld devices to be a category that requires its own GBS matrix. Such a matrix should include testing advice for browsers including Safari on iPhone as well as the browsers that ship with Google&#8217;s Android OS and Palm&#8217;s Pre OS. Treating these browsers as X-grade today is the right decision based on their marketshare &#8212; remember, X-grade browsers are expected to support current web standards and to perform well in browsing well developed sites. But the rapid growth of web traffic coming through these browsers, their unique form factors (much smaller screens), and their new interaction paradigms (including touch-screen gestures) argue for an intentional and sometimes differentiated approach to web-application design and implementation. While most content should &quot;just work&quot; and work well, these devices need to be considered at the product-design stage. Providing an &quot;A-grade&quot; experience for your application may not be a question of whether your app runs in the browser but whether your app&#8217;s usability on a small touchscreen retains its usability. With this in mind, we&#8217;ll begin delivering a smartphone GBS matrix beginning in Q4 2009.</li>
</ol>
<p>We&#8217;d love to hear your take on these issues and others in the comments section.</p>
<h3 id="archive">The GBS Archive</h3>
<ul>
<li><a href="http://yuiblog.com/blog/2009/01/28/gbs-update-20090128/">GBS Update, 2009-01-28</a></li>
<li><a href="http://yuiblog.com/blog/2008/07/03/gbs-update-20080703/">GBS Update, 2008-07-03</a></li>
<li><a href="http://yuiblog.com/blog/2008/02/19/gbs-update-20080219/">GBS Update, 2008-02-19</a></li>
</ul>
<style type="text/css" media="screen">
								#graded-browsers {}
								#graded-browsers table {margin-bottom:1em;margin-top:1em;}
								#graded-browsers caption {margin:1em;}
								#graded-browsers th,#graded-browsers td {padding:.6em;border:1px solid #fff;font-family:verdana;font-size:11px;}
								#graded-browsers th, #graded-browsers th abbr {color:#000;}
								#graded-browsers th {background-color:#ddd;font-family:verdana;font-size:11px;}
								#graded-browsers th, #graded-browsers td {border-width:0 1px 1px 0;border-collapse:collapse;}
								#graded-browsers td.xgrade {color:#555;background-color:#FFFBCF;}
								#graded-browsers td.cgrade {color:#555;background-color:#FFBFBF}
								#graded-browsers td.na {color:#AAA;}
								#graded-browsers td.agrade {background-color:#CFC;}
								#graded-browsers tr.first th {text-align:center;}
								#graded-browsers tr th {text-align:right;}
								#graded-browsers abbr {cursor:help;}
								#graded-browsers p.gbs-dagger-note {font-size:11px;font-family:verdana;}
							</style>
]]></content:encoded>
			<wfw:commentRss>http://www.yuiblog.com/blog/2009/07/02/gbs-update-20090702/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Enhancing YUI-based Applications With Audio</title>
		<link>http://www.yuiblog.com/blog/2009/06/30/yui-soundmanager/</link>
		<comments>http://www.yuiblog.com/blog/2009/06/30/yui-soundmanager/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 16:41:51 +0000</pubDate>
		<dc:creator>Scott Schiller</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[feedback]]></category>
		<category><![CDATA[Scott Schiller]]></category>
		<category><![CDATA[sound effects]]></category>
		<category><![CDATA[soundmanager]]></category>
		<category><![CDATA[yui]]></category>

		<guid isPermaLink="false">http://www.yuiblog.com/blog/?p=382</guid>
		<description><![CDATA[

Aboot the author: Scott Schiller (@schill) is a front-end engineer on Flickr who joined Yahoo! in 2005, hailing from Canada. SoundManager 2 is one of his personal side-projects. As Flickr&#8217;s self-professed resident DJ, he can be seen playing at the occasional Web 2.0 party between tinkering with time-lapse videos and photographing things for sharing online. [...]]]></description>
			<content:encoded><![CDATA[<div class="interview">
<div class="intro alignleft">
<p><img src="http://yuiblog.com/assets/schiller-20090629-111332.jpg" align="right" alt="Scott Schiller" hspace="10" vspace="10"><em><strong>Aboot the author:</strong></em> Scott Schiller (<a href="http://twitter.com/schill">@schill</a>) is a front-end engineer on Flickr who joined Yahoo! in 2005, hailing from Canada. <a href="http://www.schillmania.com/projects/soundmanager2/">SoundManager 2</a> is one of his personal side-projects. As Flickr&#8217;s self-professed resident DJ, he can be seen playing at the occasional Web 2.0 party between tinkering with time-lapse videos and photographing things for sharing online. Scott&#8217;s <a href="http://www.schillmania.com/">experimental DHTML site</a> is updated sporadically. In this article, Scott shows you how to use SoundManager to tie sound effects to specific user actions or events in YUI.</p>
</p></div>
</div>
<p>Sound is one of the major senses and a major part of daily life, and yet is largely ignored on the web. Web developers know that when it comes to HTML, audio is not as easy to add to a web site as it should be. Why is that? The following are some thoughts on the historical problems with embedding sound, a few ideas and some demos of embedding and controlling sound from Javascript with YUI.</p>
<h3>Demos</h3>
<p>If you&#8217;re like me, you&#8217;re probably wanting to see some fun stuff up-front because <i>reading</i> is <i>work</i>, and <i>work</i> is <i>boring</i>! ;) Feel free to play with the demos first and then read on for the details.</p>
<ul>
<li>Demo 1 (practical): <a href="http://www.schillmania.com/content/demos/yui-sm2/inline-mp3/">Play MP3 Links Inline</a></li>
<li>Demo 2 (fun): <a href="http://www.schillmania.com/content/demos/yui-sm2/noisy-events/">A Noisy DOM</a></li>
</ul>
<h3>A Brief History of HTML and &#8220;Multimedia&#8221;</h3>
<p>The web is pretty good at visual presentation. It is easy to create, design and embed images, text, and links in HTML documents. Of the media formats natively supported today in HTML 4, audio and video &#8211; or rather, &lt;audio&gt; and &lt;video&gt; &#8211; are conspicuously missing.</p>
<p>HTML 5 should bring audio and video embedding closer to the simplicity of &lt;img /&gt; in the not-so-distant future. In the meantime, we have to resort to creative work-arounds to get HTML-5-like audio/video functionality across the gamut of today&#8217;s common HTML 4-supporting browsers.</p>
<h3>The (HTML 4) Problem With Embedding Audio</h3>
<p>For audio on web sites today, developers often display a list of HTML links directly to MP3 files. This method is simple, universally-understood and indexable by search engines, but makes for a confusing and inconsistent browsing experience by default.</p>
<p>Users are generally prompted to right-click, &#8220;save as&#8221; and finally open the file from their desktop, or click the link and have their browser download and open the MP3 file. The regular &#8220;click&#8221; typically opens in a new page with the embedded player or launches an external application like QuickTime or Windows Media Player.</p>
<p>Not only are &#8220;naked&#8221; MP3 links extra work and confusing for the user, the browser&#8217;s method of handling them is a distraction and takes them away from the experience of your site.</p>
<p>Using &lt;object&gt;/&lt;embed&gt; is another generic way to directly embed MP3 or other content, but again suffers from the problem of inconsistency; the developer won&#8217;t know what may show in that area of the web page, given the user could have any array of applications which may load in order to handle that file type &#8211; in this case, likely the same QuickTime or Windows Media Player which would handle direct downloads would be shown in-place in your page. Again, not a great solution.</p>
<p>Flash widgets are sometimes used as a solution for embedding MP3 content, but the UI and skins tend to be 100% Flash-based rather than HTML and CSS-based and thus are more difficult for most web developers to customize. HTML 5 should change this with standards-based, CSS-skinnable and scriptable audio/video elements.</p>
<p>In the meantime, some creative solutions can be used to get more &#8220;web developer-friendly&#8221; widgets for audio.</p>
<h3>Making MP3 Links &#8220;Just Work&#8221;: YUI + SoundManager 2</h3>
<p>To have &#8220;progressively-enhanced&#8221; links to MP3s that will play in-place when clicked, something must intercept the browser&#8217;s normal download action and subsequently handle the request; by combining Javascript and Flash to handle the loading and playing of MP3 content, this can be done very effectively.</p>
<p>In a personal quest to get cross-browser audio control for a DHTML game back in 2002, I developed a JS + Flash audio API called SoundManager. Having since evolved to include video, <a href="http://www.schillmania.com/projects/soundmanager2/" title="Javascript + Flash sound library">SoundManager 2</a> implements and extends Flash&#8217;s native sound API and exposes it to Javascript. The result is cross-browser/platform scripted audio functionality which can help to bridge the gap for JS-driven sound until HTML 5 is widely supported.</p>
<p>By combining SoundManager 2 with YUI&#8217;s <a href="http://developer.yahoo.com/yui/dom/" title="YUI DOM documentation">DOM</a> and <a href="http://developer.yahoo.com/yui/event/" title="YUI Event documentation">Event</a> utilities, you have an effective solution for embedding and controlling audio which can gracefully degrade to a browser download or embedded player.</p>
<h3>Practical Example: Playable MP3 Links</h3>
<p>The following demo uses YUI and SoundManager 2 to enhance MP3 links, making them playable inline. YUI&#8217;s event utilities intercept clicks on links pointing to MP3 files and then use the SoundManager API to load and play the relevant URL before returning &#8220;false&#8221;, and preventing the browser from loading the link. Subsequent clicks will toggle play/pause state.</p>
<p>In the event Javascript/Flash aren&#8217;t present or if anything else goes wrong, the browser will simply fall through and load the MP3 link as usual.</p>
<ul>
<li><strong>Demo 1 (practical):</strong> <a href="http://www.schillmania.com/content/demos/yui-sm2/inline-mp3/">Play MP3 Links Inline</a></li>
</ul>
<h3>Adding Audio To Your UI</h3>
<p>Javascript-based animation, transition and motion effects add fluidity to web interface design and are becoming more commonplace. Smartly-applied audio can complement and further enhance the UI, making the experience more meaningful.</p>
<p>In certain applications, sound in the form of UI feedback can be appropriate and helpful to the user experience. Sound effects are common for Flash-based sites and web-based games, and in desktop gaming audio is usually a key part of telling the story.</p>
<h3>.. But Don&#8217;t Over-Do It</h3>
<p>It&#8217;s important to know when to stop. Recall animated &#8220;under construction&#8221; .GIFs? How about the blink tag? Marquee text? Some things are best left alone. Not every HTML page needs to move, blink, slide, flash <i>and</i> be noisy at the same time; even &#8220;fun&#8221; is best applied in moderation. Annoying your users with auto-playing music or noise can quickly lead to abandonment of your site.</p>
<p>There is probably good reason that standard HTML elements such as form controls and the like do not have sound effects or notifications associated with them. Perhaps &#8220;silence is golden&#8221; and it&#8217;s best that the web be a quiet place by default, so as not to be annoying and distracting.</p>
<p>As one notable exception to the &#8220;silent web&#8221; theme, Internet Explorer usually makes a &#8220;click&#8221; sound when page navigation occurs, presumably to notify the user that an action has started. This has become more muted in recent times, but is still present and still seems to annoy some users to this day.</p>
<h3>&#8220;Fun&#8221; Example: A Noisy DOM</h3>
<p>Despite the arguments for silence, the following is an example of what it might be like to have &#8220;noisy&#8221; form elements, buttons and DOM elements which provide audible feedback as they&#8217;re being used. The novelty is certainly to wear off quickly, but it does add an element of childish fun to the UI.</p>
<ul>
<li><strong>Demo 2 (fun):</strong> <a href="http://www.schillmania.com/content/demos/yui-sm2/noisy-events/">A Noisy DOM</a></li>
</ul>
<h3>Looking Forward: HTML 5</h3>
<p>Native &lt;audio&gt; and &lt;video&gt; support will mean it will be much easier to embed and control more media formats within the browser without relying on third-party plugins. Furthermore, an extensive Javascript API should encourage developers to create increasingly-innovative experiences.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yuiblog.com/blog/2009/06/30/yui-soundmanager/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>In the Wild for June 29, 2009</title>
		<link>http://www.yuiblog.com/blog/2009/06/29/in-the-wild-for-june-29-2009/</link>
		<comments>http://www.yuiblog.com/blog/2009/06/29/in-the-wild-for-june-29-2009/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 17:07:32 +0000</pubDate>
		<dc:creator>Eric Miraglia</dc:creator>
				<category><![CDATA[In the Wild]]></category>
		<category><![CDATA[yui]]></category>

		<guid isPermaLink="false">http://www.yuiblog.com/blog/?p=380</guid>
		<description><![CDATA[The big news from the YUI team last week was the release of YUI 3.0.0 beta 1, moving YUI 3 one important step closer to GA.  What follows is some of the other news coming from the YUI community over the past few weeks.  As always, please use the comments section to let [...]]]></description>
			<content:encoded><![CDATA[<p>The big news from the YUI team last week was <a href="http://www.yuiblog.com/blog/2009/06/24/yui3b1/">the release of YUI 3.0.0 beta 1</a>, moving YUI 3 one important step closer to GA.  What follows is some of the other news coming from the YUI community over the past few weeks.  As always, please use the comments section to let us know what we&#8217;ve missed.</p>
<ul id="releaselist-16">
<li id="yuiBlogWild-288"><strong><a href="http://timr.com">Timr &#8212; a New Timetracking Web-app with Significant YUI Elements</a>:</strong> Thomas Einwaller wrote in to tell us about <a href="http://timr.com/">Timr</a>, a new time-tracking web application with a slick, rich, YUI-intensive interface including Panels, DataTables and much more. If your job requires you to track time-on-tasks, and you want a web-based system with support for mobile, check out Thomas&#8217;s project at <a href="http://timr.com/">Timr.com</a>.<br /><a href="http://timr.com"><img src="http://yuiblog.com/assets/timr-20090603-143557.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-290"><strong><a href="http://www.harley-davidson.com">How Happy is Dav? Harley-Davidson Using YUI</a>:</strong> If you know YUI engineer <a href="http://davglass.com/">Dav Glass</a>, it will not surprise you to learn that he&#8217;s the one who discovered that <a href="http://www.harley-davidson.com">YUI is in use on the Harley-Davidson website</a>.&nbsp; Check out their Harley-themed <a href="http://developer.yahoo.com/yui/autocomplete/">YUI AutoComplete</a> in the main search box at the top of the page.<br /><a href="http://www.harley-davidson.com"><img src="http://yuiblog.com/assets/harley-20090609-130845.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-292"><strong><a href="http://www.sitepoint.com/article/yui-3-whats-new/">Ara Pehlivanian on YUI 3 &#8212; New SitePoint Article</a>:</strong> Ara, coauthor of <a href="http://www.amazon.ca/gp/search?ie=UTF8&amp;keywords=Ara%20Pehlivanian&amp;index=books-ca">a couple of excellent JS tomes</a>, provides <a href="http://www.sitepoint.com/article/yui-3-whats-new/">a nice introduction</a> to <a href="http://developer.yahoo.com/yui/3/">YUI 3</a> and his take on why it might be of interest to developers.&nbsp; His conclusion: &#8220;YUI 3 is a completely different animal than its predecessor. Along with a new syntax, you gain a faster, lighter, easier, and more flexible library—ready to take on your most ambitious web projects.&#8221;&nbsp; <a href="http://www.sitepoint.com/article/yui-3-whats-new/">Check out the full article for more</a>.<br /><a href="http://www.sitepoint.com/article/yui-3-whats-new/"><img src="http://yuiblog.com/assets/sitepoint-yui3-20090618-094640.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-296"><a href="http://www.ibm.com/developerworks/opensource/library/wa-htmlcss/index.html"><img src="http://yuiblog.com/assets/ibmcss-20090626-082441.jpg" align="right" hspace="10" vspace="5"></a><strong><a href="http://www.ibm.com/developerworks/opensource/library/wa-htmlcss/index.html">IBM DeveloperWorks: &#8220;Weaving a Better Web Page with YUI CSS&#8221;</a>:</strong> From Martin Streicher, writing for IBM DeveloperWorks, who covers both Blueprint and YUI in this article: &#8220;YUI Grids provide CSS for both fixed-width pages and fluid-width&nbsp;pages, and it provides for arbitrarily deep nesting of columns. You can also position&nbsp;and move columns arbitrarily, so you can quickly and simply reorder the content on&nbsp;the page with CSS. For instance, you can move navigation from left to right with one&nbsp;CSS change. Further, you can augment YUI Grids with Yahoo&#8217;s own JavaScript&nbsp;library to add interactivity. You can read more about the YUI JavaScript library&nbsp;separately. This article focuses on Grids&#8217; stylesheets, which can work independent&nbsp;of a JavaScript library.&#8221; &nbsp;The article is&nbsp;<a>free online</a> and&nbsp;<a href="http://download.boulder.ibm.com/ibmdl/pub/software/dw/web/wa-htmlcss/wa-htmlcss-pdf.pdf">available as a PDF</a>.</li>
<li id="yuiBlogWild-297"><a href="http://www.zazzle.com/yui3_redneck_tshirt-235081540797731282"><img src="http://yuiblog.com/assets/getterdone-20090629-093642.jpg" align="right" hspace="10" vspace="5"></a><strong><a href="http://www.zazzle.com/yui3_redneck_tshirt-235081540797731282">Dav Glass&#8217;s &#8220;y&#8217;all Getter Done&#8221; T-shirts for YUI 3</a>:</strong> File this one in the &#8220;just for fun&#8221; category&#8230;&nbsp;<a href="http://davglass.com/">Dav</a>, who is a YUI engineer by day, has branched off into t-shirt design with&nbsp;<a href="http://www.zazzle.com/yui3_redneck_tshirt-235081540797731282">a YUI shirt available on Zazzle.</a>&nbsp;Pictured is&nbsp;<a href="http://www.flickr.com/photos/equanimity/3651959420/">Dav wearing the shirt</a>, which is a reference to Larry the Cable Guy and reads &#8220;y&#8217;all, getter done&#8221;. &nbsp;Note that &#8220;redneck&#8221; is not an actual YUI 3 module, so this code won&#8217;t really run in a standard&nbsp;YUI 3 implementation. &nbsp;But it&#8217;s funny nonetheless.</li>
<li id="yuiBlogWild-286"><strong><a href="http://www.nczonline.net/blog/2009/06/02/detecting-if-the-user-is-idle-with-javascript-and-yui-3/">Detecting if the User is Idle with JavaScript and YUI 3</a>:</strong> From YUI contributor Nicholas C. Zakas: &#8220;Web developers have been interested in whether or not a user is idle since the Ajax explosion hit. With the introduction of more dynamic, highly interactive web interfaces came the desire to know if the user was actually doing anything at any point in time. Thus, the quest for determining if the user is idle began.&#8221;&nbsp; <a href="http://www.nczonline.net/blog/2009/06/02/detecting-if-the-user-is-idle-with-javascript-and-yui-3/">Read on</a> for full details on his blog. (<a href="http://twitter.com/slicknet/statuses/2005445582">Original source.</a>)</li>
<li id="yuiBlogWild-287"><strong><a href="http://www.cerberusweb.com/">Cerberus Helpdesk 4.2 Using YUI Charts, TabView, and More</a>:</strong> <a href="http://www.cerberusweb.com/">Cerberus Helpdesk</a> is a CRM application offering both paid and free versions.&nbsp; It&#8217;s UI features a variety of YUI components, from <a href="http://developer.yahoo.com/yui/container/panel/">Panels</a> to <a href="http://developer.yahoo.com/yui/tabview/">TabViews</a> to reports enhanced by <a href="http://developer.yahoo.com/yui/charts/">YUI Charts</a>.<br /><a href="http://www.cerberusweb.com/"><img src="http://yuiblog.com/assets/cerberushelpdesk-20090603-133535.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-289"><strong><a href="http://mattsnider.com/languages/javascript/framework-yui-using-eventprovider/">Matt Snider on Using YUI EventProvider and Custom Events</a>:</strong> Matt Snider, lead frontend on <a href="http://mint.com/">Mint.com</a> and author of the upcoming YUI Storage Utility, <a href="http://mattsnider.com/languages/javascript/framework-yui-using-eventprovider/">blogs</a> about <a href="http://developer.yahoo.com/yui/event/">Adam Moore&#8217;s YUI Event Utility</a> components including Custom Events and EventProvider: &#8220;By using [the EventProvider] interface, developers no longer need to worry about whether or not a given CustomEvent exists when subscribing to it. Thereby, making coding easier, while allowing a developer the opportunity to not create CustomEvents that never fire. Additionally, EventProvider normalizes interactions with CustomEvents attached to objects, since the same methods will be attached to each object. Lastly, the events are bound to the augmented object, so although you might instantiate hundreds of EventProvider augmented object, each sharing an event named ‘update’, only the callback functions subscribed to the current object will execute when the ‘fireEvent’ function of that object is called. In summary, when using EventProvider the event names need only be unique on a single object, not across all objects (as with CustomEvent).&#8221; The <a href="http://mattsnider.com/languages/javascript/framework-yui-using-eventprovider/">full article</a> is on Matt&#8217;s blog.</li>
<li id="yuiBlogWild-291"><strong><a href="http://www.youtube.com/watch?v=c9WN7bWiJag">Screencast of YUI DataTable Use on ResumeBucket</a>:</strong> We mentioned ResumeBucket <a href="http://yuiblog.com/blog/2009/04/23/wild-20090423/#yuiBlogWild-253">in a previous &#8220;In the Wild&#8221;</a>, but <a href="http://www.youtube.com/watch?v=c9WN7bWiJag">they&#8217;ve posted a screencast </a>that does a nice job of showing off Jenny Donnelly&#8217;s <a href="http://developer.yahoo.com/yui/datatable/">YUI DataTable</a> in use in their messaging center.&nbsp; Check out DataTable being used for user-managed tabular data <a href="http://www.youtube.com/watch?v=c9WN7bWiJag">here</a>.<br /><object height="315" width="500"><param name="movie" value="http://www.youtube.com/v/c9WN7bWiJag&amp;hl=en&amp;fs=1&amp;rel=0&amp;border=1"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/c9WN7bWiJag&amp;hl=en&amp;fs=1&amp;rel=0&amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="315" width="500"></object> (<a href="http://yuiblog.com/blog/2009/05/26/in-the-wild-for-may-26-2009/#comment-581753">Original source.</a>)</li>
<li id="yuiBlogWild-295"><strong><a href="http://925html.com/code/facebook-style-overlay-in-yui-3-css-3/">Eric Ferraiuolo&#8217;s Facebook-style Overlay in YUI 3 &amp; CSS 3</a>:</strong> Writes Eric: &#8220;While wandering-around the Internet looking for examples of&nbsp;<em>overlays</em>&nbsp;in web application interfaces I thought of a challenge:&nbsp;<em>create a working Facebook–styled overlay</em>. I’m in the process of creating an application-wide design for overlays and needed some inspiration. Facebook uses overlays extensively and they have a distinct style [that others imitate, maybe even me&nbsp;<img src="http://925html.com/wordpress/wp-includes/images/smilies/icon_smile.gif" alt=":-)">&nbsp;]; I set-out to re-create&nbsp;<em>this style</em>. &nbsp;Not wanting to mess around — I whipped up&nbsp;<a href="http://925html.com/files/fb_overlay/">a working example of Facebook-styled overlays</a>&nbsp;using&nbsp;<strong>only</strong>&nbsp;YUI 3 and CSS 3; things are nice and easy to do when you use the latest technologies.&#8221; &nbsp;<a href="http://925html.com/code/facebook-style-overlay-in-yui-3-css-3/">Check out his blog post for the full story</a>. (<a href="http://www.yuiblog.com/blog/2009/05/26/in-the-wild-for-may-26-2009/#comment-581948">Original source.</a>)<br /><a href="http://925html.com/code/facebook-style-overlay-in-yui-3-css-3/"><img src="http://yuiblog.com/assets/facebookoverlay-20090625-094225.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-293"><a href="http://www.dayshift.org/2009/06/generic-yui-chart-class.html"><img src="http://yuiblog.com/assets/dayshiftcharts-20090618-102630.jpg" align="right" hspace="10" vspace="5"></a><strong><a href="http://www.dayshift.org/2009/06/generic-yui-chart-class.html">Dayshift&#8217;s Wrapper for YUI Charts</a>:</strong> From the article: &#8220;If you use <a href="http://developer.yahoo.com/yui/charts/">YUI Charts</a> as suggested in many examples you&#8217;ll need configuration code for each individual chart which, if you have more than 2 or 3 charts on a page, can make your code appear cluttered. With the ChartsAjax class, all the chart options can be set with JSON data built dynamically on the server and retrieved from one AJAX call. This includes not only data for the datastore but also styling and column definitions.&#8221;&nbsp; <a href="http://www.dayshift.org/2009/06/generic-yui-chart-class.html">Check out the blogpost on Dayshift</a> for the full example code.</li>
<li id="yuiBlogWild-294"><strong><a href="http://involution.com/2009/06/18/using-yuicompressor-with-capistrano-and-rails-2-3-on-combined-javascript-and-css/">Using YUICompressor with Capistrano and Rails 2.3+</a>:</strong> Tony Perrie wrote up some notes on using YUI with Capistrano and Rails; <a href="http://involution.com/2009/06/18/using-yuicompressor-with-capistrano-and-rails-2-3-on-combined-javascript-and-css/">check out his tutorial here</a>.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.yuiblog.com/blog/2009/06/29/in-the-wild-for-june-29-2009/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>YUI 3.0.0 beta 1 Available for Download</title>
		<link>http://www.yuiblog.com/blog/2009/06/24/yui3b1/</link>
		<comments>http://www.yuiblog.com/blog/2009/06/24/yui3b1/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 22:35:19 +0000</pubDate>
		<dc:creator>Eric Miraglia</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[yui]]></category>
		<category><![CDATA[yui3]]></category>

		<guid isPermaLink="false">http://www.yuiblog.com/blog/?p=376</guid>
		<description><![CDATA[YUI 3.0.0 beta 1 is now available for download from YUILibrary.com.
This release takes YUI 3 out of its preview phase and brings its APIs to a near-final state. For those intending to implement YUI 3, the 3.0.0 beta 1 release is a good place to begin the transition. If you&#8217;ve been working with the latest [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://developer.yahoo.com/yui/3/">YUI 3.0.0 beta 1</a> is now <a href="http://yuilibrary.com/downloads/#yui3">available for download from YUILibrary.com</a>.</p>
<p>This release takes YUI 3 out of its preview phase and brings its APIs to a near-final state. For those intending to implement YUI 3, the 3.0.0 beta 1 release is a good place to begin the transition. If you&#8217;ve been working with the latest preview release, George Puckett has provided <a href="http://yuilibrary.com/projects/yui3/wiki/ReadMe/RollUp_3.0.0beta1">a comprehensive 3.0.0 beta 1 changelog</a> to guide you. We look forward to <a href="http://yuilibrary.com/forum/viewforum.php?f=15">hearing your feedback</a> as you begin working with 3.0.0 beta 1, and we&#8217;ll work hard to address that feedback as we prepare for a GA release in the coming months.</p>
<p>We&#8217;ve spent a lot of time in this release cycle refining the core elements of YUI 3 &mdash; <a href="http://developer.yahoo.com/yui/3/yui/">YUI</a>, <a href="http://developer.yahoo.com/yui/3/node/">Node</a>, and <a href="http://developer.yahoo.com/yui/3/event/">Event</a> &mdash; to ensure that we have the right API going forward. Performance is improved, and we&#8217;ve refined our module/submodule structure. In some cases we&#8217;ve added significant new features, including intrinsic support for event delegation in the Event package; however, the focus is on moving the base library to  production quality.</p>
<p>Several YUI 2.x components make their YUI 3 debut in this release:</p>
<ol>
<li><strong><a href="http://developer.yahoo.com/yui/3/datasource/">DataSource</a>:</strong> YUI&#8217;s data abstraction layer provides a standard interface into data sets, regardless of the data&#8217;s origin (local, XHR, XSS, etc.) and format (JSON, XML, CSV, etc.);</li>
<li><strong><a href="http://developer.yahoo.com/yui/3/imageloader/">ImageLoader</a>: </strong> ImageLoader allows you to defer the loading of images that aren&#8217;t in the viewport when the page paints, throttling bandwidth usage and improving performance;</li>
<li><strong><a href="http://developer.yahoo.com/yui/3/history/">History</a>:</strong> The  History component gives you control of the brower&#8217;s back button within the context of a single-page web application;</li>
<li><strong><a href="http://developer.yahoo.com/yui/3/stylesheet/">StyleSheet</a>:</strong>  StyleSheet  makes it easy to create and modify CSS rules on the fly, allowing you to dynamically style page elements with fewer repaints.</li>
</ol>
<p>As part of the more granular packaging in the new codeline, we&#8217;ve created separate YUI 3 modules to house functionality that in YUI 2 was bundled with other components. <a href="http://developer.yahoo.com/yui/3/cache/">Cache</a>, <a href="http://developer.yahoo.com/yui/3/datatype/">DataType</a> and <a href="http://developer.yahoo.com/yui/3/dataschema/">DataSchema</a> debut in this release; each of these used to be a part of DataSource.</p>
<h3>Getting to Know YUI 3</h3>
<p>The best way to get started with YUI 3 is to dive into the <a href="http://developer.yahoo.com/yui/3/">documentation</a> and <a href="http://developer.yahoo.com/yui/3/examples/">examples</a> &mdash; particularly the examples for the core <a href="http://developer.yahoo.com/yui/3/examples/yui/">YUI</a>, <a href="http://developer.yahoo.com/yui/3/examples/node/">Node</a> and <a href="http://developer.yahoo.com/yui/3/event/">Event</a> components.</p>
<p>We also recommend spending some time with  Satyen Desai, whose tech talk on YUI 3&#8217;s design goals and architecture provides an excellent overview of the new codeline. The video is embedded below; <a href="http://developer.yahoo.com/yui/theater/desai-yui3.html">an HD version, along with a transcript, is available from the YUI Theater site</a>.</p>
<p><object width="512" height="322"><param name="movie" value="http://d.yimg.com/static.video.yahoo.com/yep/YV_YEP.swf?ver=2.2.40" /><param name="allowFullScreen" value="true" /><param name="AllowScriptAccess" VALUE="always" /><param name="bgcolor" value="#000000" /><param name="flashVars" value="id=13406817&#038;vid=5044557&#038;lang=en-us&#038;intl=us&#038;thumbUrl=http%3A//l.yimg.com/a/p/i/bcst/videosearch/8818/85299985.jpeg&#038;embed=1" /><embed src="http://d.yimg.com/static.video.yahoo.com/yep/YV_YEP.swf?ver=2.2.40" type="application/x-shockwave-flash" width="512" height="322" allowFullScreen="true" AllowScriptAccess="always" bgcolor="#000000" flashVars="id=13406817&#038;vid=5044557&#038;lang=en-us&#038;intl=us&#038;thumbUrl=http%3A//l.yimg.com/a/p/i/bcst/videosearch/8818/85299985.jpeg&#038;embed=1" ></embed></object><br /><a href="http://video.yahoo.com/watch/5044557/13406817">Satyen Desai: &quot;YUI 3: Design Goals and Architecture&quot;</a> @ <a href="http://video.yahoo.com" >Yahoo! Video</a></p>
<h3>CSS Grids and YUI 3</h3>
<p>Those of you who use the YUI CSS components may notice that we&#8217;ve removed references to YUI CSS Grids in the 3.0.0 beta 1 documentation, although Grids remains present in the download (and, of course, you can continue using <a href="http://developer.yahoo.com/yui/grids/">the YUI 2.7.0 version of Grids</a>).</p>
<p>We&#8217;ve deprecated the Grids implementation that was included in the preview releases, and we expect to significantly re-engineer this component before reintroducing it as part of YUI 3.</p>
<h3>Roadmap</h3>
<p>The 3.0.0 beta 1 release is an important milestone for YUI. At this point, we are encouraging all YUI implementers to use YUI 3 for new projects, especially projects that don&#8217;t make heavy use of widgets.</p>
<p>Our attention now turns to bringing YUI 3 to GA status. We expect this to happen in Q3, at which time the following components will be promoted to GA:</p>
<ul>
<li><strong>Core:</strong> YUI, Node, Event</li>
<li><strong>Component foundation:</strong> Attribute, Base, Plugin</li>
<li><strong>Utilities:</strong> Animation, Cookie, Drag and Drop, Get, History, ImageLoader, IO, JSON, Queue, StyleSheet</li>
<li><strong>CSS:</strong> Reset, Base, Fonts</li>
</ul>
<p>After 3.0.0 GA, the next major release will be 3.1.0, currently scheduled for Q4. The 3.1.0 release will bring the widget foundation to GA, including the following components:</p>
<ul>
<li><strong>Widget foundation:</strong> Widget and Widget extensions</li>
<li><strong>Utilities:</strong> DataSource, DataSchema, DataType, Cache</li>
</ul>
<p>During the 3.1.0 release cycle, we&#8217;ll also begin introducing specific widgets built upon the YUI 3 codeline. Note that Widget, its extensions, and the sample widgets shipping with 3.0.0 beta 1 are expected to evolve significantly in the coming months as we begin focusing more attention on that part of the library.</p>
<p>For full details on the roadmap, refer to the <a href="http://yuilibrary.com/projects/yui3/roadmap">YUI 3.x Roadmap on YUILibrary.com</a>. That page is kept current with the latest information about our plans and progress. The <a href="http://yuilibrary.com/projects/yui3/dashboard">YUI 3.x Dashboard</a> is also a useful resource for those wanting to track our progress toward major YUI 3 releases.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yuiblog.com/blog/2009/06/24/yui3b1/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Flash SOL: Persistent Data with Local SharedObjects</title>
		<link>http://www.yuiblog.com/blog/2009/06/23/flash-sol/</link>
		<comments>http://www.yuiblog.com/blog/2009/06/23/flash-sol/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 21:05:19 +0000</pubDate>
		<dc:creator>Alaric Cole</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.yuiblog.com/blog/?p=372</guid>
		<description><![CDATA[


About the Author: Alaric Cole has been working in Flash since the advent of ActionScript and is currently a developer on Yahoo!&#8217;s Flash Platform team. You could say he&#8217;s grown with the language. Sure, he&#8217;s had his hand in independent film. Yeah, he wrote that one book. But his weekday ritual is still fooling about [...]]]></description>
			<content:encoded><![CDATA[<div class="interview">
<div class="intro alignleft">
<img src="http://yuiblog.com/assets/flash-sol/alaric.jpg" width="175" height="200" hspace="10" vspace="5" alt="Alaric Cole, Yahoo! Flash Platform Engineer"></p>
<p><strong>About the Author:</strong> <em><a href="http://greenlike.com/">Alaric Cole</a> has been working in Flash since the advent of ActionScript and is currently a developer on Yahoo!&#8217;s Flash Platform team. You could say he&#8217;s grown with the language. Sure, he&#8217;s had his hand in <a href="https://www.nationalfilmnetwork.com/store/ProductDetails.aspx?ProductID=218">independent film</a>. Yeah, he wrote that one <a href="http://oreilly.com/catalog/9780596517328/">book</a>. But his weekday ritual is still fooling about with Flash.</em></p>
<p><em>When he&#8217;s not crouched over a computer, you might find him riding brakeless in the Mission.</em></p>
</div>
</div>
<p>I&#8217;ve been working with <a href="http://mattsnider.com/">Matt Snider</a> of <a href="http://mint.com/">Mint.com</a> to develop a <a href="http://yuilibrary.com/projects/yui2/roadmap">new local storage utility for YUI</a>. The utility will use a cascading storage system to detect the best way to store information through the browser, allowing a developer to store data more efficiently than a typical browser cookie &#8212; and in greater amounts. One of the storage mechanisms employs the <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Player</a>, and this use case has been the focus of my recent work.</p>
<p>Flash has a built-in persistent storage system called <a href="http://livedocs.adobe.com/flex/3/langref/flash/net/SharedObject.html">SharedObjects</a>, which can be thought of as &#8220;super-cookies&#8221;, allowing the developer to store, by default, 100kb &#8212; or more, if the user allows. One of the benefits of SharedObjects, besides their capacity, is that they can store core ActionScript types, and even entire custom classes, in a binary format on the user&#8217;s hard drive. SharedObjects use the ActionScript Message Format (AMF), making them efficient and compact.</p>
<p>These SharedObjects are not encrypted, so while difficult to read, they are not what you would call secure storage. We&#8217;d never recommend storing important data such as user names, passwords, or other private data via a SharedObject unless you&#8217;ve implemented your own encryption mechanism. Also, SharedObjects are different from a cookie in more ways than capacity &#8212; SharedObjects are generally not attached to a specific browser but are stored independently.</p>
<p>These differences of the Flash storage system provide a number of benefits to the developer and the end user. However, while extremely convenient, they can also be misleading to the average user, many being unaware that such data even exists on their machine. While great lengths have been taken to provide transparency and control over private data to users via their browser (Firefox and Safari in particular providing a nice set of tools to view, edit, and remove cookies for various sites), the Flash storage system, due to its plugin nature, stores information in a separate location. This means that clearing your browser cookies does not clear these SharedObjects.</p>
<p>If you&#8217;re interested in viewing these bits of storage on your machine, you can check out the following locations:</p>
<p>Linux:</p>
<pre>/.macromedia/Flash_Player/</pre>
</p>
<p>Mac:</p>
<pre>/Library/Preferences/Macromedia/Flash Player/</pre>
</p>
<p>Windows:</p>
<pre>/Application Data/Macromedia/Flash Player/</pre>
</p>
<p>SharedObjects are typically stored in separate folders under these locations, in directories with such descriptive names as <code>8GKWKDQM</code> and <code>227MDWL4</code>. Under such folders are subdirectories corresponding to the domain in which the SharedObject came from.</p>
<p>The actual files have the <code>*.sol</code> extension, and there may be more than one for each domain. For instance, I found three separate SharedObject files on my machine under the youtube.com folder. They&#8217;re not human readable, as they are stored in binary.</p>
<p>When developing this storage utility, I wanted to be able to see the actual data stored in its raw form &#8212; but I didn&#8217;t have the time to parse through it all using a ByteArray, so I looked for a tool to do the job. I found a handy AIR application called <a href="http://blog.coursevector.com/minerva">Minerva</a>, which can open a <code>*.sol</code> file and display its information. As of this writing, the current version doesn&#8217;t allow editing of the actual values stored, but there may be some other applications out there that I didn&#8217;t find.</p>
<p><img src="http://yuiblog.com/assets/flash-sol/minerva.png" width="535" height="384" alt="Screenshot of Minerva application"></p>
<p>If you&#8217;d like to remove some or all of these &#8220;Flash cookies&#8221;, you can simply delete the files or directories as needed. Note, however, that some sites make extensive use of SharedObjects, so removing them may cause unexpected behavior. Financial institutions in particular take advantage of them to aid in the security of their sites. So make sure you know what you&#8217;re doing, or create a backup before wreaking havoc.</p>
<p>An alternative to browsing through directories is to use <a href="http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager07.html">Adobe&#8217;s Settings Manager</a>. This is a Flash-based tool with special privileges that will allow you to view information about the storage on your machine, remove some or all of the stores, and set restrictions on future storage.</p>
<p>So, next time you want a clean slate for your browser, remember that there may be some additional information lurking on your machine that the browser can&#8217;t get to.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yuiblog.com/blog/2009/06/23/flash-sol/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Coupling YUI and YQL to Build Dynamic Widgets</title>
		<link>http://www.yuiblog.com/blog/2009/06/17/yui-and-yql/</link>
		<comments>http://www.yuiblog.com/blog/2009/06/17/yui-and-yql/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 19:14:57 +0000</pubDate>
		<dc:creator>Jonathan LeBlanc</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[connection manager]]></category>
		<category><![CDATA[get utility]]></category>
		<category><![CDATA[yql]]></category>
		<category><![CDATA[yui]]></category>

		<guid isPermaLink="false">http://www.yuiblog.com/blog/?p=366</guid>
		<description><![CDATA[

About the Author: Jonathan LeBlanc (twitter: jcleblanc) works with the partner integration group in the Yahoo! Developer Network as a senior software engineer / technology evangelist.  Focusing on partner relationships and training, as well as external developer integration, Jonathan works with and promotes emerging technologies to aid in the adoption and utilization of new [...]]]></description>
			<content:encoded><![CDATA[<div class="interview">
<div class="intro">
<p><img src="http://yuiblog.com/assets/leblanc.jpg" alt="Yahoo! Developer Network evangelist Jonathan LeBlanc" width="126" height="129" hspace="10" vspace="5" align="right"><strong>About the Author:</strong> <em>Jonathan LeBlanc (twitter: <a href="http://www.twitter.com/jcleblanc">jcleblanc</a>) works with the partner integration group in the <a href="http://developer.yahoo.com/">Yahoo! Developer Network</a> as a senior software engineer / technology evangelist.  Focusing on partner relationships and training, as well as external developer integration, Jonathan works with and promotes emerging technologies to aid in the adoption and utilization of new social development techniques.  As a software engineer, Jonathan works extensively with social interaction development on the web, developing new methods for linking social networks to drive the ideal of an open web.  Prior to Yahoo!, Jonathan worked within both the media production and fantasy product development teams at CBSSports.com, where he developed on products such as the Emmy award-winning march madness on demand video player.   Born and raised in Canada, Jonathan graduated from Algonquin College of Applied Arts and Technology with a degree in computer science and currently lives in Dublin, CA with his wife.</em></p>
</div>
</div>
<p>YUI has a wonderfully rich list of data manipulation and UI utilities in its library, but coming up with equally rich and interesting data is generally your responsibility as an implementer.  By the same token, <a href="http://developer.yahoo.com/yql/">YQL</a> has rich data fetching and interaction abilities, but it lacks YUI&#8217;s visualization tools. Taking the visualization and control features of YUI and coupling them with the raw data pipe of YQL, we can build incredibly rich, interactive widgets without the need to create any of the  visualizations or data storage mechanisms ourselves.</p>
<p>I&#8217;ll give you a tour of two widgets built with YUI and YQL in this post.  One displays publicly available content and the other builds upon that original widget with a server-side PHP component to display private user data by authenticating with OAuth.</p>
<h3>Accessing Public Data</h3>
<p>Using the <a href="http://developer.yahoo.com/yui/get/">YUI Get Utility</a>, we are able to make requests to the public <a href="http://developer.yahoo.com/yql/">YQL</a> query URL without having the pain of dealing with the same-origin policy issue that would normally prevent us from making XHR-based requests to a server that is not on the same domain as the originating request.  Below is a small code sample which showcases how you would call <a href="http://developer.yahoo.com/yql/">YQL</a> using the <a href="http://developer.yahoo.com/yui/get/">YUI Get Utility</a>:</p>
<pre>
&lt;script type="text/javascript"&gt;
var getYQLData = function(query){
    //prepare the URL for the YUI GET request:
    var yqlPublicQueryURL = "http://query.yahooapis.com/v1/yql?";
    var sURL = yqlPublicQueryURL + "q=" + query
        + "&#038;format=json&#038;callback=yqlWidget.getYQLDataCallback";

    //make GET request to YQL with provided query
    var transactionObj = YAHOO.util.Get.script(sURL, {
        onSuccess : onYQLReqSuccess,
        onFailure : onYQLReqFailure,
        scope     : this
    });

    return transactionObj;
}
&lt;/script&gt;
</pre>
<p>The query URL (<code>sURL</code>) is composed of several different parts to make up the request.  The <code>yqlPublicQueryURL</code> variable contains the public URI for making requests to YQL.  There are also three query parameters that we are passing along to this URI.  The <code>q</code> parameter is the YQL query that we use in our request (e.g. <code>select * from flickr.photos.search where text="YDN"</code>),  <code>format</code> is the format we want returned (JSON or XML) from the request, and if we want to wrap the JSON returned data in a function (a la <a href="http://en.wikipedia.org/wiki/JSON#JSONP">JSONP</a>) we can define a callback function using the <code>callback</code> parameter.  When this function runs, the Get Utility will make a request to <code>query.yahooapis.com</code> with the specified query.  On success, a debug message will be displayed in the <code>onSuccess</code> callback for the Get Utility then the callback defined in the YQL query will be called to parse the returned JSON results.</p>
<p>Setting up this widget on your own site or blog is as simple as downloading the code from the <code>js-yql-display</code> folder on github at <a href="http://github.com/jonleblanc/yql-utilities/tree/master">http://github.com/jonleblanc/yql-utilities/tree/master</a> and instantiating the widget like this:</p>
<pre>
&lt;!-- widget file include --&gt;
&lt;script type="text/javascript" src="yql_js_widget.js"&gt;&lt;/script&gt;

&lt;!-- widget styles --&gt;
&lt;style&gt;
div.imgCnt{ border: 1px solid rgb(96, 96, 96);
    margin: 5px 5px 5px 0pt; float: left;
	background-color: rgb(241, 241, 241); width:100px;
	height:140px; }
div.imgCnt img{ border:0; margin:5px; }
div.imgCnt div.imgTitle{ padding: 5px; font-size: 11px;
    text-align:center; }
&lt;/style&gt;

&lt;script type="text/javascript"&gt;
var config = {'debug' : true};
var format = '&lt;div class="imgCnt" align="center"&gt;'
    + '&lt;a href="http://www.flickr.com/photos/{owner}/{id}/"'
    + 'target="_blank"&gt;&lt;img src="http://farm3.static.'
    + 'flickr.com/{server}/{id}_{secret}.jpg?v=0"'
    + 'width="80" height="80" /&gt;&lt;/a&gt;'
    + '&lt;div class="imgTitle"&gt;'
    + '&lt;a href="http://www.flickr.com/photos/{owner}/'
    + '{id}/"&gt;{title}&lt;/a&gt;'
    + '&lt;/div&gt;&lt;/div&gt;';
var yqlQuery =
    'select * from flickr.photos.search where text="YDN"';
var insertEl = 'widgetContainer';
yqlWidget.push(yqlQuery, config, format, insertEl);
&lt;/script&gt;
</pre>
<p>Any number of public YQL queries can be made using the above example &mdash; all documentation for how the configuration script works can be found on <a href="http://github.com/jonleblanc/yql-utilities/tree/master">github</a>.  If we run the above code we can easily display our most recent flickr photos:
</p>
<p><a href="http://yuiblog.com/assets/js_widget_public/yql_js_widget.html"><img src="http://yuiblog.com/assets/public_flickr.jpg" width="500" height="68" border="0" alt="flickr photo display" /></a></p>
<p>So, why all the fuss over using YQL and YUI together like this?  Well, for me these utilities bring me quite close to a traditional MVC (Model View Controller) type of design pattern.  YQL is a wonderful data aggregation and manipulation tool, but at the end of the day it&#8217;s just data.  We insert the controller functionality using YUI utilities such as <a href="http://developer.yahoo.com/yui/get/">the Get Utility</a> or <a href="http://developer.yahoo.com/yui/connection/">Connection Manager</a>, then we can build our presentation layer on top of that using widgets like <a href="http://developer.yahoo.com/yui/datatable/">DataTable</a> and <a href="http://developer.yahoo.com/yui/charts/">Charts</a>.</p>
<p><a href="http://www.nakedtechnologist.com/php_widget_oauth/yql_php_widget.html"><img src="http://yuiblog.com/assets/private_updates.jpg" width="300" height="399" border="0" alt="private update stream" style="margin:5px 8px 5px 0;" /></a></p>
<h3>Accessing Private User Data</h3>
<p>Let&#8217;s explore the pairing of YUI and YQL a little further by taking the foundation built in the public JavaScript query widget and attaching a server-side component to authenticate and store an oAuth session. Using the Y!OS <a href="http://developer.yahoo.com/social/sdk/#php">PHP SDK</a>, we are able to extend the JavaScript widget to display the update stream and personal badge details of the user who originally authenticated the widget.  Since we&#8217;re using the PHP SDK on the same domain as our widget to make our authenticated calls to YQL, we no longer need to worry about the same-origin policy issues. This means that we can exchange the use of the <a href="http://developer.yahoo.com/yui/get/">YUI Get Utility</a> with the <a href="http://developer.yahoo.com/yui/connection/">YUI Connection Manager</a>.  The benefit to using the <a href="http://developer.yahoo.com/yui/connection/">Connection Manager</a> here is that we can use a standard ajax request and the event handlers of  the utility instead of a callback within the YQL query.  Our new request function would look something like this:</p>
<pre>
&lt;script type="text/javascript"&gt;
var getYQLData = function(query){
    //prepare URL &#038; post data for YUI Connection Manager POST:
    var sURL = "private_data_fetch.php";
    var postData = "q=" + query;

    //define Connection Manager event callbacks
    var callback = {
        success:parseYQLResults,
        failure:onYQLReqFailure
    };

    //make POST request to YQL with provided query
    var transactionObj = YAHOO.util.Connect.asyncRequest('POST',
	    sURL, callback, postData);

    return transactionObj;
}
&lt;/script&gt;
</pre>
<p>The Connection Manager is used to make AJAX requests to the PHP SDK (whose references are housed in <code>private_data_fetch.php</code> within the above code) with the query as a POST parameter.  The SDK in turn makes an authenticated request for the user&#8217;s personal data and dumps out a JSON string as the return of the request.  Then all you need to do is parse the JSON string using the <a href="http://developer.yahoo.com/yui/json/">YUI JSON Utility</a>; after you&#8217;ve called <code>YAHOO.util.JSON.parse()</code> on the transaction results, your data can be treated in the same manner as the data in the first example.</p>
<p>Since YQL generates results when the request is called, there is no need to house this data for yourself.  YQL can pull data from any available source so you can build widgets such as these to display dynamic results with each refresh.</p>
<p>Both of the widgets showcased in this post are freely available for download and contribution on github at<br />
<a href="http://github.com/jonleblanc/yql-utilities/tree/master">http://github.com/jonleblanc/yql-utilities/tree/master</a>.  These widgets are:</p>
<ul>
<li><code>js-yql-display</code>: JavaScript widget to display public YQL data</li>
<li><code>php-yql-display</code>: JavaScript / PHP widget to display private YQL data</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.yuiblog.com/blog/2009/06/17/yui-and-yql/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Implementation Focus: Squarespace</title>
		<link>http://www.yuiblog.com/blog/2009/06/09/implementation-focus-squarespace/</link>
		<comments>http://www.yuiblog.com/blog/2009/06/09/implementation-focus-squarespace/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 16:08:18 +0000</pubDate>
		<dc:creator>Jenny Han Donnelly</dc:creator>
				<category><![CDATA[YUI Implementations]]></category>

		<guid isPermaLink="false">http://yuiblog.com/blog/?p=355</guid>
		<description><![CDATA[

Squarespace.com started in the dorm room of Anthony Casalena and has grown into a sizable company and a formidable service that serves the needs of tens of thousands of customers every day &#8212; including Mark Ecko and Kevin Rose. Squarespace allows its customers to create and manage their web sites using a polished interface without [...]]]></description>
			<content:encoded><![CDATA[<div class="interview">
<div class="intro">
<p><img src="http://yuiblog.com/assets/squarespace/logo.png" width="198" height="148" hspace="10" vspace="5" align="right"><em><a href="http://squarespace.com">Squarespace.com</a> started in the dorm room of Anthony Casalena and has grown into a sizable company and a formidable service that serves the needs of tens of thousands of customers every day &mdash; including Mark Ecko and Kevin Rose. Squarespace allows its customers to create and manage their web sites using a polished interface without having to install software &mdash; it&#8217;s all done through the browser. Squarespace is deﬁned by our insistence on software that provides an unparalleled user experience from a robust core. Every pixel of Squarespace&#8217;s software is engineered and animated to be ﬂawless.</em></p>
</div>
<p><img width="550" height="304" alt="Members of Squarespace team: (From left to right) Paolo DeDios, Erica Reitman, Dane Atkinson, Jonathan Snook, Anthony Casalena, Tyler Thompson, Davin Chew, Rolando Berrios." src="http://yuiblog.com/assets/squarespace/team.jpg"/></p>
<p class="caption"><strong>Members of the Squarespace team:</strong> <em>(From left to right) Paolo DeDios, Erica Reitman, Dane Atkinson, Jonathan Snook, Anthony Casalena, Tyler Thompson, Davin Chew, Rolando Berrios.</em></p>
<p class="q"><strong>Can you provide a background of projects where you&#8217;ve used YUI?  What problems are you trying to solve for users?</strong></p>
<p>Squarespace has two different audiences that have to be served in different ways. We have Squarespace customers who use the tools that we provide and we have the people who visit the sites that our customers create. YUI is used to drive a lot of the functionality that we provide to our customers and do that in a way that works reliably cross-browser. If we don&#8217;t provide a reliable in-browser experience, we&#8217;ll hear about it with support requests.</p>
<p>We also have YUI available for our customers to use on the sites that they build (although it&#8217;s never been a requirement). Our customers get to rely on a stable and reliable library for any of their own site-building needs.</p>
<p><img src="http://yuiblog.com/assets/squarespace/screenshot1.png" width="510" height="310" alt="Screenshot of Squarespace overview page."></p>
<p class="q"><strong>You chose YUI&#8217;s JavaScript library to help drive the UI.  What led you to make that choice?</strong></p>
<p>At the time the decision was made, YUI was the best choice. YUI is a well-designed library that considered the requirements of multiple scenarios, not limiting itself to one or two use cases. It was also one of the few libraries that had an integrated and supported set of widgets.</p>
<p>Also, the fact that YUI is actively maintained and tested so extensively with the <a href="http://www.yahoo.com/">Yahoo! homepage</a> is a massive win.  No other library we looked at was receiving that sort of extensive testing and coverage. When we have run into speed issues, it&#8217;s turned out to be cross-browser issues unrelated to our use of YUI.</p>
<p class="q"><strong>What YUI components are in use on which projects?</strong></p>
<p>Of course the standard <a href="http://developer.yahoo.com/yui/dom/">DOM</a> and <a href="http://developer.yahoo.com/yui/event/">Event</a> stuff along with <a href="http://developer.yahoo.com/yui/dragdrop/">Drag and Drop</a>, <a href="http://developer.yahoo.com/yui/animation/">Animation</a>, and <a href="http://developer.yahoo.com/yui/connection/">Connection Manager</a>. On the widget side of things, we take advantage of <a href="http://developer.yahoo.com/yui/calendar/">Calendar</a>, <a href="http://developer.yahoo.com/yui/colorpicker/">ColorPicker</a>, and <a href="http://developer.yahoo.com/yui/slider/">Slider</a>.</p>
<p class="q"><strong>Design and interface quality are huge differentiators for startups. What are the features you have prioritized in your interfaces and what have you build on top of YUI?</strong></p>
<p>For Squarespace, design and interface quality is a big part of our success. We really work to create a polished in-browser experience so that customers can design and manage their sites all from one place.<br />
We&#8217;re trying to replace desktop tools. The browser and YUI have allowed us to do that.</p>
<p>We pull in dynamic overlays allowing our customers to move content around, edit content on the spot, or add new content without requiring a page refresh. Squarespace also allows them to edit the look and feel of their sites dynamically. Change colours, images, or other CSS properties from the interface or have direct access to specify whatever CSS you want. It&#8217;s really quite flexible, and we&#8217;re very proud of how well it has been received.</p>
<p><img src="http://yuiblog.com/assets/squarespace/screenshot2.png" width="510" height="348" alt="Screenshot of Squarespace design view page."></p>
<p class="q"><strong>What are the next interface challenges you are tackling for upcoming releases?</strong></p>
<p>We have some great features that we&#8217;re working on right now that will increase the flexibility that our customers will have to modify their content and design right from the browser but the challenge with doing more stuff within the browser is ensuring that you&#8217;re creating a snappy and responsive interface. We definitely don&#8217;t want them to be sitting there while we load up large assets. We want them to be able to jump in and play with their sites as quickly and easily as possible.</p>
<p>We plan to stick with YUI and will be watching <a href="http://yuiblog.com/blog/2009/05/12/video-desai-yui3/">the progress of YUI 3</a> very closely to see how it&#8217;ll fit into our future plans.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.yuiblog.com/blog/2009/06/09/implementation-focus-squarespace/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>YUI Theater &#8212; Charles McCathieNevile: &#8220;Opera Dragonfly&#8221;</title>
		<link>http://www.yuiblog.com/blog/2009/06/01/video-mccathienevile-dragonfly/</link>
		<comments>http://www.yuiblog.com/blog/2009/06/01/video-mccathienevile-dragonfly/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 17:04:56 +0000</pubDate>
		<dc:creator>Eric Miraglia</dc:creator>
				<category><![CDATA[YUI Theater]]></category>
		<category><![CDATA[chaals]]></category>
		<category><![CDATA[Charles McCathieNevile]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[dragonfly]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[opera]]></category>

		<guid isPermaLink="false">http://yuiblog.com/blog/?p=352</guid>
		<description><![CDATA[
One of the first YUI Theater videos years ago was published after Joe Hewitt came to Yahoo! to talk about the 1.0 release of Firebug, and back in those days Firebug was a paradigm shift &#8212; it had a convenient interface that combined DOM inspection and debugging, and it allowed developers to finally put the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://developer.yahoo.com/yui/theater/mccathienevile-dragonfly.html"><img src="http://yuiblog.com/assets/chaals-20090526-225526.jpg" width="510" height="319" alt="Charles McCathieNevile of Opera; May 26, 2009, at Yahoo!"></a></p>
<p>One of the first <a href="http://developer.yahoo.com/yui/theater/">YUI Theater</a> videos years ago was published after <a href="http://yuiblog.com/blog/2007/01/26/video-hewitt-firebug/trackback/">Joe Hewitt came to Yahoo! to talk about the 1.0 release of Firebug</a>, and back in those days Firebug was a paradigm shift &mdash; it had a convenient interface that combined DOM inspection and debugging, and it allowed developers to finally put the venerable Venkman on the shelf.</p>
<p>The Firebug model has penetrated into other browser families today, and today IE8 and Safari both have capable developer tools while Firebug soldiers on in service to Firefox.  None of the tools is perfect, but Firebug has served as a good proof-of-concept for what a multipurpose, extensible inspector/debugger toolkit can do.</p>
<p>Opera is now innnovating on this front as well, and <a href="http://developer.yahoo.com/yui/theater/mccathienevile-dragonfly.html">Charles McCathieNevile, Chief Standards Officer, stopped by Yahoo! on May 26 to tell us about their latest effort</a>: <a href="http://www.opera.com/dragonfly/">Opera Dragonfly</a>.  Dragonfly will work with Opera 9.5 and later, and it&#8217;s a novel approach &mdash; implemented as a widget using JavaScript and CSS and proposing a new &#8220;Scope API&#8221; that (if agreed upon by browser makers) could allow for a common debugging platform.  Dragonfly is fully open-sourced.</p>
<p>Slides from Charles&#8217;s talk are <a href="http://yuiblog.com/assets/mccathienevile-dragonfly.zip">available as zipped HTML files</a>.</p>
<p>The embed from Yahoo Video follows; <a href="http://developer.yahoo.com/yui/theater/mccathienevile-dragonfly.html">a higher-resolution version, along with a transcript, is available from the YUI Theater site</a>.</p>
<p>
<div><object width="512" height="322"><param name="movie" value="http://d.yimg.com/static.video.yahoo.com/yep/YV_YEP.swf?ver=2.2.40" /><param name="allowFullScreen" value="true" /><param name="AllowScriptAccess" VALUE="always" /><param name="bgcolor" value="#000000" /><param name="flashVars" value="id=13677851&#038;vid=5171793&#038;lang=en-us&#038;intl=us&#038;thumbUrl=http%3A//l.yimg.com/a/p/i/bcst/videosearch/9112/86320859.jpeg&#038;embed=1" /><embed src="http://d.yimg.com/static.video.yahoo.com/yep/YV_YEP.swf?ver=2.2.40" type="application/x-shockwave-flash" width="512" height="322" allowFullScreen="true" AllowScriptAccess="always" bgcolor="#000000" flashVars="id=13677851&#038;vid=5171793&#038;lang=en-us&#038;intl=us&#038;thumbUrl=http%3A//l.yimg.com/a/p/i/bcst/videosearch/9112/86320859.jpeg&#038;embed=1" ></embed></object><br /><a href="http://video.yahoo.com/watch/5171793/13677851">Charles McCathieNevile: &quot;Opera Dragonfly&quot;</a> @ <a href="http://video.yahoo.com" >Yahoo! Video</a></div>
</p>
<p><img src="http://us.i1.yimg.com/us.yimg.com/i/nt/ic/ut/bsc/vidcam12_1.gif" border="0" hspace="10"><a href="http://yuiblog.com/yuitheater/mccathienevile-dragonfly.m4v">download (m4v)</a></p>
<h3>In Case You Missed&#8230;</h3>
<p>Some other recent videos from the <a href="http://developer.yahoo.com/yui/theater/">YUI Theater series</a>:</p>
<ul>
<li><strong>Todd Kloots:</strong> <a href="http://developer.yahoo.com/yui/theater/kloots-a11y.html">Developing an Accessible Web 2.0 Widget Framework</a></li>
<li><strong>Satyen Desai:</strong> <a href="http://developer.yahoo.com/yui/theater/desai-yui3.html">YUI 3: Design Goals and Architecture</a></li>
<li><strong>Peter-Paul Koch (PPK):</strong> <a href="http://video.yahoo.com/watch/4943143/13163203">JavaScript Events</a></li>
<li><strong>Jenny Donnelly:</strong> <a href="http://video.yahoo.com/watch/4073211/10996186">Hacking with YUI</a></li>
</ul>
<h3>Subscribing to YUI Theater:</h3>
<ul>
<li><a href="http://feeds.feedburner.com/yuiblog/yui-theater">YUI Theater RSS feed</a></li>
<li><a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=263846173&amp;s=143441">YUI Theater on iTunes</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.yuiblog.com/blog/2009/06/01/video-mccathienevile-dragonfly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Frontend Engineering Position on the Yahoo! Openness Strategy Team</title>
		<link>http://www.yuiblog.com/blog/2009/05/26/f2ejobs-20090526/</link>
		<comments>http://www.yuiblog.com/blog/2009/05/26/f2ejobs-20090526/#comments</comments>
		<pubDate>Tue, 26 May 2009 20:32:20 +0000</pubDate>
		<dc:creator>Eric Miraglia</dc:creator>
				<category><![CDATA[Frontend Engineering Jobs at Yahoo]]></category>
		<category><![CDATA[f2e]]></category>
		<category><![CDATA[frontend engineering]]></category>
		<category><![CDATA[job openings]]></category>
		<category><![CDATA[jobs]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[yahoo]]></category>
		<category><![CDATA[yui]]></category>

		<guid isPermaLink="false">http://yuiblog.com/blog/?p=348</guid>
		<description><![CDATA[We noted a few frontend engineering positions available at Yahoo! last week, and we have another one to share with you today.  This position is a senior F2E role focusing on Yahoo!&#8217;s platforms for developers &#8212; our &#8220;Openness Strategy,&#8221; or YOS.
About YOS
The Yahoo! Openness Strategy Team is building the next generation of open platforms [...]]]></description>
			<content:encoded><![CDATA[<p>We noted <a href="http://yuiblog.com/blog/2009/05/22/f2ejobs-20090522/">a few frontend engineering positions available at Yahoo!</a> last week, and we have another one to share with you today.  <a href="http://careers.yahoo.com/jdescription.php?oid=22173">This position is a senior F2E role focusing on Yahoo!&#8217;s platforms for developers</a> &mdash; our &#8220;Openness Strategy,&#8221; or YOS.</p>
<h3>About YOS</h3>
<p>The Yahoo! Openness Strategy Team is building the next generation of open platforms and integrating them into every part of Yahoo!. From platforms that add a social element to every aspect of Yahoo!, to an applications platform and developer-focused offerings, the YOS team is tasked with transforming the way Yahoo! works. In building out all the components of YOS, the team is focused on implementing distributed systems that are highly scalable and performant so they can reliably serve hundreds of millions of Yahoo! users and developers every day.</p>
<h4>Job Responsibilities</h4>
<p>You will be part of the engineering team that focuses on Yahoo! application platform (YAP), which enables developers to build web applications that are available throughout Yahoo! &mdash; the largest audience in the world. You will contribute to the architecture, design and implementation of innovative features and services for this platform. You will work closely with the rest of the engineering team, product managers, QA engineers and external partners who build applications on this platform.</p>
<h4>Minimum Qualifications</h4>
<ol>
<li>7+ years of industry experience working directly with the full web technology stack: browsers, web servers and databases</li>
<li>Strong command of browser-side client technologies including Ajax, XHTML, DHTML, CSS, JavaScript, DOM JSON, cross-browser compatibility issues, optimization techniques and internationalization issues</li>
<li>Experience with application development using Java or PHP</li>
<li>Strong command of client/server programming with AJAX</li>
<li>Excellent written and verbal communication skills</li>
<li>Extensive experience with object-oriented design and development techniques</li>
<li>Familiarity with software development life cycle and best practices</li>
<li>BS in Computer Science or equivalent. MS in Computer Science preferred </li>
</ol>
<h4>Preferred Qualifications</h4>
<ol>
<li>Knowledge of using Javascript toolkits such as YUI or jQuery</li>
<li>Experience with JSP compiler implementation</li>
<li>Experience with Open Social or Shindig implementation</li>
</ol>
<p>You can view the job posting and apply at the following URL: <a href="http://careers.yahoo.com/jdescription.php?oid=22173">http://careers.yahoo.com/jdescription.php?oid=22173</a>. Yahoo! Inc. is an equal opportunity employer. For more information or to search all of our openings please visit <a href="http://careers.yahoo.com">http://careers.yahoo.com</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.yuiblog.com/blog/2009/05/26/f2ejobs-20090526/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>In the Wild for May 26, 2009</title>
		<link>http://www.yuiblog.com/blog/2009/05/26/in-the-wild-for-may-26-2009/</link>
		<comments>http://www.yuiblog.com/blog/2009/05/26/in-the-wild-for-may-26-2009/#comments</comments>
		<pubDate>Tue, 26 May 2009 17:36:00 +0000</pubDate>
		<dc:creator>Eric Miraglia</dc:creator>
				<category><![CDATA[In the Wild]]></category>

		<guid isPermaLink="false">http://yuiblog.com/blog/?p=346</guid>
		<description><![CDATA[Here&#8217;s a recap of news and notes from the YUI world in the past few weeks.  Please use the comments below to let us know what we missed.

Uizard &#8211; a Web Mashup Generator Written in YUI: Writes Ajaxian: &#8220;The Korean developer community is not that known to people in the west it seems. Language [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a recap of news and notes from the YUI world in the past few weeks.  Please use the comments below to let us know what we missed.</p>
<ul id="releaselist-15">
<li id="yuiBlogWild-281"><strong><a href="http://uizard.org/">Uizard &#8211; a Web Mashup Generator Written in YUI</a>:</strong> Writes Ajaxian: &#8220;The Korean developer community is not that known to people in the west it seems. Language barriers make it hard to communicate and the web design is very different to what we do here. Being lucky enough to work with developers world-wide in the same company I just got reminded of a tool that was built for the <a href="http://mashupkorea.com/">Korea Mashup challenge</a> called <a href="http://uizard.org/">Uizard</a>.&#8221;&nbsp; Uizard was developed by Ryu Sung-tae &#8212; it&#8217;s servers are challenged by the Ajaxian link, but <a href="http://uizard.org">check it out</a> when they come back up. (<a href="http://ajaxian.com/archives/uizard-a-web-mashup-generator-written-in-yui">Original source.</a>)<br /><a href="http://uizard.org/"><img src="http://yuiblog.com/assets/UIzard-20090513-082218.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-283"><strong><a href="http://www.cn.ca/">YUI Implementations at Canadian National Railway</a>:</strong> Lionel Desdier (the &#8220;Java-powered railroader&#8221;) wrote in to tell us about his extensive implementation of YUI on web applications at <a href="http://www.cn.ca/">Canadian National Railway</a>.&nbsp; Writes Lionel: &#8220;The goal of that new web application, called Intermodal Orders, is to manage empty container orders for our internal clerks&#8217; usage as much as for our external customers usage. This application is part of our EBusiness portal.&nbsp; The application web client is purely JavaScript and extensively based on the YUI library. The client uses JSON to exchange data back and forth with the server that runs a Java back-end.&nbsp; We are using most of the available components from grid layout, calendar, dom, overlays, treeview, datatable and datasource, etc.&nbsp; We also extended the library to create our own components branded to the company look and feel.&#8221;&nbsp; The EBusiness portal is behind a login, but <a href="http://www.cn.ca">the main cn.ca</a> site also uses some YUI.<br /><a href="http://www.cn.ca/"><img src="http://yuiblog.com/assets/cn-20090523-123822.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-284"><strong><a href="http://adventure.nationalgeographic.com/2009/04/everett-ruess/david-roberts-text">YUI in Use on National Geographic Adventure Magazine</a>:</strong> Talk about &#8220;in the wild&#8221;&#8230;&nbsp; Among the online magazines using YUI is National Geographic Magazine, a great resource for those who like to get out of their cubicles and explore the most interesting places in the world. You&#8217;ll find YUI on the magizine&#8217;s article pages.<br /><a href="http://adventure.nationalgeographic.com/2009/04/everett-ruess/david-roberts-text"><img src="http://yuiblog.com/assets/nationalgeographic-20090523-130026.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-285"><strong><a href="http://satyam.com.ar/yui/widgetstyles.html">Satyam on &#8220;Changing the Style of an Element in a YUI Widget&#8221;</a>:</strong> YUI&#8217;s most prolific contributor is as at it again with <a href="http://satyam.com.ar/yui/widgetstyles.html">a new tutorial on how to style YUI widgets</a>.&nbsp; If you&#8217;re unfamiliar with the process of digging into a widget&#8217;s markup and CSS using Firebug (or other DOM inspector), you&#8217;ll find this a must-read tutorial.<br /><a href="http://satyam.com.ar/yui/widgetstyles.html"><img src="http://yuiblog.com/assets/satyam-20090526-102541.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-279"><strong><a href="http://gnocdc.org/repopulation/">New Orleans Repopulation Data Using Google Maps and YUI</a>:</strong> @mattpriour <a href="http://twitter.com/mattpriour/statuses/1776362124">wrote in</a> to tell us about the <a href="http://gnocdc.org/repopulation/">Greater New Orleans Community Data Center&#8217;s Repopulation Indicators site</a>, which uses YUI Grids, YUI Loader, and YUI Core in generating a genuinely interesting block-by-block look at New Orleans population levels from 2005 to today. (<a href="http://twitter.com/mattpriour/statuses/1776362124">Original source.</a>)<br /><a href="http://gnocdc.org/repopulation/"><img src="http://yuiblog.com/assets/gnodc-repopulation-indicators-20090512-123057.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-280"><strong><a href="http://blog.lavablast.com/post/2009/05/YUI-Compressor-for-Visual-Studio.aspx">YUI Compressor for Visual Studio</a>:</strong> <a href="http://blog.lavablast.com/post/2009/05/YUI-Compressor-for-Visual-Studio.aspx">Writes the author</a>:&nbsp; &#8220;Although you don&#8217;t want this for all things in life, you do want to ensure that your JavaScript and CSS files are as small as possible.&nbsp; As a web programmer, a script minifier is a useful application that should be a part of your toolbelt. This article presents a simple way to hook up <a href="http://developer.yahoo.com/yui/compressor/">a popular minifer</a> inside Visual Studio.&#8221; (<a href="http://twitter.com/dankenzon/statuses/1777366062">Original source.</a>)<br /><a href="http://blog.lavablast.com/post/2009/05/YUI-Compressor-for-Visual-Studio.aspx"><img src="http://yuiblog.com/assets/compressor-for-vs-20090512-141623.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-278"><strong><a href="http://uzvy.com">Uzvy.com, Groups Solution, Using Tons of YUI</a>:</strong> @alokbhardwaj <a href="http://twitter.com/alokbhardwaj/statuses/1773314385">wrote in</a> to tell us about <a href="http://uzvy.com">Uzvy.com</a>, a groups site containing discussion groups and &#8220;shareboards&#8221; that aims to provide a novel and compelling take on the groups space.&nbsp; YUI is used throughout, for modal dialogs, XHR, and much more. (<a href="http://twitter.com/alokbhardwaj/statuses/1773314385">Original source.</a>)<br /><a href="http://uzvy.com"><img src="http://yuiblog.com/assets/uzvy-20090512-120254.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-277"><strong><a href="http://cagataycivici.wordpress.com/2009/05/06/primefaces-calendar-component/">Cagatay Civici Adds YUI Calendar to PrimeFaces</a>:</strong> <a href="http://cagataycivici.wordpress.com/2009/05/06/primefaces-calendar-component/">Writes Cagatay</a>: &#8220;Every JSF component library provides some sort of a date picker component and <a href="http://primefaces.prime.com.tr">PrimeFaces</a> is no exception. In fact, PrimeFaces calendar component is based on the well known <a href="http://developer.yahoo.com/yui/calendar/">YUI calendar widget</a> which is equipped with some unique features. Calendar is purely javascript and does not do unnecessary ajax callbacks so it’s fast and furious.&#8221;<br /><a href="http://cagataycivici.wordpress.com/2009/05/06/primefaces-calendar-component/"><img src="http://yuiblog.com/assets/primefacescalendar-20090512-114854.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-282"><strong><a href="http://neyric.com/%7Eneyric/yqlex-builder/yqlex-builder.html">Eric Abouaf&#8217;s YQL Execute, Based on Dav Glass&#8217;s Grids Builder</a>:</strong> Eric Abouaf has taken Dav Glass&#8217;s <a href="http://developer.yahoo.com/yui/grids/builder/">Grids Builder</a> and added support for <a href="http://developer.yahoo.com/yql/">YQL</a> query execution, allowing you to build YQL-based pages easily; <a href="http://neyric.com/%7Eneyric/yqlex-builder/yqlex-builder.html">check out Eric&#8217;s adaptation here</a>. (<a href="http://yuiblog.com/blog/2009/05/11/wild-20090511/#comment-581647">Original source.</a>)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.yuiblog.com/blog/2009/05/26/in-the-wild-for-may-26-2009/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
