<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Capability based JavaScript loading; JS libraries catch up to GWT</title>
	<atom:link href="http://almaer.com/blog/capability-based-javascript-loading-js-libraries-catch-up-to-gwt/feed" rel="self" type="application/rss+xml" />
	<link>http://almaer.com/blog/capability-based-javascript-loading-js-libraries-catch-up-to-gwt</link>
	<description>blogging about life, the universe, and everything tech</description>
	<lastBuildDate>Sat, 08 Sep 2012 07:06:53 -0700</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Javascript Countdown Timer</title>
		<link>http://almaer.com/blog/capability-based-javascript-loading-js-libraries-catch-up-to-gwt/comment-page-1#comment-47150</link>
		<dc:creator>Javascript Countdown Timer</dc:creator>
		<pubDate>Sun, 12 Sep 2010 01:11:26 +0000</pubDate>
		<guid isPermaLink="false">http://almaer.com/blog/?p=2723#comment-47150</guid>
		<description>very cool &amp; good tip, thank you very much for sharing.

But I think a live demo will be better, a demo worth 1k words :D</description>
		<content:encoded><![CDATA[<p>very cool &amp; good tip, thank you very much for sharing.</p>
<p>But I think a live demo will be better, a demo worth 1k words :D</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sebastian</title>
		<link>http://almaer.com/blog/capability-based-javascript-loading-js-libraries-catch-up-to-gwt/comment-page-1#comment-46899</link>
		<dc:creator>Sebastian</dc:creator>
		<pubDate>Sat, 31 Jul 2010 19:41:06 +0000</pubDate>
		<guid isPermaLink="false">http://almaer.com/blog/?p=2723#comment-46899</guid>
		<description>What would be pretty cool would be to have some kind of loader script which does feature detection, locale detection, etc. And than loads a specific variant of the implementation. This could even be combined with a versioning so younadd the version information to the file name as well. 

To keep filenames short one might use hashing:
nativeQSA=true&amp;nativeJSON=true&amp;version=1.3 =&gt; fdededc93bded.js</description>
		<content:encoded><![CDATA[<p>What would be pretty cool would be to have some kind of loader script which does feature detection, locale detection, etc. And than loads a specific variant of the implementation. This could even be combined with a versioning so younadd the version information to the file name as well. </p>
<p>To keep filenames short one might use hashing:<br />
nativeQSA=true&amp;nativeJSON=true&amp;version=1.3 =&gt; fdededc93bded.js</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dylan</title>
		<link>http://almaer.com/blog/capability-based-javascript-loading-js-libraries-catch-up-to-gwt/comment-page-1#comment-46897</link>
		<dc:creator>Dylan</dc:creator>
		<pubDate>Fri, 30 Jul 2010 10:44:22 +0000</pubDate>
		<guid isPermaLink="false">http://almaer.com/blog/?p=2723#comment-46897</guid>
		<description>Pete has been doing some work recently on the Dojo 1.6 branch with regards to better feature and capability detection... for example, here&#039;s the Modernize test suite using that branch: http://dante.dojotoolkit.org/dojobox/trunk/plugd/tests/test_Modernizr.html

The overall problem itself is inherently hard, because you don&#039;t want to waste an extra request to detect features to then determine what to load, but you don&#039;t want to send down the wire something as large as say support for VML for non-IE browsers. For example, Dojo targeted just to the features on recent WebKit versions is 75% smaller, before thinking about just the features you want to use in your app. But then it becomes interesting... for example, say you want to support WebSocket... Safari 5, Chrome 5, and Chrome 6 currently all work with different draft versions (74, 75, 76), and detecting for those glitches is a new form of fun.

I guess my point is that overuse of user agent detection is considered harmful, but so is dogmatic purist belief that it is never useful. For example, if you&#039;re creating an iPhone app or an embedded IE app with something like Dojo or YUI, targeting the user agent saves a lot of pain, though you still need a healthy does of feature detection after the fact.

Getting Dojo&#039;s build/compile system to work with feature detection helps us get the choice that&#039;s needed for your app, and it looks like YUI is on the same path.</description>
		<content:encoded><![CDATA[<p>Pete has been doing some work recently on the Dojo 1.6 branch with regards to better feature and capability detection&#8230; for example, here&#8217;s the Modernize test suite using that branch: <a href="http://dante.dojotoolkit.org/dojobox/trunk/plugd/tests/test_Modernizr.html" rel="nofollow">http://dante.dojotoolkit.org/dojobox/trunk/plugd/tests/test_Modernizr.html</a></p>
<p>The overall problem itself is inherently hard, because you don&#8217;t want to waste an extra request to detect features to then determine what to load, but you don&#8217;t want to send down the wire something as large as say support for VML for non-IE browsers. For example, Dojo targeted just to the features on recent WebKit versions is 75% smaller, before thinking about just the features you want to use in your app. But then it becomes interesting&#8230; for example, say you want to support WebSocket&#8230; Safari 5, Chrome 5, and Chrome 6 currently all work with different draft versions (74, 75, 76), and detecting for those glitches is a new form of fun.</p>
<p>I guess my point is that overuse of user agent detection is considered harmful, but so is dogmatic purist belief that it is never useful. For example, if you&#8217;re creating an iPhone app or an embedded IE app with something like Dojo or YUI, targeting the user agent saves a lot of pain, though you still need a healthy does of feature detection after the fact.</p>
<p>Getting Dojo&#8217;s build/compile system to work with feature detection helps us get the choice that&#8217;s needed for your app, and it looks like YUI is on the same path.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gabriel Gilini</title>
		<link>http://almaer.com/blog/capability-based-javascript-loading-js-libraries-catch-up-to-gwt/comment-page-1#comment-46896</link>
		<dc:creator>Gabriel Gilini</dc:creator>
		<pubDate>Thu, 29 Jul 2010 17:37:13 +0000</pubDate>
		<guid isPermaLink="false">http://almaer.com/blog/?p=2723#comment-46896</guid>
		<description>@Zach: It&#039;s actually worse than conditional comments, as you can&#039;t change a configuration on your browser to make it parse some IE conditional comment, unlike the user agent string.

It is never a good idea to load scripts dynamically if they are imperative to your app. This sounds a lot like looking for a solution for a non-problem. Why not build a modular library, then select the modules you want loaded before downloading the script, a server-side builder would glue the pieces together and serve only what&#039;s needed for your application. To be quite frank, most of times you only need event handling and measuring position/size of elements, that script shouldn&#039;t be too big.

The real problem is most libraries are so tangled up on the inside, that you couldn&#039;t create a small build even if you wanted to.</description>
		<content:encoded><![CDATA[<p>@Zach: It&#8217;s actually worse than conditional comments, as you can&#8217;t change a configuration on your browser to make it parse some IE conditional comment, unlike the user agent string.</p>
<p>It is never a good idea to load scripts dynamically if they are imperative to your app. This sounds a lot like looking for a solution for a non-problem. Why not build a modular library, then select the modules you want loaded before downloading the script, a server-side builder would glue the pieces together and serve only what&#8217;s needed for your application. To be quite frank, most of times you only need event handling and measuring position/size of elements, that script shouldn&#8217;t be too big.</p>
<p>The real problem is most libraries are so tangled up on the inside, that you couldn&#8217;t create a small build even if you wanted to.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dion</title>
		<link>http://almaer.com/blog/capability-based-javascript-loading-js-libraries-catch-up-to-gwt/comment-page-1#comment-46895</link>
		<dc:creator>dion</dc:creator>
		<pubDate>Thu, 29 Jul 2010 17:26:38 +0000</pubDate>
		<guid isPermaLink="false">http://almaer.com/blog/?p=2723#comment-46895</guid>
		<description>Zach,

Totally. It is &quot;capability based js loading&quot; after all. I tweaked the post to spell that out. I am particularly excited to see a series of capability plugins for YUI, and have a scanner as part of the build process which auto detects usage and puts in the conditions for you!

Thanks for the note!

Dion</description>
		<content:encoded><![CDATA[<p>Zach,</p>
<p>Totally. It is &#8220;capability based js loading&#8221; after all. I tweaked the post to spell that out. I am particularly excited to see a series of capability plugins for YUI, and have a scanner as part of the build process which auto detects usage and puts in the conditions for you!</p>
<p>Thanks for the note!</p>
<p>Dion</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Zach Leatherman</title>
		<link>http://almaer.com/blog/capability-based-javascript-loading-js-libraries-catch-up-to-gwt/comment-page-1#comment-46894</link>
		<dc:creator>Zach Leatherman</dc:creator>
		<pubDate>Thu, 29 Jul 2010 16:38:09 +0000</pubDate>
		<guid isPermaLink="false">http://almaer.com/blog/?p=2723#comment-46894</guid>
		<description>To me, this is no different than &quot;dynamic conditional comments&quot; if you&#039;re triggering on nothing but user agent.

The real power will come when you use feature detection.

For example, when using canvas, load excanvas if document.createElement(&#039;canvas&#039;).getContext fails.  Of course, excanvas only works in IE, but you get the idea.</description>
		<content:encoded><![CDATA[<p>To me, this is no different than &#8220;dynamic conditional comments&#8221; if you&#8217;re triggering on nothing but user agent.</p>
<p>The real power will come when you use feature detection.</p>
<p>For example, when using canvas, load excanvas if document.createElement(&#8217;canvas&#8217;).getContext fails.  Of course, excanvas only works in IE, but you get the idea.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
