<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"  xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Adactio</title>
		<description>The online home of Jeremy Keith, an author and web developer living and working in Brighton, England.</description>
		<language>en</language>
		<link>http://adactio.com/</link>
		<managingEditor>jeremy@adactio.com (Jeremy Keith)</managingEditor>
		<webMaster>jeremy@adactio.com (Jeremy Keith)</webMaster>
		<image>
			<title>Adactio</title>
			<link>http://adactio.com/</link>
			<url>http://adactio.com/images/rssbutton.gif</url>
			<width>88</width>
			<height>19</height>
		</image>
		<atom:link href="http://adactio.com/rss/" rel="self" type="application/rss+xml" />
		<item>
			<title>Shopping Cart example</title>
			<link>http://lab.yatil.de/wsm11/</link>
			<description>
<![CDATA[
<p>A nifty example of responsive tables. View source to see how it&#8217;s done.</p>

<hr />
<p>
Tagged with
<a rel="tag" href="http://adactio.com/links/tags/responsive">responsive</a>
<a rel="tag" href="http://adactio.com/links/tags/tables">tables</a>
<a rel="tag" href="http://adactio.com/links/tags/shopping">shopping</a>
<a rel="tag" href="http://adactio.com/links/tags/development">development</a>
<a rel="tag" href="http://adactio.com/links/tags/css">css</a>
</p>
]]>
			</description>
			<pubDate>Wed, 23 May 2012 22:23:11 GMT</pubDate>
			<guid>http://lab.yatil.de/wsm11/</guid>
			<category>responsive</category>
			<category>tables</category>
			<category>shopping</category>
			<category>development</category>
			<category>css</category>
		</item>
		<item>
			<title>The Publication Standards Project</title>
			<link>http://pubstandards.org/</link>
			<description>
<![CDATA[
<p>Like the Web Standards Project but for ePub. I approve of this message.</p>

<hr />
<p>
Tagged with
<a rel="tag" href="http://adactio.com/links/tags/publishing">publishing</a>
<a rel="tag" href="http://adactio.com/links/tags/epub">epub</a>
<a rel="tag" href="http://adactio.com/links/tags/standards">standards</a>
<a rel="tag" href="http://adactio.com/links/tags/digital">digital</a>
<a rel="tag" href="http://adactio.com/links/tags/books">books</a>
<a rel="tag" href="http://adactio.com/links/tags/reading">reading</a>
<a rel="tag" href="http://adactio.com/links/tags/writing">writing</a>
</p>
]]>
			</description>
			<pubDate>Wed, 23 May 2012 09:54:38 GMT</pubDate>
			<guid>http://pubstandards.org/</guid>
			<category>publishing</category>
			<category>epub</category>
			<category>standards</category>
			<category>digital</category>
			<category>books</category>
			<category>reading</category>
			<category>writing</category>
		</item>
		<item>
			<title>Twitter / adactio: Good news.</title>
			<link>https://twitter.com/adactio/status/205216434358452224</link>
			<description>
