<?xml version="1.0"?>
<rss version="2.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007">
   <channel>
      <title>YUI Implementations and YUI &quot;In the Wild&quot;</title>
      <description>Pipes Output</description>
      <link>http://pipes.yahoo.com/pipes/pipe.info?_id=9v4jfl5J3RGC4gtZxAnzeQ</link>
      <pubDate>Tue, 24 Nov 2009 03:00:00 -0800</pubDate>
      <generator>http://pipes.yahoo.com/pipes/</generator>
      <item>
         <title>Implementation Focus: OCLC/WorldCat</title>
         <link>http://www.yuiblog.com/blog/2009/11/19/yui-on-oclc-and-worldcat/</link>
         <description>Fiz Mohamed has worked for OCLC since 2004 where he&amp;#8217;s a senior UI/UX (accessible) designer/developer for a number of high profile products and is responsible for a UI Cookbook/Library. A wealth of commercial freelance experience since 1993 has resulted in a wide range of technical and graphical skills. He lead the UI design for the [...]</description>
         <guid isPermaLink="false">http://www.yuiblog.com/blog/?p=931</guid>
         <pubDate>Thu, 19 Nov 2009 10:33:56 -0800</pubDate>
         <content:encoded><![CDATA[<div class="interview">
<div class="intro">
<p><img align="right" hspace="10" vspace="5" src="http://yuiblog.com/assets/mohamedfiz.jpg" alt="Mohamed Fiz"><em><a rel="nofollow" target="_blank" href="http://www.linkedin.com/in/fizix">Fiz Mohamed</a> has worked for OCLC since 2004 where he&#8217;s a senior UI/UX (accessible) designer/developer for a number of high profile products and is responsible for a UI Cookbook/Library. A wealth of commercial freelance experience since 1993 has resulted in a wide range of technical and graphical skills. He lead the UI design for the launch of <a rel="nofollow" target="_blank" href="http://cinema.com">Cinema.com</a> and also was the UI/UX designer for the US National Archives &#038; Records Administration ARC project.</em></p>
</div>
</div>
<p><img src="http://yuiblog.com/assets/yui-tabs-on-worldcat-20091119-102329.png" alt="YUI TabView on Worldcat."></p>
<p>Here at OCLC &mdash; a worldwide non-profit library cooperative that provides web visibility for library catalogues around the world &mdash; we initially came across <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/">YUI</a> while discussing <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/grids/">grid</a> frameworks early in 2008. Later that year the subject of JavaScript toolkits arose, and we recalled YUI as part of the investigation for one of our products. We looked at a number of other popular toolkits, and we tried to approach the toolkits from the point of view of both a developer and designer. While it was a close call between some, I was very impressed with the YUI, especially with the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/3/">YUI 3</a> intro at that time which showed that Yahoo’s developers weren’t afraid to make big changes for the better, and had borrowed ideas from other mature toolkits and improved upon them. Even using <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/2/">YUI 2</a> would save us time with its fully-featured set of interactive widgets. On top of that, YUI was supported both by Yahoo and an active developer community.</p>
<p><img src="http://yuiblog.com/assets/yui-carousel-on-worldcat-20091119-103137.png" alt="YUI Carousel on WorldCat.org"></p>
<p>YUI components have since found their way onto OCLC&#8217;s <a rel="nofollow" target="_blank" href="http://worldcat.org">WorldCat.org</a>, a site that allows users to search for an item of interest and discover which libraries near them own that item. <a rel="nofollow" target="_blank" href="http://worldcat.org">WorldCat.org</a> has become the Web destination for cross-library searching and uses YUI components in several locations:</p>
<ul>
<li><strong>TabView</strong>: One the homepage, tabs built on <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/tabview/">YUI TabView</a> let a user click between a default search of all formats and one of several narrowed, format-specific searches, including books, DVDs and articles. TabView is also used on library profile pages (such as <a rel="nofollow" target="_blank" href="http://www.worldcat.org/libraries/14229">http://www.worldcat.org/libraries/14229</a>), where users can tab through recently-catalogued items by genre.</li>
<li><strong>Carousel</strong>: The WorldCat.org detailed record page provides a host of evaluative information about an item plus links to related items. Record pages on OCLC’s “WorldCat Local” service, a locally-branded and focused instance of WorldCat.org that serves as a library’s online catalog, uses the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/carousel/">YUI Carousel</a> to present a scrollable assortment of similar works by the same author or about the same subject. (See page bottom of <a rel="nofollow" target="_blank" href="http://ucsd.worldcat.org/oclc/3952807&#038;referer=brief_results">http://ucsd.worldcat.org/oclc/3952807&#038;referer=brief_results</a> for an example.)</li>
<li><strong>Reset/Fonts/Grids CSS</strong>: We use the complete <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/reset/">YUI Reset</a> package on the detailed record page, our most complex layout and most important page since it connects users to the local catalogs of our member libraries. The CSS package helps us maintain a consistent presentation across supported browsers, especially with user adjustment of font sizes &mdash; a key to making the page accessible for library users with limited sight.</li>
<li><strong>Menu</strong>: WorldCat.org will soon use <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/menu/">YUI Menu</a> to create its main navigation and user-account menubar. We liked the better support for keyboard and mouse navigation over our current third-party utility.</li></ul>]]></content:encoded>
      </item>
      <item>
         <title>In the Wild for November 13, 2009</title>
         <link>http://www.yuiblog.com/blog/2009/11/13/in-the-wild-for-november-13-2009/</link>
         <description>Do you have some YUI-related news or an implementation you&amp;#8217;d like to share? Let us know in the comments. @ara_p&amp;#8217;s Tool for Graphing YUI Animation Easing Methods: Newly-minted Yahoo! Mail engineer Ara Pehlivanian posted a nifty tool that helps you visualize the various choices afforded you by the easing library in the YUI 2 Animation [...]</description>
         <guid isPermaLink="false">http://www.yuiblog.com/blog/?p=876</guid>
         <pubDate>Fri, 13 Nov 2009 07:17:38 -0800</pubDate>
         <content:encoded><![CDATA[<p>Do you have some YUI-related news or an implementation you&#8217;d like to share? Let us know in the comments.</p>
<ul id="releaselist-22">
<li id="yuiBlogWild-363"><strong><a rel="nofollow" target="_blank" href="http://arapehlivanian.com/pub/animation-easing.html">@ara_p&#8217;s Tool for Graphing YUI Animation Easing Methods</a>:</strong> Newly-minted Yahoo! Mail engineer <a rel="nofollow" target="_blank" href="http://arapehlivanian.com">Ara Pehlivanian</a> posted <a rel="nofollow" target="_blank" href="http://arapehlivanian.com/pub/animation-easing.html">a nifty tool</a> that helps you visualize the various choices afforded you by the easing library in the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/animation/">YUI 2 Animation Utility</a>. (<a rel="nofollow" target="_blank" href="http://arapehlivanian.com/2009/10/28/graph-representations-of-yui-easing-methods/">Original source.</a>)<br /><a rel="nofollow" target="_blank" href="http://arapehlivanian.com/pub/animation-easing.html"><img src="http://yuiblog.com/assets/arap-animgraph-20091030-180123.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-364"><strong><a rel="nofollow" target="_blank" href="http://kissy.googlecode.com/svn/trunk/src/editor/demo/basic.html">Kissy Editor, a Simple YUI-based Text Editor Specializing in Chinese Text</a>:</strong> Xiaoma, the lead F2E at Taobao.com in China, wrote to tell us about <a rel="nofollow" target="_blank" href="http://kissy.googlecode.com/svn/trunk/src/editor/demo/basic.html">a Taobao project called Kissy</a> Editor.&nbsp; Kissy Editor is a simple Chinese-language text editor based on YUI 2 Yahoo, Dom and Event.&nbsp; It&#8217;s open-source and hosted on Google Code; if you&#8217;re interested in collaborating on the project, get in touch through <a rel="nofollow" target="_blank" href="http://code.google.com/p/kissy/">the Kissy project site</a>.<br /><a rel="nofollow" target="_blank" href="http://kissy.googlecode.com/svn/trunk/src/editor/demo/basic.html"><img src="http://yuiblog.com/assets/kissy-20091030-182303.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-360"><strong><a rel="nofollow" target="_blank" href="http://kaboom.org/">YUI in Use at Playground-focused Non-profit KaBOOM.org</a>:</strong> Elliot Laster, web developer at <a rel="nofollow" target="_blank" href="http://kaboom.org/">KaBOOM</a>, <a rel="nofollow" target="_blank" href="http://yuilibrary.com/forum/viewtopic.php?f=14&amp;t=1398&amp;p=4472#p4472">wrote in</a> to tell us about the work his team is doing with YUI 2.&nbsp; YUI 2 is used throughout the site, as is jQuery, and is used extensively in the projects section, where you can learn about the playground projects that that KaBOOM is tracking in your area (<a rel="nofollow" target="_blank" href="http://projects.kaboom.org/project_searches?state=CA&amp;x=13&amp;y=12">like this one in San Francisco&#8217;s Guerrero Park</a>). KaBOOM is &#8220;a national non-profit dedicated to bringing play back into the lives of our children. We passionately believe that play has purpose. We are driven to create a movement in support of this belief.&#8221; (<a rel="nofollow" target="_blank" href="http://yuilibrary.com/forum/viewtopic.php?f=14&amp;t=1398&amp;p=4472#p4472">Original source.</a>)<br /><a rel="nofollow" target="_blank" href="http://kaboom.org/"><img src="http://yuiblog.com/assets/kaboom.org-20091023-224524.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-361"><strong><a rel="nofollow" target="_blank" href="http://www.whatpercent.com">YUI Helping to Power WhatPercent.com</a>:</strong> <a rel="nofollow" target="_blank" href="http://www.yuiblog.com/blog/2009/10/22/in-the-wild-for-october-22-2009/#comment-585720">Writes Sean</a> from <a rel="nofollow" target="_blank" href="http://www.whatpercent.com">WhatPercent.com</a>: &#8220;YUI has really helped us get our site where we wanted it to be fast!&nbsp; Our site is a social media site that let&#8217;s users check out what the latest online talk is, create personal polls, product reviews, etc, in a quick clean environment supported by YUI&#8217;s awesome tooltip component and a number of others.&nbsp; Also very exciting was the lack of cross browser compliancy nightmares as we used <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/reset/">YUI Reset CSS</a> and <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/button/">YUI Buttons</a>.&#8221; (<a rel="nofollow" target="_blank" href="http://www.yuiblog.com/blog/2009/10/22/in-the-wild-for-october-22-2009/#comment-585720">Original source.</a>)<br /><a rel="nofollow" target="_blank" href="http://www.whatpercent.com"><img src="http://yuiblog.com/assets/whatpercent-20091030-174719.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-362"><strong><a rel="nofollow" target="_blank" href="http://www.domainsuperstar.com">YUI DataTable, TabView, Dialogs and More on DomainSuperstar.com</a>:</strong> <span style="text-decoration:none;">@domainsuperstar <a rel="nofollow" target="_blank" href="http://twitter.com/domainsuperstar/statuses/5126740901">tweeted</a> recently about their YUI-intensive interface.&nbsp; It makes use of a host of YUI 2 components to drive a comprehensive suite of domain research and management tools.</span> (<a rel="nofollow" target="_blank" href="http://twitter.com/domainsuperstar/statuses/5126740901">Original source.</a>)<br /><a rel="nofollow" target="_blank" href="http://www.domainsuperstar.com"><img src="http://yuiblog.com/assets/domainsuperstar-20091030-175556.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-369"><strong><a rel="nofollow" target="_blank" href="http://yuilibrary.com/gallery/show/chromahash">Jeff Craig&#8217;s Chromahash is the First YUI 3 Gallery Item on Reddit Programming</a>:</strong> <span style="text-decoration:none;">As we start the second week of the <a rel="nofollow" target="_blank" href="http://yuilibrary.com/gallery">YUI 3 Gallery,</a> Jeff Craig (<a rel="nofollow" target="_blank" href="http://twitter.com/foxxtrot">@foxxtrot</a>) has hit a quick milestone, registering the first YUI 3 Gallery item <a rel="nofollow" target="_blank" href="http://www.reddit.com/r/programming/comments/a150t/a_regular_confirm_password_field_but_100x_cooler/">to hit Reddit&#8217;s Programming page</a>.&nbsp; <a rel="nofollow" target="_blank" href="http://foxxtrot.github.com/Chroma-Hash/">GitHub example is here</a>; <a rel="nofollow" target="_blank" href="http://yuilibrary.com/gallery/show/chromahash">YUI 3 Gallery module is here</a>.&nbsp; Congratulations, Jeff!</span><br /><a rel="nofollow" target="_blank" href="http://yuilibrary.com/gallery/show/chromahash"><img src="http://yuiblog.com/assets/chromahash-reddit-20091104-231743.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-365"><strong><a rel="nofollow" target="_blank" href="http://antscode.blogspot.com/2009/08/row-grouping-for-yui-data-table.html">Anthony Super&#8217;s Row Grouping for YUI DataTable</a>:</strong> We missed this in August when he released it, but <a rel="nofollow" target="_blank" href="http://ogspot.com/2009/08/row-grouping-for-yui-data-table.html">Anthony Super has a row-grouping add-on for YUI DataTable</a> that others in the forums have picked up on.&nbsp; If row grouping is a feature you&#8217;ve been looking for, it&#8217;s worth checking out. Mark Mansour has a video up of how he&#8217;s using this functionality on his own site:<br /><iframe class="embeddedvideo" src="http://vimeo.com/moogaloop.swf?clip_id=7305230&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" width="400" height="300"></li> 
<li id="yuiBlogWild-368"><strong><a rel="nofollow" target="_blank" href="http://andrewwooldridge.com/blog/2009/11/04/yui-library-gallery-prometheus-for-javascript-developers/">Andrew Wooldridge — YUI 3 Gallery is Prometheus for JS Developers</a>:</strong> <a rel="nofollow" target="_blank" href="http://andrewwooldridge.com/blog/2009/11/04/yui-library-gallery-prometheus-for-javascript-developers/">Writes Andrew</a>: &#8220;Just like Prometheus brought fire down from the heavens for mankind, <a rel="nofollow" target="_blank" href="http://www.yuiblog.com/blog/2009/11/04/introducing-the-yui-3-gallery/">the YUI team has made it possible for you to harness the power of YUI</a> as well as become a part of the YUI &#8216;family&#8217; yourself. If you build some set of code using YUI, you can have it show up on the gallery. Nothing special right? Well, if you jump through a few other hoops (clone their repo on github, and agree to their licensing) you can have your own lib code served through their CDN. Yes, you heard that right, the same CDN that Yahoo uses to push code out to their edge servers to make it fast and &#8216;local&#8217; to the machines and browsers that need it will be hosting your code as well. You might also someday get a &#8216;golden ticket; and be allowed to be part of YUI itself. This is a pretty unprecedented level of openness in a js library.&#8221;&nbsp; Read his full post <a rel="nofollow" target="_blank" href="http://andrewwooldridge.com/blog/2009/11/04/yui-library-gallery-prometheus-for-javascript-developers/">here</a>. (<a rel="nofollow" target="_blank" href="http://twitter.com/davglass/statuses/5443223553">Original source.</a>)<br /><a rel="nofollow" target="_blank" href="http://andrewwooldridge.com/blog/2009/11/04/yui-library-gallery-prometheus-for-javascript-developers/"><img src="http://yuiblog.com/assets/triptych-prometheus-20091104-231410.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-370"><strong><a rel="nofollow" target="_blank" href="http://catalog.lapl.org/carlweb/jsp/DoSearch?databaseID=965&amp;index=W&amp;terms=temeraire">LA Public Library Using YUI</a>:</strong> Stoyan noted recently that the Los Angeles Public Library is <a rel="nofollow" target="_blank" href="http://catalog.lapl.org/carlweb/jsp/DoSearch?databaseID=965&amp;index=W&amp;terms=temeraire">using YUI on its book details page</a>, using Adam Moore&#8217;s <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/treeview/">TreeView Control</a> to expose information about which branches have copies of a book in circulation and whether those copies are available or checked out. (<a rel="nofollow" target="_blank" href="http://twitter.com/stoyanstefanov/statuses/5611336849">Original source.</a>)<br /><a rel="nofollow" target="_blank" href="http://catalog.lapl.org/carlweb/jsp/DoSearch?databaseID=965&amp;index=W&amp;terms=temeraire"><img src="http://yuiblog.com/assets/lapl.org-20091111-135717.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-366"><strong><a rel="nofollow" target="_blank" href="http://developer.yahoo.net/blog/archives/2009/10/event_bubbling.html">Erik Eldridge&#8217;s Summary of Cardy Patiño Mayea&#8217;s &#8220;Custom YUI 3 Modules&#8221; Talk at YUICONF</a>:</strong> Erik Eldridge from the Yahoo! Developer Network has <a rel="nofollow" target="_blank" href="http://developer.yahoo.net/blog/archives/2009/10/event_bubbling.html">a great summary of Caridy Patiño Mayea&#8217;s talk on YUI 3 custom modules</a> from YUICONF 2009.<br /><a rel="nofollow" target="_blank" href="http://developer.yahoo.net/blog/archives/2009/10/event_bubbling.html"><img src="http://yuiblog.com/assets/caridytalksummary-20091030-204245.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-367"><strong><a rel="nofollow" target="_blank" href="http://developer.yahoo.net/blog/archives/2009/11/matt_snider_yui.html">Philip Tellis&#8217;s Review of Matt Snider&#8217;s Storage Utility Talk at #YUICONF</a>:</strong> Philip Tellis&nbsp;<a rel="nofollow" target="_blank" href="http://developer.yahoo.net/blog/archives/2009/11/matt_snider_yui.html">journaled Matt Snider&#8217;s talk from YUICONF</a> on the Yahoo! Developer Network blog. &nbsp;Writes Philip: &#8220;The first thing that struck me during the talk was how easy it is to use this utility. The storage utility allows web developers to store far more data on the client side than is possible through the use of cookies and it cleanly abstracts out the details of the specific storage engine used. It currently supports HTML5, Google Gears, and Flash storage engines, but is easily extensible to handle more engines in future.&#8221;</li>
</ul>]]></content:encoded>
      </item>
      <item>
         <title>Implementation Focus: Adify</title>
         <link>http://www.yuiblog.com/blog/2009/11/11/implementation-focus-adify/</link>
         <description>Former Yahoo! Levi Wolfe is the Manager of UI Development at Adify, a vertical ad network management and media services company that is an independent, wholly owned subsidiary of Cox TMI Inc., part of Atlanta-based Cox Enterprises.
Levi has worked in software development for the past 10 years. He has written everything from high performance [...]</description>
         <guid isPermaLink="false">http://www.yuiblog.com/blog/?p=860</guid>
         <pubDate>Wed, 11 Nov 2009 10:13:06 -0800</pubDate>
         <content:encoded><![CDATA[<div class="interview">
<div class="intro"><em>
<p>Former Yahoo! Levi Wolfe is the Manager of UI Development at <a rel="nofollow" target="_blank" href="http://adify.com/">Adify</a>, a vertical ad network management and media services company that is an independent, wholly owned subsidiary of Cox TMI Inc., part of Atlanta-based Cox Enterprises.</p>
<p>Levi has worked in software development for the past 10 years. He has written everything from high performance web servers in C/C++ to Firefox plugins and ActiveX controls. Levi manages the seven person UI team at Adify. They are responsible for several internal and external web applications written in C#/ASP.NET and have been using YUI since 0.11.0.
</p>
<p></em></div>
<p><img width="550" height="304" alt="Members of Adify team: (From left to right) Kunal Cholera, Reynold Wang, Takashi Arai, Levi Wolfe, Robert Porter, Edwin Jarlos, Melroy Saldanha" src="http://yuiblog.com/assets/adify/team.png"/></p>
<p class="caption"><strong>Members of the Adify team:</strong> <em>(From left to right) Kunal Cholera, Reynold Wang, Takashi Arai, Levi Wolfe, Robert Porter, Edwin Jarlos, Melroy Saldanha.</em></p>
<p class="q"><strong>Tell us about your company/product/website.</strong></p>
<p>Adify offers two related services &mdash; the Adify Network Builder platform and Adify Media.</p>
<p>Adify Network Builder is a fully integrated, end-to-end technology platform developed and optimized for the unique requirements of premium vertical ad networks and their publisher partners. Adify Network Builder enables enterprises such as Warner Brothers, Univision and Forbes and entrepreneurs such as Resonate, Yardbarker, and MOG to build and commercialize branded vertical networks.</p>
<p>Adify Media is the media services division of Adify. Built on the Adify Network Builder platform technology that powers more than 200 vertical ad networks, Adify Media has unique access to over 12,000 sites in networks built by top media companies. Adify Media reaches advertisers&#8217; goals by delivering creative and content with 100 percent transparency to quality mid-tail sites.
</p>
<p><img src="http://yuiblog.com/assets/adify/chart.png" width="510" height="334" alt="Screenshot of Adify's Network Forecast page, which uses YUI Charts."></p>
<p class="q"><strong>What is your team&#8217;s approach to development?</strong></p>
<p>Unlike a lot of other projects using YUI, we are building a business application. Our users want a fast, responsive application that they can log into, get their reports, and get out. We want our application to feel as professional and solid as a desktop application, without being held back by traditional limitations of a web-based environment.</p>
<p class="q"><strong>What made YUI a good fit for your project?</strong></p>
<p>As YUI is completely client side, it integrates extremely well with many server technologies (ASP.NET included). It is very stable and professionally maintained. This can be seen in everything from the numerous examples and very helpful API documentation to the active forums and bug tracking. I&#8217;m impressed Yahoo! has such talented people working on something they give away for free.</p>
<p class="q"><strong>How are you using YUI?</strong></p>
<p>We have nearly 200 aspx pages, and almost all of them are using YUI in some way. We&#8217;re using <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/fonts/">Fonts</a> and <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/grids/">Grids</a> CSS components (we haven&#8217;t quite worked up to <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/reset/">Reset</a> yet). We use the core components to navigate and manipulate the DOM, and to smooth over browser differences. Some of the more commonly called functions include <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/docs/YAHOO.util.Dom.html#method_addClass">Dom.addClass()</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/docs/YAHOO.util.Dom.html#method_getElementsByClassName">Dom.getElementsByClassName()</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/docs/YAHOO.util.Event.html#method_stopEvent">Event.stopEvent()</a>, and <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/docs/YAHOO.util.Event.html#method_onDOMReady">Event.onDOMReady()</a>.</p>
<p>We probably use about half of the widget components, some highlights are:</p>
<ol>
<li>Using <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/datasource/">DataSource</a> to power <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/charts">Charts</a> and <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/datatable/">DataTable</a>. It becomes incredibly easy to switch between local or XHR sources depending on the amount of data, which is great for client performance.</li>
<li>Using the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/colorpicker/">ColorPicker</a> control to create a highly customizable <a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/White-label_product">white-label</a> interface. We are then able to easily reskin various components with a small amount of dynamic CSS.</li>
<li>Integrating a <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/container/panel/">YUI Panel</a> with an ASP.NET <a rel="nofollow" target="_blank" href="http://msdn.microsoft.com/en-us/library/system.web.ui.updatepanel.aspx">UpdatePanel</a> to make something we call an UpdateDialog. This gives us an in-page modal dialog box that can use AJAX to dynamically load its contents or make a server call based on the user&#8217;s decision without reloading the entire page.</li>
</ol>
<p><img src="http://yuiblog.com/assets/adify/table.png" width="510" height="338" alt="Screenshot of Adify's Network Campaigns page, which uses YUI DataTable."></p>
<p class="q"><strong>What is your approach to integrating YUI with ASP.NET?</strong></p>
<p>One of the biggest benefits of ASP.NET is the ability to encapsulate common behaviors or widgets into highly reusable custom server controls. The control developer becomes intimately familiar with YUI while the page developer merely needs to learn how to use the custom ASP.NET control. We wrap all the YUI widgets we use with a custom control that inherits from <a rel="nofollow" target="_blank" href="http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.webcontrol.aspx">WebControl</a>. The control is responsible for rendering the required markup and registering YUI scripts. For instance, if I wanted to put a ColorPicker that defaults to red on my .aspx page, all I would write is:</p>
<pre>&lt;Adify:ColorPicker ID="myPicker" Color="#ff0000" runat="server" /&gt;</pre>
<p><img src="http://yuiblog.com/assets/adify/colorpicker.png" width="510" height="313" alt="Screenshot of Adify's ColorPicker implementation."></p>
<p>Then in my server side code-behind file, I can just get or set myPicker.Color to use it. Here is a more complicated example of how we could use a DataTable in an .aspx page to show clicks over time:</p>
<pre>
&lt;Adify:YuiDataSource ID="LastMonthData" OnRowDataBound="OnDataSourceBound" runat="server"&gt;
&lt;Columns&gt; &lt;Adify:YuiDataSourceColumn Name="Time" /&gt; &lt;Adify:YuiDataSourceColumn Name="Clicks" /&gt; &lt;Adify:YuiDataSourceColumn Name="CTR" /&gt;
&lt;/Columns&gt;
&lt;/Adify:YuiDataSource&gt; &lt;Adify:YuiDataTable DataSourceId="LastMonthData" runat="server"&gt;
&lt;Columns&gt; &lt;Adify:YuiDataTableColumn Key="Time" Formatter="Date" /&gt; &lt;Adify:YuiDataTableColumn Key="Clicks" Formatter="Number" /&gt; &lt;Adify:YuiDataTableColumn Key="CTR" Label="Click Through %" Formatter="Percent3" /&gt;
&lt;/Columns&gt;
&lt;/Adify:YuiDataTable&gt;
</pre>
<p>We&#8217;ve created our own <a rel="nofollow" target="_blank" href="http://msdn.microsoft.com/en-us/library/ms366539.aspx">custom data-bound</a> YuiDataSource web server control. It is responsible for serializing objects to JavaScript in the case of local data sources, or caching objects server side for XHR data sources. It renders itself in the page&#8217;s HTML as a YuiDataSource and could be used by a Chart or DataTable (or both). Our YuiDataTable control <a rel="nofollow" target="_blank" href="http://msdn.microsoft.com/en-us/library/9txe1d4x.aspx">exposes a collection property</a> called Columns which is a collection of YuiDataTableColumn objects. It serializes the Columns collection into a JavaScript array of objects passed to the DataTable constructor.</p>
<p>The main point here is that the custom controls are as simple as possible to use. They expose properties for any of the options YUI provides, and override the <a rel="nofollow" target="_blank" href="http://msdn.microsoft.com/en-us/library/system.web.ui.control.onprerender.aspx">OnPreRender</a> event to render themselves as JavaScript calls to YUI. This frees up the page author to think about the logic on his page, and not the gory details of instantiating a YUI widget.</p>
<p class="q"><strong>How has YUI helped your project achieve success?</strong></p>
<p>Application developers tend to make good ASP.NET developers since they usually have a strong computer science background. Unfortunately they don&#8217;t always have quite as much experience dealing with the multitude of browsers or with JavaScript (which I&#8217;ve learned over the years is far more powerful and complex than initially suspected).</p>
<p>YUI helps in several ways. First, it helps abstract away a number of browser differences, so we don&#8217;t all have to know every last detail about how some obscure browser version affects our code. Second, browsing some of the samples has served as inspiration. I&#8217;ve even seen a Product Manager make a quick prototype using a YUI sample to explain how he wanted a feature to work.</p>
<p>Finally, I can&#8217;t even count how many hours we&#8217;ve saved or how improved our interface has become thanks to all the widgets. We replaced a very basic palette chooser with the ColorPicker, ASP.NET&#8217;s built-in Calendar with YUI&#8217;s, and a powerful but hard-to-maintain JavaScript grid with the DataTable. In every case, we greatly increased the usability of our application while simultaneously decreasing the amount of effort spent fixing bugs in our controls.</p>
<p class="q"><strong>What have been the challenges of using YUI in your project?</strong></p>
<p>Honestly, writing JavaScript that lives up to YUI. If there is one thing that has pushed us to write better client-side code, it would be the example of YUI. We&#8217;ve really tried to apply the same discipline and rigor when writing JavaScript as when developing server code in C#.</p>
<p class="q"><strong>What are some YUI-related projects on your roadmap?</strong></p>
<p>We have a small internal tool written using the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/uploader/">Uploader</a> control that became very popular. We definitely want to integrate the Uploader into our main product. We&#8217;re all really happy with the DataTable control, and want to start adding inline-editing where appropriate. We also need to keep up with all the great improvements to the Chart control.</p>
<p>We&#8217;re also keeping a close eye on YUI 3 and can&#8217;t wait to start seeing widgets based on the new architecture.</p>
</div>]]></content:encoded>
      </item>
      <item>
         <title>YUI 3 Gallery: Accordion Widget</title>
         <link>http://www.yuiblog.com/blog/2009/11/04/yui-3-gallery-accordion-widget/</link>
         <description>Accordion is a visual widget that allows the expansion/collapse of grouped items containing arbitrary data. Accordion items can be added or removed dynamically, reordered via drag-and-drop, closed and set as always visible. Originally, I built the widget top of YUI 2, but I&amp;#8217;ve since ported it to YUI 3.
Accordion is part of the new YUI [...]</description>
         <guid isPermaLink="false">http://www.yuiblog.com/blog/?p=775</guid>
         <pubDate>Wed, 04 Nov 2009 10:02:16 -0800</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://yuilibrary.com/gallery/show/accordion"><img src="http://yuiblog.com/assets/iliyan-accordion-20091103-165257.jpg" alt="YUI3 Accordion Widget" width="333" height="371" align="right"/><br />
</a><a rel="nofollow" target="_blank" href="http://yuilibrary.com/gallery/show/accordion">Accordion</a> is a visual widget that allows the expansion/collapse of grouped items containing arbitrary data. Accordion items can be added or removed dynamically, reordered via drag-and-drop, closed and set as always visible. Originally, I built the widget top of <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/2/">YUI 2</a>, but I&#8217;ve since ported it to <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/3/">YUI 3</a>.</p>
<p>Accordion is part of the new <a rel="nofollow" target="_blank" href="http://yuilibrary.com/gallery/">YUI 3 Gallery</a>, offered under the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/license.html">YUI BSD License</a>, and available on the Yahoo! CDN.</p>
<p>The module consists of two classes &mdash; <code>Accordion</code> itself and <code>AccordionItem</code>, both extending <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/3/widget/">YUI 3&#8217;s Widget</a>.</p>
<h3>Building an Accordion</h3>
<p>The developer can build an Accordion from markup or from scratch using JavaScript. Check out the <a rel="nofollow" name="examples" target="_blank" href="http://ipeychev.github.com/yui3-gallery/gallery-accordion/">examples on GitHub</a> for more information.</p>
<p>If you are building from JavaScript, the first step is to instantiate and render Accordion:</p>
<pre>var accordion = new Y.Accordion( { contentBox: "#accordion1", useAnimation: true, collapseOthersOnExpand: true
}); accordion.render();</pre>
<p>The next step is to add one or more items:</p>
<pre>var item1 = new Y.AccordionItem( { label: "Item1, added from script", expanded: true, contentBox: "dynamicContentBox1", contentHeight: { method: "fixed", height: 80 }, closable: true
} ); item1.set( "bodyContent", "Dynamically added item with fixed content height, 80px." ); accordion.addItem( item1 );</pre>
<h3>Features</h3>
<p>During instantiation (or later) the developer can set configuration options. Some of them are applicable for Accordion itself; others options apply to AccordionItems.</p>
<p>Among the Accordion config options:</p>
<ul>
<li><strong>reorderItems</strong> &mdash; If <code>true</code>, the user will be able to reorder the registered items by using drag and drop.</li>
<li><strong>collapseOthersOnExpand</strong> &mdash; If <code>true</code>, Accordion will close all other items when a new item expands. This is the default behaviour.</li>
<li><strong>useAnimation</strong> &mdash; This setting determines whether Accordion animates the process of items expanding/collapsing. If <code>true</code>, animation details may be set through another config property: <code>animation</code>.</li>
<li><strong>resizeEvent</strong> &mdash; The developer may specify an object that provides a resize event (instead of the default browser event). For example, in the YUI 2 world if an Accordion were placed in LayoutManager the developer could use the resize event that LayoutManager provides.</li>
</ul>
<p>Some of the AccordionItem config options:</p>
<ul>
<li><strong>contentHeight</strong> &mdash; The developer may choose among three different content height policies. These are:
<ul>
<li><strong>auto</strong> &mdash; The browser will calculate content height.</li>
<li><strong>fixed</strong> &mdash; Content height will be always X pixels, where X is a value specified by the developer.</li>
<li><strong>stretch</strong> &mdash; The third option is to set content height to be <code>stretch</code>ed. In this case, it will be calculated later, depending on the other items and on the total size of Accordion&#8217;s container.</li>
</ul>
</li>
<li><strong>alwaysVisible</strong> &mdash; if <code>true</code>, the item will always stay open, even when another item is being expanded, and <em>even if the value of Accordion&#8217;s property <strong>collapseOthersOnExpand</strong> is <code>true</code></em>.</li>
<li><strong>closable</strong> &mdash; If true, the user will be able to remove the item from Accordion.</li>
<li><strong>expanded</strong> &mdash; Setting this property to <code>true</code> or <code>false</code> will expand/collapse item respectively.</li>
<li><strong>animation</strong> &mdash; Each item may have its own animation settings.</li>
</ul>
<h3>Future enhancements</h3>
<p>I plan to do more work in the area of accessibility; I would like to see it improved in the future versions of Accordion.</p>
<h3>About the author</h3>
<p><img src="http://farm3.static.flickr.com/2655/4068966161_db6faeb274_t.jpg" alt="YUI3 Accordion Widget" hspace="10" width="64" height="81" align="left"/><br />
Iliyan Peychev,<br />
Senior Software Engineer<br />
<a rel="nofollow" target="_blank" href="http://www.map.bg">Map Soft Ltd.</a></p>]]></content:encoded>
      </item>
      <item>
         <title>In the Wild for October 22, 2009</title>
         <link>http://www.yuiblog.com/blog/2009/10/22/in-the-wild-for-october-22-2009/</link>
         <description>With YUI 2.8.0, YUI 3.0.0, and PHP Loader 1.0.0 beta 1 out the door, the team here is focused on our final big objective for the year: YUICONF2009. Brendan Eich and Douglas Crockford will be keynoting next week at our first public, YUI-focused conference. In addition to the YUI engineers presenting sessions, we&amp;#8217;re [...]</description>
         <guid isPermaLink="false">http://www.yuiblog.com/blog/?p=695</guid>
         <pubDate>Thu, 22 Oct 2009 10:39:12 -0700</pubDate>
         <content:encoded><![CDATA[<p>With <a rel="nofollow" target="_blank" href="http://www.yuiblog.com/blog/2009/09/14/yui-2-8-0/">YUI 2.8.0</a>, <a rel="nofollow" target="_blank" href="http://www.yuiblog.com/blog/2009/09/29/yui-3-0-0/">YUI 3.0.0</a>, and <a rel="nofollow" target="_blank" href="http://www.yuiblog.com/blog/2009/09/14/yui-php-loader-beta-release/">PHP Loader 1.0.0 beta 1</a> out the door, the team here is focused on our final big objective for the year: <a rel="nofollow" target="_blank" href="http://yuilibrary.com/yuiconf2009/">YUICONF2009</a>. Brendan Eich and Douglas Crockford will be keynoting next week at our first public, YUI-focused conference. In addition to the YUI engineers presenting sessions, we&#8217;re looking forward to hearing from community members like Matt Snider and Eric Ferraiuolo. While the conference is sold out, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/theater/">YUI Theater</a> will be there capturing as much as it can &mdash; so stay tuned here for video coverage as it becomes available.</p>
<p>Here are a few of the other YUI-related news items we&#8217;ve tracked in the past few weeks. If you have an item we missed, or something you&#8217;d like to see covered in the next update, please leave a note in the comments; for all the latest YUI news as it happens, follow <a rel="nofollow" target="_blank" href="http://twitter.com/yuilibrary">yuilibrary</a> on Twitter.</p>
<ul id="releaselist-21">
<li id="yuiBlogWild-358"><strong><a rel="nofollow" target="_blank" href="http://wiki.brilaps.com/wikka.php?wakka=YUI2GO">YUI2GO &#8212; IPhone/Android App for YUI API Docs</a>:</strong> YUI contributor and fellow Yahoo! Chad Auld has been working on side project with his partner at Brilaps, Ozgur Cem Sen.&nbsp; Called <a rel="nofollow" target="_blank" href="http://wiki.brilaps.com/wikka.php?wakka=YUI2GO">YUI2GO</a>, this app uses Titanium to put a handheld-friendly UI on top of the YUI API documentation for <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/2/">YUI 2</a> and <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/3/">YUI 3</a>.&nbsp; The application will cost you $0.99 in the iTunes App Store or the Android Marketplace.<br /><a rel="nofollow" target="_blank" href="http://wiki.brilaps.com/wikka.php?wakka=YUI2GO"><img src="http://yuiblog.com/assets/yui2go-brilaps-20091022-092140.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-340"><strong><a rel="nofollow" target="_blank" href="http://www.rivbike.com/">YUI Carousel, Split Buttons and More on Rivendell Bicycle Works&#8217; Site</a>:</strong> What could be better than <a rel="nofollow" target="_blank" href="http://www.rivbike.com/">a custom bike-works website making use of YUI</a>?&nbsp; Rivendell is a manufacturer of beautiful, old-school lugged steel bike frames, and their site is replete with old-school charm.&nbsp; You&#8217;ll find buttons, menus, carousels and more from YUI throughout the site &#8212; as well as some seriously attractive bikes.&nbsp; One Bombadil for me, please. (<a rel="nofollow" target="_blank" href="http://www.yuiblog.com/blog/2009/10/05/in-the-wild-for-october-5-2009/#comment-585143">Original source.</a>)<br /><a rel="nofollow" target="_blank" href="http://www.rivbike.com/"><img src="http://yuiblog.com/assets/rivendell-20091005-191655.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-355"><strong><a rel="nofollow" target="_blank" href="http://mattsnider.com/languages/javascript/ajaxobject-part-ii/">Matt Snider&#8217;s AjaxObject Part II (built with YUI Connection Manager)</a>:</strong> YUI contributor and Mint.com engineer Matt Snider <a rel="nofollow" target="_blank" href="http://mattsnider.com/languages/javascript/ajaxobject-part-ii/">continues his work building an XHR layer on top of YUI 2&#8217;s Connection Manager</a>.<br /><a rel="nofollow" target="_blank" href="http://mattsnider.com/languages/javascript/ajaxobject-part-ii/"><img src="http://yuiblog.com/assets/snider-ajaxobject-20091016-154719.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-359"><strong><a rel="nofollow" target="_blank" href="http://ajaxian.com/archives/microsoft-ajax-minifier-vs-yui-compressor">Ajaxian Comparo: YUI Compressor and MS Ajax Minifier</a>:</strong> <a rel="nofollow" target="_blank" href="http://ajaxian.com/archives/microsoft-ajax-minifier-vs-yui-compressor">Ajaxian has posted an interesting deep dive</a> into the differences between <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/compressor/">YUI Compressor</a> and the new <a rel="nofollow" target="_blank" href="http://weblogs.asp.net/scottgu/archive/2009/10/15/announcing-microsoft-ajax-library-preview-6-and-the-microsoft-ajax-minifier.aspx">Microsoft Ajax Minifier</a>.&nbsp;<br /><a rel="nofollow" target="_blank" href="http://ajaxian.com/archives/microsoft-ajax-minifier-vs-yui-compressor"><img src="http://yuiblog.com/assets/minifier-vs-compressor-ajaxian-20091022-102545.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-341"><strong><a rel="nofollow" target="_blank" href="http://www.youtube.com/watch?v=YSGggDCpYXA&amp;feature=youtube_gdata">YUI on Egoagosys (screenast in Italian)</a>:</strong> This looks to be a lovely implementation of YUI DataTable, Buttons, Menus and much more, all narrated in Italian for your viewing pleasure.<br /><iframe class="embeddedvideo" src="http://www.youtube.com/v/YSGggDCpYXA&amp;hl=en&amp;fs=1&amp;rel=0&amp;hd=1" type="application/x-shockwave-flash" width="510" height="450"> (<a rel="nofollow" target="_blank" href="http://twitter.com/gisernia/statuses/4741304963">Original source.</a>)</li>
<li id="yuiBlogWild-342"><strong><a rel="nofollow" target="_blank" href="http://developer.yahoo.net/blog/archives/2009/10/accessible_tabs.html">Yahoo!&#8217;s Ian Pouncey on Accessible Tabs with YUI3</a>:</strong> Yahoo! home page engineer Ian Pouncey <a rel="nofollow" target="_blank" href="http://developer.yahoo.net/blog/archives/2009/10/accessible_tabs.htmlhttp://developer.yahoo.net/blog/archives/2009/10/accessible_tabs.html">has a post up on the Yahoo! Developer Network blog </a>about the work the home page and YUI teams did to bake in accessibility with <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/3/">YUI 3</a>.</li>
<li id="yuiBlogWild-348"><strong><a rel="nofollow" target="_blank" href="http://www.yuicoder.com/2009/10/simple-yui-login-using-ajax-cookies-and-server-side-auth/">Jeffrey Cobb, &#8220;Simple YUI Login Using Ajax, Cookies and Server Side Auth&#8221;</a>:</strong> Jeffrey Cobb is back on <a rel="nofollow" target="_blank" href="http://www.yuicoder.com/">yuicoder.com</a> with a new code sample.&nbsp; This one generates a simple login screen using YUI Container, Animation, Cookie, and Button.&nbsp; <a rel="nofollow" target="_blank" href="http://www.yuicoder.com/2009/10/simple-yui-login-using-ajax-cookies-and-server-side-auth/">Check out the JS and Perl code snippets on Jeffrey&#8217;s post</a>.</li>
<li id="yuiBlogWild-343"><a rel="nofollow" target="_blank" href="http://www.addmojo.com/yui/table-stripes-highlite-trs2url.html"><img src="http://yuiblog.com/assets/falcor-stripey-stripey-20091013-160637.jpg" vspace="5" hspace="10" align="right"></a><strong><a rel="nofollow" target="_blank" href="http://www.addmojo.com/yui/table-stripes-highlite-trs2url.html">Simple YUI 2-based Table Striper</a>:</strong> User falcor on the YUI Forums <a rel="nofollow" target="_blank" href="http://yuilibrary.com/forum/viewtopic.php?p=4153#p4153">posted</a> his <a rel="nofollow" target="_blank" href="http://www.addmojo.com/yui/table-stripes-highlite-trs2url.html">simple table striper</a>.&nbsp; Writes falcor: &#8220;Just name make your table id #products and you&#8217;re good to go. The CSS rules are in the &lt;style&gt; tag in the header, and the actual .js script code is at the bottom before the &lt;/body&gt; tag.&#8221; (<a rel="nofollow" target="_blank" href="http://yuilibrary.com/forum/viewtopic.php?p=4153#p4153">Original source.</a>)</li>
<li id="yuiBlogWild-357"><strong><a rel="nofollow" target="_blank" href="http://blog.skitsanos.com/2009/10/wrapping-yui-compressor-into-your.html">YUI Compressor/IntelliJ IDEA Integration by Evgenios Skitsanos</a>:</strong> Evgenios Skitsanos writes that he&#8217;s liked IDEA for awhile, and that he feels its virtues as a JavaScript editor are <a rel="nofollow" target="_blank" href="http://www.jetbrains.com/idea/features/javascript_editor.html">underappreciated</a>.&nbsp; Helping to remedy that, he&#8217;s documented how to build in YUI Compressor support.&nbsp; &#8220;Today’s issue on the table is how to stick <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/compressor/">YUI Compressor</a> into IDE and compress my JavaScript files with one click. Whole thing takes 5 mins actually; let me show you few steps to get it done.&#8221;&nbsp; <a rel="nofollow" target="_blank" href="http://blog.skitsanos.com/2009/10/wrapping-yui-compressor-into-your.html">Check out his blog for all the details</a>. (<a rel="nofollow" target="_blank" href="http://twitter.com/skitsanos/status/4967094918">Original source.</a>)<br /><a rel="nofollow" target="_blank" href="http://blog.skitsanos.com/2009/10/wrapping-yui-compressor-into-your.html"><img src="http://yuiblog.com/assets/compressor-intellij-20091018-131101.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-356"><strong><a rel="nofollow" target="_blank" href="http://grasshopperpebbles.com/yui/yui-widgets/yui-imslidermenu-widget/">YUI 2-based &#8220;imSliderMenu&#8221; Widget from Grasshopperpebbles.com</a>:</strong> Grasshopperpebbles.com has posted a <a rel="nofollow" target="_blank" href="http://grasshopperpebbles.com/yui/yui-widgets/yui-imslidermenu-widget/">tutorial</a> and <a rel="nofollow" target="_blank" href="http://grasshopperpebbles.com/demos/index.php/yui/slidermenu/example">demo</a> of its new &#8220;<a rel="nofollow" target="_blank" href="http://grasshopperpebbles.com/yui/yui-widgets/yui-imslidermenu-widget/">imSliderMenu</a>&#8221; widget, a simple component which uses animation to show and hide panels on demand.</li>
</ul>]]></content:encoded>
      </item>
      <item>
         <title>Implementation Focus: timr</title>
         <link>http://www.yuiblog.com/blog/2009/10/12/timr/</link>
         <description>troii Software is a small Austrian software company, working on software development and consulting projects. troii Software was founded in 2008 by Wolfgang Brandhuber, Mario Breid and Thomas Einwaller. All three met in college and after some years of working on their own they decided to found troii. The troii principle is &amp;#8220;The whole is [...]</description>
         <guid isPermaLink="false">http://www.yuiblog.com/blog/?p=617</guid>
         <pubDate>Mon, 12 Oct 2009 08:31:32 -0700</pubDate>
         <content:encoded><![CDATA[<div class="interview">
<div class="intro">
<p><img src="http://yuiblog.com/assets/timr/team.jpg" width="300" height="238" hspace="10" vspace="5" align="right" alt="timr team"><em><a rel="nofollow" target="_blank" href="http://troii.com/">troii Software</a> is a small Austrian software company, working on software development and consulting projects. troii Software was founded in 2008 by Wolfgang Brandhuber, Mario Breid and Thomas Einwaller. All three met in college and after some years of working on their own they decided to found troii. The troii principle is &#8220;The whole is more than the sum of its parts&#8221;. This means that by combining our talents, products and services we become a company focused on creating high quality, state-of-the-art software.</em></p>
</div>
<p class="q"><strong>Tell us about your product.</strong></p>
<p><a rel="nofollow" target="_blank" href="http://timr.com/">timr</a> is a very easy to use time-tracking application which offers a web application as well as native clients for mobile phones. This combination allows our users to easily track their times in the office and on the go.</p>
<p><img src="http://yuiblog.com/assets/timr/screen1.png" width="510" height="304" alt="Screenshot of timr"></p>
<p class="q"><strong>What problem are you trying to solve for users?</strong></p>
<p>For most people, time tracking is an evil, consuming a lot of time, money and energy. The reason that time tracking often fails is the lack of an appropriate tool.</p>
<p>Most systems are cumbersome, complicated or simply not available when users have the need to track their time. Times are mainly tracked subsequent to the work performed and not parallel to the work, which increases the effort that is needed. This is even more dramatic since times are mostly tracked not directly after work but at the end of the week or, even worse, at the end of the month.</p>
<p>timr allows its users to track their times instantaneously during the work day, easily and ubiquitously. That means the time is always tracked parallel to the work, no matter if you are in the office or on the go. At the end of the day, all your time is already tracked, without having to invest one more minute to track any work before going home.</p>
<p class="q"><strong>What makes your product stand out?</strong></p>
<p>Over the past few years we have had a lot of experiences with different time-tracking applications and concepts. Most are too complicated or simply too cumbersome. So we designed a system that we ourselves would enjoy using. We decided that time tracking has to be Easy, Instantaneous and Ubiquitous:</p>
<ul>
<li>If a time-tracking application isn&#8217;t easy to use, you won&#8217;t use it and it will be even harder to convince your employees to use it.
<li>If time tracking isn&#8217;t easy enough it is usually procrastinated, but subsequent time tracking needs even more time then instantaneous time tracking &#8212; a dangerous loop.
<li>For ongoing instantaneous time tracking you need the possibility to track times anytime, anywhere.
</ul>
<p class="q"><strong>What are the things your team is most proud of?</strong></p>
<p>By leveraging YUI in our web applications as well as building out native clients for mobile phones, we made time tracking with timr always easy, in the office and on the go. Although it would have been much easier for us to develop a web application that also works on mobile phone browsers and sell this as a &#8220;solution&#8221; for mobile time tracking, you would realize very fast that having to start a browser, open the mobile web page and enter your login credentials to instantaneously track your time isn&#8217;t easy. We&#8217;ve taken no shortcuts in our efforts to give users the power and convenience to track their times anytime, anywhere.</p>
<p class="q"><strong>Please describe how you came to choose YUI as a resource.</strong></p>
<p>We looked for a library of reusable components that could provide us the best usability. It was also important for us to be able to customize and tweak the components for our needs. Many rich component libraries provide a lot of features but do not allow developers to hook into them easily to extend them.</p>
<p>With our server architecture consisting of the Spring Framework and the free application container Tomcat, we found in YUI a perfect companion to sit on top as the &#8220;JavaScript-Layer&#8221;.</p>
<p><img src="http://yuiblog.com/assets/timr/screen2.png" width="510" height="342" alt="Screenshot of timr"></p>
<p class="q"><strong>Which YUI components in particular do you use in your product?</strong></p>
<p>We use about 70% of the components included in YUI 2.7. The application consists of a minimal set of JSPs through which most user inputs are submitted using dynamic dialogs. These dialogs are based on the YUI <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/container/">Container family of components</a> and use the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/connection/">Connection Manager</a> to send the inputs by AJAX to the server. This improves the flow of the application a lot.</p>
<p>Another important component is the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/treeview/">TreeView</a>, which we use to display our highly customizable task structure and through which users can define their exact hierarchy of customers, projects and tasks.</p>
<p>All the reporting is done in the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/datatable/">DataTable</a> with server side filtering, sorting and pagination enabled. Custom formatters and special configurations allow us to adapt the grid exactly to our needs.</p>
<p>Besides these components, we make heavy use of <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/menu/#usingcontextmenu">Context Menu</a> and <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/dragdrop/">Drag &amp; Drop</a> all over the application, to give power users an efficient workflow.</p>
<p class="q"><strong>What have been the successes of using YUI in your project?</strong></p>
<p>YUI helped us create a web application that is so easy to use that there are no more excuses for &#8220;old-fashioned&#8221; time tracking systems. Many of YUI&#8217;s components enable our web application to feel much more like a desktop application but without having to install and update it on each client computer. The interesting thing is, that after using timr ourselves we experienced that time tracking actually became fun, and the coolest thing is how many of our users tell us the same: time tracking is fun! YUI has played a significant role in helping us achieve this &#8220;fun&#8221; side effect.</p>
<p class="q"><strong>What have been the challenges of using YUI in your project?</strong></p>
<p>One word: JavaScript. Frankly, the power of JavaScript has been underestimated for a long time and many developers have used JavaScript with old bad patterns. Luckily <a rel="nofollow" target="_blank" href="http://oreilly.com/catalog/9780596517748/">Douglas Crockford&#8217;s book</a> helped us a lot to find the good parts of JavaScript and how to use them. We believe that being able to write good JavaScript code is an essential requirement for today&#8217;s web developers and we are sure that we will see a lot more great JavaScript applications in the future.</p>
<p class="q"><strong>What are some upcoming features you are tackling with YUI?</strong></p>
<p>One of the upcoming features we are planning is a special reporting page that will make heavy use of <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/charts/">YUI Charts</a>. We will give the user a huge set of predefined reports using the DataTable and provide dynamic charts for visualization and allow them to create their own.</p>
</div>]]></content:encoded>
         <category>YUI Implementations</category>
      </item>
      <item>
         <title>In the Wild for October 5, 2009</title>
         <link>http://www.yuiblog.com/blog/2009/10/05/in-the-wild-for-october-5-2009/</link>
         <description>It&amp;#8217;s been a busy month here with YUI 2.8.0, YUI PHP Loader 1.0.0 beta 1, and YUI 3.0.0 all hitting the wires &amp;#8212; and with our first public YUI developer conference, YUICONF2009, in the works. Here&amp;#8217;s some of the recent news from the larger YUI community; let us know in the comments if we [...]</description>
         <guid isPermaLink="false">http://www.yuiblog.com/blog/?p=597</guid>
         <pubDate>Mon, 05 Oct 2009 12:25:32 -0700</pubDate>
         <content:encoded><![CDATA[<p>It&#8217;s been a busy month here with <a rel="nofollow" target="_blank" href="http://www.yuiblog.com/blog/2009/09/14/yui-2-8-0/">YUI 2.8.0</a>, <a rel="nofollow" target="_blank" href="http://www.yuiblog.com/blog/2009/09/14/yui-php-loader-beta-release/">YUI PHP Loader 1.0.0 beta 1</a>, and <a rel="nofollow" target="_blank" href="http://www.yuiblog.com/blog/2009/09/29/yui-3-0-0/">YUI 3.0.0</a> all hitting the wires &mdash; and with <a rel="nofollow" target="_blank" href="http://www.yuiblog.com/blog/2009/09/29/yuiconf-2009-registration/">our first public YUI developer conference, YUICONF2009, in the works</a>. Here&#8217;s some of the recent news from the larger YUI community; let us know in the comments if we missed something good.</p>
<ul id="releaselist-20">
<li id="yuiBlogWild-330"><strong><a rel="nofollow" target="_blank" href="http://mattsnider.com/languages/javascript/yui-storage-utility/">Matt Snider Writes About His YUI Storage Utility</a>:</strong> Matt Snider from Mint.com has a <a rel="nofollow" target="_blank" href="http://mattsnider.com/languages/javascript/yui-storage-utility/">nice article on his personal blog about the YUI Storage Utility</a>, a component that he contributed for YUI 2.8.0.&nbsp;<br /><a rel="nofollow" target="_blank" href="http://mattsnider.com/languages/javascript/yui-storage-utility/"><img src="http://yuiblog.com/assets/storage-20090924-161812.png" vspace="10"></a></li>
<li id="yuiBlogWild-337"><strong><a rel="nofollow" target="_blank" href="http://twirltv.com">YUI 2 in Use on TwirlTV</a>:</strong> Former Yahoo Adam Platti (one of the original Oddpost engineers) is hard at work on <a rel="nofollow" target="_blank" href="http://twirltv.com">TwirlTV</a>, which is out in beta and making extensive use of YUI 2.&nbsp; <a rel="nofollow" target="_blank" href="http://blogs.pcmag.com/miller/2009/09/demo_09_my_favorite_personal_w.php">Writes Michael J. Miller of PCMag</a>: &#8220;[TwirlTV] may have been my favorite consumer application [at Demo09]. It aggregates the bulk of the free TV sites on the Web, including all the major networks, into a single user interface designed to work more like a TV, with a full-screen view. It lets you set up the shows you want to track, and more important, it lets you share your TV-watching habits with your friends on Facebook. While it is only showing you the same videos that are available on the individual TV brand sites, the interface is very nice; and people will like the sharing features.&#8221;&nbsp; Congrats to Adam and the team on the launch.<br /><a rel="nofollow" target="_blank" href="http://twirltv.com"><img src="http://yuiblog.com/assets/twirltv-20091005-114552.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-339"><strong><a rel="nofollow" target="_blank" href="http://jeez.eu/2009/10/03/yui-mac-like-style-desktop/">YUI-based Mac Desktop Implementation by Kerasiotis Vasileios</a>:</strong> Kerasiotis Vasileios recently wrote up his experience creating <a rel="nofollow" target="_blank" href="http://jeez.eu/2009/10/03/yui-mac-like-style-desktop/">a Mac desktop-style interface using YUI 2</a>: &#8220;When i first saw jQuery desktop i was amazed of what jQuery can do. I decided to &#8216;fork&#8217; the idea to YUI and check if it was possible. It took me 2 days to built it from scratch (well not actually, because most of the functionality was taken from the YUI library examples). For example the panels, dialogs and menus are all taken from the examples provided with the full YUI library, but I think I did some work myself.&#8221; Yeah, it looks like he did quite a bit of work — and the result makes for an interesting study. <a rel="nofollow" target="_blank" href="http://seotests.writer.gr/macdesktop/">Check out the live demo to try out his code</a>.<br /><a rel="nofollow" target="_blank" href="http://jeez.eu/2009/10/03/yui-mac-like-style-desktop/"><img src="http://yuiblog.com/assets/yui-mac-desktop-20091005-120547.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-334"><strong><a rel="nofollow" target="_blank" href="http://www.thewebsqueeze.com/web-design-tutorials/yui-css-framework-tutorial.html">YUI 2 CSS Tutorial from Mike Sweeney at WebSqueeze</a>:</strong> Mike Sweeney has <a rel="nofollow" target="_blank" href="http://www.thewebsqueeze.com/web-design-tutorials/yui-css-framework-tutorial.html">a nice tutorial on the YUI CSS tools up on WebSqueeze</a>.&nbsp; Mike writes: &#8220;Any good UX designer will tell you that one of the keys to making your website easy to use is consistency. Your goal should be to not make users use more than the necessary brain power it takes to understand the point you’re trying to get across. People are used to seeing sites designed in certain ways and the YUI CSS Framework covers these basic design patterns without having to make you think too hard as well. Everybody wins.&#8221;&nbsp; <a rel="nofollow" target="_blank" href="http://www.thewebsqueeze.com/web-design-tutorials/yui-css-framework-tutorial.html">Check out the full tutorial here</a>.<br /><a rel="nofollow" target="_blank" href="http://www.thewebsqueeze.com/web-design-tutorials/yui-css-framework-tutorial.html"><img src="http://yuiblog.com/assets/websqueeze-20091005-110620.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-332"><strong><a rel="nofollow" target="_blank" href="http://www.experienceinternet.co.uk/resources/details/yui-compressor-textmate-bundle/">YUI Compressor TextMate Bundle</a>:</strong> You may think of YUI Compressor as a build-time tool, but sometimes you want the convenience of running it right from with in your editor.&nbsp; If your editor is TextMate, the massively popular Mac OS X code editor, you&#8217;re in luck &#8212; enter <a rel="nofollow" target="_blank" href="http://www.experienceinternet.co.uk/resources/details/yui-compressor-textmate-bundle/">the YUI Compressor bundle for TextMate</a>.<br /><a rel="nofollow" target="_blank" href="http://www.experienceinternet.co.uk/resources/details/yui-compressor-textmate-bundle/"><img src="http://yuiblog.com/assets/compressor-textmate-20090927-223915.png" vspace="10"></a></li>
<li id="yuiBlogWild-333"><strong><a rel="nofollow" target="_blank" href="http://github.com/saw/YUI-3-Timepicker">Stephen Woods&#8217;s YUI 3-based TimePicker</a>:</strong> Stephen Woods, our friend and colleague at Yahoo!, is working up a sweet little TimePicker control based on YUI 3.&nbsp; <a rel="nofollow" target="_blank" href="http://github.com/saw/YUI-3-Timepicker">The code is up on GitHub for all to enjoy</a>. (<a rel="nofollow" target="_blank" href="http://twitter.com/ysaw/statuses/4463746643">Original source.</a>)</li>
<li id="yuiBlogWild-335"><strong><a rel="nofollow" target="_blank" href="http://dealnews.com/">Custom YUI-based Carousel and More on DealNews.com</a>:</strong> Brian Moon wrote in to tell us about his YUI implementation on DealNews.com, which includes a custom carousel component supporting features like variable-width items. (<a rel="nofollow" target="_blank" href="http://www.yuiblog.com/blog/2009/09/01/in-the-wild-for-september-1-2009/#comment-584246">Original source.</a>)<br /><a rel="nofollow" target="_blank" href="http://dealnews.com/"><img src="http://yuiblog.com/assets/dealnews-20091005-111247.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-329"><strong><a rel="nofollow" target="_blank" href="http://yuilibrary.com/forum/viewtopic.php?p=3344">YUI PHP Loader Support for VBulletin</a>:</strong> User ragtek on the YUI Forums has been playing with the new YUI PHP Loader project in his vBulletin implementation.&nbsp; <a rel="nofollow" target="_blank" href="http://yuilibrary.com/forum/viewtopic.php?p=3344">Writes ragtek</a>: &#8220;I&#8217;ve coded a add-on which implements the yui php loader into your board. So it could be easier for add-on coders to insert the needed files.&nbsp; The second benefit will be, that all components will be inserted only one time, instead of 2,3 (like i&#8217;ve seen on some boards).&#8221; (<a rel="nofollow" target="_blank" href="http://www.vbulletin-germany.org/showthread.php?t=6717">Original source.</a>)</li>
<li id="yuiBlogWild-336"><strong><a rel="nofollow" target="_blank" href="http://someguynameddylan.com/lab/transform-origin-in-internet-explorer.php">Dylan Oudyk&#8217;s MatrixAnim Using CSS Transform Matrix</a>:</strong> Dylan Oudyk <a rel="nofollow" target="_blank" href="http://www.yuiblog.com/blog/2009/09/01/in-the-wild-for-september-1-2009/#comment-584302">wrote in</a> to tell us about his MatrixAnim class (based on YUI 2.7.0).&nbsp; &#8220;I did <a rel="nofollow" target="_blank" href="http://someguynameddylan.com/lab/transform-origin-in-internet-explorer.php">a write up on supporting a css transform origin</a> in Internet Explorer through some script workarounds. I also <a rel="nofollow" target="_blank" href="http://someguynameddylan.com/lab/TabView.html">wrote a MatrixAnim class deriving from YUI 2.7.0&#8217;s Anim class for animating elements using a transform matrix</a>.&#8221;&nbsp; The <a rel="nofollow" target="_blank" href="http://someguynameddylan.com/lab/TabView.html">example page</a> allows you to play around with a few of the animation methods that he has working. (<a rel="nofollow" target="_blank" href="http://www.yuiblog.com/blog/2009/09/01/in-the-wild-for-september-1-2009/#comment-584302">Original source.</a>)</li>
<li id="yuiBlogWild-331"><strong><a rel="nofollow" target="_blank" href="http://code.google.com/p/gwt-yui-carousel/">GWT API for YUI Carousel Integration</a>:</strong> The groovy <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/carousel/">YUI Carousel</a>, which got <a rel="nofollow" target="_blank" href="http://www.yuiblog.com/blog/2009/09/14/yui-2-8-0/">even groovier in YUI 2.8.0</a>, is now more accessible than ever for GWT developers thanks to <a rel="nofollow" target="_blank" href="http://code.google.com/p/gwt-yui-carousel/">Nicolas Hoppenot&#8217;s Apache-licensed project gwt-yui-carousel project</a>.<br /><a rel="nofollow" target="_blank" href="http://code.google.com/p/gwt-yui-carousel/"><img src="http://yuiblog.com/assets/gwt-yui-carousel-20090925-222711.png" vspace="10"></a></li>
<li id="yuiBlogWild-338"><strong><a rel="nofollow" target="_blank" href="http://news.cnet.com/8301-30685_3-10363887-264.html">CNet Coverage of YUI 3 Launch from Stephen Shankland</a>:</strong> Thanks to Stephen Shankland at CNet for the great coverage of the YUI 3 launch.&nbsp; <a rel="nofollow" target="_blank" href="http://news.cnet.com/8301-30685_3-10363887-264.html">Writes Stephen</a>:&nbsp; &#8220;Compared with YUI 2, the new version is smaller, faster, easier to program with, and more secure, Yahoo said. It&#8217;s easier to break code into minimum-size pieces through a <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/3/configurator/">dependency configurator</a> or YUI&#8217;s ability to download required components on its own. Also, Yahoo is working to add <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/3/widget/">widget abilities</a> for creating small programs. A convenient YUI feature is that Yahoo is willing to host most of it on its own servers, saving hassle and Web server bandwidth. The new version is the first ground-up reworking of the software since 2005. No doubt YUI will be the subject of discussion at <a rel="nofollow" target="_blank" href="http://www.yuiblog.com/blog/2009/09/18/2009-open-hack/">Open Hack Day</a> and <a rel="nofollow" target="_blank" href="http://www.yuiblog.com/blog/2009/09/09/announcing-yuiconf-2009/">YUIConf</a>, both in October.&#8221;<br /><a rel="nofollow" target="_blank" href="http://news.cnet.com/8301-30685_3-10363887-264.html"><img src="http://yuiblog.com/assets/cnet-yui3-coverage-20091005-115443.jpg" vspace="10"></a></li>
</ul>]]></content:encoded>
      </item>
      <item>
         <title>In the Wild for September 1, 2009</title>
         <link>http://www.yuiblog.com/blog/2009/09/01/in-the-wild-for-september-1-2009/</link>
         <description>Here are some of the things we&amp;#8217;ve noticed in the YUI newstream of late. Did we miss something important? Let us know in the comments. Thomas Kjeldahl Nilsson&amp;#8217;s ThoughtMuse, a YUI-based Mindmapping Application: Thomas Kjeldahl Nilsson wrote in to tell us about his latest project, ThoughtMuse, which is a web-based mindmapping editor built with [...]</description>
         <guid isPermaLink="false">http://www.yuiblog.com/blog/?p=457</guid>
         <pubDate>Tue, 01 Sep 2009 13:58:46 -0700</pubDate>
         <content:encoded><![CDATA[<p>Here are some of the things we&#8217;ve noticed in the YUI newstream of late. Did we miss something important? Let us know in the comments.</p>
<ul id="releaselist-19">
<li id="yuiBlogWild-322"><strong><a rel="nofollow" target="_blank" href="http://thoughtmuse.com/">Thomas Kjeldahl Nilsson&#8217;s ThoughtMuse, a YUI-based Mindmapping Application</a>:</strong> Thomas Kjeldahl Nilsson wrote in to tell us about his latest project, ThoughtMuse, which is a web-based mindmapping editor built with extensive use of YUI.&nbsp; According to Thomas, &#8220;The ThoughtMuse mindmap editor leverages the YUI connection manager, drag and drop and JSON utilities, and a wide range of widgets (button, color picker, overlay, panel, dialog, menu). Also, while developing any javascript I always use the YUI Test Utility and Logging Control for automated unit- and integration testing.&#8221;&nbsp; Thomas&#8217;s screencast introductiont to ThoughtMuse gives you a good idea of how the interface works:
<p><iframe class="embeddedvideo" src="http://www.youtube.com/v/FzEw7c92ooQ&amp;rel=0&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash" height="344" width="425"></li> 
<li id="yuiBlogWild-324"><strong><a rel="nofollow" target="_blank" href="http://mattsnider.com/languages/javascript/comparing-widget-in-y2-versus-y3/">Matt Snider, &#8220;Comparing Widget in YUI2 Versus YUI3&#8243;</a>:</strong> &#8220; I have been wanting to do a YUI 2 versus YUI 3 comparison for some time, and it took a while to design a simple example that was complex enough to be meaningful. Anyway, for this comparison I wrote a simple CheckboxList widget, that renders a list of checkboxes and labels from a JSON object. Both versions will require only a DOM node to instantiate, they will include two custom events onCheck and onBeforeCheck, and they will have these public functions: ‘clear’, ‘hide’, ‘render’, ’serialize’, ’show’. The ‘hide’ and ’show’ methods will apply “display:none” and “display:block” to the root node, respectively. The ‘clear’ method will remove the content of the root node and then call ‘hide’. The ‘render’ method will build the HTML from a JSON object and then call ’show’. Lastly, the ’serialize’ method returns the values of the checkbox as an AJAX ready query string.&#8221;&nbsp; <a rel="nofollow" target="_blank" href="http://mattsnider.com/languages/javascript/comparing-widget-in-y2-versus-y3/">Check out the blog post for the results of Matt&#8217;s exploration</a>.<br /><a rel="nofollow" target="_blank" href="http://mattsnider.com/languages/javascript/comparing-widget-in-y2-versus-y3/"><img src="http://yuiblog.com/assets/snider-yui2-yui3-20090827-125311.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-325"><strong><a rel="nofollow" target="_blank" href="http://www.wait-till-i.com/2009/08/31/converting-a-data-table-on-the-web-to-an-autocomplete-translator-with-yql-and-yui/">Christian Heilmann, &#8220;Converting a Data Table on the Web to an Autocomplete Translator W/YQL &amp; YUI&#8221;</a>:</strong> <a rel="nofollow" target="_blank" href="http://www.wait-till-i.com/2009/08/31/converting-a-data-table-on-the-web-to-an-autocomplete-translator-with-yql-and-yui/">Chris put up a nice tutorial</a> on how to use <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yql/">YQL</a> to convert tabular data from an arbitrary third party web site into a live datasource for the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/autocomplete/">YUI AutoComplete</a> widget.</li>
<li id="yuiBlogWild-327"><strong><a rel="nofollow" target="_blank" href="http://code.headphono.us/citation-helper/">New NatGeo Maps Database Built with YUI</a>:</strong> More than 80,000 maps and reports from 370 publishers are available in the <a rel="nofollow" target="_blank" href="http://maps.ngmdb.us/dataviewer/">National Geographic Map Database Portal</a>, a rich visual UI built with extensive YUI 2.7.0 integration. (<a rel="nofollow" target="_blank" href="http://appdomains.slashgeo.org/article.pl?sid=09/08/27/1723251">Original source.</a>)<br /><a rel="nofollow" target="_blank" href="http://code.headphono.us/citation-helper/"><img src="http://yuiblog.com/assets/natgeomapdb-20090901-134054.png" vspace="10"></a></li>
<li id="yuiBlogWild-328"><a rel="nofollow" target="_blank" href="http://www.amazon.com/gp/product/047038459X?ie=UTF8&amp;tag=0xdecafbad01-20&amp;linkCode=as2&amp;camp=1789&amp;c%0D%0Areative=9325&amp;creativeASIN=047038459X"><img src="http://yuiblog.com/assets/projsframeworkscover-20090901-134717.png" align="right" hspace="10" vspace="5"></a><strong><a rel="nofollow" target="_blank" href="http://www.amazon.com/gp/product/047038459X?ie=UTF8&amp;tag=0xdecafbad01-20&amp;linkCode=as2&amp;camp=1789&amp;c%0D%0Areative=9325&amp;creativeASIN=047038459X">YUI Among the JS Libraries in Professional JavaScript Frameworks from Wrox</a>:</strong> Ara Pehlivanian wrote the YUI section in the new Wrox book <a rel="nofollow" target="_blank" href="http://www.amazon.com/gp/product/047038459X?ie=UTF8&amp;tag=0xdecafbad01-20&amp;linkCode=as2&amp;camp=1789&amp;c%0D%0Areative=9325&amp;creativeASIN=047038459X">Professional JavaScript Frameworks: Prototype, YUI, Ext JS, Dojo and MooTools</a>.&nbsp; Thanks to Ara for his hard work on the YUI parts, and congratulations to his coauthors Leslie Orchard, Scott Koon, and Harley Jones for an excellent new tome.</li>
<li id="yuiBlogWild-323"><strong><a rel="nofollow" target="_blank" href="http://mattsnider.com/languages/javascript/yui3-widget-tab-key-managed-widget/">Matt Snider, &#8220;YUI3 Tab Key Managed Widget&#8221;</a>:</strong> Matt (of Mint.com, and a YUI contributor) <a rel="nofollow" target="_blank" href="http://mattsnider.com/languages/javascript/yui3-widget-tab-key-managed-widget/">writes about a widget he&#8217;s updated for YUI3</a>: &#8220;The TabKeyManagedWidget was originally a widget I wrote in YUI 2 for the popups on Mint.com. I have changed it a lot sense then, especially in its conversion to YUI 3. The problem we solved, is that sometimes, especially when using in-page popups, one must prevent users from being able to tab through the entire page. So we bound the end-user to a tabbing context, such as a popup or form, preventing the browser from executing its default behavior.&#8221;<br /><a rel="nofollow" target="_blank" href="http://mattsnider.com/languages/javascript/yui3-widget-tab-key-managed-widget/"><img src="http://yuiblog.com/assets/snider-tabkey-20090817-195603.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-318"><strong><a rel="nofollow" target="_blank" href="http://nikhilmisal.com/2009/08/14/how-to-create-simple-tabs-using-yui/">Salih Gedik (@salihgedik), &#8220;How to Create Simple Tabs Using YUI&#8221;</a>:</strong> A <a rel="nofollow" target="_blank" href="http://nikhilmisal.com/2009/08/14/how-to-create-simple-tabs-using-yui/">nice intro</a> to the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/tabview/">YUI TabView Control</a>.&nbsp; From the &#8220;about the author&#8221; box: &#8220;[Salih] is a 14 years young programmer from Istanbul. He started programming with JavaScript since he was 10. He is experienced in PHP, ASP, Python, C/++, Basic and beginner level 80X86, JAVA. You can follow him at @salihgedik.&#8221;</li>
<li id="yuiBlogWild-320"><strong><a rel="nofollow" target="_blank" href="http://ptrthomas.wordpress.com/2009/08/12/wicket-tutorial-yui-autocomplete-using-json-and-ajax/">Peter Thomas, &#8220;Wicket Tutorial: YUI AutoComplete Using JSON and Ajax&#8221;</a>:</strong> <a rel="nofollow" target="_blank" href="http://ptrthomas.wordpress.com/2009/08/12/wicket-tutorial-yui-autocomplete-using-json-and-ajax/">Writes Peter</a>: &#8220;Getting an AutoComplete JavaScript widget to work with a server-side framework involves a few more steps and integration points than what it would take for e.g. a simple date-picker widget. It makes for an interesting example that shows off the strengths of <a rel="nofollow" target="_blank" href="http://wicket.apache.org/">Apache Wicket</a> when it comes to creating custom components – especially when Ajax and integrating third-party JavaScript and CSS is involved.&#8221;</li>
<li id="yuiBlogWild-326"><strong><a rel="nofollow" target="_blank" href="http://code.headphono.us/citation-helper/">MLA Citation Helper from Pras Sarkar</a>:</strong> If you&#8217;ve ever slogged through the creation of a bibliography in MLA format, you&#8217;ll appreciate this <a rel="nofollow" target="_blank" href="http://code.headphono.us/citation-helper/">Citation Helper</a> from Yahoo engineer <a rel="nofollow" target="_blank" href="http://headphono.us/">Pras Sarkar</a>.&nbsp; It&#8217;s based on <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/3/">YUI 3</a> and the source code is available on <a rel="nofollow" target="_blank" href="http://github.com/mxz/citation-helper/tree/master">GitHub</a>.<br /><a rel="nofollow" target="_blank" href="http://code.headphono.us/citation-helper/"><img src="http://yuiblog.com/assets/citationhelper-20090901-132548.png" vspace="10"></a></li>
<li id="yuiBlogWild-319"><strong><a rel="nofollow" target="_blank" href="http://yui-shed.blogspot.com/2009/08/using-prototype-and-yui.html">YUI-Shed on Using Prototype.js with YUI</a>:</strong> <a rel="nofollow" target="_blank" href="http://yui-shed.blogspot.com/2009/08/using-prototype-and-yui.html">Writes YUI-Shed</a>: &#8220;There are many reasons why you might use prototype.js with yui. You may be moving to Yahoo User Interface, or vice versa, or you may just prefer some flexibility. Whatever the reason, there are some good points to using the two together. I have pointed out several times on this blog and Practical Prototype that I personally prefer <a rel="nofollow" target="_blank" href="http://yui-shed.blogspot.com/2009/08/using-prototype-and-yui.html">this method</a>. I use YUI for the widgets, and use prototype for setting up classes, events, and other low level organization.&#8221;</li>
<li id="yuiBlogWild-321"><strong><a rel="nofollow" target="_blank" href="http://weblogs.java.net/blog/driscoll/archive/2009/08/making_a_yui_ca_1.html">Jim Driscoll, &#8220;Making a YUI Calendar Component in JSF2&#8243;</a>:</strong> Jim follows up on <a rel="nofollow" target="_blank" href="http://weblogs.java.net/blog/driscoll/archive/2009/08/using_the_yui_c_1.html">his recent YUI Calendar/JSF article</a> with a new piece that focuses on <a rel="nofollow" target="_blank" href="http://weblogs.java.net/blog/driscoll/archive/2009/08/making_a_yui_ca_1.html">moving the implementation into a JSF component</a>.</li>
</ul>]]></content:encoded>
      </item>
      <item>
         <title>In the Wild for August 10, 2009</title>
         <link>http://www.yuiblog.com/blog/2009/08/10/in-the-wild-for-august-10-2009/</link>
         <description>News and notes from the YUI community over the past few weeks; let us know what we missed in the comments section. YUI on Gatorade.com: Reader LNR wrote in to tell us about the Gatorade.com Player of the Year site, which is making extensive use of YUI.&amp;#160; &amp;#8220;It uses the drag/drop library for custom scrollbars, the [...]</description>
         <guid isPermaLink="false">http://www.yuiblog.com/blog/?p=412</guid>
         <pubDate>Mon, 10 Aug 2009 22:52:48 -0700</pubDate>
         <content:encoded><![CDATA[<p>News and notes from the YUI community over the past few weeks; let us know what we missed in the comments section.</p>
<ul id="releaselist-18">
<li id="yuiBlogWild-308"><strong><a rel="nofollow" target="_blank" href="http://playeroftheyear.gatorade.com/winners/2008-09/boys-baseball/downloads/">YUI on Gatorade.com</a>:</strong> Reader LNR <a rel="nofollow" target="_blank" href="http://www.yuiblog.com/blog/2009/07/17/in-the-wild-for-july-17-2009/#comment-583107">wrote in</a> to tell us about the <a rel="nofollow" target="_blank" href="http://playeroftheyear.gatorade.com/winners/2008-09/boys-baseball/downloads/">Gatorade.com Player of the Year site</a>, which is making extensive use of YUI.&nbsp; &#8220;It uses the drag/drop library for custom scrollbars, the Container library for lightbox-style overlays, the Event library to fire several events on window resize, the Element library, and of course the Dom library.&#8221; (<a rel="nofollow" target="_blank" href="http://www.yuiblog.com/blog/2009/07/17/in-the-wild-for-july-17-2009/#comment-583107">Original source.</a>)<br /><a rel="nofollow" target="_blank" href="http://playeroftheyear.gatorade.com/winners/2008-09/boys-baseball/downloads/"><img src="http://yuiblog.com/assets/gatorade-20090729-185804.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-312"><strong><a rel="nofollow" target="_blank" href="http://mattsnider.com/languages/javascript/yui-adding-a-library-class-to-yui-3/">Adding a Library Class to YUI 3</a>:</strong> YUI contributor Matt Snider blogs about adding new modules to YUI 3. &nbsp;&#8221;The upcoming release of YUI 3 is going to change the way we develop using the YUI framework. Instead of namespacing the library behind the <code>YAHOO</code> object, as was done in YUI 2, in YUI 3 the library will be referenced in isolated functional contexts by calling <code>YUI().use</code>. Thus developers need to modify their code to wrap everything that uses the YUI library with a <code>YUI().use</code> call.&#8221; &nbsp;His post goes through the <code>add</code> and <code>use</code> methods and how to <code>use</code> a module that you&#8217;ve <code>add</code>ed to YUI 3.<br /><a rel="nofollow" target="_blank" href="http://mattsnider.com/languages/javascript/yui-adding-a-library-class-to-yui-3/"><img src="http://yuiblog.com/assets/snider-addclass-20090807-091453.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-305"><strong><a rel="nofollow" target="_blank" href="http://github.com/sstephenson/ruby-yui-compressor/tree/master">Sam Stephenson&#8217;s Ruby-YUI Compressor Project Up on GitHub</a>:</strong> Sam Stephenson of 37Signals has <a rel="nofollow" target="_blank" href="http://github.com/sstephenson/ruby-yui-compressor/tree/master">a Ruby interface to YUI Compressor</a> up on GitHub. Ruby-YUI Compressor is distributed as a Ruby Gem and can be installed via the Rip package manager.<br /><a rel="nofollow" target="_blank" href="http://github.com/sstephenson/ruby-yui-compressor/tree/master"><img src="http://yuiblog.com/assets/ruby-yui-compressor-20090720-112402.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-310"><strong><a rel="nofollow" target="_blank" href="http://blogs.sun.com/arungupta/entry/track_your_running_miles_using">Arun Gupta&#8217;s YUI Charts Application Charts Your Running Miles</a>:</strong> Arun Gupta has published a blog entry on his blog at Sun.com, &#8220;<a rel="nofollow" target="_blank" href="http://blogs.sun.com/arungupta/entry/track_your_running_miles_using">Track your running miles using JRuby, Ruby-on-Rails, GlassFish, NetBeans, MySQL, and YUI Charts</a>.&#8221; He has a screencast up on how to use the app.<br /><iframe class="embeddedvideo" src="http://www.youtube.com/v/v5cbrVOfUOs&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" height="344" width="425"><br /> (<a rel="nofollow" target="_blank" href="http://tech.groups.yahoo.com/group/ydn-javascript/message/50859">Original source.</a>)<br /><a rel="nofollow" target="_blank" href="http://blogs.sun.com/arungupta/entry/track_your_running_miles_using"><img src="http://yuiblog.com/assets/arungupta-20090729-191523.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-311"><strong><a rel="nofollow" target="_blank" href="http://www.sodahead.com/">YUI on Opinion-sharing Site SodaHead.com</a>:</strong> <a rel="nofollow" target="_blank" href="http://www.sodahead.com/">SodaHead</a> is an idea-and-opinion sharing site that makes heavy use of YUI (11 separate components in use).&nbsp; SodaHead provides &#8220;a community that offers a free and dynamic environment to share and gather opinions and meet friends – a place to ask questions, express ideas, and connect with like and not-so-like friends&#8230; SodaHeads, as we call them.&#8221; (<a rel="nofollow" target="_blank" href="http://twitter.com/mrigor/statuses/2694535977">Original source.</a>)<br /><a rel="nofollow" target="_blank" href="http://www.sodahead.com/"><img src="http://yuiblog.com/assets/sodahead-20090730-000619.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-315"><strong><a rel="nofollow" target="_blank" href="http://freshcutsd.com/yui-slideshow/">YUI Slideshow Using YUI 3 from Josh Lizarraga at FreshCutSD</a>:</strong> The <a rel="nofollow" target="_blank" href="http://freshcutsd.com/yui-slideshow/">YUI Slideshow module</a> by Josh Lizarraga from FreshCutSD in San Diego is a slick-looking player with a nice feature set; it&#8217;s based on the <a rel="nofollow" target="_blank" href="http://malsup.com/jquery/cycle/">jQuery Cycle</a> project.&nbsp; There are several <a rel="nofollow" target="_blank" href="http://freshcutsd.com/yui-slideshow/#demo">demos</a> available, and you can <a rel="nofollow" target="_blank" href="http://freshcutsd.com/ys/ys.js">download the code</a> from Josh&#8217;s blog post.<br /><a rel="nofollow" target="_blank" href="http://freshcutsd.com/yui-slideshow/"><img src="http://yuiblog.com/assets/freshcut-yuislideshow-20090809-103550.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-307"><a rel="nofollow" target="_blank" href="http://blog.davglass.com/files/yui/button14/"><img src="http://yuiblog.com/assets/menubuttonwithicon-20090720-114003.jpg" align="right" hspace="10" vspace="5"></a><strong><a rel="nofollow" target="_blank" href="http://blog.davglass.com/files/yui/button14/">Menu-button with Icon Example from Dav Glass</a>:</strong> Dav has added to his <a rel="nofollow" target="_blank" href="http://blog.davglass.com/2006/06/yui-code-samples/">extensive example repository</a> <a rel="nofollow" target="_blank" href="http://blog.davglass.com/files/yui/button14/">a new demo showing how to add icons to your Menu Buttons in YUI</a>.</li>
<li id="yuiBlogWild-309"><strong><a rel="nofollow" target="_blank" href="http://wamu.org/programs/kn/extra/food_and_wine/">YUI on WAMU.org</a>:</strong> WAMU (American University Radio) <a rel="nofollow" target="_blank" href="http://wamu.org/programs/kn/extra/food_and_wine/">has a nice Google Maps mashup using YUI Buttons</a>.<br /><a rel="nofollow" target="_blank" href="http://wamu.org/programs/kn/extra/food_and_wine/"><img src="http://yuiblog.com/assets/wamu.org-20090729-190402.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-314"><strong><a rel="nofollow" target="_blank" href="http://erisds.co.uk/code/yui-javascript-carousel-custom-navigation-part-2">YUI Carousel Value-adds from ErisDS</a>:</strong> Blogger ErisDS has posted two parts of what will be a three-part series on implementing custom navigation with the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/carousel/">YUI Carousel Control</a>.&nbsp; Check out both <a rel="nofollow" target="_blank" href="http://erisds.co.uk/code/yui-javascript-carousel-custom-navigation-part-1">Part One</a> and <a rel="nofollow" target="_blank" href="http://erisds.co.uk/code/yui-javascript-carousel-custom-navigation-part-2">Part Two</a>.<br /><a rel="nofollow" target="_blank" href="http://erisds.co.uk/code/yui-javascript-carousel-custom-navigation-part-2"><img src="http://yuiblog.com/assets/ericds-carousel-20090808-213855.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-316"><strong><a rel="nofollow" target="_blank" href="http://www.devx.com/Java/Article/42399">Narayanan A.R., &#8220;JSON Interactions Between Server-Side Java and Client-Side YUI&#8221;</a>:</strong> <a rel="nofollow" target="_blank" href="http://www.devx.com/Java/Article/42399">Writes Narayanan on DevX.com</a>: &#8220;Because it facilitates communication via an interoperable format, JavaScript Object Notation (JSON), the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/">Yahoo! User Interface library (YUI)</a> allows you to implement the server side in any technology. The server will render JSON text for a given request, and YUI parses the JSON response to create JavaScript variables for use in UI widgets.&#8221;&nbsp; <a rel="nofollow" target="_blank" href="http://www.devx.com/Java/Article/42399">Check out the full article here</a>.</li>
<li id="yuiBlogWild-306"><strong><a rel="nofollow" target="_blank" href="http://www.csstemplatesweb.com/ajax-articles/yui-animation-tutorial/">Quick YUI Animation Tutorial from CSSTemplatesWeb</a>:</strong> The folks at CSSTemplatesWeb <a rel="nofollow" target="_blank" href="http://www.csstemplatesweb.com/ajax-articles/yui-animation-tutorial/">have posted a brief introduction</a> to the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/animation/">YUI Animation Utility</a>, including <a rel="nofollow" target="_blank" href="http://templates.csstemplatesweb.com/yuianimation/">a set of examples</a>.<br /><a rel="nofollow" target="_blank" href="http://www.csstemplatesweb.com/ajax-articles/yui-animation-tutorial/"><img src="http://yuiblog.com/assets/animtutorial-20090720-113237.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-313"><strong><a rel="nofollow" target="_blank" href="http://htmlblog.net/pixidou-an-open-source-ajax-image-editor-php-and-yui-based/">Asvin Ballou&#8217;s Pixidou &#8212; Image Editor Made with YUI and PHP</a>:</strong> We missed this one awhile back when it came out, but it&#8217;s interesting and worth a look.&nbsp; Asvin Balloo has created <a rel="nofollow" target="_blank" href="http://htmlblog.net/pixidou-an-open-source-ajax-image-editor-php-and-yui-based/">Pixidou</a>, the foundations for a web-based image editing interface using PHP and YUI.&nbsp; There&#8217;s a <a rel="nofollow" target="_blank" href="http://htmlblog.net/demo/pixidou/">demo</a>, and the code can be found on <a rel="nofollow" target="_blank" href="http://github.com/asvinb/pixidou/tree/master">Asvin&#8217;s GitHub account</a>.<br /><a rel="nofollow" target="_blank" href="http://htmlblog.net/pixidou-an-open-source-ajax-image-editor-php-and-yui-based/"><img src="http://yuiblog.com/assets/pixidou-20090808-212526.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-317"><strong><a rel="nofollow" target="_blank" href="http://weblogs.java.net/blog/driscoll/archive/2009/08/using_the_yui_c_1.html">Jim Driscoll, &#8220;Using the YUI Calendar Widget with JSF 2&#8243;</a>:</strong> <a rel="nofollow" target="_blank" href="http://weblogs.java.net/blog/driscoll/archive/2009/08/using_the_yui_c_1.html">Writes Jim</a>: &#8220;If you&#8217;re not developing JSF with third party component libraries, you&#8217;re really missing out on the best part of JSF. But there&#8217;s lots of Ajax widgets out there, which contain all kinds of useful functionality. Wouldn&#8217;t it be useful to use those within your JSF pages? The Yahoo UI library is pretty nifty stuff, and the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/calendar/">Calendar widget</a> is useful, pretty, and powerful. Let&#8217;s wire it into a JSF page, and bind the return of that widget to the property of a bean. How hard could it be? 71 lines, of which about 45 or so are non-boilerplate.&#8221;&nbsp; <a rel="nofollow" target="_blank" href="http://weblogs.java.net/blog/driscoll/archive/2009/08/using_the_yui_c_1.html">Check out all 71 lines on his blog</a>.</li>
</ul>]]></content:encoded>
         <category>In the Wild</category>
      </item>
      <item>
         <title>Implementation Focus: Short Reckonings</title>
         <link>http://www.yuiblog.com/blog/2009/07/31/implementation-focus-short-reckonings/</link>
         <description>After having been VP Technology of Webmotion, a Canadian-based Internet services company, for 12 years, Mika&amp;#235;l is currently volunteering for an IT project in Cambodia where he helps with the startup of a Software Engineering and Telecommunications school targeting poor students of the countryside.
