<?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/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>Data.Driven() &#187; W3C</title>
	<atom:link href="http://datadriven.com.au/category/w3c/feed/" rel="self" type="application/rss+xml" />
	<link>http://datadriven.com.au</link>
	<description>By reading this blog you&#039;ve signed an NDA.</description>
	<lastBuildDate>Thu, 09 Jun 2011 09:05:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<!-- podcast_generator="podPress/8.8" -->
		<copyright>&#xA9; </copyright>
		<managingEditor>marcosscaceres@gmail.com ()</managingEditor>
		<webMaster>marcosscaceres@gmail.com()</webMaster>
		<category></category>
		<itunes:keywords></itunes:keywords>
		<itunes:subtitle></itunes:subtitle>
		<itunes:summary>Marcos Caceres#039; ramblings about stuff</itunes:summary>
		<itunes:author></itunes:author>
		<itunes:category text="Society &amp; Culture"/>
		<itunes:owner>
			<itunes:name></itunes:name>
			<itunes:email>marcosscaceres@gmail.com</itunes:email>
		</itunes:owner>
		<itunes:block>No</itunes:block>
		<itunes:explicit>no</itunes:explicit>
		<itunes:image href="http://datadriven.com.au/wp-content/plugins/podpress/images/powered_by_podpress_large.jpg" />
		<image>
			<url>http://datadriven.com.au/wp-content/plugins/podpress/images/powered_by_podpress.jpg</url>
			<title>Data.Driven()</title>
			<link>http://datadriven.com.au</link>
			<width>144</width>
			<height>144</height>
		</image>
		<item>
		<title>Presentation Slides &#8211; Privacy of Geolocation Implementations</title>
		<link>http://datadriven.com.au/2010/07/presentation-slides-privacy-of-geolocation-implementations/</link>
		<comments>http://datadriven.com.au/2010/07/presentation-slides-privacy-of-geolocation-implementations/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 17:57:59 +0000</pubDate>
		<dc:creator>Marcos</dc:creator>
				<category><![CDATA[W3C]]></category>
		<category><![CDATA[Geolocation]]></category>
		<category><![CDATA[Privacy]]></category>

		<guid isPermaLink="false">http://datadriven.com.au/?p=221</guid>
		<description><![CDATA[Below are the slides for the presentation I gave at the W3C Workshop for Advanced Web APIs. See my other blog post for more information about the workshop and  the paper.

View more presentations from Me.

Share on Facebook
	
	var button = document.getElementById('facebook_share_link_221') &#124;&#124; document.getElementById('facebook_share_icon_221') &#124;&#124; document.getElementById('facebook_share_both_221') &#124;&#124; document.getElementById('facebook_share_button_221');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return [...]]]></description>
			<content:encoded><![CDATA[<p>Below are the slides for the presentation I gave at the W3C Workshop for Advanced Web APIs. See my other <a href="http://datadriven.com.au/2010/06/privacy-of-geolocation-implementations/">blog post</a> for more information about the workshop and  the paper.</p>
<div id="__ss_4754324" style="width: 425px;"><object id="__sse4754324" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=presentation-100714121816-phpapp02&amp;stripped_title=privacy-of-geolocation-implementations" /><param name="name" value="__sse4754324" /><param name="allowfullscreen" value="true" /><embed id="__sse4754324" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=presentation-100714121816-phpapp02&amp;stripped_title=privacy-of-geolocation-implementations" name="__sse4754324" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/mcaceres">Me</a>.</div>
</div>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdatadriven.com.au%2F2010%2F07%2Fpresentation-slides-privacy-of-geolocation-implementations%2F&amp;t=Presentation%20Slides%20-%20Privacy%20of%20Geolocation%20Implementations" id="facebook_share_link_221">Share on Facebook</a>
	<script type="text/javascript">
	var button = document.getElementById('facebook_share_link_221') || document.getElementById('facebook_share_icon_221') || document.getElementById('facebook_share_both_221') || document.getElementById('facebook_share_button_221');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_221') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://datadriven.com.au/2010/07/presentation-slides-privacy-of-geolocation-implementations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zip files and Encoding &#8211; I hate you.</title>
		<link>http://datadriven.com.au/2008/12/zip-files-and-encoding-i-hate-you/</link>
		<comments>http://datadriven.com.au/2008/12/zip-files-and-encoding-i-hate-you/#comments</comments>
		<pubDate>Sun, 07 Dec 2008 20:44:36 +0000</pubDate>
		<dc:creator>Marcos</dc:creator>
				<category><![CDATA[W3C]]></category>
		<category><![CDATA[Widgets]]></category>
		<category><![CDATA[character encodings]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[WebApps]]></category>
		<category><![CDATA[zip]]></category>

		<guid isPermaLink="false">http://datadriven.com.au/?p=112</guid>
		<description><![CDATA[I&#8217;ve written about some of the issues with depending on zip as a packaging format in the past. As people know, Web Apps is depending on Zip as the packaging format for Widgets.
Zip the good
Zip has a lot going for it. It is ubiquitous and dependable&#8230; so long as you don&#8217;t want to share files [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve written about some of the <a href="http://datadriven.com.au/2007/10/17/widgets-10-v2/">issues with depending on zip as a packaging</a> format in the past. As people know, <a href="http://www.w3.org/2008/webapps/">Web Apps</a> is depending on <a href="http://www.pkware.com/documents/casestudies/APPNOTE.TXT">Zip</a> as the packaging format for <a href="http://dev.w3.org/2006/waf/widgets/">Widgets</a>.</p>
<p><strong>Zip the good</strong></p>
<p>Zip has a lot going for it. It is ubiquitous and dependable&#8230; so long as you don&#8217;t want to share files across cultures.</p>
<p><strong>Zip the bad</strong></p>
<p>The Zip spec does not seem to know that there are normalization models for UTF-8, when there are actually 4 (or more, because there is some non-standard ones too!). The Zip file gives no guidance as to how file names inside zip files are to be normalized.</p>
<p>Consider, when a zip file is created on Linux, it just writes the bytes for the file name in the encoding of the underlying file system. So, if the file system is in <span style="color: black;">ISO-8859-1</span>, the bytes are written in <span style="color: black;">ISO-8859-1</span>. This may seem ok, but when you decompress the zip file on Windows, which runs on encoding Windows-1252, the file names get all mangled. If the underlying encoding of the file system on Linux is something else, you won&#8217;t be able to share files with other systems at all. So in this case, it is not Window&#8217;s fault.</p>
<p>The Zip spec says that the only supported encodings are CP437 and UTF-8, but everyone has ignored that. Implementers just encode file names however they want (usually byte for byte as they are in the OS&#8230; see table below).</p>
<p>It gets worst! because MacOS runs on some weird non-standard decomposed Unicode mode, you can only share zip files with other MacOs users. According to this <a href="http://osdir.com/ml/network.gnutella.limewire.core.devel/2003-01/msg00000.html">email</a>, the LimeWire guys also ran into a similar problem with regards to encodings in MacOS:</p>
<p>&#8220;for example a French, German or Spanish Windows user cannot exchange files that contain [file names with] French, German or Spanish accents with a French, German or Spanish Macintosh users&#8221;</p>
<p>The following table illustrates the problem:</p>
<table border="1">
<caption>Bytes that represent ñ in a Zip file (in hex)</caption>
<tbody>
<tr>
<th>File name</th>
<th>Zip in Windows</th>
<th>Zip in Linux</th>
<th>Zip in Mac OS</th>
</tr>
<tr>
<td><span style="color: black;">ñ</span></td>
<td>a4 (Extended US-ASCII/CP437)</td>
<td>C3 B1 (UTF-8 NFC)</td>
<td>6E CC 83 (UTF-8 NFD)</td>
</tr>
</tbody>
</table>
<p>Yes! holly crap! three different byte sequences corresponding to different character encodings.</p>
<p>The only way around this would be a *special* custom-built widget zipping tool that normalizes file name strings to NFC. If the widget engine needs to decompress the widget to disk, then it would take the NFC and convert them to the operating system&#8217;s native encoding (or store the files in memory, and reference them that way). This affects the URI scheme and DOM normalization of Widgets, so Web Apps will have to deal with it eventually&#8230; but not sure exactly how.</p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdatadriven.com.au%2F2008%2F12%2Fzip-files-and-encoding-i-hate-you%2F&amp;t=Zip%20files%20and%20Encoding%20-%20I%20hate%20you." id="facebook_share_link_112">Share on Facebook</a>
	<script type="text/javascript">
	var button = document.getElementById('facebook_share_link_112') || document.getElementById('facebook_share_icon_112') || document.getElementById('facebook_share_both_112') || document.getElementById('facebook_share_button_112');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_112') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://datadriven.com.au/2008/12/zip-files-and-encoding-i-hate-you/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>IE8 XDomainRequest conspiracy theory</title>
		<link>http://datadriven.com.au/2008/06/ie8-xdomainrequest-conspiracy-theory/</link>
		<comments>http://datadriven.com.au/2008/06/ie8-xdomainrequest-conspiracy-theory/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 02:21:26 +0000</pubDate>
		<dc:creator>Marcos</dc:creator>
				<category><![CDATA[W3C]]></category>
		<category><![CDATA[WAF-WG]]></category>
		<category><![CDATA[Access-control]]></category>
		<category><![CDATA[AnnevanKesteren]]></category>
		<category><![CDATA[conspiracies]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Standardization]]></category>
		<category><![CDATA[WAF]]></category>
		<category><![CDATA[WebApps]]></category>

		<guid isPermaLink="false">http://datadriven.com.au/2008/06/18/ie8-xdomainrequest-conspiracy-theory/</guid>
		<description><![CDATA[UPDATE: This conspiracy theory has been debunked. Microsoft said they would implement various aspects of the access-control spec in IE8. For what it&#8217;s worth, those Microsoft guys are ok with me  
I love conspiracy theories&#8230; particularly when I get to make one up! Here is my conspiracy theory for how Microsoft will try to [...]]]></description>
			<content:encoded><![CDATA[<p><strong>UPDATE:</strong> This conspiracy theory has been debunked. Microsoft said they would implement various aspects of the access-control spec in IE8. For what it&#8217;s worth, those Microsoft guys are ok with me <img src='http://datadriven.com.au/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I love conspiracy theories&#8230; particularly when I get to make one up! Here is my conspiracy theory for how Microsoft will try to force both the <a href="http://w3.org">W3C</a> and other browser makers to adopt <a title="IE8" href="http://www.microsoft.com/windows/products/winfamily/ie/ie8/default.mspx">IE8</a>&#8217;s XDomainRequest mechanism/API.</p>
<p>A bit of background first: the <a href="http://www.w3.org/2006/appformats/">Web Applications Working Group</a> (WAF) has been working on a spec that allows browsers to do cross-domain requests (basically for creating <a href="http://en.wikipedia.org/wiki/Mashup_(web_application_hybrid)">mashups</a> securely). The spec is called<a href="http://www.w3.org/TR/access-control/"> Access-Control</a>, and has been in development for three years. The spec was being edited by <a href="http://www.w3.org/2006/appformats/">Anne van Kesteren</a> of <a href="http://www.opera.com/">Opera Software</a>, but under heavy influence from <a href="http://ln.hixie.ch/">Hixie</a> of <a href="http://google.com">Google</a>, <a href="http://sicking.cc/">Jonas Sicking</a> from <a href="http://mozilla.org">Mozilla</a>, and Maciej Stachowiak from <a href="http://apple.com">Apple</a>, to name a few people/companies. Marc Silbey, the representative from Microsoft to the working group, was also participating for a while, but he dropped off the radar as Microsoft shifted into high gear during development of IE8 (actually, Microsoft assigned 3 people to participate in WAF, but only Marc did). A few months ago, to coincide with the release of the IE8 beta, Microsoft announced <a href="http://msdn.microsoft.com/en-us/library/cc288060(VS.85).aspx">XDomainRequest</a>&#8230; aspects of which look, in a lot of ways, very similar to Access-Control, but with some <a href="http://lists.w3.org/Archives/Public/public-webapps/2008AprJun/0168.html">key differences</a>.Then, to the shock of the working group, they brought XDomainRequest to the W3C for standardization knowing full well that WAF had been working on Access-Control for over three years!</p>
<p>Naturally, Microsoft&#8217;s actions pissed a lot of people off because, as I stated in an <a href="http://lists.w3.org/Archives/Public/public-webapps/2008AprJun/0156.html">email</a>, they are just ignoring over three years of work into the Access-Control spec, they created their own proposal and implementation in secret and now are attempting to fast track it through standardization ignoring <a href="http://en.wikipedia.org/wiki/Due_process">due process</a>.</p>
<p>To which, <span id="from">Sunava Dutta, from Microsoft, <a href="http://lists.w3.org/Archives/Public/public-webapps/2008AprJun/0157.html">responded</a> by saying &#8220;incorrect&#8221; and prompting </span><a href="http://blogs.msdn.com/cwilso/">Chris Wilson</a>, Chief Architect of IE, to <a href="http://lists.w3.org/Archives/Public/public-webapps/2008AprJun/0213.html">respond</a>:</p>
<blockquote><p>You know, there is an idea that perhaps we&#8217;re not IGNORING the work on Access Control, and perhaps we simply disagree with some of it.</p></blockquote>
<p>Which prompted me to <a href="http://lists.w3.org/Archives/Public/public-webapps/2008AprJun/0217.html">respond</a>:</p>
<blockquote><p>&#8230;If Microsoft would have found the time to collaborate [in the WAF WG], all this stuff could have been resolved progressively and the [Access-Control] spec would probably be done by now (as has been shown, the MS proposal has just as many issues, if not more, than the Access-control spec; so trying to do it in-house did not yield a more adequate solution).</p></blockquote>
<p>Which beckons the question, <strong>why did Microsoft stop participating in WAF to go off and create their own version of access-control?</strong> And here is the conspiracy theory:</p>
<ol>
<li>Microsoft joins the WAF working group in 2007</li>
<li>Microsoft &#8220;borrows&#8221; Access-Control idea</li>
<li>Microsoft implements its own XDomainRequest mechanism in IE8beta</li>
<li>Mozilla implements Access-Contol in FireFox 3, but then pulls the feature at the last minute (consequently leaving a gap in the cross-domain request space for Microsoft to jump in)</li>
<li>Microsoft delays Access-Control work by sending in comments a year late (just before it was about to go to Last Call) and putting in their XDomainRequest proposal for standardization. Meanwhile&#8230;</li>
<li>Microsoft rolls out IE8, quickly gains market share (no help from Vista, of course <img src='http://datadriven.com.au/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</li>
<li>Other browsers must now implement Microsoft&#8217;s solution/spec because business and developers start using it</li>
<li>Microsoft&#8217;s spec become a W3C Recommendation, Access-Control spec dies in the ass.</li>
</ol>
<p>We are currently at point 5, with Microsoft using <a title="Sabotage manual from 1944 (PDF)" href="http://xrl.us/bmvu6">delay tactics</a> to slow down standardization of Access-Control.</p>
<p>Why do I care? I&#8217;ve only contributed to Access-Control from the sidelines by attending face-to-face meetings and asking Anne dumb questions. However, a lot of C0<sub>2</sub> has been wasted flying everyone to meetings to talk about this spec; that&#8217;s thousands of dollars and thousands of kilos of C0<sub>2</sub> going to waste. Another thing that annoys me is, as I already stated, that Microsoft has every chance to provide feedback to the working group to fix/discuss any issues they&#8217;ve had with the Access-Control spec.</p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdatadriven.com.au%2F2008%2F06%2Fie8-xdomainrequest-conspiracy-theory%2F&amp;t=IE8%20XDomainRequest%20conspiracy%20theory" id="facebook_share_link_89">Share on Facebook</a>
	<script type="text/javascript">
	var button = document.getElementById('facebook_share_link_89') || document.getElementById('facebook_share_icon_89') || document.getElementById('facebook_share_both_89') || document.getElementById('facebook_share_button_89');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_89') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://datadriven.com.au/2008/06/ie8-xdomainrequest-conspiracy-theory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Widget spec is now Widget Specs</title>
		<link>http://datadriven.com.au/2008/03/widget-spec-is-now-widget-specs/</link>
		<comments>http://datadriven.com.au/2008/03/widget-spec-is-now-widget-specs/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 02:57:22 +0000</pubDate>
		<dc:creator>Marcos</dc:creator>
				<category><![CDATA[PhD]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[WAF-WG]]></category>
		<category><![CDATA[Widgets]]></category>

		<guid isPermaLink="false">http://datadriven.com.au/2008/03/07/widget-spec-is-now-widget-specs/</guid>
		<description><![CDATA[In an effort to expedite the standardization of widgets, the Web Application Formats Working Group yesterday decided to split the Widgets 1.0 Specification  into three (or more) specs:

Widgets 1.0: Packaging and Configuration

Covers Zip packaging and XML configuration  document
Defines the processing model for XML and Zip


Widgets 1.0: Digital Signatures

XML Digital Signature profile


Widgets 1.0: APIs [...]]]></description>
			<content:encoded><![CDATA[<p>In an effort to expedite the standardization of widgets, the <a href="http://www.w3.org/2006/appformats/">Web Application Formats Working Group</a> yesterday decided to split the Widgets 1.0 Specification  into three (or more) specs:</p>
<ul>
<li><a href="http://dev.w3.org/2006/waf/widgets/">Widgets 1.0: Packaging and Configuration</a>
<ul>
<li>Covers Zip packaging and XML configuration  document</li>
<li>Defines the processing model for XML and Zip</li>
</ul>
</li>
<li><a href="http://dev.w3.org/2006/waf/widgets/">Widgets 1.0: Digital Signatures</a>
<ul>
<li>XML Digital Signature profile</li>
</ul>
</li>
<li><a href="http://dev.w3.org/2006/waf/widgets-api/">Widgets 1.0: APIs and Events</a>
<ul>
<li>All the functions, properties, and events you know and love.</li>
<li>I&#8217;ve asked <a href="http://virtuelvis.com/">Arve Bersvendsen</a>, of Opera, to be the lead editor. Unfortunately, he is tied up till mid April&#8230; probably making something awesome for <a href="http://opera.com">Opera</a>.</li>
</ul>
</li>
</ul>
<p>Other specs may also follow, particularly:</p>
<ul>
<li><a href="http://dev.w3.org/2006/waf/widgets-updates/">Widgets 1.0: Automatic Updates</a> (I personally think this one is critical)</li>
<li>Widgets 1.0: Cross-widget Communication</li>
</ul>
<p>Other documents are still under development too:</p>
<ul>
<li><a href="http://dev.w3.org/2006/waf/widgets-reqs/">Widgets 1.0: Requirements </a></li>
<li><a href="http://dev.w3.org/2006/waf/widgets-land/">Widgets landscape</a>
<ul>
<li>A look at how widgets are created and what features  are supported across popular widget engines.</li>
</ul>
</li>
</ul>
<p>We are aiming to have all these done (ie. Last Call) by October. However, now that the document split has happened, I should be able to get the packaging format done fairly quickly.</p>
<p>We have more or less now settled on the configuration language format.  The elements are going to be:</p>
<ul>
<li>&lt;widget width=&#8221;" height=&#8221;" id=&#8221;"&gt;
<ul>
<li>&lt;title: the title/name of a widget</li>
<li>&lt;description&gt; a description</li>
<li>&lt;author email=&#8221;" url=&#8221;"&gt; some details about the author</li>
<li>&lt;license&gt; paste your GPL here! <img src='http://datadriven.com.au/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>&lt;icon src=&#8221;"&gt; the icon</li>
<li>&lt;access network=&#8221;true|false&#8221; plugins=&#8221;true|false&#8221;&gt; if your widget need to get online</li>
<li>&lt;content src=&#8221;"&gt; some file in the widget archive</li>
</ul>
</li>
</ul>
<p>Only &lt;widget&gt; and &lt;content&gt; are mandatory at this point.</p>
<p>The processing model for the XML is going to be quite forgiving. The only thing that will cause an error, is not having a well-formed document.  For example, the following the following would result in &#8220;<samp>The     Awesome Super Dude Widget</samp>&#8221; as the title:</p>
<pre><code>&lt;widget xmlns="http://www.w3.org/ns/widgets"&gt;</code><code>
   &lt;title&gt;
     The &lt;blink&gt;Awesome&lt;/blink&gt; </code></pre>
<pre><code>     &lt;author email="dude@example.com"&gt;Super Dude&lt;/author&gt; Widget&lt;/title&gt;
&lt;/widget&gt;</code></pre>
<p>The unrecognized elements are simply ignored, but their text content is extracted. This makes processing more forgiving and allows for extensibility and some graceful degradation. I also want to push that the widget should function if the namespace is omitted.</p>
<p>We are also currently investigating how we are going to deal with internationalization in the configuration document format. We are looking at following ideas from the <a href="http://www.w3.org/TR/2008/NOTE-xml-i18n-bp-20080213/">Best Practices for XML Internationalization</a>.</p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdatadriven.com.au%2F2008%2F03%2Fwidget-spec-is-now-widget-specs%2F&amp;t=Widget%20spec%20is%20now%20Widget%20Specs" id="facebook_share_link_84">Share on Facebook</a>
	<script type="text/javascript">
	var button = document.getElementById('facebook_share_link_84') || document.getElementById('facebook_share_icon_84') || document.getElementById('facebook_share_both_84') || document.getElementById('facebook_share_button_84');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_84') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://datadriven.com.au/2008/03/widget-spec-is-now-widget-specs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WAF and WebAPI are dead. Long Live WebApps Working Group!</title>
		<link>http://datadriven.com.au/2007/12/waf-and-webapi-are-dead-long-live-webapps-working-group/</link>
		<comments>http://datadriven.com.au/2007/12/waf-and-webapi-are-dead-long-live-webapps-working-group/#comments</comments>
		<pubDate>Wed, 19 Dec 2007 07:07:17 +0000</pubDate>
		<dc:creator>Marcos</dc:creator>
				<category><![CDATA[PhD]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[WAF-WG]]></category>
		<category><![CDATA[Widgets]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://datadriven.com.au/2007/12/19/waf-and-webapi-are-dead-long-live-webapps-working-group/</guid>
		<description><![CDATA[The charters of both  the W3C Web Application Formats and WebAPI Working Groups have now expired (as of the 15th of November, 2007) meaning they are effectively dead (although still twitching!). From their ashes will rise a new merged working group called the Web Applications Working group&#8230; hopefully by the 31 of January.
According to the [...]]]></description>
			<content:encoded><![CDATA[<p>The charters of both  the W3C <a href="http://www.w3.org/2006/appformats/admin/charter.html">Web Application Formats</a> and <a href="http://www.w3.org/2006/webapi/admin/charter">WebAPI</a> Working Groups have now expired (as of the 15th of November, 2007) meaning they are effectively dead (although <a href="http://lists.w3.org/Archives/Public/public-appformats/">still twitching</a>!). From their ashes will rise a new merged working group called the Web Applications Working group&#8230; hopefully by the 31 of January.</p>
<p>According to the new <a href="http://www.w3.org/2007/12/WebApps-Charter/WebApp-Charter-2007-proposed.html">proposed charter</a>, the missions of the new working group is to:</p>
<blockquote><p><q>&#8230;is to provide specifications that enable improved client-side application development on the Web, including specifications both for application programming interfaces (APIs) for client-side development and for markup vocabularies for describing and controlling client-side application behavior.</q></p></blockquote>
<p>The new Web Applications Working Group is chartered with the continual development of the following specifications:</p>
<table class="roadmap" border="1">
<tr>
<th>Specification</th>
<th><acronym title="First Working Draft">FPWD</acronym></th>
<th><acronym title="Last Call Working Draft">LC</acronym></th>
<th><acronym title="Candidate Recommendation">CR</acronym></th>
<th><acronym title="Proposed Recommendation">PR</acronym></th>
<th><acronym title="Recommendation">Rec</acronym></th>
</tr>
<tr>
<th>ClipOps spec</th>
<td class="WD1">2007-Q2</td>
<td class="LC">2008-Q4</td>
<td class="CR">2009-Q2</td>
<td class="PR">2009-Q4</td>
<td class="REC">2010</td>
</tr>
<tr>
<th>DOM 3 Core bis spec</th>
<td class="WD1">&nbsp;</td>
<td class="LC">&nbsp;</td>
<td class="CR">&nbsp;</td>
<td class="PR">&nbsp;</td>
<td class="REC">&nbsp;</td>
</tr>
<tr>
<th>DOM 3 Events spec</th>
<td class="WD1">2007-Q2</td>
<td class="LC">2008-Q2</td>
<td class="CR">2008-Q4</td>
<td class="PR">2009-Q4</td>
<td class="REC">2010</td>
</tr>
<tr>
<th>Element Traversal spec</th>
<td class="WD1">2007-Q2</td>
<td class="LC">2007-Q4</td>
<td class="CR">2008-Q2</td>
<td class="PR">2008-Q4</td>
<td class="REC">2008</td>
</tr>
<tr>
<th>Access Control spec</th>
<td class="WD1">2006-Q2</td>
<td class="LC">2008-Q1</td>
<td class="CR">2008-Q3</td>
<td class="PR">2009-Q4</td>
<td class="REC">2010</td>
</tr>
<tr>
<th>File Upload spec</th>
<td class="WD1">2007-Q2</td>
<td class="LC">2008-Q2</td>
<td class="CR">2008-Q4</td>
<td class="PR">2009-Q4</td>
<td class="REC">2010</td>
</tr>
<tr>
<th>Language Bindings spec</th>
<td class="WD1">2007-Q2</td>
<td class="LC">2008-Q2</td>
<td class="CR">2008-Q4</td>
<td class="PR">2009-Q4</td>
<td class="REC">2010</td>
</tr>
<tr>
<th>MAXIM spec</th>
<td class="WD1">2008-Q1</td>
<td class="LC">2008-Q3</td>
<td class="CR">2008-Q4</td>
<td class="PR">2009-Q2</td>
<td class="REC">2009</td>
</tr>
<tr>
<th>Network API spec</th>
<td class="WD1">2008-Q2</td>
<td class="LC">2009-Q1</td>
<td class="CR">2009-Q3</td>
<td class="PR">2010-Q2</td>
<td class="REC">2010</td>
</tr>
<tr>
<th>Progress Events spec</th>
<td class="WD1">2007-Q2</td>
<td class="LC">2008-Q2</td>
<td class="CR">2008-Q3</td>
<td class="PR">2009-Q2</td>
<td class="REC">2009</td>
</tr>
<tr>
<th>Selectors API spec</th>
<td class="WD1">2007-Q2</td>
<td class="LC">2007-Q4</td>
<td class="CR">2008-Q2</td>
<td class="PR">2008-Q4</td>
<td class="REC">2008</td>
</tr>
<tr>
<th>XHR Object spec</th>
<td class="WD1">2007-Q2</td>
<td class="LC">2008-Q2</td>
<td class="CR">2008-Q4</td>
<td class="PR">2009-Q4</td>
<td class="REC">2010</td>
</tr>
<tr>
<th>Widgets spec</th>
<td class="WD1">2006-Q4</td>
<td class="LC">2008-Q4</td>
<td class="CR">2009-Q1</td>
<td class="PR">2009-Q3</td>
<td class="REC">2009-Q4</td>
</tr>
<tr>
<th>Widgets Requirements</th>
<td class="WD1">2006-Q3</td>
<td class="LC">2008-Q4</td>
<td class="CR">2009-Q1</td>
<td class="PR">2009-Q3</td>
<td class="REC">2009-Q4</td>
</tr>
<tr>
<th>Window Object spec</th>
<td class="WD1">2007-Q2</td>
<td class="LC">2008-Q2</td>
<td class="CR">2008-Q4</td>
<td class="PR">2009-Q4</td>
<td class="REC">2010</td>
</tr>
<tr>
<th>XBL2 spec</th>
<td class="WD1">2006-Q2</td>
<td class="LC">2010</td>
<td class="CR">2011</td>
<td class="PR">2013</td>
<td class="REC">2013</td>
</tr>
<tr>
<th>XBL2 Primer</th>
<td class="WD1">2007-Q3</td>
<td class="LC">2010</td>
<td class="CR">2011</td>
<td class="PR">2013</td>
<td class="REC">2013</td>
</tr>
</table>
<p>Another cool thing about the new working group is that it is modeled on the HTML Working Group, meaning that is open, transparent (no secret chats on the members list) and anyone will be able to participate via the public mailing list.</p>
<p>I&#8217;ll continue to edit the Widget Spec and Requirements, and possibly continue to help out with the XBL Primer.  I&#8217;ll continue to be part of this new working group for a least 1 year, as I my PhD program ends in March 2009&#8230; and hopefully longer, if someone gives me a job to continue working on specs! <img src='http://datadriven.com.au/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdatadriven.com.au%2F2007%2F12%2Fwaf-and-webapi-are-dead-long-live-webapps-working-group%2F&amp;t=WAF%20and%20WebAPI%20are%20dead.%20Long%20Live%20WebApps%20Working%20Group%21" id="facebook_share_link_80">Share on Facebook</a>
	<script type="text/javascript">
	var button = document.getElementById('facebook_share_link_80') || document.getElementById('facebook_share_icon_80') || document.getElementById('facebook_share_both_80') || document.getElementById('facebook_share_button_80');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_80') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://datadriven.com.au/2007/12/waf-and-webapi-are-dead-long-live-webapps-working-group/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML5 to be published by W3C</title>
		<link>http://datadriven.com.au/2007/12/html5-to-be-published-by-w3c/</link>
		<comments>http://datadriven.com.au/2007/12/html5-to-be-published-by-w3c/#comments</comments>
		<pubDate>Wed, 19 Dec 2007 03:34:55 +0000</pubDate>
		<dc:creator>Marcos</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[W3C]]></category>

		<guid isPermaLink="false">http://datadriven.com.au/2007/12/19/html5-to-be-published-by-w3c/</guid>
		<description><![CDATA[According to this email by Dan Connolly (HTML-WG chair), HTML5 will be finally published as a First Public Working Draft (FPWD) by the W3C on the 26th of Feb January 22, 2008. Microsoft has been mainly responsible about stalling the publication of HTML5 because of their concerns over &#60;canvas&#62; and its related graphics API. On [...]]]></description>
			<content:encoded><![CDATA[<p>According to <a href="http://lists.w3.org/Archives/Public/public-html/2007Dec/0203.html">this email</a> by <a href="http://www.w3.org/People/Connolly/" title="Dan's homepage"><span id="from">Dan Connolly</span></a> (HTML-WG chair), <a href="http://www.whatwg.org/specs/web-apps/current-work/">HTML5</a> will be finally published as a <a href="http://www.w3.org/2004/02/Process-20040205/tr.html#first-wd">First Public Working Draft</a> (FPWD) by the <a href="http://w3.org">W3C</a> on the <strong><strike>26th of Feb</strike> <a href="http://lists.w3.org/Archives/Public/public-html/2007Dec/0234.html">January 22</a></strong><strong>, 2008</strong>. Microsoft has been mainly responsible about stalling the publication of <a href="http://www.whatwg.org/specs/web-apps/current-work/">HTML5</a> because of their concerns over &lt;canvas&gt; and its related graphics API. On various occasions, Microsoft argued that the graphics API was out outside the scope of the <a href="http://www.w3.org/2007/03/HTML-WG-charter">HTML WG charter</a> and that they would have to look at the legal implications.</p>
<p>In <a href="http://lists.w3.org/Archives/Public/public-html/2007Dec/0203.html">the email</a>, Dan Connolly wrote:</p>
<pre id="body">... and adding 3 months, we get: 2007-11-26 + 3 months = 2007-02-26
for a deadline for publication for the HTML 5 specification.

The W3C Director, Tim Berners-Lee, sees no reason why this
working group should be excused further from the three-month
heartbeat rule, and further, encourages us to publish sooner
if at all possible.</pre>
<p>I still think it&#8217;s really disappointing that it&#8217;s going to take a further two months to publish the document. I was personally wishing it would be published for XMas (a nice present for the web community!). A FPWD is important for both marketing reasons and legal reasons: when a FPWD, all sorts of legal things in the W3C process go into effect. From a marketing perspective, it will be good as lots of media attention. However, from a technical perspective, a FPWD is irrelevant because of the rate at which <a href="http://www.whatwg.org/specs/web-apps/current-work/">HTML5</a> is being edited by <a href="http://ln.hixie.ch/">Hixie</a> (on a daily, if not hourly basis). The latest draft of the <a href="http://www.whatwg.org/specs/web-apps/current-work/">HTML5</a> document is always available to anyone either via the <a href="http://www.whatwg.org/specs/web-apps/current-work/">WHATWG site</a> or the<a href="http://dev.w3.org/cvsweb/~checkout~/html5/spec/Overview.html">W3C CVS repository</a>.</p>
<p><strong>Update:</strong>  In a follow-up <a href="http://lists.w3.org/Archives/Public/public-html/2007Dec/0205.html" title="Hixie strikes back!">email</a>, Hixie sees no reason not to publish the document straight away! He writes &#8220;Cool. Since we are encouraged to publish sooner rather than later, and since there doesn&#8217;t appear to be any reason for us not to publish immediately, I have prepared the document for Working Draft publication.&#8221; If we are lucky, we might see the document published for xmas! <img src='http://datadriven.com.au/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Update: </strong>According <a href="http://annevankesteren.nl/2007/12/html5-fpwd">this post</a> by to <a href="http://annevankesteren.nl/">Anne van Kesteren</a>, the publication wheels are now in motion: <a href="http://people.w3.org/mike/">Mike(tm) Smith</a> sent the <a href="http://lists.w3.org/Archives/Public/www-archive/2007Dec/0072.html">request for publication</a> earlier today! Now pending <a href="http://www.w3.org/People/chris/">Chris Lilley</a>&#8217;s approval&#8230; will Chris be the scrooge that ruins christmas?Lets hope not.</p>
<p><strong>Update:</strong> No HTML for xmas I am afraid&#8230; In <a href="http://lists.w3.org/Archives/Public/public-html/2007Dec/0234.html">this email</a>, <a href="http://people.w3.org/mike/">Mike(tm) Smith</a> writes, &#8220;after discussion with others on the team, the target publication date I&#8217;m requesting for the First Public Working Draft of the HTML5 specification is January 22.&#8221;</p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdatadriven.com.au%2F2007%2F12%2Fhtml5-to-be-published-by-w3c%2F&amp;t=HTML5%20to%20be%20published%20by%20W3C" id="facebook_share_link_79">Share on Facebook</a>
	<script type="text/javascript">
	var button = document.getElementById('facebook_share_link_79') || document.getElementById('facebook_share_icon_79') || document.getElementById('facebook_share_both_79') || document.getElementById('facebook_share_button_79');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_79') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://datadriven.com.au/2007/12/html5-to-be-published-by-w3c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Widgets 1.0 (v2)</title>
		<link>http://datadriven.com.au/2007/10/widgets-10-v2/</link>
		<comments>http://datadriven.com.au/2007/10/widgets-10-v2/#comments</comments>
		<pubDate>Wed, 17 Oct 2007 06:05:08 +0000</pubDate>
		<dc:creator>Marcos</dc:creator>
				<category><![CDATA[W3C]]></category>
		<category><![CDATA[WAF-WG]]></category>
		<category><![CDATA[Widgets]]></category>
		<category><![CDATA[Standardization]]></category>
		<category><![CDATA[Widgets 1.0]]></category>

		<guid isPermaLink="false">http://datadriven.com.au/2007/10/17/widgets-10-v2/</guid>
		<description><![CDATA[Today the W3C published the Second Public Working Draft of the Widgets 1.0 Specification. It&#8217;s been nearly a year since we published the first public working draft (11 Nov, 2006) and much has changed and been added to the spec (&#8230;and it still has a long long way to go yet before it will be [...]]]></description>
			<content:encoded><![CDATA[<p>Today the <a href="http://w3.org">W3C</a> published the <a href="http://www.w3.org/TR/2007/WD-widgets-20071013/">Second Public Working Draft of the Widgets 1.0 Specification</a>. It&#8217;s been nearly a year since <a href="http://www.w3.org/2006/appformats/">we</a> published the <a href="http://www.w3.org/TR/2006/WD-widgets-20061109/">first public working draft</a> (11 Nov, 2006) and much has changed and been added to the spec (&#8230;and it still has a long long way to go yet before it will be finished!). The most notable addition to this version of the spec are in the attempt to <a href="http://www.w3.org/TR/widgets/#zip-archive">standardize a subset</a> of the <a href="http://www.pkware.com/documents/casestudies/APPNOTE.TXT">Zip specification</a> and support for <a href="http://www.w3.org/TR/widgets/#digital">digital signatures</a> using XML Digital Signatures. Unfortunately, a lot of exciting things that are under discussion by those participating in the standardization effort have not made it into this latest draft. For example, we are still trying to work out a nice model for automatic updates, but we should have something drafted up fairly soon.</p>
<p>The main problem I&#8217;ve been working on over the last two months is trying to specify a subset of Zip that should be used by widgets. My goal has been to define a subset that is interoperable across all platforms and devices in such a way that it also ensures longevity. As you might imagine, this has proven to be quite a challenge&#8230;</p>
<h3>The issues with Zip</h3>
<p>The Zip file format  is what is commonly referred to as  a <a href="http://en.wikipedia.org/wiki/De_facto">de facto standard</a>: it is not formally specified by any standards body, but of it is so widely implemented that it is interoperable across OSs and devices. This seems great on the surface, but when you try to standardize it, it becomes quite a nightmare. The main issues are these:</p>
<ul>
<li>There are competing Zip specifications and there are <strong>many</strong> versions of each of the Zip specifications.</li>
<li>Different version of the Zip specification are implemented across different platforms and OSs.</li>
<li>There are many features in Zip that are desirable (eg. UTF-8 support), but are not widely implemented.</li>
<li>Zip is not an &#8220;open standard&#8221;, it is the property of PKWARE.</li>
<li>Zip is periodically updated and PKWARE does not provide any links to previous versions of their specs.</li>
</ul>
<h4>Competing Zip specifications</h4>
<p>There are essentially two Zip Specifications that applications make use of: the &#8220;official&#8221; <a href="http://www.pkware.com/documents/casestudies/APPNOTE.TXT">PKWARE Zip Application Note</a>s and the &#8220;unofficial&#8221;<a href="http://www.info-zip.org/doc/">Info-Zip Application Notes</a> (mostly on Unix).  The unofficial notes basically take whatever PKWARE has officially published, and gets modified, or otherwise clarified, by the guys at  <a href="http://info-zip.org">Info-Zip</a>. In this sense, much of what one finds in the Info-Zip specs is identical to the PKWARE Zip spec. But, because PKWARE actually maintains  the official spec, the PKWARE spec is always more up-to-data than what Info-Zip has on its website (for instance, the latests version of Info-zip covers version 6.2.0 of the official Zip spec (26 April 2004); the latest version of Zip is version 6.3.2 which came out in September 2007!, so InfoZip is three years behind PKWARE!).</p>
<p><strong>Problem: </strong>Info-zip contains details that pertain to how info-zip works and <strong>may</strong> not be compatible/interoperable with the PKZip Spec. For example, Info-zip contains details about how to handle Unix permissions, while PKWARE&#8217;s Zip spec does not. This might not make the file formats incompatible, but it does make them physically different. You can try this out yourself: zip up a file using Info-Zip&#8217;s zip implementation and then zip up the same file using Windows&#8217; Compressed Folders. The results will be different, but you should still be able to decompress the Info-Zip file using Windows&#8217; native Zip implementation.</p>
<h4>Different version of the Zip specification are implemented across different platforms, OSs, Specs</h4>
<p>Another significant issue form a standardization perspective is that packaging formats are making use of either some Info-Zip spec or some PWARE spec. Significant examples include:</p>
<dl>
<dt>Java/<a href="http://java.sun.com/j2se/1.4.2/docs/guide/jar/jar.html">JAR</a> (including WAR and EAR) : </dt>
<dd><a href="http://www.info-zip.org/doc/appnote-19970311-iz.zip">Info-ZIP Application Note 19970311</a></dd>
<dt><a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office#odf11">Open Document Format (ODF): </a></dt>
<dd><a href="http://www.info-zip.org/doc/appnote-19970311-iz.zip">Info-ZIP Application Note 19970311</a></dd>
<dt><a href="http://www.ecma-international.org/publications/files/ECMA-ST/Office%20Open%20XML%20Part%202%20(PDF).zip">Open Office XML &#8211; Open Packaging Convention </a>(OOXML-OPC):</dt>
<dd><a href="http://www.pkware.com/documents/casestudies/APPNOTE.TXT">PKWARE Zip Application Note</a> (version 6.2.1), but with a bunch of clarifications.   </dd>
<dt><a href="http://www.idpf.org/ocf/ocf1.0/download/ocf10-20060911.htm">OEBPS Container Format 1.0:</a> </dt>
<dd><a href="http://www.pkware.com/documents/casestudies/APPNOTE.TXT">PKWARE Zip Application Note</a> (no explicit version, but at least version 2.0 needed to extract and version 4.5 needed to extract Zip64).  </dd>
</dl>
<p>I still have little idea as to what version of the Zip specification is actually implemented on each OS, let alone on mobile devices (information that seems to be quite difficult to come by!). As a result, and after some discussion with <span id="_user_jferrai@us.ibm.com" style="color: #5b1094">Jon Ferraiolo</span><span style="font-weight: normal" class="lg"> of IBM</span>, I decided to base the Widget Spec on the OEBPS-OCF&#8217;s conformance requirements for Zip packages. I was tempted to make the widgets specification conform to the OOXML-OPC spec (put away your tomatoes!) because, in my opinion, the container aspects and conformance requirements are well specified (even if the rest of <a href="http://www.noooxml.org/">OOXML is &#8220;evil&#8221;</a>).</p>
<h3>Desirable features in Zip (6.3.2)</h3>
<p>There are a number of really cool features in Zip that would make specifying a container format for widgets much better. They include:</p>
<ul>
<li> Strong Encryption (using x.509 digital certificates): basically solves the digital signature problem, I think.</li>
<li>UTF-8 support: solves a significant part of the internationalization problem.</li>
<li>Zip64: future proofing.</li>
</ul>
<p>To require widget engines to actually support these features puts a fair bit of strain on makers of widget engines. At this point, we have required that implementers support UTF-8 and Zip64.</p>
<h3>Zip is not an open standard</h3>
<p>The fact that Zip is proprietary might be something that comes back to bite us on the ass. I&#8217;m no lawyer, but there of patents/IPR issues surrounding Zip. I&#8217;m also not sure about how PKWARE will feel about WAF specifying a subset of their specification. I&#8217;ve emailed PKWARE and informed them of what we are doing and requested that they review the spec. They have responded and said that they will look into it.</p>
<h3>Where to from here&#8230;</h3>
<p>Looking forward, I&#8217;d really like to get all the physical and logical packaging stuff done. That includes:</p>
<ul>
<li>Anything Zip related</li>
<li>The inter-package addressing model</li>
<li>How to handle decompression</li>
<li>How to name files in ASCII and UT-8</li>
</ul>
<p>I&#8217;d also really like to nail down the auto-updates model and make sure that the manifest language we are specifying is covers all the common use cases. The security model is the elephant in the room <img src='http://datadriven.com.au/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  No one wants to touch it at this point; but we know its a massive issue. Another massive issue is the APIs&#8230; but that&#8217;s not something I want to get into now. A big issue for me is internationalization. I&#8217;ve been blocked a number of times when I&#8217;ve proposed doing internationalization using folders&#8230; every widget engine except Opera does it, so I think we should do it too.</p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdatadriven.com.au%2F2007%2F10%2Fwidgets-10-v2%2F&amp;t=Widgets%201.0%20%28v2%29" id="facebook_share_link_74">Share on Facebook</a>
	<script type="text/javascript">
	var button = document.getElementById('facebook_share_link_74') || document.getElementById('facebook_share_icon_74') || document.getElementById('facebook_share_both_74') || document.getElementById('facebook_share_button_74');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_74') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://datadriven.com.au/2007/10/widgets-10-v2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Web Directions South Conference</title>
		<link>http://datadriven.com.au/2007/10/web-directions-south-conference/</link>
		<comments>http://datadriven.com.au/2007/10/web-directions-south-conference/#comments</comments>
		<pubDate>Sun, 07 Oct 2007 12:28:27 +0000</pubDate>
		<dc:creator>Marcos</dc:creator>
				<category><![CDATA[W3C]]></category>
		<category><![CDATA[Widgets]]></category>

		<guid isPermaLink="false">http://datadriven.com.au/2007/10/07/web-directions-south-conference/</guid>
		<description><![CDATA[Last week I attended the Web Directions South Conference, in Sydney. I was invited to give a talk on Widgets as part of the conference&#8217;s W3C SIG day. Overall, I thought the conference was really good: very well organized with lots of good interesting talks. The slideshow for my talk are now hosted on slideshare:

Share [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I attended the <a href="http://www.webdirections.org/" title="web directons south conference homepag">Web Directions South Conference</a>, in Sydney. I was invited to give a talk on Widgets as part of the conference&#8217;s W3C SIG day. Overall, I thought the conference was really good: very well organized with lots of good interesting talks. The slideshow for my talk are now hosted on <a href="http://www.slideshare.net/mcaceres/widgets-125319">slideshare</a>:</p>
<p><object type="application/x-shockwave-flash" data="http://s3.amazonaws.com/slideshare/ssplayer.swf?id=125319&amp;doc=widgets559" height="348" width="425"><param name="movie" value="http://s3.amazonaws.com/slideshare/ssplayer.swf?id=125319&amp;doc=widgets559"></param></object></p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdatadriven.com.au%2F2007%2F10%2Fweb-directions-south-conference%2F&amp;t=Web%20Directions%20South%20Conference" id="facebook_share_link_72">Share on Facebook</a>
	<script type="text/javascript">
	var button = document.getElementById('facebook_share_link_72') || document.getElementById('facebook_share_icon_72') || document.getElementById('facebook_share_both_72') || document.getElementById('facebook_share_button_72');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_72') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://datadriven.com.au/2007/10/web-directions-south-conference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>W3C stops standardization of the declarative format for application and user interfaces (about time!)</title>
		<link>http://datadriven.com.au/2007/09/the-death-of-the-declarative-format-for-application-and-user-interfaces/</link>
		<comments>http://datadriven.com.au/2007/09/the-death-of-the-declarative-format-for-application-and-user-interfaces/#comments</comments>
		<pubDate>Thu, 13 Sep 2007 07:25:23 +0000</pubDate>
		<dc:creator>Marcos</dc:creator>
				<category><![CDATA[Rant]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[WAF-WG]]></category>

		<guid isPermaLink="false">http://datadriven.com.au/2007/09/13/the-death-of-the-declarative-format-for-application-and-user-interfaces/</guid>
		<description><![CDATA[Yay! the W3C has canned the work on the Declarative Format for Applications and User Interfaces (DFAUI), putting an end to something that had no way of ever finishing. Of course, you probably have never heard of the DFAUI because the WAF WG never published any documents about it. The idea was to standardized an [...]]]></description>
			<content:encoded><![CDATA[<p>Yay! the <a href="http://w3.org">W3C</a> has <a href="http://www.w3.org/TR/dfaui/">canned the work on the Declarative Format for Applications and User Interfaces</a> (DFAUI), putting an end to something that had no way of ever finishing. Of course, you probably have never heard of the DFAUI because the WAF WG never published any documents about it. The idea was to standardized an XML language similar to <a href="http://msdn2.microsoft.com/en-us/library/ms752059.aspx">XAML</a> or <a href="http://www.openlaszlo.org/documentation">Openlaszlo</a>&#8230;. but instead, what the WAF-WG got was an input from <a href="http://www.nexaweb.com/">Nexaweb</a> called <a href="http://www.nexaweb.com/home/us/index.html@cid=1784.html">XAL</a>. Anyway, the people that were supposed to be editing the document never got very far, and as far as I am concerned, <a href="http://dev.w3.org/2006/waf/DFAUI/DFAUI-UCs-and-Reqs.html">the work they produced</a> was of fairly low quality (that&#8217;s not to say my work doesn&#8217;t suck!).</p>
<p>These are my random thought on how I think the DFAUI should have been standardized&#8230;and why it failed&#8230;. </p>
<p><span id="more-71"></span></p>
<h3> Foundations for a Declarative Language for User Interfaces </h3>
<p> Although it is possible to describe user interfaces and the interaction design styles in a colloquial language, the disciplines of Interaction Design and User Interface Design have well-understood theoretical and practical foundations including: </p>
<ul>
<li> Cybernetics: stemming from the mathematical understanding of communication theory and feedback and control theory, </li>
<li> Visual Design: stemming from print design, color theory, aesthetics, semiotics (semantics and communication) theory, </li>
<li> Multimedia/Hypermedia Design: stemming from literary theory (hypertext),film theory, animation, sound design and motion graphics, and electronic publishing </li>
<li> Sound Design: stemming from music and audio composition, </li>
<li> Architecture: which provides structure, theories of form and function, and design patterns, </li>
<li> Software engineering: the actual means through which user interfaces can be  realized, </li>
<li> Ergonomic Studies: sometimes also applied, as is the case with, for example, Fitt&#8217;s law (&#8221;the time to acquire a target is a function of the distance to  and size of the target&#8221; [TUG]). </li>
</ul>
<p> The effectiveness of a user interface is generally evaluated through the fields of Usability and User-Experience Design, however both Usability [Nielsen] an User-Experience Design [Garrett] lack a &#8216;design language&#8217; on which to design and build multi-modal user interfaces. The fields that make possible the practice of user interface design employ design processes that are iterative and user-centered so to maximize communication and make user interfaces as usable (or effective) as possible. In addition, these design practices provide designers with the freedom of self expression and the means (tools and language) to effectively achieve their communicative goals. In this context, communication is &#8220;the full process by which the behavior of one goal-seeking entity comes to be affected by that of another through the reciprocal exchange of messages or <b>signs</b> over some mediating physical channel&#8221; [Mullet]. </p>
<p> It is generally excepted that there has be a continuous growth in the market of portable and multi-modal devices, and as a result new interface paradigms are emerging that challenge the traditional means of interacting with data. The modes of interaction afforded by these new devices often challenge tradition user interface metaphors experienced by users on traditional desktop applications. These new interface paradigms offer new innovative modes and modalities through which users interact with information. For example, Apple&#8217;s IPod&#8217;s tactile wheel control that also provides auditory feedback, the upcoming Nintendo Wii and its gesture recognition system, and the Nintendo DS with its advanced uses of direct manipulation through a pointing device. Note that the focus here on entertainment and gaming devices is intentional as they often represent the state-of-the-art in effective user interface design by providing highly efficient user experiences that are both engaging and aesthetically pleasing. The sophistication in these user interfaces is achieved by the skillfully designed fine-grained coordination of multiple modalities over time that achieve an engaging user experience. In other words, images and sounds are skillfully coordinated together over time in response to create a successfully multimodal experience. </p>
<p> I now provide a brief overview of the fields listed above and explain their relationship to interface design in more detail. </p>
<h3> Cybernetics </h3>
<p> Cybernetics theory has its foundations in the formal mathematical model of communication as defined by Shannon and Weaver. The field deals specifically with the concept feedback and control. The mathematical model of the feedback and control is easily understood as an agent attempts to change the state of a system by manipulating some variable(s), the amount of change that the agent desires is commonly referred to as the Goal. As the agent changes a variable the system provides feedback to the agent allowing him or her to &#8216;Control&#8217; the level of change. </p>
<h3> A simple example of cybernetic theory in action </h3>
<p> A person is driving a car at 50km/h (let speed be variable x = 50). Her goal is for the car to accelerate to 60km/s, so she presses down on the accelerator pedal (while(x&lt; 60){ x++ } ). As the pedal moves downwards, more fuel is injected into the car&#8217;s engine causing a greater power output that changes the speed of the car (hence x++). However, as the car accelerates it produces feedback through a number of modalities: audibly she can hear the car accelerating, visually she can see the car&#8217;s speedometer changing, kinesthetically she can feel the inertia and gravitational forces on her body as the car accelerates. If the car over accelerates (ie. x &gt; 60), she can hear, sense, and see the changes through the various modalities, so she can then &#8216;control&#8217; the car&#8217;s speed by depressing the fuel pedal, or by applying the break pedal (while(x&gt;60){ x&#8211; } ). In simple terms, the agent reaches a desired goal by systematically controlling a system through actions that produce perceivable feedback in the system. </p>
<p> The same principles apply feedback and control mechanisms apply when moving a mouse around the screen. When a user wants to click on a button, he pushes the mouse in the direction of the button. The computer interactively updates the display to reflect the changes in the mouse position in relation to the physical movement of the mouse on a surface. As the user watches the feedback that is the representation of the mouse on the screen, he is able to &#8220;control&#8221; the speed of the mouse by decreasing the amount of physical force applied. Eventually, the user reaches his goal. However, if feedback from the system is too slow and the representation of the </p>
<h3> Visual Design </h3>
<p> Mullet states that &#8220;Visual Design attempts to solve communication problems in a way that is at once functionally effective and aesthetically pleasing.&#8221; </p>
<p> Semiotics is the general study of signs, of which a branch is Semantics (Seead). semiotics studies forms the foundation on which communication can be understood. Parts of communication include: the sign: which has two parts the signifier (the presentation of the sign on some medium), and the signified (what the sign is communicates to the reader). Signs are always found on some medium with the purpose of communicating something. Signs are composed of three distinct parts: </p>
<ul>
<li> the medium: or the &#8216;channel of communication&#8217;, for example marks on paper  rely on the interaction between light and the contrast with the markings  made by the author, </li>
<li> the modes: the communicative choices the author has when using a particular  medium for communication. For example, for plain paper, available modes  include colors, lines, markings and pictures, textures, symbols, and even  smell. However, temporal or auditory models of communication are unavailable  to the medium of paper. </li>
<li> The modalities: the sensory modalities that the reader uses to perceive the  sign (eg, visually through the eyes or tactile as would be the case with  brail, or through olfaction if the paper had been perfumed).</li>
</ul>
<p> Because personal computers primarily use screens (emitted light) as their medium of communication, the must rely on the <b>representation</b> of other mediums to convey their messages (eg, photographic, three-dimensionality, document-based). The medium chosen for communication affects the way the message is understood by a reader. In semiotics, the combination of signs (media, modes, and modalities) is formally known as a &#8216;text&#8217;. Things get more technical from there and beyond the scope of this document. </p>
<p> The field of Semiotics has its roots in formal logic and the philosophy of language, but encompasses all forms of communication. Semiotics also provides a means to understand how time can be used in a communication process. Semiotics, however, can not be used independently to create communication as it lacks a design language &#8211; it can only be used as a means of to study and predict how people will interpret the semantics of signs. Thus, semiotics can be used to iteratively evaluate a communication process to make communication more effective, particularly because of semiotics&#8217; reliance on understanding socio-cultural contexts in which signs are created and consumed (what we commonly refer to internationalization and localization of designs). Semiotics has a more sophisticated theoretical foundation than both Usability and User-Experience Design for describing human-computer interactions and has been widely applied in the literature of Human-Computer Interaction (Caceres, User interface design dudes). </p>
<h3> Graphic Design </h3>
<p> Just like written and spoken languages have a generally understood syntax and grammar, so do the visual arrangement of elements on some medium (a graphic). Graphic design theory is a theory of principles whose aims are to maximize communication through the structured arrangement of semiotic signs. The arrangement forms both a syntax and grammar that has been studied for thousands of years, but particularly since the invention of print and later with the establishment of electronic publishing in the previous century (see in particular Knuth). </p>
<h3> Architecture </h3>
<p> The applications of Architecture are generally well understood. The idea of design patterns was originally coined by architect Christopher Alexander et al. in the 1970s. The idea of a design pattern is to catalog a proven design solution to a particular design problem in such a way that a description to  solution is applicable to lots of situations without being overly prescriptive or restrictive (as can be the case with guidelines or template).</p>
<h3> Interaction Styles </h3>
<ul>
<li> Command: command given as direct input into the computer </li>
<li> Forms </li>
<li> Direct manipulation: directly manipulating the representation of an object  (eg. drag and drop, icons) </li>
<li> Menu </li>
</ul>
<h2 class="line886"> The need of a Critical Language </h3>
<p> Although it is possible to describe the elements that make up a graphical interface by the function that a group of controls play in an interface, such an approach is limited because it does not fully describe the interaction process. In other words, simply identifying interface elements (menu, button, radio button) does not fully capture the human-computer interaction in terms of input behavior, binding to a data model, eventing, presentation, styling, metadata and navigation (Raman, 2003). To fully describe the interaction process, it necessary to consider at least ask: </p>
<ul>
<li> Input behavior:<br/>
<ul>
<li>  what means of interaction are presented to the user use to change the    model? </li>
<li> or what means of interaction are afforded by the device? (eg, direct    manipulation, menu, command line input) </li>
<li> how does the input behave as input as it interacts with the user? (for    example, does it stop receiving input after a certain number of    characters have been entered?) </li>
<li> what means of control does the system afford the user in relation to feedback? (eg. speed of the mouse and the rate at which the screen updates, time before another key stroke is displayed on the screen while the user is holding down a key). </li>
</ul>
</li>
<li class="gap"> Binding to a data model:
<ul>
<li>  what is the goal of the user or the motivation for interaction? ie, what part of the data model do they wish to change or capture? (eg. save a file) </li>
<li> what is the <b>conceptual</b> model that user interfaces is allowing the    user change? (eg an address book, the set of spells that a character in    a game can cast when under attack, etc) </li>
<li> what is the <b>actual</b> model that the user interface is allowing the    user change? (eg. a database table, a document model) </li>
<li> what is the computation model that the user is changing? (eg, a thread    inform the renderer to update portions of a screen buffer as a user    &#8220;scrolls&#8221; down a page) </li>
</ul>
</li>
<li class="gap"> Eventing:
<ul>
<li>  what events are triggered by user interaction? (eg. onclick) </li>
<li> what events are triggered by the system? (eg, onload) </li>
<li> how do those behaviors affect the data model (eg, event phases and level of granularity or propagation) </li>
</ul>
</li>
<li class="gap"> Presentation:
<ul>
<li>  what medium, modes and modalities are utilized by the device to provide    feedback to the user? (eg, a sonic chime when the file is saved    successfully, the sound of paper being crushed when the recycle bin is    emptied) </li>
<li> what declared stylistic rules go into forming the representation of the    interface component? (eg, css rules or XSL:FO for print) </li>
<li> what are the stylistic restrictions imposed by the limitations of a    particular device? (eg, monochrome display does not allow the use of    color as a mode of communication, but may allow the use of shades and    texture instead) </li>
<li> what are the stylistic restrictions imposed by a particular device    because of security concerns? (eg, always displaying &#8216;*****&#8217; in place of    passwords, or not reading passwords out loud as is the case when    interacting with ATM machines or passwords fields in html forms) </li>
</ul>
</li>
<li class="gap"> metadata:
<ul>
<li>  what semantics can be extracted from the underlying model and content?    (eg. the data type for this input field is of type date) </li>
<li> the interaction layer? (eg, element can be &#8216;dropped&#8217; onto other    elements, but does not except textual input) </li>
<li> and the presentational layer? (eg. in a localized Australian context,    speak the month after the day: &#8220;today is the 20th of October&#8221;, but not    in an USA context: &#8220;today is October 20th&#8221;. ) </li>
</ul>
</li>
<li class="gap"> navigation:
<ul>
<li>  has the author imposed a navigational structure on the interface? (eg.    steps 1 and 2 must be completed one after the other) </li>
<li> does the interface provide the user with a non-linear interaction    structure? (for example, by using the Accordion interface design    pattern?) </li>
<li> when a user interacts with an interface element, must particular    conditions be met before feedback is displayed? (eg. searching for a    contact in an address book)</li>
</ul>
</li>
</ul>
<p> From an interaction design perspective, the above questions form what in computer science is commonly referred to as the &#8216;Model-View-Controller&#8217; (MVC) design pattern (Gamma et al.) (See also wikipedia for a detailed description of the MVC pattern). MVC is well understood withing the Working Group and MVC forms the foundations of the XForms specification. XForms describes the interaction process in terms of inputs, outputs, a model and triggers that manipulate some given abstract data model, and mechanisms to transmit data to and from the server. </p>
<p> XForms also describes the behavior of input types in relation to the model through interaction events, data-typing and error checking. XForms also defines mechanism by which inputs can behave as outputs. Hence, XForms provides the elemental primitives on which complex interactions with dynamic data models can be declared by an author. XForms&#8217; power is in its flexibility and high degree of abstraction, accessible design, and device independence. XForms also defines structuring mechanism for user interfaces that can help structure how the user navigates a user interface. T. V. Raman describes the work done on XForms in the following way: </p>
<ul>
<li> &#8220;The primary goal as we overhauled HTML forms from 1993 was to make the next  generation Web forms technology robust with respect to accessibility,  internationalization, and the ability to deliver user interaction to a  variety of modalities and end-user devices. Looking forward to a ubiquitous  Web that would be accessible using devices and modalities best suited to a  user&#8217;s needs and abilities at a given time meant that we had to step back  from commonly held notions of visual interaction and create an abstract user  interface vocabulary capable of withstanding the test of time.&#8221;</p>
<p> &#8220;Addressing the need to create an abstract user interface vocabulary had  the advantage of contributing directly to our primary goals of   accessibility. Once we freed the user interface vocabulary from fixed   ideas driven purely by visual interaction, we were able to leverage the   separation of the XForms model from the user interface to the fullest   degree in creating a set of controls that could be easily re-targeted to   different user interaction environments. Cascading Style Sheets (CSS) is   now a mature Web technology,and this has made it significantly easier for   the XForms working group to defer stylistic and presentational issues to   the CSS layer. Having separated out presentation by using CSS, we used the   XML binding to DOM Events provided by XML Events to factor out interaction   behavior of the various controls. Thus, the XForms user interface design   separates content, presentation, and interaction to create an XML   vocabulary that lends itself to intent-based authoring of user   interaction&#8221; </p>
</li>
</ul>
<p> Although logical from an engineering standpoint, the explicit separation of the content, presentation, and interaction is seen by some in the web community as counter intuitive and confusing. The traditional approach for authors has been to to consider the required user interface elements available HTML, collect the required data from the users through these interface components, and then have the user post the data back to the server for processing. In addition, XForms has also being criticized for: </p>
<ul>
<li> it&#8217;s reliance on XML for the data model </li>
<li> overly declarative </li>
<li> developers consider XML to be &#8216;bloaty&#8217; </li>
<li> DOM interfaces hard to work with (hence the creating of workaround like the  handy innerHTML property). </li>
</ul>
<p> Regardless of these criticisms, XForms provides a foundation built of a proven design pattern (MVC) that has been used in practice by software engineers for approximately 30 years. XForms (together with its dependent technologies and pluggable design) provides the base primitives and structuring mechanisms needed by authors to realize almost any kind of user interface. </p>
<p> Given that we now have a language for describing user interfaces. We can begin an analysis of interface components of various applications. It is not possible in most cases to understand the underlying computational models of software applications, but it should be relatively easy to understand the conceptual models from a user&#8217;s perspective. </p>
<h3> Understanding the UI space: the competition to a DFAUI </h3>
<ul>
<li>XAML </li>
<li>Macromedia MXML (Flex 2) </li>
<li>XForms </li>
<li>XUL </li>
<li>AJAX Frameworks (Prototype, Dojo, Scriptacolous) </li>
</ul>
<h3> Directions away from HTML forms </h3>
<ul>
<li>XAML Approach:
<ul>
<li> generated XML spaghetti nightmare from hell. </li>
<li>Tremendously difficult to read or write and probably maintain  (requires an IDE). </li>
<li>Does not separate content, structure, style, behavior, data binding(all mashed together) </li>
<li>Defines it&#8217;s own styling language </li>
<li>But apparently, one can make pretty powerful stuff because it uses the    .Net. API </li>
<li>Provides ready made desktop UI components (slider, progress bar, checkbox, etc) </li>
</ul>
</li>
<li>Macromedia Approach:
<ul>
<li> XML Elements map to classes in an API (Flex and ActionScript3), or user defined classes </li>
<li>Heavily dependent of programming</li>
<li>Leverages CSS (although implementation is fairly poor) and ECMAScript </li>
<li>Powerful yet simple binding and extension mechanisms</li>
<li>Provides ready-made interface components for re-skinning (button,accordion, input fields, etc)</li>
<li>Very powerful network and hypermedia capabilities and ready made interface components </li>
</ul>
</li>
<li>XForms approach:
<ul>
<li> abstracts and separates UI logic, model, presentation, and behavior </li>
<li>Clean and simple (when compared to XAML and XUL) declarative language </li>
<li>Pluggable and leverages CSS, XPath, XMLEvents, Namespaces </li>
<li>RESTful approach </li>
<li>Device independence </li>
<li>Lacks API and higher level interface abstractions </li>
</ul>
</li>
<li>XUL:
<ul>
<li> Geared towards desktop application development </li>
<li>Leverages ECMAScript and CSS </li>
<li>Provides an extensive set of ready made interface components and    associated APIs </li>
</ul>
</li>
</ul>
<h3> DFAUI &#8211; our current state </h3>
<ul>
<li>
<p class="line886"> XAL proposal seems to want to compete with established UI languages, but   is already years behind in implementation and sophistication </p>
</li>
<li>TID-Mobile is better but kinda sits in the same boat </li>
<li>DFAUI use cases seem to be following XAL by re-inventing the wheel </li>
<li>So far, we only have really self evident requirements:
<ul>
<li> must use CSS </li>
<li>work with events </li>
<li>must be device independent </li>
</ul>
</li>
<li>the requirements and use cases simply leading to requirements that will be  identical to XForms </li>
</ul>
<p class="line886"> Why DFAUI Failed: </p>
<ul>
<li>Monumental task of defining all possible UI elements: consider how long it  took to build all the competing languages (even XAL has been undergoing  development for years).</li>
<li>lack of interest in WG </li>
<li>lack of interest from implementors (they&#8217;ve already got way better  solutions and have invested lots $$$,$$$,$$$ into them) </li>
<li>not really doing anything new </li>
</ul>
<p class="line886"> If we want our stuff to be adopted, we obviously need to make use of what has already been implemented; it should slot in with as little effort as possible; and should be at least comparable, if not an order of magnitude better than what is already out there. </p>
<h3> Building on XForms: Standing on the Shoulders of Giants </h3>
<ul>
<li>XForms already resolved complex interface modeling problems through MVC </li>
<li>Leads developers to an effective software engineering solution (MVC) </li>
<li><b>but MVC may not lead to an effective interface design solution</b>:
<ul>
<li> comes with some UI design patterns built in: hint, help, error </li>
<li>comes with grouping patterns </li>
<li>comes with sequential patterns </li>
<li>comes with data typing entry control (pattern) </li>
</ul>
</li>
</ul>
<h3> Why build on top of XForms instead of other languages </h3>
<ul>
<li style="LIST-STYLE-TYPE:none">
<p class="line886"> &#8220;Pemberton blasted the scripting approach taken in Web Forms 2.0, sayingit doesn&#8217;t scale well, is harder to maintain, doesn&#8217;t address industry requirements and use cases, and doesn&#8217;t provide the ability to take snapshots of each step in a forms-based process for sensitive industrial or governmental applications&#8230;&#8221; (Festa, 2005) </p>
<p class="line879"> &#8220;XForms is not a Web standard,&#8221; said Brendan Eich, a founding member of Mozilla in charge of technical direction, the creator of JavaScript and a member of WHAT-WG. &#8220;It&#8217;s a relatively new spec seeing early-adopter use in intranets&#8221; (Festa, 2005) </p>
</li>
</ul>
<ul>
<li>
<p class="line886"> Maybe they both suck? </p>
</li>
<li>
<p class="line886"> XForms MAY be the way forward (with the useful bits from Web Forms 2.0   added in). </p>
</li>
<li>
<p class="line886"> However, XForms is still very high. </p>
</li>
<li>
<p class="line886"> It will be hard to compete with established frameworks like Dojo, Prototype, etc. </p>
</li>
<li>
<p class="line886"> XForms is more sophisticated than these frameworks, but not (yet) a widely available web standard. </p>
</li>
</ul>
<h3> DFAUI &#8211; what could it actually be? </h3>
<p class="line879"> Consider the <b>emergent</b> growth of open-source Ajax frameworks as the case study for the DFAUI: </p>
<ul>
<li style="LIST-STYLE-TYPE:none">
<p class="line879"> &#8220;The DOM and JavaScript have enabled a huge amount of experimentation that have helped us discover   useful design and interaction patterns on the Web; however, if we now fail   to move these understood concepts to a declarative means that obviate   programming, I would assert that we will largely fail to discover the next   set of abstractions.&#8221; (comment made T.V. Raman on Mark Birbeck&#8217;s blog) </p>
</li>
</ul>
<ul>
<li>Web API WG is already covering the non-declarable aspects. </li>
<li>We could investigate what user interface design patterns are emerging (or have already been defined) and attempt to capture them in a standardized way. </li>
<li>Yahoo! UI is already doing this, but for Ajax.  </li>
<li>
<p class="line886"> Martijn van Welie and others have been capturing UI patterns for years </p>
</li>
</ul>
<h3> Towards an an eXtensible User Interface Patterns language (XUIPL) </h3>
<ul>
<li>Build higher level user-interface centric patterns using XForm primitives,but allowing them to maintain their device independence, accessibility, and adherence to MVC </li>
<li>Make the language extensible so developers can define and share their own  patterns (Ala semantic web ontology style) </li>
<li>Overcome some of the complexity of XForms, by providing ready made rea  world solutions to UI problems </li>
<li>Builds on XForms as a foundation, reinforcing it&#8217;s applicability as a suitable language to build powerful and usable web applications </li>
<li>Through XUIPL, patterns can be &#8216;natively&#8217; supported by XForms thus making them easier for novices and professionals to use </li>
</ul>
<p class="line903"> <b>XUIPL: A language for User Interfaces that is solution-driven based on proven UI design patterns that lead to better user interface designs that runson a proven software engineering foundation.</b> </p>
<ul>
<li>The approach I am proposing gives us a new noble direction that empowers  UI designers, not just programmers </li>
<li>Has the potential to make a language that is an order of magnitude more  usable and applicable than XForms alone </li>
<li>Is open and extensible, allowing new patterns to emerge and be used on the  web community&#8230; hopefully speeding up the adoption of XForms </li>
<li>Does not interfere with the development of XForms, but provides more use  cases for XForms and for CSS </li>
</ul>
<p> From an &#8216;Application&#8217; development perspective, other minor things that XUIPL could also add to make it more attractive: </p>
<ul>
<li>Unit testing and logging module, making it easier to build and test web apps </li>
<li>applications could still be packaged, with the aid of the widget 1.0 spec </li>
</ul>
<h3> References</h3>
<p class="line886"> Mark Birbeck. &#8220;On Adobe and XForms via Declarative Programming, Wizards and Aspects&#8221;. September 04, 2005. Available at: <a class="http" href="http://internet-apps.blogspot.com/2005/09/on-adobe-and-xforms-via-declarative.html">http://internet-apps.blogspot.com/2005/09/on-adobe-and-xforms-via-declarative.html</a> </p>
<p class="line886"> Paul Festa, &#8220;Fight over &#8216;forms&#8217; clouds future of Net applications&#8221; ZDNet News: February 17, 2005. Available at: <a class="http" href="http://news.zdnet.com/2100-9588_22-5581106-4.html?tag=st.num">http://news.zdnet.com/2100-9588_22-5581106-4.html?tag=st.num</a> </p>
<p class="line879"> See also: <a class="http" href="http://www.welie.com/patterns/literature.html">http://www.welie.com/patterns/literature.html</a> for a good listing of literature related to UI patterns. </p>
<h3> UI Pattern Collections </h3>
<ul>
<li><a class="http" href="http://time-tripper.com/uipatterns/">http://time-tripper.com/uipatterns/</a> </li>
<li><a class="http" href="http://www.cs.helsinki.fi/u/salaakso/patterns/">http://www.cs.helsinki.fi/u/salaakso/patterns/</a></li>
<li><a href="http://www.welie.com/patterns/index.html%22%3Ehttp://www.welie.com/patterns/index.html%3C/a%3E%3C/p">http://www.welie.com/patterns/index.html</a></li>
<li><a class="http" href="http://developer.yahoo.com/ypatterns/">http://developer.yahoo.com/ypatterns/</a> </li>
</ul>
<h3> Notes</h3>
<p> TV Raman says: * In this context, the key to XForms and XHTML2 is *not* to either obviate or decry imperative/script-based programming; rather, it&#8217;s primary goal is to liberate today&#8217;s script authors from the minutiae of writing yesterday&#8217;s code to focusing on the next level of innovation. </p>
<p> * The DOM and JavaScript have enabled a huge amount of experimentation that have helped us discover useful design and interaction patterns on the Web; however, if we now fail to move these understood concepts to a declarative means that obviate programming, I would assert that we will largely fail to discover the next set of abstractions.</p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdatadriven.com.au%2F2007%2F09%2Fthe-death-of-the-declarative-format-for-application-and-user-interfaces%2F&amp;t=W3C%20stops%20standardization%20of%20the%20declarative%20format%20for%20application%20and%20user%20interfaces%20%28about%20time%21%29" id="facebook_share_link_71">Share on Facebook</a>
	<script type="text/javascript">
	var button = document.getElementById('facebook_share_link_71') || document.getElementById('facebook_share_icon_71') || document.getElementById('facebook_share_both_71') || document.getElementById('facebook_share_button_71');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_71') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://datadriven.com.au/2007/09/the-death-of-the-declarative-format-for-application-and-user-interfaces/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>June Wrap-up</title>
		<link>http://datadriven.com.au/2007/07/june-wrap-up/</link>
		<comments>http://datadriven.com.au/2007/07/june-wrap-up/#comments</comments>
		<pubDate>Fri, 06 Jul 2007 04:20:18 +0000</pubDate>
		<dc:creator>Marcos</dc:creator>
				<category><![CDATA[PhD]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[WAF-WG]]></category>
		<category><![CDATA[Widgets]]></category>
		<category><![CDATA[XBL 2.0]]></category>
		<category><![CDATA[monthly wrap-up]]></category>

		<guid isPermaLink="false">http://datadriven.com.au/2007/07/06/june-wrap-up/</guid>
		<description><![CDATA[June was a fairly busy month:

Went to Sydney for two days to work with Lachlan Hunt on the XBL Primer.
Finished My PhD confirmation. 
Become a Facebook addict.
Published Widgets 1.0 Requirements.

July is also going to be pretty intense:

will try to get the First Public Working Draft of the XBL Primer by the 13th of July. 
Presenting [...]]]></description>
			<content:encoded><![CDATA[<p>June was a fairly busy month:</p>
<ul>
<li>Went to Sydney for two days to work with <a href="http://lachy.id.au/">Lachlan Hunt</a> on the <a href="http://dev.w3.org/cvsweb/~checkout~/2006/waf/XBLPrimer/Overview.src.html">XBL Primer</a>.</li>
<li>Finished My <a href="http://datadriven.com.au/2007/06/22/phd-by-mp3/">PhD confirmation</a>. </li>
<li>Become a <a href="http://www.facebook.com">Facebook addict.</a></li>
<li>Published <a href="http://www.w3.org/TR/2007/WD-widgets-reqs-20070705/">Widgets 1.0 Requirements</a>.</li>
</ul>
<p>July is also going to be pretty intense:</p>
<ul>
<li>will try to get the First Public Working Draft of the XBL Primer by the 13th of July. </li>
<li>Presenting my PhD confirmation on the 25th.</li>
<li>Going to Melbourne on the 26th to work with <a href="http://mcc.id.au/">Cameron McCormack</a> for two days on a model for the XBL 2.0 Test Suite. </li>
<ul>
<p>After I come back from Melbourne I go to Oslo for a WAF Face 2 Face to be held at <a href="http://www.opera.com">Opera Software</a>.</p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdatadriven.com.au%2F2007%2F07%2Fjune-wrap-up%2F&amp;t=June%20Wrap-up" id="facebook_share_link_69">Share on Facebook</a>
	<script type="text/javascript">
	var button = document.getElementById('facebook_share_link_69') || document.getElementById('facebook_share_icon_69') || document.getElementById('facebook_share_both_69') || document.getElementById('facebook_share_button_69');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_69') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://datadriven.com.au/2007/07/june-wrap-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

