<?xml version="1.0" encoding="iso-8859-1"?><!-- generator="b2evolution/4.1.7" -->
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>boogdesign blog</title>
		<link>http://www.boogdesign.com/b2evo/</link>
		<atom:link rel="self" type="application/rss+xml" href="http://www.boogdesign.com/b2evo/?tempskin=_rss2" />
		<description>All the boogblogs - web development and design, linux and links</description>
		<language>en-UK</language>
		<docs>http://blogs.law.harvard.edu/tech/rss</docs>
		<admin:generatorAgent rdf:resource="http://b2evolution.net/?v=4.1.7"/>
		<ttl>60</ttl>
				<item>
			<title>OpenTech 2013</title>
			<link>http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2</link>
			<pubDate>Thu, 23 May 2013 01:09:00 +0000</pubDate>			<dc:creator>robertc</dc:creator>
			<category domain="alt">Web Design</category>
<category domain="alt">Web Develop</category>
<category domain="main">Blogging and Internet Culture</category>
<category domain="alt">Society and Politics</category>			<guid isPermaLink="false">373@http://www.boogdesign.com/b2evo/</guid>
						<description>&lt;p&gt;It&#039;s been a while since I&#039;ve written a proper blog post but now that my &#039;professional&#039; writing obligations are mostly out of the way I&#039;ve been meaning to get back to things.  As I attended &lt;a href=&quot;http://www.opentech.org.uk/2013/&quot;&gt;OpenTech 2013&lt;/a&gt; at the weekend I thought this was a great opportunity to get back into the swing of things.  I&#039;ve been to &lt;a href=&quot;http://www.boogdesign.com/b2evo/index.php/things-i-did-last-year-part-two?blog=2&quot;&gt;a few of these events now&lt;/a&gt; and they&#039;re always well organised and thought provoking, this year was no exception.  Each of the six timetable slots through the day had three rooms with sessions and each of those sessions had 2 or (usually) 3 talks.  So obviously I was only able to be in one of those rooms at once and see only about one third of the speakers, but I&#039;ve assembled all those speakers into my &lt;a href=&quot;https://twitter.com/robertc/opentech2013&quot;&gt;OpenTech 2013 twitter list&lt;/a&gt; and in this post I&#039;ll give my potted impressions of each talk.&lt;/p&gt;
&lt;h4&gt;Session 1 (Stream C)&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://fringejoyride.com/2012/06/14/farmification/&quot;&gt;Farmification&lt;/a&gt; - the joystick factory &amp;#8212; Lisa Ma&lt;/strong&gt; - When everyone is using touchscreen devices, what happens to all the people working in the mouse factories?  Lisa has been creating programmes to encourage workers to do part time farming work so that they have something to fall back on when the hard times come.  An interesting alternative to &lt;a href=&quot;http://googleblog.blogspot.co.uk/2006/05/googles-20-percent-time-in-action.html&quot;&gt;20% time&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;House on Github &amp;#8212; Francis Irving&lt;/strong&gt; - Francis is recording &lt;a href=&quot;https://github.com/frabcus/house/issues&quot;&gt;issues with his house on GitHub&lt;/a&gt;, he thinks that in the same way that he put his CV online in 1996 and now everyone&#039;s doing it, by 2023 everyone will be doing this too.  The serious point of the talk was that to effect change in the behaviour of the general population, &lt;a href=&quot;http://en.wikipedia.org/wiki/Crossing_the_Chasm&quot;&gt;to cross the chasm&lt;/a&gt;, requires geeks to hack the market, not just the tech.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;The Constitutional Excerpts Project &amp;#8212; James Melton&lt;/strong&gt; - a project to create semantically indexed and fully searchable &lt;a href=&quot;http://constitutionmaking.org/&quot;&gt;database of the world&#039;s constitutions&lt;/a&gt;, because generally people that are writing constitutions are doing it for the first and only time in their lives and could do with some help.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Session 2 (Stream B)&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;The Children&#039;s Republic of Shoreditch &amp;#8212; Lucy Macnab&lt;/strong&gt; - a &lt;a href=&quot;http://www.ministryofstories.org/&quot;&gt;fascinating project&lt;/a&gt; run from the back of a &lt;a href=&quot;http://www.monstersupplies.org/&quot;&gt;fascinating shop&lt;/a&gt;, I urge you to check out &lt;a href=&quot;http://www.youtube.com/watch?v=Nl-WASEA0c4&quot;&gt;the video&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Writers Centre Norwich &amp;#8212; Chris Gribble&lt;/strong&gt; - Chris wants &#039;creative people&#039; and &#039;technical people&#039; to get together and create fictional works featuring and about technology while still being &#039;literature&#039;.  However it was clear he&#039;d never read any SciFi, which I think set him apart from most of his audience, and when directly asked why he didn&#039;t think &#039;technical people&#039; couldn&#039;t also be &#039;creative people&#039; his answer, even though he denied he thought that, described them as two separate communities who needed to be somehow united.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://schoolofdata.org/&quot;&gt;School of Data&lt;/a&gt;  &amp;#8212; Tony Hirst&lt;/strong&gt; - a project to educate civil society organizations, journalists and citizens in the skills needed to analyse publically available data and &#039;find the story&#039; through a combination of outreach, training and crowd sourcing.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Session 3 (Stream B)&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Unix FPGA - Beyond just Finance &amp;#8212; Graeme Burnett&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Raspberry Pi &amp;#8212; Rob Bishop&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&#039;ll finish this post off tomorrow...&lt;/p&gt;
&lt;div class=&quot;tags twitter_tags&quot;&gt;&lt;strong&gt;Twitter tags for this post&amp;nbsp;:&lt;/strong&gt; &lt;a rel=&quot;tag&quot; href=&quot;http://search.twitter.com/search?tag=a4&quot;&gt;a4&lt;/a&gt; &amp;bull; &lt;a rel=&quot;tag&quot; href=&quot;http://search.twitter.com/search?tag=a6&quot;&gt;a6&lt;/a&gt; &amp;bull; &lt;a rel=&quot;tag&quot; href=&quot;http://search.twitter.com/search?tag=b2&quot;&gt;b2&lt;/a&gt; &amp;bull; &lt;a rel=&quot;tag&quot; href=&quot;http://search.twitter.com/search?tag=b3&quot;&gt;b3&lt;/a&gt; &amp;bull; &lt;a rel=&quot;tag&quot; href=&quot;http://search.twitter.com/search?tag=b5&quot;&gt;b5&lt;/a&gt; &amp;bull; &lt;a rel=&quot;tag&quot; href=&quot;http://search.twitter.com/search?tag=c1&quot;&gt;c1&lt;/a&gt; &amp;bull; &lt;a rel=&quot;tag&quot; href=&quot;http://search.twitter.com/search?tag=opentech&quot;&gt;opentech&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;!-- Paste from here... --&gt;
&lt;a href=&quot;http://del.icio.us/post&quot; onclick=&quot;window.open(&#039;http://del.icio.us/post?v=4&amp;amp;noui&amp;amp;jump=close&amp;amp;url=&#039;+encodeURIComponent(&#039;http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2&#039;)+&#039;&amp;amp;title=&#039;+encodeURIComponent(&#039;OpenTech 2013&#039;),&#039;delicious&#039;, &#039;toolbar=no,width=700,height=400&#039;); return false;&quot; title=&quot;del.icio.us&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/delicious.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://reddit.com/submit?url=http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2&amp;amp;title=OpenTech 2013&quot; target=&quot;blank&quot; title=&quot;Reddit&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/reddit.png&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a title=&quot;Stumble It&quot; target=&quot;_blank&quot; href=&quot;http://www.stumbleupon.com/submit?url=http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2&amp;amp;title=BAE%20Social%20Bookmarks&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/stumbleupon.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://technorati.com/faves?add=http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2&quot; target=&quot;blank&quot; title=&quot;Technorati&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/technorati.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://digg.com/submit?url=http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2&amp;amp;title=OpenTech 2013&amp;amp;bodytext=&amp;amp;media=news&amp;amp;topic=programming&quot; title=&quot;Digg This&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/digg.png&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.facebook.com/share.php?u=http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2&amp;amp;t=OpenTech 2013&quot; target=&quot;_blank&quot; title=&quot;Share on Facebook&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/facebook.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.spurl.net/spurl.php?title=OpenTech 2013&amp;amp;url=http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2&quot; target=&quot;blank&quot; title=&quot;Submit to Spurl&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/spurl.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;


&lt;a href=&quot;http://www.furl.net/storeIt.jsp?u=http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2&amp;amp;t=OpenTech 2013&quot; target=&quot;blank&quot; title=&quot;Submit to Furl&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/furl.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://myweb2.search.yahoo.com/myresults/bookmarklet?t=OpenTech 2013&amp;amp;u=http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2&quot; target=&quot;blank&quot; title=&quot;Yahoo&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/yahoo.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;amp;Url=http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2&amp;amp;Title=OpenTech 2013&quot; target=&quot;blank&quot; title=&quot;Blinklist&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/blinklist.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a title=&quot;Add To Google&quot; href=&quot;http://www.google.com/ig/adde?moduleurl=http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/google.gif&quot; style=&quot;border: 0px none ; width: 16px; height: 16px;&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a rel=&quot;nofollow&quot; href=&quot;http://twitter.com/home?status=OpenTech 2013+http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2&quot; title=&quot;Tweet this&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/twitter-icon.png&quot; style=&quot;width:16px; height:16px;border:0px;&quot; alt=&quot;Tweet this!&quot; /&gt;&lt;/a&gt;
&lt;!-- ...to here --&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>It's been a while since I've written a proper blog post but now that my 'professional' writing obligations are mostly out of the way I've been meaning to get back to things.  As I attended <a href="http://www.opentech.org.uk/2013/">OpenTech 2013</a> at the weekend I thought this was a great opportunity to get back into the swing of things.  I've been to <a href="http://www.boogdesign.com/b2evo/index.php/things-i-did-last-year-part-two?blog=2">a few of these events now</a> and they're always well organised and thought provoking, this year was no exception.  Each of the six timetable slots through the day had three rooms with sessions and each of those sessions had 2 or (usually) 3 talks.  So obviously I was only able to be in one of those rooms at once and see only about one third of the speakers, but I've assembled all those speakers into my <a href="https://twitter.com/robertc/opentech2013">OpenTech 2013 twitter list</a> and in this post I'll give my potted impressions of each talk.</p>
<h4>Session 1 (Stream C)</h4>
<ul>
  <li><strong><a href="http://fringejoyride.com/2012/06/14/farmification/">Farmification</a> - the joystick factory &#8212; Lisa Ma</strong> - When everyone is using touchscreen devices, what happens to all the people working in the mouse factories?  Lisa has been creating programmes to encourage workers to do part time farming work so that they have something to fall back on when the hard times come.  An interesting alternative to <a href="http://googleblog.blogspot.co.uk/2006/05/googles-20-percent-time-in-action.html">20% time</a>.</li>
  <li><strong>House on Github &#8212; Francis Irving</strong> - Francis is recording <a href="https://github.com/frabcus/house/issues">issues with his house on GitHub</a>, he thinks that in the same way that he put his CV online in 1996 and now everyone's doing it, by 2023 everyone will be doing this too.  The serious point of the talk was that to effect change in the behaviour of the general population, <a href="http://en.wikipedia.org/wiki/Crossing_the_Chasm">to cross the chasm</a>, requires geeks to hack the market, not just the tech.</li>
  <li><strong>The Constitutional Excerpts Project &#8212; James Melton</strong> - a project to create semantically indexed and fully searchable <a href="http://constitutionmaking.org/">database of the world's constitutions</a>, because generally people that are writing constitutions are doing it for the first and only time in their lives and could do with some help.</li>
</ul>
<h4>Session 2 (Stream B)</h4>
<ul>
  <li><strong>The Children's Republic of Shoreditch &#8212; Lucy Macnab</strong> - a <a href="http://www.ministryofstories.org/">fascinating project</a> run from the back of a <a href="http://www.monstersupplies.org/">fascinating shop</a>, I urge you to check out <a href="http://www.youtube.com/watch?v=Nl-WASEA0c4">the video</a>.</li>
  <li><strong>Writers Centre Norwich &#8212; Chris Gribble</strong> - Chris wants 'creative people' and 'technical people' to get together and create fictional works featuring and about technology while still being 'literature'.  However it was clear he'd never read any SciFi, which I think set him apart from most of his audience, and when directly asked why he didn't think 'technical people' couldn't also be 'creative people' his answer, even though he denied he thought that, described them as two separate communities who needed to be somehow united.</li>
  <li><strong><a href="http://schoolofdata.org/">School of Data</a>  &#8212; Tony Hirst</strong> - a project to educate civil society organizations, journalists and citizens in the skills needed to analyse publically available data and 'find the story' through a combination of outreach, training and crowd sourcing.</li>
</ul>
<h4>Session 3 (Stream B)</h4>
<ul>
  <li><strong>Unix FPGA - Beyond just Finance &#8212; Graeme Burnett</strong></li>
  <li><strong>Raspberry Pi &#8212; Rob Bishop</strong></li>
</ul>
<p>I'll finish this post off tomorrow...</p>
<div class="tags twitter_tags"><strong>Twitter tags for this post&nbsp;:</strong> <a rel="tag" href="http://search.twitter.com/search?tag=a4">a4</a> &bull; <a rel="tag" href="http://search.twitter.com/search?tag=a6">a6</a> &bull; <a rel="tag" href="http://search.twitter.com/search?tag=b2">b2</a> &bull; <a rel="tag" href="http://search.twitter.com/search?tag=b3">b3</a> &bull; <a rel="tag" href="http://search.twitter.com/search?tag=b5">b5</a> &bull; <a rel="tag" href="http://search.twitter.com/search?tag=c1">c1</a> &bull; <a rel="tag" href="http://search.twitter.com/search?tag=opentech">opentech</a></div><br /><!-- Paste from here... -->
<a href="http://del.icio.us/post" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url='+encodeURIComponent('http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2')+'&amp;title='+encodeURIComponent('OpenTech 2013'),'delicious', 'toolbar=no,width=700,height=400'); return false;" title="del.icio.us"><img src="http://www.boogdesign.com/images/delicious.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://reddit.com/submit?url=http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2&amp;title=OpenTech 2013" target="blank" title="Reddit"><img src="http://www.boogdesign.com/images/reddit.png" alt="" border="0" width="16" height="16" /></a>

<a title="Stumble It" target="_blank" href="http://www.stumbleupon.com/submit?url=http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2&amp;title=BAE%20Social%20Bookmarks"><img src="http://www.boogdesign.com/images/stumbleupon.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://technorati.com/faves?add=http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2" target="blank" title="Technorati"><img src="http://www.boogdesign.com/images/technorati.jpg" alt="" border="0" width="16" height="16" /></a>

<a href="http://digg.com/submit?url=http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2&amp;title=OpenTech 2013&amp;bodytext=&amp;media=news&amp;topic=programming" title="Digg This"><img src="http://www.boogdesign.com/images/digg.png" alt="" border="0" width="16" height="16" /></a>

<a href="http://www.facebook.com/share.php?u=http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2&amp;t=OpenTech 2013" target="_blank" title="Share on Facebook"><img src="http://www.boogdesign.com/images/facebook.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://www.spurl.net/spurl.php?title=OpenTech 2013&amp;url=http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2" target="blank" title="Submit to Spurl"><img src="http://www.boogdesign.com/images/spurl.gif" alt="" border="0" width="16" height="16" /></a>


<a href="http://www.furl.net/storeIt.jsp?u=http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2&amp;t=OpenTech 2013" target="blank" title="Submit to Furl"><img src="http://www.boogdesign.com/images/furl.gif" alt="" border="0" width="16" height="16" /></a>

<a href="http://myweb2.search.yahoo.com/myresults/bookmarklet?t=OpenTech 2013&amp;u=http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2" target="blank" title="Yahoo"><img src="http://www.boogdesign.com/images/yahoo.jpg" alt="" border="0" width="16" height="16" /></a>

<a href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2&amp;Title=OpenTech 2013" target="blank" title="Blinklist"><img src="http://www.boogdesign.com/images/blinklist.gif" alt="" border="0" width="16" height="16" /></a>

<a title="Add To Google" href="http://www.google.com/ig/adde?moduleurl=http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2"><img src="http://www.boogdesign.com/images/google.gif" style="border: 0px none ; width: 16px; height: 16px;" alt="" /></a>

<a rel="nofollow" href="http://twitter.com/home?status=OpenTech 2013+http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2" title="Tweet this"><img src="http://www.boogdesign.com/images/twitter-icon.png" style="width:16px; height:16px;border:0px;" alt="Tweet this!" /></a>
<!-- ...to here --><div class="item_footer"><p><small><a href="http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://www.boogdesign.com/b2evo/index.php/opentech-2013?blog=2#comments</comments>
			<wfw:commentRss>http://www.boogdesign.com/b2evo/index.php?blog=2&#38;tempskin=_rss2&#38;disp=comments&#38;p=373</wfw:commentRss>
		</item>
				<item>
			<title>HTML5 in Action is the Manning Deal of the Day!</title>
			<link>http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4</link>
			<pubDate>Tue, 09 Apr 2013 13:05:00 +0000</pubDate>			<dc:creator>robertc</dc:creator>
			<category domain="alt">Books &amp; Literature</category>
<category domain="main">Tech &amp; Web</category>			<guid isPermaLink="false">372@http://www.boogdesign.com/b2evo/</guid>
						<description>&lt;p&gt;Half off my book &lt;a href=&quot;http://www.manning.com/crowther2/&quot;&gt;HTML5 in Action&lt;/a&gt;. Use code dotd0409au at manning.com.&lt;/p&gt;

&lt;p&gt;If you want to ask questions about the book, or anything to do with HTML5, Java Ranch have a &lt;a href=&quot;http://www.coderanch.com/t/609102/HTML-CSS-JavaScript/Rob-Crowther-Joe-Lennon-Ash&quot;&gt;companion promotion this week&lt;/a&gt;.&lt;/p&gt;&lt;div class=&quot;tags twitter_tags&quot;&gt;&lt;strong&gt;Twitter tags for this post&amp;nbsp;:&lt;/strong&gt; &lt;a rel=&quot;tag&quot; href=&quot;http://search.twitter.com/search?tag=HTML5&quot;&gt;HTML5&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;!-- Paste from here... --&gt;
&lt;a href=&quot;http://del.icio.us/post&quot; onclick=&quot;window.open(&#039;http://del.icio.us/post?v=4&amp;amp;noui&amp;amp;jump=close&amp;amp;url=&#039;+encodeURIComponent(&#039;http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4&#039;)+&#039;&amp;amp;title=&#039;+encodeURIComponent(&#039;HTML5 in Action is the Manning Deal of the Day!&#039;),&#039;delicious&#039;, &#039;toolbar=no,width=700,height=400&#039;); return false;&quot; title=&quot;del.icio.us&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/delicious.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://reddit.com/submit?url=http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4&amp;amp;title=HTML5 in Action is the Manning Deal of the Day!&quot; target=&quot;blank&quot; title=&quot;Reddit&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/reddit.png&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a title=&quot;Stumble It&quot; target=&quot;_blank&quot; href=&quot;http://www.stumbleupon.com/submit?url=http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4&amp;amp;title=BAE%20Social%20Bookmarks&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/stumbleupon.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://technorati.com/faves?add=http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4&quot; target=&quot;blank&quot; title=&quot;Technorati&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/technorati.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://digg.com/submit?url=http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4&amp;amp;title=HTML5 in Action is the Manning Deal of the Day!&amp;amp;bodytext=&amp;amp;media=news&amp;amp;topic=programming&quot; title=&quot;Digg This&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/digg.png&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.facebook.com/share.php?u=http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4&amp;amp;t=HTML5 in Action is the Manning Deal of the Day!&quot; target=&quot;_blank&quot; title=&quot;Share on Facebook&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/facebook.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.spurl.net/spurl.php?title=HTML5 in Action is the Manning Deal of the Day!&amp;amp;url=http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4&quot; target=&quot;blank&quot; title=&quot;Submit to Spurl&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/spurl.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;


&lt;a href=&quot;http://www.furl.net/storeIt.jsp?u=http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4&amp;amp;t=HTML5 in Action is the Manning Deal of the Day!&quot; target=&quot;blank&quot; title=&quot;Submit to Furl&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/furl.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://myweb2.search.yahoo.com/myresults/bookmarklet?t=HTML5 in Action is the Manning Deal of the Day!&amp;amp;u=http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4&quot; target=&quot;blank&quot; title=&quot;Yahoo&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/yahoo.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;amp;Url=http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4&amp;amp;Title=HTML5 in Action is the Manning Deal of the Day!&quot; target=&quot;blank&quot; title=&quot;Blinklist&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/blinklist.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a title=&quot;Add To Google&quot; href=&quot;http://www.google.com/ig/adde?moduleurl=http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/google.gif&quot; style=&quot;border: 0px none ; width: 16px; height: 16px;&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a rel=&quot;nofollow&quot; href=&quot;http://twitter.com/home?status=HTML5 in Action is the Manning Deal of the Day!+http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4&quot; title=&quot;Tweet this&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/twitter-icon.png&quot; style=&quot;width:16px; height:16px;border:0px;&quot; alt=&quot;Tweet this!&quot; /&gt;&lt;/a&gt;
&lt;!-- ...to here --&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>Half off my book <a href="http://www.manning.com/crowther2/">HTML5 in Action</a>. Use code dotd0409au at manning.com.</p>

<p>If you want to ask questions about the book, or anything to do with HTML5, Java Ranch have a <a href="http://www.coderanch.com/t/609102/HTML-CSS-JavaScript/Rob-Crowther-Joe-Lennon-Ash">companion promotion this week</a>.</p><div class="tags twitter_tags"><strong>Twitter tags for this post&nbsp;:</strong> <a rel="tag" href="http://search.twitter.com/search?tag=HTML5">HTML5</a></div><br /><!-- Paste from here... -->
<a href="http://del.icio.us/post" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url='+encodeURIComponent('http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4')+'&amp;title='+encodeURIComponent('HTML5 in Action is the Manning Deal of the Day!'),'delicious', 'toolbar=no,width=700,height=400'); return false;" title="del.icio.us"><img src="http://www.boogdesign.com/images/delicious.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://reddit.com/submit?url=http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4&amp;title=HTML5 in Action is the Manning Deal of the Day!" target="blank" title="Reddit"><img src="http://www.boogdesign.com/images/reddit.png" alt="" border="0" width="16" height="16" /></a>

<a title="Stumble It" target="_blank" href="http://www.stumbleupon.com/submit?url=http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4&amp;title=BAE%20Social%20Bookmarks"><img src="http://www.boogdesign.com/images/stumbleupon.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://technorati.com/faves?add=http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4" target="blank" title="Technorati"><img src="http://www.boogdesign.com/images/technorati.jpg" alt="" border="0" width="16" height="16" /></a>

<a href="http://digg.com/submit?url=http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4&amp;title=HTML5 in Action is the Manning Deal of the Day!&amp;bodytext=&amp;media=news&amp;topic=programming" title="Digg This"><img src="http://www.boogdesign.com/images/digg.png" alt="" border="0" width="16" height="16" /></a>

<a href="http://www.facebook.com/share.php?u=http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4&amp;t=HTML5 in Action is the Manning Deal of the Day!" target="_blank" title="Share on Facebook"><img src="http://www.boogdesign.com/images/facebook.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://www.spurl.net/spurl.php?title=HTML5 in Action is the Manning Deal of the Day!&amp;url=http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4" target="blank" title="Submit to Spurl"><img src="http://www.boogdesign.com/images/spurl.gif" alt="" border="0" width="16" height="16" /></a>


<a href="http://www.furl.net/storeIt.jsp?u=http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4&amp;t=HTML5 in Action is the Manning Deal of the Day!" target="blank" title="Submit to Furl"><img src="http://www.boogdesign.com/images/furl.gif" alt="" border="0" width="16" height="16" /></a>