<![CDATA[
<p>Looks like the scourge of hashbangs is finally being cleansed from Twitter.</p>

<!-- https://twitter.com/adactio/status/205216434358452224 --> <div id='embedly_twitter_98171619' class='embedly_twitter'> <style type='text/css'> #embedly_twitter_98171619{background:url(http://a0.twimg.com/profile_background_images/5952/background.jpg) #FFFFFF; padding:20px;} #embedly_twitter_98171619 p{background:#fff;padding:10px 12px 0px 12px;margin:0;min-height:48px;color:#000;font-size:18px;line-height:22px;-moz-border-radius:5px;-webkit-border-radius:5px} #embedly_twitter_98171619 .embedly_tweet_content{background:#fff;padding:10px 12px 10px 12px;margin:0;min-height:48px;color:#000;font-size:18px !important;line-height:22px;-moz-border-radius:5px;-webkit-border-radius:5px} #embedly_twitter_98171619 p span.metadata{display:block;width:100%;clear:both;margin-top:0px;height:40px; padding-bottom: 12px;} #embedly_twitter_98171619 p span.metadata span.author{line-height:15px;color:#999;font-size:14px} #embedly_twitter_98171619 p span.metadata span.author a{line-height:15px;font-size:20px;vertical-align:middle} #embedly_twitter_98171619 p span.metadata span.author img{float:left;margin:0 10px 0 0px;width:48px;height:48px} #embedly_twitter_98171619 p a {color: #113355; text-decoration:none;} #embedly_twitter_98171619 p a:hover{text-decoration:underline} #embedly_twitter_98171619 .embedly_timestamp{font-size:13px;display:inline-block;margin-top: 5px;} #embedly_twitter_98171619 .components-above span.embedly_timestamp{font-size:10px;margin-top: 1px;line-height:12px} #embedly_twitter_98171619 a {color: #113355; text-decoration:none;} #embedly_twitter_98171619 a:hover{text-decoration:underline} #embedly_twitter_98171619 .tweet-screen-name {font-size: 14px; font-weight: bold;} #embedly_twitter_98171619 .tweet-full-name {padding-left: 4px; color: #999; font-size: 12px;} #embedly_twitter_98171619 .tweet-actions{margin-left: 10px;font-size:13px;display:inline-block;width:250px} #embedly_twitter_98171619 .components-above span.tweet-actions{font-size:10px} #embedly_twitter_98171619 .controls{line-height:12px!important} #embedly_twitter_98171619 .tweet-actions a {margin-left:5px} #embedly_twitter_98171619 .tweet-actions a b{font-weight:normal} #embedly_twitter_98171619 .components-above span.tweet-actions a b{vertical-align:baseline;line-height:12px} #embedly_twitter_98171619 .components-above .tweet-text{font-size:13px;vertical-align:baseline} #embedly_twitter_98171619 .tweet-image {float: left; width: 40px;} #embedly_twitter_98171619 .tweet-user-block-image {float: left; width: 48px; height: 48px} #embedly_twitter_98171619 .tweet-row {margin-left: 40px; margin-top: 3px;line-height: 17px;} #embedly_twitter_98171619 .tweet-user-block {margin-left: -40px;} #embedly_twitter_98171619 .stream-item {padding-bottom: 0px; margin-left: 12px;} #embedly_twitter_98171619 .simple-tweet-image img {margin-top: 4px;} #embedly_twitter_98171619 .simple-tweet-content {margin: 0 0 13px 0px; font-size: 14px; min-height:48px;} #embedly_twitter_98171619 .in-reply-to-border {border-color: #EBEBEB; border-style: solid; border-width: 1px 0 0;} #embedly_twitter_98171619 .in-reply-to-text {margin-left: 4px; padding-left: 8px; padding-right: 10px; color: #999; font-size: 12px;} #embedly_twitter_98171619 .tweet-actions i {background: transparent url(http://a2.twimg.com/a/1306889658/phoenix/img/sprite-icons.png) no-repeat;width:15px;height:15px;margin:0 4px -3px 3px;outline: none; text-indent:-99999px;vertical-align:baseline;display:inline-block;position:relative;} #embedly_twitter_98171619 .tweet-actions a.retweet-action i {background-position:-192px 0;} #embedly_twitter_98171619 .tweet-actions a.reply-action i {background-position:0 0;} #embedly_twitter_98171619 .tweet-actions a.favorite-action i {background-position:-32px 0;} </style> <div class="embedly_tweet_content"> <div class="components-middle"> <p> <span class='metadata'><span class='author'><a href='http://twitter.com/adactio'> <img src='http://a0.twimg.com/profile_images/2218030114/stevehelmet_normal.png' /></a> <strong><a href='http://twitter.com/adactio'>@adactio</a></strong><br/>Jeremy Keith</span></span>
Good news. The permalink for this tweet no longer contains a #! — octothorpe exclamation URLs are on their way out.<br/><span class='embedly_timestamp'> <a title='Wed May 23 08:39:45 +0000 2012' href='http://twitter.com/adactio/status/205216434358452224'>May 23</a> via web</span> <span class="tweet-actions"> <a href="https://twitter.com/intent/favorite?tweet_id=205216434358452224" class="favorite-action" title="Favorite"> <span><i></i><b>Favorite</b></span> </a> <a href="https://twitter.com/intent/retweet?tweet_id=205216434358452224" class="retweet-action" title="Retweet"> <span><i></i><b>Retweet</b></span> </a> <a href="https://twitter.com/intent/tweet?in_reply_to=205216434358452224" class="reply-action" title="Reply"> <span><i></i><b>Reply</b></span> </a> </span> </p></div></div></div><hr />
<p>
Tagged with
<a rel="tag" href="http://adactio.com/links/tags/twitter">twitter</a>
<a rel="tag" href="http://adactio.com/links/tags/hashbang">hashbang</a>
<a rel="tag" href="http://adactio.com/links/tags/urls">urls</a>
</p>
]]>
			</description>
			<pubDate>Wed, 23 May 2012 09:44:12 GMT</pubDate>
			<guid>https://twitter.com/adactio/status/205216434358452224</guid>
			<category>twitter</category>
			<category>hashbang</category>
			<category>urls</category>
		</item>
		<item>
			<title>The Great Discontent: Dan Cederholm</title>
			<link>http://thegreatdiscontent.com/dan-cederholm</link>
			<description>
<![CDATA[
<p>The lovely (and responsive) Great Discontent site has a lovely interview with Dan, who is lovely.</p>

<hr />
<p>
Tagged with
<a rel="tag" href="http://adactio.com/links/tags/interview">interview</a>
<a rel="tag" href="http://adactio.com/links/tags/design">design</a>
<a rel="tag" href="http://adactio.com/links/tags/simplebits">simplebits</a>
<a rel="tag" href="http://adactio.com/links/tags/lovely">lovely</a>
</p>
]]>
			</description>
			<pubDate>Tue, 22 May 2012 15:05:29 GMT</pubDate>
			<guid>http://thegreatdiscontent.com/dan-cederholm</guid>
			<category>interview</category>
			<category>design</category>
			<category>simplebits</category>
			<category>lovely</category>
		</item>
		<item>
			<title>The responsive images problem</title>
			<link>http://opensores.za.net/2012/responsive-images/</link>
			<description>
<![CDATA[
<p>A run-down of the various approaches to the responsive images problem, concluding that this is something that needs to be solved in the image format.</p>

<hr />
<p>
Tagged with
<a rel="tag" href="http://adactio.com/links/tags/responsive">responsive</a>
<a rel="tag" href="http://adactio.com/links/tags/images">images</a>
<a rel="tag" href="http://adactio.com/links/tags/formats">formats</a>
<a rel="tag" href="http://adactio.com/links/tags/progressive">progressive</a>
</p>
]]>
			</description>
			<pubDate>Tue, 22 May 2012 14:04:14 GMT</pubDate>
			<guid>http://opensores.za.net/2012/responsive-images/</guid>
			<category>responsive</category>
			<category>images</category>
			<category>formats</category>
			<category>progressive</category>
		</item>
		<item>
			<title>» The real conflict behind picture and @srcset (Cloud Four Blog)</title>
			<link>http://blog.cloudfour.com/the-real-conflict-behind-picture-and-srcset/</link>
			<description>
