<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>Paul Irish</title>
	
	<link>http://paulirish.com</link>
	<description>I make the www fun.</description>
	<lastBuildDate>Wed, 16 May 2012 20:24:31 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4-alpha-20291</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/paul-irish" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="paul-irish" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Talk: Tooling &amp; The Webapp Development Stack</title>
		<link>http://paulirish.com/2012/talk-tooling-the-webapp-development-stack/</link>
		<comments>http://paulirish.com/2012/talk-tooling-the-webapp-development-stack/#comments</comments>
		<pubDate>Tue, 01 May 2012 16:57:14 +0000</pubDate>
		<dc:creator>Paul Irish</dc:creator>
				<category><![CDATA[front-end development]]></category>

		<guid isPermaLink="false">http://paulirish.com/?p=1510</guid>
		<description><![CDATA[One of the things I recognize at Google is how productive developers surround themselves with powerful tools for iterative development and debugging. For us front-end developers, the ecosystem of tools has exploded in the past two years, as we have a lot more software and libraries beyond Firebug and jQuery to help us build webapps. [...]]]></description>
			<content:encoded><![CDATA[<p>One of the things I recognize at Google is how productive developers surround themselves with powerful tools for iterative development and debugging. For us front-end developers, the ecosystem of tools has exploded in the past two years, as we have a lot more software and libraries beyond Firebug and jQuery to help us build webapps. In the talk below I walk through the current ecosystem of tools and how they can make your development experience a more enjoyable one.</p>
<p><iframe src="http://player.vimeo.com/video/40929961?byline=0&amp;portrait=0&amp;color=ff0179" frameborder="0" width="600" height="337"></iframe></p>
<p>My slides:<br />
<a href="http://dl.dropbox.com/u/39519/talks/tooling-q1/index.html"><br />
<img src="http://paulirish.com/wp-content/uploads/2012/05/toolingappstackss.jpg" alt="" width="450" /><br />
</a></p>
<p>Because there are so many tools around, I wanted to break them down somehow. I think contextualizing the tools as to what phase of development that assist with works well:</p>
<p><img src="http://dl.dropbox.com/u/39519/talks/tooling-q1/timeline.png" alt="" width="500" /></p>
<p><small>(You could think of the Y-axis here as the amount of code in a project..)</small></p>
<p>Looking at our tools this way we end up with:</p>
<ul>
<li>Boilerplate
<ul>
<li>You likely start a project with more than a single blank text file.</li>
</ul>
</li>
<li>Authoring Abstractions
<ul>
<li>CSS preprocessors, Languages that transpile to JS, Templating</li>
</ul>
</li>
<li>Frameworks and Application Stack
<ul>
<li>Clientside MVC, UI Components, Widgets</li>
</ul>
</li>
<li>Iteration Workflow
<ul>
<li>Browser Devtools, Browser/Unit/Integration Testing</li>
</ul>
</li>
<li>Performance Tuning
<ul>
<li>Profiling, Memory mgmt, browser instrumentation</li>
</ul>
</li>
<li>Build &amp; Optimization
<ul>
<li>Minifiers, Concat, Image compression&#8230;</li>
</ul>
</li>
<li>Deploy
<ul>
<li>Continuous Integration, Continuous deployment</li>
</ul>
</li>
</ul>
<p>I&#039;ve been thinking a lot about workflow and integrating these tools together. Screencasts like <a href="http://tarantsov.com/blog/2012/02/sublime-text-workflow-that-beats-coda-and-espresso/">Andrey Tarantsov&#039;s Sublime Text Workflow</a> really excite me and I&#039;m eager to see more people exploring a robust development setup.</p>
<div update>2012.05.16: Mr Jon Kemp wrote up an outline of my talk with all the links, for easy clickability: <a href="https://gist.github.com/2713513">https://gist.github.com/2713513</a> </div>
]]></content:encoded>
			<wfw:commentRss>http://paulirish.com/2012/talk-tooling-the-webapp-development-stack/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Vendor prefixes are not developer-friendly</title>
		<link>http://paulirish.com/2012/vendor-prefixes-are-not-developer-friendly/</link>
		<comments>http://paulirish.com/2012/vendor-prefixes-are-not-developer-friendly/#comments</comments>
		<pubDate>Mon, 05 Mar 2012 07:06:42 +0000</pubDate>
		<dc:creator>Paul Irish</dc:creator>
				<category><![CDATA[front-end development]]></category>

		<guid isPermaLink="false">http://paulirish.com/?p=1463</guid>
		<description><![CDATA[or&#8230; The premise of prefixes makes unrealistic demands on how developers maintain sites There&#039;s a lot of conversation about making prefixes work (by changing policy), but I believe they already are at odds with the developer workflow. In this proposal I hope to show that: prefixes are not developer-friendly recent features would have been in [...]]]></description>
			<content:encoded><![CDATA[<p>or&#8230;<br />
<h4 class="c6 c16"><span>The premise of prefixes makes unrealistic demands on how developers maintain sites</span></h4>
<p class="c2">
<p class="c6"><span>There&#039;s a lot of conversation about making prefixes work (by changing policy), but I believe they already are at odds with the developer workflow. In this proposal I hope to show that:</span></p>
<ol class="c21" start="1">
<li class="c10 c6"><span>prefixes are not developer-friendly</span></li>
<li class="c6 c10"><span>recent features would have been in a much better state without prefixes</span></li>
<li class="c10 c6"><span>im</span><span>plementor maneuverability is not hampered without prefixes</span></li>
</ol>
<h2 class="c6"><a id="h.rt53c7dxmrwu" name="h.rt53c7dxmrwu"></a><span>The developer experience</span></h2>
<p class="c2">
<p class="c6"><span>If I&#039;m using a feature that&#039;s prefixed, I have a choice of using a tool to help me manage outputting the various prefixes I need or I&#039;ll do it myself. &nbsp;Based on my</span> <span class="c3"><a class="c7" href="http://gopollgo.com/vendor-prefixes-dot-how-do-you-deal-with-them">informal poll last week</a></span><span>&nbsp;it looks like 40% of developers are not using tools. Without tool usage, authors are not including</span> <span class="c4">-ms-, -o-</span> <span>or the unprefixed variants.</span> <span class="c3"><a class="c7" href="https://bug708406.bugzilla.mozilla.org/attachment.cgi?id=579826">Page 4 of Mozilla&#039;s prefix report</a></span><span>&nbsp;verifies this; developers don&#039;t write necessary prefixed properties about half the time (e.g. -o-transform) and in fact, they already write out the unprefixed variant well before the spec goes to CR (and do this well before adding in</span> <span class="c4">-ms-</span><span>&nbsp;or</span> <span class="c4">-o-</span><span>&nbsp;compatibility).</span></p>
<figure>
<p>	<a href="https://bug708406.bugzilla.mozilla.org/attachment.cgi?id=579826"><img height="195" src="http://paulirish.com/wp-content/uploads/2012/03/image00.jpg" width="525"></a></p>
<figcaption><span class="c0">Data summarizing prefixes’ failure with developers [</span><span class="c3 c0"><a class="c7" href="https://bug708406.bugzilla.mozilla.org/attachment.cgi?id=579826">Mozilla's prefix report</a></span><span class="c0">, page 4]</span></figcaption>
</figure>
<p class="c6"><span>This matches my experience as well. I don&#039;t want to return to this code to maintain it, so I&#039;m going to add the unprefixed version. There is less of a cost to me leaving the unprefixed version and assuming I won&#039;t need to change it vs. returning to my CSS of shipped-to-production work to add unprefixed variants each time a feature hits CR.</span></p>
<p class="c2">
<p class="c6"><span>Any successful evangelization plan for prefixes relies on tools, but all tools prioritize the unprefixed state.</span> <span class="c3"><a class="c7" href="http://leaverou.github.com/prefixfree/">prefix-free</a></span><span>,</span> <span class="c3"><a class="c7" href="http://compass-style.org/reference/compass/css3/shared/#mixin-experimental"> compass</a></span><span>,</span> <span>and</span> <span class="c3"><a class="c7" href="http://paulirish.com/2010/introducing-css3please/">css3 please</a></span><span>&nbsp;</span><span class="c0">(I&#039;m a tool vendor, too)</span> <span>all</span><span>&nbsp;heavily suggest starting with the unprefixed state. So any successful evangelization push will just result in the unprefixed version being 100% deployed from the get-go, which ties implementors hands anyway and defeats the purpose of the prefix. I don&#039;t have data to show that developers are not returning to their deployed, production code to update prefixes, but anecdotal evidence suggest so. Opera’s Web Opener team, for example, reports a &lt;10% success rate when directly</span> <span>contacting</span><span>&nbsp;sites to request updates to their prefixes.</span></p>
<p class="c2">
<p class="c6"><span>PPK</span> <span class="c3"><a class="c7" href="http://www.quirksmode.org/blog/archives/2012/02/the_vendor_pref.html">wrote</a></span><span>&nbsp;“If standards make web developers’ lives much harder, web developers ignore standards. This was true back in 1998, it’s still true today.” Without prefixes, implementors have an opportunity to empower developers to do the right thing while still allowing room for innovation.</span></p>
<h2 class="c6"><a id="h.cvtlte27jiti" name="h.cvtlte27jiti"></a><span>Existing W3C prefix policy provides false expectations</span></h2>
<p class="c6"><span class="c3"><a class="c7" href="http://www.quirksmode.org/blog/archives/2012/02/vendor_prefix_p.html">PPK covered this ground well</a></span><span>&nbsp;last week, but in short the policy of binding prefix-drop to CR has failed plenty. Developers have no expectation of when this will happen, nor should they.</span><span>&nbsp;</span><span class="c3"><a class="c7" href="http://webcache.googleusercontent.com/search?q=cache:MaHFQ3cI7OUJ:robert.ocallahan.org/2012/02/alternatives-to-supporting-webkit.html+&amp;cd=1&amp;hl=en&amp;ct=clnk&amp;gl=us">Mozilla’s roc has confirmed</a></span><span>&nbsp;</span><span>developers are using prefixes and they won&#039;t stop regardless of their supposed &#034;experimental&#034; status.</span></p>
<h2 class="c6"><a id="h.jruvgsvd5z3c" name="h.jruvgsvd5z3c"></a><span>Let’s</span><span>&nbsp;imagine there were no prefixes</span></h2>
<p class="c6">So without prefixes, vendors hands would be tied and the first implementation to ship would be the one to stick, right? Nah. I think we can <span>walk through</span><span> a few examples from recent history too see what it would have been like if there had been no vendor prefixes in play.</span></p>
<h3 class="c6"><a id="h.ylr2g0jgmml" name="h.ylr2g0jgmml"></a><span>transitions, transforms, animations</span></h3>
<p class="c6"><span>While plenty of implementation bugs were fixed, the developer would never have updated their syntax and would have complete browser support.</span></p>
<h3 class="c6"><a id="h.4g73m4o21qrt" name="h.4g73m4o21qrt"></a><span>box-sizing</span></h3>
<p class="c6"><span>No problems. No changes.</span></p>
<h3 class="c6"><a id="h.ga2jxpaib1kl" name="h.ga2jxpaib1kl"></a><span>css-gradients</span></h3>
<p class="c6"><span>Gradients has been the most tumultuous css spec, but if they had been implemented without prefixes, the feature would be in a better situation today.</span></p>
<p class="c2">
<p class="c6"><span>Browsers discard properties and values they don’t parse successfully, so developers would have just included a cascade of the iterations of the spec. This would have successfully targeted all shipped versions of gradients:</span></p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.blacktowhite</span> <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">background-image</span><span style="color: #00AA00;">:</span> gradient<span style="color: #00AA00;">&#40;</span>linear<span style="color: #00AA00;">,</span> <span style="color: #000000; font-weight: bold;">left</span> <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> <span style="color: #000000; font-weight: bold;">left</span> <span style="color: #000000; font-weight: bold;">bottom</span><span style="color: #00AA00;">,</span> from<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">black</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span> to<span style="color: #00AA00;">&#40;</span><span style="color: #993333;">white</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* initial webkit proposal */</span>
  <span style="color: #000000; font-weight: bold;">background-image</span><span style="color: #00AA00;">:</span> linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> <span style="color: #000000; font-weight: bold;">black</span><span style="color: #00AA00;">,</span> <span style="color: #993333;">white</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* mozilla proposal */</span>
  <span style="color: #000000; font-weight: bold;">background-image</span><span style="color: #00AA00;">:</span> linear-gradient<span style="color: #00AA00;">&#40;</span>to <span style="color: #000000; font-weight: bold;">bottom</span><span style="color: #00AA00;">,</span> <span style="color: #000000; font-weight: bold;">black</span><span style="color: #00AA00;">,</span> <span style="color: #993333;">white</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* likely the CR */</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<h3 class="c6"><a id="h.c5at201o11iy" name="h.c5at201o11iy"></a><span>f</span><span>lexbox</span></h3>
<p class="c6"><span>Mozilla started Flexbox v1, WebKit followed with a slightly stronger implementation. Both Alex Russell (</span><span class="c3"><a class="c7" href="http://infrequently.org/2009/08/css-3-progress/">post</a></span><span>) and I (</span><span class="c3"><a class="c7" href="http://www.html5rocks.com/en/tutorials/flexbox/quick/">article</a></span><span>) recommended boilerplate code that assumed no change for unprefixed state and blocked out</span> <span class="c3"><a class="c7" href="http://samples.msdn.microsoft.com/ietestcenter/#css3flexbox">IE10’s upcoming implementation</a></span><span>. &nbsp;</span></p>
<p class="c2">
<p class="c6"><span>Flexbox v2 debuted and has an implementation in Chrome. Syntax is already different enough that the fallback story is happy. Without prefixing, the resulting browser support of shipped author code would be better. Again, I see no drawbacks in this example had these properties not been prefixed.</span></p>
<h3 class="c6"><a id="h.uydsa7iza1af" name="h.uydsa7iza1af"></a><span>requestAnimationFrame</span></h3>
<p class="c6"><span>Soon after this feature debuted,</span> <span class="c3"><a class="c7" href="http://paulirish.com/2011/requestanimationframe-for-smart-animating/">shims were written</a></span><span>&nbsp;to manage all prefixed implementations including the unprefixed state. &nbsp;(Sorry). Combined with quick adoption, browser &nbsp;have as much ability to change the feature as they would if it were unprefixed to start (that is, not much ability).</span></p>
<h2 class="c6"><a id="h.virs3o2io31f" name="h.virs3o2io31f"></a><span>Risks and Resolutions</span></h2>
<p class="c6"><span>In CSS, new breaking changes have to introduce syntax changes that would break previous parsing attempts, as seen in the gradients example. However, if the semantics of a feature changed without syntax changes, we’d have a situation where developers are forced to detect each behavior and write compatibility code.</span></p>
<p class="c2">
<p class="c6"><span class="c4">border-image</span><span>&nbsp;introduced a similar situation recently: WebKit changed its semantics and required a `fill` keyword to match previous behavior. Sounds like trouble, but this change happened when the unprefixed variant was exposed, matching implementor best practices of changing a feature. The result: Greg Rewis of Adobe</span> <span class="c3"><a class="c7" href="http://blog.assortedgarbage.com/2011/12/change-happens/">blogging that Chrome broke his site</a></span><span>. </p>
<p>This is truly how it is supposed to work, but still expectations are broken. Developers have plenty of motivation to leave in the unprefixed state at the beginning, but this means that any change will always break them. With prefixes or without prefixes, we would have gotten the same resolution here.</span></p>
<p class="c6"><span>In JavaScript/DOM we have a more secure safety net, as behavior can be detected. Take for example</span> <span class="c4">querySelectorAll()</span><span>; it was shipped without prefix and while implementation differences exist, JavaScript libraries</span> <span class="c3"><a class="c7" href="https://github.com/dperini/nwmatcher/blob/178bad9043/src/nwmatcher.js#L316-355"> detect and route around them</a></span><span>. Of course, semantics can change and the prefix → unprefix move provides an opportunity, but in my experience it’s more common to see these changes happen early on (like</span> <span class="c3 c4"><a class="c7" href="https://groups.google.com/a/chromium.org/group/chromium-html5/browse_thread/thread/2c963f6ecdae0573?pli=1"> blob.slice()</a></span><span class="c3"><a class="c7" href="https://groups.google.com/a/chromium.org/group/chromium-html5/browse_thread/thread/2c963f6ecdae0573?pli=1">’s change</a></span><span>).</span></p>
<p class="c2">
<p class="c6"><span>Without prefixes there will be no mechanism to notify developers “beware, thar be dragons!”. Prefixes don’t do this now, as their removal isn’t prioritized so developers accept them as a fact of life rather than an indication of instability. &nbsp;The solution: getting accurate metrics of feature usage and adoption can inform implementors of if it’s too late to change a feature or still early enough to modify. &nbsp;</span></p>
<h2 class="c6"><a id="h.lwonm0v1qh5p" name="h.lwonm0v1qh5p"></a><span>Yes, but&#8230;</span></h2>
<p class="c6"><span>As vendor prefixing is a well-worn debate, allows me to deflect common challenges to this proposal to:</span></p>
<ol class="c9" start="1">
<li class="c10 c6"><span class="c3"><a class="c7" href="http://hsivonen.iki.fi/vendor-prefixes/#rebuttal">Vendor Prefixes Are Hurting the Web</a></span><span>&nbsp;by Henri Sivonen (see “Pre-Emptive Rebuttal to the Most Common Counter-Arguments” and on)</span></li>
<li class="c10 c6"><span class="c3"><a class="c7" href="http://webcache.googleusercontent.com/search?q=cache:MaHFQ3cI7OUJ:robert.ocallahan.org/2012/02/alternatives-to-supporting-webkit.html+&amp;cd=1&amp;hl=en&amp;ct=clnk&amp;gl=us"> Alternatives To Supporting -webkit Prefixes In Other Engines</a></span> <span>by Robert O’Callahan</span></li>
<li class="c10 c6"><span class="c3"><a class="c7" href="http://www.quirksmode.org/blog/archives/2010/03/css_vendor_pref.html">CSS vendor prefixes considered harmful</a></span><span>&nbsp;by PPK (from 2010)</span></li>
</ol>
<h2 class="c6"><a id="h.3rdo0i7r5wqu" name="h.3rdo0i7r5wqu"></a><span>Logical</span> <span>Actions</span></h2>
<ol class="c9" start="1">
<li class="c10 c6"><span class="c3">The community to evangelize use of tools</span><span>&nbsp;like <a href="http://compass-style.org/">Compass</a> that protect authors from bad authoring practices and so folks who publish tutorials don&#039;t solely define their <code>-webkit-</code> styles.</span></li>
<li class="c10 c6"><span>Browsers to track feature adoption to inform better decision-making around changes. (Answering the question: Are we stuck?) </span>
<ul class="c8" start="1">
<li>This data should be public and update regularly.</li>
<li class="c6 c11"><span>Should be based on pageviews, to accurately weigh when a CNN.com implements something</span></li>
</ul>
</li>
<li class="c10 c6"><span>Other browsers to implement a defined set of <code>-webkit-</code> prefixes on their mobile browsers. I don’t see a way around this nor do I think it’s bad.</span></li>
<li>Drop the notion that evangelism gets us out of this mess. I&#039;ve been doing this evangelism myself for the past 3 years, but I&#039;m also a realist. This situation needs new policy and (clearly) needs speed out of the CSS WG.
<li class="c10 c6"><span>Browsers to clarify a</span> <span class="c3"><a class="c7" href="https://docs.google.com/present/view?id=ajdqczcmx5pv_148ggbxbfg2">feature detection strategy</a></span><span>&nbsp;that it supports. For example, developers have no reliable way of detecting</span> <span>Chrome’s 3D transforms support</span> <sup> <span class="c12">[</span><span class="c3 c12"><a class="c7" href="http://code.google.com/p/chromium/issues/detail?id=104687">1</a></span><span class="c12">,</span> <span class="c3 c12"><a class="c7" href="http://code.google.com/p/chromium/issues/detail?id=92509">2</a></span><span class="c12">]</span></sup><span>&nbsp;or discounting Chrome’s</span> <span class="c4">-webkit-hyphens</span> <span>false positive</span><span class="c12">[</span><span class="c3 c12"><a class="c7" href="http://code.google.com/p/chromium/issues/detail?id=107111">3</a></span><span class="c12">]</span><span>. All proposals for handling experimental properties need accurate feature detection techniques to be effective.</span></li>
</ol>
<p>In summary, the ideal developer experience is 1) using tools to manage prefixes and 2) always using the unprefixed state to reduce maintenance cost. These two facts eviscerate the benefits that prefixes were introduced for, leaving only the drawbacks. </p>
]]></content:encoded>
			<wfw:commentRss>http://paulirish.com/2012/vendor-prefixes-are-not-developer-friendly/feed/</wfw:commentRss>
		<slash:comments>42</slash:comments>
		</item>
		<item>
		<title>* { box-sizing: border-box } FTW</title>
		<link>http://paulirish.com/2012/box-sizing-border-box-ftw/</link>
		<comments>http://paulirish.com/2012/box-sizing-border-box-ftw/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 17:11:59 +0000</pubDate>
		<dc:creator>Paul Irish</dc:creator>
				<category><![CDATA[front-end development]]></category>

		<guid isPermaLink="false">http://paulirish.com/?p=1429</guid>
		<description><![CDATA[One of my least favorite parts about layout with CSS is the relationship of width and padding. You&#039;re busy defining widths to match your grid or general column proportions, then down the line you start to add in text, which necessitates defining padding for those boxes. And &#039;lo and behold, you now are subtracting pixels [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://css-tricks.com/box-sizing/"><img src="http://css-tricks.com/wp-content/uploads/2010/09/widthbox.png" align=right width=133></a>One of my least favorite parts about layout with CSS is the relationship of width and padding. You&#039;re busy defining widths to match your grid or general column proportions, then down the line you start to add in text, which necessitates defining padding for those boxes. And &#039;lo and behold, you now are subtracting pixels from your original width so the box doesn&#039;t expand. </p>
<p>Ugh. If I say the width is 200px, gosh darn it, it&#039;s gonna be a 200px wide box even if I have 20px of padding. So as you know, this is NOT how the box model has worked for the past ten years. Wikipedia has a great <a href="http://en.wikipedia.org/wiki/Internet_Explorer_box_model_bug#Background">history of this box model</a>. <ins><a href="http://www.jefftk.com/news/2012-02-18.html">Jeff Kaufman also dove into the history</a></ins></p>
<p><i>Anyway</i>, I have a recommendation for your CSS going forward:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/* apply a natural box layout model to all elements */</span>
<span style="color: #00AA00;">*</span> <span style="color: #00AA00;">&#123;</span> -moz-box-sizing<span style="color: #00AA00;">:</span> border-box<span style="color: #00AA00;">;</span> -webkit-box-sizing<span style="color: #00AA00;">:</span> border-box<span style="color: #00AA00;">;</span> box-sizing<span style="color: #00AA00;">:</span> border-box<span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>This gives you the box model you want. Applies it to all elements. Turns out many browsers already <a href="http://paulirish.com/wp-content/uploads/2011/gplus-boxsizing.html">use border-box for a lot of form elements</a> (which is why inputs and textareas look diff at width:100%;) But applying this to all elements is safe and wise.</p>
<h4>Browser support</h4>
<p>Due to browser support, this recommendation is only for projects that support IE8 and up. (<a href="https://developer.mozilla.org/En/CSS/Box-sizing#Browser_compatibility">Full browser compat at MDN</a>) Firefox <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=243412">still needs</a> the <code>-moz-</code> prefix, and <= iOS4, Android <= 2.3 need the <code>-webkit-</code>, but everyone else uses the unprefixed. You can find more info about a box-sizing polyfill for IE6 &#038; 7 at <a href="//html5please.us/#box-sizing">html5please.us/#box-sizing</a> (which was developed with <code>* { box-sizing: border-box</code>!).</p>
<h4>Is it safe to use?</h4>
<p>Totally. jQuery works pretty great with it <small>(<a href="http://bugs.jquery.com/ticket/11004">except this</a>)</small>. As mentioned, browser support is excellent. And a number of projects use this layout model by default, <a href="http://code.google.com/codesearch#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/inspector/front-end/inspectorCommon.css&#038;type=cs&#038;l=28">including the WebKit Web Inspector</a> (aka Chrome DevTools). I heard from Dutch front-end developer Yathura Thorn on his experience:</p>
<blockquote><p>We've been using <code>*{box-sizing: border-box;}</code> in one of my projects (deployed in production, averaging over 1mln visits a month) at work for about a year now, and it seems to be holding up just fine. The project has been tested in IE8 &#038; 9 and the latests Firefox and Chrome versions and we've had no problems. All jQuery (+UI) offset calculations and animations run fine, even in any element we've displayed as inline-block. As of late we've started testing the project on mobile devices (iPhone, iPad and Android) and we've had no issues regarding box-sizing with any of them yet, so it seems to work just fine.</p></blockquote>
<p>One of my favorite use-cases that border-box solves well is columns. I might want to divide up my grid with 50% or 20% columns, but want to add <code>padding</code> via px or em. Without CSS's upcoming <code>calc()</code> this is impossible... unless you use border-box. So easy. :) Another good one is applying 100% width and then wanting to add a padding to that element. </p>
<h4>Performance</h4>
<p><small>Lastly on <a href="//twitter.com/miketaylr">@miketaylr</a>'s inquiry, I also tested perf overhead. <a href="https://docs.google.com/spreadsheet/ccc?key=0ArK1Uipy0SbDdDJSdGRjdEY0dWc0bGE4Y3huUWNIUmc">Anecdotal evidence</a> suggests border-box isn't significant.</small> </p>
<p>You might get up in arms about the universal <code id="starperf">*</code> selector. Apparently you've heard its slow. Firstly, it's not. It is as fast as <code>h1</code> as a selector. It can be slow when you specifically use it like <code>.foo > *</code>, so don't do that. Aside from that, you are not allowed to care about the performance of * unless you concatenate all your javascript, have it at the bottom, minify your css and js, gzip all your assets, and losslessly compress all your images. If you aren't getting 90+ Page Speed scores, it's way too early to be thinking about selector optimization. See also: <a href="http://calendar.perfplanet.com/2011/css-selector-performance-has-changed-for-the-better/">CSS Selector Performance has changed! (For the better)</a> by Nicole Sullivan.</p>
<p>So... enjoy and hope you'll find this a far more natural layout model.</p>
<div update>02.01.2012: Added a section on performance</p>
<p>2012.02.03: Included webkit prefixed property and usecase of a 100% width box.</p>
<p>2012.02.22: Added link to Jeff Kaufman's history page.
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://paulirish.com/2012/box-sizing-border-box-ftw/feed/</wfw:commentRss>
		<slash:comments>124</slash:comments>
		</item>
		<item>
		<title>Moving The Web Forward</title>
		<link>http://paulirish.com/2011/moving-the-web-forward/</link>
		<comments>http://paulirish.com/2011/moving-the-web-forward/#comments</comments>
		<pubDate>Sun, 04 Dec 2011 03:33:24 +0000</pubDate>
		<dc:creator>Paul Irish</dc:creator>
				<category><![CDATA[front-end development]]></category>

		<guid isPermaLink="false">http://paulirish.com/?p=1384</guid>
		<description><![CDATA[This Wednesday, me and a ragtag team of like-minded developers launched Move the Web Forward, an initiative to direct people&#039;s passions into productive efforts that assist not only the web community but the entire web platform. People often feel the need to &#034;give back&#034;, but when it comes to contributing it&#039;s a challenge to find [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://movethewebforward.org/"><img src="http://paulirish.com/wp-content/uploads/2011/12/mwf-ss.jpg"></a></p>
<p>This Wednesday, me and a ragtag team of like-minded developers launched <a href="http://movethewebforward.org/">Move the Web Forward</a>, an initiative to direct people&#039;s passions into productive efforts that assist not only the web community but the entire web platform. People often feel the need to &#034;give back&#034;, but when it comes to contributing it&#039;s a challenge to find the right place. This is something I&#039;ve seen happen firsthand in the jQuery and HTML5 Boilerplate communities.</p>
<p>The MWF effort was inspired by <a href="https://twitter.com/#!/dglazkov/status/20215500109778944">a tweet</a> by WebKit extraordinaire Dimitri Glazkov. Me and <a href="http://twitter.com/divya">Divya</a> started brainstorming on <a href="https://etherpad.mozilla.org/igotmybeanie">an etherpad</a>. We rounded up some folks on Google+ and IRC and started collecting a lot of excellent resources. Soon after a design was in the making and we started working in an open repo on github&#8230;</p>
<p>At this point, I want to call out Mat Marquis aka <a href="http://twitter.com/wilto">@wilto</a>, in particular, for really taking early ownership of this project and spearheading the design and frontend development. His efforts really made the site communicate its content effectively.</p>
<p>Naturally the site is on github <a href="https://github.com/h5bp/movethewebforward">if you&#039;d like to contribute</a>. We have a few <a href="https://github.com/h5bp/movethewebforward/issues">issues open</a> that we&#039;ll be improving the site with. <small>(Also, let me just say for projects like this, a <code>cron</code> job to pull latest from Github makes for such a relaxing workflow.)</small></p>
<p>Thanks to Divya, Mat, <a href="http://twitter.com/aaronforsander">Aaron Forsander</a>, <a href="http://twitter.com/c_t_montgomery">Connor Montgomery</a>, <a href="http://twitter.com/stefsull">Stephanie Rewis</a> (<a href="http://www.webstandards.org/2011/11/30/beyond-the-blue-beanie/">great writeup!)</a>, <a href="http://twitter.com/necolas">Nicolas Gallagher</a>, <a href="http://twitter.com/addyosmani">Addy</a>, and <a href="https://github.com/h5bp/movethewebforward/contributors">all these awesome folk</a>. Truly a socially developed site; everyone collaborating on IRC, etherpad and github (with as many having commit rights as possible). Fun project to work on and I hope to see everyone find the right place for them to get more involved in actively making the web as awesome as you want it to be.</p>
<div update>2011.12.02: #movingwebforward in action!</div>
<p>Beyond all the people who signed up (with the avatars) on the site to commit to things.. We&#039;ve seen some moves in the community already:</p>
<ul>
<li>Ben Schwarz is <a href="//w3.org/QA/2011/11/ben_schwarz_joining_csswg.html">joining the CSSWG</a> to redesign how specs look and act</p>
<li>Connor Montgomery, <a href="//bugzil.la/702159">wrote up a patch</a> regarding fullscreen support in Firefox
<li>Josh Adam is <a href="http://joshadam.ca/?p=13">inspired</a> to become better
<li>Alex Ball is going to <a href="http://alexball.tv/blog/out-to-change-peoples-lives/">contribute to BuddyPress</a>
<li>Lots of folks in the <a href="http://www.smashingmagazine.com/2011/11/30/the-smashing-guide-to-moving-the-web-forward-community/">accompanying Smashing Magazine</a> article are ready to dig in.
<li>Colin Gourlay will be <a href="http://blog.colin-gourlay.com/blog/2011/12/moving-the-web-forward/">documenting what he learns</a> more
</ul>
<p><code>\o\ \o/ /o/</code></p>
]]></content:encoded>
			<wfw:commentRss>http://paulirish.com/2011/moving-the-web-forward/feed/</wfw:commentRss>
		<slash:comments>42</slash:comments>
		</item>
		<item>
		<title>Web browser, frontend and standards feeds to follow</title>
		<link>http://paulirish.com/2011/web-browser-frontend-and-standards-feeds-to-follow/</link>
		<comments>http://paulirish.com/2011/web-browser-frontend-and-standards-feeds-to-follow/#comments</comments>
		<pubDate>Tue, 22 Nov 2011 03:57:04 +0000</pubDate>
		<dc:creator>Paul Irish</dc:creator>
				<category><![CDATA[front-end development]]></category>

		<guid isPermaLink="false">http://paulirish.com/?p=1370</guid>
		<description><![CDATA[While a lot of conversation has moved to twitter and G+, hugely useful information is still published regularly to blogs. I&#039;ve shared collections of frontend development feeds twice before. Now I&#039;m back, but with two choices: Frontend development exploration, techniques, tips. Lots of JavaScript. 258 feeds. Standards development and browser dev news. 49 feeds. It&#039;s [...]]]></description>
			<content:encoded><![CDATA[<p>While a lot of conversation has moved to twitter and G+, hugely useful information is still published regularly to blogs. I&#039;ve shared collections of frontend development feeds <a href="http://paulirish.com/2008/front-end-development-rss-feeds/">twice</a> <a href="http://paulirish.com/2010/front-end-development-feeds-to-follow/">before</a>. Now I&#039;m back, but with two choices:</p>
<table>
<tr>
<td>
<a href="http://www.google.com/reader/bundle/user%2F11165870484951445324%2Fbundle%2Ffrontend"><img src="http://paulirish.com/i/bc7870.png" style="width: 250px"><br />
Frontend development exploration, techniques, tips. Lots of JavaScript. </a><br />
258 feeds. </p>
<td>
<a   href="http://www.google.com/reader/bundle/user%2F11165870484951445324%2Fbundle%2Ffrontend-standards%2Bbrowsers"><img src="http://paulirish.com/i/c25980.png"  style="width: 250px"><br />
Standards development and browser dev news. </a><br />
49 feeds.<br />
</table>
<p>It&#039;s easy to click through and subscribe in Google Reader. There is also OPML files if you want to take &#039;em elsewhere.</p>
<p><small>Also, a short commentary on blogging vs tweeting.. while a lot of people have changed to twitter+jsfiddle only, tweets are not available via search after 30 days, so if you expect anything you share to last, blog it for real. :)</small></p>
<div update>quick protip: In google reader it&#039;s best to set Reader to only <b>Show updated</b> (<a href="http://paulirish.com/i/2e8940.png">screenshot</a>), so your left sidebar doesn&#039;t show feeds with nothing new in &#039;em. #shouldbedefault</div>
<hr />
<div update>2011.12.02: Adding newsletters!</div>
<p>Also please subscribe to these guys which do a great job of highlighting the top stories of the week:</p>
<ul>
<li><a href="http://javascriptweekly.com/">JavaScript Weekly</a>
<li><a href="http://web-design-weekly.com/">Web Design Weekly</a>
<li><a href="http://html5weekly.com/">HTML5 Weekly</a>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://paulirish.com/2011/web-browser-frontend-and-standards-feeds-to-follow/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>The Fundamentals, Primitives and History of HTML5</title>
		<link>http://paulirish.com/2011/primitives-html5-video/</link>
		<comments>http://paulirish.com/2011/primitives-html5-video/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 13:39:37 +0000</pubDate>
		<dc:creator>Paul Irish</dc:creator>
				<category><![CDATA[front-end development]]></category>

		<guid isPermaLink="false">http://paulirish.com/?p=1358</guid>
		<description><![CDATA[Just gave this talk at W3Conf about some of the innerworkings of HTML5. Lots of did-you-know and cool insight into how browsers work. 37 minutes long, The Primitives of the HTML5 Foundation &#8211; Slides I do discuss optional start and end tags as well as not quoting your attributes. I concede that these ideas scare [...]]]></description>
			<content:encoded><![CDATA[<p>Just gave this talk at <a href="http://w3conf.org/">W3Conf</a> about some of the innerworkings of HTML5. Lots of did-you-know and cool insight into how browsers work. 37 minutes long,</p>
<p><iframe width="600" height="345" src="http://www.youtube.com/embed/WxmcDoAxdoY" frameborder="0" allowfullscreen></iframe></p>
<p><a href="http://dl.dropbox.com/u/39519/talks/html5-foundation/index.html">The Primitives of the HTML5 Foundation &#8211; Slides</a></p>
<p>I do discuss optional start and end tags as well as not quoting your attributes. I concede that these ideas scare the shit out of people. In fact, when I first heard <a href="http://code.google.com/speed/articles/optimizing-html.html">Jens Meiert propose the idea in 2009</a> my brain rejected it.</p>
<p><img src="http://meiert.com/en/upload/2009/07/wdr-3.png" alt="comic by Jens Meiert"></p>
<p> Still, I think many of the markup parsing curiosities that can be frightening only need to be understood by HTML minifiers. Always leave it up to tools to make your frontend payload smaller; you just want the most comfortable and maintainable authoring environment possible.</p>
<p>I shared them in this talk because 1) it can lead to writing more beautiful HTML that is easier to maintain. Leaving off <code>&lt;/li></code>&#039;s is a good example. 2) I just want people to consider browsers less of a black box of uncertainty. There are rules and specs that define behavior, so once understood you can feel confident relying on a consistent behavior. We certainly don&#039;t have that consistency across all the web platform, but for these examples you do.</p>
<p>In summary, I&#039;m not advocating you write more spartan markup if you don&#039;t want to. But if it makes you feel good, by all means, go at it; you know now how the browsers work. </p>
<p><small>ps. the monkey HTML shirt I wore is from a store in tokyo; solo location. but they also sell on this <a href="http://item.rakuten.co.jp/icefield/c/0000000245/">delightfully overwhelming site</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://paulirish.com/2011/primitives-html5-video/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>Semantics in practice and mapping semantic value to its consumers</title>
		<link>http://paulirish.com/2011/semantics/</link>
		<comments>http://paulirish.com/2011/semantics/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 18:25:38 +0000</pubDate>
		<dc:creator>Paul Irish</dc:creator>
				<category><![CDATA[front-end development]]></category>

		<guid isPermaLink="false">http://paulirish.com/?p=1345</guid>
		<description><![CDATA[Divya Manian kicked off a good bout of discussion of HTML semantics with her post Our pointless pursuit of semantic value. It called into question the amount of time we spend on identifying the Right and Best ways of marking up our content while highlighting details of some of the consumers of semantics like assistive [...]]]></description>
			<content:encoded><![CDATA[<p>Divya Manian kicked off a good bout of discussion of HTML semantics with her post <a href="http://coding.smashingmagazine.com/2011/11/11/our-pointless-pursuit-of-semantic-value/">Our pointless pursuit of semantic value</a>. It called into question the amount of time we spend on identifying the Right and Best ways of marking up our content while highlighting details of some of the consumers of semantics like assistive technology (AT). Jeremy Keith responded in <a href="http://coding.smashingmagazine.com/2011/11/12/pursuing-semantic-value/">Pursing Semantic Value</a>. I wanted to chime in on Jeremy&#039;s post so, I&#039;ve published below my comment from the original post:</p>
<hr style="margin-bottom:30px">
<p>Thanks Jeremy for raising a practical example. This discussion is a tough one as much of HTML5 has clear semantics (nav/header/footer), but then parts have underdeveloped semantic meaning or add confusion to authors.</p>
<p><a rel="nofollow" href="https://gist.github.com/1360458">Jeremy’s gist</a> is a great example, in fact, of a poor time investment in semantics. It ascribes value to the new method of document outlining, which recently sees different styling for h1’s depending on section nesting. Recent browsers do indeed <em>style</em> the h1’s different; but if you actually structure your document as such, you do it to the detriment of your screenreader users: they will either <a rel="nofollow" href="http://www.accessibleculture.org/articles/2011/04/html5-aria-2011/#comment-4">get these h1’s all as top level headlines</a> or a <a rel="nofollow" href="http://www.accessibleculture.org/articles/2011/10/jaws-ie-and-headings-in-html5/">mishmash of heading nesting levels that don’t match any expected behavior</a> <small>(As an aside, this is completely unrelated but if anyone’s curious what CSS it takes to make that new h1 styling work across browsers… <strong><a rel="nofollow" href="https://github.com/cboone/hypsometric-css/blob/ac1e1132e9750f8e46b6be965e6fb4232141d63b/html5/html5-defaults.css#L144-275">feast your eyes on this beauty</a></strong>)</small></p>
<p>Additionally, <code>&lt;hgroup&gt;</code> is <a rel="nofollow" href="http://www.w3.org/html/wg/wiki/ChangeProposals#ISSUE-164:_no_hgroup">on the chopping block</a> and is  <a rel="nofollow" href="http://www.accessibleculture.org/articles/2011/10/jaws-ie-and-headings-in-html5/#comment-4">not supported</a> by JAWS.   Suffice it to say, Now is not a smart time to invest your time understanding the unwieldy <a rel="nofollow" href="http://www.456bereastreet.com/archive/201103/html5_sectioning_elements_headings_and_document_outlines/">document outlining algorithm</a>. <a rel="nofollow" href="http://coding.smashingmagazine.com/2011/11/12/pursuing-semantic-value/comment-page-1/#comment-554677">Luke’s comment</a> digs in deeper to the messy semantic state of the outlining algorithm.</p>
<p><a href="https://twitter.com/#!/patrick_h_lauke/status/136106781821779968"><img src="http://paulirish.com/i/ff0740.png" width=500 alt="patrick lauke tweets: semantics are hard.. lets go shopping.. and CREATE EPIC SHIT.." title="patrick does devrel for opera, too!"></a></p>
<p>The practicalities of making accessible web content are messy, but important.  The fact that we seem to spend more time on <code>div</code> vs <code>article</code> vs. <code>section</code> than on learning ARIA is a crime. (Furthermore, learning ARIA isn’t complete unless you’re <a rel="nofollow" href="http://zomigi.com/blog/videos-of-screen-readers-using-aria/">listening to the results</a> in a screenreader.)</p>
<p><span id="recommendation">My recommendation:</span> follow the work of <a rel="nofollow" href="http://www.paciellogroup.com/blog/">Steve Faulkner</a> and <a rel="nofollow" href="http://www.accessibleculture.org/articles/">Jason Kiss</a>. These two guys are publishing the only data that illuminates what’s actually happening at the AT level in response to our work. <a rel="nofollow" href="http://www.paciellogroup.com/blog/2011/11/html5-semantics-and-accessibility/">Steve’s comment on this post</a> does a solid job of unraveling this complex topic by showing all the many layers involved: specs, editors, authoring experience, aria, browser impl, screenreader compliance.</p>
<p>Also if you’d like to investigate what’s happening under the covers, I recommend:</p>
<ul>
<li><a rel="nofollow" href="http://www.w3.org/TR/html-aapi/">HTML to Platform Accessibility APIs Implementation Guide</a> – Understand how HTML elements and attributes map to accessibility APIs</li>
<li><a rel="nofollow" href="http://www.accessibleculture.org/articles/2011/04/html5-aria-2011/">HTML5, ARIA Roles, and Screen Readers in March 2011</a> –  Implementation of HTML5 elements in screenreaders isn’t perfect yet.</li>
<li><a rel="nofollow" href="http://www.paciellogroup.com/blog/2010/04/html5-and-the-myth-of-wai-aria-redundance/">HTML5 and the myth of WAI-ARIA redundance</a> –  Will HTML5 make the use of WAI-ARIA in HTML redundant? Definitely not.</li>
<li><a rel="nofollow" href="http://www.paciellogroup.com/blog/2010/10/jaws-support-for-aria/">JAWS Support for ARIA</a> –  Originally published by Freedom Scientific as a MS Word document. *facepalm*</li>
<li><a rel="nofollow" href="http://www.html5accessibility.com/">html5accessibility.com</a> –  Also from Steve Faulkner; this research is hugely comprehensive and backs up the examples Divya provided</li>
<li><a rel="nofollow" href="http://www.delicious.com/paul.irish/aria">delicious.com/paul.irish/aria</a> – My own bookmarks on semantics, aria and accessibility.</li>
</ul>
<p>In summary, I think it’s best to ground our efforts in pursuing semantic value by identifying precisely what the results will be. A fair rule of thumb: when it comes to semantics, if it’s confusing enough for you to ask a question about it, chances are the answer won’t make a realistic difference. Let’s build incredible stuff on this impressive platform and avoid getting mired in semantic inconsequentialities. There’s also room for more author engagement and screen-reader involvement in the standards process regarding these issues; but that’s a large topic I’ll have to save for another day.</p>
]]></content:encoded>
			<wfw:commentRss>http://paulirish.com/2011/semantics/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>What feature would improve the web?</title>
		<link>http://paulirish.com/2011/what-feature-would-improve-the-web/</link>
		<comments>http://paulirish.com/2011/what-feature-would-improve-the-web/#comments</comments>
		<pubDate>Wed, 19 Oct 2011 22:14:21 +0000</pubDate>
		<dc:creator>Paul Irish</dc:creator>
				<category><![CDATA[front-end development]]></category>

		<guid isPermaLink="false">http://paulirish.com/?p=1325</guid>
		<description><![CDATA[Yehuda Katz and I recently asked this question on Twitter. We&#039;re very interested in seeing web browsers advance and implement the interests of web developers. We got a great response (230+ responses). After a triage of the responses, we narrowed down things to a hitlist that jumped out as having no immediate solution and would [...]]]></description>
			<content:encoded><![CDATA[<p>Yehuda Katz and I <a href="https://twitter.com/#!/wycats/status/121345147345711104">recently</a> <a href="https://twitter.com/#!/paul_irish/status/121418057775190016">asked</a> this question on Twitter.</p>
<p><img src="http://paulirish.com/i/2dad10.png" othersrc="http://paulirish.com/i/566c00.png" alt="What is the one browser bug you could fix or feature you could add to significantly improve what you could build on the web?"></p>
<p>We&#039;re very interested in seeing web browsers advance and implement the interests of web developers.</p>
<p>We got a great response (230+ responses). After a triage of the responses, we narrowed down things to a hitlist that jumped out as having no immediate solution and would be great for the platform:</p>
<ul>
<li>flash capturing keyboard events, cursor</li>
<li>WYSIWYG form element</li>
<li>inset text shadow</li>
<li>css blend modes
<ul>
<li>usecase: image i want to tint on hover</li>
</ul>
</li>
<li>Why CORS requires a preflight with cookies disabled</li>
<li>being able to verify the content sent was the content delivered. Probably via headers &amp; apis useful when deploying for mobile/roaming use or in corporate networks when behind proxies.</li>
<li>Text Flow or caret(Position/Range)FromPoint</li>
<li>A unified and publicized set of selectors for styling the shadow dom of input/select/etc. elements</li>
<li>a way to manipulate asset request urls with js on the client before they go out (for serving responsive imgs, etc).
<ul>
<li>or media query attributes on image tags</li>
</ul>
</li>
<li>UIKit for Javascript.
<ul>
<li>Native UI bindings to JS that remove overhead and layers of HTML+DOM in the way. Sony&#039;s Trilithium did this by binding HW accelerated scene graph, ala Core Animation. see also <a href="http://www.satine.org/archives/2011/09/27/playstation-web-app/">playstation webapp</a></li>
</ul>
</li>
<li>render a DOM element to canvas, webgl</li>
<li>DirectWrite in all browsers on all platforms.</li>
<li>simulate keyboard and CLICK events</li>
<li>a base tag for CSS</li>
<li>Filesystem API limitation: IDE cant save files back to disk in original location</li>
<li>XHR2</li>
<li>fragment.innerHTML</li>
</ul>
<hr />
<hr />
<p>There are a lot more where that came from. A few people wanted to see all the responses&#8230; So.. here you are. :)</p>
<p><span id="more-1325"></span></p>
<p><del>Right now they are partially categorized.<a href="https://etherpad.mozilla.org/whatfeaturewouldimprovetheweb"> I&#039;d love your help with that..</a></del><ins>Thank you SO much to rworth and evan, who organized this list. Awesome :)</ins></p>
<h4 id="broad-and-sweeping">Broad and Sweeping</h4>
<ul>
<li>a fundamental rethinking of the DOM would be a good start.    ~blrandel</li>
<li>Get rid of HTML. Make web JavaScript/CSS driven.    ~nextinterfaces</li>
<li>the standards process    ~sethladd</li>
<li>Browsers suck. Give us a VM that lets us not care about the browser.   ~rxgx</li>
<li>the &ldquo;feature&rdquo; that allows browsers to render bad/poorly formed HTML. I want that fixed please.    ~durple</li>
<li>In a perfect world I&rsquo;d say ditch the DOM and give me a real displaylist-style interface, with a consistent composite architecture.    ~awebneck</li>
<li>consistent implementation of standards across browsers.    ~BrettBearce</li>
<li>performance    ~mislav</li>
<li>Should be ilegal to release a browser that doesn&rsquo;t accomplish all the w3c standards    ~FedePaterno</li>
<li>web page cloud pre render. Then pipe one asset to the browser. :-)    ~halfcube</li>
<li>create something that makes ads suck less and do not blocking my page    ~jaydson</li>
</ul>
<h4 id="just-everything-all-of-it-and-then-some">Just Everything, all of it, and then some</h4>
<ul>
<li>all HTML5 features supported by all browsers.    ~chrisreister</li>
<li>full html5/css3 support cross browser and signed off specs! #inaperfectworld    ~Japhex</li>
<li>Better support for html5 and css3 (all browsers and platforms) = less hacks, less vendor prefixes, less js = happier life :)    ~rodrigonoales</li>
</ul>
<h4 id="ie--mixed-browser-support">IE &amp; Mixed Browser Support</h4>
<ul>
<li>Can I say &ldquo;IE&rdquo;? Or is that joke too overdone already?    ~coreyschram</li>
<li>as usual, IE is holding everything up. I&rsquo;d like wide support for SVG today.    ~nathan_vaughn</li>
<li>other browsers to keep up the speed of Chrome&rsquo;s implementation of standards and to auto-update to latest version    ~illyriad</li>
<li>force update IE.    ~Fallion</li>
<li>An alternative to animated gifs (apng)! FOR GOD&rsquo;S SAKE!!    ~TechBobOmb</li>
<li>fast upgrade cycle for IE comparable to Chrome&rsquo;s excellent model, and the dropping of compatibility modes going forwards    ~ffub</li>
<li>Add support for data:image/png;base64, &hellip; to IE6/7.    ~ndorfin</li>
<li>sorry, release schedule != update strategy; the latter is what I meant to say. Resubmitting&hellip;    ~jswartwood</li>
<li>IE&rsquo;s update strategy. Most important feature to add to the Web is an ability to use feature X in reasonable time.    ~jswartwood</li>
<li>how many people answered with IE?    ~omarqureshi</li>
<li>Legacy Internet Explorers. Patch them all to autoupdate to IE9+ or a third party engine.    ~joegaffey</li>
<li>i&rsquo;d fix the &lsquo;Microsoft having a browser&rsquo; bug    ~shanecarmody</li>
<li>oh yeah ie7,8,9    ~negrond</li>
<li>ie6    ~negrond</li>
<li>Advanced CSS3 selectors in IE7 and 8. If I had to choose one it would be nth-child.    ~Chris_Krammer</li>
<li>if I had the chance to fix one it would be to get rid of IE. :)    ~markbates</li>
<li>IE    ~samullen</li>
<li>One browser bug? It&rsquo;s the one people refer to as &ldquo;Internet Explorer.&rdquo; It&rsquo;s a notorious bug. Evil bug.    ~rerouse</li>
<li>the IE self destruct button!    ~jeremywoertink</li>
<li>the complete removal of ie 6 and upgrade of everybody to modern browsers    ~Mark_Kellett</li>
<li>IE6-8    ~manufaktor</li>
<li>am I allowed to classify everything &lt; IE 10 as a bug?    ~chrisdarroch</li>
<li>Can the bug be ie?    ~bbommarito</li>
<li>legacy browsers! And all browsers which don&rsquo;t auto update    ~stefanpenner</li>
<li>And of course a forceful auto-update of all IE installations to version 9 :)    ~craigpatik</li>
<li>frequent &amp; transparent update for all browsers like Chrome, more coherence on supported features across browsers    ~xeppelin</li>
<li>the one browser bug would be to eliminate all versions of IE.    ~stash_tray</li>
<li>Internet Explorer. &lsquo;nuff said.    ~aviraldg</li>
<li>Auto upgrade for every browser.    ~ojohnnyo</li>
<li>regular silent automatic delta updates.    ~simbolo</li>
<li>Bug fix: Android browser.    ~kylebarrow</li>
<li>automatic Chrome-like updates (along with actual updates) for IE&hellip;? #nevergonnahappen    ~alexrussell101</li>
<li>Does killing all IE below 8 count? ;)    ~ryanolson</li>
<li>I&rsquo;d add a feature to Chrome that &ldquo;accidentally&rdquo; detects IE as a virus and deletes it from the user&rsquo;s machine.    ~wmbenedetto</li>
<li>chrome!    ~JomGapuz</li>
<li>That&rsquo;s easy &hellip; it&rsquo;s called Internet Explorer #abug    ~trymbill</li>
<li>An easier way to communicate with databases? and microsoft deprecate IE6 &amp; 7.    ~Tsouloftas</li>
<li>Internet Explorer retroactively updating itself    ~MyHeroDevon</li>
<li>automatic updates for all browsers (ie like chrome). rate of innovation would skyrocket    ~smartalec43</li>
<li>a browser on Android that auto-updates    ~boblet</li>
<li>Browser bug to fix? I&rsquo;d say, make every browser with out-of-date rendering instantly bitch-slap the user until they upgrade.    ~J6M8</li>
<li>to that end, mobile web browsers have terrible documentation on what features they support/don&rsquo;t support.    ~bcardarella</li>
<li>Silent auto updates for IE. If only there were a way to cut that half life&hellip; #webdeveloperheaven    ~josiahsprague</li>
<li>I suppose IE is the main reason For not improving my websites.    ~gerherz</li>
<li>Desktop, the bug I&rsquo;d like fixed is &ldquo;IE&rdquo;    ~ljharb</li>
<li>Crossbrowsing for christ sick! I wish I can see one day all browsers rendering the sites in the exactly same way once for all!    ~FedePaterno</li>
<li>I would fix IE6 so it would automatically crash itself as soon as anyone decided to open it.    ~adamholwerda</li>
<li>Can Internet Explorer be considered a bug or feature I&rsquo;d like to improve&hellip; aka eliminate?    ~JtheBruce</li>
<li>Android is woefully behind desktop Chrome.     ~andybastable</li>
<li>&ldquo;the one browser bug&rdquo; = Android.    ~danmux</li>
<li>Decent HW rendering in Android please    ~danmux</li>
</ul>
<h4 id="authentication--identity--crypto">Authentication / Identity / Crypto</h4>
<ul>
<li>identity. I hate having to create a username and password.    ~sethladd</li>
<li>Integrated browser authentication. When&rsquo;s the last time you logged in to a native app?    ~madeofcode</li>
<li>Identity, in a way that&rsquo;s comprehensible and controllable by the user.    ~johnjoseph</li>
<li>And w3.org/2011/identity-… will be a great advance too    ~cbullokles</li>
<li>I wish I didn&rsquo;t have to handle identity and SSL. Let my users sign in with existing credentials, and an assurance of encryption.    ~abackstrom</li>
<li>a full crypto &amp; authentication stack    ~jarrednicholls</li>
<li>Add SSL over HTTP (instead of HTTP over SSL) to handle Certificate-based authentication in the application instead of the web server    ~genezys</li>
<li>secure storage for things like OAuth keys (no more proxies needed)    ~manuel</li>
</ul>
<h4 id="browser-testing">Browser Testing</h4>
<ul>
<li>A better way to test across browsers and browser versions.    ~jacelevine</li>
</ul>
<h4 id="development-tools">Development tools</h4>
<ul>
<li>Better memory debugging tools. Like YourKit for JavaScript    ~sethladd</li>
<li>i&rsquo;d say a built-in vim-style code editor w/ git hooks. maybe&hellip;    ~csanz</li>
<li>saving changes (js,html,css) made thru google chrome dev tool/firebug directly back into the codebase would be cool.    ~4mo1</li>
<li>an ssh client integrated into google chrome    ~travisglines</li>
<li>ability to debug CoffeeScript in the browser would have high impact (ideally with IDE/editor integration during debugging)    ~ltackmann</li>
<li>Merge firebug&rsquo;s realtime CSS editor with chrome developer tools    ~danielcgold</li>
<li>combine the IDE and the browser.    ~jwaltonmedia</li>
<li>Summary of my position — improved native development experience over features that I haven&rsquo;t imagined yet :)    ~justinfrench</li>
<li>I&rsquo;ve been making use of the 3D CSS3 box model inspector in Dev Tools for a heavy interactive site. Godsend. Thank you dude    ~joecritchley</li>
<li>a better developer tools for IE, remote debugging for iPad    ~mohsen<em>__</em></li>
<li>something that will fill in a form while I&rsquo;m testing client side validation, checkout, etc.    ~jwaltonmedia</li>
<li>UIKit for JavaScript.    ~sandofsky</li>
<li>And a built-in bandwidth throttler / slow-mo mode.    ~kpk</li>
</ul>
<h4 id="languages">Languages</h4>
<ul>
<li>I want a new client language. I&rsquo;d love to see browsers switch to bytecode that we can compile other languages down to.    ~michael_tomer</li>
<li>Browsers that can be scripted in languages other than Javascript. (I know, Native Client is attempting this).    ~suranyami</li>
<li>The &ldquo;Browser VM&rdquo; should allow us to have multiple language implementations. An expressive bytecode, not minimized JavaScript.    ~twcrone</li>
<li>a VM one layer below JS (ex, LLVM).. to allow us to start innovating languages that run in the browser. JS is not the end all.    ~igrigorik</li>
<li>JavaScript always, everywhere. Whatever extra security browsers need to release, so devs can rely on JS always being there.    ~webandy</li>
<li>the lack of multiple mature programming language inside the browser environment.    ~trek</li>
<li>Ruby as a scripting language    ~elado</li>
<li>Sass and Coffeescript built into a browser    ~anthonyshort</li>
</ul>
<h4 id="language-features">Language Features</h4>
<ul>
<li>a way to know if a JavaScript function is actually meant to return something even if this return value is &lsquo;undefined&rsquo;.    ~_sebastienp</li>
<li>would love if all browsers supported <strong>noSuchMethod</strong> for some elegant script solutions.    ~KaptajnKold</li>
<li>If we could actually use some of the new Javascript features&hellip;    ~nicobrevin</li>
<li>Garbage collection.    ~jayarjo</li>
<li>operator overloading in #js would ease peoples&rsquo; lives when working on gfx stuff    ~philogb</li>
<li>Actually fixing altering any built in object&rsquo;s .prototype in general doesn&rsquo;t do horrible things, notably DOM objects.    ~Rory_O</li>
<li>Fixing Object.prototype erik.eae.net/archives/2005/…    ~Rory_O</li>
<li>Support for Javascript versions &gt; 1.5 in Chrome and Safari. Specifically: I want to use generators and iterators.    ~jonemo</li>
<li>decoupling JS parsing from load    ~derSchepp</li>
</ul>
<h4 id="media">Media</h4>
<ul>
<li>Have the ability to pause/mute all media in all other tabs. ex: Mute google music/pandora tab when I hit play on a youtube vid.    ~JoeSloth</li>
<li>a solid audio api especially on mobile browsers would be great. Esp. for gaming :)    ~wemakedotcoms</li>
<li>Easily HTML5 Video and Audio at the moment.    ~webfella</li>
<li>audio and video input and encoding.    ~dshaw</li>
<li>more audio/video codecs built in    ~masterkain</li>
<li>i&rsquo;ll go with html5 audio and video also&hellip;    ~rguarilha</li>
<li>also being able to know how many simultaneous HTML5 Audio objects you support in the current platform would be great.    ~Fokker680</li>
<li>If talking about Chrome, video masking with overflow hidden.    ~gerherz</li>
<li>the state of video delivery in and across the browsers is still quite sad. but not an individual browser issue per se.    ~jerememonteau</li>
<li>Good audio support for mobile browsers.     ~andybastable</li>
</ul>
<h4 id="html5-forms">HTML5 Forms</h4>
<ul>
<li>universal support for styleable input types (date/time/range/etc)    ~franksvalli</li>
<li>A rock solid native WYSIWYG form element. With so much content dev being done online, this is an area that seems really behind.    ~reinink</li>
<li>file uploads need rethinking.    ~sikander</li>
</ul>
<h4 id="dom">DOM</h4>
<ul>
<li>a &ldquo;Create&rdquo; event launched when a new dom node is inserted    ~JohnHackworth</li>
<li>Quietly fail and move on when calling a method on a non-existent object : doc.getElementById(&ldquo;does-not-exist&rdquo;).innerHTML = &hellip;    ~craigpatik</li>
</ul>
<h4 id="keyboard">Keyboard</h4>
<ul>
<li>Consistent handling of keypress/keydown events across browsers and OSes would be killer.    ~pyrolupus</li>
</ul>
<h4 id="mouse--touch">Mouse / Touch</h4>
<ul>
<li>gesture events like swipes and flicks built-in as DOM events    ~manuel</li>
<li>doing touch without listening to three events for each gesture    ~mohsen<em>__</em></li>
<li>now that comes from a cat avatar: an element that catches the mouse would be awesome for games or panorama viewer    ~Flexi23</li>
</ul>
<h4 id="device-input">Device input</h4>
<ul>
<li>Media Capture API! 21st century, and we are still limited to the text-only input on the web!    ~matas_petrikas</li>
<li>Access to the FS, to the devices (camera, sensors, readers, scaners&hellip;), direct access to the GPU (3D and complex calculations)    ~gandazgul</li>
<li>Device APIs. Accelerometer, camera, contacts, etc.    ~filmaj</li>
<li>Access to device capabilities from a website. gps, gyro,etc.    ~ivanmarcin</li>
<li>it will never happen, but support for more native functionality like file system, camera, etc… on mobile    ~bcardarella</li>
<li>Safe, sandboxed way to communicate with user&rsquo;s hardware (GPU, filesystem, camera, etc.)—but that&rsquo;s already on the way.    ~valueof</li>
<li><code>&lt;input type="voice"&gt;</code> and <code>&lt;input type="webcam"&gt;</code>    ~TimoKissing</li>
<li>oh, also, device access! shouldn&rsquo;t need flash to get to the camera and mic.    ~jerememonteau</li>
<li>device api, the use cases increases significantly on mobile .    ~vivianli</li>
<li>w3.org/2009/dap/    ~jamespearce</li>
<li>Device APIs.    ~jamespearce</li>
<li>Mobile, file inputs = camera access    ~ljharb</li>
</ul>
<h4 id="flash">Flash</h4>
<ul>
<li>Inconsistent keyboard trap issues, often by Flash content. Causes accessibility issues and annoys me no end     &#8211; when in a YouTube video in Firefox, ctrl+t\ctrl+w no longer work for closing\creating tabs, and focus gets stuck in player    ~joechidzik</li>
</ul>
<h4 id="css">CSS</h4>
<ul>
<li>Ah, forgot something veeeery important: @viewport!    ~derSchepp</li>
<li>if CSS could do math. Ex) height: 100% &#8211; 20px;    ~justindross</li>
<li>I&rsquo;d like css files to have a &lsquo;root&rsquo; variable where you could set the home directory.    ~davidrhoden</li>
<li>Implementation of CSS Paged Media. To me this seems to be the missing link of modern technology.    ~Rene_Kriest</li>
<li>a way to disable, or set the device orientation. PLEASE. We need that.    ~Fokker680</li>
<li>background image rendering in firefox. I dislike how it needs either a   or text to start rendering the image.    ~joshsager</li>
<li>CSS Filters    ~derSchepp</li>
<li>an adaptive image file format.    ~derSchepp</li>
<li>media queries attrs on base/img tags. Will enable downloading smaller images for smaller screens.    ~yoavweiss</li>
<li>a way to manipulate asset request urls with js on the client before they go out (for serving responsive imgs, etc). &hellip;which already worked until a couple months ago when browser img prefetching became more aggressive.    ~scottjehl</li>
<li>The one annoying me at the moment is the landscape rotation bug in Mobile Safari: tinyurl.com/5sr7qkm    ~Pipsqueaks</li>
</ul>
<h4 id="styling">Styling</h4>
<ul>
<li>CSS blendmodes. div{blendmode:&rsquo;overlay&rsquo;} but also div{background:&rsquo;multiply&rsquo; rgba(0,0,0,.3)} + for div{color:&rsquo;add&rsquo; #fff}    ~mknol</li>
<li>css blend modes    ~waynethebrain</li>
<li>blending modes. Like multiply/overlay/etc in PS.    ~gb</li>
<li>Full support for @ page w3.org/TR/CSS2/page.h…    ~sanbeiji</li>
<li>I&rsquo;d fix pixel overflow &amp; underflow in IE Chrome &amp; Safari.    ~jon_neal</li>
<li>this would for me be to not use curvycorners js hacks to get rounded borders to work in IE    ~Iclevettdesigns</li>
<li>multiple background images.    ~Iclevettdesigns</li>
<li>A unified and publicized set of selectors for styling the shadow dom of input/select/etc. elements    ~JasonWyatt</li>
<li>I&rsquo;d like CSS to have an inherit:none feature, especially helpful when you&rsquo;re inheriting from styles you have no control over.    ~JayDWhiting</li>
</ul>
<h4 id="text">Text</h4>
<ul>
<li>text-stretch. :)    ~jonas_lund</li>
<li>Proper text anti-aliasing on Chrome. Large type looks awful. Note: IE and FF have this already.    ~andybastable</li>
<li>Text Flow or caret(Position/Range)FromPoint. I&rsquo;ve spent weeks on columns, text flow, and non-contenteditable wysiwyg, etc.    ~grayrest</li>
<li>Give me inset text-shadows in all browsers and proper edge antialiasing in Chrome and I&rsquo;m all yours.    ~matthewmorek</li>
<li>There is some small bug with text sometimes (become lighter a bit, when canvas is loaded to that page).    ~slobodan_</li>
<li>Kerning and consistent type anti-aliasing across all platforms :)    ~endtwist</li>
<li>DirectWrite in all browsers on all platforms.    ~H_FJ</li>
</ul>
<h4 id="layout">Layout</h4>
<ul>
<li>absolute centering of images etc in a given div would be one    ~yemster</li>
<li>I want rock solid layout. Like flexbox/ms-grid including vertical alignment. Basically, table-layout without the tables.    ~b4nn0n</li>
<li>Strong finalized layout system. Strong forms support for real apps. HTML CSS JS unreachable for the user. No way to modify pages    ~fpiat</li>
<li>better CSS layouts. I know it&rsquo;s coming, not fast enough    ~sethladd</li>
<li>A real layout system :)    ~natecavanaugh</li>
<li>it shouldn&rsquo;t be so difficult to build columns and vertically center things. Seriously why are these still problematic.    ~nathan_vaughn</li>
<li>layout. hands down.    ~boblet</li>
<li>Add sane CSS-based layouts to all browsers.    ~jon_neal</li>
<li>flexbox everywhere    ~mislav</li>
<li>Have css3 column-count and width work in all browsers, but revert to a stack in resolutions below multi-column width.    ~J_Grimm_</li>
<li>position:fixed and overflow:scroll on all desktop and mobile browsers would make my day    ~prundin</li>
<li>Vertical and &ldquo;middle&rdquo; float. I want to be able to put elements in the middle of other elements, horizontally and vertically.    ~iliadraznin</li>
<li>My #1 is a simply a better layout system. Flexbox = meh.    ~roblifford</li>
<li>a box model that programatically closer to an AS3 sprite    ~darrownet</li>
<li>display:table in IE6    ~SubtleGradient</li>
<li>Mobile, position: fixed.    ~ljharb</li>
</ul>
<h4 id="wysiwyg--native-rich-text-editor">WYSIWYG / Native rich-text editor</h4>
<ul>
<li>All contenteditable related madness: commands, generated HTML, and selection API    ~jpscaletti</li>
<li>more consistent and improved implementation of contenteditable. That would really improve and slim down web based editors.    ~DannySorensen</li>
</ul>
<h4 id="animation">Animation</h4>
<ul>
<li>Broader hardware-acceleration coverage for the display layer. The richness of native mobile/flash is driven by unflinching 60fps.    ~teej_m</li>
<li>I want to stop repainting from flickering and screwing with my animations.    ~tdreyno</li>
<li>Bugfix: Hardware-accelerated DOM manipulation using translate3d on Android Browser.    ~bniswe</li>
<li>(smooth) #CSS3 animations for ALL browsers!    ~AndrewHenderson</li>
<li>transition/animate pseudo-elements!    ~jacobdubail</li>
<li>On Android. Hardware Accelerated CSS Transforms.    ~edwk</li>
<li>CSS transitions (they&rsquo;re just slow and outclassed by javascript in terms of speed)    ~thijsjacobs</li>
<li>Decent HW rendering in Android please    ~danmux</li>
</ul>
<h4 id="d-graphics--canvas--svg">2d graphics / Canvas / SVG</h4>
<ul>
<li>Acceleration/performance on SVG. Also think I found a leak with SVG in Chrome when tabs are hidden (but no repro yet).    ~notmatt</li>
<li>Faster drawing with 2d canvas context.    ~monteslu</li>
<li>There is some small bug with text sometimes (become lighter a bit, when canvas is loaded to that page).    ~slobodan_</li>
<li>Good Canvas support for mobile browsers.     ~andybastable</li>
<li>canvas.drawWindow. Don&rsquo;t even see why it should be restricted to extensions (except in the case of cross domain content)    ~bgrins</li>
<li>Sony&rsquo;s Trilithium did this by binding HW accelerated scene graph, ala Core Animation. satine.org/archives/2011/…    ~charlietuna</li>
</ul>
<h4 id="d-graphics--webgl">3d graphics / WebGL</h4>
<ul>
<li>compressed textures for webgl, and everything else people already said.    ~sethladd</li>
<li>WebGL support in IE would change a lot when it comes to browser games. For 3D as well as 2D.    ~ippalix</li>
<li>Good WebGL support for mobile browsers.     ~andybastable</li>
</ul>
<h4 id="web-storage">Web Storage</h4>
<ul>
<li>Making localStorage infinite size    ~nikolatankovic</li>
<li>Web storage and offline use is a huge mess, even on latest gecko/webkit    ~alexbosworth</li>
</ul>
<h4 id="history">History</h4>
<ul>
<li>full acceptance of the History API &amp; Ajax. It&rsquo;s all about user experience.    ~Scottblew</li>
<li>Make browsers understand previous states so that Ajax and back-btn &amp; bookmaring can be implemented easier/seamlessly.    ~vmasto</li>
</ul>
<h4 id="file-api">File API</h4>
<ul>
<li>Not easy but (until we&rsquo;re all cloud based), a rich and safe way to write webapps to handle local files too crbug.com/47416 That would let us write webapps to replace all sorts of things that currently have to be desktop apps    ~schmerg</li>
<li>all browsers need stable and consistent support of the JS File API    ~MeltingIce</li>
<li>integration with the desktop and OS (file API is one of the first things)    ~dnagir</li>
</ul>
<h4 id="file-uploads">File Uploads</h4>
<ul>
<li>resumable, managed, async browser based file uploads    ~tilsammans</li>
</ul>
<h4 id="offline--app-cache">Offline / App Cache</h4>
<ul>
<li>a better app cache API (with improved debugging) stevesouders.com/blog/2011/10/0…    ~alex_gibson</li>
<li>Web storage and offline use is a huge mess, even on latest gecko/webkit    ~alexbosworth</li>
<li>app cache that doesn&rsquo;t suck.    ~miketaylr</li>
<li>Fix network-connection JS events:we have online/offline for hardware but what about netonline/netoffline for Inet traffic tests?    ~adamrmcd</li>
<li>I&rsquo;m going to +1 application cache. @SlexAxton @miketaylr &amp; @julio_ody    ~benschwarz</li>
<li>that the offline HTML5 API would give a lot more control over the cache. Not sure that&rsquo;s what you asked though    ~julio_ody</li>
<li>Firefoxes app cache permission requester    ~derSchepp</li>
</ul>
<h4 id="communication-and-web-sockets">Communication and Web Sockets</h4>
<ul>
<li>I&rsquo;d vote for some way to do P2P connections, or at least some way of opening arbitrary ports in some secure, sandboxed way.    ~rakesh314</li>
<li>Websockets&hellip;    ~okinsey</li>
<li>Secure websockets on all browsers will make creating web apps easier. That is a dream right now.    ~chrisreister</li>
<li>Uniform websocket support across all browsers.    ~clofresh</li>
<li>Cross domain xhr (as a new session, without the cookies of the original site)    ~elado</li>
<li>cross domain xhr, but creating a new session and not sending the original cookies. could save jsonp/proxies.    ~elado</li>
<li>universal support of push notifications without the browser being open.    ~ChrisLove</li>
<li>not The Single Bug, but here&rsquo;s one: being able to verify the content sent was the content delivered. Probably via headers &amp; apis. Useful when deploying for mobile/roaming use or in corporate networks when behind proxies.    ~rem</li>
<li>better support for XHR-2 on mobile. iOS partially supports but barely. in the case of the XHR-2 stuff it replaces the API, with a much less functional API on iOS :( PhoneGap is making the effort, but it needs to act as a polyfill and not a replacement API    ~bcardarella</li>
<li>cross domain xhr, but creating a new session and not sending the original cookies. could save jsonp/proxies.    ~elado</li>
<li>if could ask for my last gift to the three wise men I&rsquo;d like peer to peer communication, with WebRTC is close to be here    ~cbullokles</li>
</ul>
<h4 id="desktop--os-integration">Desktop / OS Integration</h4>
<ul>
<li>more OS integrations (like file upload from iOS, access to camera, cross-platform dragdrop files)    ~mislav</li>
<li>fullscreen maybe    ~slobodan_</li>
<li>integration with the desktop and OS (file API is one of the first things)    ~dnagir</li>
<li>On the desktop: Intents (cross app integration).    ~edwk</li>
</ul>
<h4 id="widgets">Widgets</h4>
<ul>
<li>Begin supporting the W3C Widget spec.    ~mwbrooks</li>
<li>I really like the support to w3c widgets included in opera. It helps to package web applications as normal apps    ~cbullokles</li>
<li>Greater steps towards W3C Widgets    ~mwbrooks</li>
<li>better encapsulation similar to Mozillas XUL widgets seems like a big one.    ~blrandel</li>
</ul>
<h4 id="browser-extensions">Browser Extensions</h4>
<ul>
<li>also actual cross-browser extensions APIs and packaging while you&rsquo;re handing out unicorn lollipops.    ~miketaylr</li>
</ul>
<h4 id="browser-ui-app-land">Browser UI (App-land)</h4>
<ul>
<li>Modifying native context menu.    ~JanKuca</li>
<li>Access to system-level elements. Buttons, contextual menu, etc. Why can my web app look more like a desktop app?    ~sternmeyer</li>
<li>Firefox&rsquo;s rogue input styling that differs from all other browsers. Inability to style input elements in general in Firefox.    ~taitems</li>
</ul>
<h4 id="browser-ui-user-land">Browser UI (User-land)</h4>
<ul>
<li>I usually close browser tabs with shortcuts, the &ldquo;x&rdquo;, is actually a hazard for me. Thankfullly there&rsquo;s command-shift-T to reopen.    ~ckundo</li>
<li>Showing which of the 30 tabs I have open just started playing that song everyone hates, with some kind of icon/colour change?    ~josscrowcroft</li>
<li>an option to freeze all non-active tabs and browser instances to gain performance and a disruption free browsing experience    ~tuskali</li>
</ul>
<h4 id="browser-features-out-of-scope">Browser features (out of scope)</h4>
<ul>
<li>a bit late but still, id include in every browser a feature like &ldquo;safari reader&rdquo; (not as extension) and make width resizeable    ~askoth</li>
<li>not having web inspector&rsquo;s CSS panel jump to the top of the declaration every time I double-click a rule to make a live change.    ~mklickman</li>
<li>file:/// in Chrome. But it would never get accepted :p    ~me1000</li>
<li>better bookmarking. Implement thematic and context sensitive trails the way Vannevar Bush envisioned.    ~mik3cap</li>
<li>And a built-in bandwidth throttler / slow-mo mode.    ~kpk</li>
</ul>
<h4 id="ummmm">Ummmm</h4>
<ul>
<li>is this a trick question?    ~webandy</li>
<li>a troll fix    ~mynameiscolin</li>
<li>sprinkles!    ~<em>jeanniev</em></li>
<li>counterweights to balance out the missing goats    ~anthonydispezio</li>
<li>I would like Backbone.js to be built-in. Just kidding.    ~julio_ody</li>
<li>Is this question partially inspired by nczonline.net/blog/2011/10/0…?    ~roblifford</li>
<li>A feature that allows browsers to detect duplicate @wycats tweets.    ~jamespearce</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://paulirish.com/2011/what-feature-would-improve-the-web/feed/</wfw:commentRss>
		<slash:comments>54</slash:comments>
		</item>
		<item>
		<title>Browser Market Pollution: IE[x] is the new IE6</title>
		<link>http://paulirish.com/2011/browser-market-pollution-iex-is-the-new-ie6/</link>
		<comments>http://paulirish.com/2011/browser-market-pollution-iex-is-the-new-ie6/#comments</comments>
		<pubDate>Tue, 27 Sep 2011 15:52:12 +0000</pubDate>
		<dc:creator>Paul Irish</dc:creator>
				<category><![CDATA[chrome]]></category>
		<category><![CDATA[front-end development]]></category>

		<guid isPermaLink="false">http://paulirish.com/?p=1259</guid>
		<description><![CDATA[You may soon be developing for 76 browsers. (╯°□°）╯︵ ┻━┻ Lemme take a step back&#8230; So it&#039;s fair to say that for most of us, IE6 has gone the way of the dodo. Good! Now in IE7, we have less CSS issues, working PNGs, but pretty much the exact same JavaScript engine (though faster). IE8 [...]]]></description>
			<content:encoded><![CDATA[<p>You may soon be developing for 76 browsers.</p>
<p>(╯°□°）╯︵ ┻━┻</p>
<p>Lemme take a step back&#8230; So it&#039;s fair to say that for most of us, IE6 has gone the way of the dodo. Good! Now in IE7, we have less CSS issues, working PNGs, but pretty much the exact same JavaScript engine (though faster). IE8 gives a few more goodies (localStorage, postMessage, hashchange event) <strong>that&#039;ll be nice to use when we retire IE7, but IE8 will be with us for a <em>while</em></strong>.</p>
<p><img src="http://royal.pingdom.com/wp-content/uploads/2011/09/110909-IE9.png" alt="" /></p>
<p>Since Windows XP still accounts for 46.6% of Windows users, IE9+ adoption has a significant upper bound. More: <a href="http://royal.pingdom.com/2011/09/09/how-microsoft-is-handicapping-its-own-web-browser/">How Microsoft is handicapping its own web browser</a> and <a href="http://royal.pingdom.com/2011/06/16/ie9-adoption-is-painfully-slow-google-to-the-rescue/">IE9 adoption is painfully slow. Google to the rescue?</a></p>
<p>IE6 has been a source of pain for… I&#039;d say four years. IE8 will be a source of pain for the next 9, it appears. You&#039;re clearly aware that IE9 (and IE10&#8230;) are not available on Windows XP, even though Firefox and Chrome continue to ship versions for that operating system (still 40% of the Windows market), so unless the whole world shells out $79 for an upgraded OS, they won&#039;t get an upgraded browser, without switching. That&#039;s terrible, clearly. <strong>But this isn&#039;t the worst part.</strong> No, no&#8230;</p>
<h4>How many browsers would you like to support?</h4>
<p>Personally, I&#039;m totally happy supporting the latest version of each of the five browsers. <strong>IE10 will be a very impressive browser</strong>, and the latest releases of Chrome, Firefox, Safari, and Opera are all incredible as well. Supporting the legacy versions is not exactly my idea of a good time, but ya know.. With IE6,7,8,9.. I&#039;m used to it.</p>
<h4>It&#039;s about to get worse</h4>
<p>IE looks to be on a yearly release cycle. Great! IE10 out in March-ish.. IE11 a mere 52 weeks after that. (Mind you, Firefox and Chrome are shipping every 6 weeks these days). <strong>But what&#039;s far more important than shipping frequency, is the browser half-life</strong>.</p>
<blockquote><p>Products like Windows and Office have a <a href="http://support.microsoft.com/gp/lifepolicy">lifecycle policy</a> that typically runs 10+ years because that’s what these organizations need. As part of Windows, IE honors that 10+ year commitment.</p>
<p><cite>~<a href="http://blogs.msdn.com/b/ie/archive/2011/06/27/a-browser-for-all-windows-customers-it-s-about-and-not-or.aspx">Dean Hachamovitch</a>, IE Corporate VP</cite></p></blockquote>
<p>IE9 and IE10 are both scheduled to be sunset (as far as official Microsoft support) in 2020. Since IE8 shipped with Windows 7, we can expect the same death date for it. Yes, IE8&#039;s death date is 9 years from now. Meanwhile, you won&#039;t have to worry about supporting Firefox 6 or Chrome 13 in November.</p>
<p><img src="http://paulirish.com/wp-content/uploads/2011/09/browserlineupin20191.jpg" alt="graphic of 1 chrome, 1 firefox, 1 safari, 1 opera, and 10 IEs" /></p>
<p>Extrapolating this, if they maintain the same policy, IE17 be released in 2019, before IE8, 9 and 10 finally die. So in a few years from now, you&#039;ll be supporting one version of Chrome, one version of Firefox, one of Opera, (probably) one of Safari, and <strong>ten versions of IE</strong>.</p>
<h4>Did I say 10 versions of IE? I meant to say 72.</h4>
<p>72 versions of IE on the wall, 72 versions of IE&#8230; Maybe drinking beer at this point in the post would be a smart move.</p>
<p>So you&#039;re aware that IE ships with multiple document modes. IE essentially ships with legacy versions of the renderer so that you can upgrade your browser but still see content that was terribly coded and cannot withstand the reality of web development, therefore it needs to be locked into a single version. <a href="http://mike.kaply.com/2011/06/23/understanding-the-corporate-impact/#comment-10632">I worded this differently</a> a bit ago.</p>
<blockquote><p>We seem to be using this term of “intranet apps” or “internal corporate apps” just as a euphemism for poorly written code.<br />
Consumer facing apps have been handling new and unknown browser versions day in and day out for years. Like Kroc said, “Corporate users should be testing their applications against standards, not browser version numbers.”</p></blockquote>
<p>So IE9 contains IE8, IE7, and IE5 modes. IE10 contains modes for IE9 and on down the line.</p>
<p>The problem percolates when you come to terms with the fact that many of these modes are not the same as the original browser. For example:</p>
<ul>
<li>IE8&#039;s IE7 mode: adds sessionStorage &amp; localStorage,  false positives on a feature test for the hashchange event, <a href="http://blog.pengoworks.com/index.cfm/2009/3/19/Internet-Explorer-8-issues-with-Compatibility-View-and-EmulateIE7">mishandles</a> rowspan, and some <a href="http://blogs.msdn.com/b/ie/archive/2009/03/12/site-compatibility-and-ie8.aspx">other event and attribute differences</a>.</li>
<li>IE9&#039;s IE8 mode: <a href="http://twatlr.com/thread/113376848716627968">intermittently</a> false positives on a feature test for inline SVG. <a href="http://yfrog.com/ki9x1cp">Renders CSS differently than true IE8</a>, and is <a href="http://code.google.com/p/ie7-js/issues/detail?id=334">crashier</a> than the real one.</li>
</ul>
<p>These are not browsers with reliable replicated browser versions embedded, these are frankenstein versions that behave unpredictably. <small>(To better understand the internals, the new JScript engine (these days it&#039;s called Chakra) is used in the compatibility modes, but IE engineers remove features and add bugs to make them &#034;match&#034; earlier behavior. Luckily they run at their modern speed, but run with a whitelist of bugs being put in place. MSFT has all reason to keep these compat modes as identical as possible, so we should expect fewer issues in IE10+&#039;s compat modes.)</small></p>
<p>Of course, there is the matter of what % of market share it takes for you to &#034;support&#034; a browser (test against during dev / QA against / customize your experience for).. It&#039;s possible some of these IE versions won&#039;t have enough numbers for us to care. Kind of like how we support Firefox 3.6 and 6, but not 4 or 5. (btw, Mozilla <a href="https://groups.google.com/d/msg/mozilla.dev.planning/mvVweF8xQRw/HXcSO8bgkGsJ">will soon pull the lever</a> to prompt 3.6 users to upgrade).</p>
<h4>Where, from here? Do we have solutions?</h4>
<p>All this news isn&#039;t the best, certainly. What are our options?</p>
<p>Asking your users to upgrade their IE version to the latest? We&#039;ve been naively doing this for a while now, but we&#039;ve only been shooting ourselves in the foot. <strong>Without an upgrade policy for IE that takes the web seriously, you can&#039;t responsibly ask your users to upgrade to the latest IE (the future&#039;s boat-anchor browser.)</strong></p>
<blockquote><p><strong>boat-anchor browser</strong> (<em>noun</em>): the browser with enough users and not enough capability, holding back the potential of the web. <sup>[<a title="alex russell coined this term" href="http://infrequently.org/2010/10/ie-8-is-the-new-ie-6/">via</a>]</sup></p></blockquote>
<p><img src="http://static.arstechnica.com/browsers-july-2011/internet-explorer-transition.png" alt="" /><br />
<img src="http://static.arstechnica.com/browsers-july-2011/chrome-transition.png" alt="" /></p>
<p>IE version pigpile. Chrome&#039;s <a href="http://www.conceivablytech.com/9349/business/rapid-release-process-dissected-google-is-winning-the-browser-war">silent auto-updates</a> (charts via <a href="http://arstechnica.com/web/news/2011/08/july-browser-stats-windows-xp-loses-its-majority-share-of-web-users.ars">arstechnica</a>)</p>
<p><strong>Microsoft&#039;s move.</strong> Maybe the IE team will introduce a way to upgrade their users well and also serve their business audience that are interested in a snapsnot of the web that doesn&#039;t change. Maybe they&#039;ll also introduce a better solution for testing in their browsers than running four (soon five) unique Windows OS images.</p>
<p><img src="http://dl.dropbox.com/u/39519/talks/html5forhumans/static/images/chrome_frame.jpg" alt="" width="150" align="right" /></p>
<p><strong> Chrome Frame</strong> gives us a solid option for handling this situation. (Also, if you haven&#039;t read <a href="http://infrequently.org/2011/03/half-lives/">these</a> <a href="http://infrequently.org/2010/10/ie-8-is-the-new-ie-6/">three</a> <a href="http://infrequently.org/2010/09/but-ie-9-is-just-around-the-corner/">posts</a> by Alex Russell&#8230; do so.)<br />
At the very least, Chrome Frame will automatically update and has the user-perceived benefit of being &#034;just a plugin&#034; (that <a href="http://infrequently.org/2011/08/non-admin-chrome-frame-now-stable/">all users can install</a>) instead of switching to a whole new browser.</p>
<h4>I&#039;m almost done, I swear</h4>
<p>Clearly, having your users on a browser that not only iterates quickly but appreciates developers by guaranteeing a short browser half-life is a boon to you and the success of the experiences you can deliver. All the browsers are racing to deliver features and speed to you and your users (including IE).</p>
<p>Seriously, all browser engineers are doing incredible, fantastic work.<strong> But without a strategy for how this turns out in the long term, this IE situation will become a complete mess—costing you enormous time in designing how <a href="http://paulirish.com/2011/tiered-adaptive-front-end-experiences/">scale your design</a> to 76+ browsers, testing it, QA&#039;ing it, and maintaining it.</strong></p>
<p>The IE team is incredibly talented and wise; I think they have a great opportunity here to make the right move (like when they <a href="http://blogs.msdn.com/b/ie/archive/2008/03/03/microsoft-s-interoperability-principles-and-ie8.aspx">reversed policy on X-UA-Compatible</a>). Perhaps with Win8 and Metro we&#039;ll see a more aggressive approach towards bringing the full potential to the web to all its users.</p>
<hr style="margin: 20px 0;" /><small>Now, I apologize for writing what seems to be a less-than-optimistic post. But truly, from the conversations I&#039;ve had with the IE team to everything  said publicly on the matter, this looks to be the impending reality. I&#039;d be happy to correct or amend this post with any facts that conflict with the picture I&#039;ve painted above.</small></p>
<div>Macha <a href="http://blog.initprogram.com/2011/09/27/76-ies-not-likely/">posted a thoughtful response</a> ruminating on what browsers will be most at-play for us in 5 years time. I like it,</p>
<p>It&#039;s also worth pointing out (thx James Pearce) that this post doesn&#039;t mention mobile. Are desktop browsers relevant in 5-10 years?</p>
</div>
<div>Sylvain Galineau, who works on the standards side of IE, indicates the document mode situation painted above is probably unlikely. I admit it seems preposterous. Perhaps I should have left the document mode aspect out of this post entirely.</p>
<p>Anyway, Sylvain says: <strong>&#034;Bottom line: I think all you have established is that things will probably not turn out that way.&#034;</strong> So that&#039;s good!  :)  Exchange here: <a href="http://paulirish.com/i/d0fb12e598446dc99fbe0998b6731705.png<br />
"><img src="http://paulirish.com/i/d0fb12e598446dc99fbe0998b6731705.png<br />
" alt="" height="70" /></a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://paulirish.com/2011/browser-market-pollution-iex-is-the-new-ie6/feed/</wfw:commentRss>
		<slash:comments>162</slash:comments>
		</item>
		<item>
		<title>Viewing Chrome's paint cycle</title>
		<link>http://paulirish.com/2011/viewing-chromes-paint-cycle/</link>
		<comments>http://paulirish.com/2011/viewing-chromes-paint-cycle/#comments</comments>
		<pubDate>Wed, 07 Sep 2011 19:04:00 +0000</pubDate>
		<dc:creator>Paul Irish</dc:creator>
				<category><![CDATA[chrome]]></category>

		<guid isPermaLink="false">http://paulirish.com/?p=1249</guid>
		<description><![CDATA[Jonathan Snook asked me how to get insight in the Chrome DevTools on which elements are getting repainted in the browser&#039;s paint cycle. My answer, in video form, dives into --show-paint-rects and the Timeline view. (4 min long) Lots of small text, so fullscreening will help. Mentioned links: Chrome&#039;s command line switches &#038; crbug.com/71035 btw [...]]]></description>
			<content:encoded><![CDATA[<p>Jonathan Snook asked me how to get insight in the Chrome DevTools on which elements are getting repainted in the browser&#039;s paint cycle.</p>
<p>My answer, in video form, dives into <code>--show-paint-rects</code> and the Timeline view. (4 min long)</p>
<p>Lots of small text, so fullscreening will help.</p>
<p><iframe width="420" height="345" src="http://www.youtube.com/embed/Ea41RdQ1oFQ?hd=1" frameborder="0" allowfullscreen></iframe></p>
<p>Mentioned links: <a href="http://peter.sh/experiments/chromium-command-line-switches/">Chrome&#039;s command line switches</a> &#038; <a href="//crbug.com/71035">crbug.com/71035</a></p>
<div update>btw &#8211; I originally posted this 2 weeks ago on <a href="http://paulirish.com/+">my G+ stream</a>, where I&#039;ve been dropping all sorts of goodies lately. Add me to your circles or whatever. :)</div>
]]></content:encoded>
			<wfw:commentRss>http://paulirish.com/2011/viewing-chromes-paint-cycle/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Tiered, Adaptive Front-end Experiences</title>
		<link>http://paulirish.com/2011/tiered-adaptive-front-end-experiences/</link>
		<comments>http://paulirish.com/2011/tiered-adaptive-front-end-experiences/#comments</comments>
		<pubDate>Thu, 01 Sep 2011 18:50:34 +0000</pubDate>
		<dc:creator>Paul Irish</dc:creator>
				<category><![CDATA[front-end development]]></category>

		<guid isPermaLink="false">http://paulirish.com/?p=1079</guid>
		<description><![CDATA[&#8230; or &#8230; On &#034;the site must look the same across all browsers&#034; I think we&#039;re all pretty well convinced that our sites can look different across browsers. Sometimes, though, our team or our clients don&#039;t totally understand that. Lemme take a stab at convincing them that each browser gets an experience that is customized [...]]]></description>
			<content:encoded><![CDATA[<h4>&#8230; or &#8230; On &#034;the site must look the same across all browsers&#034;</h4>
<p>I think we&#039;re all pretty well convinced that our sites can look different across browsers. Sometimes, though, our team or our clients don&#039;t totally understand that.</p>
<p>Lemme take a stab at convincing them that <strong>each browser gets an experience that is customized to that browsers&#039;s capabilities</strong>.</p>
<p>Paul Boag actually <a href="http://boagworld.com/design/where-are-my-rounded-corners/">created</a> a small booklet for your clients on why this is good. Take a look below and <a href="http://dl.dropbox.com/u/228092/Factsheet-%20Where%20are%20my%20rounded%20corners.pdf">download the PDF</a> to share.</p>
<p>Paul lays out these arguments for things looking and acting differently:</p>
<ul>
<li>More time for what matters
<li>Develop for your growth audience
<li>Improve site performance by letting the experience scale
<li>Better search engine rankings through faster sites
<li>Your work will be more future proof
<li>&#8230; and more maintainable
<li>Wider and more impressive design possibilities
<li>Users don&#039;t open your site in two browsers
</ul>
<p><object style="width:600px;height:460px" ><param name="movie" value="http://static.issuu.com/webembed/viewers/style1/v1/IssuuViewer.swf?mode=embed&amp;layout=http%3A%2F%2Fskin.issuu.com%2Fv%2Fcolor%2Flayout.xml&amp;backgroundColor=FFFFFF&amp;showFlipBtn=true&amp;autoFlip=true&amp;autoFlipTime=6000&amp;documentId=110509150814-79a33b78eaf5438296a1b44812efb89b&amp;docName=roundedcorners&amp;username=boagworld&amp;loadingInfoText=Where%20are%20my%20rounded%20corners&amp;et=1304954286786&amp;er=97" /><param name="allowfullscreen" value="true"/><param name="menu" value="false"/><embed src="http://static.issuu.com/webembed/viewers/style1/v1/IssuuViewer.swf" type="application/x-shockwave-flash" allowfullscreen="true" menu="false" style="width:600px;height:460px" flashvars="mode=embed&amp;layout=http%3A%2F%2Fskin.issuu.com%2Fv%2Fcolor%2Flayout.xml&amp;backgroundColor=FFFFFF&amp;showFlipBtn=true&amp;autoFlip=true&amp;autoFlipTime=6000&amp;documentId=110509150814-79a33b78eaf5438296a1b44812efb89b&amp;docName=roundedcorners&amp;username=boagworld&amp;loadingInfoText=Where%20are%20my%20rounded%20corners&amp;et=1304954286786&amp;er=97" /></object></p>
<p>(Andy Clarke&#039;s book <em><a href="http://hardboiledwebdesign.com/">Hardboiled Web Design</a></em> also covers this ground well)</p>
<h4>The TAFEE approach</h4>
<p>Taking a <abbr title="tiered adaptive front-end experiences">TAFEE</abbr> approach is critical if you expect to deliver worthwhile experiences to your clients while continuing to support the legacy browsers that tend to linger around. Lemme give this guy a definition:</p>
<blockquote><p><b>TAFEE</b> (<em>pronounced: taffy</em>): tiered, adaptive front-end experiences. Customizing the experience to the unique capabilities of each browser, prioritizing a fast and good UX over consistency.</p></blockquote>
<p>It&#039;s also worth bringing up a term I <a href="http://twitter.com/paul_irish/status/32934802139127808">mentioned</a> a bit ago:</p>
<blockquote><p><b>oldIE</b> (<em>pronounced: oldie</em>): Internet Explorer 6, 7 &#038; 8. aka, the three browsers often getting the low-res experience.</p></blockquote>
<p>Your alternative to a TAFEE approach, of course, is taking a &#039;same&#039; approach, wherein things are visually and functionally consistent across all your target browsers. In my experience, this takes much more time to develop and QA&mdash;not to mention you&#039;ve set the baseline experience very low.</p>
<p>One of the best metaphors for scaling the frontend experience comes <a href="http://www.slideshare.net/nzakas/progressive-enhancement-20-conference-agnostic">from Nicholas Zakas</a> I&#039;ll let his slides do the talking:</p>
<h4>Zakas&#039;s TAFEE vs &#039;same&#039; TV analogy</h4>
<div class="slides">
<img src="http://paulirish.com/wp-content/uploads/2011/0-analogy.jpg" width="300" height="225"><img src="http://paulirish.com/wp-content/uploads/2011/1-browsers-newhotness.jpg" width="300" height="225"><img src="http://paulirish.com/wp-content/uploads/2011/2-television.jpg" width="300" height="225"><img src="http://paulirish.com/wp-content/uploads/2011/3-oldtv.jpg" width="300" height="225"><img src="http://paulirish.com/wp-content/uploads/2011/4-newtv.jpg" width="300" height="225"><img src="http://paulirish.com/wp-content/uploads/2011/5-safetvs.jpg" width="300" height="225"><img src="http://paulirish.com/wp-content/uploads/2011/6-sametvs.jpg" width="300" height="225">
</div>
<style>
.slides { -webkit-transform: translateZ(0); }
.post .content { overflow:visible!important; }
.slides img { 
  -webkit-transition: all 0.3s ease-out;  
     -moz-transition: all 0.3s ease-out;  
      -ms-transition: all 0.3s ease-out;  
       -o-transition: all 0.3s ease-out;  
          transition: all 0.3s ease-out;  
}
.slides img:hover {
-webkit-transform: scale(2);  
   -moz-transform: scale(2);  
    -ms-transform: scale(2);  
     -o-transform: scale(2);  
        transform: scale(2);  
  -webkit-box-shadow: 0px 0px 10px #333; 
     -moz-box-shadow: 0px 0px 10px #333; 
          box-shadow: 0px 0px 10px #333; 
} 
</style>
<h4>speedy site > consistent site</h4>
<p>Now, it&#039;s worth pointing out that javascript runs at <b>incredibly</b> different speeds in the various iterations of Internet Explorer&#8230;</p>
<figure style="width: 410px; margin: 15px auto;">
  <img src="http://chart.apis.google.com/chart?chf=bg,lg,90,EFEFEF,0,D9D9D9,1&#038;chxl=1:|IE6|IE8|IE9|IE10pp1&#038;chxr=0,-25,48000|1,10,100&#038;chxt=y,x&#038;chbh=79,16,7&#038;chs=406x218&#038;cht=bvg&#038;chco=76A4FB,3D7930&#038;chds=5,48451,-3.333,150&#038;chd=t1:48451,8930,440,326&#038;chtt=IE+Javascript+Performance+(sunspider+times)"></p>
<figcaption>sunspider performance results for IE. via <a href="http://expansive-derivation.ossreleasefeed.com/2011/08/javascript-performance-test-results-with-sunspider/">research done by Schalk Neethling</a></figcaption>
</figure>
<p>Given that, it&#039;s up to you to guarantee a performant and responsive experience for ALL your users. That means making it easier for oldIE to chug on your pages, serving them a lighter weight experience, in order to keep it quick.</p>
<p>Why should you keep your site as fast as it can be? Read up on <a href="http://www.bookofspeed.com/chapter1.html">The Performance Business Pitch</a> by Stoyan Stefanov who lays it out best. Suffice it to say that highly performant experiences are KEY to your site</p>
<p>None of your users open your site in multiple browsers, so if you&#039;re actively trying to make things look the same for that false goal, then you&#039;re slowing down the page for your users on older browsers. You&#039;re loading them up with images that mimic <code>border-radius</code> and <code>box-shadow</code>, piling on  scripts to maintain visual consistency when you should be focusing on making something that looks good enough and is fast. Louis Lazaris touched in this in <a href="http://www.impressivewebs.com/browser-performance-pickle/">The browser performance pickle</a> where he identified that our goal of speed conflicts with our <a href="https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills">ability to polyfill nearly all features</a>. <small>(There are best practices for this, specifically&#8230; stay tuned as <a href="//twitter.com/divya">Divya Manian</a> and I have something coming for this&#8230; ;)</small></p>
<h4>delivering multiple versions</h4>
<p>Consider what Google has done with the Google doodles: show off cool <code>&lt;canvas></code> or bouncing balls with just HTML+JS in &#034;good&#034; browsers and just keeping it the same old Google logo for slow browsers.  You heard anybody complaining that they don&#039;t get the bouncy balls in IE6?</p>
<p>Facebook, Google, Yahoo all embrace a TAFEE approach to show different browsers different things. It&#039;d likely be wise for you to, as well.</p>
<p>It might make sense for you to segment your experiences into HD (high-def), SD (standard-def) and LR (low-res) tiers. Then you might move to clarify exactly which features are required for each to identify which features are required for your HD tier and so on. IE7 and IE8 may get the LR tier, and if you&#039;ve punted supporting IE6 completely, I&#039;d recommend <a href="http://www.chromium.org/developers/how-tos/chrome-frame-getting-started#TOC-Detecting-Google-Chrome-Frame-and-P">prompting to install Chrome Frame</a>. It&#039;s what we&#039;re now doing in <a href="http://html5boilerplate.com/">HTML5 Boilerplate 2.0</a>, in fact.</p>
<p>You have some choices to make in how you scale the front-end experience, and I hope you&#039;ll have a better idea of how you&#039;ll do it and how to communicate this plan to your team and client.</p>
<hr />
<p><small>Thank you to <a href="http://twitter.com/divya">Divya Manian</a>, who helped me tremendously with crafting this. Also she just got <a href="http://hacks.mozilla.org/2011/08/people-of-html5-divya-manian/">a sweet interview on Mozilla Hacks</a>.</small></p>
]]></content:encoded>
			<wfw:commentRss>http://paulirish.com/2011/tiered-adaptive-front-end-experiences/feed/</wfw:commentRss>
		<slash:comments>46</slash:comments>
		</item>
		<item>
		<title>HTML5 Boilerplate hits 2.0!</title>
		<link>http://paulirish.com/2011/html5-boilerplate-hits-2-0/</link>
		<comments>http://paulirish.com/2011/html5-boilerplate-hits-2-0/#comments</comments>
		<pubDate>Wed, 10 Aug 2011 16:04:35 +0000</pubDate>
		<dc:creator>Paul Irish</dc:creator>
				<category><![CDATA[front-end development]]></category>

		<guid isPermaLink="false">http://paulirish.com/?p=1205</guid>
		<description><![CDATA[A quick 365 days after we launched the project, the community finished up 2.0 today! Briefly, what&#039;s new: We shifted to using normalize.css instead of the bulldozer reset.css (and base) approach. This ends up being smaller, faster, and easier to develop with. IE6 users will now be prompted to install Chrome Frame by default. It&#039;s [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://h5bp.com/#v2"><img src="http://paulirish.com/i/cf8940.png" alt="" /></a></p>
<p>A quick 365 days after we launched the project, the <a href="http://h5bp.com/#v2">community finished up 2.0 today</a>! Briefly, what&#039;s new:</p>
<ul>
<li>We shifted to using <a href="http://github.com/necolas/normalize.css/">normalize.css</a> instead of the bulldozer reset.css (and base) approach. This ends up being smaller, faster, and easier to develop with.</li>
<li>IE6 users will now be prompted to install Chrome Frame by default. It&#039;s time. :)
<li>The build script continues to get massively improved: any css <code>@import</code>s get inlined into your file before it gets concatenated with other files and minified together, the application cache&#039;s manifest is generated automatically for you if you want to take your app offline, also this whole build process is way faster now.
<li>Build script also has optional tasks for CSSLint, JSHint, splitting your CSS into modules, and more customizability.
<li>Added <a href="https://github.com/scottjehl/Respond#readme">respond.js</a> to allow true responsive development; use media queries with full cross-browser support now!
<li>PNGFix, Handheld.css removed along with lots of other smart removals. The full h5bp payload is now smaller and faster than ever.
</ul>
<p>View the <b><a href="http://h5bp.com/#v2">much larger/detailed++ announcement at h5bp.com/#v2</a></b>.</p>
<p>We&#039;ve also added <a href="http://mathiasbynens.be/">Mathias Bynens</a> and <a href="http://nicolasgallagher.com/">Nicolas Gallagher</a>, two very talented frontend researchers and developers, to the core development team. </p>
<p>Thanks to all the many many awesome code contributions, discussions, and most importantly research and documentation that lead to world-class front-end development!</p>
<p>Thanks: <small><a href="https://github.com/alrra">alrra</a>, <a href="http://adeelejaz.com/">Adeel Ejaz</a>, <a href="http://www.vervestudios.co/">David Murdoch</a>, <a href="https://github.com/jonathan-fielding">Jonathan Fielding</a>, <a href="https://github.com/rros">Robert Ros</a>, <a href="http://mathiasbynens.be/">Mathias Bynens</a>, <a href="http://nicolasgallagher.com/">Nicolas Gallagher</a>, <a href="http://blog.mklog.fr/">Mickael Daniel</a>, <a href="http://twitter.com/verekia">Jonathan Verrecchia</a>, <a href="https://github.com/darktable">Calvin Rein</a>, <a href="http://htmlcssjavascript.com/">Rob Larsen</a>, <a href="http://meleyal.com/">William Meleyal</a>, <a href="http://terraduo.com/">Bruno De Barros</a>, <a href="http://mikealmond.com/">Mike Almond</a>, <a href="https://github.com/thatcoolguy">Frank</a>, <a href="http://byjoeybaker.com/">Joey Baker</a>, <a href="http://benword.com/">Ben Word</a>, <a href="http://www.botsko.net/">Mike Botsko</a>, <a href="https://github.com/disusered">Carlos Rosquillas</a>, <a href="https://github.com/toddhgardner">Todd H. Gardner</a>, <a href="https://github.com/rdeknijf">rdeknijf</a>, <a href="https://github.com/johnattebury">John Attebury</a>, <a href="https://github.com/ryanseddon">Ryan Seddon</a>, <a href="http://www.daylerees.com/">Dayle Rees</a>, <a href="https://lab.net/">Ryan Smith-Roberts</a>, <a href="https://github.com/brianblakely">Brian Blakely</a>, <a href="http://www.steveheffernan.com">Steve Heffernan</a>, <a href="http://barneycarroll.com/">Barney Carroll</a>, <a href="https://github.com/gormus">Osman Gormus</a>, <a href="http://www.mozes.com/">Jason Tokoph</a>, <a href="http://see.guol.in/">See Guo Lin</a>, <a href="http://www.ukontrol.com/">Jeremey Hustman</a>, <a href="http://jameswilliams.be/blog">James Williams</a>, <a href="https://github.com/jsma">John-Scott Atlakson</a>, <a href="https://github.com/stereobooster">stereobooster</a>, <a href="http://walkerhamilton.com/">walker</a>, <a href="http://www.francois.robichet.com/">François Robichet</a>, <a href="http://leobetosouza.com/">leobetosouza</a>, <a href="http://static.dyndns.org/~mdonoughe/">Matthew Donoughe</a>, <a href="http://lotsofwords.org/">Patrick Hall</a>, <a href="http://www.ad7six.com/">Andy Dawson</a>, <a href="http://danielfilho.info/blog/">Daniel Filho</a>, <a href="https://github.com/clemos">Clément</a>, <a href="https://github.com/JoeMorgan">Joe Morgan</a>, <a href="http://www.zencodez.net/">Han Lin Yap</a>, <a href="https://github.com/gg">Gregg Gajic</a>, <a href="http://www.linkedin.com/in/web2samus">Michael Cetrulo</a>, <a href="https://github.com/robbyrice">Robert Doucette</a>, <a href="http://lexadecimal.com/">lexadecimal.com</a>,  <a href="http://twitter.com/atdiehm">Adam Diehm</a>.. and more people I&#039;m sure&#8230; <ins> like  <a href="http://www.arvag.net/">Gavrisimo</a> &#x2665; and <a href="https://twitter.com/#!/gmoulin_dev">Guillaume Moulin</a></ins> (Ping me and I&#039;ll add you! (sorry!) </small></p>
<h4>Join the fun</h4>
<p>So feel free to dig into the <a href="https://github.com/paulirish/html5-boilerplate/tree/v2.0">2.0 code</a> and join the fun development community at <a href="https://github.com/paulirish/html5-boilerplate/issues">our github issue tracker</a> where we welcome all frontend hackers and researchers.  Hop on the follow train of <a href="http://twitter.com/h5bp">@h5bp</a> for project news as well</a>.  Thanks everyone</p>
]]></content:encoded>
			<wfw:commentRss>http://paulirish.com/2011/html5-boilerplate-hits-2-0/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>The Story of the HTML5 Shiv</title>
		<link>http://paulirish.com/2011/the-history-of-the-html5-shiv/</link>
		<comments>http://paulirish.com/2011/the-history-of-the-html5-shiv/#comments</comments>
		<pubDate>Tue, 24 May 2011 17:17:19 +0000</pubDate>
		<dc:creator>Paul Irish</dc:creator>
				<category><![CDATA[front-end development]]></category>

		<guid isPermaLink="false">http://paulirish.com/?p=1082</guid>
		<description><![CDATA[Heard of Sjoerd Visscher? I would venture to guess you have not; however, what he considered a minor discovery of his is at the foundation of our ability to use HTML5 today. Back in 2002, In The Hague, Netherlands, Mr. Visscher was attempting to improve the performance of his XSL output. He switched from createElement [...]]]></description>
			<content:encoded><![CDATA[<p>Heard of <a href="https://twitter.com/sjoerd_visscher">Sjoerd Visscher</a>? I would venture to guess you have not; however, what he considered a minor discovery of his is at the foundation of our ability to use HTML5 today.</p>
<p><strong>Back in 2002</strong>, In The Hague, Netherlands, Mr. Visscher was attempting to improve the performance of his XSL output. He switched from <code>createElement</code> calls to setting the <code>innerHTML</code> property, and then realized all the unknown non-HTML elements were <a href="http://xopus.com/devblog/2008/style-unknown-elements.html">no longer styleable by CSS</a>.</p>
<p>Fast forward to 2008, HTML5 is gaining momentum. New elements have been specified, however in practice, Internet Explorer 6-8 pose a problem as they do not recognize unknown elements; <strong>the new elements cannot hold children and are unaffected by CSS</strong>. This sad fact was posing quite a big hinderance to HTML5 adoption.</p>
<p>And it&#039;s now, half a decade after his discovery that Sjoerd innocently <a href="http://intertwingly.net/blog/2008/01/22/Best-Standards-Support#c1201006277">mentions this trick in a comment</a> on the blog of the W3C HTML WG co-chair, Sam Ruby:</p>
<blockquote><p>Btw, if you want CSS rules to apply to unknown elements in IE, you just have to do <code>document.createElement(elementName)</code>. This somehow lets the CSS engine know that elements with that name exist</p></blockquote>
<p>Ian Hickson, lead editor of the HTML5 spec, stood surprised, along the rest of the web, that he had never heard this trick before and was <a href="http://ln.hixie.ch/?start=1201080691&amp;count=1">happy to report</a>: &#034;This piece of information makes building an HTML5 compatibility shim for IE7 far easier than had previously been assumed.&#034;</p>
<p>John Resig, one day later, wrote the post that <a href="http://ejohn.org/blog/html5-shiv/">coined the term &#034;HTML5 Shiv&#034;</a>. While it technically is a &#034;shim&#034; and John admitted this later, the proliferation of assorted HTML5 shims nowadays makes a good case for us to continue using &#034;shiv&#034; for this solution. Chris Wilson, then of the IE Team, said “I want to jam standards support into (this and future versions of) Internet Explorer. If a shiv is the only pragmatic tool I can use to do so, shouldn’t I be using it?”</p>
<p>Now, from here, a quick timeline:</p>
<ul>
<li>January 2009: Remy Sharp creates the first <a href="http://remysharp.com/2009/01/07/html5-enabling-script/">distributable script for enabling HTML5</a> element use in IE.</li>
<li>June 2009: Faruk Ateş includes the html5shiv in Modernizr&#039;s initial release.</li>
<li>February 2010: A ragtag team of superstar JavaScript developers including Remy, Kangax, John-David Dalton, and PorneL <a href="http://mathiasbynens.be/demo/html5-shims">collaborate and drop the filesize</a> of the script.</li>
<li>March 2010: Mathias Bynens and others <a href="http://html5doctor.com/how-to-use-html5-in-your-client-work-right-now/#comment-2618">notice the shiv doesn&#039;t affect pages printed</a> from IE. It was a sad day.</li>
<li>April 2010: Jonathan Neal answers the challenge with the <a href="http://www.iecss.com/print-protector/">IE Print Protector (IEPP)</a>, which captured the scope of the html5shiv but also added in support for printing the elements as well, through clever use of the <code>onbeforeprint</code> &amp; <code>onafterprint</code> events, along with a faux DOM reconstruction.</li>
<li>April 2010: Remy replaces the legacy html5shiv solution with the new IEPP.</li>
<li>August 2010: JD Bartlett introduced the <a href="http://jdbartlett.github.com/innershiv/">innerShiv</a>, which is necessary for shiv&#039;ing content going in via <code>innerHTML</code>.
<li>February 2011: Alexander Farkas carries the torch, moving <a href="https://github.com/aFarkas/iepp/wiki">the IEPP project to github</a>, adding a test suite, fixing bugs, and improving performance.</li>
<li>April 2011: IEPP v2 comes out. Modernizr and the html5shiv inherit the latest code. Meanwhile developers everywhere continue to use HTML5 elements in a cross-browser fashion without worry.</li>
</ul>
<p><img src="http://paulirish.com/i/c722.png" alt="" align="right" width=259 height=343 alt="#bonusrobot" title="#bonusrobot" /></p>
<p>This is what the HTML5 community is all about to me: distributed folks, working collaboratively, to bring the promise and potential of HTML5 into reality.</p>
<p>Just for emphasis on all the bright minds that engaged on this one.. Here are the people who worked on the HTML5 Shiv: <a href="https://twitter.com/sjoerd_visscher">Sjoerd Visscher</a>, <a href="http://intertwingly.net/blog/">Sam Ruby</a>, <a href="http://ejohn.org/blog/">John Resig</a>,  <a href="http://remysharp.com/">Remy Sharp</a>,  <a href="http://twitter.com/jdbartlett">JD Bartlett</a>, <a href="http://farukat.es">Faruk Ateş</a>, <a href="http://perfectionkills.com/">Kangax</a>, <a href="http://allyoucanleet.com/">John-David Dalton,</a> <a href="http://pornel.net/">PorneL</a>, <a href="http://mathiasbynens.be/">Mathias Bynens</a>, me and last but certainly not least, <a href="http://twitter.com/jon_neal">Jonathan Neal</a> and <a href="https://github.com/afarkas">Alexander Farkas</a>.</p>
<hr />The narrative above appears in my foreword for the book <strong><a href="http://www.amazon.com/gp/product/0980846900/ref=as_li_ss_tl?ie=UTF8&amp;tag=aurgasm-20">HTML5 &amp; CSS3 for The Real World</a></strong> by <a href="http://www.standardista.com/">Estelle Weyl</a>, <a href="http://www.impressivewebs.com/">Louis Lazaris</a>, and <a href="http://www.livetotry.com/">Alexis Goldstein</a>.</p>
<p>It&#039;s a very good book on practical HTML5 and CSS3 development with a lovely learning curve. <a href="http://www.amazon.com/gp/product/0980846900/ref=as_li_ss_tl?ie=UTF8&amp;tag=aurgasm-20">Buy it</a> if you like.  ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://paulirish.com/2011/the-history-of-the-html5-shiv/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>A Re-introduction to the Chrome Developer Tools</title>
		<link>http://paulirish.com/2011/a-re-introduction-to-the-chrome-developer-tools/</link>
		<comments>http://paulirish.com/2011/a-re-introduction-to-the-chrome-developer-tools/#comments</comments>
		<pubDate>Mon, 16 May 2011 16:07:19 +0000</pubDate>
		<dc:creator>Paul Irish</dc:creator>
				<category><![CDATA[chrome]]></category>
		<category><![CDATA[front-end development]]></category>

		<guid isPermaLink="false">http://paulirish.com/?p=1096</guid>
		<description><![CDATA[Pavel Feldman (Dev Tools engineering lead) and I just spoke at Google I/O about the Chrome Developer tools. We covered a whole lot of enhancements to style manipulation, timeline inspection, script debugging, DOM and Event listener breakpoints. If you haven&#039;t looked much at the dev tools in 12 months, you need to give this another [...]]]></description>
			<content:encoded><![CDATA[<p>Pavel Feldman (Dev Tools engineering lead) and I just spoke at Google I/O about the Chrome Developer tools.</p>
<p>We covered a whole lot of enhancements to style manipulation, timeline inspection, script debugging, DOM and Event listener breakpoints. </p>
<p>If you haven&#039;t looked much at the dev tools in 12 months, you need to give this another look. But if you&#039;re also using it daily, I can guarantee we show some features in here you have overlooked.  ~36min.</p>
<p><iframe width="620" height="310" src="http://www.youtube.com/embed/N8SS-rUEZPg" frameborder="0" allowfullscreen></iframe></p>
<p>We announced a few brand new features I&#039;m really jazzed about:</p>
<ul>
<li><a href="http://www.webkit.org/blog/1620/webkit-remote-debugging/">Remote Debugging</a></li>
<li>minified script pretty printing <small>(look for the <code>{}</code> icon on the bottom bar)</small></li>
<li>revision history with save to disk functionality</li>
<li>freeform style and script editing</li>
<li><a href="http://code.google.com/chrome/extensions/trunk/experimental.devtools.html">Dev Tools Extension APIs</a></li>
</ul>
<p>Lots of these require the <a href="http://tools.google.com/dlpage/chromesxs">Chrome Canary</a> or Dev Channel build, so hop on those, or wait 6 weeks. :)</p>
<p>Also&#8230;</p>
<p>My colleague <a href="http://smus.com">Boris Smus</a> has also crafted a nice cheat sheet for the Dev Tools:</p>
<p><a href="https://github.com/borismus/DevTools-Lab/raw/master/cheatsheet/chromedev-cheatsheet.png"><img src="http://paulirish.com/wp-content/uploads/2011/05/cdt-cheatsheet-ss.png"></a></p>
<p>The cheatsheet is available for download in <a href="https://github.com/borismus/DevTools-Lab/raw/master/cheatsheet/chromedev-cheatsheet.pdf"><span class="caps">PDF</span></a> and <a href="https://github.com/borismus/DevTools-Lab/raw/master/cheatsheet/chromedev-cheatsheet.png"><span class="caps">PNG</span></a>. <small>(You can also <a href="https://github.com/borismus/DevTools-Lab/blob/master/cheatsheet/">fork it</a>)</small></p>
<p>If you guys have any questions about the dev tools, I can try to answer them below. :)</p>
]]></content:encoded>
			<wfw:commentRss>http://paulirish.com/2011/a-re-introduction-to-the-chrome-developer-tools/feed/</wfw:commentRss>
		<slash:comments>44</slash:comments>
		</item>
		<item>
		<title>Scoped Tweets to reduce noise for your followers</title>
		<link>http://paulirish.com/2011/scoped-tweets-to-reduce-noise-for-your-followers/</link>
		<comments>http://paulirish.com/2011/scoped-tweets-to-reduce-noise-for-your-followers/#comments</comments>
		<pubDate>Sun, 01 May 2011 20:15:25 +0000</pubDate>
		<dc:creator>Paul Irish</dc:creator>
				<category><![CDATA[hacks]]></category>

		<guid isPermaLink="false">http://paulirish.com/?p=1090</guid>
		<description><![CDATA[I&#039;ve been using a technique for a while now to reduce twitter noise, and I suppose it deserves documenting. I like to keep my tweet volume low (specifically your regular broadcast tweets, rather than replies. When attending a conference&#8230; I&#039;ll oftentimes write a tweet as a reply to the conference&#039;s twitter account. For example, I&#039;m [...]]]></description>
			<content:encoded><![CDATA[<p>I&#039;ve been using a technique for a while now to reduce twitter noise, and I suppose it deserves documenting. I like to keep my tweet volume low (specifically your regular broadcast tweets, rather than replies.</p>
<h4>When attending a conference&#8230;</h4>
<p>I&#039;ll oftentimes write a tweet as a reply to the conference&#039;s twitter account. For example, I&#039;m off to <a href="//jsconf.us/2011">JSConf</a> right now. So I might do</p>
<blockquote><p>@JSConf just landed. here in PDX. anyone wanna share a cab? also beerz. nao. </p></blockquote>
<p>Similarly when using twitter as the backchannel, I don&#039;t search just the #jsconf hashtag, but purely &#039;jsconf&#039; so I get both the hashtags and the replies.</p>
<h4>When targetting a smaller portion of your followers&#8230;</h4>
<p>Sometimes I wanna tweet some info that&#039;s interesting to only some folks, like strictly people interested in javascript language details or straight up designers. I&#039;ll pick a pretty popular person in that area and shoot it of almost like a reply to them:</p>
<blockquote><p>@kangax et al, Annotated ECMAScript 5.1 now @ http://es5.github.com incl. links to MDC and @DmitrySoshnikov&#039;s research</p></blockquote>
<h4>Wha?</h4>
<p>This all makes sense because of how twitter handles replies.  If I reply to @homeboy1 and you don&#039;t follow him, you don&#039;t see that one in your timeline. If you do, you do.</p>
<p>So there it is.. mostly I see it as a polite thing to do when at a conference and the rest of your followers want to put you on mute for 3 days. :)</p>
]]></content:encoded>
			<wfw:commentRss>http://paulirish.com/2011/scoped-tweets-to-reduce-noise-for-your-followers/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss><!-- Dynamic page generated in 1.587 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-05-27 06:16:19 -->

