<?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>Glenn's Second Brain &#187; Front Page</title>
	<atom:link href="http://www.glennmarcus.com/blog/tag/front-page/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.glennmarcus.com/blog</link>
	<description>For the spillover</description>
	<lastBuildDate>Thu, 15 Apr 2010 23:28:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Harmony: Canvas Drawing Tool</title>
		<link>http://www.glennmarcus.com/blog/2010/03/10/harmony-canvas-drawing-tool/</link>
		<comments>http://www.glennmarcus.com/blog/2010/03/10/harmony-canvas-drawing-tool/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 09:50:44 +0000</pubDate>
		<dc:creator>Michael Mahemoff</dc:creator>
				<category><![CDATA[fun]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Canvas]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Showcase]]></category>

		<guid isPermaLink="false">tag:google.com,2005:reader/item/533583b5ccd152ca</guid>
		<description><![CDATA[<p></p>
<p><a href="http://mrdoob.com/lab/javascript/harmony/">Harmony</a> is a new drawing tool, a HTML5/Canvas experiment with great potential. It provides some unique brush styles, and can produce some great-looking charcoal pencil style sketches, among other things. Better to <a href="http://mrdoob.com/lab/javascript/harmony/">try it out</a> than explain it in words.</p>
<p>Creator Mr. Doob  (Richard Cabello) <a href="http://mrdoob.com/blog/post/689">explains</a> how he used Canvas to make it darker the more you draw over it:</p>
<blockquote><p>
The whole thing is quite modular so I can keep adding more brush styles whenever I get inspired. During the process I found out that, for some reason (apparently lack of hardware acceleration), Firefox and Opera do not support context.globalCompositeOperation = &#8216;darker&#8217;. This was on the HTML5 spec before but got removed. Just so you know what I&#8217;m talking about, this is like the &#8220;multiply&#8221; blending in Photoshop. Webkit does support it tho. I hope they put it back on the specs and all browsers support it.
</p>
</blockquote>
<p>You can also save images using data URI encoding.</p>
<p>As it works on webkit, he made sure it worked on the mobile Android and iPhone browsers. No multi-touch as yet, but the touch UI still makes a nice input mechanism.</p>
<p><a href="http://mrdoob.com/lab/javascript/harmony/"><img src="http://ajaxian.com/wp-content/images/harmony.jpg" alt="harmony" title="harmony" width="320" height="480"/></a></p>
<p>(Thanks <a href="http://twitter.com/FND">FND</a>)</p>
<div>
<a href="http://feeds.feedburner.com/~ff/ajaxian?a=9ASJDZ59k9Y:QoYCwb10r9k:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ajaxian?d=yIl2AUoC8zA" border="0"/></a> <a href="http://feeds.feedburner.com/~ff/ajaxian?a=9ASJDZ59k9Y:QoYCwb10r9k:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/ajaxian?d=7Q72WNTAKBA" border="0"/></a> <a href="http://feeds.feedburner.com/~ff/ajaxian?a=9ASJDZ59k9Y:QoYCwb10r9k:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ajaxian?i=9ASJDZ59k9Y:QoYCwb10r9k:D7DqB2pKExk" border="0"/></a>
</div>
]]></description>
			<content:encoded><![CDATA[<p><embed src="http://www.youtube.com/v/To1A-EPz79w&amp;hl=en_US&amp;fs=1&amp;" allowScriptAccess="never" allowFullScreen="true" width="640" height="385" wmode="transparent" type="application/x-shockwave-flash"></embed></p>
<p><a href="http://mrdoob.com/lab/javascript/harmony/">Harmony</a> is a new drawing tool, a HTML5/Canvas experiment with great potential. It provides some unique brush styles, and can produce some great-looking charcoal pencil style sketches, among other things. Better to <a href="http://mrdoob.com/lab/javascript/harmony/">try it out</a> than explain it in words.</p>
<p>Creator Mr. Doob  (Richard Cabello) <a href="http://mrdoob.com/blog/post/689">explains</a> how he used Canvas to make it darker the more you draw over it:</p>
<blockquote><p>
The whole thing is quite modular so I can keep adding more brush styles whenever I get inspired. During the process I found out that, for some reason (apparently lack of hardware acceleration), Firefox and Opera do not support context.globalCompositeOperation = &#8216;darker&#8217;. This was on the HTML5 spec before but got removed. Just so you know what I&#8217;m talking about, this is like the &#8220;multiply&#8221; blending in Photoshop. Webkit does support it tho. I hope they put it back on the specs and all browsers support it.
</p>
</blockquote>
<p>You can also save images using data URI encoding.</p>
<p>As it works on webkit, he made sure it worked on the mobile Android and iPhone browsers. No multi-touch as yet, but the touch UI still makes a nice input mechanism.</p>
<p><a href="http://mrdoob.com/lab/javascript/harmony/"><img src="http://ajaxian.com/wp-content/images/harmony.jpg" alt="harmony" title="harmony" width="320" height="480"/></a></p>
<p>(Thanks <a href="http://twitter.com/FND">FND</a>)</p>
<div>
<a href="http://feeds.feedburner.com/~ff/ajaxian?a=9ASJDZ59k9Y:QoYCwb10r9k:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ajaxian?d=yIl2AUoC8zA" border="0"/></a> <a href="http://feeds.feedburner.com/~ff/ajaxian?a=9ASJDZ59k9Y:QoYCwb10r9k:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/ajaxian?d=7Q72WNTAKBA" border="0"/></a> <a href="http://feeds.feedburner.com/~ff/ajaxian?a=9ASJDZ59k9Y:QoYCwb10r9k:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ajaxian?i=9ASJDZ59k9Y:QoYCwb10r9k:D7DqB2pKExk" border="0"/></a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.glennmarcus.com/blog/2010/03/10/harmony-canvas-drawing-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS Gradient Tool; Build the Apple Navigation Bar</title>
		<link>http://www.glennmarcus.com/blog/2009/06/02/css-gradient-tool-build-the-apple-navigation-bar/</link>
		<comments>http://www.glennmarcus.com/blog/2009/06/02/css-gradient-tool-build-the-apple-navigation-bar/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 13:25:41 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[web20]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Utility]]></category>

		<guid isPermaLink="false">tag:google.com,2005:reader/item/8435dd18814ec2ce</guid>
		<description><![CDATA[<p><img src="http://ajaxian.com/wp-content/uploads/gradienttool.png" alt="" title="gradienttool" width="500" height="510"/></p>
<p>John Allsop has created a very cool <a href="http://tools.westciv.com/gradients/">CSS gradient exploration tool</a> that lets you get the gradient you need, with the resulting sample and code right there.</p>
<p>You could use it to do what he did, and <a href="http://westciv.com/style_master/blog/apples-navigation-bar-using-only-css">recreate the Apple navigation bar</a> in pure CSS instead of using images.</p>
<p><img src="http://westciv.com/style_master/blog/images/safari.png" width="500"/></p>
<p>John didn&#8217;t stop there, and has already created tools for <a href="http://westciv.com/tools/boxshadows/">Box Shadows</a> <a href="http://westciv.com/tools/shadows/">Shadows</a> and <a href="http://westciv.com/tools/radialgradients/">Radial Gradients</a>.</p>
<div>
<a href="http://feeds2.feedburner.com/~ff/ajaxian?a=g4pd0lYq8R4:XKcoLwIkDDc:yIl2AUoC8zA"><img src="http://feeds2.feedburner.com/~ff/ajaxian?d=yIl2AUoC8zA" border="0"/></a> <a href="http://feeds2.feedburner.com/~ff/ajaxian?a=g4pd0lYq8R4:XKcoLwIkDDc:7Q72WNTAKBA"><img src="http://feeds2.feedburner.com/~ff/ajaxian?d=7Q72WNTAKBA" border="0"/></a> <a href="http://feeds2.feedburner.com/~ff/ajaxian?a=g4pd0lYq8R4:XKcoLwIkDDc:D7DqB2pKExk"><img src="http://feeds2.feedburner.com/~ff/ajaxian?i=g4pd0lYq8R4:XKcoLwIkDDc:D7DqB2pKExk" border="0"/></a>
</div>
]]></description>
			<content:encoded><![CDATA[<p><img src="http://ajaxian.com/wp-content/uploads/gradienttool.png" alt="" title="gradienttool" width="500" height="510"/></p>
<p>John Allsop has created a very cool <a href="http://tools.westciv.com/gradients/">CSS gradient exploration tool</a> that lets you get the gradient you need, with the resulting sample and code right there.</p>
<p>You could use it to do what he did, and <a href="http://westciv.com/style_master/blog/apples-navigation-bar-using-only-css">recreate the Apple navigation bar</a> in pure CSS instead of using images.</p>
<p><img src="http://westciv.com/style_master/blog/images/safari.png" width="500"/></p>
<p>John didn&#8217;t stop there, and has already created tools for <a href="http://westciv.com/tools/boxshadows/">Box Shadows</a> <a href="http://westciv.com/tools/shadows/">Shadows</a> and <a href="http://westciv.com/tools/radialgradients/">Radial Gradients</a>.</p>
<div>
<a href="http://feeds2.feedburner.com/~ff/ajaxian?a=g4pd0lYq8R4:XKcoLwIkDDc:yIl2AUoC8zA"><img src="http://feeds2.feedburner.com/~ff/ajaxian?d=yIl2AUoC8zA" border="0"/></a> <a href="http://feeds2.feedburner.com/~ff/ajaxian?a=g4pd0lYq8R4:XKcoLwIkDDc:7Q72WNTAKBA"><img src="http://feeds2.feedburner.com/~ff/ajaxian?d=7Q72WNTAKBA" border="0"/></a> <a href="http://feeds2.feedburner.com/~ff/ajaxian?a=g4pd0lYq8R4:XKcoLwIkDDc:D7DqB2pKExk"><img src="http://feeds2.feedburner.com/~ff/ajaxian?i=g4pd0lYq8R4:XKcoLwIkDDc:D7DqB2pKExk" border="0"/></a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.glennmarcus.com/blog/2009/06/02/css-gradient-tool-build-the-apple-navigation-bar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Great visualizations with Protovis</title>
		<link>http://www.glennmarcus.com/blog/2009/04/06/great-visualizations-with-protovis/</link>
		<comments>http://www.glennmarcus.com/blog/2009/04/06/great-visualizations-with-protovis/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 13:29:20 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[ajax]]></category>
		<category><![CDATA[Canvas]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">tag:google.com,2005:reader/item/e056c4f71b63c42a</guid>
		<description><![CDATA[<p><img src="http://www.visophyte.org/blog/wp-content/uploads/2009/04/exptoolbar-protovis-gloda-256.png" width="500"/></p>
<p>I have been very impressed with Andrew Sutherland of the Mozilla Messaging team (which is one reason that I have faith that I will dump Gmail for something he and the Messaging team come up with one day ;) and the <a href="http://www.visophyte.org/blog/2009/04/01/thunderbird-gloda-exptoolbar-protovis-paninaro-oh-oh-oh/">visualizations that he is playing with</a> are quite cool indeed. Seeing your email in different ways (not just in a table) can open the eyes.</p>
<p>Andrew is using <a href="http://vis.stanford.edu/protovis/">Protovis</a> &#8220;a visualization toolkit for JavaScript using the canvas element. It takes a graphical approach to data visualization, composing custom views of data with simple graphical primitives like bars and dots. These primitives are called marks, and each mark encodes data visually through dynamic properties such as color and position.&#8221;</p>
<p>There are some cool examples such as:</p>
<div><a href="javascript:void(0);">PLAIN TEXT</a></div>
<div><span style="color:#000000;font-weight:bold">JAVASCRIPT:</span></p>
<div>
<div>
<ol>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â </div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal"><span style="color:#003366;font-weight:bold">new</span> pv.<span style="color:#006600">Panel</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#006600;font-weight:bold">)</span>.<span style="color:#006600">width</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#800000">150</span><span style="color:#006600;font-weight:bold">)</span>.<span style="color:#006600">height</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#800000">150</span><span style="color:#006600;font-weight:bold">)</span></div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  .<span style="color:#006600">add</span><span style="color:#006600;font-weight:bold">(</span>pv.<span style="color:#006600">Panel</span><span style="color:#006600;font-weight:bold">)</span></div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  Â  .<span style="color:#006600">data</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#006600;font-weight:bold">[</span><span style="color:#006600;font-weight:bold">[</span>Math.<span style="color:#006600">sin</span><span style="color:#006600;font-weight:bold">(</span>x / y<span style="color:#006600;font-weight:bold">)</span></div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  Â  Â  Â  Â  Â <span style="color:#000066;font-weight:bold">for</span> <span style="color:#006600;font-weight:bold">(</span>x <span style="color:#000066;font-weight:bold">in</span> pv.<span style="color:#006600">range</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#800000">50</span><span style="color:#006600;font-weight:bold">)</span><span style="color:#006600;font-weight:bold">)</span><span style="color:#006600;font-weight:bold">]</span></div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  Â  Â  Â  Â  Â <span style="color:#000066;font-weight:bold">for</span> <span style="color:#006600;font-weight:bold">(</span>y <span style="color:#000066;font-weight:bold">in</span> pv.<span style="color:#006600">range</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#800000">3</span>, <span style="color:#800000">9</span><span style="color:#006600;font-weight:bold">)</span><span style="color:#006600;font-weight:bold">)</span><span style="color:#006600;font-weight:bold">]</span><span style="color:#006600;font-weight:bold">)</span></div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  .<span style="color:#006600">add</span><span style="color:#006600;font-weight:bold">(</span>pv.<span style="color:#006600">Area</span><span style="color:#006600;font-weight:bold">)</span></div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  Â  .<span style="color:#006600">data</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#003366;font-weight:bold">function</span><span style="color:#006600;font-weight:bold">(</span>d<span style="color:#006600;font-weight:bold">)</span> d<span style="color:#006600;font-weight:bold">)</span></div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  Â  .<span style="color:#006600">fillStyle</span><span style="color:#006600;font-weight:bold">(</span>pv.<span style="color:#006600">Colors</span>.<span style="color:#006600">category19</span>.<span style="color:#006600">unique</span><span style="color:#006600;font-weight:bold">)</span></div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  Â  .<span style="color:#006600">bottom</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#003366;font-weight:bold">function</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#006600;font-weight:bold">)</span> let <span style="color:#006600;font-weight:bold">(</span>c = <span style="color:#000066;font-weight:bold">this</span>.<span style="color:#006600">cousin</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#006600;font-weight:bold">)</span><span style="color:#006600;font-weight:bold">)</span></div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  Â  Â  Â  c ? <span style="color:#006600;font-weight:bold">(</span>c.<span style="color:#006600">bottom</span> + c.<span style="color:#006600">height</span><span style="color:#006600;font-weight:bold">)</span> : <span style="color:#800000">0</span><span style="color:#006600;font-weight:bold">)</span></div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  Â  .<span style="color:#006600">height</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#003366;font-weight:bold">function</span><span style="color:#006600;font-weight:bold">(</span>d<span style="color:#006600;font-weight:bold">)</span> <span style="color:#006600;font-weight:bold">(</span>d + <span style="color:#800000">1</span><span style="color:#006600;font-weight:bold">)</span> * <span style="color:#800000">13</span><span style="color:#006600;font-weight:bold">)</span></div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  Â  .<span style="color:#006600">left</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#003366;font-weight:bold">function</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#006600;font-weight:bold">)</span> <span style="color:#000066;font-weight:bold">this</span>.<span style="color:#006600">index</span> * <span style="color:#800000">3</span><span style="color:#006600;font-weight:bold">)</span></div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  .<span style="color:#006600">root</span>.<span style="color:#006600">render</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#006600;font-weight:bold">)</span>;</div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â </div>
</li>
</ol>
</div>
</div>
</div>
<p>which produces <img src="http://vis.stanford.edu/protovis/ex/area-chart.png"/>.</p>
<p>Very cool indeed!</p>
<div>
<a href="http://feeds2.feedburner.com/~ff/ajaxian?a=PiPgb8gSSNE:V6GfWkreDTo:yIl2AUoC8zA"><img src="http://feeds2.feedburner.com/~ff/ajaxian?d=yIl2AUoC8zA" border="0"/></a> <a href="http://feeds2.feedburner.com/~ff/ajaxian?a=PiPgb8gSSNE:V6GfWkreDTo:7Q72WNTAKBA"><img src="http://feeds2.feedburner.com/~ff/ajaxian?d=7Q72WNTAKBA" border="0"/></a> <a href="http://feeds2.feedburner.com/~ff/ajaxian?a=PiPgb8gSSNE:V6GfWkreDTo:D7DqB2pKExk"><img src="http://feeds2.feedburner.com/~ff/ajaxian?i=PiPgb8gSSNE:V6GfWkreDTo:D7DqB2pKExk" border="0"/></a>
</div>
]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.visophyte.org/blog/wp-content/uploads/2009/04/exptoolbar-protovis-gloda-256.png" width="500"/></p>
<p>I have been very impressed with Andrew Sutherland of the Mozilla Messaging team (which is one reason that I have faith that I will dump Gmail for something he and the Messaging team come up with one day ;) and the <a href="http://www.visophyte.org/blog/2009/04/01/thunderbird-gloda-exptoolbar-protovis-paninaro-oh-oh-oh/">visualizations that he is playing with</a> are quite cool indeed. Seeing your email in different ways (not just in a table) can open the eyes.</p>
<p>Andrew is using <a href="http://vis.stanford.edu/protovis/">Protovis</a> &#8220;a visualization toolkit for JavaScript using the canvas element. It takes a graphical approach to data visualization, composing custom views of data with simple graphical primitives like bars and dots. These primitives are called marks, and each mark encodes data visually through dynamic properties such as color and position.&#8221;</p>
<p>There are some cool examples such as:</p>
<div><a href="javascript:void(0);">PLAIN TEXT</a></div>
<div><span style="color:#000000;font-weight:bold">JAVASCRIPT:</span></p>
<div>
<div>
<ol>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â </div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal"><span style="color:#003366;font-weight:bold">new</span> pv.<span style="color:#006600">Panel</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#006600;font-weight:bold">)</span>.<span style="color:#006600">width</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#800000">150</span><span style="color:#006600;font-weight:bold">)</span>.<span style="color:#006600">height</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#800000">150</span><span style="color:#006600;font-weight:bold">)</span></div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  .<span style="color:#006600">add</span><span style="color:#006600;font-weight:bold">(</span>pv.<span style="color:#006600">Panel</span><span style="color:#006600;font-weight:bold">)</span></div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  Â  .<span style="color:#006600">data</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#006600;font-weight:bold">[</span><span style="color:#006600;font-weight:bold">[</span>Math.<span style="color:#006600">sin</span><span style="color:#006600;font-weight:bold">(</span>x / y<span style="color:#006600;font-weight:bold">)</span></div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  Â  Â  Â  Â  Â <span style="color:#000066;font-weight:bold">for</span> <span style="color:#006600;font-weight:bold">(</span>x <span style="color:#000066;font-weight:bold">in</span> pv.<span style="color:#006600">range</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#800000">50</span><span style="color:#006600;font-weight:bold">)</span><span style="color:#006600;font-weight:bold">)</span><span style="color:#006600;font-weight:bold">]</span></div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  Â  Â  Â  Â  Â <span style="color:#000066;font-weight:bold">for</span> <span style="color:#006600;font-weight:bold">(</span>y <span style="color:#000066;font-weight:bold">in</span> pv.<span style="color:#006600">range</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#800000">3</span>, <span style="color:#800000">9</span><span style="color:#006600;font-weight:bold">)</span><span style="color:#006600;font-weight:bold">)</span><span style="color:#006600;font-weight:bold">]</span><span style="color:#006600;font-weight:bold">)</span></div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  .<span style="color:#006600">add</span><span style="color:#006600;font-weight:bold">(</span>pv.<span style="color:#006600">Area</span><span style="color:#006600;font-weight:bold">)</span></div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  Â  .<span style="color:#006600">data</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#003366;font-weight:bold">function</span><span style="color:#006600;font-weight:bold">(</span>d<span style="color:#006600;font-weight:bold">)</span> d<span style="color:#006600;font-weight:bold">)</span></div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  Â  .<span style="color:#006600">fillStyle</span><span style="color:#006600;font-weight:bold">(</span>pv.<span style="color:#006600">Colors</span>.<span style="color:#006600">category19</span>.<span style="color:#006600">unique</span><span style="color:#006600;font-weight:bold">)</span></div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  Â  .<span style="color:#006600">bottom</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#003366;font-weight:bold">function</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#006600;font-weight:bold">)</span> let <span style="color:#006600;font-weight:bold">(</span>c = <span style="color:#000066;font-weight:bold">this</span>.<span style="color:#006600">cousin</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#006600;font-weight:bold">)</span><span style="color:#006600;font-weight:bold">)</span></div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  Â  Â  Â  c ? <span style="color:#006600;font-weight:bold">(</span>c.<span style="color:#006600">bottom</span> + c.<span style="color:#006600">height</span><span style="color:#006600;font-weight:bold">)</span> : <span style="color:#800000">0</span><span style="color:#006600;font-weight:bold">)</span></div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  Â  .<span style="color:#006600">height</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#003366;font-weight:bold">function</span><span style="color:#006600;font-weight:bold">(</span>d<span style="color:#006600;font-weight:bold">)</span> <span style="color:#006600;font-weight:bold">(</span>d + <span style="color:#800000">1</span><span style="color:#006600;font-weight:bold">)</span> * <span style="color:#800000">13</span><span style="color:#006600;font-weight:bold">)</span></div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  Â  .<span style="color:#006600">left</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#003366;font-weight:bold">function</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#006600;font-weight:bold">)</span> <span style="color:#000066;font-weight:bold">this</span>.<span style="color:#006600">index</span> * <span style="color:#800000">3</span><span style="color:#006600;font-weight:bold">)</span></div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  .<span style="color:#006600">root</span>.<span style="color:#006600">render</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#006600;font-weight:bold">)</span>;</div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â </div>
</li>
</ol>
</div>
</div>
</div>
<p>which produces <img src="http://vis.stanford.edu/protovis/ex/area-chart.png"/>.</p>
<p>Very cool indeed!</p>
<div>
<a href="http://feeds2.feedburner.com/~ff/ajaxian?a=PiPgb8gSSNE:V6GfWkreDTo:yIl2AUoC8zA"><img src="http://feeds2.feedburner.com/~ff/ajaxian?d=yIl2AUoC8zA" border="0"/></a> <a href="http://feeds2.feedburner.com/~ff/ajaxian?a=PiPgb8gSSNE:V6GfWkreDTo:7Q72WNTAKBA"><img src="http://feeds2.feedburner.com/~ff/ajaxian?d=7Q72WNTAKBA" border="0"/></a> <a href="http://feeds2.feedburner.com/~ff/ajaxian?a=PiPgb8gSSNE:V6GfWkreDTo:D7DqB2pKExk"><img src="http://feeds2.feedburner.com/~ff/ajaxian?i=PiPgb8gSSNE:V6GfWkreDTo:D7DqB2pKExk" border="0"/></a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.glennmarcus.com/blog/2009/04/06/great-visualizations-with-protovis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DataTables: Major update to the highly flexible data table component</title>
		<link>http://www.glennmarcus.com/blog/2009/03/10/datatables-major-update-to-the-highly-flexible-data-table-component/</link>
		<comments>http://www.glennmarcus.com/blog/2009/03/10/datatables-major-update-to-the-highly-flexible-data-table-component/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 11:46:41 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[ajax]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">tag:google.com,2005:reader/item/ed6b060202ba07df</guid>
		<description><![CDATA[<p><img src="http://ajaxian.com/wp-content/uploads/datatables.png" alt="" title="datatables" width="500" height="214"/></p>
<p>Allan Jardine has updated his popular <a href="http://www.datatables.net/">DataTables</a> rich data grid control. Allan told us what his aims were for this 1.4.1 release:</p>
<blockquote><p>
Being fairly happy with the options that DataTables presents to the end user, I&#8217;ve focused this release on providing tools for the developer. A plug-in API, non-destructive DOM manipulation (the biggest weak point of the old versions) and documentation are the major new features.
</p>
</blockquote>
<p>If you take a look at the new <a href="http://www.datatables.net/api">rich API</a> you will see that can manipulate the data in the table, build filters, fetch remote data, and more.</p>
<p>What does DataTables feature again?</p>
<ul>
<li>Variable length pagination</li>
<li>On-the-fly filtering</li>
<li>Multi-coloum sorting with data type detection</li>
<li>Smart handling of column widths</li>
<li>Fully internationalisable<br /><span style="font-style:smaller">UK, French, German, Spanish, Russian, Norwegian, Portuguese Brazilian (and more) translations provided</span></li>
<li>State saving</li>
<li>Hidden columns</li>
<li>Dynamic creation of tables</li>
<li>Ajax auto loading of data</li>
<li>Custom DOM positioning</li>
<li>Single column filtering</li>
<li>Alternative pagination types</li>
<li>Non-destructive DOM interaction</li>
<li>Sorting column(s) highlighting</li>
<li>Extensive plug-in support<br /><span style="font-size:smaller">Sorting, type detection, API functions and pagination</span></li>
<li>Fully themeable by CSS</li>
<li>Solid documentation</li>
</ul>
<div>
<a href="http://feeds2.feedburner.com/~ff/ajaxian?a=tW5s_WVitqk:HiNF55PT54c:yIl2AUoC8zA"><img src="http://feeds2.feedburner.com/~ff/ajaxian?d=yIl2AUoC8zA" border="0"/></a> <a href="http://feeds2.feedburner.com/~ff/ajaxian?a=tW5s_WVitqk:HiNF55PT54c:7Q72WNTAKBA"><img src="http://feeds2.feedburner.com/~ff/ajaxian?d=7Q72WNTAKBA" border="0"/></a> <a href="http://feeds2.feedburner.com/~ff/ajaxian?a=tW5s_WVitqk:HiNF55PT54c:D7DqB2pKExk"><img src="http://feeds2.feedburner.com/~ff/ajaxian?i=tW5s_WVitqk:HiNF55PT54c:D7DqB2pKExk" border="0"/></a>
</div>
]]></description>
			<content:encoded><![CDATA[<p><img src="http://ajaxian.com/wp-content/uploads/datatables.png" alt="" title="datatables" width="500" height="214"/></p>
<p>Allan Jardine has updated his popular <a href="http://www.datatables.net/">DataTables</a> rich data grid control. Allan told us what his aims were for this 1.4.1 release:</p>
<blockquote><p>
Being fairly happy with the options that DataTables presents to the end user, I&#8217;ve focused this release on providing tools for the developer. A plug-in API, non-destructive DOM manipulation (the biggest weak point of the old versions) and documentation are the major new features.
</p>
</blockquote>
<p>If you take a look at the new <a href="http://www.datatables.net/api">rich API</a> you will see that can manipulate the data in the table, build filters, fetch remote data, and more.</p>
<p>What does DataTables feature again?</p>
<ul>
<li>Variable length pagination</li>
<li>On-the-fly filtering</li>
<li>Multi-coloum sorting with data type detection</li>
<li>Smart handling of column widths</li>
<li>Fully internationalisable<br /><span style="font-style:smaller">UK, French, German, Spanish, Russian, Norwegian, Portuguese Brazilian (and more) translations provided</span></li>
<li>State saving</li>
<li>Hidden columns</li>
<li>Dynamic creation of tables</li>
<li>Ajax auto loading of data</li>
<li>Custom DOM positioning</li>
<li>Single column filtering</li>
<li>Alternative pagination types</li>
<li>Non-destructive DOM interaction</li>
<li>Sorting column(s) highlighting</li>
<li>Extensive plug-in support<br /><span style="font-size:smaller">Sorting, type detection, API functions and pagination</span></li>
<li>Fully themeable by CSS</li>
<li>Solid documentation</li>
</ul>
<div>
<a href="http://feeds2.feedburner.com/~ff/ajaxian?a=tW5s_WVitqk:HiNF55PT54c:yIl2AUoC8zA"><img src="http://feeds2.feedburner.com/~ff/ajaxian?d=yIl2AUoC8zA" border="0"/></a> <a href="http://feeds2.feedburner.com/~ff/ajaxian?a=tW5s_WVitqk:HiNF55PT54c:7Q72WNTAKBA"><img src="http://feeds2.feedburner.com/~ff/ajaxian?d=7Q72WNTAKBA" border="0"/></a> <a href="http://feeds2.feedburner.com/~ff/ajaxian?a=tW5s_WVitqk:HiNF55PT54c:D7DqB2pKExk"><img src="http://feeds2.feedburner.com/~ff/ajaxian?i=tW5s_WVitqk:HiNF55PT54c:D7DqB2pKExk" border="0"/></a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.glennmarcus.com/blog/2009/03/10/datatables-major-update-to-the-highly-flexible-data-table-component/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Forget Chuck, Preloaders 3D right now!</title>
		<link>http://www.glennmarcus.com/blog/2009/02/02/forget-chuck-preloaders-3d-right-now/</link>
		<comments>http://www.glennmarcus.com/blog/2009/02/02/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[ui]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Utility]]></category>

		<guid isPermaLink="false">tag:google.com,2005:reader/item/ec630c5453321b21</guid>
		<description><![CDATA[<p><img src="http://ajaxian.com/wp-content/uploads/preloader3d.png" alt="" title="preloader3d" width="61" height="196" 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"/></p>
<div>
<a href="http://feeds.feedburner.com/~f/ajaxian?a=WNjJVn.Q"><img src="http://feeds.feedburner.com/~f/ajaxian?i=WNjJVn.Q" border="0"/></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=uH7xlh.Q"><img src="http://feeds.feedburner.com/~f/ajaxian?i=uH7xlh.Q" border="0"/></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=nrKDnb.q"><img src="http://feeds.feedburner.com/~f/ajaxian?i=nrKDnb.q" border="0"/></a>
</div>
]]></description>
			<content:encoded><![CDATA[<p><img src="http://ajaxian.com/wp-content/uploads/preloader3d.png" alt="" title="preloader3d" width="61" height="196" 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"/></p>
<div>
<a href="http://feeds.feedburner.com/~f/ajaxian?a=WNjJVn.Q"><img src="http://feeds.feedburner.com/~f/ajaxian?i=WNjJVn.Q" border="0"/></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=uH7xlh.Q"><img src="http://feeds.feedburner.com/~f/ajaxian?i=uH7xlh.Q" border="0"/></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=nrKDnb.q"><img src="http://feeds.feedburner.com/~f/ajaxian?i=nrKDnb.q" border="0"/></a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.glennmarcus.com/blog/2009/02/02/forget-chuck-preloaders-3d-right-now/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Happy Birthday jQuery! v1.3 is Released</title>
		<link>http://www.glennmarcus.com/blog/2009/01/14/happy-birthday-jquery-v1-3-is-released/</link>
		<comments>http://www.glennmarcus.com/blog/2009/01/14/happy-birthday-jquery-v1-3-is-released/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 15:19:48 +0000</pubDate>
		<dc:creator>Rey Bango</dc:creator>
				<category><![CDATA[ajax]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">tag:google.com,2005:reader/item/47cd2e8dcc1387b9</guid>
		<description><![CDATA[<p><em>Disclosure: I&#8217;m a member of the jQuery Project team</em></p>
<p>Back on January 14, 2006, a brash, young and talented developer named John Resig put out a personal project to the OSS world and hoped it could benefit *someone*. Little did he know that 3 years later, his side project would become one of the most influential frameworks for developing JavaScript-based applications. Today, the jQuery project turns 3 years old which, considering the churn rate for open source projects, is a monumental achievement. So it makes sense that on the project&#8217;s 3rd birthday,<a href="http://blog.jquery.com/2009/01/14/jquery-13-and-the-jquery-foundation/"> the team has announced the release of jQuery v1.3</a>, the latest and greatest release of jQuery which includes the new <a href="http://sizzlejs.com/">Sizzle selector engine</a>.</p>
<p>Along with the inclusion of Sizzle, jQuery v1.3 includes a bevvy of new features:</p>
<ul>
<li>Live Events: Event delegation with a jQuery twist</li>
<li>jQuery Event Overhaul: Completely rewired to simplify event handling.</li>
<li>HTML Injection Rewrite: Lightning-fast HTML appending.</li>
<li>Offset Rewrite: Super-quick position calculation.</li>
<li>No More Browser Sniffing: Using feature detection to help jQuery last for many more years to come.</li>
</ul>
<p>The details of the release can be found via the <a href="http://docs.jquery.com/Release:jQuery_1.3">release notes</a>.</p>
<p>In addition to that, <a href="http://remysharp.com/">Remy Sharp</a> donated a new dynamic <a href="http://api.jquery.com/">API browser</a> to the jQuery project which makes searching the jQuery API extremely easy:</p>
<p><a href="http://api.jquery.com/"><img src="http://ajaxian.com/wp-content/uploads/jqueryapibrowser.jpg" alt="" title="jqueryapibrowser" width="300" height="217"/></a></p>
<p>The API browser includes:</p>
<ul>
<li>All the latest jQuery and jQuery UI documentation.	</li>
<li>The ability to mark pages as favorites for those pages you keep wanting to return to.	</li>
<li>Syntax highlighting in the code examples	</li>
<li>Live running of examples within the browser	</li>
<li>Links to edit and experiment with the code examples	</li>
</ul>
<p>In addition, <a href="http://digitalspaghetti.me.uk/">Tane Piper</a> &#38;&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p><em>Disclosure: I&#8217;m a member of the jQuery Project team</em></p>
<p>Back on January 14, 2006, a brash, young and talented developer named John Resig put out a personal project to the OSS world and hoped it could benefit *someone*. Little did he know that 3 years later, his side project would become one of the most influential frameworks for developing JavaScript-based applications. Today, the jQuery project turns 3 years old which, considering the churn rate for open source projects, is a monumental achievement. So it makes sense that on the project&#8217;s 3rd birthday,<a href="http://blog.jquery.com/2009/01/14/jquery-13-and-the-jquery-foundation/"> the team has announced the release of jQuery v1.3</a>, the latest and greatest release of jQuery which includes the new <a href="http://sizzlejs.com/">Sizzle selector engine</a>.</p>
<p>Along with the inclusion of Sizzle, jQuery v1.3 includes a bevvy of new features:</p>
<ul>
<li>Live Events: Event delegation with a jQuery twist</li>
<li>jQuery Event Overhaul: Completely rewired to simplify event handling.</li>
<li>HTML Injection Rewrite: Lightning-fast HTML appending.</li>
<li>Offset Rewrite: Super-quick position calculation.</li>
<li>No More Browser Sniffing: Using feature detection to help jQuery last for many more years to come.</li>
</ul>
<p>The details of the release can be found via the <a href="http://docs.jquery.com/Release:jQuery_1.3">release notes</a>.</p>
<p>In addition to that, <a href="http://remysharp.com/">Remy Sharp</a> donated a new dynamic <a href="http://api.jquery.com/">API browser</a> to the jQuery project which makes searching the jQuery API extremely easy:</p>
<p><a href="http://api.jquery.com/"><img src="http://ajaxian.com/wp-content/uploads/jqueryapibrowser.jpg" alt="" title="jqueryapibrowser" width="300" height="217"/></a></p>
<p>The API browser includes:</p>
<ul>
<li>All the latest jQuery and jQuery UI documentation.	</li>
<li>The ability to mark pages as favorites for those pages you keep wanting to return to.	</li>
<li>Syntax highlighting in the code examples	</li>
<li>Live running of examples within the browser	</li>
<li>Links to edit and experiment with the code examples	</li>
</ul>
<p>In addition, <a href="http://digitalspaghetti.me.uk/">Tane Piper</a> &amp; Remy worked together to provide an <a href="http://api.jquery.com/">AIR app version of the browser</a> so you can view the API locally.</p>
<p>The biggest update though is that the jQuery projects (i.e. jQuery &amp; jQuery UI) will be part of the <a href="http://conservancy.softwarefreedom.org/">Software Freedom Conservancy</a> thus making the projects true non-profit endeavor and providing a number of benefits to both the project and the jQuery community including:</p>
<ol>
<li>It allows the current project members to continue to manage the projects and maintain ultimate responsibility for the direction of current and future efforts.</li>
<li>It allows the projects to be considered a true non-profit efforts allowing us to be able to accept donations and contributions without incurring tremendous personal financial liability.</li>
<li>The copyright of the code will be assigned to the conservancy thus ensuring that no single person will own contributions or assets of the project.</li>
<li>It may allow corporations to write off time when an employee contributes to a project.</li>
<li>Most importantly, it ensures that the jQuery projects will always be open and free software</li>
</ol>
<p>With so many new individuals &amp; corporations contributing to the project, doing this became a big priority to protect the investments made by the jQuery community.</p>
<p>This is a lot of great news for jQuery developers and here&#8217;s wishing jQuery a happy 3rd birthday.</p>
<div>
<a href="http://feeds.feedburner.com/~f/ajaxian?a=ZcPVRi.P"><img src="http://feeds.feedburner.com/~f/ajaxian?i=ZcPVRi.P" border="0"/></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=FVlVA3.P"><img src="http://feeds.feedburner.com/~f/ajaxian?i=FVlVA3.P" border="0"/></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=I5MZcf.p"><img src="http://feeds.feedburner.com/~f/ajaxian?i=I5MZcf.p" border="0"/></a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.glennmarcus.com/blog/2009/01/14/happy-birthday-jquery-v1-3-is-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Development Project Estimator</title>
		<link>http://www.glennmarcus.com/blog/2009/01/13/web-development-project-estimator/</link>
		<comments>http://www.glennmarcus.com/blog/2009/01/13/web-development-project-estimator/#comments</comments>
		<pubDate>Tue, 13 Jan 2009 13:19:23 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[consulting]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Showcase]]></category>

		<guid isPermaLink="false">tag:google.com,2005:reader/item/7e2b9f250943a85d</guid>
		<description><![CDATA[<p>Matt Everson built a simple little micro app for project estimation: <a href="http://estimator.astuteo.com">Web Development Project Estimator</a>:</p>
<blockquote><p>
Although most web designers have an idea of how long a project will take based on their past experience, far too often this guess becomes a final estimate. If you&#8217;ve ever been 300+ hours into a project that&#8217;s paying you for 100, I&#8217;m sure you know first hand why this can be a serious problem for a business. Up until now, I&#8217;ve used an excel spreadsheet to help me estimate accurately. About a month ago though, it occurred to me that I could make this calculator into a sweet little online tool. I figured it can only lead to more accurate estimates, stronger web businesses, and a better valuation of what we do as designers.
</p>
</blockquote>
<p>Of course, the fun is tracking how close you come to the estimator :)</p>
<p><img src="http://ajaxian.com/wp-content/uploads/estimator.png" alt="" title="estimator" width="500" height="566"/></p>
<div>
<a href="http://feeds.feedburner.com/~f/ajaxian?a=ljxqhU.P"><img src="http://feeds.feedburner.com/~f/ajaxian?i=ljxqhU.P" border="0"/></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=5riBw8.P"><img src="http://feeds.feedburner.com/~f/ajaxian?i=5riBw8.P" border="0"/></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=TmxcWX.p"><img src="http://feeds.feedburner.com/~f/ajaxian?i=TmxcWX.p" border="0"/></a>
</div>
]]></description>
			<content:encoded><![CDATA[<p>Matt Everson built a simple little micro app for project estimation: <a href="http://estimator.astuteo.com">Web Development Project Estimator</a>:</p>
<blockquote><p>
Although most web designers have an idea of how long a project will take based on their past experience, far too often this guess becomes a final estimate. If you&#8217;ve ever been 300+ hours into a project that&#8217;s paying you for 100, I&#8217;m sure you know first hand why this can be a serious problem for a business. Up until now, I&#8217;ve used an excel spreadsheet to help me estimate accurately. About a month ago though, it occurred to me that I could make this calculator into a sweet little online tool. I figured it can only lead to more accurate estimates, stronger web businesses, and a better valuation of what we do as designers.
</p>
</blockquote>
<p>Of course, the fun is tracking how close you come to the estimator :)</p>
<p><img src="http://ajaxian.com/wp-content/uploads/estimator.png" alt="" title="estimator" width="500" height="566"/></p>
<div>
<a href="http://feeds.feedburner.com/~f/ajaxian?a=ljxqhU.P"><img src="http://feeds.feedburner.com/~f/ajaxian?i=ljxqhU.P" border="0"/></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=5riBw8.P"><img src="http://feeds.feedburner.com/~f/ajaxian?i=5riBw8.P" border="0"/></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=TmxcWX.p"><img src="http://feeds.feedburner.com/~f/ajaxian?i=TmxcWX.p" border="0"/></a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.glennmarcus.com/blog/2009/01/13/web-development-project-estimator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Content visualization techniques and views</title>
		<link>http://www.glennmarcus.com/blog/2009/01/13/content-visualization-techniques-and-views/</link>
		<comments>http://www.glennmarcus.com/blog/2009/01/13/content-visualization-techniques-and-views/#comments</comments>
		<pubDate>Tue, 13 Jan 2009 10:08:48 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[ajax]]></category>
		<category><![CDATA[Articles]]></category>
		<category><![CDATA[Front Page]]></category>

		<guid isPermaLink="false">tag:google.com,2005:reader/item/ebb51d57f67736e2</guid>
		<description><![CDATA[<p><img src="http://noupe.com/img/layout-javascript4.jpg"/></p>
<p>Noupe has another nice roundup, this time they are showing <a href="http://www.noupe.com/javascript/10-smart-javascript-techniques-for-manipulating-content.html">10 Smart JavaScript Techniques For Manipulating Content</a>.</p>
<p>They share nice content views with demos and how to content. Included in the list is:</p>
<ol>
<li><a href="http://halobrite.com/blog/jquery-pageslide/">jQuery pageSlide</a>: jQuery pageSlide is a plugin for jQuery that slides the viewable webpage off-screen, revealing and populating a secondary interaction pane. It may be used in a similar manner to Lightbox, where screen real estate and centralization of the user experience are a concern.</li>
<li><a href="http://woork.blogspot.com/2008/12/simple-list-with-nice-slide-effect-for.html">Create a simple ul list with a nice slide-out effect for li elements</a>: We want to obtain this effect: when an user clicks on a link (&#8221;Hide&#8221;), the related </li>
<li> element disappear with a nice animated slide out effect. A simple way to implement an animated &#8220;disappear&#8221; effect using MooTools slideOut()</li>
<li><a href="http://benjaminsterling.com/portolio-layout-idea-using-jquery/">Portfolio Layout Idea Using jQuery</a>: Benjamin Sterling created an interesting portfolio layout and added a nice easing method to the main content panel using easeOutQuad and easeInQuad using jQuery easing plugin.</li>
<li><a href="http://css-tricks.com/creating-a-slick-auto-playing-featured-content-slider/">Creating a Slick Auto-Playing Featured Content Slider</a>: Niall Dohertyâ€™s Coda Slider inspired lot of designers and got them started quickly designing around it. Chris Coyier created a Slick Auto-Playing Featured Content Slider using Coda Slider plugin pretty much â€œout of the boxâ€ and added to it.</li>
<li><a href="http://cssglobe.com/post/3783/jquery-plugin-easy-image-or-content-slider">Easy Image or Content Slider</a>: Easy Slider enables images or any content to slide horizontally or vertically on click. It is configurable with css alone.</li>
<li><a href="http://www.artviper.net/test/mooSlide2/index.html">mooSlide</a>: mooSlide is nice replacement of the common â€œlightboxâ€ module. It has some interesting options to influence the look and behaviour of the sliding box.</li>
<li><a href="http://flesler.blogspot.com/2008/02/jqueryserialscroll.html">jQuery.SerialScroll</a>: jQuery.SerialScroll allows&#8230;</li></ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://noupe.com/img/layout-javascript4.jpg"/></p>
<p>Noupe has another nice roundup, this time they are showing <a href="http://www.noupe.com/javascript/10-smart-javascript-techniques-for-manipulating-content.html">10 Smart JavaScript Techniques For Manipulating Content</a>.</p>
<p>They share nice content views with demos and how to content. Included in the list is:</p>
<ol>
<li><a href="http://halobrite.com/blog/jquery-pageslide/">jQuery pageSlide</a>: jQuery pageSlide is a plugin for jQuery that slides the viewable webpage off-screen, revealing and populating a secondary interaction pane. It may be used in a similar manner to Lightbox, where screen real estate and centralization of the user experience are a concern.</li>
<li><a href="http://woork.blogspot.com/2008/12/simple-list-with-nice-slide-effect-for.html">Create a simple ul list with a nice slide-out effect for li elements</a>: We want to obtain this effect: when an user clicks on a link (&#8221;Hide&#8221;), the related </li>
<li> element disappear with a nice animated slide out effect. A simple way to implement an animated &#8220;disappear&#8221; effect using MooTools slideOut()</li>
<li><a href="http://benjaminsterling.com/portolio-layout-idea-using-jquery/">Portfolio Layout Idea Using jQuery</a>: Benjamin Sterling created an interesting portfolio layout and added a nice easing method to the main content panel using easeOutQuad and easeInQuad using jQuery easing plugin.</li>
<li><a href="http://css-tricks.com/creating-a-slick-auto-playing-featured-content-slider/">Creating a Slick Auto-Playing Featured Content Slider</a>: Niall Dohertyâ€™s Coda Slider inspired lot of designers and got them started quickly designing around it. Chris Coyier created a Slick Auto-Playing Featured Content Slider using Coda Slider plugin pretty much â€œout of the boxâ€ and added to it.</li>
<li><a href="http://cssglobe.com/post/3783/jquery-plugin-easy-image-or-content-slider">Easy Image or Content Slider</a>: Easy Slider enables images or any content to slide horizontally or vertically on click. It is configurable with css alone.</li>
<li><a href="http://www.artviper.net/test/mooSlide2/index.html">mooSlide</a>: mooSlide is nice replacement of the common â€œlightboxâ€ module. It has some interesting options to influence the look and behaviour of the sliding box.</li>
<li><a href="http://flesler.blogspot.com/2008/02/jqueryserialscroll.html">jQuery.SerialScroll</a>: jQuery.SerialScroll allows you to easily animate any series of elements, by sequentially scrolling them.</li>
<li><a href="http://plugins.jquery.com/project/agile-carousel">Agile Carousel</a>: Agile Carousel allows you to easily create a custom carousel.</li>
<li><a href="http://www.leigeber.com/2008/12/javascript-slideshow/">Animated JavaScript Slideshow</a>: This extremely lightweight JavaScript animated slideshow script includes a number of cool features to to style your content: description support, link support, no naming restrictions, portrait image support, graceful degradation and active thumbnail status.</li>
<li><a href="http://www.coders.me/web-html-js-css/javascript/sexy-lightbox-2">Sexy Lightbox 2</a>: Sexy Lightbox 2 is a sexier and lighter clone of the classic Lightbox. Supports displaying images and HTML elements.</li>
<li><a href="http://layout.jquery-dev.net/">UI.Layout</a>: Was was inspired by the extJS border-layout. The UI.Layout plug-in can create any UI look you want &#8211; from simple headers or sidebars, to a complex application with toolbars, menus, help-panels, status bars, sub-forms, etc.</li>
</ol>
<div>
<a href="http://feeds.feedburner.com/~f/ajaxian?a=iTfoDb.P"><img src="http://feeds.feedburner.com/~f/ajaxian?i=iTfoDb.P" border="0"/></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=PSKsrn.P"><img src="http://feeds.feedburner.com/~f/ajaxian?i=PSKsrn.P" border="0"/></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=6zQHma.p"><img src="http://feeds.feedburner.com/~f/ajaxian?i=6zQHma.p" border="0"/></a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.glennmarcus.com/blog/2009/01/13/content-visualization-techniques-and-views/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SmartGWT 1.0: Huge open source widget set and more</title>
		<link>http://www.glennmarcus.com/blog/2008/12/03/smartgwt-1-0-huge-open-source-widget-set-and-more/</link>
		<comments>http://www.glennmarcus.com/blog/2008/12/03/smartgwt-1-0-huge-open-source-widget-set-and-more/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 05:52:35 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[ajax]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[GWT]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Toolkit]]></category>

		<guid isPermaLink="false">tag:google.com,2005:reader/item/6f8e0f0d358ee2ad</guid>
		<description><![CDATA[<p>You may remember Sanjiv Jivan as the GWT-Ext developer that <a href="http://www.jroller.com/comments/sjivan/Weblog/update_on_future_direction_of1">changed over the debacle</a>. He then went on to start work on a GWT version of SmartClient libraries and has now <a href="http://www.jroller.com/sjivan/entry/smartgwt_1_0_released">released SmartGWT 1.0</a>.</p>
<p>It is a tour de force of not only a huge widget library, but he explains how it is much more:</p>
<blockquote><p>
So what&#8217;s so smart about SmartGWT? Let me try to explain. SmartGWT is not just another Widget library. While most Ajax frameworks focus primarily on presentation and displaying mostly read-only data, either local or via XML / JSON, SmartClient was built with server side integration in mind. Most enterprise applications are not just about about data presentation, but about being able to propagate data changes made by the user to the backend. So while its tempting to use library X that has a cool tree widget, it&#8217;s not until you actually try to use it your application that you encounter the real world hard problems. For example, how do you take data from your business objects on the server to not only display in a tree widget, but also be able to update your data model when, say, the user reorders the tree nodes or make edits / deletes in the UI. How do you display hierarchical data where nodes may have hundreds of children? And so on..</p>
<p>Most Ajax frameworks stop short and leave it up to the user to manage state on the client side and propagating the changes to the server. This is not a&#8230;</p></blockquote>]]></description>
			<content:encoded><![CDATA[<p>You may remember Sanjiv Jivan as the GWT-Ext developer that <a href="http://www.jroller.com/comments/sjivan/Weblog/update_on_future_direction_of1">changed over the debacle</a>. He then went on to start work on a GWT version of SmartClient libraries and has now <a href="http://www.jroller.com/sjivan/entry/smartgwt_1_0_released">released SmartGWT 1.0</a>.</p>
<p>It is a tour de force of not only a huge widget library, but he explains how it is much more:</p>
<blockquote><p>
So what&#8217;s so smart about SmartGWT? Let me try to explain. SmartGWT is not just another Widget library. While most Ajax frameworks focus primarily on presentation and displaying mostly read-only data, either local or via XML / JSON, SmartClient was built with server side integration in mind. Most enterprise applications are not just about about data presentation, but about being able to propagate data changes made by the user to the backend. So while its tempting to use library X that has a cool tree widget, it&#8217;s not until you actually try to use it your application that you encounter the real world hard problems. For example, how do you take data from your business objects on the server to not only display in a tree widget, but also be able to update your data model when, say, the user reorders the tree nodes or make edits / deletes in the UI. How do you display hierarchical data where nodes may have hundreds of children? And so on..</p>
<p>Most Ajax frameworks stop short and leave it up to the user to manage state on the client side and propagating the changes to the server. This is not a trivial problem! Over the past few years UI widget libraries have improved significantly and there are now various options available to users. Simply put, having good looking widgets is not the hard problem today. In addition to having good looking widgets, having end-to-end integration of the UI components with the backend is the hard problem. It&#8217;s this 20% of the functionality that takes 80% of the time in building most enterprise applications.
</p>
</blockquote>
<p>The <a href="http://www.smartclient.com/smartgwt/showcase/">showcase</a> will give you a good feel for what is out there, and it contains some interesting items including:</p>
<ul>
<li><a href="http://www.smartclient.com/smartgwt/showcase/#featured_miller_columns">Miller Columns</a>: The ColumnTree provides an alternate navigation paradigm for Tree data, sometimes called &#8220;Miller Columns&#8221; and seen in iTunes</li>
<li><a href="http://www.smartclient.com/smartgwt/showcase/#featured_nested_grid">Nested Grid</a>: A convenient way to display 1-n relationships</li>
<li><a href="http://www.smartclient.com/smartgwt/showcase/#featured_print_grid">Printable Views</a>: SmartGWT supports printable views of its components.</li>
<li><a href="http://www.smartclient.com/smartgwt/showcase/#featured_filter_builder_grid">Advanced Filter Builder</a>: a databound filter builder. </li>
<li><a href="http://www.smartclient.com/smartgwt/showcase/#featured_dropdown_grid_category">Tile View</a>: Representation of data as &#8220;tiles&#8221;. Again, TileGrid supports data binding so sort / filter and edits can be easily performed.</li>
<li>Calendars : A Google Calendar like widget that supports databinding so edits and drag drop changes can easily be propgated to the server for persisting.</li>
<li>TreeGrid : Supports multiple columns, editing, column locking, lazy loading and more. </li>
<li><a href="http://www.smartclient.com/smartgwt/showcase/#featured_grid_live">Live Grid / Tree</a>: Grid / Tree virtual scrolling or live grid</li>
</ul>
<p><img src="http://ajaxian.com/wp-content/uploads/smartgwt.png" alt="" title="smartgwt" width="500" height="415"/></p>
<p>Really amazing work. Sanjiv recently had a <a href="http://www.infoq.com/news/2008/11/smartgwt">Q&amp;A session with InfoQ</a> where he talks about the approach taken in developing SmartGWT and the his thoughts on the differences between SmartClient and Ext.</p>
<div>
<a href="http://feeds.feedburner.com/~f/ajaxian?a=XVybO"><img src="http://feeds.feedburner.com/~f/ajaxian?i=XVybO" border="0"/></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=INzAO"><img src="http://feeds.feedburner.com/~f/ajaxian?i=INzAO" border="0"/></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=c67wo"><img src="http://feeds.feedburner.com/~f/ajaxian?i=c67wo" border="0"/></a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.glennmarcus.com/blog/2008/12/03/smartgwt-1-0-huge-open-source-widget-set-and-more/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Guid0: JavaScript GUIDs</title>
		<link>http://www.glennmarcus.com/blog/2008/11/14/guid0-javascript-guids/</link>
		<comments>http://www.glennmarcus.com/blog/2008/11/14/guid0-javascript-guids/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 11:47:33 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[ajax]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Library]]></category>
		<category><![CDATA[Tip]]></category>

		<guid isPermaLink="false">tag:google.com,2005:reader/item/c5521110ce814e0b</guid>
		<description><![CDATA[<p>Our own Michael Mahemoff is at it again, creating a simple little <a href="http://softwareas.com/guid0-a-javascript-guid-generator">GUID generator called Guid0</a>:</p>
<blockquote><p>
Guid0 is a GUID library for Javascript. Okay, it doesn&#8217;t yet do official, bona fide, 128-bit, GUIDs yet, mainly for API design reasons. But this is a library you might find useful if you want to generate a unique ID in your Ajax app.</p>
<div><a href="javascript:void(0);">PLAIN TEXT</a></div>
<div><span style="color:#000000;font-weight:bold">JAVASCRIPT:</span></p>
<div>
<div>
<ol>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â </div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal"><span style="color:#009900;font-style:italic">// simple</span></div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">guid = <span style="color:#003366;font-weight:bold">new</span> Guid<span style="color:#006600;font-weight:bold">(</span><span style="color:#006600;font-weight:bold">)</span>;</div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal"><span style="color:#003366;font-weight:bold">var</span> newguid = guid.<span style="color:#006600">generate</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#006600;font-weight:bold">)</span>;</div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â </div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal"><span style="color:#009900;font-style:italic">// options</span></div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">guid = <span style="color:#003366;font-weight:bold">new</span> Guid<span style="color:#006600;font-weight:bold">(</span></div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  <span style="color:#006600;font-weight:bold">{</span></div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  Â  Â  chars: Guid.<span style="color:#006600">constants</span>.<span style="color:#006600">base85</span>,Â  <span style="color:#009900;font-style:italic">// or you could say &#34;abc&#34; if you only wanted those chars to appear</span></div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  Â  Â  epoch: <span style="color:#3366CC">&#8220;June 1, 2003&#8243;</span>,</div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  Â  Â  counterSequenceLength: <span style="color:#800000">2</span>, <span style="color:#009900;font-style:italic">// a counter field appended to the end</span></div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  Â  Â  randomSequenceLength: <span style="color:#800000">2</span> <span style="color:#009900;font-style:italic">// a random field appended to the end</span></div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  <span style="color:#006600;font-weight:bold">}</span></div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal"><span style="color:#006600;font-weight:bold">)</span>;</div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â </div>
</li>
</ol>
</div>
</div>
</div>
<p>He is working on 128-bit support.</p>
</blockquote>
<div>
<a href="http://feeds.feedburner.com/~f/ajaxian?a=44B6N"><img src="http://feeds.feedburner.com/~f/ajaxian?i=44B6N" border="0"/></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=8lSJN"><img src="http://feeds.feedburner.com/~f/ajaxian?i=8lSJN" border="0"/></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=TA3Yn"><img src="http://feeds.feedburner.com/~f/ajaxian?i=TA3Yn" border="0"/></a>
</div>
]]></description>
			<content:encoded><![CDATA[<p>Our own Michael Mahemoff is at it again, creating a simple little <a href="http://softwareas.com/guid0-a-javascript-guid-generator">GUID generator called Guid0</a>:</p>
<blockquote><p>
Guid0 is a GUID library for Javascript. Okay, it doesn&#8217;t yet do official, bona fide, 128-bit, GUIDs yet, mainly for API design reasons. But this is a library you might find useful if you want to generate a unique ID in your Ajax app.</p>
<div><a href="javascript:void(0);">PLAIN TEXT</a></div>
<div><span style="color:#000000;font-weight:bold">JAVASCRIPT:</span></p>
<div>
<div>
<ol>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â </div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal"><span style="color:#009900;font-style:italic">// simple</span></div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">guid = <span style="color:#003366;font-weight:bold">new</span> Guid<span style="color:#006600;font-weight:bold">(</span><span style="color:#006600;font-weight:bold">)</span>;</div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal"><span style="color:#003366;font-weight:bold">var</span> newguid = guid.<span style="color:#006600">generate</span><span style="color:#006600;font-weight:bold">(</span><span style="color:#006600;font-weight:bold">)</span>;</div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â </div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal"><span style="color:#009900;font-style:italic">// options</span></div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">guid = <span style="color:#003366;font-weight:bold">new</span> Guid<span style="color:#006600;font-weight:bold">(</span></div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  <span style="color:#006600;font-weight:bold">{</span></div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  Â  Â  chars: Guid.<span style="color:#006600">constants</span>.<span style="color:#006600">base85</span>,Â  <span style="color:#009900;font-style:italic">// or you could say &quot;abc&quot; if you only wanted those chars to appear</span></div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  Â  Â  epoch: <span style="color:#3366CC">&#8220;June 1, 2003&#8243;</span>,</div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  Â  Â  counterSequenceLength: <span style="color:#800000">2</span>, <span style="color:#009900;font-style:italic">// a counter field appended to the end</span></div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  Â  Â  Â  randomSequenceLength: <span style="color:#800000">2</span> <span style="color:#009900;font-style:italic">// a random field appended to the end</span></div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â  <span style="color:#006600;font-weight:bold">}</span></div>
</li>
<li style="font-weight:bold;color:#26536A">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal"><span style="color:#006600;font-weight:bold">)</span>;</div>
</li>
<li style="font-family:&#39;Courier New&#39;, Courier, monospace;color:black;font-weight:normal;font-style:normal;color:#3A6A8B">
<div style="color:#000000;font-family:&#39;Courier New&#39;, Courier, monospace;font-weight:normal">Â </div>
</li>
</ol>
</div>
</div>
</div>
<p>He is working on 128-bit support.</p>
</blockquote>
<div>
<a href="http://feeds.feedburner.com/~f/ajaxian?a=44B6N"><img src="http://feeds.feedburner.com/~f/ajaxian?i=44B6N" border="0"/></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=8lSJN"><img src="http://feeds.feedburner.com/~f/ajaxian?i=8lSJN" border="0"/></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=TA3Yn"><img src="http://feeds.feedburner.com/~f/ajaxian?i=TA3Yn" border="0"/></a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.glennmarcus.com/blog/2008/11/14/guid0-javascript-guids/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