Mika&amp;#235;l has worked in software development for the past 15 years. While [...]</description>
         <guid isPermaLink="false">http://www.yuiblog.com/blog/?p=405</guid>
         <pubDate>Fri, 31 Jul 2009 09:52:23 -0700</pubDate>
         <content:encoded><![CDATA[<div class="interview">
<div class="intro">
<p><em><img src="http://yuiblog.com/assets/short-reckonings/mikaelgrave.jpg" width="241" height="312" hspace="10" vspace="5" align="right">After having been VP Technology of Webmotion, a Canadian-based Internet services company, for 12 years, Mika&#235;l is currently volunteering for an IT project in Cambodia where he helps with the startup of a Software Engineering and Telecommunications school targeting poor students of the countryside.</em></p>
<p><em>Mika&#235;l has worked in software development for the past 15 years. While he has worked on projects of various kinds and magnitudes, he has always been obsessed by user interface aspects and is a strong advocate of Web-based software.<br />
</em></p>
<p><em>Mika&#235;l had the idea of <a rel="nofollow" target="_blank" href="http://shortreckonings.com">ShortReckonings.com</a> when he was a student and was often sharing expenses with friends. Having such a tool at the time would have been great but this was before the Web. With the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/">YUI Library</a>, he has found the framework he needed to make this happen. He considers Short Reckonings as both a lab to experiment with the latest Web technologies and his attempt to create the smoothest user experience possible. He was also seduced by YUI because of the support that comes with it.</em></p>
</div>
<p class="q"><strong>Please tell us a little about your project.</strong></p>
<p><a rel="nofollow" target="_blank" href="http://shortreckonings.com">http://shortreckonings.com</a> is a free YUI-based Web tool that helps tracking and evening out group expenses. Its light user interface is ideal for coworkers, roommates, travel buddies or family members.
</p>
<p><img src="http://yuiblog.com/assets/short-reckonings/homepage.png" width="510" height="458" alt="Screenshot of Squarespace home page."></p>
<p class="q"><strong>Which components of the YUI Library are used on your site?</strong></p>
<p>Short Reckonings uses the following YUI components: <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/yahoo/#lang">Lang</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/dom/">Dom</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/connection/">Connection</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/event/">Event &amp; CustomEvent</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/container/">Overlay &amp; Dialog</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/tabview/">TabView</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/datatable/">DataTable</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/calendar/">Calendar</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/autocomplete/">AutoComplete</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/json/">JSON</a>. The AutoComplete control allows for faster input of expense descriptions for example. Custom events are used intensively to make the different elements of the application communicate together.
</p>
<p class="q"><strong>What have been your recent successes?</strong></p>
<p>1.5 years after its beta launch &#8212; which was covered on the <a rel="nofollow" target="_blank" href="http://developer.yahoo.net/blog/archives/2008/01/short_reckonings_developer_spotlight.html">YDN Blog</a> &#8212; Short Reckonings has reached a momentum with its adoption by users from many countries. Today, I am pleased to announce that Short Reckonings is no longer in beta. Since its beta launch, a lot of new features and user interface improvements have been made. Among the most significant<br />
ones:</p>
<ul>
<li>Support for non-even splits and formulas;</li>
<li>Rich widgets such as calendar and autocomplete;</li>
<li>Content can be in any language (utf8);</li>
<li>Print &#038; export to Excel;</li>
<li>Sign in with your Facebook account.</li>
</ul>
<p><img src="http://yuiblog.com/assets/short-reckonings/payments.png" width="510" height="222" alt="Screenshot of Squarespace workflow page."></p>
<p class="q"><strong>Congrats! What about any challenges you&#8217;ve faced recently?</strong></p>
<p>A recent challenge has been the integration with Facebook Connect JS API. Because FB Connect is a young library and is not very stable, using YUI Custom Events to build a YUI layer above it has been the key to make it usable in production environment.
</p>
<p class="q"><strong>What do you see for the road ahead?</strong></p>
<p>With my current stay in Cambodia, I have become very concerned about making software usable in slow connection environments and offline. The next version of Short Reckonings will support offline usage (with Google Gears or HTML5 offline storage). Once back in Canada, I also would like to release an iPhone version. And of course migrating to <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/3/">YUI 3</a> will be an exciting experience!</p>
</div>]]></content:encoded>
         <category>YUI Implementations</category>
      </item>
      <item>
         <title>In the Wild for July 17, 2009</title>
         <link>http://www.yuiblog.com/blog/2009/07/17/in-the-wild-for-july-17-2009/</link>
         <description>News and notes from the past few weeks. Let us know what we missed! Michael Cramer&amp;#8217;s Sparkline Widget (in Canvas): Michael Cramer has created &amp;#160;a Sparkline Widget for YUI that uses Canvas to generate Tufte-esque sparklines; check out his introduction to the widget on his blog and&amp;#160;a demo page here.