<a href="http://myweb2.search.yahoo.com/myresults/bookmarklet?t=HTML5 in Action is the Manning Deal of the Day!&amp;u=http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4" target="blank" title="Yahoo"><img src="http://www.boogdesign.com/images/yahoo.jpg" alt="" border="0" width="16" height="16" /></a>

<a href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4&amp;Title=HTML5 in Action is the Manning Deal of the Day!" target="blank" title="Blinklist"><img src="http://www.boogdesign.com/images/blinklist.gif" alt="" border="0" width="16" height="16" /></a>

<a title="Add To Google" href="http://www.google.com/ig/adde?moduleurl=http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4"><img src="http://www.boogdesign.com/images/google.gif" style="border: 0px none ; width: 16px; height: 16px;" alt="" /></a>

<a rel="nofollow" href="http://twitter.com/home?status=HTML5 in Action is the Manning Deal of the Day!+http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4" title="Tweet this"><img src="http://www.boogdesign.com/images/twitter-icon.png" style="width:16px; height:16px;border:0px;" alt="Tweet this!" /></a>
<!-- ...to here --><div class="item_footer"><p><small><a href="http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://www.boogdesign.com/b2evo/index.php/html5-in-action-is-the?blog=4#comments</comments>
			<wfw:commentRss>http://www.boogdesign.com/b2evo/index.php?blog=4&#38;tempskin=_rss2&#38;disp=comments&#38;p=372</wfw:commentRss>
		</item>
				<item>
			<title>Links for June 2011</title>
			<link>http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4</link>
			<pubDate>Mon, 27 Jun 2011 02:16:00 +0000</pubDate>			<dc:creator>pinboard</dc:creator>
			<category domain="main">Pinboard.in</category>			<guid isPermaLink="false">370@http://www.boogdesign.com/b2evo/</guid>
						<description>&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://yaccessibilityblog.com/library/css-clip-hidden-content.html&quot; class=&quot;delicious-link&quot;&gt;Clip your hidden content for better accessibility | Yahoo! Accessibility Library&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;How you hide your extra content for screen readers can make a big difference to accessibility, this post gives a run down of all the techniques and examines clipping in detail.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Accessibility/&quot; rel=&quot;tag&quot;&gt;Accessibility&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Tips/&quot; rel=&quot;tag&quot;&gt;Tips&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://googletesting.blogspot.com/2011/06/introducing-dom-snitch-our-passive-in.html&quot; class=&quot;delicious-link&quot;&gt;Google Testing Blog: Introducing DOM Snitch, our passive in-the-browser reconnaissance tool&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;A Chrome extension that enables developers and testers to identify insecure practices commonly found in client-side code.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Testing/&quot; rel=&quot;tag&quot;&gt;Testing&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Security/&quot; rel=&quot;tag&quot;&gt;Security&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Tools/&quot; rel=&quot;tag&quot;&gt;Tools&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:GoogleChromeExtensions/&quot; rel=&quot;tag&quot;&gt;GoogleChromeExtensions&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://www.mediabistro.com/10000words/how-to-run-a-news-site-and-newspaper-using-wordpress-and-google-docs_b4781&quot; class=&quot;delicious-link&quot;&gt;How To Run A News Site And Newspaper Using WordPress And Google Docs - 10,000 Words&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;An interesting approach to building a newspaper, using free tools to generate and publish the content online, then feeding that same content into InDesign for the print edition.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Media/&quot; rel=&quot;tag&quot;&gt;Media&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:News/&quot; rel=&quot;tag&quot;&gt;News&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Tools/&quot; rel=&quot;tag&quot;&gt;Tools&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://manu.sporny.org/2011/microformats-2/&quot; class=&quot;delicious-link&quot;&gt;Microformats 2 and RDFa Collaboration | The Beautiful, Tormented Machine&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;Finding common ground in the quest to express semantic data in web pages.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:SemanticWeb/&quot; rel=&quot;tag&quot;&gt;SemanticWeb&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Microformats/&quot; rel=&quot;tag&quot;&gt;Microformats&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Microdata/&quot; rel=&quot;tag&quot;&gt;Microdata&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:RDFa/&quot; rel=&quot;tag&quot;&gt;RDFa&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Community/&quot; rel=&quot;tag&quot;&gt;Community&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://net.tutsplus.com/tutorials/javascript-ajax/the-10-javascript-mistakes-youre-making/&quot; class=&quot;delicious-link&quot;&gt;The 11 JavaScript Mistakes you&amp;#8217;re Making | Nettuts+&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;Well written introduction to several things you really ought to know before doing any serious JavaScript.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:JavaScript/&quot; rel=&quot;tag&quot;&gt;JavaScript&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Tips/&quot; rel=&quot;tag&quot;&gt;Tips&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://css-tricks.com/useful-nth-child-recipies/&quot; class=&quot;delicious-link&quot;&gt;Useful :nth-child Recipes | CSS-Tricks&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;Several good examples with clear illustrations.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:CSS/&quot; rel=&quot;tag&quot;&gt;CSS&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Tips/&quot; rel=&quot;tag&quot;&gt;Tips&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://lod2.okfn.org/2011/06/16/publicdata-eu-data-apps-and-800000-triples/&quot; class=&quot;delicious-link&quot;&gt;publicdata.eu: Data, Apps and 800,000 Triples at lod2.okfn.org&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;The Open Knowledge Foundation announce the launch of a European-wide registry of semantic web data.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:SemanticWeb/&quot; rel=&quot;tag&quot;&gt;SemanticWeb&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Repository/&quot; rel=&quot;tag&quot;&gt;Repository&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://andreasgal.com/2011/06/15/pdf-js/&quot; class=&quot;delicious-link&quot;&gt;pdf.js: Rendering PDF with HTML5 and JavaScript | Andreas Gal&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;A JavaScript library for rendering PDFs into a canvas element without any server side support, future plans include rendering to SVG.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:JavaScript/&quot; rel=&quot;tag&quot;&gt;JavaScript&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:PDF/&quot; rel=&quot;tag&quot;&gt;PDF&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:HTML5/&quot; rel=&quot;tag&quot;&gt;HTML5&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://www.w3.org/2011/05/css-pr.html.en&quot; class=&quot;delicious-link&quot;&gt;Cascading Style Sheets Standard Boasts Unprecedented Interoperability&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;After just a single, short decade of development the CSS2.1 standard is now a W3C Recommendation.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:CSS/&quot; rel=&quot;tag&quot;&gt;CSS&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Web/&quot; rel=&quot;tag&quot;&gt;Web&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Standards/&quot; rel=&quot;tag&quot;&gt;Standards&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://boagworld.com/design/where-are-my-rounded-corners/&quot; class=&quot;delicious-link&quot;&gt;Where are my rounded corners? &amp;#171; Boagworld&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;&quot;Sometimes we see confusion among our clients when they see their new site in their browser and it looks different to the design they signed off. In this fact-sheet we explain why accepting these differences has many benefits and doing so outweighs the limited drawbacks.&quot;&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Web/&quot; rel=&quot;tag&quot;&gt;Web&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Design/&quot; rel=&quot;tag&quot;&gt;Design&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Tips/&quot; rel=&quot;tag&quot;&gt;Tips&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;&lt;!-- Paste from here... --&gt;
&lt;a href=&quot;http://del.icio.us/post&quot; onclick=&quot;window.open(&#039;http://del.icio.us/post?v=4&amp;amp;noui&amp;amp;jump=close&amp;amp;url=&#039;+encodeURIComponent(&#039;http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4&#039;)+&#039;&amp;amp;title=&#039;+encodeURIComponent(&#039;Links for June 2011&#039;),&#039;delicious&#039;, &#039;toolbar=no,width=700,height=400&#039;); return false;&quot; title=&quot;del.icio.us&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/delicious.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://reddit.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4&amp;amp;title=Links for June 2011&quot; target=&quot;blank&quot; title=&quot;Reddit&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/reddit.png&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a title=&quot;Stumble It&quot; target=&quot;_blank&quot; href=&quot;http://www.stumbleupon.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4&amp;amp;title=BAE%20Social%20Bookmarks&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/stumbleupon.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://technorati.com/faves?add=http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4&quot; target=&quot;blank&quot; title=&quot;Technorati&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/technorati.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://digg.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4&amp;amp;title=Links for June 2011&amp;amp;bodytext=&amp;amp;media=news&amp;amp;topic=programming&quot; title=&quot;Digg This&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/digg.png&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.facebook.com/share.php?u=http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4&amp;amp;t=Links for June 2011&quot; target=&quot;_blank&quot; title=&quot;Share on Facebook&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/facebook.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.spurl.net/spurl.php?title=Links for June 2011&amp;amp;url=http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4&quot; target=&quot;blank&quot; title=&quot;Submit to Spurl&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/spurl.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;


&lt;a href=&quot;http://www.furl.net/storeIt.jsp?u=http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4&amp;amp;t=Links for June 2011&quot; target=&quot;blank&quot; title=&quot;Submit to Furl&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/furl.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://myweb2.search.yahoo.com/myresults/bookmarklet?t=Links for June 2011&amp;amp;u=http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4&quot; target=&quot;blank&quot; title=&quot;Yahoo&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/yahoo.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;amp;Url=http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4&amp;amp;Title=Links for June 2011&quot; target=&quot;blank&quot; title=&quot;Blinklist&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/blinklist.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a title=&quot;Add To Google&quot; href=&quot;http://www.google.com/ig/adde?moduleurl=http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/google.gif&quot; style=&quot;border: 0px none ; width: 16px; height: 16px;&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a rel=&quot;nofollow&quot; href=&quot;http://twitter.com/home?status=Links for June 2011+http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4&quot; title=&quot;Tweet this&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/twitter-icon.png&quot; style=&quot;width:16px; height:16px;border:0px;&quot; alt=&quot;Tweet this!&quot; /&gt;&lt;/a&gt;
&lt;!-- ...to here --&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<ul>
<li>
<strong><a href="http://yaccessibilityblog.com/library/css-clip-hidden-content.html" class="delicious-link">Clip your hidden content for better accessibility | Yahoo! Accessibility Library</a></strong> - <span class="delicious-extended">How you hide your extra content for screen readers can make a big difference to accessibility, this post gives a run down of all the techniques and examines clipping in detail.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Accessibility/" rel="tag">Accessibility</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Tips/" rel="tag">Tips</a>;&#160;</span>
</li>
<li>
<strong><a href="http://googletesting.blogspot.com/2011/06/introducing-dom-snitch-our-passive-in.html" class="delicious-link">Google Testing Blog: Introducing DOM Snitch, our passive in-the-browser reconnaissance tool</a></strong> - <span class="delicious-extended">A Chrome extension that enables developers and testers to identify insecure practices commonly found in client-side code.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Testing/" rel="tag">Testing</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Security/" rel="tag">Security</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Tools/" rel="tag">Tools</a>;&#160;<a href="https://pinboard.in/u:robertc/t:GoogleChromeExtensions/" rel="tag">GoogleChromeExtensions</a>;&#160;</span>
</li>
<li>
<strong><a href="http://www.mediabistro.com/10000words/how-to-run-a-news-site-and-newspaper-using-wordpress-and-google-docs_b4781" class="delicious-link">How To Run A News Site And Newspaper Using WordPress And Google Docs - 10,000 Words</a></strong> - <span class="delicious-extended">An interesting approach to building a newspaper, using free tools to generate and publish the content online, then feeding that same content into InDesign for the print edition.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Media/" rel="tag">Media</a>;&#160;<a href="https://pinboard.in/u:robertc/t:News/" rel="tag">News</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Tools/" rel="tag">Tools</a>;&#160;</span>
</li>
<li>
<strong><a href="http://manu.sporny.org/2011/microformats-2/" class="delicious-link">Microformats 2 and RDFa Collaboration | The Beautiful, Tormented Machine</a></strong> - <span class="delicious-extended">Finding common ground in the quest to express semantic data in web pages.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:SemanticWeb/" rel="tag">SemanticWeb</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Microformats/" rel="tag">Microformats</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Microdata/" rel="tag">Microdata</a>;&#160;<a href="https://pinboard.in/u:robertc/t:RDFa/" rel="tag">RDFa</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Community/" rel="tag">Community</a>;&#160;</span>
</li>
<li>
<strong><a href="http://net.tutsplus.com/tutorials/javascript-ajax/the-10-javascript-mistakes-youre-making/" class="delicious-link">The 11 JavaScript Mistakes you&#8217;re Making | Nettuts+</a></strong> - <span class="delicious-extended">Well written introduction to several things you really ought to know before doing any serious JavaScript.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:JavaScript/" rel="tag">JavaScript</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Tips/" rel="tag">Tips</a>;&#160;</span>
</li>
<li>
<strong><a href="http://css-tricks.com/useful-nth-child-recipies/" class="delicious-link">Useful :nth-child Recipes | CSS-Tricks</a></strong> - <span class="delicious-extended">Several good examples with clear illustrations.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:CSS/" rel="tag">CSS</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Tips/" rel="tag">Tips</a>;&#160;</span>
</li>
<li>
<strong><a href="http://lod2.okfn.org/2011/06/16/publicdata-eu-data-apps-and-800000-triples/" class="delicious-link">publicdata.eu: Data, Apps and 800,000 Triples at lod2.okfn.org</a></strong> - <span class="delicious-extended">The Open Knowledge Foundation announce the launch of a European-wide registry of semantic web data.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:SemanticWeb/" rel="tag">SemanticWeb</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Repository/" rel="tag">Repository</a>;&#160;</span>
</li>
<li>
<strong><a href="http://andreasgal.com/2011/06/15/pdf-js/" class="delicious-link">pdf.js: Rendering PDF with HTML5 and JavaScript | Andreas Gal</a></strong> - <span class="delicious-extended">A JavaScript library for rendering PDFs into a canvas element without any server side support, future plans include rendering to SVG.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:JavaScript/" rel="tag">JavaScript</a>;&#160;<a href="https://pinboard.in/u:robertc/t:PDF/" rel="tag">PDF</a>;&#160;<a href="https://pinboard.in/u:robertc/t:HTML5/" rel="tag">HTML5</a>;&#160;</span>
</li>
<li>
<strong><a href="http://www.w3.org/2011/05/css-pr.html.en" class="delicious-link">Cascading Style Sheets Standard Boasts Unprecedented Interoperability</a></strong> - <span class="delicious-extended">After just a single, short decade of development the CSS2.1 standard is now a W3C Recommendation.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:CSS/" rel="tag">CSS</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Web/" rel="tag">Web</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Standards/" rel="tag">Standards</a>;&#160;</span>
</li>
<li>
<strong><a href="http://boagworld.com/design/where-are-my-rounded-corners/" class="delicious-link">Where are my rounded corners? &#171; Boagworld</a></strong> - <span class="delicious-extended">"Sometimes we see confusion among our clients when they see their new site in their browser and it looks different to the design they signed off. In this fact-sheet we explain why accepting these differences has many benefits and doing so outweighs the limited drawbacks."</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Web/" rel="tag">Web</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Design/" rel="tag">Design</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Tips/" rel="tag">Tips</a>;&#160;</span>
</li>
</ul><br /><!-- Paste from here... -->
<a href="http://del.icio.us/post" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url='+encodeURIComponent('http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4')+'&amp;title='+encodeURIComponent('Links for June 2011'),'delicious', 'toolbar=no,width=700,height=400'); return false;" title="del.icio.us"><img src="http://www.boogdesign.com/images/delicious.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://reddit.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4&amp;title=Links for June 2011" target="blank" title="Reddit"><img src="http://www.boogdesign.com/images/reddit.png" alt="" border="0" width="16" height="16" /></a>

<a title="Stumble It" target="_blank" href="http://www.stumbleupon.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4&amp;title=BAE%20Social%20Bookmarks"><img src="http://www.boogdesign.com/images/stumbleupon.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://technorati.com/faves?add=http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4" target="blank" title="Technorati"><img src="http://www.boogdesign.com/images/technorati.jpg" alt="" border="0" width="16" height="16" /></a>

<a href="http://digg.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4&amp;title=Links for June 2011&amp;bodytext=&amp;media=news&amp;topic=programming" title="Digg This"><img src="http://www.boogdesign.com/images/digg.png" alt="" border="0" width="16" height="16" /></a>

<a href="http://www.facebook.com/share.php?u=http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4&amp;t=Links for June 2011" target="_blank" title="Share on Facebook"><img src="http://www.boogdesign.com/images/facebook.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://www.spurl.net/spurl.php?title=Links for June 2011&amp;url=http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4" target="blank" title="Submit to Spurl"><img src="http://www.boogdesign.com/images/spurl.gif" alt="" border="0" width="16" height="16" /></a>


<a href="http://www.furl.net/storeIt.jsp?u=http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4&amp;t=Links for June 2011" target="blank" title="Submit to Furl"><img src="http://www.boogdesign.com/images/furl.gif" alt="" border="0" width="16" height="16" /></a>

<a href="http://myweb2.search.yahoo.com/myresults/bookmarklet?t=Links for June 2011&amp;u=http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4" target="blank" title="Yahoo"><img src="http://www.boogdesign.com/images/yahoo.jpg" alt="" border="0" width="16" height="16" /></a>

<a href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4&amp;Title=Links for June 2011" target="blank" title="Blinklist"><img src="http://www.boogdesign.com/images/blinklist.gif" alt="" border="0" width="16" height="16" /></a>

<a title="Add To Google" href="http://www.google.com/ig/adde?moduleurl=http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4"><img src="http://www.boogdesign.com/images/google.gif" style="border: 0px none ; width: 16px; height: 16px;" alt="" /></a>

<a rel="nofollow" href="http://twitter.com/home?status=Links for June 2011+http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4" title="Tweet this"><img src="http://www.boogdesign.com/images/twitter-icon.png" style="width:16px; height:16px;border:0px;" alt="Tweet this!" /></a>
<!-- ...to here --><div class="item_footer"><p><small><a href="http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://www.boogdesign.com/b2evo/index.php/links-for-june-2011?blog=4#comments</comments>
			<wfw:commentRss>http://www.boogdesign.com/b2evo/index.php?blog=4&#38;tempskin=_rss2&#38;disp=comments&#38;p=370</wfw:commentRss>
		</item>
				<item>
			<title>Drag and Drop and Delegate</title>
			<link>http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2</link>
			<pubDate>Fri, 03 Jun 2011 13:51:00 +0000</pubDate>			<dc:creator>robertc</dc:creator>
			<category domain="main">Front End Web Development</category>
<category domain="alt">Blogging and Internet Culture</category>			<guid isPermaLink="false">369@http://www.boogdesign.com/b2evo/</guid>
						<description>&lt;p&gt;HTML5 Drag and Drop has been popular topic recently on web tech blogs, a good example is &lt;a href=&quot;http://blogs.sitepoint.com/a-drag-and-drop-planning-board-with-html5/&quot;&gt;Alexis Goldstein&#039;s post on Sitepoint&lt;/a&gt; which I &lt;a href=&quot;https://github.com/robertc/DragNDrop_PlanningBoard/blob/2843ee68742fd3562c5acdde63da58f764abfea3/dragndrop.html&quot;&gt;converted to work in IE&lt;/a&gt;.  Fortunately for me this all coincided with spending a lot of time working on Drag and Drop for &lt;a href=&quot;http://www.manning.com/crowther/&quot;&gt;chapter 6 of my book&lt;/a&gt; and a project coming up at work where it was a natural fit.  So I&#039;ve been doing a lot of dragging and dropping in recent weeks, to the point where I started to feel like I knew as much about the practical implementation of the Drag and Drop API as any person living.&lt;/p&gt;

&lt;p&gt;Of course, whenever I start getting a bit full of myself something soon happens to make me feel like an idiot again.  In this case it&#039;s my continuing blind spot when it comes to DOM Event Delegation.  If you look again at &lt;a href=&quot;https://github.com/alexisgo/DragNDrop_PlanningBoard&quot;&gt;Alexis&#039; example&lt;/a&gt; you&#039;ll note that all the event handlers are bound directly to the elements where the events are expected to happen.  This is a common pattern in example code - it&#039;s a straightforward relationship for beginners to understand - but it&#039;s not really the best way to do it, and this post is going to explain why.  Let&#039;s review the code for the drop event:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;$(&#039;#todo, #inprogress, #done&#039;).bind(&#039;drop&#039;, function(event) {
    var notecard = event.originalEvent.dataTransfer.getData(&quot;text/plain&quot;);
    event.target.appendChild(document.getElementById(notecard));
    event.preventDefault();
});&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;What this code does is bind a drop handler to three separate elements specified by the IDs in the selector - &lt;code&gt;#todo, #inprogress, #done&lt;/code&gt;.  Now have a look at this screenshot of the original planning board in action:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.boogdesign.com/images/blog/dnd/task-in-task.png&quot;&gt;&lt;img class=&quot;screenshot&quot; src=&quot;http://www.boogdesign.com/images/blog/dnd/task-in-task-thumb.png&quot; alt=&quot;A task embedded within another task&quot; title=&quot;Click for full size image&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The task &#039;Learn HTML5&#039; as been dropped directly inside the task &#039;Learn CSS3&#039; and the &#039;Learn CSS3&#039; task accepted the drop and ran the drop handler code despite not being mentioned above - why?  The answer is because of event delegation.  While in this particular case it may look like a bug, this is actually a very powerful and useful process.  Here&#039;s what&#039;s happening when the &#039;Learn HTML5&#039; task is dropped:&lt;/p&gt;&lt;ol&gt;
  &lt;li&gt;The drop event is fired on the &#039;Learn CSS3&#039; element&lt;/li&gt;
  &lt;li&gt;Because there is no drop handler, the event is passed up the document tree&amp;lt; to the parent element - in this case &lt;code&gt;#inprogress&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;There &lt;em&gt;is&lt;/em&gt; a drop handler on the &lt;code&gt;#inprogress&lt;/code&gt;, so that handler is run&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;This process is called event bubbling - the events rise up through the DOM tree like bubbles through water, and the consequence of the bubbling here is that the event is fired on the &#039;Learn CSS3&#039; element, which remains the target of the event, but it&#039;s processed by the event handler on the &lt;code&gt;#inprogress&lt;/code&gt; element.  Because the handler just says &#039;append the dragged element as a child of the event target&#039; the &#039;Learn HTML5&#039; element is added as the last child of &#039;Learn CSS3&#039;.&lt;/p&gt;

&lt;p&gt;Initially you might see this as a bug, but really it&#039;s an opportunity.  As long as we deal with this unwanted side effect we&#039;re freed from having to attach event handlers to every single element.  If this doesn&#039;t seem like a huge gain, consider these two scenarios:&lt;/p&gt;&lt;ol&gt;
  &lt;li&gt;You want to scale up to handle have a large number of draggable items and drop targets, into the thousands&lt;/li&gt;
  &lt;li&gt;You want to add and remove draggable items and drop targets dynamically&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;The first scenario was the one I found myself in with my work project - the drop targets were cells in a table, with over fifty columns and possibly hundreds of rows, and 30-50% of those cells had draggable items in.  When I started with the naive approach of binding a handler to each item it took a second or two to run the initialisation code in the good browsers (in IE8 it took nearly 30 seconds...).  Event delegation helps in this scenario because the number of events you have to bind is equal to the number of events you want to capture, not the number of elements you want to capture them on.&lt;/p&gt;

&lt;p&gt;It&#039;s unlikely an agile planning board is going to end up with that many elements though - if it does I suspect there&#039;s a good chance you&#039;re not really being agile, but the second scenario is more likely to come up.  The tasks and the available resources will likely change from sprint to sprint, you may also want to add in some extra statuses.  With the current code, every time you want to add an element you will have to attach all the relevant event handlers to it (even if &lt;a href=&quot;http://api.jquery.com/clone/&quot;&gt;jQuery makes that easy for you&lt;/a&gt;, that could still be a lot of overhead).  If you forget to do that in a particular code path then strange bugs will likely ensue, which is a shame when all you really want is for the new elements to execute the exact same handlers as all the existing ones.  Let&#039;s look at how easy this all becomes if you &lt;em&gt;don&#039;t&lt;/em&gt; try to bind event handlers to every single element.&lt;/p&gt;

