<?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>Ajaxian &#187; Ajax</title>
	<atom:link href="http://ajaxian.com/by/topic/ajax/feed" rel="self" type="application/rss+xml" />
	<link>http://ajaxian.com</link>
	<description>Cleaning up the web with Ajax</description>
	<lastBuildDate>Thu, 02 Feb 2012 22:23:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
    	<generator>http://wordpress.org/?v=3.2</generator>
		<item>
		<title>Best Practices for test revisited</title>
		<link>http://ajaxian.com/archives/best-practices-for-test-revisited</link>
		<comments>http://ajaxian.com/archives/best-practices-for-test-revisited#comments</comments>
		<pubDate>Fri, 08 Apr 2011 17:08:30 +0000</pubDate>
		<dc:creator>jvaughan</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=10538</guid>
		<description><![CDATA[With Google and their apps like Search, Docs or GMail only a very small time is actually spent in the initial page load, writes Andreas Grabner in a recent blog post. Of course, much time is spent in JavaScript, XHR Calls and DOM Manipulations triggered by user actions. Grabner writes: It is very important to <a href="http://ajaxian.com/archives/best-practices-for-test-revisited">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>With Google and their apps like Search, Docs or GMail only a very small time is actually spent in the initial page load, writes <a href="http://blog.dynatrace.com/2011/03/22/testing-and-optimizing-single-page-web-2-0ajax-applications-why-best-practices-alone-dont-work-any-more/">Andreas Grabner in a recent blog post</a>. Of course, much time is spent in JavaScript, XHR Calls and DOM Manipulations triggered by user actions. Grabner writes:</p>
<blockquote><p><em>It is very important to speed up Page Load Time – don’t get me wrong. It is the initial perceived performance by a user who interacts with your site. But it is not all we need to focus on. Most of the time in modern web applications is spent in JavaScript, DOM Manipulations, XHR Calls and Rendering that happen after the initial page load. Automatic verification against Best Practices won’t work here anymore because we have to analyze individual user actions that do totally different things. The way this will work is to analyze the individual user actions, track performance metrics and automate regression detection based on these measured values.</em></p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/best-practices-for-test-revisited/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>COR Blimey! Cross domain Ajax is really here</title>
		<link>http://ajaxian.com/archives/cor-blimey-cross-domain-ajax-is-really-here</link>
		<comments>http://ajaxian.com/archives/cor-blimey-cross-domain-ajax-is-really-here#comments</comments>
		<pubDate>Wed, 26 May 2010 11:09:34 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=9407</guid>
		<description><![CDATA[There is a lot of solid support for cross-domain Ajax in modern web browsers, yet most developers are still unaware of this powerful capability. Usage requires just a little bit of extra JavaScript work and a little extra server-side work to ensure that the correct headers are being sent. IE8’s implementation lags a bit behind <a href="http://ajaxian.com/archives/cor-blimey-cross-domain-ajax-is-really-here">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<blockquote><p>
There is a lot of solid support for cross-domain Ajax in modern web browsers, yet most developers are still unaware of this powerful capability. Usage requires just a little bit of extra JavaScript work and a little extra server-side work to ensure that the correct headers are being sent. IE8’s implementation lags a bit behind the others in terms of allowing advanced requests and credentialed requests, but hopefully support for CORS will continue to improve.
</p></blockquote>
<p>Nicholas C. Zakas concludes the above in his <a href="http://www.nczonline.net/blog/2010/05/25/cross-domain-ajax-with-cross-origin-resource-sharing/">post on cross domain with cross origin resource sharing</a> (and XDR for IE).</p>
<p>He shares some simple code:</p>
<div class="igBar"><a href="javascript:showCodeTxt('javascript-2');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-2">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">function</span> createCORSRequest<span style="color:#006600; font-weight:bold;">&#40;</span>method, url<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> xhr = <span style="color: #003366; font-weight: bold;">new</span> XMLHttpRequest<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">"withCredentials"</span> <span style="color: #000066; font-weight: bold;">in</span> xhr<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; xhr.<span style="color: #006600;">open</span><span style="color:#006600; font-weight:bold;">&#40;</span>method, url, <span style="color: #003366; font-weight: bold;">true</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> XDomainRequest != <span style="color: #3366CC;">"undefined"</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; xhr = <span style="color: #003366; font-weight: bold;">new</span> XDomainRequest<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; xhr.<span style="color: #006600;">open</span><span style="color:#006600; font-weight:bold;">&#40;</span>method, url<span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; xhr = <span style="color: #003366; font-weight: bold;">null</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> xhr;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">var</span> request = createCORSRequest<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">"get"</span>, <span style="color: #3366CC;">"http://www.nczonline.net/"</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000066; font-weight: bold;">if</span> <span style="color:#006600; font-weight:bold;">&#40;</span>request<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; request.<span style="color: #006600;">onload</span> = <span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900; font-style: italic;">//do something with request.responseText</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; request.<span style="color: #006600;">send</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p>to do the work of cross domain. </p>
<p>Read the detail for the various headers and tweaks, and then <a href="http://arunranga.com/examples/access-control/">check out the CORS demo page</a> by Arun of Mozilla.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/cor-blimey-cross-domain-ajax-is-really-here/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Telling robots about your crawl-able Ajax apps</title>
		<link>http://ajaxian.com/archives/proposal-for-customizing-google-crawlable-ajax-urls</link>
		<comments>http://ajaxian.com/archives/proposal-for-customizing-google-crawlable-ajax-urls#comments</comments>
		<pubDate>Wed, 28 Apr 2010 05:37:31 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=9163</guid>
		<description><![CDATA[Weston Ruter wants to talk to the search robots out there and tell them about the URL format for crawling Ajax apps. Google came out with a spec for doing this with hash bang URLs such as: http://shepherdinteractive.com/#!portfolio/interactive/. What if we could tell Google and others something like: PLAIN TEXT HTML: &#160; &#60;meta name="crawlable-fragment-prefix" content="/"&#62; <a href="http://ajaxian.com/archives/proposal-for-customizing-google-crawlable-ajax-urls">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Weston Ruter wants to talk to the search robots out there and <a href="http://weston.ruter.net/2010/03/17/proposal-for-customizing-google-crawlable-ajax-urls/">tell them about the URL format for crawling Ajax apps</a>.</p>
<p>Google came out with <a href="http://code.google.com/web/ajaxcrawling/">a spec for doing this</a> with hash bang URLs such as: <code>http://shepherdinteractive.com/#!portfolio/interactive/</code>.</p>
<p>What if we could tell Google and others something like:</p>
<div class="igBar"><a href="javascript:showCodeTxt('html-4');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">HTML:</span>
<div id="html-4">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/meta.html"><span style="color: #000000; font-weight: bold;">&lt;meta</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"crawlable-fragment-prefix"</span> <span style="color: #000066;">content</span>=<span style="color: #ff0000;">"/"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p>and Google would grok <code>http://shepherdinteractive.com/#/portfolio/interactive/</code> and convert it to <code>http://shepherdinteractive.com/?_escaped_fragment_=portfolio/interactive/</code>.</p>
<p>Want flexibility? Or want simplicity and think we should all just hash bang away?</meta></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/proposal-for-customizing-google-crawlable-ajax-urls/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Progressive XMLHttpRequest</title>
		<link>http://ajaxian.com/archives/progressive-xmlhttprequest</link>
		<comments>http://ajaxian.com/archives/progressive-xmlhttprequest#comments</comments>
		<pubDate>Tue, 12 Jan 2010 16:54:32 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Front Page]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=8421</guid>
		<description><![CDATA[Kyle Scholz has brought up the topic of progressive response handling in XHR: Perhaps it's subtle, but the draft spec for XMLHttpRequest calls for support for progressive response handling: 4.7.6 The responseText attribute The responseText attribute must return the result of running these steps: 1. If the state is not LOADING or DONE return the <a href="http://ajaxian.com/archives/progressive-xmlhttprequest">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Kyle Scholz <a href="http://www.kylescholz.com/blog/2010/01/progressive_xmlhttprequest_1.html">has brought up the topic of progressive response handling in XHR</a>:</p>
<blockquote><p>
Perhaps it's subtle, but the <a href="http://www.w3.org/TR/XMLHttpRequest">draft spec for XMLHttpRequest</a> calls for <a href="http://www.w3.org/TR/XMLHttpRequest/#the-responsetext-attribute">support for progressive response handling</a>: </p>
<pre>
<b>4.7.6 The responseText attribute</b>

The responseText attribute must return the result of running these steps: 

1. If the state is not LOADING or DONE return the empty string and terminate these steps.
2. Return the text response entity body.
</pre>
</blockquote>
<p>He then goes on to test this out by having a response with delimiters such as:</p>
<div class="igBar"><a href="javascript:showCodeTxt('javascript-7');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-7">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">window.<span style="color: #006600;">aFunction</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900; font-style: italic;">// -- //</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">window.<span style="color: #006600;">bFunction</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900; font-style: italic;">// -- //</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p>and then watching for those in the response:</p>
<div class="igBar"><a href="javascript:showCodeTxt('javascript-8');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-8">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">var</span> index = <span style="color:#800000;">0</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">var</span> buffer = <span style="color: #3366CC;">''</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">var</span> DELIMITER = <span style="color: #3366CC;">'//--//'</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">function</span> handlePartialResponse<span style="color:#006600; font-weight:bold;">&#40;</span>request<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #003366; font-weight: bold;">var</span> i = request.<span style="color: #006600;">responseText</span>.<span style="color: #006600;">lastIndexOf</span><span style="color:#006600; font-weight:bold;">&#40;</span>DELIMITER<span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color:#006600; font-weight:bold;">&#40;</span>i&gt; index<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; i += DELIMITER.<span style="color: #006600;">length</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> newChunk = request.<span style="color: #006600;">responseText</span>.<span style="color: #006600;">substr</span><span style="color:#006600; font-weight:bold;">&#40;</span>index, <span style="color:#006600; font-weight:bold;">&#40;</span>i - index<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; buffer += newChunk;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; index = i;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; flushBuffer<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/progressive-xmlhttprequest/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>A State of the Web via October Tweets</title>
		<link>http://ajaxian.com/archives/a-state-of-the-web-via-october-tweets</link>
		<comments>http://ajaxian.com/archives/a-state-of-the-web-via-october-tweets#comments</comments>
		<pubDate>Mon, 02 Nov 2009 23:44:10 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Front Page]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=7828</guid>
		<description><![CDATA[A lot of great news is coming in via Twitter. I make a lot of Ajax comments under @dalmaer and wanted to give you a roundup on the month of October via Tweets. Always interesting to take a glance at the month. What do you think? Firefox 3.6 beta 1 is here. Full screen video, <a href="http://ajaxian.com/archives/a-state-of-the-web-via-october-tweets">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>A lot of great news is coming in via Twitter. I make a lot of Ajax comments under <a href="http://twitter.com/dalmaer">@dalmaer</a> and wanted to give you a roundup on the month of October via Tweets. Always interesting to take a glance at the month. What do you think?</p>
<ul>
<li><a href="http://bit.ly/42IQkV">Firefox 3.6 beta 1 is here. Full screen video, WOFF fonts, js perf, startup bump and more!</a> about 13 hours ago
</li>
<li><a href="http://bit.ly/3Dse2t">Oh the Walloons... you are killing me. IE6??? about 17 hours ago
<li>Thanks to @ryanstewart and @cote for a <a href="http://www.redmonk.com/cote/2009/10/30/palm-development-ria-weekly-66/">nice chat on RIA Weekly</a>. Looking forward to checking back in about 20 hours ago
</li>
<li>RT @jeresig: <a href="http://j.mp/2xBtuF">The most important part of Google Wave uses jQuery</a> about 21 hours ago
</li>
<li>RT @webOSdev: Join Palm developer relations and engineers on <a href="http://bit.ly/3CtM1Z">irc://irc.freenode.net/webos</a> about 23 hours ago
</li>
<li>Howard Lewis Ship gave what looks like a really nice <a href="http://bit.ly/1Mf9Ke">talk about Cappuccino</a> 10:59 PM Oct 29th
</li>
<li>Remi of Aardvark has written up a short post on how they use JS on <a href="http://blog.vark.com/?p=242">the new vark.com</a> 4:17 PM Oct 29th
</li>
<li>RT @thecssninja: Microsoft considering support for WOFF in IE9, that would be a smart move (via @typekit, @johnallsopp) 4:00 PM Oct 29th
</li>
<li><a href="http://bit.ly/1kDDc">JSON job listing</a>. What folks will do to be different :) 61:12 PM Oct 29th
</li>
<li><a href="http://bit.ly/31ryXH">dynaTrace have been writing interesting Ajax performance articles such as</a>: Performance antipatterns 11:34 AM Oct 29th
</li>
<li>RT @tlrobinson > @boucher: This is worth spreading around: <a href="http://is.gd/4GG9n">Some really great WebKit Inspector updates.</a> 10:34 PM Oct 28th
</li>
<li>RT @jrburke: Playing with my JS toolkit experiment, <a href="http://bit.ly/HttI1">Blade</a> 10:04 PM Oct 28th
</li>
<li>RT @chrismessina: Super excited about the <a href="http://j.mp/fonts4fx">new CSS-driven typography controls in Firefox 3.6+</a> 5:05 PM Oct 28th
</li>
<li><a href="http://documentcloud.github.com/underscore/">Underscore.js</a> is "the tie to go along with jQuery's tux." The helpers that JS should just have. 3:20 PM Oct 28th
</li>
<li><a href="http://diveintohtml5.org/semantics.html">"IE5/Mac was so advanced, it actually broke the web."</a> 3:15 PM Oct 28th
</li>
<li>Dave Shea's <a href="http://bit.ly/kIT9e">elevation is cool indeed</a> "A free, open source route visualizer that renders GPS data in 3D space" 1:50 PM Oct 28th
</li>
<li><a href="http://www.mulesoft.org/display/IBEANS/Documentation">iBeans</a> is a cool new project that helps you with integration to the backend from MuleSoft 10:29 AM Oct 28th
</li>
<li>RT @tolmasky: the web requires a constant 20% commitment from your CPU to do absolutely nothing with Flash. Im COMPILING and Flash tops it11:05 PM Oct 27th
</li>
<li>RT @F1LT3R: <a href="http://bit.ly/36GR5Q">Processing.js gets image-handling upgrade</a>. 8:18 PM Oct 27th
</li>
<li>Matt Hornyak gave my favourite talk of our Sprint session when he went into detail on <a href="http://bit.ly/sTTT">his Clock application</a> 24:39 PM Oct 27th
</li>
<li>RT @SickingJ > @mozhacks: <a href="http://bit.ly/190FQO">Firefox 3.6 will support &lt;input type=file multiple&gt;</a> 4:33 PM Oct 27th
</li>
<li>RT @F1LT3R > @processingjs: <a href="http://askken.heroku.com/">Amazing Processing.js Search Engine</a>! --> [Try: 'electronic music'] 4:33 PM Oct 27th
</li>
<li><a href="http://bit.ly/hQ0VM">"IBM Researchers have an interesting way for a Web site to describe itself to visually impaired."</a> 2:59 PM Oct 27th
</li>
<li>HTML5 at Last Call at @WhatWG! (specs: <a href="http://bit.ly/3DSHr">HTML5</a>, <a href="http://bit.ly/387AYt">Web Workers</a>, <a href="http://bit.ly/Euml7">Microdata</a>) 2:16 PM Oct 27th
</li>
<li><a href="http://bit.ly/3uYXKn">"However, on all browsers, even using the string approach was 3x-20x faster than loading the function directly."</a> 2:09 PM Oct 27th
</li>
<li><a href="http://bit.ly/3uYXKn">"Overall, wrapping code as a large comment is faster than wrapping the code as a string on all browsers."</a> 2:09 PM Oct 27th
</li>
<li><a href="http://bit.ly/Hvjtb">“now supporting YUI 2.8 under Caja (protective layer between devs and your browser for Y! 3rd party apps)”</a> -@spullara 12:48 PM Oct 27th
</li>
<li>Bill Zeller has written <a href="http://bit.ly/19uzvt">jLambda</a> which allows lambda functions to be succinctly expressed, eg $('.foo').click($l.hide()) 7:09 AM Oct 27th
</li>
<li>A step by step <a href="http://j.mp/Bxbi">guide to cross browser @font-face support</a> 46:58 AM Oct 27th
</li>
<li>RT @mollydotcom: <a href="http://bit.ly/1inDaD">"XForms 1.1 is now a W3C rec. - anyone working with XForms?"</a> No? :) 10:56 PM Oct 26th
</li>
<li><a href="http://bit.ly/oCboW">"Ruby coders come play with BigRecord, your window to the world of Bigtable-esque data. Which, for now, means HBase."</a> 10:50 PM Oct 26th
</li>
<li>Charles Jolley (@okito) of SproutCore keeps good stuff coming: <a href="http://bit.ly/4x5WGE">Tiki</a> is a prototype SecurableModule loader 10:37 AM Oct 26th
</li>
<li>RT @chrisblizzard: new post: <a href="http://bit.ly/3LIuS">another top 20 web site supports Theora</a> 9:59 AM Oct 26th
</li>
<li><a href="http://mu.daaku.org/">M?</a> is a Facebook Connect JavaScript library that wraps it all up nicely indeed 7:42 AM Oct 26th
</li>
<li>RT @jwatt: <a href="http://bit.ly/3V5MOd">Sent in my draft proposal for supporting z-index in SVG</a> 9:58 PM Oct 25th
</li>
<li>The awesome @bokowski details his experience <a href="http://bit.ly/GlAXn">porting the PDE editor of Eclipse from Java to Web UI</a> 10:55 AM Oct 25th
</li>
<li>We love to <a href="http://bit.ly/1RbuUW">pontificate about software but there are few actual studies</a>.... even though we call it Computer Science 10:53 AM Oct 25th
</li>
<li>RT @jdalton: Prototype+NWMatcher and P+Sizzle ops/sec <a href="http://bit.ly/zxKqz">benchmarks</a> and updated the <a href="http://bit.ly/elhgf">match() benchmarks</a> 11:10 PM Oct 24th
</li>
<li>The Web offers incredible diversity in many areas, so kinda strange that JS is the only viable language on the client, even though it morphs 2:45 PM Oct 24th
</li>
<li>RT @reddit_prog: WebKit WebGL <a href="http://bit.ly/120vpJ">demos ported to Firefox</a> 6:35 AM Oct 24th from Spaz
</li>
<li>RT @okito: <a href="http://bit.ly/Ioqbq">SproutCore 1.0 Release Candidate 1</a> hit the streets tonight! gem install sproutcore to get. Also new demos at 11:05 PM Oct 23rd from Spaz
</li>
<li>RT @timbray: That "SOA Manifesto" is vacuous to the point of being insulting. "Intrinsic Interoperability" my ass.8:12 PM Oct 23rd
</li>
<li>"Please rename the ‘play’ package as ‘org.playframework’!" Awesome @playframework. <a href="http://bit.ly/1dxcX">If you Java, play!</a> 27:46 PM Oct 23rd
</li>
<li>RT @bradneuberg: The DOM APIs should move away from being language agnostic. Pessimizes common case and sacrifices usability. 5:23 PM Oct 23rd
</li>
<li>RT @mozhacks > @janodvarko: Check out the <a href="http://bit.ly/CoxVX">new high accuracy HTTP timings</a> coming with Firebug 1.5 and Firefox 3.6 - 5:14 PM Oct 23rd
</li>
<li>#webOS tip from Evernote: thanks to WebKit and designMode you get a rich text editor for free. Loving Evernote right now... 4:29 PM Oct 23rd
</li>
<li>RT @daveman692: Yahoo! has <a href="http://bit.ly/3tCWL0">made their OpenID and OAuth provider experience work well on mobile devices</a> too! Awesome! 2:25 PM Oct 23rd
</li>
<li><a href="http://bit.ly/4FYQrO">BookGlutton</a> is a cool Dojo driven eBook reader app with chat and annotation 2:02 PM Oct 23rd
</li>
<li>Oh cool, <a href="http://bit.ly/H6CwB">scripty 1.8.3 came out</a> a couple of weeks back. Updated to Prototype 1.6.1 and more 12:16 PM Oct 23rd
</li>
<li>RT @nathansmith: <a href="http://bit.ly/2XT37Q">Ooh, jQuery Summit. Online "conference" w. a great speaker lineup</a> 11:09 PM Oct 22nd
</li>
<li>RT @tobie: Building @prototypejs with your selector engine of choice as easy as: <a href="http://bit.ly/1Ykrw8">$ rake dist SELECTOR_ENGINE=nwmatcher</a> 9:31 PM Oct 22nd
</li>
<li>RT @dberlind: Sir Tim Berners-Lee @ #w2s: W3C things to pay attention to: Web apps, mobile web, SVG, HTML (now at 5) 5:50 PM Oct 22nd
</li>
<li>Wave and Raindrop may have a similar front cover, but the story is sooo different. Squint past "messaging" and see the massive differences. 5:16 PM Oct 22nd
</li>
<li><a href="http://bit.ly/2NMkOl">Raindrop announced</a>; Hacking your email again; Getting personal: I am really jazzed to see the work of the Mozilla M... 3:48 PM Oct 22nd
</li>
<li>RT @davidascher: Pleased to announce the launch of Raindrop -- our experiment for messaging on the Open Web: labs.mozilla.com/raindrop 1:46 PM Oct 22nd
</li>
<li>Addy Osmani <a href="http://bit.ly/2OZg57">has posted</a> on using YUI SWFStore as a storage solution a la Dojo Storage 12:52 PM Oct 22nd
</li>
<li>RT @glazou: "in 1997 I wrote <a href="http://is.gd/4vj06">this</a> and 12 years later, the #whatwg discovers the power of link dereferencing :-) #w3c" 12:19 PM Oct 22nd
</li>
<li>RT @WebReflection: ...and we wonder why Microsoft does not want canvas into HTML5, uh? 90% of Silverlight almost everywhere in microsoft.com 12:00 PM Oct 22nd
</li>
<li>RT @WebReflection: Dean Edwards always ends up with ultra useful snippets: <a href="http://bit.ly/2Li9Qj">IE color value to hex</a> 11:22 AM Oct 22nd
</li>
<li>RT @jobsworth: Pichai: Most operating systems of today were designed before the web existed; most of the time we use OS we use for web. #w2s9:24 AM Oct 22nd
</li>
<li>Alexander Kirk is doing fun work with <a href="http://alexander.kirk.at/2009/10/22/colorillo/">Colorillo</a>, the collaborative drawing app using Canvas 8:58 AM Oct 22nd
</li>
<li>Awesome live <a href="http://ajaxian.com/archives/jira-now-has-a-live-walk-through-demo-using-jquery">in-line interactive walk through of JIRA</a> from @mcannonbrookes and co! 7:58 AM Oct 22nd
</li>
<li>RT @gozala: "WebSocket is implemented in the latest webkit nightly!" 12:23 AM Oct 22nd
</li>
<li>RT @cromwellian How very helpful of them. Next up, "Microsoft to move all unsupported IE8 features out of HTML5 spec." 11:14 PM Oct 21st
</li>
<li>RT @arun: In other news, <a href="http://bit.ly/90JhE">Microsoft has offered to help with Canvas</a>. This isn't Bizarro World, but I should sleep more. 8:20 PM Oct 21st
</li>
<li>RT @pkim: Open Video gets bigger with <a href="http://wp.me/pf2B5-KL">VideoPress support for Ogg</a> 8:14 PM Oct 21st
</li>
<li>The awesome @Nitobi crew and getting their WebGL groove on! <a href="http://blogs.nitobi.com/yohei/?p=43">Check out their early game</a> 6:02 PM Oct 21st
</li>
<li>RT @thecssninja: <a href="http://cssn.in/ja/018">Font Dragr: A drag and drop font tester</a> 11:26 PM Oct 20th
</li>
<li>RT @ethauvin: "Developing for Palm's #webOS is just like hacking. You spend hours experimenting with undocumented features." 11:06 PM Oct 20th
</li>
<li>RT @cyikeda: <a href="http://bit.ly/SP4Zo">"What kind of apps are currently available in the Palm App Catalog? Check out our new featured apps page"</a> 11:03 PM Oct 20th
</li>
<li>RT @pbakaus: Apple has started using HTML5 video with HTML control overlays on their website. Way to go! 10:17 PM Oct 20th
</li>
<li>Was V8 available in January 2007? Has technology changed at all since then? Oh.... yeah! And browser have a lot more headroom! 10:12 PM Oct 20th
</li>
<li>RT @mozhacks: <a href="http://bit.ly/fx-woff">Web Open Font Format for Firefox 3.6</a> - new format to support web designers and font creators 9:37 AM Oct 20th
</li>
<li>“<a href="http://www.typotheque.com/news/typotheque_launches_its_web_fonts_service">Typotheque web font system has launched. All Typotheque fonts can be licensed for print &#038; web.</a>” -@zeldman 6:50 AM Oct 20th
</li>
<li>“web messaging (pubsub, queueing, ..) takes another step out of the <a href="http://bit.ly/o43v2">dark ages of RPC</a> #hybi” -@monadic 6:45 AM Oct 20th
</li>
<li>"HTML 5 Features on Mobile Browsers" has @michaelg <a href="http://ff.im/aa2sy">talking about mobile Web-ness</a> 11:03 PM Oct 19th
</li>
<li>Cloudera Desktop includes cool <a href="http://bit.ly/rYgD8">MooTools goodness</a> including <a href="http://github.com/anutron/art">MooTools ART</a>! 10:28 PM Oct 19th
</li>
<li>RT @cramforce: Can we please get click-invocable fullscreen mode in browsers #killingflashusecasessince1999 10:25 PM Oct 19th
</li>
<li>I bow to @diveintomark, our <a href="http://bit.ly/4z00wv">Zen master of hacker writing :)</a> 9:58 PM Oct 19th
</li>
<li>RT @cramforce: Awesome! <a href="http://jan.io/5Qhd">“The LALR(1) parser and lexical analyzer generator for JavaScript, written in JavaScript”</a> — 9:48 PM Oct 19th
</li>
<li>RT @cssquirrel: The related post asks you to never let friends use <a href="http://cssquirrel.com/?p=48">CSS3 without taste</a> 12:04 PM Oct 19th
</li>
<li>Glad to see <a href="http://bit.ly/2vttqy">Dojo looking good on webOS</a>. Need to work out how to have Shane submit this to our catalog 2:04 PM Oct 19th
</li>
<li>Congrats to Guilaume and co for 1.0 of the <a href="http://www.playframework.org/">@playframework</a> 11:34 AM Oct 19th
</li>
<li>Harshad RJ has a <a href="http://twinkler.in/">fun Canvas visualization of your Twitter connections</a>. @dalmaer follows too many for it so used @ajaxian 10:18 AM Oct 19th
</li>
<li>"scripty2 automatically supports CSS transitions, so whenever scripty2 effects are used the right thing happens" -@thomasfuchs 10:09 AM Oct 19th
</li>
<li>The timeline that shows what is rendered when from <a href="http://twinkler.in/">WebPageTest</a> is awesome. FOX News sucks at perf as well as content! 11:03 PM Oct 18th
</li>
<li>The state of developers tools! @bgalbs #wds <a href="http://bit.ly/1k5ufC">presentation is now online</a> 4:15 PM Oct 18th
</li>
<li>RT @Pre101: "I just opened up <a href="http://webos101.com/">http://webos101.com</a> as a resource for webOS development." 2:56 PM Oct 18th
</li>
<li>“I really need to build a plugin system for #PhoneGap. I just successfully created support for adding native toolbars / buttons!” -@NachoMan 3:17 PM Oct 17th
</li>
<li>RT @chrisblizzard: A planet site for WebGL - <a href="http://bit.ly/2AMTTK">follow everyone involved</a> 3:12 PM Oct 17th
</li>
<li><a href="http://j.mp/3Zyg7Z">Caja is being used in production on Yahoo! Homepage</a>. Congrats to Mark, Ben et al 3:11 PM Oct 17th
</li>
<li>RT @limi: <a href="http://bit.ly/2NLGvS">The vulnerable Microsoft .NET add-on has been blocked from Firefox</a>. Great handling of the matter from @shaver 10:26 PM Oct 16th
</li>
<li>RT @biilly: Some slides from my <a href="http://j.mp/Sk8Ty">'Intro to #Canvas' presentation tonite</a> - and the <a href="http://j.mp/3kOmeG">getting started code</a> 9:42 PM Oct 16th
</li>
<li>Shinichi Tomita has a cool LiveClipboard jQuery plugin. <a href="http://bit.ly/1OemQU">Check out the demo</a> 3:25 PM Oct 16th
</li>
<li>RT @lachlanhardy: <a href="http://tr.im/BXHR">Fantastic tutorial for using @raphaeljs</a>. Just in time for the 1.1 release! 10:43 PM Oct 15th
</li>
<li>RT @okito: "Empty Bug Queue == Hello SproutCore 1.0 Release Candidate 1!!!" Congrats! 9:45 PM Oct 15th
</li>
<li>RT @mozhacks <a href="http://bit.ly/3L6tgi">"a new demo: making waves with html5 by @localhuman"</a> 9:14 PM Oct 15th
</li>
<li>It will be fun to have a naming scheme for lists (already seeing them e.g. @company/team) &#038; then being able 2 ask @dalmaer;@bgalbs/jsgurus 9:11 PM Oct 15th
</li>
<li>Daniel Bogan rules for taking Ben's Web Directions talk and <a href="http://www.flickr.com/photos/wafer/4015817512/sizes/l/">doing this!</a> 8:41 PM Oct 15th
</li>
<li>Fun to be setting up some public lists. <a href="http://twitter.com/dalmaer/jsgurus">jsgurus</a> and <a href="http://twitter.com/dalmaer/ajaxians">ajaxians</a> Who am I missing? 8:30 PM Oct 15th
</li>
<li>RT @webos_school: Acceleroto, Nice <a href="http://bit.ly/29Hfb9">post about developing for webOS</a>. We've also taken a look at your App. Great work. 8:01 PM Oct 15th
</li>
<li>RT @edwk: Firefox 3.6b1 launches so much faster! Good work Mozilla team! 8:01 PM Oct 15th
</li>
<li>“Titanium's addition of an embedded PHP interpreter is gonna be big, I think. Opens up a massive community to desktop app dev.” -@funkatron 12:12 PM Oct 15th
</li>
<li>“IntelliJ IDEA Community Edition released! Free and open-source. http://jetbrains.org/ cool!” awesome. If only they did this years back! 11:54 AM Oct 15th
</li>
<li>ClickToFlash has an awesome tagline "any crash if probably Flash" http://rentzsch.github.com/...11:58 PM Oct 14th
</li>
<li>RT @diveintomark: Damn, I wish <a href="http://diveintohtml5.org/video.html">this were simpler</a> #html5 #video 10:15 PM Oct 14th
</li>
<li>Hamish Friedlander has a nice new <a href="http://bit.ly/24WxGz">jQuery Concrete</a> library for adding functionality to DOM elements w/ a new CSS engine 8:12 PM Oct 14th
</li>
<li>That @srobbin is always doing cool shizzle. This time he has <a href="http://bit.ly/4DEbCN">jQuery Approach</a> which animates content based on proximity 4:29 PM Oct 14th
</li>
<li>Frederico Knabben has <a href="http://bit.ly/33WwZr">an interesting article on the loading performance of CKEditor</a> and various tricks they employ 4:18 PM Oct 14th
</li>
<li>And @bradneuberg is kicking arse with his new View Source <a href="http://j.mp/1QiSM9">article</a> <a href="http://j.mp/13LdAP">series</a> 2:26 PM Oct 14th
</li>
<li>Robert Nyman has written a high level <a href="http://bit.ly/3XFhjE">intro to HTML5</a> 2:01 PM Oct 14th
</li>
<li>RT @novemberborn: Firefox 3.6 can read your accelerometer. <a href="http://bit.ly/Fygup">Mario Kart in Firefox</a>! (<a href="http://bit.ly/aFETa">via @nonken</a>) 1:54 PM Oct 14th
</li>
<li><a href="http://bit.ly/YNEyB">Secure String Interpolation in JavaScript</a> 12:13 AM Oct 14th
</li>
<li><a href="http://learningwebgl.com/blog/">Learning WebGL</a>. Nice. (via @bradneuberg) 12:09 AM Oct 14th
</li>
<li>RT @andreasbovens: <a href="http://my.opera.com/unite/blog/2009/10/14/it-is-on-10-10-beta-with-opera-unite-is-out">Opera 10.10 beta with Opera Unite is out</a> 11:08 PM Oct 13th
</li>
<li>Congrats Zach! <a href="http://j.mp/13gjga">"@Triggit is reborn as a service that allows advertisers to easily participate in real-time ad exchanges."</a> 3:10 PM Oct 13th
</li>
<li>“Keynote uses path values compatible with SVG for triangles (both types), squares (both types), circles and speech bubbles.” -@dstorey 2:54 PM Oct 13th
</li>
<li>We have an awesome HI team and they have published <a href="http://bit.ly/9QzJA">Immersive App Guidelines</a> (by @webOSdev) 2:50 PM Oct 13th
</li>
<li>RT @tlrobinson: <a href="http://bit.ly/lbrEH">WebSaver, a WebKit-based Mac OS X screensaver</a>. Use any webpage or JavaScript / canvas app. 11:53 AM Oct 13th
</li>
<li>Zack Grossbart gave a jQuery "jumpstart" talk to a bunch of Java devs, and <a href="http://bit.ly/QcILa">you can see it here</a> 10:51 AM Oct 13th
</li>
<li>@font-face performance from @souders: <a href="http://j.mp/k1UtL">"IE doesn’t render anything in the page until the font file is done downloading."</a> 8:56 AM Oct 13th
</li>
<li>RT @iTod: <a href="http://cruzapp.com/">Cruz 0.3 is out</a>. Fluid to follow soonish. 11:06 PM Oct 12th
</li>
<li><a href="http://bit.ly/1mYgZP">“Hello World"</a> :-) -@BBCwebdev welcome Beeb! 6:27 PM Oct 12th
</li>
<li>RT @mozhacks: new post: new device API for Firefox 3.6: <a href="http://bit.ly/fxorient">orientation</a> 5:09 PM Oct 12th
</li>
<li>RT @appcelerator: Building Mobile Apps with Your Web Skills: <a href="http://bit.ly/LKEoc">Titanium for New Devs. Oct 20, 9AM PST.</a> 4:10 PM Oct 12th
</li>
<li>Mike Taylor gives you an easy sample page to <a href="http://j.mp/1OkZI">check HTML5 input attribute support</a> 3:51 PM Oct 12th
</li>
<li>“Real web designers write code. Always have, always will. #aea” -@zeldman3:31 PM Oct 12th
</li>
<li>The <a href="http://bit.ly/4FQ9NG">Ext JS Designer tool</a> looks nice. Fall 2009 will be the time of the Web Developer Tool call outs! 9:35 AM Oct 12th
</li>
<li><a href="http://bit.ly/3BU1LI">Chrome Win Size</a>; Playing with Chrome extension mechanism: I have been watching the work of Aaron and the Chrome.. 9:00 AM Oct 12th
</li>
<li>Tom Theisen has a nice Canvas demo that reminds you of the <a href="http://tomtheisen.com/spread/">Algorithmic Ink / Processing demos</a> 10:15 PM Oct 11th
</li>
<li>"eval() is the forcing function that makes view-source useful for more than just markup." -- Alex Russell 10:02 PM Oct 11th
</li>
<li>“(function(){"use strict";return this}).call(this); - http://bit.ly/iG1r5” -@WebReflection 3:16 PM Oct 11th
</li>
<li>“Muxing 4 videos together into a single stream with <a href="http://bit.ly/kKgah">gstreamer</a> <a href="http://bit.ly/QDdye">video</a>” -@chrisblizzard 3:09 PM Oct 11th
</li>
<li><a href="http://bit.ly/1w2O7C">This Week in HTML5 talks about microdata</a> (by @diveintomark) 12:00 AM Oct 11th
</li>
<li>Alex responds to @ppk on the multi-WebKit issue: <a href="http://bit.ly/19o0z6">"The data doesn’t reflect how fast the mobile market changes."</a> 11:50 PM Oct 10th
</li>
<li>RT @thomasfuchs: Awesome slides on <a href="http://bit.ly/PMsiT">Interface Design Basics</a> by @smoofles. Highly rec'd for devs. 11:47 PM Oct 10th
</li>
<li><a href="http://bit.ly/3orcPZ">Perlito</a> == MiniPerl6 compiler self-hosted in Javascript, Lisp and in Perl 5. 10:08 PM Oct 10th
</li>
<li>RT @nathansmith: Page count for jQuery Cookbook = 468 pages. Looking over a PDF preview. Excited to see it near completion. 10:06 PM Oct 10th
</li>
<li><a href="http://codepad.org/">Codepad</a> is interesting in that it lets you collaboratively run code :) Nice work @sahazel look at embedding @bespin! 10:02 PM Oct 10th
</li>
<li>Love how Adam Barth answered "When will Chrome 4 be released?" A: "When these bugs are done" instead of "We have not publicly announced.." 8:59 PM Oct 10th
</li>
<li>Met the <a href="http://taptu.com/">Taptu</a> folks who have a search "machine" that uses how mobile friendly websites are to the scoring algorithm 12:17 PM Oct 9th
</li>
<li>RT @jeremiahg: <a href="http://bit.ly/xo1pe">"CSS History Hack Used To Ban Torrent Users"</a> 10:03 PM Oct 8th
</li>
<li>RT @stshank: WebGL now in developer version of Chrome, though disabled by <a href="http://bit.ly/2SRJj">default still</a> 10:02 PM Oct 8th
</li>
<li>RT @jhaynie: Appcelerator Titanium + Yahoo YQL = awesomeness .. see the <a href="http://bit.ly/ti_yql">video demo</a> @ 9:56 PM Oct 8th
</li>
<li>RT @WHATWG: HTML5: <a href="http://bit.ly/3FhRh8">Dramatically simplify &lt;script defer&gt; and &lt;script async&gt; handling</a>. 9:56 PM Oct 8th
</li>
<li>RT @kangax: Should you learn Javascript? <a href="http://bit.ly/NTCb8">The answer is simple</a> 9:40 PM Oct 8th
</li>
<li>Awesome :) @bskahan has a quick implementation of <a href="http://bit.ly/2CBpBv">Google's crawlable Ajax proposal</a> 5:36 PM Oct 8th
</li>
<li>RT @nathansmith: <a href="http://bit.ly/17NGEl">Slides on jQuery Performance</a> - Great for designers who write bad jQuery code. (Yeah, you) 4:41 PM Oct 8th
</li>
<li>Panagiotis <a href="http://past.github.com/despin">Astithas has a new Desktop Bespin plugin :)</a> 3:46 PM Oct 8th
</li>
<li><a href="http://bit.ly/1gNwO4">Google wants to make Ajax crawlable</a> via http://url#!state magic that maps to url?_escaped_fragment_=state 9:54 AM Oct 8th
</li>
<li>Mika @Tuupola has written a <a href="http://bit.ly/jvvFG">nice tutorial on doing drag and drop + multi file upload with Gears</a> 9:24 AM Oct 8th
</li>
<li>RT @snookca: <a href="http://snook.ca/s/957">Becoming a Font Embedding Master</a> 10:06 PM Oct 7th
</li>
<li>Simon Kenyon Shepard has <a href="http://www.trisis.co.uk/blog/">created CSSUnit as a way to unit test your presentation code</a> 9:40 PM Oct 7th
</li>
<li>Daniel Steigerwald has a nice lil <a href="http://gist.github.com/204554">JavaScript object type checker</a> that works cross frame/browser 9:27 PM Oct 7th
</li>
<li>Nice to see @ppk do his diligent magic on mobile, this <a href="http://bit.ly/10ulp">time with WebKit comparisons</a> 10:54 AM Oct 7th
</li>
<li>RT @tolmasky: My FOWA talk is up, <a href="http://bit.ly/jq3bV">check out the Bespin integration and new Desktop features in Atlas</a> 8:55 AM Oct 7th
</li>
<li>RT @brucel: #HTML5 doctor article: <a href="http://bit.ly/SELaZ">measure up with the meter tag</a> by @leads. Groovy. 8:54 AM Oct 7th
</li>
<li>Audrew Dupont likes to <a href="http://bit.ly/ywdTm">autojump</a> 8:49 AM Oct 7th
</li>
<li><a href="http://bit.ly/fhDdi">"Install any HTML theme/template into your Rails app"</a> by the awesome @drnic 11:22 PM Oct 6th
</li>
<li>RT @BenWard: Google's front page is using CSS animations to fade in the peripheral chrome when you move the mouse. Actually pretty cool. 11:13 PM Oct 6th
</li>
<li>I love that the What Browser? site by Google (for dummies?) has a section with terms such as "V8 Benchmark Suite." http://whatbrowser.org/ 10:49 PM Oct 6th
</li>
<li>Gilad Bracha discusses the pros and cons of the <a href="http://bit.ly/158aYw">SmallTalk Image</a> 10:22 PM Oct 6th
</li>
<li>RT @eugegim: "I've open sourced an <a href="http://is.gd/40WmU">unobtrusive Javascript plugin for Rails</a> with other goodies." Cool! 9:29 PM Oct 6th
</li>
<li>Bespin just got props in the Air 2.0 session at #AdobeMax #AdobeMax198 (should work in Air 2.0). (via @FlashMorgan) 6:30 PM Oct 6th
</li>
<li>Nice <a href="http://bit.ly/HSYFv">graphical view of browsers</a> (via @azaaza) 11:25 AM Oct 6th
</li>
<li>RT @azaaza: 10 UX Myths. A truly <a href="http://bit.ly/Ist08">excellent article</a> by @songcarver. 11:21 AM Oct 6th
</li>
<li>RT @erikdahlstrom: <a href="http://bit.ly/3NVMKj">SVG icon loader</a>, similar to CSS sprites, multiple images in one file nice work @fyrd 11:08 AM Oct 6th
</li>
<li>Clarification: Web distribution isn't just for free apps. You can charge for apps and not put them into the App Catalog. Your choice! 10:26 AM Oct 6th
</li>
<li>RT @kangax: The most in-depth <a href="http://bit.ly/1B8hXs">explanation of inheritance</a> in ECMAScript I've ever seen. Amazingly, all in Russian 10:11 AM Oct 6th
</li>
<li>RT @jhaynie: #titanium 0.7 should drop final this week. here's a <a href="http://bit.ly/13xaDH">sneak peak</a> 1:04 AM Oct 6th
</li>
<li>An intense couple of weeks; <a href="http://bit.ly/4CBD5W">Palm Developer Program announced</a>: The first couple of weeks at Palm have been a whi.. 1:00 AM Oct 6th
</li>
<li>@bradneuberg Give it a bit of time. <a href="http://bit.ly/2bW4WI">It works. See</a>. You are in WebKit so you can &lt;canvas&gt; <a href="http://bit.ly/JYsv4">See</a> 12:04 AM Oct 6th
</li>
<li>RT @precentral: Why Palm's webOS Dev Announcements tonight <a href="http://bit.ly/vpg9Z">are a big deal</a> 11:26 PM Oct 5th
</li>
<li>RT @palm Recap of a <a href="http://bit.ly/1PA2WL">busy day for webOS developers</a> 11:25 PM Oct 5th
</li>
<li>If @souders likes it, worth looking into. Here he talks about Aptimize, their real-time spriting, <a href="http://bit.ly/Vrtms">and more</a> 11:12 PM Oct 5th
</li>
<li>A refreshed <a href="http://bit.ly/pvjDK">code.google.com/speed</a> w/ more technical content for you (via @GoogleCode) 4:28 PM Oct 5th
</li>
<li><a href="http://post.ly/7Q4z">Why server-side Javascript</a> (via @mahemoff)4:27 PM Oct 5th
</li>
<li>HTML5: Add <a href="http://bit.ly/tFRxe">document.head.</a> (via @WHATWG)4:25 PM Oct 5th
</li>
<li>I've been afraid of changing / because I've built my app / around SQL Features get bolder / schemas get older / Code's getting older 2 @al3x 3:52 PM Oct 5th
</li>
<li>Crazy times: parsing HTML and rendering it using Canvas tag: http://github.com/jamesu/ht... #html5 (via @bradneuberg) 3:17 PM Oct 5th
</li>
<li>James Hall has a really <a href="http://bit.ly/13ZMXZ">nice roundup</a> of cool FF features: full screen video; drag and drop; WebGL; -moz-image-rect 9:42 AM Oct 5th
</li>
<li>Kevin Decker keeps <a href="http://bit.ly/FxLBp">kicking arse with Firediff</a>. His latest version offers revert, search, snapshot, and safe diff 11:27 PM Oct 4th
</li>
<li>Another HTML builder with(HTML). Firebug has one. <a href="http://bit.ly/10rt8O">mkup</a> is one and this is <a href="http://bit.ly/18KTUF">@cramforce's</a> 10:11 PM Oct 4th
</li>
<li><a href="http://bit.ly/4obGpr">"Access binary data of the live &#038; continuous waveform coming from the microphone to create new types of audio apps"</a> 9:51 PM Oct 4th
</li>
<li>Samuel Clay has a nice Raphael demo of a <a href="http://bit.ly/G65qN">Topic Connections Graph</a> 9:42 PM Oct 4th
</li>
<li><a href="http://bit.ly/38YywQ">"We need to disentangle threads from the problems of locks and shared mutable memory."</a>  (via @spyced) 8:46 PM Oct 4th
</li>
<li>Run Perl 6 in the browser? <a href="http://bit.ly/HpIzf">Sprixel is trying to get you there.</a> 8:06 PM Oct 4th
</li>
<li>RT @erikdahlstrom: Script-driven demo exploding a playing video, paper describing some of the <a href="http://tinyurl.com/yctam24">nice svg demos</a> 2:34 PM Oct 4th
</li>
<li>RT @codedread: @danfooo "There's no such thing as the Mobile Web" Fully agree! #svgopen (via @erikdahlstrom) 10:41 AM Oct 4th
</li>
<li>Looking forward to seeing the <a href="http://www.webosschool.com/">classes flushed out</a> for @webos_school. Let us know if you need anything guys! 8:37 AM Oct 4th
</li>
<li>RT @silentlennie "Big 3 &lt;video&gt; improvements: quality (Theora 1.1), seek performance and fullscreen-support. It seems to be maturing nicely"8:34 AM Oct 4th
</li>
<li>Firefox 3.6 has support for <a href="http://bit.ly/2NC46">full screening video</a> 11:15 PM Oct 3rd
</li>
<li>RT @kriszyp > @tlrobinson: node.js, narwhal-jsc proving potential for high perf JS app servers http://bit.ly/15NsS3, http://bit.ly/votoG 10:32 PM Oct 3rd
</li>
<li>Usability testing HTML5 microdata: @hixie posts on the study http://bit.ly/kFVsd 10:31 PM Oct 3rd
</li>
<li>RT @billwscott: Slides from today at Silicon Valley Code Camp 09: DHTML Prototyping. http://bit.ly/1U4zMf. #svcc 10:28 PM Oct 3rd
</li>
<li>This is a top notch post on @font-face including detailed <a href="http://bit.ly/omD7o">browser differences</a> (by Zoltan Hawryluk) 7:00 PM Oct 3rd
</li>
<li><a href="http://bit.ly/22Kihf">The Firefox memory profiler</a> is looking nice thanks to @avarma. There is an <a href="http://bit.ly/4sDPIx">updated addon available</a> 6:54 PM Oct 3rd
</li>
<li>The best and most important talk I've seen in years. Rich Hickey on Clojure's approach to Identity &#038; State http://is.gd/3SLeI (via @jboner) 1:01 PM Oct 2nd
</li>
<li>RT @bradneuberg: "Google urges Web adoption of vector graphics": CNet News: Stephen Shankland: http://tinyurl.com/yexawat #svgweb #svg 12:01 PM Oct 2nd
</li>
<li>Steve Faulkner has tested ARIA support in Windows browsers. FF/IE = 44/43 http://www.paciellogroup.co... 12:00 PM Oct 2nd
</li>
<li>An Engineer's Guide to Bandwidth, a nice right up by YDN http://bit.ly/9HuNP 11:10 AM Oct 2nd
</li>
<li>RT @gruber: Rather than dropping calls, AT&#038;T's new strategy seems to be not ringing your iPhone in the first place when calls come in. 10:23 AM Oct 2nd
</li>
<li>RT @kirillcool > @swingrocks Interesting, #JavaOne is listed on the Moscone center website! http://j.mp/10y7nh OracleOne is here! :) 9:44 AM Oct 2nd
</li>
<li>Joonas Lehtinen has created GWT Graphics, an open source wrapper on SVG and VML http://bit.ly/123rFA 9:36 AM Oct 2nd
</li>
<li>Weave is way faster and reliable now. The team has been cranking the last few months! http://bit.ly/HklpC 11:13 PM Oct 1st
</li>
<li>"processing.js is already amazing. Imagine if we took 8 students, finished it &#038; added 3D support from C3DL?" http://vocamus.net/dave/?p=771 11:07 PM Oct 1st
</li>
<li>David Humphrey shows Cathy Leung's Motionview 3D web goodness http://vocamus.net/dave/?p=771 and ... 11:06 PM Oct 1st
</li>
<li>Nice! The @cloudera folks have created a MooTools based rich web app view for Hadoop: Cloudera Desktop http://bit.ly/3938cT 11:00 PM Oct 1st
</li>
<li>RT @mozhacks new guest post by @humphd: WebGL in the wild: http://bit.ly/10KH4V 10:34 PM Oct 1st
</li>
<li>Just when I get excited about the Web as an app platform.... I use Google Docs :/ 9:45 PM Oct 1st
</li>
<li>Tamura Jones goes into detail on various ways to detect and utilize Chrome Frame, e.g., how to turn it on for all pages http://bit.ly/xjTv2 8:01 PM Oct 1st
</li>
<li>RT @bradneuberg &gt; @sil That's like putting the HTML 4.1 DOCTYPE onto an HTML 2 document &#038; calling it HTML 4.1. Technically but actually no:) 2:44 PM Oct 1st
</li>
<li>Got to see dynaTrace as well as @souders. Some nice work coming there. http://bit.ly/1IgdPD 2:40 PM Oct 1st
</li>
<li>Tony Ross of Microsoft fancies <a href="http://bit.ly/2cJc6F">namespaces lite in HTML</a> 10:56 PM Sep 30th
</li>
<li>Chris Vanrensburg has packaged his <a href="http://bit.ly/16OGqT">zooming image work</a> 9:13 PM Sep 30th
</li>
<li>Not sure I like this praise but... <a href="http://bit.ly/1NVcbr">"Microsoft’s Steve Ballmer slams OS X and Safari and praises Firefox"</a> (via @gen) 8:25 PM Sep 30th
</li>
<li>JavaScript <a href="http://bit.ly/kSOAJ">ZX Spectrum emulator</a> that we posted about awhile back now runs on the iPhone / Mobile Safari 8:59 AM Sep 30th
</li>
<li>@AndreCharland @nitobi if only we would have a chance to meet sometime soon to chat about things :) 3:45 PM Sep 29th
</li>
<li>Kalle Saas has shared a simple JavaScript localization <a href="http://bit.ly/V9MqH">function that he uses</a> 12:00 PM Sep 29th
</li>
<li>RT @dewitt: It's simple math: Microsoft will fix the browser only when they start making money on the web. I'm rooting for Bing. 12:00 AM Sep 29th
</li>
<li>RT @okito: <a href="http://www.listenapp.com">Listenapp</a> - cool new SproutCore 1.0 app 11:58 PM Sep 28th
</li>
<li>RT @kriszyp &gt; @WebReflection Persevere truly preserves the JS paradigm all the way down where CouchDB fails to: dates, circ refs, functions 9:56 PM Sep 28th
</li>
<li>Mojo SDK 1.2 has followed up after webOS 1.2. New tools (e.g. palm-log), new APIs (e.g. Download Manager API), <a href="http://bit.ly/2XQKBX">and more</a> 3:15 PM Sep 28th
</li>
<li>Dean Edwards: "I'm currently writing a JavaScript implementation of the &lt;video&gt; element." Ahhhhh yeah :) Good news for us ;) 1:43 PM Sep 28th
</li>
<p></a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/a-state-of-the-web-via-october-tweets/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>$100 off The Ajax Experience expires Friday</title>
		<link>http://ajaxian.com/archives/100-off-the-ajax-experience-expires-friday</link>
		<comments>http://ajaxian.com/archives/100-off-the-ajax-experience-expires-friday#comments</comments>
		<pubDate>Mon, 24 Aug 2009 23:19:15 +0000</pubDate>
		<dc:creator>tberardi</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Ajaxian.com Announcements]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[The Ajax Experience]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=7284</guid>
		<description><![CDATA[This Friday, August 28 marks the $100 off early-bird deadline for The Ajax Experience conference, September 14-16 in Boston, MA. Friday is your last chance to save $100 off the registration fee. Visit the conference site to register now! Below is the latest agenda at-a-glance with over 40 essential sessions, case studies, interactive panels and insightful <a href="http://ajaxian.com/archives/100-off-the-ajax-experience-expires-friday">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>This Friday, August 28 marks the $100 off early-bird deadline for <a href="http://ajaxexperience.techtarget.com/conference/index.html" target="_blank">The Ajax Experience</a> conference, September 14-16 in Boston, MA. Friday is your last chance to save $100 off the registration fee. Visit the conference site to register now!</p>
<p>Below is the latest agenda at-a-glance with over 40 essential sessions, case studies, interactive panels and insightful keynotes from Dion and Ben of Ajaxian.com, Brendan Eich, Douglas Crockford and Ross Boucher. <a href="http://ajaxexperience.techtarget.com/conference/index.html" target="_blank">Register now</a> to take advantage of $100 early-bird savings and join your peers right in Boston. This great offer expires on Friday, August 28.</p>
<p>--------------------------------------------------------------------------------</p>
<h3>DAY ONE - Monday, September 14</h3>
<p>7:00 - 8:00 a.m.   Registration and Welcome Refreshments</p>
<p>8:05 - 9:05 a.m.   Keynote: ‘The Future of Ajax: The Browser Reinvented' with Ben Galbraith and  Dion Almaer, Co-founders, Ajaxian.com</p>
<p>9:05 - 9:45 a.m.   5-minute Lightning Rounds (HOT Ajax topics coming soon!)</p>
<p>9:45 - 10:10 a.m.   Refreshment Break, Peer and Vendor Networking</p>
<p>10:10 - 11:10 a.m.   Choose between:<br />
‘Design Tips for Dynamic UIs' with Patrick Lightbody<br />
‘Beyond IFrames: Web Sandboxes' with Scott Isaacs<br />
‘Building Accessible User Interfaces with jQuery and Fluid Infusion' with Colin Clark<br />
‘From Desktop to Web - Getting it Right' with John Trelfa</p>
<p>11:20 - 12:00 p.m.   Luncheon Keynote</p>
<p>12:00 - 12:50 p.m.   Lunch and Peer Networking</p>
<p>1:00 - 2:15 p.m.   Panel: ‘ES5: ECMAScript Standards for a Better Web' led by Allen Wirfs-Brock<br />
Panelists: Brendan Eich, Douglas Crockford, Mark Miller</p>
<p>2:25 - 3:25 p.m.   Choose between:<br />
‘Interoperable Ajax Tools and Mashups' with Adam Peller<br />
‘API Doc Smackdown: YUI Doc versus JS Doc Toolkit' with Ted Husted<br />
‘Even Faster Web Sites' with Steve Souders<br />
‘Designing for Interesting Moments' with Bill Scott</p>
<p>3:25 - 3:50 p.m.   Refreshment Break, Peer and Vendor Networking</p>
<p>3:50 - 4:15 p.m.   New Technology Launch</p>
<p>4:15 - 5:15 p.m.   Keynote: ‘The JSON Saga' with Douglas Crockford, Author, ‘JavaScript: The Good Parts'; Creator, JSON</p>
<p>5:15 p.m.   Ajax Experience Evening Event</p>
<p> </p>
<h4>DAY TWO - Tuesday, September 15</h4>
<p>7:30 - 8:00 a.m.   Registration and Welcome Refreshments</p>
<p>8:05 - 9:05 a.m.   Keynote: ‘ECMAScript Harmony and the Future of JavaScript' with Brendan Eich, Creator, JavaScript; CTO, Mozilla Foundation</p>
<p>9:05 - 9:35 a.m.   5-minute Lightning Rounds (HOT Ajax Topics)</p>
<p>9:35 - 10:00 a.m.   Refreshment Break, Peer and Vendor Networking</p>
<p>10:00 - 11:30 a.m.   Choose between:<br />
Standards Session with Brendan Eich<br />
‘Web Compatibility and Performance Testing in a Multi-Browser World' with Imad Mouline &amp; Ryan Breen</p>
<p>11:40 - 12:20 p.m.   Luncheon Keynote</p>
<p>12:20 - 1:10 p.m.   Lunch and Peer Networking</p>
<p>1:20 - 1:50 p.m.   Vendor Tech Sessions</p>
<p>2:00 - 3:00 p.m.   Choose between:<br />
‘Advanced Web Application Security' with Joe Walker<br />
‘Adaptive Static Resource Optimization in the Ajax World' with David Wei &amp; Changhao Jiang<br />
‘Object-Oriented CSS: for Scalable, Fast and Beautiful Web Applications' with Nicole Sullivan<br />
‘JavaScript: The Good Parts' with Douglas Crockford</p>
<p>3:00 - 3:25 p.m.   Refreshment Break, Peer and Vendor Networking</p>
<p>3:25 - 4:25 p.m.   Choose between:<br />
‘Ample SDK: Standards-based Runtime for Client-side Applications' with Sergey Ilinsky<br />
‘How to Simplify and Automate Testing Ajax Applications' with Ted Husted<br />
‘Web Services and JavaScript - Using and Offering Data on the Web for All of Us' with Christian Heilmann</p>
<p>4:25 - 5:25 p.m.   Ask the Expert Discussion Groups (Meet one-on-one with speakers)</p>
<p>5:25 p.m.    Ajax Experience Evening Event</p>
<p> </p>
<h4>DAY THREE - Wednesday, September 16</h4>
<p>7:30 - 8:00 a.m.   Welcome Refreshments</p>
<p>8:05 - 9:05 a.m.   Keynote: ‘The Future of Development Tools' with Ross Boucher, Co-founder, 280 North</p>
<p>9:05 - 9:20 a.m.   5-minute Lightning Rounds (HOT Ajax Topics coming soon!)</p>
<p>9:30 - 10:30 a.m.   Choose between:<br />
‘Improving Facebook's Performance with Ajax and Browser Caching' with David  Wei &amp; Changhao Jiang<br />
‘Bringing Data to Life in the Browser with the YUI Library' with Jenny Han Donnelly<br />
‘Designing for the Mobile Web with JavaScript' with Brian LeRoux<br />
‘Building Voice Recognition and Audio Recording into Web Applications with WAMI' with Andrew Sutherland</p>
<p>10:30 - 10:55 a.m.   Refreshment Break, Peer and Vendor Networking</p>
<p>10:55 - 12:55 p.m.   Panel: ‘Secure Mashups: Getting to Safe Web Plug-ins' with Douglas Crockford, Scott Isaacs, Mike Samuel, Marcel Laverdet</p>
<p>12:25 - 1:15 p.m.   Lunch and Peer Networking</p>
<p>1:25 - 2:25 p.m.   Choose between:<br />
‘The Challenges and Rewards of Writing a 100K-line JavaScript Application with Laurens van den Oever<br />
‘Building Rich Web Applications with Ext JS 3.0' with Rich Waters<br />
‘Cappuccino Web Framework' with Ross Boucher</p>
<p>2:35 - 3:35 p.m.   Choose between:<br />
‘Testing the Testers: YUI Unit versus QUnit' with Ted Husted<br />
‘Building a Web Application with Atlas, Start to Finish' with Ross Boucher<br />
‘Web. Smartphone. Future. Now.' with Jason O'Keefe<br />
‘ARIA - Pushing Accessibility Even Further and How to Get Your Boss to Join in' with Joe McCann</p>
<p>3:35 p.m.   Conference ends</p>
<p>Visit <a href="http://ajaxexperience.techtarget.com/conference/index.html" target="_blank">AjaxExperience.com</a> to learn more and save $100!</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/100-off-the-ajax-experience-expires-friday/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Cross domain iframe communication without location polling</title>
		<link>http://ajaxian.com/archives/cross-domain-iframe-communication-without-location-polling</link>
		<comments>http://ajaxian.com/archives/cross-domain-iframe-communication-without-location-polling#comments</comments>
		<pubDate>Mon, 24 Aug 2009 09:30:03 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Front Page]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=7276</guid>
		<description><![CDATA[Piers Lawson has come up with an interesting new technique for cross domain communication using an iframe and not having to poll the location for a #hashchange: Most articles on using the URL Fragment technique advocate the target iFrame polling its Location to detect changes in the fragment… perhaps checking 5 times a second. Julien <a href="http://ajaxian.com/archives/cross-domain-iframe-communication-without-location-polling">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Piers Lawson has come up with an interesting new technique for cross domain communication using an iframe and <a href="http://shouldersofgiants.co.uk/Blog/post/2009/08/17/Another-Cross-Domain-iFrame-Communication-Technique.aspx">not having to poll the location for a #hashchange</a>:</p>
<blockquote>
<p>Most articles on using the URL Fragment technique advocate the target iFrame polling its Location to detect changes in the fragment… perhaps checking 5 times a second. <a title="Julien Lecomte's blog" href="http://www.julienlecomte.net/blog/2007/11/31/">Julien Lecomte</a> describes a variant that creates throw away proxy iFrame’s. These can check their location within an onload event handler, extract the message, then make a call to the target iFrame, passing in the message. Once complete, the iFrame can be deleted. This means polling is no longer required. Also, when combined with caching, it should be fast and remove the risk of missing a message.</p>
<p>This <a title="Michael Mahemoff" href="http://softwareas.com/cross-domain-communication-with-iframes">post</a> by Michael Mahemoff provides a good introduction to both techniques. </p>
<p>I came across these blog entries after I had come up with something similar, but with a slight twist… it may not be new but I didn’t find any other examples along these lines. I used a permanent proxy frame instead of throw away proxies. However, rather than polling the Location, I signalled a new “message” was ready to be processed by resizing the proxy iFrame. The JavaScript within the proxy iFrame registers a resize handler which when triggered reads the message. This approach is more immediate than both the polling and the dynamic iFrame techniques. I’m not 100% sure on whether threading within browser could allow messages to be lost in the case of several being sent close together, but I don’t believe so.</p>
</blockquote>
<p>It is interesting to see <a href="http://www.shouldersofgiants.co.uk/Examples/CrossDomain/ParentPage.html">how it all works</a>:</p>
<blockquote><p>
The Parent Page hosts two iFrames. One contains the Content to be displayed, the second is a Proxy that is moved out of sight (both iFrames are served by the same domain);</p>
<p>The Parent Page sends messages to the Content iFrame by changing the URL Fragment of the Proxy iFrame and signalling that a new message is available (by toggling the size of the Proxy):</p>
<div class="igBar"><a href="javascript:showCodeTxt('javascript-10');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-10">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">function</span> SendMessageToFrame<span style="color:#006600; font-weight:bold;">&#40;</span>message<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> elem = document.<span style="color: #006600;">getElementById</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'innerFrameProxy'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; elem.<span style="color: #006600;">contentWindow</span>.<span style="color: #006600;">location</span> = <span style="color: #3366CC;">'http://www.pierslawson.plus.com/Examples/CrossDomain/InnerFrameProxy.html#'</span> + message;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; elem.<span style="color: #006600;">width</span> = elem.<span style="color: #006600;">width</span>&gt; <span style="color:#800000;">50</span> ? <span style="color:#800000;">50</span> : <span style="color:#800000;">100</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p>The Proxy registers a handler that is called as its size is changed. The handler inspects the URL Fragment and passes the message on to the Content iFrame (this is allowed as it is not a cross domain call). It is this call that fails with Opera… there does not appear to be a way for the Proxy iFrame to get a handle to the Content iFrame. Internet Explorer and Firefox can use parent.frames["hostFrame"] to find the Content iFrame.
</p></blockquote>
<p>Nice work Piers!</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/cross-domain-iframe-communication-without-location-polling/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>jXHR: XHR API, JSON-P backend conduit</title>
		<link>http://ajaxian.com/archives/jxhr-xhr-api-json-p-backend-conduit</link>
		<comments>http://ajaxian.com/archives/jxhr-xhr-api-json-p-backend-conduit#comments</comments>
		<pubDate>Thu, 20 Aug 2009 11:55:44 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Front Page]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=7263</guid>
		<description><![CDATA[The Mullet: Business up front, party in the rear Kyle has take the XHR API that we all know and.... wrap.... and married it with a JSON-P transport to make jXHR. He tells us more: I've put out a very simple little project called jXHR which does cross-domain Ajax via JSON-P calls (meaning, totally javascript <a href="http://ajaxian.com/archives/jxhr-xhr-api-json-p-backend-conduit">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://ajaxian.com/wp-content/uploads/mullet.jpg" alt="" title="mullet" width="375" height="500" class="alignnone size-full wp-image-7264" /></p>
<blockquote><p>
The Mullet: Business up front, party in the rear
</p></blockquote>
<p>Kyle has take the XHR API that we all know and.... wrap.... and married it with a JSON-P transport to make <a href="http://test.getify.com/jXHR/">jXHR</a>.</p>
<p>He tells us more:</p>
<blockquote><p>
I've put out a very simple little project called jXHR which does cross-domain Ajax via JSON-P calls (meaning, totally javascript based), but does so with an emulation of the native XHR API ("onreadystatechange", "open", "send", etc). It also provides some basic error handling capabilities, which is something most JSON-P solutions don't currently offer, at least not without complicated timers, etc.</p>
<p>The goal was to provide a simpler interface for making cross-domain Ajax calls with JSON-P, but in nearly the same way you make same-domain calls, by using the standard XHR API. Also, I wanted the solution to be framework independent for those who don't or can't use jQuery, Dojo, etc
</p></blockquote>
<p>Frameworks such as Dojo allow you to choose an transport independent of their API (e.g. <a href="http://docs.dojocampus.org/dojo/io/iframe">iframe transport</a> versus XHR).</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/jxhr-xhr-api-json-p-backend-conduit/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Keynotes Announced for The Ajax Experience!</title>
		<link>http://ajaxian.com/archives/keynotes-announced-for-the-ajax-experience</link>
		<comments>http://ajaxian.com/archives/keynotes-announced-for-the-ajax-experience#comments</comments>
		<pubDate>Sun, 12 Jul 2009 23:37:45 +0000</pubDate>
		<dc:creator>tberardi</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Section]]></category>
		<category><![CDATA[The Ajax Experience]]></category>
		<category><![CDATA[Ajaxian.com Announcements]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=7097</guid>
		<description><![CDATA[Ajaxian.com's The Ajax Experience gives you access to over 40 sessions presented by framework founders, independent experts and development leaders - all focused on proven solutions for current and emerging challenges plaguing Ajax developers, like performance, cross-browser rendering, security and architecture. Register Now for The Ajax Experience! September 14-16 in Boston, MA. Keynote presentations examine <a href="http://ajaxian.com/archives/keynotes-announced-for-the-ajax-experience">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Ajaxian.com's The Ajax Experience gives you access to over 40 sessions presented by framework founders, independent experts and development leaders - all focused on proven solutions for current and emerging challenges plaguing Ajax developers, like performance, cross-browser rendering, security and architecture.</p>
<p><a href="http://ajaxexperience.techtarget.com/conference/index.html?Offer=AEajpost712" target="_blank">Register Now for The Ajax Experience!</a> September 14-16 in Boston, MA.</p>
<p>Keynote presentations examine advancements being made in JavaScript, CSS and browser implementations that you can leverage now to create quality Ajax apps. Plus you gain key insights into development tools that you can use today to cut weeks off development timelines.</p>
<p>Keynotes Include:</p>
<p><a href="http://ajaxexperience.techtarget.com/conference/html/sessions.html?Offer=AEajpost712#BenDionKeynote" target="_blank">'The Future of Ajax: The Browser Reinvented'</a> with Ben Galbraith and Dion Almaer, Co-founders of Ajaxian.com.</p>
<p>See how to leverage new browser technologies on the horizon (and in most cases, largely already here) that will power the future of Ajax applications. Drawing from real-life examples of cutting-edge applications, Ben and Dion showcase Ajax innovations that you can tap into today to create compelling applications that users demand - including Canvas, faster JavaScript, Web Workers, Bespin and more.</p>
<p><a href="http://ajaxexperience.techtarget.com/conference/html/sessions.html?Offer=AEajpost712#RBoucherKeynote" target="_blank">'The Future of Development Tools'</a> with Ross Boucher, Co-founder of 280 North.</p>
<p>There are many different development tools available and choosing the one that best meets your needs, and getting the most out of that tool, can be challenging and time-consuming. Ross Boucher shares little-known tips for developing applications versus web pages and websites, with a focus on JavaScript debugging and profiling tools as well as existing and upcoming development IDEs, including the much anticipated Atlas.</p>
<p><a href="http://ajaxexperience.techtarget.com/conference/html/sessions.html?Offer=AEajpost712#DCrockfordKeynote" target="_blank">'A Web of Confusion'</a> with Douglas Crockford, Author of <em>JavaScript: The Good Parts</em></p>
<p>The browser is generally regarded as an incompetent blunder, crafted with horrendous security vulnerabilities which, 14 years on, still have not been repaired. Yet, despite the browser's lousy reputation, when it comes to security, it is significantly better than everything else. Attend and hear Douglas Crockford uncover emerging security threats in the browser and the necessary steps to avoid putting your apps at risk.</p>
<p> ----------------------------------------------</p>
<p>These are just a few key highlights of what promises to be the most educational web development event of the year or your money back - no questions asked. Sessions are being finalized but many are ready for your review right now! <a href="http://ajaxexperience.techtarget.com/conference/html/eventsataglance.html?Offer=AEajpost712" target="_blank">View the full agenda</a>.</p>
<p>And don't forget to take advantage of the special <a href="http://ajaxexperience.techtarget.com/conference/html/register.html?Offer=AEajpost712" target="_blank">$300 savings </a>before the discount expires July 31!</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/keynotes-announced-for-the-ajax-experience/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Registration Now Open for The Ajax Experience 2009!</title>
		<link>http://ajaxian.com/archives/registration-now-open-for-the-ajax-experience-2009</link>
		<comments>http://ajaxian.com/archives/registration-now-open-for-the-ajax-experience-2009#comments</comments>
		<pubDate>Wed, 17 Jun 2009 17:06:03 +0000</pubDate>
		<dc:creator>tberardi</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Ajaxian.com Announcements]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Section]]></category>
		<category><![CDATA[The Ajax Experience]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=6969</guid>
		<description><![CDATA[ "When the heck are you guys going to open registration for The Ajax Experience this year!?" Over the last 3 months that is, without question, the most frequently received email we've had from Ajaxian members like you. The good news is that the wait is finally over! Registration has officially opened for this year's Ajax <a href="http://ajaxian.com/archives/registration-now-open-for-the-ajax-experience-2009">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p> "When the heck are you guys going to open registration for The Ajax Experience this year!?"</p>
<p>Over the last 3 months that is, without question, the most frequently received email we've had from Ajaxian members like you. The good news is that the wait is finally over! Registration has officially opened for this year's Ajax Experience conference and best of all, we're offering you $300 off when you register by July 31st. Check out our just-launched Web site right here for all the benefits we have lined up for you this year:  <a href="http://ajaxexperience.techtarget.com/conference/index.html?Offer=AEajpost617   ">The Ajax Experience, September 14-16 in Boston, MA</a></p>
<p>Please Note: While we'll be adding the bulk of our sessions to our individual conference tracks over the next few weeks, we want to be sure you take advantage of the early-bird discount now. That said, we've once again confirmed today's best and brightest Ajax minds from across the globe and we're featuring a number of these keynote presenters and session experts for your review on the site right now, including:</p>
<p>* Ben Galbraith and Dion Almaer, Co-founders of Ajaxian.com<br />
* Brendan Eich, Creator of JavaScript and CTO of Mozilla<br />
* Douglas Crockford, Creator of JSON and Author of <em>JavaScript: The Good Parts<br />
</em>* Bill Scott, Director of UX at Netflix<br />
* Ross Boucher, Co-founder of 280 North and the Cappuccino &amp; Atlas frameworks<br />
* Joe Walker, Creator of DWR<br />
* Nicole Sullivan, Creator of Object-Oriented CSS<br />
* David Wei and Xiang Chaong, Research Scientists at Facebook<br />
* And more! </p>
<p>More essential speakers and sessions to be announced in the coming weeks, so stay tuned and start planning. One feature we think you're going to love this year is "session previews." Each morning we're featuring 5-minute lightning rounds where presenters entice the audience to attend their session by giving them a brief synopsis of what they will learn. Now you'll have even more exposure to new, cutting-edge technologies and proven solutions - and a better idea of how to spend your days.</p>
<p> Don't delay, <a href="http://ajaxexperience.techtarget.com/conference/html/register.html?Offer=AEajpost617">register now</a> for The Ajax Experience to take advantage of your $300 early bird savings.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/registration-now-open-for-the-ajax-experience-2009/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Digg shows Multipart XMLHttpRequest prototype</title>
		<link>http://ajaxian.com/archives/digg-shows-multipart-xmlhttprequest-prototype</link>
		<comments>http://ajaxian.com/archives/digg-shows-multipart-xmlhttprequest-prototype#comments</comments>
		<pubDate>Thu, 21 May 2009 12:31:44 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=6815</guid>
		<description><![CDATA[Micah Snyder of Digg posted on DUI.Stream, an experimental library that implements a multipart XHR technique to bundle resources into one request and then breaks them out at the other end: One of the ways that high-performance websites like Yahoo suggest speeding up load times is by reducing the number of HTTP requests per page. <a href="http://ajaxian.com/archives/digg-shows-multipart-xmlhttprequest-prototype">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Micah Snyder of Digg posted on <a href="http://blog.digg.com/?p=621">DUI.Stream</a>, an experimental library that implements a multipart XHR technique to bundle resources into one request and then breaks them out at the other end:</p>
<blockquote><p>
One of the ways that high-performance websites like Yahoo suggest speeding up load times is by reducing the number of HTTP requests per page. We started thinking about what we could do to reduce HTTP overhead, and where we could get the biggest benefits from it. Well, one thing led to another and the next thing we knew we were talking about writing a generalized framework for bundling files, sending them through a single request, then separating them for use once they head down the pipe.</p>
<p>We call this technique MXHR (short for Multipart XMLHttpRequests), and we wrote an addition to our Digg User Interface library called DUI.Stream to implement it. Specifically, DUI.Stream opens and reads multipart HTTP responses piece-by-piece through an XHR, passing each chunk to a JavaScript handler as it loads.</p>
<p>Why do this? Well, DUI.Stream will allow developers to drastically improve the speed of uncached page loads by bundling most of their resources into a single HTTP request, with a single time-to-first-byte and no request throttling by the user agent. Additionally, the size of the response has no effect on the rendering time of each chunk, as the client handles each piece of the response on the fly and can inject it into the DOM for rendering immediately, in the exact order you specify. On a high traffic, high-activity site like Digg, we have to display incredible amounts of data on each permalink — typically hundreds of user images within the first 50 comment threads on a page alone, not to mention the UI chrome and actual comment data. (You can see this for yourself: notice the number of HTTP requests that queue up when you expand a page of comments). So our primary use case for DUI.Stream is turning that first long, arduous page load on an empty cache into something nearly indistinguishable from a page of data with fully cached resources.</p>
<p>You can take a look at a <a href="http://demos.digg.com/stream/streamDemo.html">demo in action</a>. Reloading the puppy shows how life varies so much on each request. The demos looks like this:</p>
<div class="igBar"><a href="javascript:showCodeTxt('javascript-12');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-12">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">var</span> s = <span style="color: #003366; font-weight: bold;">new</span> DUI.<span style="color: #006600;">Stream</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">var</span> content = <span style="color: #3366CC;">''</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">s.<span style="color: #006600;">listen</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'text/html'</span>, <span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span>payload<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; content += payload;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">s.<span style="color: #006600;">listen</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'complete'</span>, <span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; $<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'#stream'</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">append</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'&lt;p&gt;Stream took: '</span> + <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">getTime</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> - streamStart<span style="color:#006600; font-weight:bold;">&#41;</span> + <span style="color: #3366CC;">'ms&lt;/p&gt;'</span> + content<span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> normalStart = <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">getTime</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">for</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i = <span style="color:#800000;">0</span>; i &lt;<span style="color:#800000;">9</span>; i++<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; $.<span style="color: #006600;">ajax</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #3366CC;">'url'</span>: <span style="color: #3366CC;">'loremIpsum.html'</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #3366CC;">'async'</span>: <span style="color: #003366; font-weight: bold;">true</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #3366CC;">'type'</span>: <span style="color: #3366CC;">'GET'</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #3366CC;">'dataType'</span>: <span style="color: #3366CC;">'html'</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #3366CC;">'success'</span> : <span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span>html<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'#normal'</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">append</span><span style="color:#006600; font-weight:bold;">&#40;</span>html<span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; $.<span style="color: #006600;">ajax</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #3366CC;">'url'</span>: <span style="color: #3366CC;">'loremIpsum.html'</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #3366CC;">'async'</span>: <span style="color: #003366; font-weight: bold;">true</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #3366CC;">'type'</span>: <span style="color: #3366CC;">'GET'</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #3366CC;">'dataType'</span>: <span style="color: #3366CC;">'html'</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #3366CC;">'success'</span> : <span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span>html<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'#normal'</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">append</span><span style="color:#006600; font-weight:bold;">&#40;</span>html<span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'#normal'</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">prepend</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'&lt;p&gt;Normal took: '</span> + <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">getTime</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> - normalStart<span style="color:#006600; font-weight:bold;">&#41;</span> + <span style="color: #3366CC;">'ms'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">var</span> streamStart = <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">getTime</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">s.<span style="color: #006600;">load</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'testStreamData.php'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p>How does Digg see this as a benefit?</p>
<blockquote><p>
Let’s talk a bit about the architectural benefits of implementing MXHRs with DUI.Stream. Back when the web was based largely on a page metaphor (i.e.: one central document with external references), whenever you loaded the page, the page requested its images, stylesheets, etc, then you were done. These days you’re just as often loading an application; the page progressively enhances into a stateful UI by loading extra stylesheets, scripts and a whole mess of UI chrome after the initial request. Yet, we’re still using the old model flow of get markup –> render markup –> request external resources –> load and display externals.</p>
<p>Take our modal login dialog box for example. In order to reduce requests we bundle its JavaScript in with the rest of the page, we put its CSS up in the header with the rest of the styles, then we request only the markup for the dialog box, render it, and let it fire its own HTTP requests for the images that make up its chrome. In this broken model, HTTP connections and rendering behaviors split our UI architecture up into different parts of the page that all render at different times at the browser’s discretion. Even if we put everything into one cohesive structure and loaded the CSS link, script tag and markup together, they’d still all fire their own HTTP requests and the images would still come in afterwards on the first page load. This just won’t do.</p>
<p>Now, let’s rethink how our login dialog could work using DUI.Stream. We can request a Stream that contains everything needed to render and use the dialog box. As each part comes in, it gets passed through to be built, and renders immediately with no image backfill or delayed JS behavior. The DUI.Stream framework can then pass those resources back into cacheable elements for our next page load, which can happily 302 its way quickly through the rendering process. Pretty sweet right? Right.
</p></blockquote>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/digg-shows-multipart-xmlhttprequest-prototype/feed</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Ajax Frameworks Decision Center</title>
		<link>http://ajaxian.com/archives/ajax-frameworks-decision-center</link>
		<comments>http://ajaxian.com/archives/ajax-frameworks-decision-center#comments</comments>
		<pubDate>Fri, 15 May 2009 10:50:33 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Front Page]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=6799</guid>
		<description><![CDATA[Why choose which Ajax framework you can use, when you can let The Machine tell you! Jim Briggs of Athenz has pointed his decision machine at the age old problem of choosing which darn library to script src! Here is what Jim told us about the new service: There has been some discussion lately on <a href="http://ajaxian.com/archives/ajax-frameworks-decision-center">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Why choose which Ajax framework you can use, when you can let The Machine tell you! Jim Briggs of Athenz has pointed his decision machine at the age old problem of choosing which darn library to script src!</p>
<p><img src="http://ajaxian.com/wp-content/uploads/ajaxdecision.png" alt="" title="ajaxdecision" width="500" height="290" class="alignnone size-full wp-image-6800" /></p>
<p>Here is what Jim told us about the new service:</p>
<blockquote><p>
There has been some discussion lately on Ajaxian about “What is the best framework?”  As Dion said in another post, “It is agonizing. It is hard. It isn't pretty.”  Both newbies and gurus have weighed in on the subject.  As a Ajax programmer, the issue is personally important to me, but rather than cast out another opinion, I’ve created a web site, The Ajax Frameworks Decision Center, that allows  anybody to evaluate and select the Ajax or RIA framework that best meets their particular needs.  The Decision Center includes a 100-plus requirements model, tools to prioritize, compare, and evaluate frameworks, and a 35 page guide that elaborates on the requirements and the features that you find in frameworks.</p>
<p>In addition, anyone can publish an evaluation of any framework and vendors can publish product information inside the Decision Center.  All of this is free.</p>
<p>Objectively, the choice of a framework can be difficult.  Subjectively, the choice can be agonizing.  The Decision Center doesn’t eliminate all the difficulty, but it provides a way to make a good and justifiable decision and feel confident about it in the end.</p>
<p>This is a brand new service and I’ll respond quickly to any feedback so I can make the site better and so I can help you make better technology decisions now and in the future.
</p></blockquote>
<p>Or see it at work:</p>
<p><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/BMqhae33Z3k&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/BMqhae33Z3k&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
<p>You have to signup to check it out, and it may feel like you are filling out a TPS form ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/ajax-frameworks-decision-center/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Ajax Framework Analysis Results</title>
		<link>http://ajaxian.com/archives/ajax-framework-analysis-results</link>
		<comments>http://ajaxian.com/archives/ajax-framework-analysis-results#comments</comments>
		<pubDate>Wed, 29 Apr 2009 11:44:47 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Front Page]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=6706</guid>
		<description><![CDATA[Matt Raible has posted on the analysis the he has done for a client on choosing an Ajax framework. This is the age old question "which Ajax framework should I use?" It is agonizing. It is hard. It isn't pretty. We created a dartboard: Matts take compares Dojo, Ext JS, GWT, and YUI using various <a href="http://ajaxian.com/archives/ajax-framework-analysis-results">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Matt Raible has posted on <a href="http://raibledesigns.com/rd/entry/ajax_framework_analysis_results">the analysis the he has done for a client</a> on choosing an Ajax framework. This is the age old question "which Ajax framework should I use?" It is agonizing. It is hard. It isn't pretty. We created a dartboard:</p>
<p><img src="http://ajaxian.com/wp-content/uploads/ajaxdartboard.png" alt="" title="ajaxdartboard" width="500" height="486" class="alignnone size-full wp-image-6707" /></p>
<p>Matts take compares Dojo, Ext JS, GWT, and YUI using various criteria that you can see here (including his ratings):</p>
<p><iframe src="http://spreadsheets.google.com/pub?key=p2SLd279MTmShLQdCjfi0OQ&amp;output=html&amp;gid=0&amp;single=true&amp;widget=true" style="margin: 0pt auto;" frameborder="0" height="500" width="520"></iframe></p>
<p>What you quickly see is that it is fairly hard to choose between the popular frameworks (and this is a specific subset that was narrowed down, hence no jQuery, Prototype, Mootools, etc).</p>
<p>I am interested in seeing what other criteria people use to choose.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/ajax-framework-analysis-results/feed</wfw:commentRss>
		<slash:comments>49</slash:comments>
		</item>
		<item>
		<title>Need a Script? Check out AjaxRain.com</title>
		<link>http://ajaxian.com/archives/need-a-script-check-out-ajaxraincom</link>
		<comments>http://ajaxian.com/archives/need-a-script-check-out-ajaxraincom#comments</comments>
		<pubDate>Mon, 06 Apr 2009 15:37:54 +0000</pubDate>
		<dc:creator>Rey Bango</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Front Page]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=6495</guid>
		<description><![CDATA[Launched in June, 2007, AjaxRain.com has continued its steady growth of aggregating awesome extensions for the popular JavaScript frameworks. It was a late starter coming after the popular site MiniAjax but while MiniAjax unfortunately stopped updates, AjaxRain continued loading up with top scripts from around the web. Currently listing 1200+ scripts, it has become the <a href="http://ajaxian.com/archives/need-a-script-check-out-ajaxraincom">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Launched in June, 2007, <a href="http://www.ajaxrain.com">AjaxRain.com</a> has continued its steady growth of aggregating awesome extensions for the popular JavaScript frameworks. It was a late starter coming after the popular site <a href="http://www.miniajax.com/">MiniAjax</a> but while MiniAjax unfortunately stopped updates, AjaxRain continued loading up with top scripts from around the web. Currently listing 1200+ scripts, it has become the starting place for finding cool features to leverage in your apps.</p>
<p><a href="http://www.ajaxrain.com"><img src="http://ajaxian.com/wp-content/uploads/ajaxrain.png" alt="" title="ajaxrain"  class="alignnone size-medium wp-image-6498" /></a></p>
<p>Looking at the <a href="http://www.ajaxrain.com/tag?tag=jquery">jQuery</a>, <a href="http://www.ajaxrain.com/tag?tag=moo">MooTools</a> &#038; <a href="http://www.ajaxrain.com/tag?tag=prototype">Prototype</a> categories you can see a wealth of options for all types of functionality.</p>
<p>They've also just updated the site:</p>
<ul>
<li>Enhancing the UI</li>
<li>Improving advanced search options to increase discoverability</li>
<li>Tags for every aspect of UI design</li>
</ul>
<p>In addition, they've now started to leverage <a href="http://www.twitter.com/ajaxrain">Twitter</a> and <a href="http://apps.facebook.com/ajaxrain/">Facebook</a> to spread the word about new scripts.</p>
<p>Finding good scripts is tough as it is with so many being hosted all over the web. So it's good to see a service which is offering to wrap all of these up in a nice centralized manner.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/need-a-script-check-out-ajaxraincom/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Share Your Knowledge at The Ajax Experience!</title>
		<link>http://ajaxian.com/archives/share-your-knowledge-at-the-ajax-experience-2</link>
		<comments>http://ajaxian.com/archives/share-your-knowledge-at-the-ajax-experience-2#comments</comments>
		<pubDate>Mon, 09 Mar 2009 13:54:38 +0000</pubDate>
		<dc:creator>tberardi</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Ajaxian.com Announcements]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[The Ajax Experience]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=6241</guid>
		<description><![CDATA[We're seeking a few good technologists and speakers for The Ajax Experience 2009, to be held in Boston on September 14-16, 2009.  If you have experience with frameworks, techniques, or technologies that drive high performance Web applications, or build frameworks or other tools to enable the creation or test of Ajax applications, take a look <a href="http://ajaxian.com/archives/share-your-knowledge-at-the-ajax-experience-2">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>We're seeking a few good technologists and speakers for The Ajax Experience 2009, to be held in Boston on September 14-16, 2009.  If you have experience with frameworks, techniques, or technologies that drive high performance Web applications, or build frameworks or other tools to enable the creation or test of Ajax applications, take a look at our call for papers to see where your talk may fit in.</p>
<p>Please click <a href="http://media.techtarget.com/downloads/Ajax_Call_for_Proposal_Directions_Text.pdf " target="_blank">here</a> for more details on what we're looking for and how to submit your proposals.  Here is the official <a href="http://media.techtarget.com/downloads/Ajax_Call_for_Proposals_Form.pdf " target="_blank">submission form</a>. Deadline for submissions is April 1st.</p>
<p>See you at <a href="http://ajaxexperience.techtarget.com/html/index.html?Offer=AEcfpajax309">The Ajax Experience</a> in September!</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/share-your-knowledge-at-the-ajax-experience-2/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Forget Chuck, Preloaders 3D right now!</title>
		<link>http://ajaxian.com/archives/forget-chuck-preloaders-3d-right-now</link>
		<comments>http://ajaxian.com/archives/forget-chuck-preloaders-3d-right-now#comments</comments>
		<pubDate>Mon, 02 Feb 2009 05:41:02 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Utility]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=5857</guid>
		<description><![CDATA[I enjoy the US show Chuck (maybe because a geeky guy gets to hang with a beautiful woman? :) and there is a 3D episode to launch their new season. Our 2009 Ajax season relaunches an old favourite meme, the Ajax loaders (e.g. ajaxload.info) with a new 3D special. Timur Gafforov has given us Preloaders <a href="http://ajaxian.com/archives/forget-chuck-preloaders-3d-right-now">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://ajaxian.com/wp-content/uploads/preloader3d.png" alt="" title="preloader3d" width="61" height="196" class="alignnone size-full wp-image-5859" style="float: right; padding: 8px;" /></p>
<p>I enjoy the US show Chuck (maybe because a geeky guy gets to hang with a beautiful woman? :) and there is a 3D episode to launch their new season. Our 2009 Ajax season relaunches an old favourite meme, the Ajax loaders (e.g. <a href="http://ajaxload.info/">ajaxload.info</a>) with a new 3D special.</p>
<p>Timur Gafforov has given us <a href="http://preloaders.net/">Preloaders</a> which allows you to select size, speed, and from a set of 3D spinners. Make your users wait in style! :)</p>
<p><img src="http://ajaxian.com/wp-content/uploads/preloaderconfig.png" alt="" title="preloaderconfig" width="493" height="524" class="alignnone size-full wp-image-5858" /></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/forget-chuck-preloaders-3d-right-now/feed</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Platform Optimization Strategies for Ajax Toolkits</title>
		<link>http://ajaxian.com/archives/platform-optimization</link>
		<comments>http://ajaxian.com/archives/platform-optimization#comments</comments>
		<pubDate>Thu, 22 Jan 2009 07:14:10 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Examples]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Library]]></category>
		<category><![CDATA[Topic]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=5762</guid>
		<description><![CDATA[Dylan Schiemann has posted on Platform Optimization Strategies for Ajax Toolkits which covers techniques for having code run on multiple platforms effectively. He talks about how some frameworks have code paths for specific browsers to shorten the if (foo) type overhead. Having a compile step like GWT does makes this easy. TIBCO GI "builds an <a href="http://ajaxian.com/archives/platform-optimization">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Dylan Schiemann has posted on <a href="http://www.sitepen.com/blog/2009/01/22/platform-optimization-strategies-for-ajax-toolkits/">Platform Optimization Strategies for Ajax Toolkits</a> which covers techniques for having code run on multiple platforms effectively.</p>
<p>He talks about how some frameworks have code paths for specific browsers to shorten the <code>if (foo)</code> type overhead. Having a compile step like GWT does makes this easy. TIBCO GI "builds an optimized code tree for each major browser release (the opposite of the approach jQuery 1.3 and others have taken, as code only makes it into a build for that browser if that browser is known to support that functionality)."</p>
<p><b>excludeStart(”webkitMobile”)</b></p>
<p>Dylan then discusses what is happening in the Dojo community:</p>
<blockquote><p>
In recent discussions on the Dojo mailing list, discussions turned to how to make Dojo faster for mobile users. In most cases, this involves removing code and features that are not needed on that platform given the precious resources available on mobile devices and over mobile networks.</p>
<p>Alex Russell checked in some work he started last year that looks like this:</p>
<p>[javascript]<br />
//>>excludeStart("webkitMobile", kwArgs.webkitMobile);<br />
!dojo.isIE &#038;&<br />
//>>excludeEnd("webkitMobile");<br />
[./javascript]</p>
<p>The syntax is a bit verbose, but it excludes the code between the start and end in a Dojo build created for webkitMobile:</p>
<blockquote><p>
./build.sh profile=base action=clean,release webkitMobile=true
</p></blockquote>
<p>While we would love to switch to pure feature detection over browser version detection like John has done with jQuery 1.3, version detection is generally more concise and precise, and does not necessarily make Dojo any less forwards compatible.</p>
<p>Version detection also makes it easy to exclude code created solely for browsers that require major workarounds, such as IE 6. To get the most out of this though would require doing something similar for each major browser, which would make Dojo more challenging to understand and maintain, would probably require a build step even during development (not just in production to improve performance).</p>
<p>At this point, there are no clear answers, just a lot of questions on how to create a toolkit that offers edge of the web features for desktop users, and still preserves performance for mobile web users. What approach do you think is best?
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/platform-optimization/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Backwards compatibility and HTML 5</title>
		<link>http://ajaxian.com/archives/backwards-compatibility-and-html-5</link>
		<comments>http://ajaxian.com/archives/backwards-compatibility-and-html-5#comments</comments>
		<pubDate>Thu, 08 Jan 2009 12:39:01 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=5593</guid>
		<description><![CDATA[John Allsopp has a thoughtful piece that races some old concerns about the new tag set in HTML 5, and how we will ever be able to jump on that train when the cabooze still has IE.old train cars. It is great to have new semantics for &#60;section&#62; and all, but what will browsers do <a href="http://ajaxian.com/archives/backwards-compatibility-and-html-5">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>John Allsopp has a <a href="http://alistapart.com/articles/semanticsinhtml5">thoughtful piece</a> that races some old concerns about the new tag set in HTML 5, and how we will ever be able to jump on that train when the cabooze still has IE.old train cars.</p>
<p>It is great to have new semantics for <code>&lt;section&gt;</code> and all, but what will browsers do with these new tags?</p>
<p>John walks through a simple example with the new tags, shows some issues, and then wonders if we could use the existing extension points (attributes):</p>
<blockquote><p>
Let’s invent a new attribute. I’ll call it “structure,” but the particular name isn’t important. We can use it like this:</p>
<pre>
&lt;div structure="header"&gt;
</pre>
<p>Let’s see how our browsers fare with this.</p>
<p>Of course, all our browsers will style this element with CSS.</p>
<div class="igBar"><a href="javascript:showCodeTxt('html-14');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">HTML:</span>
<div id="html-14">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">div {color: red}</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p>But how about this?</p>
<pre>
div[structure] {font-weight: bold}
</pre>
<p>In fact, almost all browsers, including IE7, style the div with an attribute of structure, even if there is no such thing as the structure attribute! Sadly, our luck runs out there, as IE6 does not. But we can use the attribute in HTML and have all existing browsers recognize it. We can even use CSS to style our HTML using the attribute in all modern browsers. And, if we want a workaround for older browsers, we can add a class value to the element for styling. Compare this with the HTML 5 solution, which adds new elements that cannot be styled in Internet Explorer 6 or 7 and you’ll see that this is definitely a more backward-compatible solution.
</p></blockquote>
<p>John then goes on to discuss the potential use of the role attribute, and more.</p>
<p>It feels like there are two issues here:</p>
<ol>
<li>Are new tags the right way to provide new semantic value</li>
<li>Are there work arounds to back/forward compatibility.</li>
</ol>
<p>Without compatibility, it will be impossible to get this off the ground for many people. What if we mix both worlds, and a shim is put in place to convert the new tags to divs and the like at runtime for browsers that don't support it. Is that enough?</p>
<p>You can get IE to support new tags <a href="http://blog.whatwg.org/supporting-new-elements-in-ie">as shown in this example</a> by using <code>document.createElement()</code>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/backwards-compatibility-and-html-5/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Rich UI Apps Should Not Be Considered Harmful</title>
		<link>http://ajaxian.com/archives/rich-ui-apps-should-not-be-considered-harmful</link>
		<comments>http://ajaxian.com/archives/rich-ui-apps-should-not-be-considered-harmful#comments</comments>
		<pubDate>Thu, 18 Dec 2008 11:05:11 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Front Page]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=5444</guid>
		<description><![CDATA[Herb Sutter is a great leader in our industry, and he has taken on Jeff Atwood's post on Web 2.0 app design. It comes to the age old issue of how "desktop-y" do you make your Web application? Herb believes that having them look like desktop apps is natural. I think that I disagree. I <a href="http://ajaxian.com/archives/rich-ui-apps-should-not-be-considered-harmful">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Herb Sutter is a great leader in our industry, and he has <a href="http://www.codinghorror.com/blog/archives/000869.html">taken on Jeff Atwood's post on Web 2.0 app design</a>.</p>
<p>It comes to the age old issue of how "desktop-y" do you make your Web application? Herb believes that having them look like desktop apps is natural. I think that I disagree. I like Gmail because it is a great blend of web-y and desktop-y. In fact, it is more like <code>pine</code> on the Web than Outlook on the Web :)</p>
<p>The best applications seem to nail that blend of both worlds. What do you think? </p>
<p>This is Herb's conclusion:</p>
<blockquote><p>
Most SaaS/Web 2.0 applications today look and feel pretty much the way GUI applications looked and felt like on DOS, before technologies like Windows and OS/2 PM existed. Around the late 1980s, people wrote lots of GUI applications that ran on DOS, but we didn’t have a widely-used common GUI infrastructure that handled basic windows and menus and events, much less standards like CUA that tried to say how to use such a common infrastructure if we had it. So they each did their own thing, borrowing where possible from what seemed to work well for GUIs on other platforms.</p>
<p>Twenty years ago, everyone writing GUIs on DOS designed the UIs as best they could, borrowing where possible from what they saw worked on platforms like the Macintosh and Xerox Alto and Star — but the results were all over the map, and would stay that way until a standard environment, followed by standard guidelines, came into being.</p>
<p>Today, everyone writing rich Web 2.0 applications is doing their own thing, borrowing as best they can from Macs and Windows and others — but the results are all over the map, and will continue to be until there actually is such a thing as a UI standard for rich-GUI web applications. You can see that in the differences between Zimbra and Outlook Web Access. In the meantime, it’s not just okay to borrow from what we’ve learned on the desktop; it’s necessary.</p>
<p>And the question isn’t whether metaphors users already understand on the desktop will migrate to the web, but which ones and how soon, because it’s the whole point of SaaS. The industry will soon be going well beyond Google Apps; with offerings like Office Online already announced for the short term, which puts still more rich-client GUI apps like word processors and spreadsheets in the browser (with functionality somewhere between Google Apps and the desktop version of Office).</p>
<p>Zimbra and Outlook Web Access aren’t examples of poor web app design, but exactly the opposite: They’re just the beginning of the next wave of rich web apps.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/rich-ui-apps-should-not-be-considered-harmful/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>RUI is not accessible? Check out Yahoo&#8217;s new Currency Converter</title>
		<link>http://ajaxian.com/archives/rui-is-not-accessible-check-out-yahoos-new-currency-converter</link>
		<comments>http://ajaxian.com/archives/rui-is-not-accessible-check-out-yahoos-new-currency-converter#comments</comments>
		<pubDate>Wed, 17 Dec 2008 17:23:26 +0000</pubDate>
		<dc:creator>Chris Heilmann</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[RichTextWidget]]></category>
		<category><![CDATA[Section]]></category>
		<category><![CDATA[Unobtrusive JS]]></category>
		<category><![CDATA[Yahoo!]]></category>
		<category><![CDATA[currencyconverter]]></category>
		<category><![CDATA[finance]]></category>
		<category><![CDATA[rui]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=5435</guid>
		<description><![CDATA[I am proud to be able to announce the new currency converter on Yahoo finance. Why? Because it is a perfect example of how a complex rich user interface can be built in an accessible manner. As the main developer, Dirk Ginader explains: About 9 months ago my fellow co-worker, the User Experience Designer Graham <a href="http://ajaxian.com/archives/rui-is-not-accessible-check-out-yahoos-new-currency-converter">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>I am proud to be able to announce the new currency converter on Yahoo finance. Why? Because it is a perfect example of how a complex rich user interface can be built in an accessible manner. </p>
<p><a href="http://finance.yahoo.com/currency-converter"><img src="http://ajaxian.com/wp-content/uploads/currency-converter-yahoo-finance.jpg" alt="currency-converter-yahoo-finance" width="500" height="461" class="aligncenter size-full wp-image-5436" /></a></p>
<p>As the main developer, <a href="http://blog.ginader.de/archives/2008/12/17/Yahoo!-Currency-Converter-my-favorite-project-is-now-live.php">Dirk Ginader explains</a>:</p>
<blockquote><p>About 9 months ago my fellow co-worker, the User Experience Designer Graham Beale, and I started developing ideas for a prototype of a new Currency Converter for the worldwide relaunch of Yahoo! Finance.</p>
<p>We wanted Features we haven't seen like this in the Internet so far. We wanted conversion without a page reload, searching for currencies like in the Firefox 3 "awesome bar", total accessibility, much more and of course everything in realtime.</p></blockquote>
<p>There will be an in-depth article on how Dirk and his colleagues (with a special mention to <a href="http://twitter.com/DesignedByBlind">Artur Ortega</a> who did all the screen reader testing) build the converter on the Yahoo Developer Blog after the holidays. For now, have a look at the code and see the wonderful attention to detail. One of the main tricks they've done can be mentioned already: dynamic re-writing of form labels.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/rui-is-not-accessible-check-out-yahoos-new-currency-converter/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