YUI Menus, Overlays and More on [...]</description>
         <guid isPermaLink="false">http://www.yuiblog.com/blog/?p=402</guid>
         <pubDate>Fri, 17 Jul 2009 11:05:39 -0700</pubDate>
         <content:encoded><![CDATA[<p>News and notes from the past few weeks. Let us know what we missed!</p>
<ul id="releaselist-17">
<li id="yuiBlogWild-301"><strong><a rel="nofollow" target="_blank" href="http://webkist.wordpress.com/2009/06/30/yui-sparkline-widget/">Michael Cramer&#8217;s Sparkline Widget (in Canvas)</a>:</strong> Michael Cramer has created &nbsp;<a rel="nofollow" target="_blank" href="http://webkist.wordpress.com/2009/06/30/yui-sparkline-widget/">a Sparkline Widget for YUI</a> that uses Canvas to generate Tufte-esque sparklines; check out his introduction to the widget on his blog and&nbsp;<a rel="nofollow" target="_blank" href="http://www.webkist.com/secret/sparkline/test.html">a demo page here</a>.<br /><a rel="nofollow" target="_blank" href="http://webkist.wordpress.com/2009/06/30/yui-sparkline-widget/"><img src="http://yuiblog.com/assets/sparklines-20090702-173813.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-302"><strong><a rel="nofollow" target="_blank" href="http://sigalert.com/">YUI Menus, Overlays and More on Sigalert.com</a>:</strong> Traffic site <a rel="nofollow" target="_blank" href="http://sigalert.com/">Sigalert</a> makes excellent use of Todd Kloots&#8217;s <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/menu/">YUI Menu Control</a>, as well as a host of other YUI utilities and widgets.<br /><a rel="nofollow" target="_blank" href="http://sigalert.com/"><img src="http://yuiblog.com/assets/sigalert-20090717-102836.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-303"><strong><a rel="nofollow" target="_blank" href="http://theladders.com/">Job Site The Ladders Using YUI AutoComplete and More</a>:</strong> <a rel="nofollow" target="_blank" href="http://theladders.com/">The Ladders (theladders.com)</a> is a high-end jobs site featuring positions paying $100,000 or more.&nbsp; You&#8217;ll find a variety of YUI 2.7.0 components on the site, including a fantastic implementation of Jenny Han Donnelly&#8217;s <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/autocomplete/">YUI AutoComplete Control</a> on the site&#8217;s main job search control.<br /><a rel="nofollow" target="_blank" href="http://theladders.com/"><img src="http://yuiblog.com/assets/theladders-20090717-103353.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-298"><a rel="nofollow" target="_blank" href="http://www.unmatchedstyle.com/news/yui-30-with-jonathan-leblanc-from-the-yahoo-developer-network.php"><img src="http://yuiblog.com/assets/leblanc-yui3-podcast-20090630-091637.jpg" align="right" hspace="10" vspace="5"></a><strong><a rel="nofollow" target="_blank" href="http://www.unmatchedstyle.com/news/yui-30-with-jonathan-leblanc-from-the-yahoo-developer-network.php">Podcast: Jonathan LeBlanc on YUI 3</a>:</strong> <a rel="nofollow" target="_blank" href="http://www.yuiblog.com/blog/2009/06/17/yui-and-yql/">YUIBlog contributor</a> Jonathan LeBlanc, a technical evangelist on the Yahoo Developer Network team, was in South Carolina and did a series of podcasts with Period Three.&nbsp; One of these was on YUI 3, <a rel="nofollow" target="_blank" href="http://www.yuiblog.com/blog/2009/06/24/yui3b1/">which went into official beta recently</a>.&nbsp; <a rel="nofollow" target="_blank" href="http://www.unmatchedstyle.com/news/yui-30-with-jonathan-leblanc-from-the-yahoo-developer-network.php">Click through for the video</a>. You can read more about YUI 3 on the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/3/">Yahoo Developer Network</a> site.</li>
<li id="yuiBlogWild-304"><a rel="nofollow" target="_blank" href="http://www.webdesignbooth.com/15-really-useful-web-based-html-editors/"><img src="http://yuiblog.com/assets/15editors-20090717-104451.jpg" align="right" hspace="10" vspace="5"></a><strong><a rel="nofollow" target="_blank" href="http://www.webdesignbooth.com/15-really-useful-web-based-html-editors/">15 Really Useful Web-based HTML Editors</a>:</strong> <span style="text-decoration:none;">Dav Glass&#8217;s <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/editor/">YUI Rich Text Editor</a> is among the editors featured in Webdesignbooth&#8217;s <a rel="nofollow" target="_blank" href="http://www.webdesignbooth.com/15-really-useful-web-based-html-editors/">15 Really Useful </a></span><a rel="nofollow">Web-based HTML Editors</a>.&nbsp; Writes the author: &#8220;The <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/editor/">Rich Text Editor</a> is part of the Yahoo <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/">YUI library</a> and users can easily extend the features via creating plugins for it.&#8221;&nbsp; Check out Dav&#8217;s <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/editor/">documentation</a> and <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/examples/editor/">examples</a> for more.</li>
<li id="yuiBlogWild-299"><strong><a rel="nofollow" target="_blank" href="http://www.wait-till-i.com/2009/07/01/geomaker/">Christian Heilmann&#8217;s GeoMaker, Featuring YUI DataTable and Yahoo! Placemaker</a>:</strong> Christian Heilmann, technical evangelist for the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/">Yahoo! Developer Network</a>, has coded up <a rel="nofollow" target="_blank" href="http://icant.co.uk/geomaker/">GeoMaker</a>, a nice interface on top of the fabulous <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/geo/placemaker/">Yahoo! Placemaker API</a>. Christian&#8217;s UI leverages Todd Kloots&#8217;s <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/button/">YUI Button Control</a> and Jenny Han Donnelly&#8217;s <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/datatable/">YUI DataTable Control</a>. <a rel="nofollow" target="_blank" href="http://www.wait-till-i.com/2009/07/01/geomaker/">Check out the blog post here</a>; a screencast follows below.
<p><iframe class="embeddedvideo" type="application/x-shockwave-flash" src="http://www.flickr.com/apps/video/stewart.swf?v=71377" height="375" width="500"></li> 
<li id="yuiBlogWild-300"><strong><a rel="nofollow" target="_blank" href="http://blog.javachap.com/?p=23">YUI Components with DWR — DWRDataSource</a>:</strong> Vijay Dendukuri <a rel="nofollow" target="_blank" href="http://blog.javachap.com/?p=23">writes on his JavaChap blog</a>: &#8220;I’m working on project which uses YUI and DWR. The hardest part is intergrating these two. I googled on how people integrated YUI and DWR, found&nbsp;<a rel="nofollow" target="_blank" href="http://www.jroller.com/carlossg/entry/ajax_with_yahoo_ui_components">this</a>&nbsp;and&nbsp;<a rel="nofollow" target="_blank" href="http://tech.groups.yahoo.com/group/ydn-javascript/message/27281">this</a>. But these solutions will only work with earlier versions of YUI. I’m using YUI 2.7. So i ended up writing my own DWRDataSource. Might be useful for guys who want to integrate DWR and YUI 2.7.&#8221; (<a rel="nofollow" target="_blank" href="http://twitter.com/vdendukuri/statuses/2433231499">Original source.</a>)</li>
</ul>]]></content:encoded>
      </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>
         <description>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>
         <guid isPermaLink="false">http://www.yuiblog.com/blog/?p=380</guid>
         <pubDate>Mon, 29 Jun 2009 10:07:32 -0700</pubDate>
         <content:encoded><![CDATA[<p>The big news from the YUI team last week was <a rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" href="http://timr.com/">Timr.com</a>.<br /><a rel="nofollow" target="_blank" href="http://timr.com"><img src="http://yuiblog.com/assets/timr-20090603-143557.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-290"><strong><a rel="nofollow" target="_blank" href="http://www.harley-davidson.com">How Happy is Dav? Harley-Davidson Using YUI</a>:</strong> If you know YUI engineer <a rel="nofollow" target="_blank" href="http://davglass.com/">Dav Glass</a>, it will not surprise you to learn that he&#8217;s the one who discovered that <a rel="nofollow" target="_blank" href="http://www.harley-davidson.com">YUI is in use on the Harley-Davidson website</a>.&nbsp; Check out their Harley-themed <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/autocomplete/">YUI AutoComplete</a> in the main search box at the top of the page.<br /><a rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" href="http://www.sitepoint.com/article/yui-3-whats-new/">a nice introduction</a> to <a rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" href="http://www.sitepoint.com/article/yui-3-whats-new/">Check out the full article for more</a>.<br /><a rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow">free online</a> and&nbsp;<a rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" href="http://davglass.com/">Dav</a>, who is a YUI engineer by day, has branched off into t-shirt design with&nbsp;<a rel="nofollow" target="_blank" href="http://www.zazzle.com/yui3_redneck_tshirt-235081540797731282">a YUI shirt available on Zazzle.</a>&nbsp;Pictured is&nbsp;<a rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" href="http://twitter.com/slicknet/statuses/2005445582">Original source.</a>)</li>
<li id="yuiBlogWild-287"><strong><a rel="nofollow" target="_blank" href="http://www.cerberusweb.com/">Cerberus Helpdesk 4.2 Using YUI Charts, TabView, and More</a>:</strong> <a rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/container/panel/">Panels</a> to <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/tabview/">TabViews</a> to reports enhanced by <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/charts/">YUI Charts</a>.<br /><a rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" href="http://mint.com/">Mint.com</a> and author of the upcoming YUI Storage Utility, <a rel="nofollow" target="_blank" href="http://mattsnider.com/languages/javascript/framework-yui-using-eventprovider/">blogs</a> about <a rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" href="http://www.youtube.com/watch?v=c9WN7bWiJag">Screencast of YUI DataTable Use on ResumeBucket</a>:</strong> We mentioned ResumeBucket <a rel="nofollow" target="_blank" href="http://yuiblog.com/blog/2009/04/23/wild-20090423/#yuiBlogWild-253">in a previous &#8220;In the Wild&#8221;</a>, but <a rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" href="http://www.youtube.com/watch?v=c9WN7bWiJag">here</a>.<br /><iframe class="embeddedvideo" src="http://www.youtube.com/v/c9WN7bWiJag&amp;hl=en&amp;fs=1&amp;rel=0&amp;border=1" type="application/x-shockwave-flash" height="315" width="500"> (<a rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" href="http://925html.com/code/facebook-style-overlay-in-yui-3-css-3/">Check out his blog post for the full story</a>. (<a rel="nofollow" target="_blank" href="http://www.yuiblog.com/blog/2009/05/26/in-the-wild-for-may-26-2009/#comment-581948">Original source.</a>)<br /><a rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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>
      </item>
      <item>
         <title>Implementation Focus: Squarespace</title>
         <link>http://www.yuiblog.com/blog/2009/06/09/implementation-focus-squarespace/</link>
         <description>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 &amp;#8212; including Mark Ecko and Kevin Rose. Squarespace allows its customers to create and manage their web sites using a polished interface without [...]</description>
         <guid isPermaLink="false">http://yuiblog.com/blog/?p=355</guid>
         <pubDate>Tue, 09 Jun 2009 09:08:18 -0700</pubDate>
         <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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/dom/">DOM</a> and <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/event/">Event</a> stuff along with <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/dragdrop/">Drag and Drop</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/animation/">Animation</a>, and <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/connection/">Connection Manager</a>. On the widget side of things, we take advantage of <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/calendar/">Calendar</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/colorpicker/">ColorPicker</a>, and <a rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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>
         <category>YUI Implementations</category>
      </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>
         <description>Here&amp;#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 &amp;#8211; a Web Mashup Generator Written in YUI: Writes Ajaxian: &amp;#8220;The Korean developer community is not that known to people in the west it seems. Language [...]</description>
         <guid isPermaLink="false">http://yuiblog.com/blog/?p=346</guid>
         <pubDate>Tue, 26 May 2009 10:36:00 -0700</pubDate>
         <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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" href="http://mashupkorea.com/">Korea Mashup challenge</a> called <a rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" href="http://uizard.org">check it out</a> when they come back up. (<a rel="nofollow" target="_blank" href="http://ajaxian.com/archives/uizard-a-web-mashup-generator-written-in-yui">Original source.</a>)<br /><a rel="nofollow" target="_blank" href="http://uizard.org/"><img src="http://yuiblog.com/assets/UIzard-20090513-082218.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-283"><strong><a rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" href="http://www.cn.ca">the main cn.ca</a> site also uses some YUI.<br /><a rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" href="http://gnocdc.org/repopulation/">New Orleans Repopulation Data Using Google Maps and YUI</a>:</strong> @mattpriour <a rel="nofollow" target="_blank" href="http://twitter.com/mattpriour/statuses/1776362124">wrote in</a> to tell us about the <a rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" href="http://twitter.com/mattpriour/statuses/1776362124">Original source.</a>)<br /><a rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" href="http://blog.lavablast.com/post/2009/05/YUI-Compressor-for-Visual-Studio.aspx">YUI Compressor for Visual Studio</a>:</strong> <a rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/compressor/">a popular minifer</a> inside Visual Studio.&#8221; (<a rel="nofollow" target="_blank" href="http://twitter.com/dankenzon/statuses/1777366062">Original source.</a>)<br /><a rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" href="http://uzvy.com">Uzvy.com, Groups Solution, Using Tons of YUI</a>:</strong> @alokbhardwaj <a rel="nofollow" target="_blank" href="http://twitter.com/alokbhardwaj/statuses/1773314385">wrote in</a> to tell us about <a rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" href="http://twitter.com/alokbhardwaj/statuses/1773314385">Original source.</a>)<br /><a rel="nofollow" target="_blank" href="http://uzvy.com"><img src="http://yuiblog.com/assets/uzvy-20090512-120254.jpg" vspace="10"></a></li>
<li id="yuiBlogWild-277"><strong><a rel="nofollow" target="_blank" href="http://cagataycivici.wordpress.com/2009/05/06/primefaces-calendar-component/">Cagatay Civici Adds YUI Calendar to PrimeFaces</a>:</strong> <a rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" href="http://primefaces.prime.com.tr">PrimeFaces</a> is no exception. In fact, PrimeFaces calendar component is based on the well known <a rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/grids/builder/">Grids Builder</a> and added support for <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yql/">YQL</a> query execution, allowing you to build YQL-based pages easily; <a rel="nofollow" target="_blank" href="http://neyric.com/%7Eneyric/yqlex-builder/yqlex-builder.html">check out Eric&#8217;s adaptation here</a>. (<a rel="nofollow" target="_blank" href="http://yuiblog.com/blog/2009/05/11/wild-20090511/#comment-581647">Original source.</a>)</li>
</ul>]]></content:encoded>
         <category>In the Wild</category>
      </item>
      <item>
         <title>Implementation Focus: Lunch.com</title>
         <link>http://www.yuiblog.com/blog/2009/04/09/lunch/</link>
         <description>David Nesbitt is the VP of Engineering at Lunch.com, an online community that helps people share and discover relevant information, opinions, and ideas.