<![CDATA[
<p>Jason outlines the real challenge to every proposed solution for responsive images: they just don&#8217;t jibe with the way that browsers (quite rightly) pre-fetch images.</p>

<hr />
<p>
Tagged with
<a rel="tag" href="http://adactio.com/links/tags/responsive">responsive</a>
<a rel="tag" href="http://adactio.com/links/tags/images">images</a>
<a rel="tag" href="http://adactio.com/links/tags/browsers">browsers</a>
<a rel="tag" href="http://adactio.com/links/tags/standards">standards</a>
<a rel="tag" href="http://adactio.com/links/tags/development">development</a>
<a rel="tag" href="http://adactio.com/links/tags/performance">performance</a>
</p>
]]>
			</description>
			<pubDate>Tue, 22 May 2012 13:56:16 GMT</pubDate>
			<guid>http://blog.cloudfour.com/the-real-conflict-behind-picture-and-srcset/</guid>
			<category>responsive</category>
			<category>images</category>
			<category>browsers</category>
			<category>standards</category>
			<category>development</category>
			<category>performance</category>
		</item>
		<item>
			<title>Readlists</title>
			<link>http://readlists.com/</link>
			<description>
<![CDATA[
<p>This looks like a really handy service from Readability: gather together a number of related articles from &#8216;round the web and then you can export them to a reading device of your choice. It&#8217;s like Huffduffer for text.</p>

<hr />
<p>
Tagged with
<a rel="tag" href="http://adactio.com/links/tags/readlists">readlists</a>
<a rel="tag" href="http://adactio.com/links/tags/reading">reading</a>
<a rel="tag" href="http://adactio.com/links/tags/readability">readability</a>
<a rel="tag" href="http://adactio.com/links/tags/text">text</a>
<a rel="tag" href="http://adactio.com/links/tags/writing">writing</a>
<a rel="tag" href="http://adactio.com/links/tags/publishing">publishing</a>
<a rel="tag" href="http://adactio.com/links/tags/kindle">kindle</a>
<a rel="tag" href="http://adactio.com/links/tags/ebook">ebook</a>
</p>
]]>
			</description>
			<pubDate>Tue, 22 May 2012 13:45:38 GMT</pubDate>
			<guid>http://readlists.com/</guid>
			<category>readlists</category>
			<category>reading</category>
			<category>readability</category>
			<category>text</category>
			<category>writing</category>
			<category>publishing</category>
			<category>kindle</category>
			<category>ebook</category>
		</item>
		<item>
			<title>Kiwibank: Standing Up for Something New — Paul Robert Lloyd</title>
			<link>http://paulrobertlloyd.com/2012/05/kiwibank/</link>
			<description>
<![CDATA[
<p>Paul interviews the team behind Kiwibank&#8217;s responsive homepage. There are some great insights into their process here, like the way that copywriters worked side by side with developers.</p>

<hr />
<p>
Tagged with
<a rel="tag" href="http://adactio.com/links/tags/responsive">responsive</a>
<a rel="tag" href="http://adactio.com/links/tags/design">design</a>
<a rel="tag" href="http://adactio.com/links/tags/development">development</a>
<a rel="tag" href="http://adactio.com/links/tags/bank">bank</a>
<a rel="tag" href="http://adactio.com/links/tags/kiwibank">kiwibank</a>
<a rel="tag" href="http://adactio.com/links/tags/process">process</a>
<a rel="tag" href="http://adactio.com/links/tags/workflow">workflow</a>
</p>
]]>
			</description>
			<pubDate>Tue, 22 May 2012 13:07:02 GMT</pubDate>
			<guid>http://paulrobertlloyd.com/2012/05/kiwibank/</guid>
			<category>responsive</category>
			<category>design</category>
			<category>development</category>
			<category>bank</category>
			<category>kiwibank</category>
			<category>process</category>
			<category>workflow</category>
		</item>
		<item>
			<title>LukeW | Data Monday: E-commerce Performance</title>
			<link>http://www.lukew.com/ff/entry.asp?1553</link>
			<description>
<![CDATA[
<p>Time is money &#8230;especially when it comes to performance on the web.</p>

<hr />
<p>
Tagged with
<a rel="tag" href="http://adactio.com/links/tags/performance">performance</a>
<a rel="tag" href="http://adactio.com/links/tags/money">money</a>
<a rel="tag" href="http://adactio.com/links/tags/business">business</a>
<a rel="tag" href="http://adactio.com/links/tags/ecommerce">ecommerce</a>
</p>
]]>
			</description>
			<pubDate>Tue, 22 May 2012 07:59:22 GMT</pubDate>
			<guid>http://www.lukew.com/ff/entry.asp?1553</guid>
			<category>performance</category>
			<category>money</category>
			<category>business</category>
			<category>ecommerce</category>
		</item>
		<item>
			<title>Microjs: Fantastic Micro-Frameworks and Micro-Libraries for Fun and Profit!</title>
			<link>http://microjs.com/</link>
			<description>