&lt;p&gt;First, some adjustments to the markup.  Because there&#039;ll now (potentially) be multiple rows on the board we can&#039;t use &lt;code&gt;id&lt;/code&gt; attributes to distinguish them so they&#039;ll have to be a class.  We&#039;ll also add a &#039;row title&#039; for the developer name, and &lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;div id=&amp;quot;board&amp;quot;&amp;gt;
    &amp;lt;div id=&amp;quot;rob&amp;quot;&amp;gt;
        &amp;lt;h1 class=&amp;quot;title&amp;quot;&amp;gt;Rob&amp;lt;/h1&amp;gt;
        &amp;lt;div class=&amp;quot;todo droptarget&amp;quot;&amp;gt;
            &amp;lt;h2 class=&amp;quot;title&amp;quot;&amp;gt;To Do&amp;lt;/h1&amp;gt;
            &amp;lt;a id=&amp;quot;item1&amp;quot; draggable=&amp;quot;true&amp;quot; href=&amp;quot;#&amp;quot;&amp;gt;
                &amp;lt;div class=&amp;quot;cardTitle&amp;quot;&amp;gt;
                    Learn HTML5
                &amp;lt;/div&amp;gt;
            &amp;lt;/a&amp;gt;
            &amp;lt;a id=&amp;quot;item2&amp;quot; draggable=&amp;quot;true&amp;quot; href=&amp;quot;#&amp;quot;&amp;gt;
                &amp;lt;div class=&amp;quot;cardTitle&amp;quot;&amp;gt;
                    Learn CSS3
                &amp;lt;/div&amp;gt;
            &amp;lt;/a&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div class=&amp;quot;inprogress droptarget&amp;quot;&amp;gt;
            &amp;lt;h2 class=&amp;quot;title&amp;quot;&amp;gt;In Progress&amp;lt;/h1&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div class=&amp;quot;done droptarget&amp;quot;&amp;gt;
            &amp;lt;h2 class=&amp;quot;title&amp;quot;&amp;gt;Done&amp;lt;/h1&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;I&#039;ve also added a class &lt;code&gt;droptarget&lt;/code&gt; to make life easier in the event handlers.  Those event handlers will, of course, have to change.  Here&#039;s a before and after of the &lt;code&gt;dragstart&lt;/code&gt; handler:&lt;/p&gt;&lt;div style=&quot;display:table;width:100%;&quot;&gt;