He has worked in software development for the past 20 years.
Prior to Lunch.com, he was the chief architect and director of application development at Vue Technology, which recently sold to Tyco International (TYC) [...]</description>
         <guid isPermaLink="false">http://yuiblog.com/blog/2009/04/09/lunch/</guid>
         <pubDate>Thu, 09 Apr 2009 10:01:33 -0700</pubDate>
         <content:encoded><![CDATA[<div class="interview">
<div class="intro">
<p><img src="http://yuiblog.com/assets/davenesbitt-20090408-184314.jpg" alt="Dave Nesbitt of Lunch.com" width="205" height="294" hspace="10" vspace="5" align="right"/><em>David Nesbitt is the VP of Engineering at <a rel="nofollow" target="_blank" href="http://lunch.com/">Lunch.com</a>, an online community that helps people share and discover relevant information, opinions, and ideas.</em></p>
<p><em>He has worked in software development for the past 20 years.</em></p>
<p><em>Prior to Lunch.com, he was the chief architect and director of application development at Vue Technology, which recently sold to Tyco International (TYC) for $43M. David is very optimistic about the potential of Web standards development in today’s environment and an enthusiastic proponent of the Yahoo! User Interface (YUI) framework.</em></p>
<p><em>When away from work, David relishes the challenges of fatherhood and is a connoisseur of baseball. Go Angels!</em></p>
</div>
<h3>Special invite to Lunch&#8217;s private beta for YUIBlog readers:</h3>
<ul>
<li>Go to <a rel="nofollow" target="_blank" href="http://www.lunch.com">http://www.lunch.com</a>.</li>
<li>On the right-hand side of the screen in the Get an Invite! box is a "Have an invite code?" message. Click on the <em>click here</em> link.</li>
<li>Enter the Invite Code <em>YUIBlog</em> and a valid email address. Click Submit.</li>
<li>Lunch.com will immediately send you a confirmation email.</li>
<li>Open that email and click on the confirmation link.</li>
<li>Sign into Lunch.com.</li>
</ul>
<p><a rel="nofollow" target="_blank" href="http://www.lunch.com/"><img src="http://yuiblog.com/assets/lunch-main-20090403-175746.jpg" alt="Lunch.com, a new online community based on the premise that the most useful information comes from people who share your interests, tastes and point of view." width="510" height="333"/></a></p>
<p class="q"><strong>Design and interface quality are huge differentiators for startups. What are the strengths you wanted to build around in the Lunch.com interface?</strong></p>
<p>At Lunch, our strengths are the community&#8217;s ability to contribute both facts and opinions about almost everything and our Similarity Network which, based on site interactions, connects each person to others who share similar interests, opinions, and ideas. To clearly deliver and communicate to the user it is important for the interface to be clean and easy to understand.</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>We selected YUI for a number of reasons.</p>
<p>First and foremost, we felt that Yahoo&#8217;s commitment to this technology gave a significant advantage in the areas of test coverage, maintenance, and longevity. Standard open source frameworks have the potential hazard of falling into the &#8220;flavor of the day&#8221; category, where there is an initial surge of enthusiasm that can quickly be abandoned for the "next big thing." We wanted a framework that was going to have a lasting presence.</p>
<p>Secondly, we were impressed by YUI&#8217;s architecture. The quality and modularity of the interface is impressive. Clearly, there is a concern for keeping the interface clean, whereas other frameworks have a tendency to become bloated over time. Yahoo&#8217;s architectural shepherding of the interface gives it a better chance of staying slim, usable, and maintainable over the long haul.</p>
<p>Thirdly, we found the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/">documentation</a> and supporting resources to be very helpful. The number of <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/examples/">examples</a> and easily navigated Web site facilitate a short learning curve and rapid development. We also appreciated the wealth of JavaScript information available from the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/theater/">YUI Theater</a>.</p>
<p>Finally, we found the <a rel="nofollow" target="_blank" href="http://yuiblog.com/">YUI blog</a> to be a robust source of tutorial information and the <a rel="nofollow" target="_blank" href="http://tech.groups.yahoo.com/group/ydn-javascript/">YUI discussion forum</a> to be a vibrant community of helpful implementers willing to share their knowledge and address issues. We didn&#8217;t want to feel like we were "on our own" when problems arose.</p>
<p>All of these reasons led us to choose YUI and we have not been disappointed.</p>
<p class="q"><strong>What YUI components are in use on the site?</strong></p>
<p><a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/yahoo/">Yahoo</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/dom/">Dom</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/event/">Event</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/connection/">Connection Manager</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/get/">Get</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/json/">JSON</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/animation/">Animation</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/container/">Container</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/autocomplete/">AutoComplete</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/imagecropper/">ImageCropper</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/tabview/">TabView</a>, and <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/examples/container/overlaymanager.html">OverlayManager</a>.</p>
<p><a rel="nofollow" target="_blank" href="http://www.lunch.com/"><img src="http://yuiblog.com/assets/lunch-ui-20090403-180038.jpg" alt="The Lunch.com UI, employing YUI overlays for contextual popups in the ExhiliRATE feature." width="510" height="301"/></a></p>
<p class="q"><strong>What&#8217;s next for the interface of Lunch.com in coming releases?</strong></p>
<p>Currently we are in private beta but we will be opening it up in the next few weeks. Our goals for the interface, are to continue to optimize the experience for both existing community members and for people just looking to gain knowledge or insight into specific areas of interest. As we move from the closed beta to an open beta it is important that new visitors can understand the value of Lunch and easily jump in and start getting personalized information based on their interests. Creating those easy on-ramps and access points that can engage and drive adoption will be the key priorities moving forward.</p>
</div>]]></content:encoded>
      </item>
      <item>
         <title>Implementation Focus: Confirmit</title>
         <link>http://www.yuiblog.com/blog/2009/04/02/confirmit/</link>
         <description>Einar Paul Qvale works as a front-end developer for the Norwegian company Confirmit, an online survey software provider.