<![CDATA[
<p>I really like this trend of small standalone scripts rather than plug-ins that require the presence of a library.</p>

<hr />
<p>
Tagged with
<a rel="tag" href="http://adactio.com/links/tags/javascript">javascript</a>
<a rel="tag" href="http://adactio.com/links/tags/scripts">scripts</a>
<a rel="tag" href="http://adactio.com/links/tags/microjs">microjs</a>
<a rel="tag" href="http://adactio.com/links/tags/scripting">scripting</a>
<a rel="tag" href="http://adactio.com/links/tags/small">small</a>
<a rel="tag" href="http://adactio.com/links/tags/micro">micro</a>
<a rel="tag" href="http://adactio.com/links/tags/js">js</a>
</p>
]]>
			</description>
			<pubDate>Mon, 21 May 2012 18:21:27 GMT</pubDate>
			<guid>http://microjs.com/</guid>
			<category>javascript</category>
			<category>scripts</category>
			<category>microjs</category>
			<category>scripting</category>
			<category>small</category>
			<category>micro</category>
			<category>js</category>
		</item>
		<item>
			<title>Digital archivists: technological custodians of human history | Ars Technica</title>
			<link>http://arstechnica.com/information-technology/2012/05/digital-archivists-technological-custodians-of-human-history/</link>
			<description>
<![CDATA[
<p>An introduction to the important work of digital archivists:</p>

<blockquote>
  <p>Much like the family member that collects, organizes, and identifies old family photos to preserve one&#8217;s heritage, digital archivists seek to do the same for all mankind.</p>
</blockquote>

<hr />
<p>
Tagged with
<a rel="tag" href="http://adactio.com/links/tags/digital">digital</a>
<a rel="tag" href="http://adactio.com/links/tags/preservation">preservation</a>
<a rel="tag" href="http://adactio.com/links/tags/archivists">archivists</a>
<a rel="tag" href="http://adactio.com/links/tags/archiving">archiving</a>
<a rel="tag" href="http://adactio.com/links/tags/technology">technology</a>
<a rel="tag" href="http://adactio.com/links/tags/analogue">analogue</a>
</p>
]]>
			</description>
			<pubDate>Mon, 21 May 2012 18:19:50 GMT</pubDate>
			<guid>http://arstechnica.com/information-technology/2012/05/digital-archivists-technological-custodians-of-human-history/</guid>
			<category>digital</category>
			<category>preservation</category>
			<category>archivists</category>
			<category>archiving</category>
			<category>technology</category>
			<category>analogue</category>
		</item>
		<item>
			<title>Like A Rounded Corner (Bruce and The Standardettes) - YouTube</title>
			<link>http://www.youtube.com/watch?v=oGZ9tVu4Ahs</link>
			<description>
<![CDATA[
<p>Bravo, Bruce, bravo.</p>

<blockquote>
  <p>I heard Glen Campbell&#8217;s &#8220;Like A Rhinestone Cowboy&#8221; on the radio and began absent-mindedly singing &#8220;Like a rounded corner&#8221; to it.</p>
</blockquote>

<iframe width="320" height="180" src="http://www.youtube.com/embed/oGZ9tVu4Ahs?fs=1&feature=oembed" frameborder="0" allowfullscreen></iframe><hr />
<p>
Tagged with
<a rel="tag" href="http://adactio.com/links/tags/youtube">youtube</a>
<a rel="tag" href="http://adactio.com/links/tags/video">video</a>
<a rel="tag" href="http://adactio.com/links/tags/song">song</a>
<a rel="tag" href="http://adactio.com/links/tags/brucelawson">brucelawson</a>
<a rel="tag" href="http://adactio.com/links/tags/css">css</a>
<a rel="tag" href="http://adactio.com/links/tags/standards">standards</a>
<a rel="tag" href="http://adactio.com/links/tags/parody">parody</a>
<a rel="tag" href="http://adactio.com/links/tags/funny">funny</a>
<a rel="tag" href="http://adactio.com/links/tags/humour">humour</a>
</p>
]]>
			</description>
			<pubDate>Fri, 18 May 2012 19:10:56 GMT</pubDate>
			<guid>http://www.youtube.com/watch?v=oGZ9tVu4Ahs</guid>
			<category>youtube</category>
			<category>video</category>
			<category>song</category>
			<category>brucelawson</category>
			<category>css</category>
			<category>standards</category>
			<category>parody</category>
			<category>funny</category>
			<category>humour</category>
		</item>
		<item>
			<title>Every Mobile Social App Site, Ever · Visual Idiot</title>
			<link>http://visualidiot.com/articles/social-apps</link>
			<description>