&lt;div style=&quot;display:table-cell;width:50%;&quot;&gt;&lt;p&gt;&lt;strong&gt;Before&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote style=&quot;margin:0;padding:1px;width:98%;&quot;&gt;&lt;pre&gt;&lt;code&gt;$(&#039;#item1, #item2&#039;).bind(&#039;dragstart&#039;,
  function(event) {
    event.originalEvent.dataTransfer.setData(
        &quot;Text&quot;, 
        event.target.getAttribute(&#039;id&#039;)
    );
});&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;div style=&quot;display:table-cell;width:50%;&quot;&gt;&lt;p&gt;&lt;strong&gt;After&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote style=&quot;margin:0;padding:1px;width:98%;&quot;&gt;&lt;pre&gt;&lt;code&gt;$(&#039;#board&#039;).bind(&#039;dragstart&#039;,
  function(event) {
    event.originalEvent.dataTransfer.setData(
        &quot;Text&quot;, 
        $(event.target).closest(&#039;a[id]&#039;).attr(&#039;id&#039;)
    );
});&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The first, and most important, change is that the event is now attached to the &lt;code&gt;#board&lt;/code&gt; element instead of to each individual draggable item.  The second change is instead of assuming the event target is the planning item the code now looks for the closest parent element which matches what the draggable element is expected to look like.  The next event to consider is &lt;code&gt;dragover&lt;/code&gt;, here things are slightly more complicated:&lt;/p&gt;&lt;div style=&quot;display:table;width:100%;&quot;&gt;
&lt;div style=&quot;display:table-cell;width:50%;&quot;&gt;&lt;p&gt;&lt;strong&gt;Before&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote style=&quot;margin:0;padding:1px;width:98%;&quot;&gt;&lt;pre&gt;&lt;code&gt;$(&#039;#todo, #inprogress, #done&#039;).bind(&#039;dragover&#039;, 
    function(event) {
        event.preventDefault();
});&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;div style=&quot;display:table-cell;width:50%;&quot;&gt;&lt;p&gt;&lt;strong&gt;After&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote style=&quot;margin:0;padding:1px;width:98%;&quot;&gt;&lt;pre&gt;&lt;code&gt;$(&#039;#board&#039;).bind(&#039;dragover&#039;, function(event) {
    if ($(event.target)
          .closest(&#039;.droptarget&#039;)
          .hasClass(&#039;droptarget&#039;)) {
	      event.preventDefault();
    }
});&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Now that the handler is being attached to &lt;code&gt;#board&lt;/code&gt; every element will trigger the &lt;code&gt;dragover&lt;/code&gt;droptarget class added earlier.  Finally let&#039;s consider the &lt;code&gt;drop&lt;/code&gt; event:&lt;/p&gt;&lt;div style=&quot;display:table;width:100%;&quot;&gt;
&lt;div style=&quot;display:table-cell;width:50%;&quot;&gt;&lt;p&gt;&lt;strong&gt;Before&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote style=&quot;margin:0;padding:1px;width:98%;&quot;&gt;&lt;pre&gt;&lt;code&gt;$(&#039;#todo, #inprogress, #done&#039;)
  .bind(&#039;drop&#039;, 
    function(event) {
        var notecard = event
                .originalEvent
                .dataTransfer.getData(&quot;Text&quot;);
        event.target.appendChild(
            document.getElementById(notecard)
        );
        event.preventDefault();
  });&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;div style=&quot;display:table-cell;width:50%;&quot;&gt;&lt;p&gt;&lt;strong&gt;After&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote style=&quot;margin:0;padding:1px;width:98%;&quot;&gt;&lt;pre&gt;&lt;code&gt;$(&#039;#board&#039;).bind(&#039;drop&#039;, function(event) {
    var notecard = event
            .originalEvent
            .dataTransfer.getData(&quot;Text&quot;);
    var drop = $(event.target).closest(&#039;.droptarget&#039;);
    drop.append($(&#039;#&#039; + notecard));
    event.preventDefault();
});&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Although every element which is a descendant of &lt;code&gt;#board&lt;/code&gt; could potentially trigger this event, in practice it&#039;s only ever going to be the ones that triggered the &lt;code&gt;event.preventDefault()&lt;/code&gt; on the &lt;code&gt;dragover&lt;/code&gt; event - anything with class &lt;code&gt;.droptarget&lt;/code&gt; or it&#039;s descendants.  Instead of just assuming the target is where the dropped element has to be attached the closest ancestor with the right class is used, so we never end up with dropped tasks getting appended inside other tasks.&lt;/p&gt;

&lt;p&gt;I think you&#039;ll agree it isn&#039;t really much more difficult to write the event handlers in such a way that they take advantage of event bubbling and so only need to be attached to a single element.  Now that these changes have been made it&#039;s possible to add further developers, statuses or tasks just by generating and appending the appropriate HTML - no need to loop through the new elements and attach all the correct event handlers.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.boogdesign.com/examples/DragNDrop_PlanningBoard/dragndrop.html&quot;&gt;This example page&lt;/a&gt; adds several buttons for dynamically updating the planning board, just to show how easy it is.  The code is also &lt;a href=&quot;https://github.com/robertc/DragNDrop_PlanningBoard&quot;&gt;available on github&lt;/a&gt;.&lt;/p&gt;&lt;div class=&quot;tags twitter_tags&quot;&gt;&lt;strong&gt;Twitter tags for this post&amp;nbsp;:&lt;/strong&gt; &lt;a rel=&quot;tag&quot; href=&quot;http://search.twitter.com/search?tag=drag-n-drop&quot;&gt;drag-n-drop&lt;/a&gt; &amp;bull; &lt;a rel=&quot;tag&quot; href=&quot;http://search.twitter.com/search?tag=html5&quot;&gt;html5&lt;/a&gt; &amp;bull; &lt;a rel=&quot;tag&quot; href=&quot;http://search.twitter.com/search?tag=javascript&quot;&gt;javascript&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;!-- Paste from here... --&gt;
&lt;a href=&quot;http://del.icio.us/post&quot; onclick=&quot;window.open(&#039;http://del.icio.us/post?v=4&amp;amp;noui&amp;amp;jump=close&amp;amp;url=&#039;+encodeURIComponent(&#039;http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2&#039;)+&#039;&amp;amp;title=&#039;+encodeURIComponent(&#039;Drag and Drop and Delegate&#039;),&#039;delicious&#039;, &#039;toolbar=no,width=700,height=400&#039;); return false;&quot; title=&quot;del.icio.us&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/delicious.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://reddit.com/submit?url=http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2&amp;amp;title=Drag and Drop and Delegate&quot; target=&quot;blank&quot; title=&quot;Reddit&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/reddit.png&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a title=&quot;Stumble It&quot; target=&quot;_blank&quot; href=&quot;http://www.stumbleupon.com/submit?url=http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2&amp;amp;title=BAE%20Social%20Bookmarks&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/stumbleupon.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://technorati.com/faves?add=http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2&quot; target=&quot;blank&quot; title=&quot;Technorati&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/technorati.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://digg.com/submit?url=http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2&amp;amp;title=Drag and Drop and Delegate&amp;amp;bodytext=&amp;amp;media=news&amp;amp;topic=programming&quot; title=&quot;Digg This&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/digg.png&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.facebook.com/share.php?u=http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2&amp;amp;t=Drag and Drop and Delegate&quot; target=&quot;_blank&quot; title=&quot;Share on Facebook&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/facebook.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.spurl.net/spurl.php?title=Drag and Drop and Delegate&amp;amp;url=http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2&quot; target=&quot;blank&quot; title=&quot;Submit to Spurl&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/spurl.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;


&lt;a href=&quot;http://www.furl.net/storeIt.jsp?u=http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2&amp;amp;t=Drag and Drop and Delegate&quot; target=&quot;blank&quot; title=&quot;Submit to Furl&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/furl.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://myweb2.search.yahoo.com/myresults/bookmarklet?t=Drag and Drop and Delegate&amp;amp;u=http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2&quot; target=&quot;blank&quot; title=&quot;Yahoo&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/yahoo.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;amp;Url=http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2&amp;amp;Title=Drag and Drop and Delegate&quot; target=&quot;blank&quot; title=&quot;Blinklist&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/blinklist.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a title=&quot;Add To Google&quot; href=&quot;http://www.google.com/ig/adde?moduleurl=http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/google.gif&quot; style=&quot;border: 0px none ; width: 16px; height: 16px;&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a rel=&quot;nofollow&quot; href=&quot;http://twitter.com/home?status=Drag and Drop and Delegate+http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2&quot; title=&quot;Tweet this&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/twitter-icon.png&quot; style=&quot;width:16px; height:16px;border:0px;&quot; alt=&quot;Tweet this!&quot; /&gt;&lt;/a&gt;
&lt;!-- ...to here --&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>HTML5 Drag and Drop has been popular topic recently on web tech blogs, a good example is <a href="http://blogs.sitepoint.com/a-drag-and-drop-planning-board-with-html5/">Alexis Goldstein's post on Sitepoint</a> which I <a href="https://github.com/robertc/DragNDrop_PlanningBoard/blob/2843ee68742fd3562c5acdde63da58f764abfea3/dragndrop.html">converted to work in IE</a>.  Fortunately for me this all coincided with spending a lot of time working on Drag and Drop for <a href="http://www.manning.com/crowther/">chapter 6 of my book</a> and a project coming up at work where it was a natural fit.  So I've been doing a lot of dragging and dropping in recent weeks, to the point where I started to feel like I knew as much about the practical implementation of the Drag and Drop API as any person living.</p>

<p>Of course, whenever I start getting a bit full of myself something soon happens to make me feel like an idiot again.  In this case it's my continuing blind spot when it comes to DOM Event Delegation.  If you look again at <a href="https://github.com/alexisgo/DragNDrop_PlanningBoard">Alexis' example</a> you'll note that all the event handlers are bound directly to the elements where the events are expected to happen.  This is a common pattern in example code - it's a straightforward relationship for beginners to understand - but it's not really the best way to do it, and this post is going to explain why.  Let's review the code for the drop event:</p><blockquote><pre><code>$('#todo, #inprogress, #done').bind('drop', function(event) {
    var notecard = event.originalEvent.dataTransfer.getData("text/plain");
    event.target.appendChild(document.getElementById(notecard));
    event.preventDefault();
});</code></pre></blockquote><p>What this code does is bind a drop handler to three separate elements specified by the IDs in the selector - <code>#todo, #inprogress, #done</code>.  Now have a look at this screenshot of the original planning board in action:</p>

<p><a href="http://www.boogdesign.com/images/blog/dnd/task-in-task.png"><img class="screenshot" src="http://www.boogdesign.com/images/blog/dnd/task-in-task-thumb.png" alt="A task embedded within another task" title="Click for full size image" /></a></p>

<p>The task 'Learn HTML5' as been dropped directly inside the task 'Learn CSS3' and the 'Learn CSS3' task accepted the drop and ran the drop handler code despite not being mentioned above - why?  The answer is because of event delegation.  While in this particular case it may look like a bug, this is actually a very powerful and useful process.  Here's what's happening when the 'Learn HTML5' task is dropped:</p><ol>
  <li>The drop event is fired on the 'Learn CSS3' element</li>
  <li>Because there is no drop handler, the event is passed up the document tree&lt; to the parent element - in this case <code>#inprogress</code></li>
  <li>There <em>is</em> a drop handler on the <code>#inprogress</code>, so that handler is run</li>
</ol><p>This process is called event bubbling - the events rise up through the DOM tree like bubbles through water, and the consequence of the bubbling here is that the event is fired on the 'Learn CSS3' element, which remains the target of the event, but it's processed by the event handler on the <code>#inprogress</code> element.  Because the handler just says 'append the dragged element as a child of the event target' the 'Learn HTML5' element is added as the last child of 'Learn CSS3'.</p>

<p>Initially you might see this as a bug, but really it's an opportunity.  As long as we deal with this unwanted side effect we're freed from having to attach event handlers to every single element.  If this doesn't seem like a huge gain, consider these two scenarios:</p><ol>
  <li>You want to scale up to handle have a large number of draggable items and drop targets, into the thousands</li>
  <li>You want to add and remove draggable items and drop targets dynamically</li>
</ol><p>The first scenario was the one I found myself in with my work project - the drop targets were cells in a table, with over fifty columns and possibly hundreds of rows, and 30-50% of those cells had draggable items in.  When I started with the naive approach of binding a handler to each item it took a second or two to run the initialisation code in the good browsers (in IE8 it took nearly 30 seconds...).  Event delegation helps in this scenario because the number of events you have to bind is equal to the number of events you want to capture, not the number of elements you want to capture them on.</p>

<p>It's unlikely an agile planning board is going to end up with that many elements though - if it does I suspect there's a good chance you're not really being agile, but the second scenario is more likely to come up.  The tasks and the available resources will likely change from sprint to sprint, you may also want to add in some extra statuses.  With the current code, every time you want to add an element you will have to attach all the relevant event handlers to it (even if <a href="http://api.jquery.com/clone/">jQuery makes that easy for you</a>, that could still be a lot of overhead).  If you forget to do that in a particular code path then strange bugs will likely ensue, which is a shame when all you really want is for the new elements to execute the exact same handlers as all the existing ones.  Let's look at how easy this all becomes if you <em>don't</em> try to bind event handlers to every single element.</p>

<p>First, some adjustments to the markup.  Because there'll now (potentially) be multiple rows on the board we can't use <code>id</code> attributes to distinguish them so they'll have to be a class.  We'll also add a 'row title' for the developer name, and </p><blockquote><pre><code>&lt;div id=&quot;board&quot;&gt;
    &lt;div id=&quot;rob&quot;&gt;
        &lt;h1 class=&quot;title&quot;&gt;Rob&lt;/h1&gt;
        &lt;div class=&quot;todo droptarget&quot;&gt;
            &lt;h2 class=&quot;title&quot;&gt;To Do&lt;/h1&gt;
            &lt;a id=&quot;item1&quot; draggable=&quot;true&quot; href=&quot;#&quot;&gt;
                &lt;div class=&quot;cardTitle&quot;&gt;
                    Learn HTML5
                &lt;/div&gt;
            &lt;/a&gt;
            &lt;a id=&quot;item2&quot; draggable=&quot;true&quot; href=&quot;#&quot;&gt;
                &lt;div class=&quot;cardTitle&quot;&gt;
                    Learn CSS3
                &lt;/div&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class=&quot;inprogress droptarget&quot;&gt;
            &lt;h2 class=&quot;title&quot;&gt;In Progress&lt;/h1&gt;
        &lt;/div&gt;
        &lt;div class=&quot;done droptarget&quot;&gt;
            &lt;h2 class=&quot;title&quot;&gt;Done&lt;/h1&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;</code></pre></blockquote><p>I've also added a class <code>droptarget</code> to make life easier in the event handlers.  Those event handlers will, of course, have to change.  Here's a before and after of the <code>dragstart</code> handler:</p><div style="display:table;width:100%;">
<div style="display:table-cell;width:50%;"><p><strong>Before</strong></p>
<blockquote style="margin:0;padding:1px;width:98%;"><pre><code>$('#item1, #item2').bind('dragstart',
  function(event) {
    event.originalEvent.dataTransfer.setData(
        "Text", 
        event.target.getAttribute('id')
    );
});</code></pre></blockquote></div>
<div style="display:table-cell;width:50%;"><p><strong>After</strong></p>
<blockquote style="margin:0;padding:1px;width:98%;"><pre><code>$('#board').bind('dragstart',
  function(event) {
    event.originalEvent.dataTransfer.setData(
        "Text", 
        $(event.target).closest('a[id]').attr('id')
    );
});</code></pre></blockquote></div>
</div><p>The first, and most important, change is that the event is now attached to the <code>#board</code> element instead of to each individual draggable item.  The second change is instead of assuming the event target is the planning item the code now looks for the closest parent element which matches what the draggable element is expected to look like.  The next event to consider is <code>dragover</code>, here things are slightly more complicated:</p><div style="display:table;width:100%;">
<div style="display:table-cell;width:50%;"><p><strong>Before</strong></p>
<blockquote style="margin:0;padding:1px;width:98%;"><pre><code>$('#todo, #inprogress, #done').bind('dragover', 
    function(event) {
        event.preventDefault();
});</code></pre></blockquote></div>
<div style="display:table-cell;width:50%;"><p><strong>After</strong></p>
<blockquote style="margin:0;padding:1px;width:98%;"><pre><code>$('#board').bind('dragover', function(event) {
    if ($(event.target)
          .closest('.droptarget')
          .hasClass('droptarget')) {
	      event.preventDefault();
    }
});</code></pre></blockquote></div>
</div><p>Now that the handler is being attached to <code>#board</code> every element will trigger the <code>dragover</code>droptarget class added earlier.  Finally let's consider the <code>drop</code> event:</p><div style="display:table;width:100%;">
<div style="display:table-cell;width:50%;"><p><strong>Before</strong></p>
<blockquote style="margin:0;padding:1px;width:98%;"><pre><code>$('#todo, #inprogress, #done')
  .bind('drop', 
    function(event) {
        var notecard = event
                .originalEvent
                .dataTransfer.getData("Text");
        event.target.appendChild(
            document.getElementById(notecard)
        );
        event.preventDefault();
  });</code></pre></blockquote></div>
<div style="display:table-cell;width:50%;"><p><strong>After</strong></p>
<blockquote style="margin:0;padding:1px;width:98%;"><pre><code>$('#board').bind('drop', function(event) {
    var notecard = event
            .originalEvent
            .dataTransfer.getData("Text");
    var drop = $(event.target).closest('.droptarget');
    drop.append($('#' + notecard));
    event.preventDefault();
});</code></pre></blockquote></div>
</div><p>Although every element which is a descendant of <code>#board</code> could potentially trigger this event, in practice it's only ever going to be the ones that triggered the <code>event.preventDefault()</code> on the <code>dragover</code> event - anything with class <code>.droptarget</code> or it's descendants.  Instead of just assuming the target is where the dropped element has to be attached the closest ancestor with the right class is used, so we never end up with dropped tasks getting appended inside other tasks.</p>

<p>I think you'll agree it isn't really much more difficult to write the event handlers in such a way that they take advantage of event bubbling and so only need to be attached to a single element.  Now that these changes have been made it's possible to add further developers, statuses or tasks just by generating and appending the appropriate HTML - no need to loop through the new elements and attach all the correct event handlers.</p>

<p><a href="http://www.boogdesign.com/examples/DragNDrop_PlanningBoard/dragndrop.html">This example page</a> adds several buttons for dynamically updating the planning board, just to show how easy it is.  The code is also <a href="https://github.com/robertc/DragNDrop_PlanningBoard">available on github</a>.</p><div class="tags twitter_tags"><strong>Twitter tags for this post&nbsp;:</strong> <a rel="tag" href="http://search.twitter.com/search?tag=drag-n-drop">drag-n-drop</a> &bull; <a rel="tag" href="http://search.twitter.com/search?tag=html5">html5</a> &bull; <a rel="tag" href="http://search.twitter.com/search?tag=javascript">javascript</a></div><br /><!-- Paste from here... -->
<a href="http://del.icio.us/post" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url='+encodeURIComponent('http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2')+'&amp;title='+encodeURIComponent('Drag and Drop and Delegate'),'delicious', 'toolbar=no,width=700,height=400'); return false;" title="del.icio.us"><img src="http://www.boogdesign.com/images/delicious.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://reddit.com/submit?url=http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2&amp;title=Drag and Drop and Delegate" target="blank" title="Reddit"><img src="http://www.boogdesign.com/images/reddit.png" alt="" border="0" width="16" height="16" /></a>

<a title="Stumble It" target="_blank" href="http://www.stumbleupon.com/submit?url=http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2&amp;title=BAE%20Social%20Bookmarks"><img src="http://www.boogdesign.com/images/stumbleupon.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://technorati.com/faves?add=http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2" target="blank" title="Technorati"><img src="http://www.boogdesign.com/images/technorati.jpg" alt="" border="0" width="16" height="16" /></a>

<a href="http://digg.com/submit?url=http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2&amp;title=Drag and Drop and Delegate&amp;bodytext=&amp;media=news&amp;topic=programming" title="Digg This"><img src="http://www.boogdesign.com/images/digg.png" alt="" border="0" width="16" height="16" /></a>

<a href="http://www.facebook.com/share.php?u=http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2&amp;t=Drag and Drop and Delegate" target="_blank" title="Share on Facebook"><img src="http://www.boogdesign.com/images/facebook.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://www.spurl.net/spurl.php?title=Drag and Drop and Delegate&amp;url=http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2" target="blank" title="Submit to Spurl"><img src="http://www.boogdesign.com/images/spurl.gif" alt="" border="0" width="16" height="16" /></a>


<a href="http://www.furl.net/storeIt.jsp?u=http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2&amp;t=Drag and Drop and Delegate" target="blank" title="Submit to Furl"><img src="http://www.boogdesign.com/images/furl.gif" alt="" border="0" width="16" height="16" /></a>

<a href="http://myweb2.search.yahoo.com/myresults/bookmarklet?t=Drag and Drop and Delegate&amp;u=http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2" target="blank" title="Yahoo"><img src="http://www.boogdesign.com/images/yahoo.jpg" alt="" border="0" width="16" height="16" /></a>

<a href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2&amp;Title=Drag and Drop and Delegate" target="blank" title="Blinklist"><img src="http://www.boogdesign.com/images/blinklist.gif" alt="" border="0" width="16" height="16" /></a>

<a title="Add To Google" href="http://www.google.com/ig/adde?moduleurl=http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2"><img src="http://www.boogdesign.com/images/google.gif" style="border: 0px none ; width: 16px; height: 16px;" alt="" /></a>

<a rel="nofollow" href="http://twitter.com/home?status=Drag and Drop and Delegate+http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2" title="Tweet this"><img src="http://www.boogdesign.com/images/twitter-icon.png" style="width:16px; height:16px;border:0px;" alt="Tweet this!" /></a>
<!-- ...to here --><div class="item_footer"><p><small><a href="http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://www.boogdesign.com/b2evo/index.php/drag-and-drop-and-delegate?blog=2#comments</comments>
			<wfw:commentRss>http://www.boogdesign.com/b2evo/index.php?blog=2&#38;tempskin=_rss2&#38;disp=comments&#38;p=369</wfw:commentRss>
		</item>
				<item>
			<title>Links for May 2011</title>
			<link>http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4</link>
			<pubDate>Sat, 21 May 2011 22:43:00 +0000</pubDate>			<dc:creator>pinboard</dc:creator>
			<category domain="main">Pinboard.in</category>			<guid isPermaLink="false">368@http://www.boogdesign.com/b2evo/</guid>
						<description>&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://snook.ca/archives/html_and_css/font-size-with-rem&quot; class=&quot;delicious-link&quot;&gt;Font sizing with rem - Snook.ca&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;The rem unit offers an excellent alternative to relative font sizing with em an percentage units.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:CSS/&quot; rel=&quot;tag&quot;&gt;CSS&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Web/&quot; rel=&quot;tag&quot;&gt;Web&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Design/&quot; rel=&quot;tag&quot;&gt;Design&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Tips/&quot; rel=&quot;tag&quot;&gt;Tips&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://www.ifadey.com/2011/05/javascript-mistakes-you-must-avoid/&quot; class=&quot;delicious-link&quot;&gt;Javascript Mistakes You Must Avoid&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;Good list of JavaScript gotchas, the event delegation tip was particularly timely for me.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:JavaScript/&quot; rel=&quot;tag&quot;&gt;JavaScript&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Tips/&quot; rel=&quot;tag&quot;&gt;Tips&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://adactio.com/journal/4523/&quot; class=&quot;delicious-link&quot;&gt;Adactio: Journal&amp;#8212;Content First&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;Don&#039;t design &#039;canvas in&#039;, starting with a few specific pixel widths, design &#039;content out&#039;.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Web/&quot; rel=&quot;tag&quot;&gt;Web&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Design/&quot; rel=&quot;tag&quot;&gt;Design&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:MobileDevices/&quot; rel=&quot;tag&quot;&gt;MobileDevices&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://blogs.msdn.com/b/ie/archive/2011/04/22/thoughts-on-when-to-use-canvas-and-svg.aspx&quot; class=&quot;delicious-link&quot;&gt;Thoughts on when to use Canvas and SVG - IEBlog - Site Home - MSDN Blogs&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;Nice article summarizing the sweet spots of the two technologies with use cases.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:SVG/&quot; rel=&quot;tag&quot;&gt;SVG&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:HTML5/&quot; rel=&quot;tag&quot;&gt;HTML5&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Tips/&quot; rel=&quot;tag&quot;&gt;Tips&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/gg193979&quot; class=&quot;delicious-link&quot;&gt;Basic SVG Animation&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;The first in a series of MSDN articles on animating SVG with JavaScript.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:SVG/&quot; rel=&quot;tag&quot;&gt;SVG&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Tutorial/&quot; rel=&quot;tag&quot;&gt;Tutorial&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/web/library/wa-rdf/index.html&quot; class=&quot;delicious-link&quot;&gt;The Semantic Web, Linked Data and Drupal, Part 1: Expose your data using RDF&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;&quot;Drupal 7 is the first mainstream content management system to support Semantic Web technology in its core. Readily usable, Semantic Web technology lets you push the web from a web of documents to a web of data. In this article, learn to make your web data more interoperable and your data sharing more efficient.&quot;&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:SemanticWeb/&quot; rel=&quot;tag&quot;&gt;SemanticWeb&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Drupal/&quot; rel=&quot;tag&quot;&gt;Drupal&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Tutorial/&quot; rel=&quot;tag&quot;&gt;Tutorial&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;&lt;!-- Paste from here... --&gt;
&lt;a href=&quot;http://del.icio.us/post&quot; onclick=&quot;window.open(&#039;http://del.icio.us/post?v=4&amp;amp;noui&amp;amp;jump=close&amp;amp;url=&#039;+encodeURIComponent(&#039;http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4&#039;)+&#039;&amp;amp;title=&#039;+encodeURIComponent(&#039;Links for May 2011&#039;),&#039;delicious&#039;, &#039;toolbar=no,width=700,height=400&#039;); return false;&quot; title=&quot;del.icio.us&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/delicious.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://reddit.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4&amp;amp;title=Links for May 2011&quot; target=&quot;blank&quot; title=&quot;Reddit&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/reddit.png&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a title=&quot;Stumble It&quot; target=&quot;_blank&quot; href=&quot;http://www.stumbleupon.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4&amp;amp;title=BAE%20Social%20Bookmarks&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/stumbleupon.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://technorati.com/faves?add=http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4&quot; target=&quot;blank&quot; title=&quot;Technorati&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/technorati.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://digg.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4&amp;amp;title=Links for May 2011&amp;amp;bodytext=&amp;amp;media=news&amp;amp;topic=programming&quot; title=&quot;Digg This&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/digg.png&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.facebook.com/share.php?u=http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4&amp;amp;t=Links for May 2011&quot; target=&quot;_blank&quot; title=&quot;Share on Facebook&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/facebook.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.spurl.net/spurl.php?title=Links for May 2011&amp;amp;url=http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4&quot; target=&quot;blank&quot; title=&quot;Submit to Spurl&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/spurl.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;


&lt;a href=&quot;http://www.furl.net/storeIt.jsp?u=http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4&amp;amp;t=Links for May 2011&quot; target=&quot;blank&quot; title=&quot;Submit to Furl&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/furl.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://myweb2.search.yahoo.com/myresults/bookmarklet?t=Links for May 2011&amp;amp;u=http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4&quot; target=&quot;blank&quot; title=&quot;Yahoo&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/yahoo.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;amp;Url=http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4&amp;amp;Title=Links for May 2011&quot; target=&quot;blank&quot; title=&quot;Blinklist&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/blinklist.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a title=&quot;Add To Google&quot; href=&quot;http://www.google.com/ig/adde?moduleurl=http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/google.gif&quot; style=&quot;border: 0px none ; width: 16px; height: 16px;&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a rel=&quot;nofollow&quot; href=&quot;http://twitter.com/home?status=Links for May 2011+http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4&quot; title=&quot;Tweet this&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/twitter-icon.png&quot; style=&quot;width:16px; height:16px;border:0px;&quot; alt=&quot;Tweet this!&quot; /&gt;&lt;/a&gt;
&lt;!-- ...to here --&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<ul>
<li>
<strong><a href="http://snook.ca/archives/html_and_css/font-size-with-rem" class="delicious-link">Font sizing with rem - Snook.ca</a></strong> - <span class="delicious-extended">The rem unit offers an excellent alternative to relative font sizing with em an percentage units.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:CSS/" rel="tag">CSS</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Web/" rel="tag">Web</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Design/" rel="tag">Design</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Tips/" rel="tag">Tips</a>;&#160;</span>
</li>
<li>
<strong><a href="http://www.ifadey.com/2011/05/javascript-mistakes-you-must-avoid/" class="delicious-link">Javascript Mistakes You Must Avoid</a></strong> - <span class="delicious-extended">Good list of JavaScript gotchas, the event delegation tip was particularly timely for me.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:JavaScript/" rel="tag">JavaScript</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Tips/" rel="tag">Tips</a>;&#160;</span>
</li>
<li>
<strong><a href="http://adactio.com/journal/4523/" class="delicious-link">Adactio: Journal&#8212;Content First</a></strong> - <span class="delicious-extended">Don't design 'canvas in', starting with a few specific pixel widths, design 'content out'.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Web/" rel="tag">Web</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Design/" rel="tag">Design</a>;&#160;<a href="https://pinboard.in/u:robertc/t:MobileDevices/" rel="tag">MobileDevices</a>;&#160;</span>
</li>
<li>
<strong><a href="http://blogs.msdn.com/b/ie/archive/2011/04/22/thoughts-on-when-to-use-canvas-and-svg.aspx" class="delicious-link">Thoughts on when to use Canvas and SVG - IEBlog - Site Home - MSDN Blogs</a></strong> - <span class="delicious-extended">Nice article summarizing the sweet spots of the two technologies with use cases.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:SVG/" rel="tag">SVG</a>;&#160;<a href="https://pinboard.in/u:robertc/t:HTML5/" rel="tag">HTML5</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Tips/" rel="tag">Tips</a>;&#160;</span>
</li>
<li>
<strong><a href="http://msdn.microsoft.com/en-us/library/gg193979" class="delicious-link">Basic SVG Animation</a></strong> - <span class="delicious-extended">The first in a series of MSDN articles on animating SVG with JavaScript.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:SVG/" rel="tag">SVG</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Tutorial/" rel="tag">Tutorial</a>;&#160;</span>
</li>
<li>
<strong><a href="http://www.ibm.com/developerworks/web/library/wa-rdf/index.html" class="delicious-link">The Semantic Web, Linked Data and Drupal, Part 1: Expose your data using RDF</a></strong> - <span class="delicious-extended">"Drupal 7 is the first mainstream content management system to support Semantic Web technology in its core. Readily usable, Semantic Web technology lets you push the web from a web of documents to a web of data. In this article, learn to make your web data more interoperable and your data sharing more efficient."</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:SemanticWeb/" rel="tag">SemanticWeb</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Drupal/" rel="tag">Drupal</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Tutorial/" rel="tag">Tutorial</a>;&#160;</span>
</li>
</ul><br /><!-- Paste from here... -->
<a href="http://del.icio.us/post" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url='+encodeURIComponent('http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4')+'&amp;title='+encodeURIComponent('Links for May 2011'),'delicious', 'toolbar=no,width=700,height=400'); return false;" title="del.icio.us"><img src="http://www.boogdesign.com/images/delicious.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://reddit.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4&amp;title=Links for May 2011" target="blank" title="Reddit"><img src="http://www.boogdesign.com/images/reddit.png" alt="" border="0" width="16" height="16" /></a>

<a title="Stumble It" target="_blank" href="http://www.stumbleupon.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4&amp;title=BAE%20Social%20Bookmarks"><img src="http://www.boogdesign.com/images/stumbleupon.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://technorati.com/faves?add=http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4" target="blank" title="Technorati"><img src="http://www.boogdesign.com/images/technorati.jpg" alt="" border="0" width="16" height="16" /></a>

<a href="http://digg.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4&amp;title=Links for May 2011&amp;bodytext=&amp;media=news&amp;topic=programming" title="Digg This"><img src="http://www.boogdesign.com/images/digg.png" alt="" border="0" width="16" height="16" /></a>

<a href="http://www.facebook.com/share.php?u=http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4&amp;t=Links for May 2011" target="_blank" title="Share on Facebook"><img src="http://www.boogdesign.com/images/facebook.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://www.spurl.net/spurl.php?title=Links for May 2011&amp;url=http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4" target="blank" title="Submit to Spurl"><img src="http://www.boogdesign.com/images/spurl.gif" alt="" border="0" width="16" height="16" /></a>


<a href="http://www.furl.net/storeIt.jsp?u=http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4&amp;t=Links for May 2011" target="blank" title="Submit to Furl"><img src="http://www.boogdesign.com/images/furl.gif" alt="" border="0" width="16" height="16" /></a>

<a href="http://myweb2.search.yahoo.com/myresults/bookmarklet?t=Links for May 2011&amp;u=http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4" target="blank" title="Yahoo"><img src="http://www.boogdesign.com/images/yahoo.jpg" alt="" border="0" width="16" height="16" /></a>

<a href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4&amp;Title=Links for May 2011" target="blank" title="Blinklist"><img src="http://www.boogdesign.com/images/blinklist.gif" alt="" border="0" width="16" height="16" /></a>

<a title="Add To Google" href="http://www.google.com/ig/adde?moduleurl=http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4"><img src="http://www.boogdesign.com/images/google.gif" style="border: 0px none ; width: 16px; height: 16px;" alt="" /></a>

<a rel="nofollow" href="http://twitter.com/home?status=Links for May 2011+http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4" title="Tweet this"><img src="http://www.boogdesign.com/images/twitter-icon.png" style="width:16px; height:16px;border:0px;" alt="Tweet this!" /></a>
<!-- ...to here --><div class="item_footer"><p><small><a href="http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://www.boogdesign.com/b2evo/index.php/links-for-may-2011?blog=4#comments</comments>
			<wfw:commentRss>http://www.boogdesign.com/b2evo/index.php?blog=4&#38;tempskin=_rss2&#38;disp=comments&#38;p=368</wfw:commentRss>
		</item>
				<item>
			<title>IE10 and the Future of CSS Layout</title>
			<link>http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2</link>
			<pubDate>Wed, 20 Apr 2011 00:16:00 +0000</pubDate>			<dc:creator>robertc</dc:creator>
			<category domain="alt">Front End Web Development</category>
<category domain="main">Standards, HTML and CSS</category>
<category domain="alt">Blogging and Internet Culture</category>			<guid isPermaLink="false">367@http://www.boogdesign.com/b2evo/</guid>
						<description>&lt;p&gt;Last week &lt;a href=&quot;http://blogs.msdn.com/b/ie/archive/2011/04/12/native-html5-first-ie10-platform-preview-available-for-download.aspx&quot;&gt;the first developer preview of IE10 was released&lt;/a&gt;.  Among &lt;a href=&quot;http://msdn.microsoft.com/en-us/ie/gg192966&quot;&gt;several experimental features&lt;/a&gt; included were the first Microsoft implementations of &lt;a href=&quot;http://www.w3.org/TR/css3-flexbox/&quot;&gt;CSS3 Flexible Box Layout Module&lt;/a&gt; and &lt;a href=&quot;http://dev.w3.org/csswg/css3-grid-align/&quot;&gt;CSS3 Grid Alignment&lt;/a&gt;.  These are possibly the most exciting things to be added to CSS since drop shadows...&lt;/p&gt;

&lt;p&gt;First up the flexible box layout module, or flexboxes.  This has already been implemented in &lt;a href=&quot;http://hacks.mozilla.org/2010/04/the-css-3-flexible-box-model/&quot;&gt;Firefox and WebKit&lt;/a&gt;, but &lt;a href=&quot;http://lists.w3.org/Archives/Public/www-style/2011Jan/0186.html&quot;&gt;that version of flexboxes isn&#039;t very intuitive&lt;/a&gt;, and the draft has since seen a lot of updates.  Interestingly, IE10PR1 implements the same version of the spec as Firefox and WebKit but with one important addition: &lt;a href=&quot;http://www.w3.org/TR/2009/WD-css3-flexbox-20090723/#multiple&quot;&gt;multi-line flexboxes&lt;/a&gt;.  For me the multi-line properties are what make flexboxes worthwhile for layout, otherwise nearly everything you might currently want to achieve can be done just as easily (and with better backwards compatibility) with &lt;code&gt;display: table-cell&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;This is the sort of thing that multi-line flexboxes are useful for, it&#039;s a layout typical of shopping and photo gallery sites:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.boogdesign.com/images/blog/ie10grids/flexbox-1-800.png&quot;&gt;&lt;img class=&quot;screenshot&quot; src=&quot;http://www.boogdesign.com/images/blog/ie10grids/flexbox-1-800-thumb.png&quot; alt=&quot;A multiline flexbox layout at 800 pixels width&quot; title=&quot;Click for full size image&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here&#039;s what my markup looks like, nothing more complex than a list with sixty items in it:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;ul&amp;gt;
    &amp;lt;li&amp;gt;1&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;2&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;3&amp;lt;/li&amp;gt;
    ...
    &amp;lt;li&amp;gt;59&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;60&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;And here&#039;s the CSS, the key things to look out for are the &lt;code&gt;display: -ms-box&lt;/code&gt; and the &lt;code&gt;-ms-box-lines&lt;/code&gt;:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;body {
    width: 90%;
    margin: 0 5%;
}
ul {
    display: -ms-box;
    -ms-box-lines: multiple;
    list-style: none;
    width: auto;
    padding: 10px;
    border: 4px dashed #000;
}
li {
    display: block;
    -ms-box-flex: 1;
    padding: 1em;
    margin: 0.5em;
    min-width: 3em;
    border: 4px dashed #000;
}&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;You may be thinking that&#039;s not a hard thing to pull off, so let me show you the same page, in an 800 pixel wide browser above, at 640 and 480 pixels:&lt;/p&gt;
&lt;div&gt;&lt;div style=&quot;display: table-cell;&quot;&gt;
&lt;p&gt;&lt;a href=&quot;http://www.boogdesign.com/images/blog/ie10grids/flexbox-1-640.png&quot;&gt;&lt;img class=&quot;screenshot&quot; src=&quot;http://www.boogdesign.com/images/blog/ie10grids/flexbox-1-640-thumb.png&quot; alt=&quot;A multiline flexbox layout at 640 pixels width&quot; title=&quot;Click for full size image&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div style=&quot;display: table-cell;&quot;&gt;
&lt;a href=&quot;http://www.boogdesign.com/images/blog/ie10grids/flexbox-1-480.png&quot;&gt;&lt;img class=&quot;screenshot&quot; src=&quot;http://www.boogdesign.com/images/blog/ie10grids/flexbox-1-480-thumb.png&quot; alt=&quot;A multiline flexbox layout at 480 pixels width&quot; title=&quot;Click for full size image&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The number of cells across adjusts to match the width available, but, because these are flexboxes, the width of the elements themselves also adjust so that they always exactly fit the available width.  This is unique among our current alternatives:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;If you were using floats or inline blocks then you&#039;d have to set each element to a fixed width, meaning the container would have to be a fixed width so that the elements could fill it exactly.  You&#039;d have to use media queries to assign different fixed widths to the container to change the items per row according to screen resolution.&lt;/li&gt;
&lt;li&gt;If you were using a &lt;a href=&quot;http://blog.whatwg.org/weekly-layout-table&quot;&gt;layout table&lt;/a&gt; or display: table-cell then, although the elements would expand to fit exactly, the number of items per row would be fixed by the markup.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;However, nothing is perfect.  &lt;a href=&quot;http://www.boogdesign.com/examples/grids/flex-layout-1.html&quot;&gt;My multi-line flexbox example&lt;/a&gt; has a total of 60 elements, and I picked this number because it is an exact multiple of 2, 3, 4, 5 and 6 (it&#039;s the &lt;a href=&quot;http://en.wikipedia.org/wiki/Polynomial_expansion&quot;&gt;expansion&lt;/a&gt; of them if I&#039;ve got my maths terms right&lt;img src=&quot;http://www.boogdesign.com/b2evo/rsc/smilies/icon_question.gif&quot; title=&quot;&amp;amp;amp;#58;&amp;amp;amp;#63;&amp;amp;amp;#58;&quot; alt=&quot;&amp;amp;amp;#58;&amp;amp;amp;#63;&amp;amp;amp;#58;&quot; class=&quot;middle&quot; width=&quot;15&quot; height=&quot;15&quot; /&gt;) - meaning that the number of elements will fill the grid whether there&#039;s 2, 3, 4, 5 or 6 elements per row.  If there&#039;s a less perfect number, say 24, then the grid will look a little strange on the last row:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.boogdesign.com/images/blog/ie10grids/flexbox-1a-640.png&quot;&gt;&lt;img class=&quot;screenshot&quot; src=&quot;http://www.boogdesign.com/images/blog/ie10grids/flexbox-1a-640-thumb.png&quot; alt=&quot;A multiline flexbox layout at 640 pixels width with only 24 elements&quot; title=&quot;Click for full size image&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I think the &lt;a href=&quot;http://www.w3.org/TR/2009/WD-css3-flexbox-20090723/#multiple-alignment&quot;&gt;&lt;code&gt;box-align&lt;/code&gt;&lt;/a&gt; property should help with this, but I couldn&#039;t make it work in IE10PR1.&lt;/p&gt;

&lt;p&gt;So, multi-line flexboxes could be a useful addition to the CSS toolbox when everyone gets round to upgrading to IE10, but, cool as they are, that&#039;s not the coolest experimental CSS layout implementation in IE10PR1.  There have been a few grid and template based CSS proposals over the years but, apart from an incomplete JavaScript library for CSS Template Layout, none of them have ever been implemented in a major desktop browser.  That is until last week, when IE10PR1 implemented &lt;a href=&quot;http://www.interoperabilitybridges.com/css3-grid-align/&quot;&gt;Microsoft&#039;s own CSS Grid Align proposal from October 2010&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I want you to reflect, now, on all the fun you&#039;ve had over the last ten years constructing CSS layouts of three equal height columns, with a header and footer, and making them work in IE6.  Layouts something like this:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.boogdesign.com/images/blog/ie10grids/grid-layout-1.png&quot;&gt;&lt;img class=&quot;screenshot&quot; src=&quot;http://www.boogdesign.com/images/blog/ie10grids/grid-layout-1-thumb.png&quot; alt=&quot;A three column layout with header and footer&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Are you remembering all the fun you had?  Good, now look at this markup and contemplate how you&#039;d turn it into a three column layout:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;header&amp;gt;Header&amp;lt;/header&amp;gt;
&amp;lt;aside class=&quot;b&quot;&amp;gt;Side bar&amp;lt;/aside&amp;gt;
&amp;lt;article&amp;gt;I never am really satisfied...&amp;lt;/article&amp;gt;
&amp;lt;aside class=&quot;d&quot;&amp;gt;Side bar&amp;lt;/aside&amp;gt;
&amp;lt;footer&amp;gt;Footer&amp;lt;/footer&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;Now look at this CSS and start wishing the future would arrive soon:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;body {
    width: 90%;
    margin: 0 5%;
    display: -ms-grid;
    -ms-grid-columns: auto minmax(min-content, 1fr) auto;
    -ms-grid-rows: auto minmax(min-content, 1fr) auto;
}
article, aside, header, footer {
    margin: 1em;
    padding: 1em;
    outline: 4px dashed black;
}
header { -ms-grid-column: 1; -ms-grid-row: 1; -ms-grid-column-span: 3; }
aside.b { -ms-grid-column: 1; -ms-grid-row: 2; }
article { -ms-grid-column: 2; -ms-grid-row: 2; }
aside.d { -ms-grid-column: 3; -ms-grid-row: 2; }
footer { -ms-grid-column: 1; -ms-grid-row: 3; -ms-grid-column-span: 3; }&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;That&#039;s it, seven declarations is all you need for that three column layout with CSS Grid Align.  For this first example I&#039;m going to step through the key points line by line:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;display: -ms-grid;&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;This is the bit which declares we will use the grid layout manager on the children of this element, in the same way that the flexbox layout manager was declared above with &lt;code&gt;display: -ms-box&lt;/code&gt;.&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;-ms-grid-columns: auto minmax(min-content, 1fr) auto;&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;This line defines three columns, the first and last will shrink to fit the content - that&#039;s the default behaviour, similar to a table.  The middle column will be a minimum of &lt;code&gt;min-content&lt;/code&gt;, which is basically the same as &lt;code&gt;auto&lt;/code&gt;, and a maximum of &lt;code&gt;1fr&lt;/code&gt; which is a &#039;fraction of available space&#039; - quite similar to a flex unit and, since there&#039;s only one fractional column, basically equivalent to all the available space.&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;-ms-grid-rows: auto minmax(min-content, 1fr) auto;&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;We&#039;ll have three rows to go along with our three columns, I won&#039;t go over the individual values again.  Now the fun stuff:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;header { -ms-grid-column: 1; -ms-grid-row: 1; -ms-grid-column-span: 3; }&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;Put the header in the first column of the first row, and make it span three columns.  That&#039;s it.  Really, it&#039;s that simple.  Let&#039;s just do one more:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;article { -ms-grid-column: 2; -ms-grid-row: 2; }&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;Put the article in the second column and the second row.  And make me some coffee, white, no sugar.  Actually there isn&#039;t a CSS property for that yet, maybe CSS4...&lt;/p&gt;

&lt;p&gt;But it gets more cool than that.  In the example above the order of the elements in the markup matched up with the order they were placed into the grid, but it doesn&#039;t have to be that way:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.boogdesign.com/images/blog/ie10grids/grid-layout-2.png&quot;&gt;&lt;img class=&quot;screenshot&quot; src=&quot;http://www.boogdesign.com/images/blog/ie10grids/grid-layout-2-thumb.png&quot; alt=&quot;A three column layout with header and footer, with elements placed in a different order&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This amazing transformation was achieved without any changes in markup, just messing around with CSS:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;header { -ms-grid-column: 1; -ms-grid-row: 2; }
aside.b { -ms-grid-column: 2; -ms-grid-row: 2; }
article { -ms-grid-column: 1; -ms-grid-row: 1; -ms-grid-column-span: 3; }
aside.d { -ms-grid-column: 1; -ms-grid-row: 3; -ms-grid-column-span: 3; }
footer { -ms-grid-column: 3; -ms-grid-row: 2; }&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;In &lt;a href=&quot;http://dev.w3.org/csswg/css3-grid-align/&quot;&gt;the current draft&lt;/a&gt; there&#039;s a &lt;code&gt;grid-cell-stacking&lt;/code&gt; property which will let you flow multiple elements into a single cell, but in the IE10PR1 implementation things just stack on top of each other:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.boogdesign.com/images/blog/ie10grids/grid-layout-3a.png&quot;&gt;&lt;img class=&quot;screenshot&quot; src=&quot;http://www.boogdesign.com/images/blog/ie10grids/grid-layout-3a-thumb.png&quot; alt=&quot;Multiple elements in cells not working&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a shame, because the markup is quite straightforward, I won&#039;t post all of it because this is already getting quite long (&lt;a href=&quot;http://www.boogdesign.com/examples/grids/grid-layout-3a.html&quot;&gt;have a look&lt;/a&gt;), but here&#039;s the nice bit:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;article:nth-child(2n+1) { -ms-grid-column: 1; }
article:nth-child(2n) { -ms-grid-column: 2; }&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;The article elements are assigned to grid cells alternately, unfortunately it doesn&#039;t work yet.  However you can nest elements set to &lt;code&gt;display: -ms-grid&lt;/code&gt; inside each other:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.boogdesign.com/images/blog/ie10grids/grid-layout-3.png&quot;&gt;&lt;img class=&quot;screenshot&quot; src=&quot;http://www.boogdesign.com/images/blog/ie10grids/grid-layout-3-thumb.png&quot; alt=&quot;A three column layout with header and footer&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Have a &lt;a href=&quot;http://www.boogdesign.com/examples/grids/grid-layout-3.html&quot;&gt;look at the source code&lt;/a&gt; for that one, it gets pretty hairy, so rather than try and do that sort of thing it&#039;s probably best to use some wrapper elements like this:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.boogdesign.com/images/blog/ie10grids/grid-layout-4.png&quot;&gt;&lt;img class=&quot;screenshot&quot; src=&quot;http://www.boogdesign.com/images/blog/ie10grids/grid-layout-4-thumb.png&quot; alt=&quot;Grid Align with wrapper elements for cells&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Again, &lt;a href=&quot;http://www.boogdesign.com/examples/grids/grid-layout-4.html&quot;&gt;view the source code yourself&lt;/a&gt; to see how it&#039;s put together, but I think these things will be worth re-visiting in a later preview release.&lt;/p&gt;

&lt;p&gt;I&#039;m going to finish off with some &lt;a href=&quot;http://www.alistapart.com/articles/responsive-web-design/&quot;&gt;adaptive layout&lt;/a&gt;.  Grid Align is a great fit for this because of the complete independence of layout from source order.  Here&#039;s what I put together based off the previous example at 800 pixel width:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.boogdesign.com/images/blog/ie10grids/grid-layout-5-800.png&quot;&gt;&lt;img class=&quot;screenshot&quot; src=&quot;http://www.boogdesign.com/images/blog/ie10grids/grid-layout-5-800-thumb.png&quot; alt=&quot;An adaptive Grid Align at 800px width&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now here&#039;s the same page at 640 and 480 pixel widths:&lt;/p&gt;
&lt;div&gt;&lt;div style=&quot;display: table-cell;&quot;&gt;
&lt;p&gt;&lt;a href=&quot;http://www.boogdesign.com/images/blog/ie10grids/grid-layout-5-640.png&quot;&gt;&lt;img class=&quot;screenshot&quot; src=&quot;http://www.boogdesign.com/images/blog/ie10grids/grid-layout-5-640-thumb.png&quot; alt=&quot;An adaptive Grid Align at 640px width&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div style=&quot;display: table-cell;&quot;&gt;
&lt;a href=&quot;http://www.boogdesign.com/images/blog/ie10grids/grid-layout-5-480.png&quot;&gt;&lt;img class=&quot;screenshot&quot; src=&quot;http://www.boogdesign.com/images/blog/ie10grids/grid-layout-5-480-thumb.png&quot; alt=&quot;An adaptive Grid Align at 480px width&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The markup is, of course, the same in each case:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;header&amp;gt;Header&amp;lt;/header&amp;gt;
&amp;lt;div id=&quot;sidebar&quot;&amp;gt;
    &amp;lt;aside&amp;gt;Side bar 1&amp;lt;/aside&amp;gt;
    &amp;lt;aside&amp;gt;Side bar 2&amp;lt;/aside&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div id=&quot;content1&quot;&amp;gt;
    &amp;lt;article&amp;gt;Content 1&amp;lt;/article&amp;gt;
    &amp;lt;article&amp;gt;Content 3&amp;lt;/article&amp;gt;
    &amp;lt;article&amp;gt;Content 5&amp;lt;/article&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div id=&quot;content2&quot;&amp;gt;
    &amp;lt;article&amp;gt;Content 2&amp;lt;/article&amp;gt;
    &amp;lt;article&amp;gt;Content 4&amp;lt;/article&amp;gt;
    &amp;lt;article&amp;gt;Content 6&amp;lt;/article&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;footer&amp;gt;Footer&amp;lt;/footer&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;By default I&#039;ve assumed a single column layout:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;body {
    width: 90%;
    height: 90%;
    margin: 0 5%;
    display: -ms-grid;
    -ms-grid-rows: auto;
    -ms-grid-columns: 1fr;
}
article, aside, header, footer {
     margin: 1em;
     padding: 1em;
     outline: 4px dashed black;
}
header { -ms-grid-row: 1; }
#sidebar { -ms-grid-row: 3; }
#content1 { -ms-grid-row: 2; }
#content2 { -ms-grid-row: 4; }
footer {  -ms-grid-row: 5; }&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;Moving on to windows of a minimum width of 600 pixels, move up to two columns:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;@media screen and (min-width: 600px) {
    body {
        -ms-grid-columns: auto 1fr;
        -ms-grid-rows: auto 1fr 1fr auto;
    }
    header { -ms-grid-column: 1; -ms-grid-row: 1; -ms-grid-column-span: 2; }
    #sidebar { -ms-grid-column: 1; -ms-grid-row: 2; -ms-grid-rowspan: 2; }
    #content1 { -ms-grid-column: 2; -ms-grid-row: 2; }
    #content2 { -ms-grid-column: 2; -ms-grid-row: 3; }
    footer { -ms-grid-column: 1; -ms-grid-row: 4; -ms-grid-column-span: 2; }
}&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;This is nothing you haven&#039;t seen already, but I&#039;ll just point out again how cool it is that you can place the elements wherever you want them.  Finally, for windows of greater than 760 pixels width, switch back to the three column layout:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;@media screen and (min-width: 760px) {
    body {
        -ms-grid-columns: auto 1fr 1fr;
        -ms-grid-rows: auto 1fr auto;
    }
    header { -ms-grid-column: 1; -ms-grid-row: 1; -ms-grid-column-span: 3; }
    #sidebar { -ms-grid-column: 1; -ms-grid-row: 2; }
    #content1 { -ms-grid-column: 2; -ms-grid-row: 2; }
    #content2 { -ms-grid-column: 3; -ms-grid-row: 2; }
    footer { -ms-grid-column: 1; -ms-grid-row: 3; -ms-grid-column-span: 3; }
}&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;If you&#039;ve downloaded the IE10 developer preview &lt;a href=&quot;http://www.boogdesign.com/examples/grids/grid-layout-5.html&quot;&gt;have a play round with it yourself&lt;/a&gt;, and try not to think about how long you&#039;ll have to wait until all this stuff is available in production browsers &lt;img src=&quot;http://www.boogdesign.com/b2evo/rsc/smilies/icon_razz.gif&quot; title=&quot;&amp;amp;amp;#58;&amp;amp;amp;#112;&quot; alt=&quot;&amp;amp;amp;#58;&amp;amp;amp;#112;&quot; class=&quot;middle&quot; width=&quot;15&quot; height=&quot;15&quot; /&gt; &lt;/p&gt;&lt;div class=&quot;tags twitter_tags&quot;&gt;&lt;strong&gt;Twitter tags for this post&amp;nbsp;:&lt;/strong&gt; &lt;a rel=&quot;tag&quot; href=&quot;http://search.twitter.com/search?tag=css3&quot;&gt;css3&lt;/a&gt; &amp;bull; &lt;a rel=&quot;tag&quot; href=&quot;http://search.twitter.com/search?tag=ie10&quot;&gt;ie10&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;!-- Paste from here... --&gt;
&lt;a href=&quot;http://del.icio.us/post&quot; onclick=&quot;window.open(&#039;http://del.icio.us/post?v=4&amp;amp;noui&amp;amp;jump=close&amp;amp;url=&#039;+encodeURIComponent(&#039;http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2&#039;)+&#039;&amp;amp;title=&#039;+encodeURIComponent(&#039;IE10 and the Future of CSS Layout&#039;),&#039;delicious&#039;, &#039;toolbar=no,width=700,height=400&#039;); return false;&quot; title=&quot;del.icio.us&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/delicious.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://reddit.com/submit?url=http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2&amp;amp;title=IE10 and the Future of CSS Layout&quot; target=&quot;blank&quot; title=&quot;Reddit&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/reddit.png&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a title=&quot;Stumble It&quot; target=&quot;_blank&quot; href=&quot;http://www.stumbleupon.com/submit?url=http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2&amp;amp;title=BAE%20Social%20Bookmarks&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/stumbleupon.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://technorati.com/faves?add=http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2&quot; target=&quot;blank&quot; title=&quot;Technorati&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/technorati.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://digg.com/submit?url=http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2&amp;amp;title=IE10 and the Future of CSS Layout&amp;amp;bodytext=&amp;amp;media=news&amp;amp;topic=programming&quot; title=&quot;Digg This&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/digg.png&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.facebook.com/share.php?u=http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2&amp;amp;t=IE10 and the Future of CSS Layout&quot; target=&quot;_blank&quot; title=&quot;Share on Facebook&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/facebook.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.spurl.net/spurl.php?title=IE10 and the Future of CSS Layout&amp;amp;url=http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2&quot; target=&quot;blank&quot; title=&quot;Submit to Spurl&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/spurl.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;


&lt;a href=&quot;http://www.furl.net/storeIt.jsp?u=http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2&amp;amp;t=IE10 and the Future of CSS Layout&quot; target=&quot;blank&quot; title=&quot;Submit to Furl&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/furl.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://myweb2.search.yahoo.com/myresults/bookmarklet?t=IE10 and the Future of CSS Layout&amp;amp;u=http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2&quot; target=&quot;blank&quot; title=&quot;Yahoo&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/yahoo.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;amp;Url=http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2&amp;amp;Title=IE10 and the Future of CSS Layout&quot; target=&quot;blank&quot; title=&quot;Blinklist&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/blinklist.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a title=&quot;Add To Google&quot; href=&quot;http://www.google.com/ig/adde?moduleurl=http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/google.gif&quot; style=&quot;border: 0px none ; width: 16px; height: 16px;&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a rel=&quot;nofollow&quot; href=&quot;http://twitter.com/home?status=IE10 and the Future of CSS Layout+http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2&quot; title=&quot;Tweet this&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/twitter-icon.png&quot; style=&quot;width:16px; height:16px;border:0px;&quot; alt=&quot;Tweet this!&quot; /&gt;&lt;/a&gt;
&lt;!-- ...to here --&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>Last week <a href="http://blogs.msdn.com/b/ie/archive/2011/04/12/native-html5-first-ie10-platform-preview-available-for-download.aspx">the first developer preview of IE10 was released</a>.  Among <a href="http://msdn.microsoft.com/en-us/ie/gg192966">several experimental features</a> included were the first Microsoft implementations of <a href="http://www.w3.org/TR/css3-flexbox/">CSS3 Flexible Box Layout Module</a> and <a href="http://dev.w3.org/csswg/css3-grid-align/">CSS3 Grid Alignment</a>.  These are possibly the most exciting things to be added to CSS since drop shadows...</p>

<p>First up the flexible box layout module, or flexboxes.  This has already been implemented in <a href="http://hacks.mozilla.org/2010/04/the-css-3-flexible-box-model/">Firefox and WebKit</a>, but <a href="http://lists.w3.org/Archives/Public/www-style/2011Jan/0186.html">that version of flexboxes isn't very intuitive</a>, and the draft has since seen a lot of updates.  Interestingly, IE10PR1 implements the same version of the spec as Firefox and WebKit but with one important addition: <a href="http://www.w3.org/TR/2009/WD-css3-flexbox-20090723/#multiple">multi-line flexboxes</a>.  For me the multi-line properties are what make flexboxes worthwhile for layout, otherwise nearly everything you might currently want to achieve can be done just as easily (and with better backwards compatibility) with <code>display: table-cell</code>.</p>

<p>This is the sort of thing that multi-line flexboxes are useful for, it's a layout typical of shopping and photo gallery sites:</p>

<p><a href="http://www.boogdesign.com/images/blog/ie10grids/flexbox-1-800.png"><img class="screenshot" src="http://www.boogdesign.com/images/blog/ie10grids/flexbox-1-800-thumb.png" alt="A multiline flexbox layout at 800 pixels width" title="Click for full size image" /></a></p>

<p>Here's what my markup looks like, nothing more complex than a list with sixty items in it:</p><blockquote><pre><code>&lt;ul&gt;
    &lt;li&gt;1&lt;/li&gt;
    &lt;li&gt;2&lt;/li&gt;
    &lt;li&gt;3&lt;/li&gt;
    ...
    &lt;li&gt;59&lt;/li&gt;
    &lt;li&gt;60&lt;/li&gt;
&lt;/ul&gt;</code></pre></blockquote><p>And here's the CSS, the key things to look out for are the <code>display: -ms-box</code> and the <code>-ms-box-lines</code>:</p><blockquote><pre><code>body {
    width: 90%;
    margin: 0 5%;
}
ul {
    display: -ms-box;
    -ms-box-lines: multiple;
    list-style: none;
    width: auto;
    padding: 10px;
    border: 4px dashed #000;
}
li {
    display: block;
    -ms-box-flex: 1;
    padding: 1em;
    margin: 0.5em;
    min-width: 3em;
    border: 4px dashed #000;
}</code></pre></blockquote><p>You may be thinking that's not a hard thing to pull off, so let me show you the same page, in an 800 pixel wide browser above, at 640 and 480 pixels:</p>
<div><div style="display: table-cell;">
<p><a href="http://www.boogdesign.com/images/blog/ie10grids/flexbox-1-640.png"><img class="screenshot" src="http://www.boogdesign.com/images/blog/ie10grids/flexbox-1-640-thumb.png" alt="A multiline flexbox layout at 640 pixels width" title="Click for full size image" /></a></p>
</div><div style="display: table-cell;">
<a href="http://www.boogdesign.com/images/blog/ie10grids/flexbox-1-480.png"><img class="screenshot" src="http://www.boogdesign.com/images/blog/ie10grids/flexbox-1-480-thumb.png" alt="A multiline flexbox layout at 480 pixels width" title="Click for full size image" /></a>
</div></div>
<p>The number of cells across adjusts to match the width available, but, because these are flexboxes, the width of the elements themselves also adjust so that they always exactly fit the available width.  This is unique among our current alternatives:</p><ul>
<li>If you were using floats or inline blocks then you'd have to set each element to a fixed width, meaning the container would have to be a fixed width so that the elements could fill it exactly.  You'd have to use media queries to assign different fixed widths to the container to change the items per row according to screen resolution.</li>
<li>If you were using a <a href="http://blog.whatwg.org/weekly-layout-table">layout table</a> or display: table-cell then, although the elements would expand to fit exactly, the number of items per row would be fixed by the markup.</li>
</ul><p>However, nothing is perfect.  <a href="http://www.boogdesign.com/examples/grids/flex-layout-1.html">My multi-line flexbox example</a> has a total of 60 elements, and I picked this number because it is an exact multiple of 2, 3, 4, 5 and 6 (it's the <a href="http://en.wikipedia.org/wiki/Polynomial_expansion">expansion</a> of them if I've got my maths terms right<img src="http://www.boogdesign.com/b2evo/rsc/smilies/icon_question.gif" title="&amp;amp;#58;&amp;amp;#63;&amp;amp;#58;" alt="&amp;amp;#58;&amp;amp;#63;&amp;amp;#58;" class="middle" width="15" height="15" />) - meaning that the number of elements will fill the grid whether there's 2, 3, 4, 5 or 6 elements per row.  If there's a less perfect number, say 24, then the grid will look a little strange on the last row:</p>

<p><a href="http://www.boogdesign.com/images/blog/ie10grids/flexbox-1a-640.png"><img class="screenshot" src="http://www.boogdesign.com/images/blog/ie10grids/flexbox-1a-640-thumb.png" alt="A multiline flexbox layout at 640 pixels width with only 24 elements" title="Click for full size image" /></a></p>

<p>I think the <a href="http://www.w3.org/TR/2009/WD-css3-flexbox-20090723/#multiple-alignment"><code>box-align</code></a> property should help with this, but I couldn't make it work in IE10PR1.</p>

<p>So, multi-line flexboxes could be a useful addition to the CSS toolbox when everyone gets round to upgrading to IE10, but, cool as they are, that's not the coolest experimental CSS layout implementation in IE10PR1.  There have been a few grid and template based CSS proposals over the years but, apart from an incomplete JavaScript library for CSS Template Layout, none of them have ever been implemented in a major desktop browser.  That is until last week, when IE10PR1 implemented <a href="http://www.interoperabilitybridges.com/css3-grid-align/">Microsoft's own CSS Grid Align proposal from October 2010</a>.</p>

<p>I want you to reflect, now, on all the fun you've had over the last ten years constructing CSS layouts of three equal height columns, with a header and footer, and making them work in IE6.  Layouts something like this:</p>

<p><a href="http://www.boogdesign.com/images/blog/ie10grids/grid-layout-1.png"><img class="screenshot" src="http://www.boogdesign.com/images/blog/ie10grids/grid-layout-1-thumb.png" alt="A three column layout with header and footer" /></a></p>

<p>Are you remembering all the fun you had?  Good, now look at this markup and contemplate how you'd turn it into a three column layout:</p><blockquote><pre><code>&lt;header&gt;Header&lt;/header&gt;
&lt;aside class="b"&gt;Side bar&lt;/aside&gt;
&lt;article&gt;I never am really satisfied...&lt;/article&gt;
&lt;aside class="d"&gt;Side bar&lt;/aside&gt;
&lt;footer&gt;Footer&lt;/footer&gt;</code></pre></blockquote><p>Now look at this CSS and start wishing the future would arrive soon:</p><blockquote><pre><code>body {
    width: 90%;
    margin: 0 5%;
    display: -ms-grid;
    -ms-grid-columns: auto minmax(min-content, 1fr) auto;
    -ms-grid-rows: auto minmax(min-content, 1fr) auto;
}
article, aside, header, footer {
    margin: 1em;
    padding: 1em;
    outline: 4px dashed black;
}
header { -ms-grid-column: 1; -ms-grid-row: 1; -ms-grid-column-span: 3; }
aside.b { -ms-grid-column: 1; -ms-grid-row: 2; }
article { -ms-grid-column: 2; -ms-grid-row: 2; }
aside.d { -ms-grid-column: 3; -ms-grid-row: 2; }
footer { -ms-grid-column: 1; -ms-grid-row: 3; -ms-grid-column-span: 3; }</code></pre></blockquote><p>That's it, seven declarations is all you need for that three column layout with CSS Grid Align.  For this first example I'm going to step through the key points line by line:</p><blockquote><pre><code>display: -ms-grid;</code></pre></blockquote><p>This is the bit which declares we will use the grid layout manager on the children of this element, in the same way that the flexbox layout manager was declared above with <code>display: -ms-box</code>.</p><blockquote><pre><code>-ms-grid-columns: auto minmax(min-content, 1fr) auto;</code></pre></blockquote><p>This line defines three columns, the first and last will shrink to fit the content - that's the default behaviour, similar to a table.  The middle column will be a minimum of <code>min-content</code>, which is basically the same as <code>auto</code>, and a maximum of <code>1fr</code> which is a 'fraction of available space' - quite similar to a flex unit and, since there's only one fractional column, basically equivalent to all the available space.</p><blockquote><pre><code>-ms-grid-rows: auto minmax(min-content, 1fr) auto;</code></pre></blockquote><p>We'll have three rows to go along with our three columns, I won't go over the individual values again.  Now the fun stuff:</p><blockquote><pre><code>header { -ms-grid-column: 1; -ms-grid-row: 1; -ms-grid-column-span: 3; }</code></pre></blockquote><p>Put the header in the first column of the first row, and make it span three columns.  That's it.  Really, it's that simple.  Let's just do one more:</p><blockquote><pre><code>article { -ms-grid-column: 2; -ms-grid-row: 2; }</code></pre></blockquote><p>Put the article in the second column and the second row.  And make me some coffee, white, no sugar.  Actually there isn't a CSS property for that yet, maybe CSS4...</p>

<p>But it gets more cool than that.  In the example above the order of the elements in the markup matched up with the order they were placed into the grid, but it doesn't have to be that way:</p>

<p><a href="http://www.boogdesign.com/images/blog/ie10grids/grid-layout-2.png"><img class="screenshot" src="http://www.boogdesign.com/images/blog/ie10grids/grid-layout-2-thumb.png" alt="A three column layout with header and footer, with elements placed in a different order" /></a></p>

<p>This amazing transformation was achieved without any changes in markup, just messing around with CSS:</p><blockquote><pre><code>header { -ms-grid-column: 1; -ms-grid-row: 2; }
aside.b { -ms-grid-column: 2; -ms-grid-row: 2; }
article { -ms-grid-column: 1; -ms-grid-row: 1; -ms-grid-column-span: 3; }
aside.d { -ms-grid-column: 1; -ms-grid-row: 3; -ms-grid-column-span: 3; }
footer { -ms-grid-column: 3; -ms-grid-row: 2; }</code></pre></blockquote><p>In <a href="http://dev.w3.org/csswg/css3-grid-align/">the current draft</a> there's a <code>grid-cell-stacking</code> property which will let you flow multiple elements into a single cell, but in the IE10PR1 implementation things just stack on top of each other:</p>

<p><a href="http://www.boogdesign.com/images/blog/ie10grids/grid-layout-3a.png"><img class="screenshot" src="http://www.boogdesign.com/images/blog/ie10grids/grid-layout-3a-thumb.png" alt="Multiple elements in cells not working" /></a></p>

<p>This is a shame, because the markup is quite straightforward, I won't post all of it because this is already getting quite long (<a href="http://www.boogdesign.com/examples/grids/grid-layout-3a.html">have a look</a>), but here's the nice bit:</p><blockquote><pre><code>article:nth-child(2n+1) { -ms-grid-column: 1; }
article:nth-child(2n) { -ms-grid-column: 2; }</code></pre></blockquote><p>The article elements are assigned to grid cells alternately, unfortunately it doesn't work yet.  However you can nest elements set to <code>display: -ms-grid</code> inside each other:</p>

<p><a href="http://www.boogdesign.com/images/blog/ie10grids/grid-layout-3.png"><img class="screenshot" src="http://www.boogdesign.com/images/blog/ie10grids/grid-layout-3-thumb.png" alt="A three column layout with header and footer" /></a></p>

<p>Have a <a href="http://www.boogdesign.com/examples/grids/grid-layout-3.html">look at the source code</a> for that one, it gets pretty hairy, so rather than try and do that sort of thing it's probably best to use some wrapper elements like this:</p>

<p><a href="http://www.boogdesign.com/images/blog/ie10grids/grid-layout-4.png"><img class="screenshot" src="http://www.boogdesign.com/images/blog/ie10grids/grid-layout-4-thumb.png" alt="Grid Align with wrapper elements for cells" /></a></p>

<p>Again, <a href="http://www.boogdesign.com/examples/grids/grid-layout-4.html">view the source code yourself</a> to see how it's put together, but I think these things will be worth re-visiting in a later preview release.</p>

<p>I'm going to finish off with some <a href="http://www.alistapart.com/articles/responsive-web-design/">adaptive layout</a>.  Grid Align is a great fit for this because of the complete independence of layout from source order.  Here's what I put together based off the previous example at 800 pixel width:</p>

<p><a href="http://www.boogdesign.com/images/blog/ie10grids/grid-layout-5-800.png"><img class="screenshot" src="http://www.boogdesign.com/images/blog/ie10grids/grid-layout-5-800-thumb.png" alt="An adaptive Grid Align at 800px width" /></a></p>

<p>Now here's the same page at 640 and 480 pixel widths:</p>
<div><div style="display: table-cell;">
<p><a href="http://www.boogdesign.com/images/blog/ie10grids/grid-layout-5-640.png"><img class="screenshot" src="http://www.boogdesign.com/images/blog/ie10grids/grid-layout-5-640-thumb.png" alt="An adaptive Grid Align at 640px width" /></a></p>
</div><div style="display: table-cell;">
<a href="http://www.boogdesign.com/images/blog/ie10grids/grid-layout-5-480.png"><img class="screenshot" src="http://www.boogdesign.com/images/blog/ie10grids/grid-layout-5-480-thumb.png" alt="An adaptive Grid Align at 480px width" /></a>
</div></div>
<p>The markup is, of course, the same in each case:</p><blockquote><pre><code>&lt;header&gt;Header&lt;/header&gt;
&lt;div id="sidebar"&gt;
    &lt;aside&gt;Side bar 1&lt;/aside&gt;
    &lt;aside&gt;Side bar 2&lt;/aside&gt;
&lt;/div&gt;
&lt;div id="content1"&gt;
    &lt;article&gt;Content 1&lt;/article&gt;
    &lt;article&gt;Content 3&lt;/article&gt;
    &lt;article&gt;Content 5&lt;/article&gt;
&lt;/div&gt;
&lt;div id="content2"&gt;
    &lt;article&gt;Content 2&lt;/article&gt;
    &lt;article&gt;Content 4&lt;/article&gt;
    &lt;article&gt;Content 6&lt;/article&gt;
&lt;/div&gt;
&lt;footer&gt;Footer&lt;/footer&gt;</code></pre></blockquote><p>By default I've assumed a single column layout:</p><blockquote><pre><code>body {
    width: 90%;
    height: 90%;
    margin: 0 5%;
    display: -ms-grid;
    -ms-grid-rows: auto;
    -ms-grid-columns: 1fr;
}
article, aside, header, footer {
     margin: 1em;
     padding: 1em;
     outline: 4px dashed black;
}
header { -ms-grid-row: 1; }
#sidebar { -ms-grid-row: 3; }
#content1 { -ms-grid-row: 2; }
#content2 { -ms-grid-row: 4; }
footer {  -ms-grid-row: 5; }</code></pre></blockquote><p>Moving on to windows of a minimum width of 600 pixels, move up to two columns:</p><blockquote><pre><code>@media screen and (min-width: 600px) {
    body {
        -ms-grid-columns: auto 1fr;
        -ms-grid-rows: auto 1fr 1fr auto;
    }
    header { -ms-grid-column: 1; -ms-grid-row: 1; -ms-grid-column-span: 2; }
    #sidebar { -ms-grid-column: 1; -ms-grid-row: 2; -ms-grid-rowspan: 2; }
    #content1 { -ms-grid-column: 2; -ms-grid-row: 2; }
    #content2 { -ms-grid-column: 2; -ms-grid-row: 3; }
    footer { -ms-grid-column: 1; -ms-grid-row: 4; -ms-grid-column-span: 2; }
}</code></pre></blockquote><p>This is nothing you haven't seen already, but I'll just point out again how cool it is that you can place the elements wherever you want them.  Finally, for windows of greater than 760 pixels width, switch back to the three column layout:</p><blockquote><pre><code>@media screen and (min-width: 760px) {
    body {
        -ms-grid-columns: auto 1fr 1fr;
        -ms-grid-rows: auto 1fr auto;
    }
    header { -ms-grid-column: 1; -ms-grid-row: 1; -ms-grid-column-span: 3; }
    #sidebar { -ms-grid-column: 1; -ms-grid-row: 2; }
    #content1 { -ms-grid-column: 2; -ms-grid-row: 2; }
    #content2 { -ms-grid-column: 3; -ms-grid-row: 2; }
    footer { -ms-grid-column: 1; -ms-grid-row: 3; -ms-grid-column-span: 3; }
}</code></pre></blockquote><p>If you've downloaded the IE10 developer preview <a href="http://www.boogdesign.com/examples/grids/grid-layout-5.html">have a play round with it yourself</a>, and try not to think about how long you'll have to wait until all this stuff is available in production browsers <img src="http://www.boogdesign.com/b2evo/rsc/smilies/icon_razz.gif" title="&amp;amp;#58;&amp;amp;#112;" alt="&amp;amp;#58;&amp;amp;#112;" class="middle" width="15" height="15" /> </p><div class="tags twitter_tags"><strong>Twitter tags for this post&nbsp;:</strong> <a rel="tag" href="http://search.twitter.com/search?tag=css3">css3</a> &bull; <a rel="tag" href="http://search.twitter.com/search?tag=ie10">ie10</a></div><br /><!-- Paste from here... -->
<a href="http://del.icio.us/post" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url='+encodeURIComponent('http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2')+'&amp;title='+encodeURIComponent('IE10 and the Future of CSS Layout'),'delicious', 'toolbar=no,width=700,height=400'); return false;" title="del.icio.us"><img src="http://www.boogdesign.com/images/delicious.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://reddit.com/submit?url=http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2&amp;title=IE10 and the Future of CSS Layout" target="blank" title="Reddit"><img src="http://www.boogdesign.com/images/reddit.png" alt="" border="0" width="16" height="16" /></a>

<a title="Stumble It" target="_blank" href="http://www.stumbleupon.com/submit?url=http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2&amp;title=BAE%20Social%20Bookmarks"><img src="http://www.boogdesign.com/images/stumbleupon.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://technorati.com/faves?add=http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2" target="blank" title="Technorati"><img src="http://www.boogdesign.com/images/technorati.jpg" alt="" border="0" width="16" height="16" /></a>

<a href="http://digg.com/submit?url=http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2&amp;title=IE10 and the Future of CSS Layout&amp;bodytext=&amp;media=news&amp;topic=programming" title="Digg This"><img src="http://www.boogdesign.com/images/digg.png" alt="" border="0" width="16" height="16" /></a>

<a href="http://www.facebook.com/share.php?u=http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2&amp;t=IE10 and the Future of CSS Layout" target="_blank" title="Share on Facebook"><img src="http://www.boogdesign.com/images/facebook.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://www.spurl.net/spurl.php?title=IE10 and the Future of CSS Layout&amp;url=http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2" target="blank" title="Submit to Spurl"><img src="http://www.boogdesign.com/images/spurl.gif" alt="" border="0" width="16" height="16" /></a>


<a href="http://www.furl.net/storeIt.jsp?u=http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2&amp;t=IE10 and the Future of CSS Layout" target="blank" title="Submit to Furl"><img src="http://www.boogdesign.com/images/furl.gif" alt="" border="0" width="16" height="16" /></a>

<a href="http://myweb2.search.yahoo.com/myresults/bookmarklet?t=IE10 and the Future of CSS Layout&amp;u=http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2" target="blank" title="Yahoo"><img src="http://www.boogdesign.com/images/yahoo.jpg" alt="" border="0" width="16" height="16" /></a>

<a href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2&amp;Title=IE10 and the Future of CSS Layout" target="blank" title="Blinklist"><img src="http://www.boogdesign.com/images/blinklist.gif" alt="" border="0" width="16" height="16" /></a>

<a title="Add To Google" href="http://www.google.com/ig/adde?moduleurl=http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2"><img src="http://www.boogdesign.com/images/google.gif" style="border: 0px none ; width: 16px; height: 16px;" alt="" /></a>

<a rel="nofollow" href="http://twitter.com/home?status=IE10 and the Future of CSS Layout+http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2" title="Tweet this"><img src="http://www.boogdesign.com/images/twitter-icon.png" style="width:16px; height:16px;border:0px;" alt="Tweet this!" /></a>
<!-- ...to here --><div class="item_footer"><p><small><a href="http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://www.boogdesign.com/b2evo/index.php/ie10-future-of-css-layout?blog=2#comments</comments>
			<wfw:commentRss>http://www.boogdesign.com/b2evo/index.php?blog=2&#38;tempskin=_rss2&#38;disp=comments&#38;p=367</wfw:commentRss>
		</item>
				<item>
			<title>Links for April 2011</title>
			<link>http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4</link>
			<pubDate>Wed, 13 Apr 2011 08:35:00 +0000</pubDate>			<dc:creator>pinboard</dc:creator>
			<category domain="main">Pinboard.in</category>			<guid isPermaLink="false">366@http://www.boogdesign.com/b2evo/</guid>
						<description>&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://maqetta.org/&quot; class=&quot;delicious-link&quot;&gt;Maqetta&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;&quot;Maqetta is an open source project that provides WYSIWYG visual authoring of HTML5 user interfaces. The Maqetta application itself is authored in HTML, and therefore runs in the browser without requiring additional plugins or downloads.&quot;&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:HTML5/&quot; rel=&quot;tag&quot;&gt;HTML5&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Design/&quot; rel=&quot;tag&quot;&gt;Design&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Tools/&quot; rel=&quot;tag&quot;&gt;Tools&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://designfestival.com/the-cicada-principle-and-why-it-matters-to-web-designers/&quot; class=&quot;delicious-link&quot;&gt;The Cicada Principle and Why It Matters to Web Designers &amp;#187; HTML &amp;amp; CSS, Layout &amp;#187;&amp;#160;Design Festival&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;Have you been looking for a example which takes advantage of CSS3&#039;s multiple background images that isn&#039;t a re-hashing of the sliding doors technique?  Here it is...&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Web/&quot; rel=&quot;tag&quot;&gt;Web&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Design/&quot; rel=&quot;tag&quot;&gt;Design&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:CSS3/&quot; rel=&quot;tag&quot;&gt;CSS3&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://www.accessibleculture.org/research/html5-aria-2011/&quot; class=&quot;delicious-link&quot;&gt;HTML5, ARIA Roles, and Screen Readers in March 2011 | Research | Accessible Culture&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;With the release of Firefox 4 and IE9, how much has screenreader support for ARIA improved since last year?&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Accessibility/&quot; rel=&quot;tag&quot;&gt;Accessibility&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Reference/&quot; rel=&quot;tag&quot;&gt;Reference&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://snook.ca/archives/accessibility_and_usability/keyboard-accessibility-for-web-apps&quot; class=&quot;delicious-link&quot;&gt;Keyboard Accessibility for Web Applications - Snook.ca&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;JavaScript isn&#039;t always bad for accessibility, it can be really useful in providing a consistent experience for keyboard users.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Accessibility/&quot; rel=&quot;tag&quot;&gt;Accessibility&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:JavaScript/&quot; rel=&quot;tag&quot;&gt;JavaScript&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://www.karlgroves.com/2011/03/27/longdesc-misuse-how-prevalent/&quot; class=&quot;delicious-link&quot;&gt;Longdesc Misuse: How Prevalent? at Karl Groves&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;Is longdesc really universally misused?  New research indicates: no.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Accessibility/&quot; rel=&quot;tag&quot;&gt;Accessibility&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:HTML5/&quot; rel=&quot;tag&quot;&gt;HTML5&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://www.smashingmagazine.com/2011/03/29/designing-for-the-future-web/&quot; class=&quot;delicious-link&quot;&gt;Designing For The Future Web - Smashing Magazine&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;&quot;If a single consistent experience is our goal, this begs the question, should we create a mobile website that scales up or a desktop website that degrades?  The answer is neither. We should try to create a single design that can be used across all devices without alteration. But in practice, at least for the moment, we should start with the simplest website and work up.&quot;&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Web/&quot; rel=&quot;tag&quot;&gt;Web&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Design/&quot; rel=&quot;tag&quot;&gt;Design&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:MobileDevices/&quot; rel=&quot;tag&quot;&gt;MobileDevices&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://www.456bereastreet.com/archive/201103/the_css3_flexible_box_layout_flexbox/&quot; class=&quot;delicious-link&quot;&gt;The CSS3 Flexible Box Layout (flexbox) | 456 Berea Street&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;Centring elements vertically with flexboxes.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:CSS3/&quot; rel=&quot;tag&quot;&gt;CSS3&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Tips/&quot; rel=&quot;tag&quot;&gt;Tips&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://blogs.sitepoint.com/give-floats-the-flick-in-css-layouts/&quot; class=&quot;delicious-link&quot;&gt;Give Floats the Flick in CSS Layouts &amp;#187; Web Tech &amp;#187; SitePoint Blogs&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;Andrew Tetlaw discusses several CSS layout techniques which are far more reliable than floats (if you don&#039;t have to support IE6/7).&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:CSS/&quot; rel=&quot;tag&quot;&gt;CSS&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Tips/&quot; rel=&quot;tag&quot;&gt;Tips&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://tiffanybbrown.com/2011/03/23/html5-does-not-allow-self-closing-tags/&quot; class=&quot;delicious-link&quot;&gt;HTML5 does NOT allow &amp;#8220;self-closing&amp;#8221; tags &amp;#8230; &amp;#8226; Tiffany B. Brown&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;Just because you can use opening tags without closing tags in HTML5 doesn&#039;t mean you should.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:HTML5/&quot; rel=&quot;tag&quot;&gt;HTML5&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Tips/&quot; rel=&quot;tag&quot;&gt;Tips&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://wufoo.com/html5/&quot; class=&quot;delicious-link&quot;&gt;The Current State of HTML5 Forms &amp;#183; Wufoo&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;A comprehensive guide to HTML5 forms support in current browsers, consisting of a nice summary and a collection of detailed pages.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:HTML5/&quot; rel=&quot;tag&quot;&gt;HTML5&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Reference/&quot; rel=&quot;tag&quot;&gt;Reference&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://www.useit.com/alertbox/hated-design.html&quot; class=&quot;delicious-link&quot;&gt;Can Hated Design Elements Be Made to Work? (Jakob Nielsen&#039;s Alertbox)&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;Once a design element becomes universally hated (eg. flashing banner ads, popups) then if you implement a similar looking design element, even if you implement your feature in a usable and intuitive manner, most people will dismiss it immediately based on their past experiences.  There are signs this is starting to happen with lightboxes.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Usability/&quot; rel=&quot;tag&quot;&gt;Usability&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Design/&quot; rel=&quot;tag&quot;&gt;Design&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Tips/&quot; rel=&quot;tag&quot;&gt;Tips&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://labs.adobe.com/technologies/wallaby/&quot; class=&quot;delicious-link&quot;&gt;Wallaby | Adobe Flash FLA to HTML - Adobe Labs&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;Convert Flash animations to HTML5 with this AIR app.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:HTML5/&quot; rel=&quot;tag&quot;&gt;HTML5&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:AdobeFlash/&quot; rel=&quot;tag&quot;&gt;AdobeFlash&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Tools/&quot; rel=&quot;tag&quot;&gt;Tools&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;&lt;!-- Paste from here... --&gt;
&lt;a href=&quot;http://del.icio.us/post&quot; onclick=&quot;window.open(&#039;http://del.icio.us/post?v=4&amp;amp;noui&amp;amp;jump=close&amp;amp;url=&#039;+encodeURIComponent(&#039;http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4&#039;)+&#039;&amp;amp;title=&#039;+encodeURIComponent(&#039;Links for April 2011&#039;),&#039;delicious&#039;, &#039;toolbar=no,width=700,height=400&#039;); return false;&quot; title=&quot;del.icio.us&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/delicious.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://reddit.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4&amp;amp;title=Links for April 2011&quot; target=&quot;blank&quot; title=&quot;Reddit&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/reddit.png&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a title=&quot;Stumble It&quot; target=&quot;_blank&quot; href=&quot;http://www.stumbleupon.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4&amp;amp;title=BAE%20Social%20Bookmarks&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/stumbleupon.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://technorati.com/faves?add=http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4&quot; target=&quot;blank&quot; title=&quot;Technorati&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/technorati.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://digg.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4&amp;amp;title=Links for April 2011&amp;amp;bodytext=&amp;amp;media=news&amp;amp;topic=programming&quot; title=&quot;Digg This&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/digg.png&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.facebook.com/share.php?u=http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4&amp;amp;t=Links for April 2011&quot; target=&quot;_blank&quot; title=&quot;Share on Facebook&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/facebook.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.spurl.net/spurl.php?title=Links for April 2011&amp;amp;url=http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4&quot; target=&quot;blank&quot; title=&quot;Submit to Spurl&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/spurl.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;


&lt;a href=&quot;http://www.furl.net/storeIt.jsp?u=http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4&amp;amp;t=Links for April 2011&quot; target=&quot;blank&quot; title=&quot;Submit to Furl&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/furl.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://myweb2.search.yahoo.com/myresults/bookmarklet?t=Links for April 2011&amp;amp;u=http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4&quot; target=&quot;blank&quot; title=&quot;Yahoo&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/yahoo.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;amp;Url=http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4&amp;amp;Title=Links for April 2011&quot; target=&quot;blank&quot; title=&quot;Blinklist&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/blinklist.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a title=&quot;Add To Google&quot; href=&quot;http://www.google.com/ig/adde?moduleurl=http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/google.gif&quot; style=&quot;border: 0px none ; width: 16px; height: 16px;&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a rel=&quot;nofollow&quot; href=&quot;http://twitter.com/home?status=Links for April 2011+http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4&quot; title=&quot;Tweet this&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/twitter-icon.png&quot; style=&quot;width:16px; height:16px;border:0px;&quot; alt=&quot;Tweet this!&quot; /&gt;&lt;/a&gt;
&lt;!-- ...to here --&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<ul>
<li>
<strong><a href="http://maqetta.org/" class="delicious-link">Maqetta</a></strong> - <span class="delicious-extended">"Maqetta is an open source project that provides WYSIWYG visual authoring of HTML5 user interfaces. The Maqetta application itself is authored in HTML, and therefore runs in the browser without requiring additional plugins or downloads."</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:HTML5/" rel="tag">HTML5</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Design/" rel="tag">Design</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Tools/" rel="tag">Tools</a>;&#160;</span>
</li>
<li>
<strong><a href="http://designfestival.com/the-cicada-principle-and-why-it-matters-to-web-designers/" class="delicious-link">The Cicada Principle and Why It Matters to Web Designers &#187; HTML &amp; CSS, Layout &#187;&#160;Design Festival</a></strong> - <span class="delicious-extended">Have you been looking for a example which takes advantage of CSS3's multiple background images that isn't a re-hashing of the sliding doors technique?  Here it is...</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Web/" rel="tag">Web</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Design/" rel="tag">Design</a>;&#160;<a href="https://pinboard.in/u:robertc/t:CSS3/" rel="tag">CSS3</a>;&#160;</span>
</li>
<li>
<strong><a href="http://www.accessibleculture.org/research/html5-aria-2011/" class="delicious-link">HTML5, ARIA Roles, and Screen Readers in March 2011 | Research | Accessible Culture</a></strong> - <span class="delicious-extended">With the release of Firefox 4 and IE9, how much has screenreader support for ARIA improved since last year?</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Accessibility/" rel="tag">Accessibility</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Reference/" rel="tag">Reference</a>;&#160;</span>
</li>
<li>
<strong><a href="http://snook.ca/archives/accessibility_and_usability/keyboard-accessibility-for-web-apps" class="delicious-link">Keyboard Accessibility for Web Applications - Snook.ca</a></strong> - <span class="delicious-extended">JavaScript isn't always bad for accessibility, it can be really useful in providing a consistent experience for keyboard users.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Accessibility/" rel="tag">Accessibility</a>;&#160;<a href="https://pinboard.in/u:robertc/t:JavaScript/" rel="tag">JavaScript</a>;&#160;</span>
</li>
<li>
<strong><a href="http://www.karlgroves.com/2011/03/27/longdesc-misuse-how-prevalent/" class="delicious-link">Longdesc Misuse: How Prevalent? at Karl Groves</a></strong> - <span class="delicious-extended">Is longdesc really universally misused?  New research indicates: no.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Accessibility/" rel="tag">Accessibility</a>;&#160;<a href="https://pinboard.in/u:robertc/t:HTML5/" rel="tag">HTML5</a>;&#160;</span>
</li>
<li>
<strong><a href="http://www.smashingmagazine.com/2011/03/29/designing-for-the-future-web/" class="delicious-link">Designing For The Future Web - Smashing Magazine</a></strong> - <span class="delicious-extended">"If a single consistent experience is our goal, this begs the question, should we create a mobile website that scales up or a desktop website that degrades?  The answer is neither. We should try to create a single design that can be used across all devices without alteration. But in practice, at least for the moment, we should start with the simplest website and work up."</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Web/" rel="tag">Web</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Design/" rel="tag">Design</a>;&#160;<a href="https://pinboard.in/u:robertc/t:MobileDevices/" rel="tag">MobileDevices</a>;&#160;</span>
</li>
<li>
<strong><a href="http://www.456bereastreet.com/archive/201103/the_css3_flexible_box_layout_flexbox/" class="delicious-link">The CSS3 Flexible Box Layout (flexbox) | 456 Berea Street</a></strong> - <span class="delicious-extended">Centring elements vertically with flexboxes.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:CSS3/" rel="tag">CSS3</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Tips/" rel="tag">Tips</a>;&#160;</span>
</li>
<li>
<strong><a href="http://blogs.sitepoint.com/give-floats-the-flick-in-css-layouts/" class="delicious-link">Give Floats the Flick in CSS Layouts &#187; Web Tech &#187; SitePoint Blogs</a></strong> - <span class="delicious-extended">Andrew Tetlaw discusses several CSS layout techniques which are far more reliable than floats (if you don't have to support IE6/7).</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:CSS/" rel="tag">CSS</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Tips/" rel="tag">Tips</a>;&#160;</span>
</li>
<li>
<strong><a href="http://tiffanybbrown.com/2011/03/23/html5-does-not-allow-self-closing-tags/" class="delicious-link">HTML5 does NOT allow &#8220;self-closing&#8221; tags &#8230; &#8226; Tiffany B. Brown</a></strong> - <span class="delicious-extended">Just because you can use opening tags without closing tags in HTML5 doesn't mean you should.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:HTML5/" rel="tag">HTML5</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Tips/" rel="tag">Tips</a>;&#160;</span>
</li>
<li>
<strong><a href="http://wufoo.com/html5/" class="delicious-link">The Current State of HTML5 Forms &#183; Wufoo</a></strong> - <span class="delicious-extended">A comprehensive guide to HTML5 forms support in current browsers, consisting of a nice summary and a collection of detailed pages.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:HTML5/" rel="tag">HTML5</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Reference/" rel="tag">Reference</a>;&#160;</span>
</li>
<li>
<strong><a href="http://www.useit.com/alertbox/hated-design.html" class="delicious-link">Can Hated Design Elements Be Made to Work? (Jakob Nielsen's Alertbox)</a></strong> - <span class="delicious-extended">Once a design element becomes universally hated (eg. flashing banner ads, popups) then if you implement a similar looking design element, even if you implement your feature in a usable and intuitive manner, most people will dismiss it immediately based on their past experiences.  There are signs this is starting to happen with lightboxes.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Usability/" rel="tag">Usability</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Design/" rel="tag">Design</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Tips/" rel="tag">Tips</a>;&#160;</span>
</li>
<li>
<strong><a href="http://labs.adobe.com/technologies/wallaby/" class="delicious-link">Wallaby | Adobe Flash FLA to HTML - Adobe Labs</a></strong> - <span class="delicious-extended">Convert Flash animations to HTML5 with this AIR app.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:HTML5/" rel="tag">HTML5</a>;&#160;<a href="https://pinboard.in/u:robertc/t:AdobeFlash/" rel="tag">AdobeFlash</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Tools/" rel="tag">Tools</a>;&#160;</span>
</li>
</ul><br /><!-- Paste from here... -->
<a href="http://del.icio.us/post" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url='+encodeURIComponent('http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4')+'&amp;title='+encodeURIComponent('Links for April 2011'),'delicious', 'toolbar=no,width=700,height=400'); return false;" title="del.icio.us"><img src="http://www.boogdesign.com/images/delicious.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://reddit.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4&amp;title=Links for April 2011" target="blank" title="Reddit"><img src="http://www.boogdesign.com/images/reddit.png" alt="" border="0" width="16" height="16" /></a>

<a title="Stumble It" target="_blank" href="http://www.stumbleupon.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4&amp;title=BAE%20Social%20Bookmarks"><img src="http://www.boogdesign.com/images/stumbleupon.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://technorati.com/faves?add=http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4" target="blank" title="Technorati"><img src="http://www.boogdesign.com/images/technorati.jpg" alt="" border="0" width="16" height="16" /></a>

<a href="http://digg.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4&amp;title=Links for April 2011&amp;bodytext=&amp;media=news&amp;topic=programming" title="Digg This"><img src="http://www.boogdesign.com/images/digg.png" alt="" border="0" width="16" height="16" /></a>

<a href="http://www.facebook.com/share.php?u=http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4&amp;t=Links for April 2011" target="_blank" title="Share on Facebook"><img src="http://www.boogdesign.com/images/facebook.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://www.spurl.net/spurl.php?title=Links for April 2011&amp;url=http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4" target="blank" title="Submit to Spurl"><img src="http://www.boogdesign.com/images/spurl.gif" alt="" border="0" width="16" height="16" /></a>


<a href="http://www.furl.net/storeIt.jsp?u=http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4&amp;t=Links for April 2011" target="blank" title="Submit to Furl"><img src="http://www.boogdesign.com/images/furl.gif" alt="" border="0" width="16" height="16" /></a>

<a href="http://myweb2.search.yahoo.com/myresults/bookmarklet?t=Links for April 2011&amp;u=http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4" target="blank" title="Yahoo"><img src="http://www.boogdesign.com/images/yahoo.jpg" alt="" border="0" width="16" height="16" /></a>

<a href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4&amp;Title=Links for April 2011" target="blank" title="Blinklist"><img src="http://www.boogdesign.com/images/blinklist.gif" alt="" border="0" width="16" height="16" /></a>

<a title="Add To Google" href="http://www.google.com/ig/adde?moduleurl=http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4"><img src="http://www.boogdesign.com/images/google.gif" style="border: 0px none ; width: 16px; height: 16px;" alt="" /></a>

<a rel="nofollow" href="http://twitter.com/home?status=Links for April 2011+http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4" title="Tweet this"><img src="http://www.boogdesign.com/images/twitter-icon.png" style="width:16px; height:16px;border:0px;" alt="Tweet this!" /></a>
<!-- ...to here --><div class="item_footer"><p><small><a href="http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://www.boogdesign.com/b2evo/index.php/links-for-april-2011?blog=4#comments</comments>
			<wfw:commentRss>http://www.boogdesign.com/b2evo/index.php?blog=4&#38;tempskin=_rss2&#38;disp=comments&#38;p=366</wfw:commentRss>
		</item>
				<item>
			<title>Links for March 2011</title>
			<link>http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4</link>
			<pubDate>Mon, 07 Mar 2011 02:15:00 +0000</pubDate>			<dc:creator>pinboard</dc:creator>
			<category domain="main">Pinboard.in</category>			<guid isPermaLink="false">365@http://www.boogdesign.com/b2evo/</guid>
						<description>&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://dbaron.org/log/20110225-blur-radius&quot; class=&quot;delicious-link&quot;&gt;David Baron&#039;s weblog: What does a blur radius mean?&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;You may have been hearing for several years that all browsers support box-shadow and we should just drop the vendor prefixes already.  If you&#039;ve been wondering why they haven&#039;t, this post indicates the level of interoperability the browser vendors have been aiming for.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:CSS3/&quot; rel=&quot;tag&quot;&gt;CSS3&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Web/&quot; rel=&quot;tag&quot;&gt;Web&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Standards/&quot; rel=&quot;tag&quot;&gt;Standards&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://labs.opera.com/news/2011/02/22/&quot; class=&quot;delicious-link&quot;&gt;Rangnar&amp;#246;k - HTML 5 compliance: the next step&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;Try out Opera&#039;s new HTML5 parser in an 11.50 alpha build, consistent cross browser parsing for bad markup.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Web/&quot; rel=&quot;tag&quot;&gt;Web&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Standards/&quot; rel=&quot;tag&quot;&gt;Standards&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Opera/&quot; rel=&quot;tag&quot;&gt;Opera&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://tink.co.uk/2011/02/london-web-standards-presentation/&quot; class=&quot;delicious-link&quot;&gt;The Tink Tank &amp;#187; London Web Standards presentation&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;Although nominally about the current lack of screen reader support for HTML5 semantic improvements, this talk also includes an excellent introduction to screen readers in general.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Accessibility/&quot; rel=&quot;tag&quot;&gt;Accessibility&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Presentation/&quot; rel=&quot;tag&quot;&gt;Presentation&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://www.alistapart.com/articles/cross-platform-scalable-vector-graphics-with-svgweb/&quot; class=&quot;delicious-link&quot;&gt;Cross Platform Scalable Vector Graphics with svgweb&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;&quot;Despite all the attention being paid to canvas, there&amp;#8217;s still a place for good ole SVG, particularly for developers looking to replace plug-ins like Flash for data visualization.&quot;&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:SVG/&quot; rel=&quot;tag&quot;&gt;SVG&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Tutorial/&quot; rel=&quot;tag&quot;&gt;Tutorial&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs/&quot; class=&quot;delicious-link&quot;&gt;isolani - Javascript: Breaking the Web with hash-bangs&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;Should websites work without JavaScript?  Twitter and Gawker apparently believe that they shouldn&#039;t.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:JavaScript/&quot; rel=&quot;tag&quot;&gt;JavaScript&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Web/&quot; rel=&quot;tag&quot;&gt;Web&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Standards/&quot; rel=&quot;tag&quot;&gt;Standards&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://draggables.com/&quot; class=&quot;delicious-link&quot;&gt;Draggables&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;Using Microformats and HTML5 drag and drop to build a new, user friendly model for data exchange between websites.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:Microformats/&quot; rel=&quot;tag&quot;&gt;Microformats&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:SemanticWeb/&quot; rel=&quot;tag&quot;&gt;SemanticWeb&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Tools/&quot; rel=&quot;tag&quot;&gt;Tools&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:HTML5/&quot; rel=&quot;tag&quot;&gt;HTML5&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;&lt;!-- Paste from here... --&gt;
&lt;a href=&quot;http://del.icio.us/post&quot; onclick=&quot;window.open(&#039;http://del.icio.us/post?v=4&amp;amp;noui&amp;amp;jump=close&amp;amp;url=&#039;+encodeURIComponent(&#039;http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4&#039;)+&#039;&amp;amp;title=&#039;+encodeURIComponent(&#039;Links for March 2011&#039;),&#039;delicious&#039;, &#039;toolbar=no,width=700,height=400&#039;); return false;&quot; title=&quot;del.icio.us&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/delicious.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://reddit.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4&amp;amp;title=Links for March 2011&quot; target=&quot;blank&quot; title=&quot;Reddit&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/reddit.png&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a title=&quot;Stumble It&quot; target=&quot;_blank&quot; href=&quot;http://www.stumbleupon.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4&amp;amp;title=BAE%20Social%20Bookmarks&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/stumbleupon.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://technorati.com/faves?add=http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4&quot; target=&quot;blank&quot; title=&quot;Technorati&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/technorati.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://digg.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4&amp;amp;title=Links for March 2011&amp;amp;bodytext=&amp;amp;media=news&amp;amp;topic=programming&quot; title=&quot;Digg This&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/digg.png&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.facebook.com/share.php?u=http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4&amp;amp;t=Links for March 2011&quot; target=&quot;_blank&quot; title=&quot;Share on Facebook&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/facebook.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.spurl.net/spurl.php?title=Links for March 2011&amp;amp;url=http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4&quot; target=&quot;blank&quot; title=&quot;Submit to Spurl&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/spurl.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;


&lt;a href=&quot;http://www.furl.net/storeIt.jsp?u=http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4&amp;amp;t=Links for March 2011&quot; target=&quot;blank&quot; title=&quot;Submit to Furl&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/furl.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://myweb2.search.yahoo.com/myresults/bookmarklet?t=Links for March 2011&amp;amp;u=http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4&quot; target=&quot;blank&quot; title=&quot;Yahoo&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/yahoo.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;amp;Url=http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4&amp;amp;Title=Links for March 2011&quot; target=&quot;blank&quot; title=&quot;Blinklist&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/blinklist.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a title=&quot;Add To Google&quot; href=&quot;http://www.google.com/ig/adde?moduleurl=http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/google.gif&quot; style=&quot;border: 0px none ; width: 16px; height: 16px;&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a rel=&quot;nofollow&quot; href=&quot;http://twitter.com/home?status=Links for March 2011+http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4&quot; title=&quot;Tweet this&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/twitter-icon.png&quot; style=&quot;width:16px; height:16px;border:0px;&quot; alt=&quot;Tweet this!&quot; /&gt;&lt;/a&gt;
&lt;!-- ...to here --&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<ul>
<li>
<strong><a href="http://dbaron.org/log/20110225-blur-radius" class="delicious-link">David Baron's weblog: What does a blur radius mean?</a></strong> - <span class="delicious-extended">You may have been hearing for several years that all browsers support box-shadow and we should just drop the vendor prefixes already.  If you've been wondering why they haven't, this post indicates the level of interoperability the browser vendors have been aiming for.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:CSS3/" rel="tag">CSS3</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Web/" rel="tag">Web</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Standards/" rel="tag">Standards</a>;&#160;</span>
</li>
<li>
<strong><a href="http://labs.opera.com/news/2011/02/22/" class="delicious-link">Rangnar&#246;k - HTML 5 compliance: the next step</a></strong> - <span class="delicious-extended">Try out Opera's new HTML5 parser in an 11.50 alpha build, consistent cross browser parsing for bad markup.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Web/" rel="tag">Web</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Standards/" rel="tag">Standards</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Opera/" rel="tag">Opera</a>;&#160;</span>
</li>
<li>
<strong><a href="http://tink.co.uk/2011/02/london-web-standards-presentation/" class="delicious-link">The Tink Tank &#187; London Web Standards presentation</a></strong> - <span class="delicious-extended">Although nominally about the current lack of screen reader support for HTML5 semantic improvements, this talk also includes an excellent introduction to screen readers in general.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Accessibility/" rel="tag">Accessibility</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Presentation/" rel="tag">Presentation</a>;&#160;</span>
</li>
<li>
<strong><a href="http://www.alistapart.com/articles/cross-platform-scalable-vector-graphics-with-svgweb/" class="delicious-link">Cross Platform Scalable Vector Graphics with svgweb</a></strong> - <span class="delicious-extended">"Despite all the attention being paid to canvas, there&#8217;s still a place for good ole SVG, particularly for developers looking to replace plug-ins like Flash for data visualization."</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:SVG/" rel="tag">SVG</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Tutorial/" rel="tag">Tutorial</a>;&#160;</span>
</li>
<li>
<strong><a href="http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs/" class="delicious-link">isolani - Javascript: Breaking the Web with hash-bangs</a></strong> - <span class="delicious-extended">Should websites work without JavaScript?  Twitter and Gawker apparently believe that they shouldn't.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:JavaScript/" rel="tag">JavaScript</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Web/" rel="tag">Web</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Standards/" rel="tag">Standards</a>;&#160;</span>
</li>
<li>
<strong><a href="http://draggables.com/" class="delicious-link">Draggables</a></strong> - <span class="delicious-extended">Using Microformats and HTML5 drag and drop to build a new, user friendly model for data exchange between websites.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:Microformats/" rel="tag">Microformats</a>;&#160;<a href="https://pinboard.in/u:robertc/t:SemanticWeb/" rel="tag">SemanticWeb</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Tools/" rel="tag">Tools</a>;&#160;<a href="https://pinboard.in/u:robertc/t:HTML5/" rel="tag">HTML5</a>;&#160;</span>
</li>
</ul><br /><!-- Paste from here... -->
<a href="http://del.icio.us/post" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url='+encodeURIComponent('http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4')+'&amp;title='+encodeURIComponent('Links for March 2011'),'delicious', 'toolbar=no,width=700,height=400'); return false;" title="del.icio.us"><img src="http://www.boogdesign.com/images/delicious.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://reddit.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4&amp;title=Links for March 2011" target="blank" title="Reddit"><img src="http://www.boogdesign.com/images/reddit.png" alt="" border="0" width="16" height="16" /></a>

<a title="Stumble It" target="_blank" href="http://www.stumbleupon.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4&amp;title=BAE%20Social%20Bookmarks"><img src="http://www.boogdesign.com/images/stumbleupon.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://technorati.com/faves?add=http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4" target="blank" title="Technorati"><img src="http://www.boogdesign.com/images/technorati.jpg" alt="" border="0" width="16" height="16" /></a>

<a href="http://digg.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4&amp;title=Links for March 2011&amp;bodytext=&amp;media=news&amp;topic=programming" title="Digg This"><img src="http://www.boogdesign.com/images/digg.png" alt="" border="0" width="16" height="16" /></a>

<a href="http://www.facebook.com/share.php?u=http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4&amp;t=Links for March 2011" target="_blank" title="Share on Facebook"><img src="http://www.boogdesign.com/images/facebook.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://www.spurl.net/spurl.php?title=Links for March 2011&amp;url=http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4" target="blank" title="Submit to Spurl"><img src="http://www.boogdesign.com/images/spurl.gif" alt="" border="0" width="16" height="16" /></a>


<a href="http://www.furl.net/storeIt.jsp?u=http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4&amp;t=Links for March 2011" target="blank" title="Submit to Furl"><img src="http://www.boogdesign.com/images/furl.gif" alt="" border="0" width="16" height="16" /></a>

<a href="http://myweb2.search.yahoo.com/myresults/bookmarklet?t=Links for March 2011&amp;u=http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4" target="blank" title="Yahoo"><img src="http://www.boogdesign.com/images/yahoo.jpg" alt="" border="0" width="16" height="16" /></a>

<a href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4&amp;Title=Links for March 2011" target="blank" title="Blinklist"><img src="http://www.boogdesign.com/images/blinklist.gif" alt="" border="0" width="16" height="16" /></a>

<a title="Add To Google" href="http://www.google.com/ig/adde?moduleurl=http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4"><img src="http://www.boogdesign.com/images/google.gif" style="border: 0px none ; width: 16px; height: 16px;" alt="" /></a>

<a rel="nofollow" href="http://twitter.com/home?status=Links for March 2011+http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4" title="Tweet this"><img src="http://www.boogdesign.com/images/twitter-icon.png" style="width:16px; height:16px;border:0px;" alt="Tweet this!" /></a>
<!-- ...to here --><div class="item_footer"><p><small><a href="http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://www.boogdesign.com/b2evo/index.php/links-for-march-2011?blog=4#comments</comments>
			<wfw:commentRss>http://www.boogdesign.com/b2evo/index.php?blog=4&#38;tempskin=_rss2&#38;disp=comments&#38;p=365</wfw:commentRss>
		</item>
				<item>
			<title>Links for February 2011</title>
			<link>http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4</link>
			<pubDate>Sun, 06 Feb 2011 02:35:00 +0000</pubDate>			<dc:creator>pinboard</dc:creator>
			<category domain="main">Pinboard.in</category>			<guid isPermaLink="false">364@http://www.boogdesign.com/b2evo/</guid>
						<description>&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://blog.jquery.com/2011/01/31/jquery-15-released/&quot; class=&quot;delicious-link&quot;&gt;jQuery: &amp;#187; jQuery 1.5 Released&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;JQuery 1.5 boasts significant performance improvements and an all new wrapper for AJAX requests.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:jQuery/&quot; rel=&quot;tag&quot;&gt;jQuery&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:News/&quot; rel=&quot;tag&quot;&gt;News&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://www.bl.uk/bibliographic/datasamples.html&quot; class=&quot;delicious-link&quot;&gt;Bibliographic Data Licensing Sample Files&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;Sample RDF data from the British Library.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:SemanticWeb/&quot; rel=&quot;tag&quot;&gt;SemanticWeb&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Database/&quot; rel=&quot;tag&quot;&gt;Database&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://juliamap.googlelabs.com/&quot; class=&quot;delicious-link&quot;&gt;Julia Map&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;A nice Mandelbrot/Julia renderer in a Google Maps style interface where canvas elements are used as the map tiles.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:HTML5/&quot; rel=&quot;tag&quot;&gt;HTML5&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Mathematics/&quot; rel=&quot;tag&quot;&gt;Mathematics&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Example/&quot; rel=&quot;tag&quot;&gt;Example&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://www.zeldman.com/2011/01/27/html5-vs-html/&quot; class=&quot;delicious-link&quot;&gt;HTML5 vs. HTML &amp;#8211; Jeffrey Zeldman Presents The Daily Report&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;Is it HTML5?  Is it HTML?  Does it matter?  Zeldman weighs in on the debate.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Web/&quot; rel=&quot;tag&quot;&gt;Web&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Standards/&quot; rel=&quot;tag&quot;&gt;Standards&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:HTML5/&quot; rel=&quot;tag&quot;&gt;HTML5&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://glazkov.com/2011/01/14/what-the-heck-is-shadow-dom/&quot; class=&quot;delicious-link&quot;&gt;What the Heck is Shadow DOM? &amp;#171; Dimitri Glazkov&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;If you&#039;re building a library of rich UI widgets out of HTML components you might want to encapsulate all that complexity so that users of your widgets only have to deal with a single element, this is called shadow DOM and the public-webapps group is currently discussing how to make this available to scripts.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:JavaScript/&quot; rel=&quot;tag&quot;&gt;JavaScript&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:RIA/&quot; rel=&quot;tag&quot;&gt;RIA&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://www.iecss.com/&quot; class=&quot;delicious-link&quot;&gt;Internet Explorer UA Style Sheets&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;Details of the default styles for different versions of IE.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:CSS/&quot; rel=&quot;tag&quot;&gt;CSS&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Reference/&quot; rel=&quot;tag&quot;&gt;Reference&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:IE6/&quot; rel=&quot;tag&quot;&gt;IE6&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:IE7/&quot; rel=&quot;tag&quot;&gt;IE7&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:IE8/&quot; rel=&quot;tag&quot;&gt;IE8&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:IE9/&quot; rel=&quot;tag&quot;&gt;IE9&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://adactio.com/journal/4272/&quot; class=&quot;delicious-link&quot;&gt;Adactio: Journal&amp;#8212;The design of datalist&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;How to use datalist in browsers that support it, but fallback to a regular select in older browsers.&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:BlogPost/&quot; rel=&quot;tag&quot;&gt;BlogPost&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:HTML5/&quot; rel=&quot;tag&quot;&gt;HTML5&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Tips/&quot; rel=&quot;tag&quot;&gt;Tips&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href=&quot;http://csunplugged.org/&quot; class=&quot;delicious-link&quot;&gt;Computer Science Unplugged |&lt;/a&gt;&lt;/strong&gt; - &lt;span class=&quot;delicious-extended&quot;&gt;&quot;CS Unplugged is a collection of free learning activities that teach Computer Science through engaging games and puzzles that use cards, string, crayons and lots of running around.&quot;&lt;/span&gt;&lt;span class=&quot;delicious-tags&quot;&gt;&lt;em&gt;Tags&lt;/em&gt;: &lt;a href=&quot;https://pinboard.in/u:robertc/t:Computing/&quot; rel=&quot;tag&quot;&gt;Computing&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Learning/&quot; rel=&quot;tag&quot;&gt;Learning&lt;/a&gt;;&amp;#160;&lt;a href=&quot;https://pinboard.in/u:robertc/t:Tools/&quot; rel=&quot;tag&quot;&gt;Tools&lt;/a&gt;;&amp;#160;&lt;/span&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;&lt;!-- Paste from here... --&gt;
&lt;a href=&quot;http://del.icio.us/post&quot; onclick=&quot;window.open(&#039;http://del.icio.us/post?v=4&amp;amp;noui&amp;amp;jump=close&amp;amp;url=&#039;+encodeURIComponent(&#039;http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4&#039;)+&#039;&amp;amp;title=&#039;+encodeURIComponent(&#039;Links for February 2011&#039;),&#039;delicious&#039;, &#039;toolbar=no,width=700,height=400&#039;); return false;&quot; title=&quot;del.icio.us&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/delicious.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://reddit.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4&amp;amp;title=Links for February 2011&quot; target=&quot;blank&quot; title=&quot;Reddit&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/reddit.png&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a title=&quot;Stumble It&quot; target=&quot;_blank&quot; href=&quot;http://www.stumbleupon.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4&amp;amp;title=BAE%20Social%20Bookmarks&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/stumbleupon.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://technorati.com/faves?add=http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4&quot; target=&quot;blank&quot; title=&quot;Technorati&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/technorati.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://digg.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4&amp;amp;title=Links for February 2011&amp;amp;bodytext=&amp;amp;media=news&amp;amp;topic=programming&quot; title=&quot;Digg This&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/digg.png&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.facebook.com/share.php?u=http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4&amp;amp;t=Links for February 2011&quot; target=&quot;_blank&quot; title=&quot;Share on Facebook&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/facebook.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.spurl.net/spurl.php?title=Links for February 2011&amp;amp;url=http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4&quot; target=&quot;blank&quot; title=&quot;Submit to Spurl&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/spurl.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;


&lt;a href=&quot;http://www.furl.net/storeIt.jsp?u=http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4&amp;amp;t=Links for February 2011&quot; target=&quot;blank&quot; title=&quot;Submit to Furl&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/furl.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://myweb2.search.yahoo.com/myresults/bookmarklet?t=Links for February 2011&amp;amp;u=http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4&quot; target=&quot;blank&quot; title=&quot;Yahoo&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/yahoo.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;amp;Url=http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4&amp;amp;Title=Links for February 2011&quot; target=&quot;blank&quot; title=&quot;Blinklist&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/blinklist.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a title=&quot;Add To Google&quot; href=&quot;http://www.google.com/ig/adde?moduleurl=http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/google.gif&quot; style=&quot;border: 0px none ; width: 16px; height: 16px;&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a rel=&quot;nofollow&quot; href=&quot;http://twitter.com/home?status=Links for February 2011+http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4&quot; title=&quot;Tweet this&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/twitter-icon.png&quot; style=&quot;width:16px; height:16px;border:0px;&quot; alt=&quot;Tweet this!&quot; /&gt;&lt;/a&gt;
&lt;!-- ...to here --&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<ul>
<li>
<strong><a href="http://blog.jquery.com/2011/01/31/jquery-15-released/" class="delicious-link">jQuery: &#187; jQuery 1.5 Released</a></strong> - <span class="delicious-extended">JQuery 1.5 boasts significant performance improvements and an all new wrapper for AJAX requests.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:jQuery/" rel="tag">jQuery</a>;&#160;<a href="https://pinboard.in/u:robertc/t:News/" rel="tag">News</a>;&#160;</span>
</li>
<li>
<strong><a href="http://www.bl.uk/bibliographic/datasamples.html" class="delicious-link">Bibliographic Data Licensing Sample Files</a></strong> - <span class="delicious-extended">Sample RDF data from the British Library.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:SemanticWeb/" rel="tag">SemanticWeb</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Database/" rel="tag">Database</a>;&#160;</span>
</li>
<li>
<strong><a href="http://juliamap.googlelabs.com/" class="delicious-link">Julia Map</a></strong> - <span class="delicious-extended">A nice Mandelbrot/Julia renderer in a Google Maps style interface where canvas elements are used as the map tiles.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:HTML5/" rel="tag">HTML5</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Mathematics/" rel="tag">Mathematics</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Example/" rel="tag">Example</a>;&#160;</span>
</li>
<li>
<strong><a href="http://www.zeldman.com/2011/01/27/html5-vs-html/" class="delicious-link">HTML5 vs. HTML &#8211; Jeffrey Zeldman Presents The Daily Report</a></strong> - <span class="delicious-extended">Is it HTML5?  Is it HTML?  Does it matter?  Zeldman weighs in on the debate.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Web/" rel="tag">Web</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Standards/" rel="tag">Standards</a>;&#160;<a href="https://pinboard.in/u:robertc/t:HTML5/" rel="tag">HTML5</a>;&#160;</span>
</li>
<li>
<strong><a href="http://glazkov.com/2011/01/14/what-the-heck-is-shadow-dom/" class="delicious-link">What the Heck is Shadow DOM? &#171; Dimitri Glazkov</a></strong> - <span class="delicious-extended">If you're building a library of rich UI widgets out of HTML components you might want to encapsulate all that complexity so that users of your widgets only have to deal with a single element, this is called shadow DOM and the public-webapps group is currently discussing how to make this available to scripts.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:JavaScript/" rel="tag">JavaScript</a>;&#160;<a href="https://pinboard.in/u:robertc/t:RIA/" rel="tag">RIA</a>;&#160;</span>
</li>
<li>
<strong><a href="http://www.iecss.com/" class="delicious-link">Internet Explorer UA Style Sheets</a></strong> - <span class="delicious-extended">Details of the default styles for different versions of IE.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:CSS/" rel="tag">CSS</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Reference/" rel="tag">Reference</a>;&#160;<a href="https://pinboard.in/u:robertc/t:IE6/" rel="tag">IE6</a>;&#160;<a href="https://pinboard.in/u:robertc/t:IE7/" rel="tag">IE7</a>;&#160;<a href="https://pinboard.in/u:robertc/t:IE8/" rel="tag">IE8</a>;&#160;<a href="https://pinboard.in/u:robertc/t:IE9/" rel="tag">IE9</a>;&#160;</span>
</li>
<li>
<strong><a href="http://adactio.com/journal/4272/" class="delicious-link">Adactio: Journal&#8212;The design of datalist</a></strong> - <span class="delicious-extended">How to use datalist in browsers that support it, but fallback to a regular select in older browsers.</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:BlogPost/" rel="tag">BlogPost</a>;&#160;<a href="https://pinboard.in/u:robertc/t:HTML5/" rel="tag">HTML5</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Tips/" rel="tag">Tips</a>;&#160;</span>
</li>
<li>
<strong><a href="http://csunplugged.org/" class="delicious-link">Computer Science Unplugged |</a></strong> - <span class="delicious-extended">"CS Unplugged is a collection of free learning activities that teach Computer Science through engaging games and puzzles that use cards, string, crayons and lots of running around."</span><span class="delicious-tags"><em>Tags</em>: <a href="https://pinboard.in/u:robertc/t:Computing/" rel="tag">Computing</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Learning/" rel="tag">Learning</a>;&#160;<a href="https://pinboard.in/u:robertc/t:Tools/" rel="tag">Tools</a>;&#160;</span>
</li>
</ul><br /><!-- Paste from here... -->
<a href="http://del.icio.us/post" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url='+encodeURIComponent('http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4')+'&amp;title='+encodeURIComponent('Links for February 2011'),'delicious', 'toolbar=no,width=700,height=400'); return false;" title="del.icio.us"><img src="http://www.boogdesign.com/images/delicious.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://reddit.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4&amp;title=Links for February 2011" target="blank" title="Reddit"><img src="http://www.boogdesign.com/images/reddit.png" alt="" border="0" width="16" height="16" /></a>

<a title="Stumble It" target="_blank" href="http://www.stumbleupon.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4&amp;title=BAE%20Social%20Bookmarks"><img src="http://www.boogdesign.com/images/stumbleupon.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://technorati.com/faves?add=http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4" target="blank" title="Technorati"><img src="http://www.boogdesign.com/images/technorati.jpg" alt="" border="0" width="16" height="16" /></a>

<a href="http://digg.com/submit?url=http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4&amp;title=Links for February 2011&amp;bodytext=&amp;media=news&amp;topic=programming" title="Digg This"><img src="http://www.boogdesign.com/images/digg.png" alt="" border="0" width="16" height="16" /></a>

<a href="http://www.facebook.com/share.php?u=http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4&amp;t=Links for February 2011" target="_blank" title="Share on Facebook"><img src="http://www.boogdesign.com/images/facebook.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://www.spurl.net/spurl.php?title=Links for February 2011&amp;url=http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4" target="blank" title="Submit to Spurl"><img src="http://www.boogdesign.com/images/spurl.gif" alt="" border="0" width="16" height="16" /></a>


<a href="http://www.furl.net/storeIt.jsp?u=http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4&amp;t=Links for February 2011" target="blank" title="Submit to Furl"><img src="http://www.boogdesign.com/images/furl.gif" alt="" border="0" width="16" height="16" /></a>

<a href="http://myweb2.search.yahoo.com/myresults/bookmarklet?t=Links for February 2011&amp;u=http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4" target="blank" title="Yahoo"><img src="http://www.boogdesign.com/images/yahoo.jpg" alt="" border="0" width="16" height="16" /></a>

<a href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4&amp;Title=Links for February 2011" target="blank" title="Blinklist"><img src="http://www.boogdesign.com/images/blinklist.gif" alt="" border="0" width="16" height="16" /></a>

<a title="Add To Google" href="http://www.google.com/ig/adde?moduleurl=http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4"><img src="http://www.boogdesign.com/images/google.gif" style="border: 0px none ; width: 16px; height: 16px;" alt="" /></a>

<a rel="nofollow" href="http://twitter.com/home?status=Links for February 2011+http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4" title="Tweet this"><img src="http://www.boogdesign.com/images/twitter-icon.png" style="width:16px; height:16px;border:0px;" alt="Tweet this!" /></a>
<!-- ...to here --><div class="item_footer"><p><small><a href="http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://www.boogdesign.com/b2evo/index.php/links-for-february-2011?blog=4#comments</comments>
			<wfw:commentRss>http://www.boogdesign.com/b2evo/index.php?blog=4&#38;tempskin=_rss2&#38;disp=comments&#38;p=364</wfw:commentRss>
		</item>
				<item>
			<title>Client Side Server Side Includes</title>
			<link>http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2</link>
			<pubDate>Mon, 31 Jan 2011 01:32:00 +0000</pubDate>			<dc:creator>robertc</dc:creator>
			<category domain="alt">Front End Web Development</category>
<category domain="main">Blogging and Internet Culture</category>			<guid isPermaLink="false">362@http://www.boogdesign.com/b2evo/</guid>
						<description>&lt;p&gt;I spent some time over Xmas reflecting on my past web adventures.  My first ever website, a guide to local drinking establishments, was hosted on a cast-off server at Edinburgh University in late 1993, and the particular server and site are now long gone (although the &lt;a href=&quot;http://www.tardis.ed.ac.uk/wiki/Main_Page&quot;&gt;server has been replaced&lt;/a&gt;).  Similarly, my original mid-nineties home page, replete with animated GIFs and ripped off Homer Simpson images has also be consigned to the recycle bin of web history (thankfully).  However, the first website I worked on &#039;professionally&#039; is still online: &lt;a href=&quot;http://www.iwant2bhealthy.com/&quot;&gt;iwant2bhealthy.com&lt;/a&gt; is a thousand page static HTML monolith which we maintained with Dreamweaver 3.&lt;/p&gt;

&lt;p&gt;The site did take advantage of some server processing, it used &lt;a href=&quot;http://en.wikipedia.org/wiki/Server_Side_Includes&quot;&gt;Server Side Includes&lt;/a&gt; (SSI) to embed particular common items such as the main navigation and footer.  SSI isn&#039;t so common these days when nearly every cheap host offers some sort of server side scripting language, so often it isn&#039;t turned on my default.  The result is that the iwant2bhealthy.com website is missing its main navigation and footer on most pages, all that&#039;s left is some markup like this:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;!--#include virtual=&quot;/Library/mainmenu.shtml&quot; --&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;Or this:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;!--#include virtual=&quot;/Library/footer.shtml&quot; --&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;I had a hankering to experience the website in all its turn of the century glory and it seemed to me that I ought to be able write a bookmarklet to grab jQuery, grab the comments, fetch the includes with AJAX and insert them in place of the comments.&lt;/p&gt;

&lt;p&gt;It turns out that the first tricky thing is grabbing the comment elements.  The jQuery selection engine purposely ignores comments so none of those handy little methods are much use.  There&#039;s not much option but to loop through the document and select based on &lt;a href=&quot;https://developer.mozilla.org/en/nodeType&quot;&gt;&lt;code&gt;nodeType&lt;/code&gt;&lt;/a&gt; (8 for a comment element), fortunately &lt;a href=&quot;http://james.padolsey.com/javascript/introducing-jshtml/&quot;&gt;someone on the web had already done most of the hard work&lt;/a&gt; so I was able to adapt &lt;a href=&quot;http://james.padolsey.com/demos/JSHTML/jshtml.js&quot;&gt;his code&lt;/a&gt;:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;parseSSI : function(el) {
    var nodes = el.childNodes;
    var l = nodes.length;
    while (l--) {
        current = nodes[l];
        if (current.nodeType == 8) {
            //do stuff here
        } else if (current.nodeType != 3 &amp;amp;&amp;amp; current.childElementCount &amp;gt; 0) {
            this.parseSSI(current);
        }
    }
}&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;The function loops through all the child nodes of a supplied element and, if they&#039;re a comment, does some processing.  If the node isn&#039;t a comment we check that it&#039;s also not a text node and then call the function recursively if there are any child nodes.&lt;/p&gt;

&lt;p&gt;Of course it&#039;s entirely possible that there are comments in the web page that have nothing to do with server side includes, so some sort of check is probably in order.  Following James&#039; example I used a regular expression:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;re : /#include virtual=\&quot;(.*)\&quot;/i&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;My next step was to convert those comment elements into something that could be more easily manipulated by jQuery, so I decided to convert them to links:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;var match = this.re.exec(current.data);
if (match != null) {
    var a = document.createElement(&#039;a&#039;);
    a.href = match[1];
    current.parentNode.replaceChild(a, current);&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;Now we&#039;re back in the nice, succinct land of jQuery - fetch the URL with Ajax and replace the relevant link element in the callback:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;$.ajax({ url: match[1],
         success: function(data, textStatus, XMLHttpRequest){
            $(&#039;[href=&#039; + this.url + &#039;]&#039;).replaceWith(data);
        }});&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;Try out &lt;a href=&quot;http://www.boogdesign.com/examples/jsssi/index.html&quot;&gt;the final code here&lt;/a&gt;.&lt;/p&gt;&lt;div class=&quot;tags twitter_tags&quot;&gt;&lt;strong&gt;Twitter tags for this post&amp;nbsp;:&lt;/strong&gt; &lt;a rel=&quot;tag&quot; href=&quot;http://search.twitter.com/search?tag=history&quot;&gt;history&lt;/a&gt; &amp;bull; &lt;a rel=&quot;tag&quot; href=&quot;http://search.twitter.com/search?tag=tools&quot;&gt;tools&lt;/a&gt; &amp;bull; &lt;a rel=&quot;tag&quot; href=&quot;http://search.twitter.com/search?tag=web&quot;&gt;web&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;!-- Paste from here... --&gt;
&lt;a href=&quot;http://del.icio.us/post&quot; onclick=&quot;window.open(&#039;http://del.icio.us/post?v=4&amp;amp;noui&amp;amp;jump=close&amp;amp;url=&#039;+encodeURIComponent(&#039;http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2&#039;)+&#039;&amp;amp;title=&#039;+encodeURIComponent(&#039;Client Side Server Side Includes&#039;),&#039;delicious&#039;, &#039;toolbar=no,width=700,height=400&#039;); return false;&quot; title=&quot;del.icio.us&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/delicious.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://reddit.com/submit?url=http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2&amp;amp;title=Client Side Server Side Includes&quot; target=&quot;blank&quot; title=&quot;Reddit&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/reddit.png&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a title=&quot;Stumble It&quot; target=&quot;_blank&quot; href=&quot;http://www.stumbleupon.com/submit?url=http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2&amp;amp;title=BAE%20Social%20Bookmarks&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/stumbleupon.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://technorati.com/faves?add=http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2&quot; target=&quot;blank&quot; title=&quot;Technorati&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/technorati.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://digg.com/submit?url=http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2&amp;amp;title=Client Side Server Side Includes&amp;amp;bodytext=&amp;amp;media=news&amp;amp;topic=programming&quot; title=&quot;Digg This&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/digg.png&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.facebook.com/share.php?u=http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2&amp;amp;t=Client Side Server Side Includes&quot; target=&quot;_blank&quot; title=&quot;Share on Facebook&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/facebook.gif&quot; border=&quot;0&quot; height=&quot;16&quot; width=&quot;16&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.spurl.net/spurl.php?title=Client Side Server Side Includes&amp;amp;url=http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2&quot; target=&quot;blank&quot; title=&quot;Submit to Spurl&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/spurl.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;


&lt;a href=&quot;http://www.furl.net/storeIt.jsp?u=http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2&amp;amp;t=Client Side Server Side Includes&quot; target=&quot;blank&quot; title=&quot;Submit to Furl&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/furl.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://myweb2.search.yahoo.com/myresults/bookmarklet?t=Client Side Server Side Includes&amp;amp;u=http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2&quot; target=&quot;blank&quot; title=&quot;Yahoo&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/yahoo.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;amp;Url=http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2&amp;amp;Title=Client Side Server Side Includes&quot; target=&quot;blank&quot; title=&quot;Blinklist&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/blinklist.gif&quot; alt=&quot;&quot; border=&quot;0&quot; width=&quot;16&quot; height=&quot;16&quot; /&gt;&lt;/a&gt;

&lt;a title=&quot;Add To Google&quot; href=&quot;http://www.google.com/ig/adde?moduleurl=http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/google.gif&quot; style=&quot;border: 0px none ; width: 16px; height: 16px;&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;a rel=&quot;nofollow&quot; href=&quot;http://twitter.com/home?status=Client Side Server Side Includes+http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2&quot; title=&quot;Tweet this&quot;&gt;&lt;img src=&quot;http://www.boogdesign.com/images/twitter-icon.png&quot; style=&quot;width:16px; height:16px;border:0px;&quot; alt=&quot;Tweet this!&quot; /&gt;&lt;/a&gt;
&lt;!-- ...to here --&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>I spent some time over Xmas reflecting on my past web adventures.  My first ever website, a guide to local drinking establishments, was hosted on a cast-off server at Edinburgh University in late 1993, and the particular server and site are now long gone (although the <a href="http://www.tardis.ed.ac.uk/wiki/Main_Page">server has been replaced</a>).  Similarly, my original mid-nineties home page, replete with animated GIFs and ripped off Homer Simpson images has also be consigned to the recycle bin of web history (thankfully).  However, the first website I worked on 'professionally' is still online: <a href="http://www.iwant2bhealthy.com/">iwant2bhealthy.com</a> is a thousand page static HTML monolith which we maintained with Dreamweaver 3.</p>

<p>The site did take advantage of some server processing, it used <a href="http://en.wikipedia.org/wiki/Server_Side_Includes">Server Side Includes</a> (SSI) to embed particular common items such as the main navigation and footer.  SSI isn't so common these days when nearly every cheap host offers some sort of server side scripting language, so often it isn't turned on my default.  The result is that the iwant2bhealthy.com website is missing its main navigation and footer on most pages, all that's left is some markup like this:</p><blockquote><pre><code>&lt;!--#include virtual="/Library/mainmenu.shtml" --&gt;</code></pre></blockquote><p>Or this:</p><blockquote><pre><code>&lt;!--#include virtual="/Library/footer.shtml" --&gt;</code></pre></blockquote><p>I had a hankering to experience the website in all its turn of the century glory and it seemed to me that I ought to be able write a bookmarklet to grab jQuery, grab the comments, fetch the includes with AJAX and insert them in place of the comments.</p>

<p>It turns out that the first tricky thing is grabbing the comment elements.  The jQuery selection engine purposely ignores comments so none of those handy little methods are much use.  There's not much option but to loop through the document and select based on <a href="https://developer.mozilla.org/en/nodeType"><code>nodeType</code></a> (8 for a comment element), fortunately <a href="http://james.padolsey.com/javascript/introducing-jshtml/">someone on the web had already done most of the hard work</a> so I was able to adapt <a href="http://james.padolsey.com/demos/JSHTML/jshtml.js">his code</a>:</p><blockquote><pre><code>parseSSI : function(el) {
    var nodes = el.childNodes;
    var l = nodes.length;
    while (l--) {
        current = nodes[l];
        if (current.nodeType == 8) {
            //do stuff here
        } else if (current.nodeType != 3 &amp;&amp; current.childElementCount &gt; 0) {
            this.parseSSI(current);
        }
    }
}</code></pre></blockquote><p>The function loops through all the child nodes of a supplied element and, if they're a comment, does some processing.  If the node isn't a comment we check that it's also not a text node and then call the function recursively if there are any child nodes.</p>

<p>Of course it's entirely possible that there are comments in the web page that have nothing to do with server side includes, so some sort of check is probably in order.  Following James' example I used a regular expression:</p><blockquote><pre><code>re : /#include virtual=\"(.*)\"/i</code></pre></blockquote><p>My next step was to convert those comment elements into something that could be more easily manipulated by jQuery, so I decided to convert them to links:</p><blockquote><pre><code>var match = this.re.exec(current.data);
if (match != null) {
    var a = document.createElement('a');
    a.href = match[1];
    current.parentNode.replaceChild(a, current);</code></pre></blockquote><p>Now we're back in the nice, succinct land of jQuery - fetch the URL with Ajax and replace the relevant link element in the callback:</p><blockquote><pre><code>$.ajax({ url: match[1],
         success: function(data, textStatus, XMLHttpRequest){
            $('[href=' + this.url + ']').replaceWith(data);
        }});</code></pre></blockquote><p>Try out <a href="http://www.boogdesign.com/examples/jsssi/index.html">the final code here</a>.</p><div class="tags twitter_tags"><strong>Twitter tags for this post&nbsp;:</strong> <a rel="tag" href="http://search.twitter.com/search?tag=history">history</a> &bull; <a rel="tag" href="http://search.twitter.com/search?tag=tools">tools</a> &bull; <a rel="tag" href="http://search.twitter.com/search?tag=web">web</a></div><br /><!-- Paste from here... -->
<a href="http://del.icio.us/post" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url='+encodeURIComponent('http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2')+'&amp;title='+encodeURIComponent('Client Side Server Side Includes'),'delicious', 'toolbar=no,width=700,height=400'); return false;" title="del.icio.us"><img src="http://www.boogdesign.com/images/delicious.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://reddit.com/submit?url=http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2&amp;title=Client Side Server Side Includes" target="blank" title="Reddit"><img src="http://www.boogdesign.com/images/reddit.png" alt="" border="0" width="16" height="16" /></a>

<a title="Stumble It" target="_blank" href="http://www.stumbleupon.com/submit?url=http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2&amp;title=BAE%20Social%20Bookmarks"><img src="http://www.boogdesign.com/images/stumbleupon.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://technorati.com/faves?add=http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2" target="blank" title="Technorati"><img src="http://www.boogdesign.com/images/technorati.jpg" alt="" border="0" width="16" height="16" /></a>

<a href="http://digg.com/submit?url=http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2&amp;title=Client Side Server Side Includes&amp;bodytext=&amp;media=news&amp;topic=programming" title="Digg This"><img src="http://www.boogdesign.com/images/digg.png" alt="" border="0" width="16" height="16" /></a>

<a href="http://www.facebook.com/share.php?u=http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2&amp;t=Client Side Server Side Includes" target="_blank" title="Share on Facebook"><img src="http://www.boogdesign.com/images/facebook.gif" border="0" height="16" width="16" alt="" /></a>

<a href="http://www.spurl.net/spurl.php?title=Client Side Server Side Includes&amp;url=http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2" target="blank" title="Submit to Spurl"><img src="http://www.boogdesign.com/images/spurl.gif" alt="" border="0" width="16" height="16" /></a>


<a href="http://www.furl.net/storeIt.jsp?u=http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2&amp;t=Client Side Server Side Includes" target="blank" title="Submit to Furl"><img src="http://www.boogdesign.com/images/furl.gif" alt="" border="0" width="16" height="16" /></a>

<a href="http://myweb2.search.yahoo.com/myresults/bookmarklet?t=Client Side Server Side Includes&amp;u=http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2" target="blank" title="Yahoo"><img src="http://www.boogdesign.com/images/yahoo.jpg" alt="" border="0" width="16" height="16" /></a>

<a href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2&amp;Title=Client Side Server Side Includes" target="blank" title="Blinklist"><img src="http://www.boogdesign.com/images/blinklist.gif" alt="" border="0" width="16" height="16" /></a>

<a title="Add To Google" href="http://www.google.com/ig/adde?moduleurl=http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2"><img src="http://www.boogdesign.com/images/google.gif" style="border: 0px none ; width: 16px; height: 16px;" alt="" /></a>

<a rel="nofollow" href="http://twitter.com/home?status=Client Side Server Side Includes+http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2" title="Tweet this"><img src="http://www.boogdesign.com/images/twitter-icon.png" style="width:16px; height:16px;border:0px;" alt="Tweet this!" /></a>
<!-- ...to here --><div class="item_footer"><p><small><a href="http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://www.boogdesign.com/b2evo/index.php/jsssi-client-side-server-side-includes?blog=2#comments</comments>
			<wfw:commentRss>http://www.boogdesign.com/b2evo/index.php?blog=2&#38;tempskin=_rss2&#38;disp=comments&#38;p=362</wfw:commentRss>
		</item>
			</channel>
</rss>