Confirmit is based in Oslo with offices around the world. Einar manages the web-team which does a lot of the heavy lifting in the UI department, especially when it comes to more complex JavaScript, CSS, Ajax, and the [...]</description>
         <guid isPermaLink="false">http://yuiblog.com/blog/2009/04/02/confirmit/</guid>
         <pubDate>Thu, 02 Apr 2009 09:16:22 -0700</pubDate>
         <content:encoded><![CDATA[<div class="interview">
<div class="intro">
<p><em><img src="http://yuiblog.com/assets/confirmit-einar-20090331-120719.jpg" alt="Einar Paul Qvale of Confirmit." width="309" height="232" hspace="10" vspace="5" align="right">Einar Paul Qvale works as a front-end developer for the Norwegian company <a rel="nofollow" target="_blank" href="http://confirmit.com/">Confirmit</a>, an online survey software provider.</em></p>
<p><em>Confirmit is based in Oslo with offices around the world. Einar manages the web-team which does a lot of the heavy lifting in the UI department, especially when it comes to more complex JavaScript, CSS, Ajax, and the frameworks they use to develop the UI. On the server side, Confirmit uses Asp.Net; on the client side they have chosen YUI as the main JavaScript framework. Einar has been with Confirmit since 2000.</em></p>
</div>
<p><a rel="nofollow" target="_blank" href="http://confirmit.com/"><img src="http://yuiblog.com/assets/confirmit-20090331-121127.jpg" alt="Confirmit" width="510" height="218"/></a></p>
<p class="q"><strong>What is Confirmit? Tell us a little bit about the company.</strong></p>
<p>Confirmit has been around since 1996, and we are now over 250 employees globally, with offices in Guildford, London, Oslo, New York, San Francisco, Moscow and Yaroslavl.</p>
<p>Confirmit targets Global 5000 companies and Market Research agencies worldwide with a wide range of software products for feedback / data collection, panel management, data processing, analysis, and reporting. Customers include British Airways, Countrywide Financial, Dow Chemical, Experian, GlaxoSmithKline, Halifax Bank of Scotland, Hewlett Packard, Intrawest, Ipsos, Nielsen, The NPD Group, Safeco Insurance, StatoilHydro, Symantec and Virgin Media.</p>
<p>The goal of Confirmit as a company is to revolutionize the survey, panel and reporting process through automation and integration. The goal of the R&#038;D department is to support this by creating a high quality product that is capable of tackling current and future challenges in the market.</p>
<p><img src="http://yuiblog.com/assets/confirmit-ui-20090401-130747.jpg" alt="Confirmit Express survey designer, using Yahoo, Dom, Event, Animation, Connection, Json, and Selector." width="510" height="353"/></p>
<p class="q"><strong>From a frontend engineering perspective, what are the core challenges you face in your work on Confirmit? </strong></p>
<p>The core challenges we face from a front-end engineering perspective would have to be the fact that most of our developers are in fact not front-end engineers. YUI helps us a lot in this area, and does so in a manner that in most instances are transparent to the developers. The less they need to know about how for instance attaching events differs from browser to browser, the better. We can&#8217;t all be browser geeks in the R&#038;D department, but we should not have to be in order to be productive.</p>
<p>Now that browsers are evolving so quickly (as opposed to the first half of the decade), having a code-base that is ready for the current and future browsers is definitely the biggest challenge in creating a rich web interface.</p>
<p class="q"><strong>Why did you choose YUI as part of your JavaScript foundation?</strong></p>
<p>I felt [YUI] would be an excellent choice as our JavaScript framework of choice, considering Yahoo&#8217;s own requirements when it comes to performance, stability, browser support, etc. For the first week of March we averaged about two million page-hits daily on our surveying servers, and about two hundred thousand page-hits daily on the survey authoring servers. Our primary strengths are security, scalability and performance, so we needed a JavaScript framework that supports these product qualities. I also felt that the YUI project would not be a short-lived one, and that I could count on it being updated and maintained for a long time considering the solid reputation of the company responsible for it.</p>
<p class="q"><strong>How are you using YUI in your site today?</strong></p>
<p><img src="http://yuiblog.com/assets/confirmit-calendar-20090401-131348.jpg" alt="Survey using YUI Calendar for date questions. " width="277" height="212" align="right"/>We are using YUI in almost every area of the product. The core library is deeply integrated into the survey authoring and reporting platforms (<a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/yahoo/">Yahoo</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/dom/">Dom</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/event/">Event</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/json/">JSON</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/selector/">Selector</a>), and we are also using the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/connection/">Connection Manager</a> a lot for XHR/Ajax.</p>
<p>Confirmit Express (the entry-level product for survey authoring) is also using the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/animation/">Animation Utility</a> heavily.</p>
<p>We are also using quite a few components in the survey front-end (<a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/slider/">Slider</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/calendar/">Calendar</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/get/">Get</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/cookie/">Cookie</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/yuiloader/">YUI Loader</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/dragdrop/">DragDrop</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/resize/">Resize</a>) in order to create a more interesting experience for the respondent.</p>
<p><img src="http://yuiblog.com/assets/confirmit-slider-20090401-130956.jpg" alt="Screenshot of a survey using a numeric slider. " width="510" height="380"/></p>
<p>Elsewhere in the product we are using <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/autocomplete/">YUI AutoComplete</a> and <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/editor/">Rich Text Editor</a>.</p>
<p>We are combining the components in use with our own core libraries during build time in order to reduce the number of requests to the server, meaning we have one combined JavaScript file for survey authoring, one for reporting, one for surveys, and one for Confirmit Express. We have of course considered using the Yahoo or Google combo handler for this, but the lack of an SLA and SSL support has prevented this so far. [<em>Note: Google's CDN does provide SSL. -Ed.</em>]</p>
<p><img src="http://yuiblog.com/assets/confirmit-resize-20090401-131751.jpg" alt="YUI Resize in use in the Confirmit interface." width="510" height="355"/></p>
<p class="q"><strong>In using YUI for these projects, what aspects of the library have been particularly pleasing to work with and powerful in solving problems?</strong></p>
<p>My personal favorite components would have to be <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/event/">Event</a> and <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/connection/">Connection</a>. Dustin Diaz has a great article on <a rel="nofollow" target="_blank" href="http://www.dustindiaz.com/yahoo-event-utility/">how and why you should use the Event Utility</a>; it should be very educational for anyone who hasn&#8217;t had the time to get to know the Event Utility in detail.</p>
<p>When it comes to the Connection Manager, I love the fact that it does exactly what you need, and nothing more. Make a request, specify the http method, specify the form to send if needed, and provide a handler for the response. It’s not doing anything too fancy, but it’s all very nice and clean, resulting in very readable and maintainable code.</p>
<p class="q"><strong>What&#8217;s the most innovative thing you&#8217;ve done with YUI in the current release of Confirmit?</strong></p>
<p>In the Inline Surveys project we use <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/yuiloader/">YUI Loader</a> to set up the JavaScript environment and the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/get/">Get Utility</a> for the cross-domain requests. If the page hosting the Inline Survey is on our own domain we switch from the Get Utility to <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/connection/">Connection Manager</a> for XHR, and the similarities in the interfaces of these two components makes this extremely easy to accomplish.</p>
<p class="q"><strong>What would you like to see YUI developers improve on in upcoming releases of YUI?</strong></p>
<p>It would be great to have some chaining functionality in YUI. We are using <a rel="nofollow" target="_blank" href="http://dedchain.dustindiaz.com/">DEDChain</a> internally as a chaining wrapper for YUI, and it does the job. But I would really like to see what the YUI team could come up with if they put their brilliant minds to it (since this will be included in <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/3/">YUI 3</a> I guess I will get my wish).</p>
<p>Some more skins would also be great. The SAM skin is excellent, but it would be good to have more than one to choose from, especially a darker blue one and perhaps a white on black skin.</p>
<p>I am also really looking forward to seeing the lazy load syntax in YUI 3, it seems like a very nice way of working with the different YUI components that you don’t want to have preloaded in the initial page delivered to the browser.</p>
</div>]]></content:encoded>
      </item>
      <item>
         <title>Building Sideline: Lessons in YUI + Adobe AIR</title>
         <link>http://www.yuiblog.com/blog/2009/03/31/sideline-beta-released/</link>
         <description>About the Author: Chad Auld is a Front-end Engineer working with the Yahoo! Buzz Marketing team. A long-time open-source contributor, he recently helped start the MiaCMS project, a next-generation fork of Mambo built using YUI. In this article, he walks us through the process of developing a desktop application with YUI on the Adobe Air [...]</description>
         <guid isPermaLink="false">http://yuiblog.com/blog/2009/03/31/sideline-beta-released/</guid>
         <pubDate>Tue, 31 Mar 2009 10:52:29 -0700</pubDate>
         <content:encoded><![CDATA[<div class="interview">
<div class="intro">
<p><strong>About the Author:</strong> <em>Chad Auld is a Front-end Engineer working with the Yahoo! Buzz Marketing team. A long-time open-source contributor, he recently helped start the <a rel="nofollow" target="_blank" href="http://miacms.org">MiaCMS project</a>, a next-generation fork of Mambo built using YUI. In this article, he walks us through the process of developing a desktop application with YUI on the Adobe Air platform.</em></p>
</div>
</div>
<p><a rel="nofollow" target="_blank" href="http://sideline.yahoo.com" class="img"><img src="http://yuiblog.com/assets/sideline-beta-released/screenshot.png" alt="Screenshot of Sideline" width="510" height="378"/></a></p>
<p>Ever wonder what people are saying right now about your company, brand, service, product, etc? <a rel="nofollow" target="_blank" href="http://sideline.yahoo.com">Sideline</a>, inspired by a recent internal hack project at Yahoo!, goes beyond the standard customer survey process to let you listen in real-time to people talking about your products and then use that feedback to enhance your service or help users with their problems.</p>
<p>Briefly stated, the goals of our project were to</p>
<ul>
<li>Create a desktop application that allows for the creation, grouping, and auto-execution of advanced search queries against Twitter</li>
<li>Leverage existing skill-sets and tools</li>
<li>Target the Windows, Mac OS X, and Linux operating systems and minimize the amount of platform specific code that must be written</li>
<li>Open source the code so that others can learn from, contribute to, and/or extend the product as they see fit</li>
</ul>
<p>Our team of front-end engineers are experts in JavaScript, CSS, HTML, and PHP but didn&#8217;t have a great deal of experience developing desktop applications. So the question became, how to maximize our existing skill-sets for desktop development? The answer for us was to utilize the <a rel="nofollow" target="_blank" href="http://www.adobe.com/products/air/">Adobe AIR platform</a>, which &#8220;lets developers use proven web technologies to build rich Internet applications that run outside the browser on multiple operating systems&#8221;. Since AIR supports HTML/JavaScript development (in addition to Flex and Flash), we could build our application on traditional web technologies, on top of <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/">YUI</a>, and have it run on the three main desktop operating systems.</p>
<h3 id="grids-in-air">YUI Grids in AIR</h3>
<p>Sideline contains an extensive implementation of the YUI Library. It should hopefully serve as a great example for other developers interested in experimenting with YUI and Adobe AIR. The application&#8217;s layout is constructed using <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/grids/">YUI Grids</a> and even makes use of the <a rel="nofollow" target="_blank" href="http://yuiblog.com/blog/2009/03/05/aria-grids/">recently added ARIA Landmark Roles</a>. Grids worked very well in the AIR environment and made redesigns that occurred mid-development easy to implement with minimal code changes. Just like in the standard browser environment, YUI Grids can serve as a great foundation for an AIR application even if the developer decides against using the rest of the JavaScript library and opted for another framework instead.</p>
<h3 id="components-in-air">YUI Components in AIR</h3>
<p>In addition to Grids, Sideline also utilizes the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/dom/">Dom</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/event/">Event</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/dragdrop/">Drag and Drop</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/json">JSON</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/selector/">Selector</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/container/">Container</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/button/">Button</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/menu/">Menu</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/slider/">Slider</a>, and <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/tabview/">TabView</a> components. I am happy to report that all the YUI components performed extremely well in the AIR environment and required no modifications. Sideline does implement a fairly customized design and thus some customized skinning of the YUI components was required, but no core modifications. Most AIR applications tend to have a rich desktop application feel to them. For this level of customization, the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/articles/skinning/">YUI skinning article</a> is a great reference to get started.</p>
<h3 id="beyond-the-browser">Beyond the Browser</h3>
<p>A major enhancement of the Adobe AIR platform over the traditional web environment is access to a local SQLite database and the user&#8217;s file system. Local database access is becoming more available in traditional web environments through technology such as Gears and HTML 5 client side storage, but for now these solutions are not ubiquitous. For those interested in AIR development, Sideline has tackled many of the common tasks that a typical AIR application might require, e.g., fetching external data, handling application updates, interacting with the local database, working with the local filesystem, launching native browser windows, displaying desktop notifications, etc. It should prove to be a useful reference in that respect.</p>
<h3 id="air-development-tips">Tips for AIR Development</h3>
<ol>
<li>Know your environment. AIR uses the WebKit open source browser engine under the hood. Traditional web development is aimed at making an application or site work across as many browsers/operating systems as possible. Which browsers to support typically comes down to a cost versus usage factor. However, coding for a single rendering engine reduces the need to prepare for and test against the slue of potential combinations in the market. That being said, it still makes sense to develop in a cross-browser manner where possible since there may come a time when the application needs to find its way back into a more traditional browser environment. Using a framework like YUI will make that process relatively painless. It is simple to see the browsers and platforms currently supported by YUI via the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/articles/gbs/">Graded Browser Support chart</a>. Developers should be fairly safe to take some basic shortcuts when building AIR application (using <code>-webkit-border-radius</code> makes rounded corners a breeze), but use them sparingly and document them so they are easy to spot later.</li>
<li>During the development of a complex application in any environment a solid set of debugging tools is a must-have. Adobe provides some useful tools for debugging AIR out of the box. Developers should investigate the <a rel="nofollow" target="_blank" href="http://help.adobe.com/en_US/AIR/1.5/devappshtml/WS5b3ccc516d4fbf351e63e3d118666ade46-7fd7.html">AIR Debug Launcher (ADL)</a>, <a rel="nofollow" target="_blank" href="http://help.adobe.com/en_US/AIR/1.5/devappshtml/WS5b3ccc516d4fbf351e63e3d118666ade46-7ed2.html">the HTML Introspector</a>, and the <a rel="nofollow" target="_blank" href="http://help.adobe.com/en_US/AIR/1.5/devappshtml/WS5b3ccc516d4fbf351e63e3d118666ade46-7ed3.html">HTML Source Viewer</a>. In addition to the bundled tools, <a rel="nofollow" target="_blank" href="http://www.aptana.com/air">Aptana Studio with its Adobe AIR Plugin</a> proved to be an indispensable asset. The Aptana plugin provides assistance with creation of an AIR project, importing of common JavaScript frameworks, debugging, packaging/exporting, and digitally signing the application.</li>
<li>Don&#8217;t forget the performance techniques we&#8217;ve learned from the standard browser environment (i.e., optimize your images, minify and combine the application&#8217;s CSS and JavaScript files, and for heavy event-based applications like Sideline, take advantage of <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/examples/event/event-delegation.html">event delegation techniques</a>). AIR applications run on the desktop and so there is a bit more leniency with performance than in the typical browser environment, but remember just like the browser itself, the AIR container also consumes a chunk of the system&#8217;s memory even before the application&#8217;s custom code kicks in.</li>
</ol>
<h3 id="the-road-ahead">The Road Ahead</h3>
<p>The beta version of Sideline can be installed at <a rel="nofollow" target="_blank" href="http://sideline.yahoo.com">http://sideline.yahoo.com</a>. The code is <a rel="nofollow" target="_blank" href="http://github.com/cauld/sideline/tree/master">open source under the terms of the BSD license and hosted on GitHub</a>. We welcome contributions, feedback, and/or suggestions. Also, in the spirit of keeping things as open as possible and supporting emerging technology we will likely port Sideline to <a rel="nofollow" target="_blank" href="http://titaniumapp.com/">Titanium</a> in the near future. Some initial work has already been done on the port and will continue over the coming weeks. It is also quite possible that Sideline will end up implementing a JavaScript ORM such as <a rel="nofollow" target="_blank" href="http://www.jazzrecord.org/">JazzRecord</a> to ease database interactions across platforms. If anyone has additional tips for supporting multiple platforms we&#8217;d love to hear them.</p>
<p>Now go forth and <a rel="nofollow" target="_blank" href="http://github.com/cauld/sideline/fork">fork it</a>!</p>]]></content:encoded>
      </item>
      <item>
         <title>Implementation Focus: DocLanding</title>
         <link>http://www.yuiblog.com/blog/2009/03/30/doclanding/</link>
         <description>Todd Fishback is the President of DocLanding, a web-based document management solution. Todd joins us on YUIBlog to discuss his team&amp;#8217;s choice of YUI utilities and widgets within the DocLanding user interface. You can learn more about DocLanding from its presentation at Fall 2008 Demo Conference. Tell us a little bit about DocLanding &amp;#8212; [...]</description>
         <guid isPermaLink="false">http://yuiblog.com/blog/2009/03/30/doclanding/</guid>
         <pubDate>Mon, 30 Mar 2009 11:24:49 -0700</pubDate>
         <content:encoded><![CDATA[<p><img src="http://yuiblog.com/assets/doclanding-20090330-111939.jpg" alt="DocLanding: Online, on-demand document management" width="510" height="237"/></p>
<div class="interview">
<div class="intro">
<p><em>Todd Fishback is the President of <a rel="nofollow" target="_blank" href="http://www.doclanding.com/">DocLanding</a>, a web-based document management solution. Todd joins us on YUIBlog to discuss his team&#8217;s choice of YUI utilities and widgets within the DocLanding user interface. You can learn more about DocLanding from <a rel="nofollow" target="_blank" href="http://link.brightcove.com/services/player/bcpid980795693?bctid=1778578813">its presentation at Fall 2008 Demo Conference</a>.</em></p>
</div>
<p class="q"><strong>Tell us a little bit about DocLanding &mdash; what are the central problems you solve for your users?</strong></p>
<p>DocLanding is an on-demand document management solution that delivers enterprise class document management functionality for a fraction of the costs of most enterprise solutions. The software can be delivered through our Software as a Service (SaaS) offering or as an in-house system. Our clients are primarily in the financial services and healthcare arenas.</p>
<p>Common issues we solve for our customers include providing a web-based centralized repository for distributed workforces, on-demand web-based scanning for low paper volume offices, and desktop batch-based scanning in high paper volume offices. Other issues we address include secure document sharing and collaboration, document editing/annotations, version control, document commenting, and document watermarking. Our unique approach to separately controlled but linked document repositories allows users to access disparate repositories with one common login.</p>
<p class="q"><strong>What were the particular user interface challenges presented by your product&#8217;s design?</strong></p>
<p><a rel="nofollow" target="_blank" href="http://www.doclanding.com/"><img src="http://yuiblog.com/assets/doclanding-preview-20090330-105501.jpg" alt="DocLanding: Document preview UI." width="510" height="275"/></a></p>
<p>We learned from some of our earlier work that you simply cannot underestimate the importance of user-friendly design. Creating a website is fairly easy, but creating a true web application that has to meet the needs of businesspeople is real work. Our product attempts to take document management from strictly the domain of the large enterprise and make it available to any small business. Electronic document management at its core is not a simple task. The goal is to organize and control access to massive numbers of files in addition to making them fully searchable. Because of this, the user interface is actually where the majority of our development time has traditionally been spent.</p>
<p>We&#8217;ve found that you will save time and money on support issues when you make your site straightforward and easy to use. Part of that is relaxing the specifications needed to run the site. We got ours pared down to just about any modern browser with JavaScript and Flash. The core site design we came up with presented its own challenges with its very specific use of the screen real estate. We found our users were better able to make full use of the application when we ourselves paid attention to colors, iconography and proximity of the controls to their function. We think we&#8217;re on the right track because our feedback page has returned more requests for additional features than for help requests.</p>
<p class="q"><strong>You chose YUI to help power your site. What led you to that decision?</strong></p>
<p><a rel="nofollow" target="_blank" href="http://www.doclanding.com/"><img src="http://yuiblog.com/assets/doclanding-main-20090330-105228.jpg" alt="DocLanding: On-demand document management" width="510" height="185"/></a></p>
<p>The simple answer is consistency and speed. We needed a framework that would enable us to meet the design specifications of our product. More specifically, we had ambitious design goals like maintaining a one screen view and minimizing or eliminating full page postbacks. In addition, we wanted our required elements to look and function identically in as many different browsers as we could manage. There are enough consistency issues between browsers and their rendering methodologies to contend with already, so any framework we chose needed to minimize the amount of browser-specific coding we&#8217;d have to do. After experimenting with a variety of different toolkits, YUI came out quite clearly on top. There was a bit of a learning curve to all the products, but YUI&#8217;s had the best payoff.</p>
<p>The base framework does not require a plug-in, it plays well with .NET, and the scripts are light, tight and solid. Once we got the hang of the framework, we found it enlightening to compare our older traditional interface pages to the YUI versions. In every case, adjusting our UI methodology returned huge gains in performance and consistency with lighter downloads to our clients.</p>
<p><a rel="nofollow" target="_blank" href="http://www.doclanding.com/"><img src="http://yuiblog.com/assets/doclanding-uploaderUI-20090330-105714.jpg" alt="DocLanding: Mult-file uploads using YUI Uploader." width="510" height="163"/></a></p>
<p class="q"><strong>What YUI components are you using most heavily in your app?</strong></p>
<p>We&#8217;re actually using quite a lot of the components. The most beneficial ones have been those that allow us to do as much with and on one screen as possible, so the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/treeview/">TreeView</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/menu/">Menu</a>, <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/container/simpledialog/">SimpleDialog</a> and <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/layout/">Layout Manager</a> have been extremely useful. In truth we&#8217;re using nearly all the controls, but we especially appreciate the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/uploader/">Uploader Control</a>&#8217;s ability to handle multiple file selection. We&#8217;ve been looking for a solution to that problem for some time and YUI&#8217;s has been the most elegant we&#8217;ve encountered so far. We make good use of the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/json/">JSON Utility</a> and <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/connection/">Connection Manager</a> to greatly minimize the size and number of requests to the server we make, which keeps our footprint down and more importantly keeps our users working, not waiting.</p>
<p class="q"><strong>What&#8217;s next for DocLanding? What are the challenges you&#8217;re working to address in your upcoming releases?</strong></p>
<p>We&#8217;re constantly working to improve the feature set of our product. Our users have asked for features to better integrate the editing of their documents with the main application so we&#8217;ll make time for that. We&#8217;re also working on better accommodating large file uploads. Otherwise, we have several ideas on the table and we&#8217;re weighing which ones would be most beneficial for our users. A version of the site optimized for mobile phones and netbooks is in the design stages already, as well as tools to import structured folders from the desktop directly into DocLanding. Experimentally, we&#8217;re toying with the idea of only storing the metadata at the website and pulling content directly from networked client machines running our software. Ultimately, the needs of our users will dictate in what direction we move next.</p>
</div>]]></content:encoded>
      </item>
      <item>
         <title>Flickr Uploadr: Improving Browser-based File Uploads with YUI Uploader</title>
         <link>http://www.yuiblog.com/blog/2009/02/26/flickr-uploadr/</link>
         <description>Traditionally, file uploading in the browser has been awkward, slow and error-prone. File selection is done one at a time and monitoring progress of the upload is difficult. There are no simple callbacks for total bytes, progress, error handling and so on, restricting the developer&amp;#8217;s ability to provide meaningful messaging on the UI end.
Conveniently, existing [...]</description>
         <guid isPermaLink="false">http://yuiblog.com/blog/2009/02/26/flickr-uploadr/</guid>
         <pubDate>Thu, 26 Feb 2009 12:07:12 -0800</pubDate>
         <content:encoded><![CDATA[<p>Traditionally, file uploading in the browser has been awkward, slow and error-prone. File selection is done one at a time and monitoring progress of the upload is difficult. There are no simple callbacks for total bytes, progress, error handling and so on, restricting the developer&#8217;s ability to provide meaningful messaging on the UI end.</p>
<p>Conveniently, existing browser plug-ins such as Flash can be used to provide or enhance certain functionality which browsers themselves do not support. The combination of Flash and JavaScript allows for batch file selection, progress and error reporting, and speedier uploading.</p>
<p>In a typical Flash-driven uploader, Flash provides the core service and provides callbacks to JavaScript-land with status updates, messaging and so on. JavaScript then updates an HTML and CSS-driven UI. Flash-JavaScript communication is made possible by Flash&#8217;s <code>ExternalInterface</code> API, introduced with Flash 8. Several projects have implemented uploaders based on this approach, including the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/uploader/">YUI Uploader</a> control and <a rel="nofollow" target="_blank" href="http://swfupload.org">SWFUpload</a> among others. While developing against <code>ExternalInterface</code> can get a bit quirky, an effective library can abstract away most of the quirks and provide a convenient API allowing you to take advantage of Flash&#8217;s improved file-handling abilities through JavaScript.</p>
<h3 id="building-an-upload-ui">Building an effective upload UI</h3>
<p><img src="http://yuiblog.com/assets/uploadr/ready.png" title="Screen capture of Flickr Uploadr's initialized state"></p>
<p>On Flickr, we implemented a simple large &#8220;Choose photos and videos&#8221; link which when clicked, opens a multi-select-capable file-selection dialog driven by the YUI Uploader (which requires Flash 9). YUI Uploader provides file metadata via <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/docs/YAHOO.widget.Uploader.html#event_fileSelect"><code>fileSelect</code></a> event callbacks after files are selected, at which point the file list and UI can be updated. The user can add and remove files as they like according to business logic, configure upload options and so on.</p>
<h3 id="beginning-the-upload">Beginning the Upload</h3>
<p><img src="http://yuiblog.com/assets/uploadr/files-added.png" title="Screen capture of Flickr Uploadr's files-added state"></p>
<p>Once the user has prepared their selection of files and clicked &#8220;Upload Photos and Videos&#8221;, the file queue is processed. YUI Uploader can upload files simultaneously or in sequence to a given URL (a signed API call in Flickr&#8217;s case) with callbacks for file progress, errors, file completion and upload completion. The idea is that the control&#8217;s Flash component simply sends files and reports errors and progress, leaving all of the event handling to JavaScript. Because of this separation, upload behaviours can easily be changed or updated without having to change the Flash component.</p>
<h3 id="upload-progress">Upload Progress</h3>
<p>During file upload, the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/docs/YAHOO.widget.Uploader.html#event_uploadProgress"><code>uploadProgress</code></a> event fires regularly, providing the file ID, bytes uploaded and total bytes for each file. This data can be reflected as a progress bar, a percentage value or raw bytes depending on your UI.</p>
<p><br />
</p>
<p><iframe class="embeddedvideo" type="application/x-shockwave-flash" src="http://www.flickr.com/apps/video/stewart.swf?v=67090" width="500" height="347"></iframe><br /> 
<br/><br />
Flickr Uploadr screencast from <a rel="nofollow" target="_blank" href="http://flickr.com/photos/designingwebinterfaces/3259239187/">designingwebinterfaces</a> on Flickr.</p>
<h3 id="connection-error-handling">Connection Error Handling</h3>
<p>If a file upload fails due to a connection or IO error from Flash, the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/docs/YAHOO.widget.Uploader.html#event_uploadError"><code>uploadError</code></a> event will fire so you can attempt to gracefully recover by retrying the upload of that file. Another safeguard is to implement a basic timeout such that if a file upload &#8220;hangs&#8221; for too long without a reported error (e.g., 2 minutes passes without an <code>uploadProgress</code> event), the file upload can be aborted.</p>
<h3 id="response-handling">File Upload Response Handling</h3>
<p>When a file has been posted to the target URL, the server response is passed to a JavaScript callback via the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/docs/YAHOO.widget.Uploader.html#event_uploadCompleteData"><code>uploadCompleteData</code></a> event. Photos are processed asynchronously post-upload in Flickr&#8217;s case, so a processing ticket ID is provided in the upload response. The ticket ID is then polled via API calls until a success/fail result is ultimately returned after server-side processing.</p>
<h3 id="start-up-handling">Uploader Start-Up Handling</h3>
<p><img src="http://yuiblog.com/assets/uploadr/loading.png" title="Screen capture of Flickr Uploadr's pre-initialized loading UI"></p>
<p>YUI Uploader handles the creation and writing out of the Flash object and its initialization process. Once the control has loaded, the <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/docs/YAHOO.widget.FlashAdapter.html#event_contentReady"><code>contentReady</code></a> event fires and the file selection process can begin. It is worth considering displaying some sort of &#8220;loading&#8221; element in your UI, in case the user wants to &#8220;choose files&#8221; before the control has initialized. In Flickr&#8217;s case, we show a small animation next to the &#8220;Choose photos and videos&#8221; link to indicate a loading state, as well as greying out the text itself.</p>
<p>It is also helpful to have a fall-through error handler that redirects the user to an alternate upload method, such as a non-JavaScript form-based file upload. The Flickr Uploadr detects for Flash 9+ upfront with JavaScript (e.g., the SWFObject), and also uses a <code>try...catch</code> block in the <code>init</code> method and around the file-selection bits. So if something goes wrong during initialization or when the user clicks the &#8220;Choose&#8221; link, exceptions trigger a fall-through to our basic uploader. This also is an appropriate fallback for users who don&#8217;t have Flash or JavaScript to begin with.</p>
<h3 id="flash-10-restrictions">Special Casing: Handling Flash 10 Security Restrictions</h3>
<p>Due to a change in the security model beginning with Flash 10, file selection must now begin via the user clicking directly on the Flash movie. With previous versions, you could call [Flash movie].selectFiles() from JavaScript and the selection dialog would be shown without requiring user action.</p>
<p>To keep the user experience consistent on Flickr where an HTML link could trigger the selection dialog, we made the Flash movie transparent and <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/examples/uploader/uploader-advanced-postvars.html">overlaid it on top of the HTML link</a>. Thus, the Flash movie captures the click and the selection dialog works as expected. One might call this a legitimate, local form of clickjacking.</p>
<p>If repositioning the Flash movie is undesirable in your use case, another option is to render the link, text or button UI <a rel="nofollow" target="_blank" href="http://developer.yahoo.com/yui/examples/uploader/uploader-simple-button.html">within the Flash movie itself</a> and show the movie as a normal inline element.</p>
<h3 id="should-i-use-this">Should I Use This?</h3>
<p>While there are some notable technical considerations associated with developing a Flash-based uploader UI &mdash; such as initialization and error handling &mdash; as with most nifty/shiny web things, the technical complexity of the implementation rests solely with the developer. Once the application logic has been implemented by the developer and integrated with YUI Uploader, the end result is an upload experience that is consistently faster, more convenient, efficient and more robust to the end user.</p>]]></content:encoded>
      </item>
   </channel>
</rss>
<!-- fe2.pipes.sp1.yahoo.com uncompressed/chunked Tue Nov 24 02:59:59 PST 2009 -->