<![CDATA[
<p>This is kinda funny (because it&#8217;s kinda true).</p>

<hr />
<p>
Tagged with
<a rel="tag" href="http://adactio.com/links/tags/mobile">mobile</a>
<a rel="tag" href="http://adactio.com/links/tags/apps">apps</a>
<a rel="tag" href="http://adactio.com/links/tags/ios">ios</a>
<a rel="tag" href="http://adactio.com/links/tags/iphone">iphone</a>
<a rel="tag" href="http://adactio.com/links/tags/parody">parody</a>
<a rel="tag" href="http://adactio.com/links/tags/social">social</a>
<a rel="tag" href="http://adactio.com/links/tags/funny">funny</a>
<a rel="tag" href="http://adactio.com/links/tags/humour">humour</a>
<a rel="tag" href="http://adactio.com/links/tags/cliché">cliché</a>
<a rel="tag" href="http://adactio.com/links/tags/trend">trend</a>
</p>
]]>
			</description>
			<pubDate>Fri, 18 May 2012 10:44:27 GMT</pubDate>
			<guid>http://visualidiot.com/articles/social-apps</guid>
			<category>mobile</category>
			<category>apps</category>
			<category>ios</category>
			<category>iphone</category>
			<category>parody</category>
			<category>social</category>
			<category>funny</category>
			<category>humour</category>
			<category>cliché</category>
			<category>trend</category>
		</item>
		<item>
			<title>A New Take on Responsive Tables by ZURB</title>
			<link>http://www.zurb.com/article/982/a-new-take-on-responsive-tables</link>
			<description>
<![CDATA[
<p>An interesting approach to squishing down large data tables for small-screen viewing &#8230;though I wonder if there isn&#8217;t a &#8220;Mobile First&#8221; approach that could scale up, say, lists to become tables on large screens.</p>

<hr />
<p>
Tagged with
<a rel="tag" href="http://adactio.com/links/tags/responsive">responsive</a>
<a rel="tag" href="http://adactio.com/links/tags/design">design</a>
<a rel="tag" href="http://adactio.com/links/tags/development">development</a>
<a rel="tag" href="http://adactio.com/links/tags/tables">tables</a>
<a rel="tag" href="http://adactio.com/links/tags/markup">markup</a>
<a rel="tag" href="http://adactio.com/links/tags/css">css</a>
</p>
]]>
			</description>
			<pubDate>Fri, 18 May 2012 10:01:13 GMT</pubDate>
			<guid>http://www.zurb.com/article/982/a-new-take-on-responsive-tables</guid>
			<category>responsive</category>
			<category>design</category>
			<category>development</category>
			<category>tables</category>
			<category>markup</category>
			<category>css</category>
		</item>
		<item>
			<title>Shallow Thoughts » srcset vs. picture</title>
			<link>http://shallowthoughts.org/2012/05/17/img-srcset-vs-picture/</link>
			<description>
<![CDATA[
<p>A well thought-out evaluation on responsive images from Bridget.</p>

<hr />
<p>
Tagged with
<a rel="tag" href="http://adactio.com/links/tags/responsive">responsive</a>
<a rel="tag" href="http://adactio.com/links/tags/images">images</a>
<a rel="tag" href="http://adactio.com/links/tags/standards">standards</a>
<a rel="tag" href="http://adactio.com/links/tags/process">process</a>
<a rel="tag" href="http://adactio.com/links/tags/whatwg">whatwg</a>
<a rel="tag" href="http://adactio.com/links/tags/browsers">browsers</a>
<a rel="tag" href="http://adactio.com/links/tags/html">html</a>
</p>
]]>
			</description>
			<pubDate>Fri, 18 May 2012 01:23:30 GMT</pubDate>
			<guid>http://shallowthoughts.org/2012/05/17/img-srcset-vs-picture/</guid>
			<category>responsive</category>
			<category>images</category>
			<category>standards</category>
			<category>process</category>
			<category>whatwg</category>
			<category>browsers</category>
			<category>html</category>
		</item>
		<item>
			<title>JS Hotline: (877) 300-2187</title>
			<link>http://javascript.pockethotline.com/</link>
			<description>
<![CDATA[
<p>I love this! A volunteer-run hotline for answering JavaScript questions (set up by the awesome Garann Means, who literally wrote the book on Node.js).</p>

<p>I think I might volunteer my services.</p>

<hr />
<p>
Tagged with
<a rel="tag" href="http://adactio.com/links/tags/javascript">javascript</a>
<a rel="tag" href="http://adactio.com/links/tags/hotline">hotline</a>
<a rel="tag" href="http://adactio.com/links/tags/resource">resource</a>
<a rel="tag" href="http://adactio.com/links/tags/phone">phone</a>
<a rel="tag" href="http://adactio.com/links/tags/support">support</a>
<a rel="tag" href="http://adactio.com/links/tags/community">community</a>
<a rel="tag" href="http://adactio.com/links/tags/volunteer">volunteer</a>
<a rel="tag" href="http://adactio.com/links/tags/education">education</a>
<a rel="tag" href="http://adactio.com/links/tags/teaching">teaching</a>
<a rel="tag" href="http://adactio.com/links/tags/learning">learning</a>
</p>
]]>
			</description>
			<pubDate>Thu, 17 May 2012 09:51:21 GMT</pubDate>
			<guid>http://javascript.pockethotline.com/</guid>
			<category>javascript</category>
			<category>hotline</category>
			<category>resource</category>
			<category>phone</category>
			<category>support</category>
			<category>community</category>
			<category>volunteer</category>
			<category>education</category>
			<category>teaching</category>
			<category>learning</category>
		</item>
		<item>
			<title>Context-Free Patent Art</title>
			<link>http://contextfreepatentart.tumblr.com/</link>
			<description>
<![CDATA[
<p>This is wonderfully random: illustrations used to illustrate patent applications but without the context.</p>

<hr />
<p>
Tagged with
<a rel="tag" href="http://adactio.com/links/tags/tumblr">tumblr</a>
<a rel="tag" href="http://adactio.com/links/tags/blog">blog</a>
<a rel="tag" href="http://adactio.com/links/tags/patents">patents</a>
<a rel="tag" href="http://adactio.com/links/tags/illustration">illustration</a>
<a rel="tag" href="http://adactio.com/links/tags/funny">funny</a>
<a rel="tag" href="http://adactio.com/links/tags/drawings">drawings</a>
<a rel="tag" href="http://adactio.com/links/tags/humour">humour</a>
</p>
]]>
			</description>
			<pubDate>Thu, 17 May 2012 00:34:29 GMT</pubDate>
			<guid>http://contextfreepatentart.tumblr.com/</guid>
			<category>tumblr</category>
			<category>blog</category>
			<category>patents</category>
			<category>illustration</category>
			<category>funny</category>
			<category>drawings</category>
			<category>humour</category>
		</item>
		<item>
			<title>Secret src</title>
			<link>http://adactio.com/journal/5474/</link>
			<description>
<![CDATA[
<p>There&#8217;s been quite a brouhaha over the past couple of days around the subject of standardising responsive images. There are two different matters here: the process and the technical details. I&#8217;d like to address both of them.</p>

<h3>Ill communication</h3>

<p>First of all, there&#8217;s a number of very smart developers who feel that they&#8217;ve been sidelined by the <abbr title="Web Hypertext Application Technology Working Group">WHATWG</abbr>. <cite class="vcard"><a href="http://timkadlec.com" class="url" rel="friend met colleague"><abbr class="fn" title="Tim Kadlec">Tim</abbr></a></cite> has put together <a href="http://timkadlec.com/2012/05/wtfwg/">a timeline of what happened</a>:</p>

<blockquote>
  <ol>
  <li>Developers got involved in trying to standardize a solution to a common and important problem.</li>
  <li>The WHATWG told them to move the discussion to a community group.</li>
  <li>The discussion was moved (back in February), a general consenus (not unanimous, but a majority) was reached about the picture element.</li>
  <li>Another (partial) solution was proposed directly on the WHATWG list by an Apple employee.</li>
  <li>A discussion ensued regarding the two methods, where they overlapped, and how the general opinions of each. The majority of developers favored the picture element and the majority of implementors favored the srcset attribute.</li>
  <li>While the discussion was still taking place, and only 5 days after it was originally proposed, the srcset attribute (but not the picture element) was added to the draft.</li>
  </ol>
</blockquote>

<p>A few points in that timeline have since been clarified. That second step&#8212;&#8220;The WHATWG told them to move the discussion to a community group&#8221;&#8212;turns out to be untrue. Some <a href="http://lists.w3.org/Archives/Public/public-whatwg-archive/2012Feb/0194.html">random person</a> on the WHATWG mailing list (which is open to everyone) suggested forming a Community Group at the W3C. Alas, nobody else on the WHATWG mailing list corrected that suggestion.</p>

<p>Then there&#8217;s apparent causality between step 4 and 6. Initially, I also assumed that this was what happened: that <span class="vcard"><a href="http://edward.oconnor.cx/" class="url" rel="friend met colleague"><abbr class="fn" title="Edward O'Connor">Ted</abbr></a></span> had proposed the <code>srcset</code> solution without even being aware of the <code>picture</code> solution that the Community Group had independently come up with it. It turns out that&#8217;s not the case. Ted had another email about the <code>picture</code> proposal but he never ended up sending it. In fact, his email about <code>srcset</code> had been sitting in draft for quite a while and he only sent it out when he saw that Hixie was finally collating feedback on responsive images.</p>

<p>So from the outside it looked like there was preferential treatment being given to Ted&#8217;s proposal because it came from within the WHATWG. That&#8217;s not the case, but it must be said: the fact that <code>srcset</code> was so quickly added to the spec (albeit in a different form) doesn&#8217;t look good. It&#8217;s easy to understand why the smart folks in the <a href="http://www.w3.org/community/respimg/">Responsive Images Community Group</a> felt miffed.</p>

<p>But let&#8217;s be clear: this is exactly how the WHATWG is supposed to work. Use-cases are evaluated and whatever Hixie thinks is best solution gets put in the spec, regardless of how popular or unpopular it is.</p>

<p>Now, if that sounds abhorrent to you, I completely understand. A dictatorship <em>should</em> cause us to recoil.</p>

<p>That&#8217;s where the W3C come in. Their model is completely different. Everything is done by committee there.</p>

<p>Steve Faulkner chimed in on Tim&#8217;s post with <a href="http://timkadlec.com/2012/05/wtfwg/comment-page-1/#div-comment-71618">his take on the two groups</a>:</p>

<blockquote>
  <p>It seems like the development of HTML has turned full circle, the WHATWG was formed to overthrow the hegemony of the W3C, now the W3C acts as a counter to the hegemony of the WHATWG.</p>
</blockquote>

<p>I think he&#8217;s right. The W3C keeps the rapid, sometimes anarchic approach of the WHATWG in check. But the opposite is also true. Without the impetus provided by the WHATWG, I&#8217;m not sure that the W3C HTML Working Group would ever get anything done. There&#8217;s a balance that actually works quite well in practice.</p>

<p>Back to the situation with responsive images&#8230;</p>

<p>Unfortunately, it appears to people within the Responsive Images Community Group that all their effort was wasted because their proposed solution was summarily rejected. In actuality all the use-cases they gathered were immensely valuable. But it&#8217;s certainly true that the WHATWG didn&#8217;t make it clearer how and where developers could best contribute.</p>

<p>Community Groups are a W3C creation. They don&#8217;t have anything to do with the WHATWG, who do all their work on their own mailing list, their own wiki and their own IRC channel.</p>

<p>I do think that the W3C Community Groups offer a good place to go bike-shedding on problems. That&#8217;s a term that&#8217;s usually used derisively but sometimes it&#8217;s good to have a good ol&#8217; bike-shedding without clogging up the mailing list for everyone. But it needs to be clear that there&#8217;s a big difference between a Community Group and a Working Group.</p>

<p>I wish the WHATWG had done a better job of communicating to newcomers how best to contribute. It would have avoided a lot of the frustrations <a href="http://www.alistapart.com/articles/responsive-images-and-web-standards-at-the-turning-point/">articulated by Wilto</a>:</p>

<blockquote>
  <p>Unfortunately, we were laboring under the impression that Community Groups shared a deeper inherent connection with the standards bodies than it actually does.</p>
</blockquote>

<p>But in any case, <a href="http://html5doctor.com/html5-adaptive-images-end-of-round-one/">as Doctor Bruce writes</a> at least now there&#8217;s a proposed solution for responsive images in HTML: The Living Standard:</p>

<blockquote>
  <p>I don’t really care which syntax makes the spec, as long as it addresses the majority of use cases and it is usable by authors. I’m just glad we’re discussing the adaptive image problem at all.</p>
</blockquote>

<p>So let&#8217;s take a look at the technical details.</p>

<h3>src code</h3>

<p>The Responsive Images Community Group came up with a proposal based off the idea of minting a new element, called say <code>picture</code>, that mimics the behaviour of <code>video</code></p>

<pre><code>&lt;picture alt="image description"&gt;
  &lt;source src="/path/to/image.png" media="(min-width: 600px)"&gt;
  &lt;source src="/path/to/otherimage.png" media="(min-width: 800px)"&gt;
  &lt;img src="/path/to/image.png" alt="image description"&gt;
&lt;/picture&gt;
</code></pre>

<p>One of the reasons why a new element was chosen rather than extending the existing <code>img</code> element was due to a misunderstanding. The WHATWG had explained that the <em>parsing</em> of <code>img</code> couldn&#8217;t be easily altered. That means that <code>img</code> must remain a self-closing element&#8212;any solution that requires a closing <code>/img</code> tag wouldn&#8217;t work. Alas, that was taken to mean that extending the <code>img</code> element in any way was off the cards.</p>

<p>The <code>picture</code> proposal has a number of things going for it. Its syntax is easily understandable for authors: if you know media queries, then you know how to use <code>picture</code>. It also has a good fallback for older browsers : a regular <code>img</code> element. This fallback mechanism (and the idea of multiple <code>source</code> elements with media queries) is exactly how the <code>video</code> element is specced.</p>

<p>Unfortunately using media queries on the <code>source</code>s of videos has proven to be very tricky for implementors, so they don&#8217;t want to see that pattern repeated.</p>

<p>Another issue with multiple <code>source</code> elements is that parsers must wait until the closing <code>/picture</code> tag before they can even begin to evaluate which image to show. That&#8217;s not good for performance.</p>

<p>So the alternate solution, based on Ted&#8217;s proposal, extends the <code>img</code> element using a new <code>srcset</code> attribute that takes a comma-separated list of values:</p>

<pre><code>&lt;img alt="image description"
src="/path/to/fallbackimage.png"
srcset="/path/to/image.png 800w, /path/to/otherimage.png 600w"&gt;
</code></pre>

<p>Not nearly as pretty, I think you&#8217;ll agree. But it is actually nice and compact for the &#8220;retina display&#8221; use-case:</p>

<pre><code>&lt;img alt="image description" src="/path/to/image.png" srcset="/path/to/otherimage.png 2x"&gt;
</code></pre>

<p>Just to be clear, that does not mean that <code>otherimage.png</code> is twice the size of <code>image.png</code> (though it could be). What you&#8217;re actually declaring is &#8220;Use <code>image.png</code> unless the <em>device</em> supports double-pixel density, in which case, use <code>otherimage.png</code>.&#8221;</p>

<p>Likewise, when I declare:</p>

<pre><code>srcset="/path/to/image.png 600w 400h"
</code></pre>

<p>&#8230;it does <em>not</em> mean that <code>image.png</code> is 600 pixels wide by 400 pixels tall. Instead, it means that an action should be taken if the <em>viewport</em> matches those dimensions.</p>

<p>It took me a while to wrap my head around that distinction: I&#8217;m used to attributes describing the element they&#8217;re attached to, not the viewport.</p>

<p>Now for the really tricky bit: what do those numbers&#8212;600w and 400h&#8212;mean? Currently <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/embedded-content-1.html#attr-img-srcset">the spec is giving conflicting information</a>.</p>

<p>Each image that&#8217;s listed in the <code>srcset</code> comma-separated list can have up to three values associated with it: <code>w</code>, <code>h</code>, and x. The x is pretty clear: that&#8217;s the pixel density of the device. The <code>w</code> and <code>h</code> values refer to the width and height of the viewport &#8230;but it&#8217;s not clear if they mean min-width/height or max-width/height.</p>

<p>If I&#8217;m taking a &#8220;Mobile First&#8221; approach to development, then <code>srcset</code> will meet my needs <em>if</em> <code>w</code> and <code>h</code> refer to min-width and min-height.</p>

<p>In this example, I&#8217;ll just use <code>w</code> to keep things simple:</p>

<pre><code>&lt;img src="small.png" srcset="medium.png 600w, large.png 800w"&gt;
</code></pre>

<p>(Expected behaviour: use small.png unless the viewport is wider than 600 pixels, in which case use medium.png unless the viewport is wider than 800 pixels, in which case use large.png).</p>

<p>If, on the other hand, <code>w</code> and <code>h</code> refer to max-width and max-height, I <em>have to</em> take a &#8220;Desktop First&#8221; approach:</p>

<pre><code>&lt;img src="large.png" srcset="medium.png 800w, small.png 600w"&gt;
</code></pre>

<p>(Expected behaviour: use large.png unless the viewport is narrower than 800 pixels, in which case use medium.png unless the viewport is narrower than 600 pixels, in which case use small.png).</p>

<p>One of the advantages of media queries is that, because they support both min- and max- width, they can be used in either use-case: &#8220;Mobile First&#8221; or &#8220;Desktop First&#8221;.</p>

<p>Because the <code>srcset</code> syntax will support <em>either</em> min- or max- width (but not both), it will therefore favour one case at the expense of the either.</p>

<p>Both use-cases are valid. Personally, I happen to use the &#8220;Mobile First&#8221; approach, but that doesn&#8217;t mean that other developers shouldn&#8217;t be able to take a &#8220;Desktop First&#8221; approach if they want. By the same logic, I don&#8217;t much like the idea of <code>srcset</code> forcing me to take a &#8220;Desktop First&#8221; approach.</p>

<p>My only alternative, if I want to take a &#8220;Mobile First&#8221; approach, is to duplicate image paths <em>and</em> declare ludicrous breakpoints:</p>

<pre><code>&lt;img src="small.png" srcset="small.png 600w, medium.png 800w, large.png 99999w"&gt;
</code></pre>

<p>I <em>hope</em> that this part of the spec offers a way out:</p>

<blockquote>
  <p>for the purposes of this requirement, omitted width descriptors and height descriptors are considered to have the value &#8220;Infinity&#8221;</p>
</blockquote>

<p>I think that means I should be able to write this:</p>

<pre><code>&lt;img src="small.png" srcset="small.png 600w, medium.png 800w, large.png"&gt;
</code></pre>

<p>It&#8217;s all quite confusing and <code>srcset</code> doesn&#8217;t have anything approaching the extensibility of media queries, but I hope we can get it to work somehow.</p>

<hr />
<p>
Tagged with
<a rel="tag" href="http://adactio.com/journal/tags/responsive">responsive</a>
<a rel="tag" href="http://adactio.com/journal/tags/images">images</a>
<a rel="tag" href="http://adactio.com/journal/tags/standards">standards</a>
<a rel="tag" href="http://adactio.com/journal/tags/browsers">browsers</a>
<a rel="tag" href="http://adactio.com/journal/tags/whatwg">whatwg</a>
<a rel="tag" href="http://adactio.com/journal/tags/w3c">w3c</a>
<a rel="tag" href="http://adactio.com/journal/tags/process">process</a>
<a rel="tag" href="http://adactio.com/journal/tags/markup">markup</a>
<a rel="tag" href="http://adactio.com/journal/tags/html">html</a>
<a rel="tag" href="http://adactio.com/journal/tags/adaptive">adaptive</a>
</p>
]]>
			</description>
			<pubDate>Wed, 16 May 2012 17:33:18 GMT</pubDate>
			<guid>http://adactio.com/journal/5474/</guid>
			<category>responsive</category>
			<category>images</category>
			<category>standards</category>
			<category>browsers</category>
			<category>whatwg</category>
			<category>w3c</category>
			<category>process</category>
			<category>markup</category>
			<category>html</category>
			<category>adaptive</category>
		</item>
		<item>
			<title>inspiring toilets</title>
			<link>http://inspiringtoilets.tumblr.com/</link>
			<description>
<![CDATA[
<p>Inspired by the recent .net magazine article on &#8220;20 leading web designers&#8217; desks for your inspiration&#8221;, here&#8217;s a blog dedicated to the place where the real web design magic happens: the designer&#8217;s poostation.</p>

<hr />
<p>
Tagged with
<a rel="tag" href="http://adactio.com/links/tags/toilet">toilet</a>
<a rel="tag" href="http://adactio.com/links/tags/blog">blog</a>
<a rel="tag" href="http://adactio.com/links/tags/parody">parody</a>
<a rel="tag" href="http://adactio.com/links/tags/funny">funny</a>
<a rel="tag" href="http://adactio.com/links/tags/humour">humour</a>
<a rel="tag" href="http://adactio.com/links/tags/inspiration">inspiration</a>
</p>
]]>
			</description>
			<pubDate>Wed, 16 May 2012 09:41:13 GMT</pubDate>
			<guid>http://inspiringtoilets.tumblr.com/</guid>
			<category>toilet</category>
			<category>blog</category>
			<category>parody</category>
			<category>funny</category>
			<category>humour</category>
			<category>inspiration</category>
		</item>
		<item>
			<title>How Yahoo Killed Flickr and Lost the Internet</title>
			<link>http://gizmodo.com/5910223/how-yahoo-killed-flickr-and-lost-the-internet</link>
			<description>
<![CDATA[
<p>A heartbreaking article about just how badly Yahoo fucked up with Flickr. It&#8217;s particularly sad coming out right as the Flickr devs roll out an improved uploader and a more liquid photo page &#8230;but it seems like band-aid development at this point.</p>

<hr />
<p>
Tagged with
<a rel="tag" href="http://adactio.com/links/tags/flickr">flickr</a>
<a rel="tag" href="http://adactio.com/links/tags/yahoo">yahoo</a>
<a rel="tag" href="http://adactio.com/links/tags/business">business</a>
<a rel="tag" href="http://adactio.com/links/tags/photos">photos</a>
<a rel="tag" href="http://adactio.com/links/tags/social">social</a>
<a rel="tag" href="http://adactio.com/links/tags/sharing">sharing</a>
</p>
]]>
			</description>
			<pubDate>Wed, 16 May 2012 00:51:07 GMT</pubDate>
			<guid>http://gizmodo.com/5910223/how-yahoo-killed-flickr-and-lost-the-internet</guid>
			<category>flickr</category>
			<category>yahoo</category>
			<category>business</category>
			<category>photos</category>
			<category>social</category>
			<category>sharing</category>
		</item>

   </channel>
</rss>
