<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Yahoo! User Interface Blog (YUIBlog) &#187; YUI Implementations</title>
	<atom:link href="http://www.yuiblog.com/blog/index.php/category/yui-implementations/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.yuiblog.com/blog</link>
	<description>The official blog of the YUI Project.</description>
	<lastBuildDate>Mon, 15 Mar 2010 22:54:08 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Using YUI at EtreProprio.com</title>
		<link>http://www.yuiblog.com/blog/2010/03/02/using-yui-at-etreproprio/</link>
		<comments>http://www.yuiblog.com/blog/2010/03/02/using-yui-at-etreproprio/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 15:18:37 +0000</pubDate>
		<dc:creator>Philippe Bernou</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[In the Wild]]></category>
		<category><![CDATA[YUI Implementations]]></category>

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

About the Author: Philippe Bernou is the founder and CEO of the French startup EtreProprio.com, a real estate website for individuals. After working for four years in Luxemburg on IBM technologies, he launched EtreProprio.com in 2008 with Aurélie Eav.


EtreProprio.com aims to provide high quality classifieds for free (see an example of a listing here). There [...]]]></description>
			<content:encoded><![CDATA[<div class="interview">
<div class="intro">
<p><strong>About the Author:</strong> <em><img src="http://yuiblog.com/assets/pbernou.png" alt="Philippe Bernou" vspace="5" align="right" hspace="10" /><a href="http://fr.linkedin.com/pub/philippe-bernou/7/722/b58">Philippe Bernou</a> is the founder and CEO of the French startup <a href="http://www.etreproprio.com">EtreProprio.com</a>, a real estate website for individuals. After working for four years in Luxemburg on IBM technologies, he launched EtreProprio.com in 2008 with Aurélie Eav.</em></p>
</div>
</div>
<p>EtreProprio.com aims to provide high quality classifieds for free (<a href="http://www.etreproprio.com/21771">see an example of a listing here</a>). There are currently more than five thousand property owners selling their houses on EtreProprio.com. We wanted to provide a simple but powerful interface, and we needed a lot of front-end logic. After a little experimentation, we chose YUI which struck us as powerful, robust, very well documented and highly customizable.  As a consequence, EtreProprio.com is using YUI (2.8.0) heavily for its front-end.</p>
<p>
The following modules are used:</p>
<ul>
<li><strong>CSS:</strong> Reset, Base</li>
<li><strong>Utilities:</strong> Animation, Connection Manager, Cookie, Datasource, Drag and Drop, JSON</li>
<li><strong>Widgets:</strong> AutoComplete, Button, Calendar, Container, DataTable, RTE, Slider, TabView, Uploader</li>
</ul>
<p>Let&#8217;s go deeper on three implementations: Advanced Search, Photo Uploader and TabView.</p>
<h3>Advanced Search</h3>
<p>The form used to find properties is developed on top of <a href="http://developer.yahoo.com/yui/autocomplete/">AutoComplete</a> and <a href="http://developer.yahoo.com/yui/slider/">Dual Slider</a>. The labels above slider thumbs are positioned by listening to change event. Then, they are repositioned if a collision occurs between min and max labels. The AutoComplete implementation can display mixed elements such as cities, postal codes or regions. Each element has its own display format.</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/HVUaI7Jlcq0&#038;hl=fr_FR&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/HVUaI7Jlcq0&#038;hl=fr_FR&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<p><a href="http://www.etreproprio.com/recherche">Try it live</a>.</p>
<h3>Photo Uploader + Management</h3>
<p>We used <a href="http://developer.yahoo.com/yui/uploader/">YUI&#8217;s Uploader</a>, <a href="http://developer.yahoo.com/yui/datatable/">DataTable</a> and <a href="http://developer.yahoo.com/yui/dragdrop/">Drag and Drop</a> modules in order to create simple form for photo uploading.  First, the user selects the photos on his computer. Then he clicks &#8220;Send all&#8221; and as the photos are sent, a table below is populated with the photos and details. Drag and drop is applied to the rows of the table, it allowing users to easily reorder the photos. The description of each photo can be modified using a simple text input and YUI&#8217;s XMLHttpRequest utility, <a href="http://developer.yahoo.com/yui/connection/">Connection Manager</a>.</p>
<p>See the video below for a demonstration:
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/P44wFOFi-Eo&#038;hl=fr_FR&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/P44wFOFi-Eo&#038;hl=fr_FR&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<h3>TabView</h3>
<p>As there is a lot of information to display in a classified detail, we used <a href="http://developer.yahoo.com/yui/tabview/">TabView</a> to design the page.  The CSS personalization capabilities of TabView allow us to integrate it perfectly with the rest of the page from a design perspective. Tabview also saves us bandwidth as only interested users click on all the tabs &mdash; TabView has support for <a href="http://developer.yahoo.com/yui/examples/tabview/datasrc.html" title="YUI Library Examples: TabView Control: Getting Content from an External Source">lazyloading Tab content</a>, and that pattern works well for us here.</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/iDc00l2mO6Y&#038;hl=fr_FR&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/iDc00l2mO6Y&#038;hl=fr_FR&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.yuiblog.com/blog/2010/03/02/using-yui-at-etreproprio/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fybit Riatrax4Js: Program YUI in Java</title>
		<link>http://www.yuiblog.com/blog/2010/02/02/fybit-riatrax4js/</link>
		<comments>http://www.yuiblog.com/blog/2010/02/02/fybit-riatrax4js/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 19:08:41 +0000</pubDate>
		<dc:creator>Erol Koç</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[In the Wild]]></category>
		<category><![CDATA[YUI Implementations]]></category>
		<category><![CDATA[fybit]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[ria]]></category>
		<category><![CDATA[yui]]></category>

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

About the Author:
			Erol Koç is a co-founder of Fybit, a Switzerland
			based startup company. Before joining Fybit, he worked as a software architect for a security company
			where he was the tech lead for the product&#8217;s web frontend. He has an MS degree in
			computer science from ETH Zurich. During an internship
			at IBM, he contributed to the Eclipse [...]]]></description>
			<content:encoded><![CDATA[<div class="interview">
<div class="intro">
<p><img align="right" hspace="10" vspace="5" src="http://yuiblog.com/assets/ekoc.jpg" alt="Erol Koç"><em><strong>About the Author:</strong><br />
			Erol Koç is a co-founder of <a href="http://www.fybit.com/">Fybit</a>, a Switzerland<br />
			based startup company. Before joining Fybit, he worked as a software architect for a security company<br />
			where he was the tech lead for the product&#8217;s web frontend. He has an MS degree in<br />
			computer science from <a href="http://www.ethz.ch">ETH Zurich</a>. During an internship<br />
			at IBM, he contributed to the Eclipse project.</em></strong>
		</p>
</div>
</div>
<h3>Fybit Riatrax4Js: Write YUI in Java</h3>
<p>YUI is not only a fantastic JavaScript library, it is also a great community. Developers<br />
		contribute to YUI and allow others to benefit from it. Now,<br />
		<a href="http://www.fybit.com/">Fybit</a> joins the YUI community with<br />
		<a href="http://www.fybit.com/products/riatrax4js/">Riatrax4Js</a>, a<br />
		toolkit for rich internet applications (RIAs) based on YUI.<br />
		Riatrax4Js allows you to program RIAs in plain Java and automatically translates your code<br />
		to JavaScript, using YUI as a foundation layer. With YUI being available<br />
		from <a href="http://www.yuiblog.com/blog/2010/01/05/enterprise-web-developer/">Python</a>, Java and JavaScript,<br />
		one fourth of all developers get access to YUI.<br />
		And <a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html">with 18%</a>,<br />
		Fybit&#8217;s Riatrax4Js covers the largest part, consisting of Java developers.
		</p>
<h3>Riatrax4Js: Java benefits, powerful YUI widgets</h3>
<p>We just launched the Riatrax4Js alpha version with the goal of easing<br />
		development of YUI-based RIAs. Riatrax4Js combines the advantages of Java<br />
		with the extensive widget set and controls of YUI. Consequently, you get the<br />
		benefits and comfort of Java programming such as:
		</p>
<ul>
<li>Type safety</li>
<li>Inheritance</li>
<li>IDE support (<a href="http://www.eclipse.org/">Eclipse</a>, <a href="http://netbeans.org/">NetBeans</a>, &#8230;)</li>
<li>Debugging</li>
<li>Test tools like <a href="http://www.junit.org/">JUnit</a></li>
<li>Access to many 3rd party libraries</li>
</ul>
<p>And you all know how fantastic YUI is:</p>
<ul>
<li>Many powerful widgets</li>
<li>Compatible with all major browsers</li>
<li>Great performance</li>
<li>Yahoo! experts develop YUI</li>
</ul>
<p>Add up the advantages of Java and YUI, you get the properties of<br />
		Riatrax4Js. Riatrax4Js is not a server-side framework. It compiles Java<br />
		to JavaScript, leveraging the standard Java compiler to give you unlimited<br />
		scalability and speed. Moreover, Riatrax4Js allows you to connect<br />
		your YUI frontend to the web server and backend with a simple annotation-based<br />
		remoting mechanism.</p>
<h3>A simple example: Show the server&#8217;s time on a button&#8217;s label when clicked</h3>
<p>This section walks you through a simple example that is available for<br />
		<a href="http://www.fybit.com/demo/">download</a> from our website.<br />
		Riatrax4Js apps consist of regular Java classes that can use the Java version<br />
		of YUI that ships with Riatrax4Js. Here is how simple that is:
		</p>
<pre>
@MainPanel(name="index")
public class DemoPanel {

	@Services(implementation=TimeServiceImpl.class)
	protected static TimeService service;

	public DemoPanel () {
		final Button syncButton = Button.create("syncButton");
		syncButton.addClickListener(new Listener() {
			public void perform () {
				syncButton.setConfLabel("Sync: " + service.getTime());
			}
		});
	}
}
		</pre>
<p>The code starts with a <code>@MainPanel</code> annotation to allow Riatrax4Js to<br />
		find the entry point to your program. Next, there is a field <code>service</code><br />
		that is annotated with the <code>@Services</code> annotation. Thanks to this annotation,<br />
		the server can be called to get the time (or any other value/object you<br />
		want to use on the client). It does not have to be explicitly initialized,<br />
		Riatrax4Js does the dirty work for you and ensures that the client and server<br />
		parts are connected by injecting an appropriate proxy. A YUI Button is then<br />
		created by replacing an existing HTML button &#8220;syncButton&#8221; of your HTML page. A click listener<br />
		which invokes the time service on the server is attached to the button. This<br />
		is a synchronous (i.e., blocking) call. Async calls are just as easy:<br />
		The generated proxies contains an async variant<br />
		of each method in the interface that can be readily used. Here is the corresponding<br />
		HTML page for the code:
		</p>
<pre>
&lt;html&gt;
	&lt;head&gt;
		&lt;meta http-equiv="content-type" content="text/html; charset=UTF-8"&gt;
		&lt;title&gt;Fybit New&lt;/title&gt;
		&lt;script type="text/javascript" src="codebase/app-index.js"&gt;&lt;/script&gt;
	&lt;/head&gt;

	&lt;body class="yui-skin-sam"&gt;
		&lt;button id="syncButton"&gt;Synchronous Call&lt;/button&gt;
	&lt;/body&gt;
&lt;/html&gt;
		</pre>
<p>
		The most important line is the script tag at the beginning. It includes a<br />
		single JavaScript file app-index.js where &#8220;index&#8221; is the name given in the<br />
		<code>@MainPanel</code> annotation above. In the HTML body, you can find<br />
		the aforementioned HTML button. Riatrax4Js wraps the YUI Button over this button.
		</p>
<p><img src="http://yuiblog.com/assets/buttons.jpg" alt="A YUI button with server invocation"></img></p>
<p>
		When you compile the application, Riatrax4Js analyses the source files and generates the file app-index.js<br />
		consisting of the Java classes needed in the browser translated to JavaScript<br />
		as well as the necessary YUI JavaScript code. Unlike with native YUI, you don&#8217;t<br />
		have to care about YUI dependencies or which YUI files to include &mdash; Riatrax4Js<br />
		includes them automatically!
		</p>
<p>
		This is just a small excerpt from a <a href="http://www.fybit.com/demo/">larger demo</a>.<br />
		The full demo also explains how to call the server asynchronously and how to use other<br />
		YUI widgets (text editors, auto-completion, menus etc.). Apart from generating web<br />
		application from scratch, using Riatrax4Js you can improve existing web applications<br />
		easily with interactive features by wrapping ordinary HTML elements with YUI elements.
		</p>
<p><a href="http://www.fybit.com/Riatrax4JsNew/showcase.html"><br />
			<img src="http://yuiblog.com/assets/showcase.jpg" alt="The full Fybit sowcase" width="510"></img><br />
		</a></p>
<h3>Beyond demos: &#8220;PublicationManager&#8221; written with Riatrax4Js</h3>
<p>We used Riatrax4Js to develop a user-friendly web application to<br />
		manage publications for a research group at a university in Switzerland.<br />
		This application facilitates the process of entering and modifying publication<br />
		records and it has been put into operation in November 2009. The<br />
		<a href="http://www.fybit.com/demo/">PublicationManager</a> features YUI<br />
		dialogs, sortable and resizable tables, paginators and auto-completion. The records<br />
		entered by the users are stored in a database and can be edited and complemented with<br />
		files with just a few clicks.</p>
<p><a href="http://www.fybit.com/PaperManager/"><br />
			<img src="http://yuiblog.com/assets/publicationmanager.jpg" alt="Publication manager for a research group at ETH Zurich" width="510"></img><br />
		</a></p>
<h3>Security</h3>
<p>
		Riatrax4Js is designed to make applications as secure as possible by default.<br />
		But because Riatrax4Js uses JavaScript, applications are as hard to secure as<br />
		any other dynamic web app. Fybit offers separate extension to Riatrax4Js,<br />
		<a href="http://www.fybit.com/products/riatrax-security/">Riatrax Security</a>.<br />
		It is based on Riatrax4Js&#8217;s<br />
		program code analysis and secures the application by filtering invalid or<br />
		malicious content and blocking it before it reaches your code and/or application server.<br />
		Fybit Riatrax Security is also configured with Java annotations.
		</p>
<h3>Want to try?</h3>
<p>
		The alpha version of Riatrax4Js is currently <a href="http://www.fybit.com/">available on our web site</a> to registered users.<br />
		It&#8217;s great to see the user base of Riatrax4Js grow and be used by developers at this stage.
		</p>
<p>
		Fybit&#8217;s goal is to make Riatrax4Js the best Java RIA toolkit available and support<br />
		it in the long run. We believe that the YUI community and YUI developers can<br />
		give us important feedback about Riatrax4Js. We are excited to hear your questions<br />
		and suggestions, e.g.
		</p>
<ul>
<li>How can we improve Riatrax4Js?</li>
<li>For what kind of projects would you consider Riatrax4Js?</li>
<li>What is the best way for us to distribute the product?</li>
</ul>
<p>
		As Fybit is a small startup company, we appreciate everyone who wants to<br />
		contribute to Riatrax4Js to make it the number one RIA framework. Just<br />
		<a href="http://www.fybit.com/about-us/contact/">drop us a line</a> if<br />
		you are interested or want to know more.
		</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yuiblog.com/blog/2010/02/02/fybit-riatrax4js/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Implementation Focus: Enterprise Web Developer, a Python/YUI Framework</title>
		<link>http://www.yuiblog.com/blog/2010/01/05/enterprise-web-developer/</link>
		<comments>http://www.yuiblog.com/blog/2010/01/05/enterprise-web-developer/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 14:20:37 +0000</pubDate>
		<dc:creator>Rob Tweed</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[YUI Implementations]]></category>
		<category><![CDATA[Enterprise Web Developer]]></category>
		<category><![CDATA[EWD]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[Rob Tweed]]></category>

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

About the author: Rob Tweed is the founder and co-director of M/Gateway Developments Ltd., which is based in the UK.  He has been working in application development since the early 1980s.  Much of his work has focused around healthcare IT, which is consistently challenging, characterized by large, complex datasets, high security and performance [...]]]></description>
			<content:encoded><![CDATA[<div class="interview">
<div class="intro">
<p><img src="http://yuiblog.com/assets/rob_tweed-20100104-162331.jpg" align="right" hspace="10" vspace="5"><em><strong>About the author</strong>: Rob Tweed is the founder and co-director of <a href="http://www.mgateway.com/">M/Gateway Developments Ltd.</a>, which is based in the UK.  He has been working in application development since the early 1980s.  Much of his work has focused around healthcare IT, which is consistently challenging, characterized by large, complex datasets, high security and performance requirements, and limited budgets.  M/Gateway originally developed the Web gateway technology for database vendor InterSystems&#8217; core database product <a href="http://www.intersystems.com/cache/index.html">Cach&eacute;</a>.  M/Gateway&#8217;s current customers are mainly in the healthcare and financial services sectors.  Some run internal intranet applications, but some, such as <a href="http://www.slideshare.net/george.james/missioncritical-ajaxmaking-test-ordering-easier-and-faster-at-quest-diagnostics?type=powerpoint">Quest Diagnostics</a>, run their applications across the open Internet for their customers in the US.</em></p>
</div>
</div>
<h3><a href="http://www.mgateway.com/ewd.html">Enterprise Web Developer</a> (EWD), a Python/YUI framework</h3>
<p>Since the early days in 1996, I wanted people to be able to use web technologies as a user interface to applications that they&#8217;d previously have considered using Client/Server or some other GUI technology to create.  It seemed to be to be a technology that had the potential to be heavily automated so that developers could focus on expressing <em>what</em> they wanted to do rather than <em>how</em> to achieve it.</p>
<p>The thing that has always dismayed and surprised me is how the industry has not embraced this philosophy.  Whilst there is no shortage of web/Ajax frameworks out there &#8211; there seems to be a new one every week &#8211; they all have a common theme: the notion that a web/Ajax application is primarily a programming issue.  By contrast I&#8217;ve been firmly of the view that by building a framework that was first and foremost design-focused, the programming aspects could be potentially automated to such a degree that the actual programming required in even a complex healthcare application should be able to be reduced to almost trivial levels.  That&#8217;s been the design goal of our EWD and it proves that such an approach is practical, feasible and highly beneficial.</p>
<h3 id="why_python_and_yui">Why Python and YUI?</h3>
<p>We&#8217;ve ported EWD to the free Open Source NoSQL database <a href="http://en.wikipedia.org/wiki/GT.M">GT.M</a> and Chris Munt, M/Gateway co-founder, has developed a number of language bindings that EWD can use.  Our recent slidecast series (described below) was based around his Python binding because it&#8217;s such a popular language these days &#8211; <a href="http://python.dzone.com/articles/python-use-45-google-app">recent reports</a> suggest that it has grown in use by 45% since April 2008.  However, you could use EWD just as easily with Ruby or Java.  </p>
<p>Our <a href="http://www.mgateway.com/ewdDemo.html">screencast series</a> focuses on EWD/YUI integration for several reasons:</p>
<ul>
<li>YUI provides a very powerful and highly functional and usable set of UI widgets</li>
<li>unlike many of the Javascript frameworks, YUI is not an &#8220;all or nothing&#8221; environment, so you can mix and match YUI components with your own</li>
<li>YUI is a free Open Source library so in combination with EWD and GT.M running on a Linux platform, the demo is based on a completely free Open Source stack</li>
<li>it has the Yahoo! and Douglas Crockford pedigree: what more need you say!</li>
</ul>
<h3 id="you_use_xml_syntax_to_incorporate_yui_what_advantages_does_this_offer">EWD uses XML syntax to incorporate YUI.  What advantages does this offer?</h3>
<p>Making EWD work with YUI was pretty straightforward, but it soon became clear to me that the average developer faced quite a few obstacles when adopting such a Javascript framework for their UI development.  Frameworks are complex environments, requiring a lot of detailed knowledge of pretty advanced Javacript, there&#8217;s a big learning curve and there&#8217;s a lot of &#8220;devil in the detail&#8221;.  Furthermore, that complex and verbose Javascript requires downstream maintenance, often by someone other than the original developer.  Additionally, for me, they presented yet another example of how the industry&#8217;s solution to web/Ajax application development was moving further towards programming and away from the skillsets of designers.  </p>
<p>From the earliest days of EWD I&#8217;d ensured that it was user-extensible, allowing you to encapsulate functionality and behaviour as XML-based &#8220;custom tags&#8221;, and they proved to be a perfect solution to incorporating YUI. The YUI custom tags I&#8217;ve demonstrated are therefore a custom extension of EWD.  The YUI custom tags not only generate all the Javascript needed by the corresponding widget, they also manage the destruction of the widget at the correct time, and include optimised &#8220;just in time&#8221; loading of the correct .js and .css files, leaving the developer to not have to worry about all that up-front configuration stuff.  Another key feature of XML tags is that they are inherently nestable, and usually that&#8217;s exactly what you need to do with YUI widgets: menus and datatables nested inside tab-panels for example.  So the real advantages are that the developer can express <em>what</em> he/she wants to do in just a few intuitively named and laid out custom tags.  Not only does it make development quick and simple, but downstream maintenance also becomes simple too (and remember that one of the major costs and overheads of a big, mission-critical application is maintenance).</p>
<p>A good example is the use of TabView widgets.  In EWD these can be described by a simple, intuitive (and therefore highly maintainable) set of nested XML Custom tags, eg:</p>
<pre>
&lt;yui:TabView&gt;
    &lt;yui:Tab label="By Artist" active="true" dataSrc="selectCDXArtist.ewd" /&gt;
    &lt;yui:Tab label="By Title" active="false" dataSrc="selectCDXTitle.ewd" /&gt;
&lt;/yui:TabView&gt;
</pre>
<p>The <i>yui:TabView</i> Custom Tag&#8217;s <i>tag processor</i> is invoked by EWD&#8217;s compiler when it encounters an instance of this tag, and it generates the run-time code that will send the appropriate YUI TabView Javascript and associated HTML markup to the browser.</p>
<h3>EWD instructional series</h3>
<p>We&#8217;ve done a series of <a href="http://www.mgateway.com/ewdDemo.html">screencasts</a> to introduce EWD.  Here is Part One:</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/j_DEP7q1WsM&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/j_DEP7q1WsM&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>The goal of the <a href="http://www.mgateway.com/ewdDemo.html">screencasts</a> was to demonstrate the extreme level of automation of EWD when used to its full potential.  I also wanted to demonstrate how, in EWD, you&#8217;re very much describing what you&#8217;re wanting to achieve, leaving EWD to do all the <em>how</em> work and to handle all the day-to-day things that are essential to a web application but that can and should be automated, eg session management, security management etc.  I hope when people watch the videos they see how little programming has been left for a programmer to do: it&#8217;s basically fetching data from the database, validating form fields against a database, and saving data back to a database.</p>
<p>They always say a picture is worth a thousand words, and I think a video is even more potent.  Seeing is believing, and there&#8217;s nothing like being shown how a tool can be used by the guy who designed and wrote it!</p>
<p>I chose to explore a set of typical UI interactions for an average application that could be demonstrated in the space of about an hour.  I also wanted to demonstrate how nesting of the UI components was possible using both the inherent nesting of YUI custom tags and EWD&#8217;s &#8220;fragment&#8221;-based Ajax architecture.  The demo covers logging into an application, a main menu, tab panels for choosing the action required and a query against the database whose results are presented in a DataTable.  Hopefully the fact that I&#8217;ve been able to demonstrate how all that functionality can be created in just over an hour shows the power and benefit of EWD as a development framework. And in terms of maintainability, the entire application I demonstrate is described in just 134 lines of simple HTML/XML markup and only 78 lines of straightforward Python code!</p>
<h3>Where can people get EWD to try it out for themselves?</h3>
<p>The quickest and simplest way to get a fully-working EWD system up and running is to use our free <a href="http://gradvs1.mgateway.com/main/index.html?path=mdb/mdbDownload">M/DB Installer</a>.  We&#8217;ve done a </p>
<p><a href="http://www.youtube.com/watch?v=BxC7Yvsmlfs">screencast</a> for this too.</p>
<p>At present the EWD/YUI Custom Tag library isn&#8217;t generally available, but we&#8217;re hoping to be able to release it soon.</p>
<p>We also have a <a href="http://groups.google.co.uk/group/enterprise-web-developer-community">forum for EWD users</a> that people are very welcome to join.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yuiblog.com/blog/2010/01/05/enterprise-web-developer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>YUI 2.7.0 on InsideLine.com</title>
		<link>http://www.yuiblog.com/blog/2009/12/14/yui-2-7-0-on-insideline-com/</link>
		<comments>http://www.yuiblog.com/blog/2009/12/14/yui-2-7-0-on-insideline-com/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 19:37:18 +0000</pubDate>
		<dc:creator>Réal Deprez</dc:creator>
				<category><![CDATA[In the Wild]]></category>
		<category><![CDATA[YUI Implementations]]></category>
		<category><![CDATA[Edmunds]]></category>
		<category><![CDATA[InsideLine.com]]></category>
		<category><![CDATA[Réal Deprez]]></category>

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

About the Author: Réal Deprez is the frontend architect at Edmunds.com, the premier resource for automotive information, based in Santa Monica. A Maine native and Tulane graduate, Réal has been working in frontend engineering professionally for five years.


Here at Edmunds (Edmunds.com) we just launched a redesign of
Inside Line (InsideLine.com), our automotive enthusiast web site, and [...]]]></description>
			<content:encoded><![CDATA[<div class="interview">
<div class="intro">
<p><strong>About the Author:</strong> <em><img src="http://yuiblog.com/assets/real-deprez.jpg" align="right" hspace="10" vspace="5"><a href="http://www.linkedin.com/in/realdeprez">Réal Deprez</a> is the frontend architect at <a href="http://www.edmunds.com/">Edmunds.com</a>, the premier resource for automotive information, based in Santa Monica. A Maine native and Tulane graduate, Réal has been working in frontend engineering professionally for five years.</em></p>
</div>
</div>
<p>Here at <a href="http://www.edmunds.com/">Edmunds</a> (<a href="http://www.edmunds.com/">Edmunds.com</a>) we just launched a redesign of<br />
<a href="http://www.insideline.com/" title="Inside Line: News, Road Tests, Auto Shows, Car Photos and Videos">Inside Line (InsideLine.com)</a>, our automotive enthusiast web site, and we are using the <a href="http://developer.yahoo.com/yui/" title="YUI Library">YUI JavaScript library</a> extensively.</p>
<p>Some of the YUI utilities &amp; widgets used on Inside Line:</p>
<ul>
<li>Yahoo/Dom/Event</li>
<li>Animation Utility</li>
<li>Connection Manager</li>
<li>ImageLoader</li>
<li>JSON</li>
<li>Selector</li>
<li>Carousel</li>
<li>TabView</li>
</ul>
<p>We (the Frontend team) started out with YUI 2.7.0 JavaScript core and built our own JavaScript user interface library on top of it to encapsulate site-specific components and functionality. Our library takes advantage of YUI’s core utilities, including <a href=" http://developer.yahoo.com/yui/dom/">Dom</a>, <a href="http://developer.yahoo.com/yui/event" title="YUI Library">Event</a>, <a href="http://developer.yahoo.com/yui/connection/" title="YUI 2: Connection Manager">Connection Manager</a>, and <a href="http://developer.yahoo.com/yui/animation" title="YUI Library">Animation</a>.</p>
<p>We are using Dom and Event extensively to handle DOM interaction, event listeners and custom event handling. The YUI Connection Manager is handling all of our Ajax implementations, including our custom search widgets. We are also using many of the YUI widgets on Inside Line, including <a href="http://developer.yahoo.com/yui/tabview/" title="YUI 2: TabView">TabView</a> and <a href="http://developer.yahoo.com/yui/carousel/" title="YUI 2: Carousel Control">Carousel</a>, with custom skins. The <a href="http://developer.yahoo.com/yui/imageloader/" title="YUI 2: ImageLoader">YUI ImageLoader</a> helped us improve page performance and meet our strict performance requirements.</p>
<p>We chose YUI because of its great documentation, thorough testing, and the scope and depth of its offerings. The library is easy to learn, understand, and implement. The modularity of the system fits in well with our design principles, and the API and custom events make it extremely extensible and easy to integrate. </p>
<h3>Some Highlights</h3>
<p>Multimedia Spotlight (tabview, carousel) from <a href="http://www.insideline.com/" title="Inside Line: News, Road Tests, Auto Shows, Car Photos and Videos">InsideLine.com</a>:</p>
<p><a href="http://www.insideline.com/" title="Inside Line: News, Road Tests, Auto Shows, Car Photos and Videos"><img src="http://yuiblog.com/assets/il-mm-spotlight-20091211-113200.png" alt="InsideLine.com multimedia spotlight."></a></p>
<p><a href="http://www.insideline.com/audi/s4/2010/2010-audi-s4-full-test-and-video.html" title="2010 Audi S4 Full Test and Video">Image and Video Galleries</a> (core, JSON and Carousel):</p>
<p><a href="http://www.insideline.com/audi/s4/2010/2010-audi-s4-full-test-and-video.html" title="2010 Audi S4 Full Test and Video"><img src="http://yuiblog.com/assets/il-gallery-20091211-113030.png" alt="InsideLine.com gallery interface."></a></p>
<p><a href="http://www.insideline.com/search/?q=bmw">Ajax Search Widgets</a> (Dom, Event, Connection Manager):</p>
<p><a href="http://www.insideline.com/search/?q=bmw" title="Search"><img src="http://yuiblog.com/assets/il-search-20091211-112649.png" alt="InsideLine.com search interface."></a></p>
<p><em><strong>Do you have a YUI Imlementation you&#8217;d like to share on YUIBlog?</strong>  <a href="http://www.yuiblog.com/blog/contribute/">Check out our contribution guidelines</a> &mdash; we&#8217;d love to hear from you.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.yuiblog.com/blog/2009/12/14/yui-2-7-0-on-insideline-com/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Implementation Focus: Pattern Insight</title>
		<link>http://www.yuiblog.com/blog/2009/12/04/pattern-insight/</link>
		<comments>http://www.yuiblog.com/blog/2009/12/04/pattern-insight/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 20:05:25 +0000</pubDate>
		<dc:creator>Erik Hinterbichler</dc:creator>
				<category><![CDATA[In the Wild]]></category>
		<category><![CDATA[YUI Implementations]]></category>
		<category><![CDATA[Pattern Insight]]></category>

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

Erik Hinterbichler (@ehinter)is the lead user interface designer/engineer for Pattern Insight, a technology startup based in Mountain View, CA. Erik is responsible for the UI and the usability of Pattern Insight&#8217;s products. He creates UI mockups and helps develop the web frontend for Pattern Insight&#8217;s flagship products, Code Insight and Log Insight. Erik has a [...]]]></description>
			<content:encoded><![CDATA[<div class="interview">
<div class="intro">
<p><em><a href="http://www.erikhinterbichler.com/" title="Erik Hinterbichler"><img src="http://yuiblog.com/assets/erikhinterbichler-20091204-113045.png" align="right" hspace="10" vspace="5" alt="Erik Hinterbichler of Pattern Insight."></a><a href="http://www.erikhinterbichler.com/" title="Erik Hinterbichler">Erik Hinterbichler</a> (<a href="http://twitter.com/ehinter" title="Follow Erik Hinterbichler on Twitter">@ehinter</a>)is the lead user interface designer/engineer for <a href="http://patterninsight.com/" title="Pattern Insight">Pattern Insight</a>, a technology startup based in Mountain View, CA. Erik is responsible for the UI and the usability of Pattern Insight&#8217;s products. He creates UI mockups and helps develop the web frontend for Pattern Insight&#8217;s flagship products, Code Insight and Log Insight. Erik has a graduate degree in HCI from the University of Illinois at Urbana-Champaign, the university from which Pattern Insight was originally founded. He also holds a B.A. in Computer Science and Math from Dartmouth College.</em></p>
</div>
</div>
<p><img src="http://yuiblog.com/assets/patterninsight-patchminer-20091204-115202.png"></p>
<h3>About Pattern Insight</h3>
<p>Pattern Insight provides powerful solutions to index, search, and analyze semi-structured data. By &#8220;semi-structured&#8221; we mean any type of system data &mdash; code, logs, scripts, and more.</p>
<p>Currently we have two major software suites: &#8220;Code Insight&#8221; and &#8220;Log Insight.&#8221;</p>
<p><img src="http://yuiblog.com/assets/patterninsight-patchminer-20091204-115410.png"></p>
<p>Code Insight provides several unique capabilities for analyzing source code. At its core is a lightning-fast fuzzy snippet search which scales to billions of lines of code. With snippet search, you can paste in a snippet of code and find all similar snippets across your entire code base, even tolerating variable name changes or line insertions/deletions. Built on top of this fuzzy search capability is Patch Miner, an application for locating buggy code that needs to be fixed. You can input a bug fix and Patch Miner will find all other locations where that bug fix should be applied. Finally, we have Pattern Miner, a copy-paste and duplication detector. Pattern Miner can help you refactor your code base by automatically finding duplicated code, even when variable names have changed. It can also detect IP leaks across different codebases; e.g., if you use both open source and proprietary code and want to prevent code from flowing between them.</p>
<p><img src="http://yuiblog.com/assets/pattern-insight-patchminer-20091204-114849.png"></p>
<p>Log Insight is our next-generation log search and analysis product. Log Insight can index TBs of system data and provide sub-second performance for complicated search queries. Furthermore, it enables the creation of persistent signatures that can be used to scan new or archived data for instant matches. Log Insight can also automatically extract common patterns (e.g. for failures) that can then be codified as signatures back to the Pattern Insight engine.</p>
<h3>The Importance of UI</h3>
<p>We recognize that possessing great underlying technology is not enough to create a successful product. A good UI is absolutely essential if we want users to be able to see the value of our technology and take full advantage of it. Thus the requirements for our user interfaces drive much of the development of our backend technology.</p>
<p>As one example, a product like Patch Miner is heavily dependent on the UI to shape it. At its highest level, Patch Miner is a fairly abstract concept: &#8220;find all the places where a bug fix needs to be applied in my code base.&#8221; Turning this into a concrete UI provides quite a few unique design challenges. For instance, what exactly is a &#8220;bug fix&#8221; and what is the best way for a user to input it? And once Patch Miner has found a bug somewhere else, what&#8217;s the best way to present the result to the user? Solving these user experience problems has provided the road map for the development of the core Patch Miner application.</p>
<h3>Using YUI at Pattern Insight</h3>
<p>The UIs for Code Insight and Log Insight are fully web-based, and we are using <a href="http://developer.yahoo.com/yui/" title="YUI Library">YUI</a> heavily to improve user experience. When we were initially trying to decide which JS framework to use, there were two things that sold us on YUI: the extensive documentation and the wide variety of ready-made components and widgets. We ended up making use of almost all of them: <a href="http://developer.yahoo.com/yui/animation/">animation</a>, <a href="http://developer.yahoo.com/yui/autocomplete/" title="YUI Library">autocomplete</a>, <a href="http://developer.yahoo.com/yui/button/" title="YUI Library">button</a>, <a href="http://developer.yahoo.com/yui/calendar/" title="YUI Library">calendar</a>, <a href="http://developer.yahoo.com/yui/connection/" title="YUI Library">connection manager</a>, <a href="http://developer.yahoo.com/yui/container/" title="YUI Library">container</a>, <a href="http://developer.yahoo.com/yui/cookie" title="YUI Library">cookie</a>, <a href="http://developer.yahoo.com/yui/datasource/" title="YUI Library">datasource</a>, <a href="http://developer.yahoo.com/yui/history/" title="YUI Library">history</a>, <a href="http://developer.yahoo.com/yui/json/" title="YUI Library">JSON</a>, <a href="http://developer.yahoo.com/yui/slider/" title="YUI Library">slider</a>, <a href="http://developer.yahoo.com/yui/tabview/" title="YUI Library">tabview</a>, <a href="http://developer.yahoo.com/yui/treeview/" title="YUI Library">treeview</a>, <a href="http://developer.yahoo.com/yui/yuiloader/" title="YUI Library">loader</a>, <a href="http://developer.yahoo.com/yui/logger/" title="YUI Library">logger</a>, <a href="http://developer.yahoo.com/yui/yuitest/" title="YUI Library">test</a>, and <a href="http://developer.yahoo.com/yui/base/" title="YUI Library">CSS base</a>/<a href="http://developer.yahoo.com/yui/reset/" title="YUI Library">reset</a>/<a href="http://developer.yahoo.com/yui/fonts/" title="YUI Library">fonts</a>/<a href="http://developer.yahoo.com/yui/grids/" title="YUI Library">grids</a>.</p>
<h3>Maintaining High Performance in a Rich Application</h3>
<p>Our main strategy in keeping our rich applications performant has been to develop our own web services API which we use to load data on-demand as much as possible. The built-in support for on-demand loading in YUI widgets like treeview has made this much easier for us. We also made the decision to stop supporting IE 6. This has enabled us to use much more sophisticated Javascript that modern browsers can handle but IE 6 can&#8217;t.</p>
<h3>Most Interesting YUI Implementation Features</h3>
<p>We&#8217;ve developed quite a few of our own custom widgets, including a multi-select list with filtering capability and an auto-resizing textbox that grows and shrinks based on user input. Things like auto-resizing might seem minor, but I think most users would agree that small things like this are often the difference between pain and joy when using an interface.
</p>
<p>Additionally, purely from a development perspective, our use of the YUI loader makes it very easy to quickly write new pages. We can effortlessly drop in anything we want on a given page, either standard YUI widgets or our own. Essentially, at the top of each page we just need to call our own &#8220;loadModules&#8221; function and give it the list of components we want to use, plus a callback function:</p>
<pre>YAHOO.PI.loadModules(['treeview', 'PI.SelectableList'], function() { …</pre>
<p>We are still using <a href="http://developer.yahoo.com/yui/">YUI 2</a>, but this works similarly to the new <code>YUI().use</code> function in <a href="http://developer.yahoo.com/yui/3/">YUI 3</a>.</p>
<h3>What&#8217;s Next?</h3>
<p>We are currently hard at work on Code Insight 1.6, our next major release, which will come with some impressive improvements to Patch Miner. We are also actively developing the next version of Log Insight, which will include a brand new, highly sophisticated UI. Among the new features are a web-based signature editor with live syntax highlighting, autocompletion, and error checking.</p>
<p>If you&#8217;re interested in learning more about us, you can read about our products and check out some videos at our website: <a href="http://www.patterninsight.com">http://www.patterninsight.com</a>. Also, feel free to email us at info@patterninsight.com.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yuiblog.com/blog/2009/12/04/pattern-insight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Implementation Focus: OCLC/WorldCat</title>
		<link>http://www.yuiblog.com/blog/2009/11/19/yui-on-oclc-and-worldcat/</link>
		<comments>http://www.yuiblog.com/blog/2009/11/19/yui-on-oclc-and-worldcat/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 18:33:56 +0000</pubDate>
		<dc:creator>Fiz Mohamed</dc:creator>
				<category><![CDATA[In the Wild]]></category>
		<category><![CDATA[YUI Implementations]]></category>
		<category><![CDATA[fiz]]></category>
		<category><![CDATA[oclc]]></category>
		<category><![CDATA[worldcat]]></category>
		<category><![CDATA[yui]]></category>

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

Fiz Mohamed 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 [...]]]></description>
			<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 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 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 href="http://developer.yahoo.com/yui/">YUI</a> while discussing <a 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 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 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 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 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 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 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 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 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 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 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>
]]></content:encoded>
			<wfw:commentRss>http://www.yuiblog.com/blog/2009/11/19/yui-on-oclc-and-worldcat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Implementation Focus: Adify</title>
		<link>http://www.yuiblog.com/blog/2009/11/11/implementation-focus-adify/</link>
		<comments>http://www.yuiblog.com/blog/2009/11/11/implementation-focus-adify/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 18:13:06 +0000</pubDate>
		<dc:creator>Jenny Han Donnelly</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[YUI Implementations]]></category>

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

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>
			<content:encoded><![CDATA[<div class="interview">
<div class="intro"><em></p>
<p>Former Yahoo! Levi Wolfe is the Manager of UI Development at <a 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 href="http://developer.yahoo.com/yui/fonts/">Fonts</a> and <a href="http://developer.yahoo.com/yui/grids/">Grids</a> CSS components (we haven&#8217;t quite worked up to <a 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 href="http://developer.yahoo.com/yui/docs/YAHOO.util.Dom.html#method_addClass">Dom.addClass()</a>, <a href="http://developer.yahoo.com/yui/docs/YAHOO.util.Dom.html#method_getElementsByClassName">Dom.getElementsByClassName()</a>, <a href="http://developer.yahoo.com/yui/docs/YAHOO.util.Event.html#method_stopEvent">Event.stopEvent()</a>, and <a 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 href="http://developer.yahoo.com/yui/datasource/">DataSource</a> to power <a href="http://developer.yahoo.com/yui/charts">Charts</a> and <a 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 href="http://developer.yahoo.com/yui/colorpicker/">ColorPicker</a> control to create a highly customizable <a 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 href="http://developer.yahoo.com/yui/container/panel/">YUI Panel</a> with an ASP.NET <a 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 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 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 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 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 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>
			<wfw:commentRss>http://www.yuiblog.com/blog/2009/11/11/implementation-focus-adify/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Implementation Focus: timr</title>
		<link>http://www.yuiblog.com/blog/2009/10/12/timr/</link>
		<comments>http://www.yuiblog.com/blog/2009/10/12/timr/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 15:31:32 +0000</pubDate>
		<dc:creator>Jenny Han Donnelly</dc:creator>
				<category><![CDATA[YUI Implementations]]></category>

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

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 &#8220;The whole is [...]]]></description>
			<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 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 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 href="http://developer.yahoo.com/yui/container/">Container family of components</a> and use the <a 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 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 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 href="http://developer.yahoo.com/yui/menu/#usingcontextmenu">Context Menu</a> and <a 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 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 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>
			<wfw:commentRss>http://www.yuiblog.com/blog/2009/10/12/timr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Implementation Focus: Short Reckonings</title>
		<link>http://www.yuiblog.com/blog/2009/07/31/implementation-focus-short-reckonings/</link>
		<comments>http://www.yuiblog.com/blog/2009/07/31/implementation-focus-short-reckonings/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 16:52:23 +0000</pubDate>
		<dc:creator>Jenny Han Donnelly</dc:creator>
				<category><![CDATA[YUI Implementations]]></category>

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

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.
Mika&#235;l has worked in software development for the past 15 years. While [...]]]></description>
			<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 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 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 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 href="http://developer.yahoo.com/yui/yahoo/#lang">Lang</a>, <a href="http://developer.yahoo.com/yui/dom/">Dom</a>, <a href="http://developer.yahoo.com/yui/connection/">Connection</a>, <a href="http://developer.yahoo.com/yui/event/">Event &amp; CustomEvent</a>, <a href="http://developer.yahoo.com/yui/container/">Overlay &amp; Dialog</a>, <a href="http://developer.yahoo.com/yui/tabview/">TabView</a>, <a href="http://developer.yahoo.com/yui/datatable/">DataTable</a>, <a href="http://developer.yahoo.com/yui/calendar/">Calendar</a>, <a href="http://developer.yahoo.com/yui/autocomplete/">AutoComplete</a>, <a 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 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 href="http://developer.yahoo.com/yui/3/">YUI 3</a> will be an exciting experience!</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.yuiblog.com/blog/2009/07/31/implementation-focus-short-reckonings/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Implementation Focus: Squarespace</title>
		<link>http://www.yuiblog.com/blog/2009/06/09/implementation-focus-squarespace/</link>
		<comments>http://www.yuiblog.com/blog/2009/06/09/implementation-focus-squarespace/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 16:08:18 +0000</pubDate>
		<dc:creator>Jenny Han Donnelly</dc:creator>
				<category><![CDATA[YUI Implementations]]></category>

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

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