<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Thoughts From Eric</title>
	<atom:link href="http://meyerweb.com/index.php?feed=rss2&#038;scope=summary" rel="self" type="application/rss+xml" />
	<link>http://meyerweb.com/eric/thoughts</link>
	<description>Things that Eric A. Meyer, CSS expert, writes about on his personal Web site; it&#039;s largely Web standards and Web technology, but also various bits of culture, politics, personal observations, and other miscellaneous stuff</description>
	<lastBuildDate>Thu, 09 Feb 2012 18:37:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Unfixed</title>
		<link>http://meyerweb.com/eric/thoughts/2012/02/09/unfixed/</link>
		<comments>http://meyerweb.com/eric/thoughts/2012/02/09/unfixed/#comments</comments>
		<pubDate>Thu, 09 Feb 2012 18:37:49 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1622</guid>
		<description><![CDATA[Vendor prefixes may soon be a thing of the past, and in the worst possible way.]]></description>
			<content:encoded><![CDATA[<p>Right in the middle of AEA Atlanta—which was <em>awesome</em>, I really must say—there were two announcements that stand to invalidate (or at least greatly alter) portions of the talk I delivered.  One, which I believe came out as I was on stage, was the publication of <a href="http://www.w3.org/TR/2012/WD-css3-positioning-20120207/">the latest draft of the CSS3 Positioned Layout Module</a>.  We’ll see if it triggers change or not; I haven’t read it yet.</p>

<p>The other was the publication of <a href="http://lists.w3.org/Archives/Public/www-style/2012Feb/0313.html">the minutes of the CSS Working Group meeting in Paris</a>, where it was revealed that several vendors are about to support the <code>-webkit-</code> vendor prefix in their own very non-WebKit browsers.  Thus, to pick but a single random example, Firefox would throw a drop shadow on a heading whose entire author CSS is <code>h1 {-webkit-box-shadow: 2px 5px 3px gray;}</code>.</p>

<p>As an author, it sounds good as long as you haven’t really thought about it very hard, or if perhaps you have a very weak sense of the history of web standards and browser development.  It fits right in with the recurring question, “Why are we screwing around with prefixes when vendors should just implement properties completely correctly, or not at all?”  Those idealized end-states always sound great, but years of evidence (and reams upon reams of bug-charting material) indicate it’s an unrealistic approach.</p>

<p>As a vendor, it may be the least bad choice available in an ever-competitive marketplace.  After all, if there were a few million sites that you could render as intended if only the authors used your prefix instead of just one, which would you rather: embark on a protracted, massive awareness campaign that would probably be contradicted to death by people with their own axes to grind; or just support the damn prefix and move on with life?</p>

<p>The practical upshot is that browsers “supporting alien CSS vendor prefixes”, <a href="http://www.netmagazine.com/news/css-vendor-prefixes-threaten-open-web-121757">as Craig Grannell put it</a>, seriously cripples the whole concept of vendor prefixes.  It may well reduce them to outright pointlessness.  I am <a href="http://alistapart.com/articles/prefix-or-posthack/">on record as being a fan of vendor prefixes</a>, and furthermore as someone who advocated for the formalization of prefixing as a part of the specification-approval process.  Of course I still think I had good ideas, but those ideas are currently being sliced to death on the shoals of reality.  Fingers can point all they like, but in the end what matters is what happened, not what should have happened if only we’d been a little smarter, a little more angelic, whatever.</p>

<p>I’ve seen a proposal that vendors agree to only support other prefixes in cases where they are un-prefixing their own support.  To continue the previous example, that would mean that when Firefox starts supporting the bare <code>box-shadow</code>, they will also support <code>-webkit-box-shadow</code> (and, one presumes, <code>-ms-box-shadow</code> and <code>-o-box-shadow</code> and so on).  That would mitigate the worst of the damage, and it’s probably worth trying.  It could well buy us a few years.</p>

<p>Developers are also trying to help repair the damage before it’s too late.  Christian Heilmann has <a href="http://christianheilmann.com/2012/02/09/now-vendor-prefixes-have-become-a-problem-want-to-help-fix-it/">launched an effort to get GitHub-based projects updated</a> to stop being WebKit-only, and Aarron Gustafson <a href="http://blog.easy-designs.net/archives/2012/02/09/this-must-not-happen/">has published a UNIX command to find all your CSS files containing <code>webkit</code></a> along with a call to update anything that’s not cross-browser friendly.  Others are making similar calls and recommendations.  You could use <a href="http://leaverou.github.com/prefixfree/">PrefixFree</a> as a quick stopgap while going through the effort of doing manual updates.  You could make sure your CSS pre-processor, if that’s how you swing, is set up to do auto-prefixing.</p>

<p>Non-WebKit vendors are in a corner, and we helped put them there.  If the proposed prefix change is going to be forestalled, we have to get them out.  Doing that will take a lot of time and effort and awareness and, above all, widespread interest in doing the right thing.</p>

<p>Thus my fairly deep pessimism.  I’d love to be proven wrong, but I have to assume the vendors will push ahead with this regardless.  It’s <a href="http://meyerweb.com/eric/thoughts/2008/01/24/almost-target/">what we did at Netscape ten years ago</a>, and almost certainly would have done despite any outcry.  I don’t mean to denigrate or undermine any of the efforts I mentioned before—they’re absolutely worth doing even if every non-WebKit browser starts supporting <code>-webkit-</code> properties next week.  If nothing else, it will serve as evidence of your commitment to professional craftsmanship.  The real question is: how many of your fellow developers come close to that level of commitment?</p>

<p>And I identify that as the real question because it’s the question vendors are asking—<em>must</em> ask—themselves, and the answer serves as the compass for their course.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2012/02/09/unfixed/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Vigilance and Victory</title>
		<link>http://meyerweb.com/eric/thoughts/2012/01/20/vigilance-and-victory/</link>
		<comments>http://meyerweb.com/eric/thoughts/2012/01/20/vigilance-and-victory/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 14:56:13 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Commentary]]></category>
		<category><![CDATA[Culture]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1616</guid>
		<description><![CDATA[After the blackout on Wednesday, it seems that the political tides are shifting against SOPA and the PROTECT IP Act.  Now prepare for the much longer battle.]]></description>
			<content:encoded><![CDATA[<p>After the blackout on Wednesday, <a href="http://s3.amazonaws.com/propublica/assets/images/sopa-opera-count.png">it seems that the political tides are shifting</a> against <acronym title="Stop Online Piracy Act">SOPA</acronym> and the <acronym title="Preventing Real Online Threats to Economic Creativity and Theft of Intellectual Property">PROTECT IP</acronym> Act—as of this writing, there are now more members of Congress in opposition to the bills than in favor.  That’s good news.</p>

<p>I wil reiterate something I said on Twitter, though:  the members of tech community, particularly those who are intimately familiar with the basic protocols of the Internet, need to keep working on ways to counteract SOPA/PIPA.  What form that would take, I’m not sure.  Maybe a truly distributed DNS system, one that can’t be selectively filtered by any one government or other entity.  I’m not an expert in the area, so I don’t actually know if that’s feasible.  There’s probably a much more clever solution, or better still suite of solutions.</p>

<p>The point is, SOPA and PIPA may soon go down to defeat, <em>but they will return in another form</em>.  There is too much money in the hands of those who first drafted these bills, and they’re willing to give a fair chunk of that money to those who introduced the bills in Congress.  Never mistake winning a battle with winning the war.  As someone else observed on Twitter (and I wish I could find their tweet now), the Internet community fought hard against the <acronym title="Digital Millennium Copyright Act">DMCA</acronym>, and it’s been US law for more than a decade.</p>

<p>By all means, take a moment to applaud the widespread and effective community effort to oppose and (hopefully) defeat bad legislation.  When that’s done, take notes on what worked and what didn’t, and then prepare to fight again and harder.  Fill the gap between battles with outreach to your elected representatives and with efforts to educate the non-technical in your life to explain why SOPA/PIPA were and are a bad idea.</p>

<p>Days of action feel great.  Months of effort are wearying.  But it’s only the latter that can slowly and painfully bring about long-term change.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2012/01/20/vigilance-and-victory/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Standing In Opposition</title>
		<link>http://meyerweb.com/eric/thoughts/2012/01/18/standing-in-opposition/</link>
		<comments>http://meyerweb.com/eric/thoughts/2012/01/18/standing-in-opposition/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 16:42:54 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Commentary]]></category>
		<category><![CDATA[Culture]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1605</guid>
		<description><![CDATA[Though I certainly do not support <acronym title="Stop Online Piracy Act">SOPA</acronym> or the <acronym ="Preventing Real Online Threats to Economic Creativity and Theft of Intellectual Property">PROTECT IP</acronym> Act (the complete contrived acronym of PIPA), I will not be blacking out meyerweb.  Find out why.]]></description>
			<content:encoded><![CDATA[<p>
Though I certainly do not support <acronym title="Stop Online Piracy Act">SOPA</acronym> or the <acronym title="Preventing Real Online Threats to Economic Creativity and Theft of Intellectual Property">PROTECT IP</acronym> Act (the complete, rather contrived acronym of PIPA), I will not be blacking out meyerweb.  This is largely because the vast majority of my readers already know about these bills, and very likely oppose them; as for anyone who visits but does not know about these bills, I feel I’ll do better to speak out than to black out.  (Which is not a criticism of those who do black out.  We all fight in our own ways.)
</p>
<p>
Instead, I will reproduce here the letter I attempted to send via contact form to <a href="http://brown.senate.gov/" title="Sherrod Brown, D-OH">my state Senator</a> this morning, and which I will print out and send by regular postal service later today.
</p>

<blockquote>
<p>
Senator Brown:
</p>
<p>
I grew up in Lexington, Ohio.  I moved to Cleveland in pursuit of a career, and found success.  Through a combination of good luck and hard work, I have (rather to my surprise) become a widely recognized name in my field, which is web design and development.  Along the way, I co-founded a web design conference with an even more widely respected colleague that has become one of the most respected and successful web design events in the world.  This business is headquartered in Ohio—I live in Cleveland Heights with my family, and I intend to stay here until I either retire to Florida or die.  Politically I’m best described as a moderate independent, though I do tend to lean a bit to the left.
</p>
<p>
As you can imagine, given my line of work, I have an opinion regarding the PROTECT IP Act which you have co-sponsored.  The aims of PROTECT IP are understandable, but the methods are unacceptable.  Put another way, if you wish to combat piracy and intellectual property theft, there are far better ways to go about it.
</p>
<p>
As someone with twenty years of technical experience with the Internet and nearly as many with the web—I started creating web pages in late 1993—please believe me when I say the enforcement mechanisms of the bill are deeply flawed and attack the very features of the Web that make it what it is.  They are akin to making a criminal of anyone who gives directions to a park where drug trafficking takes place, regardless of whether they knew about the drug trafficking.  You don’t have to be in favor of drug trafficking to oppose that.
</p>
<p>
This is not a case where tweaking a clause or two will fix it; correction in this case would mean starting from scratch.  Again, the objection is not with the general intent of the bill.  It is with how the bill goes about achieving those aims.
</p>
<p>
If you would like to discuss this with me further, I would be delighted to do whatever I can to help, but in any event I strongly urge you to reconsider your co-sponsorship of the PROTECT IP Act.
</p>
<p>
Thank you for your time and consideration.
</p>
<p>Eric A. Meyer (http://meyerweb.com/)</p>
<p>Partner and co-founder, An Event Apart (http://aneventapart.com/)</p>
</blockquote>

<p>
If you agree that the PROTECT IP Act is poorly conceived, <a href="http://projects.propublica.org/sopa/pipa#roll_call" title="PIPA Roll Call">find out if your senator supports PIPA</a>.  If they do, get in touch and let them know about your opposition.  If they oppose the bill, get in touch and thank them for their opposition.  If their support or opposition isn’t known, get in touch and ask them to please speak out in opposition to the bill.
</p>
<p>
As others have said, postal letters are better than phone calls, which are in turn better than e-mail, which is in turn better than signing petitions.  Do what you can, please.  The web site you save might be your own.
</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2012/01/18/standing-in-opposition/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Survey, 2011</title>
		<link>http://meyerweb.com/eric/thoughts/2011/11/18/the-survey-2011/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/11/18/the-survey-2011/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 16:42:21 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1594</guid>
		<description><![CDATA[A List Apart is running <a href="http://surveyapart.polldaddy.com/s/ala2011/">the 2011 edition of The Survey for People Who Make Web Sites</a>, the fifth annual effort to learn more about the people who work in the web industry.]]></description>
			<content:encoded><![CDATA[<p>Back on Tuesday, A List Apart opened <a href="http://surveyapart.polldaddy.com/s/ala2011/">the 2011 edition of The Survey for People Who Make Web Sites</a>, the fifth annual effort to learn more about the people who work in the web industry.  If you haven&#8217;t taken it yet, please do so!  It should take about ten minutes</p>

<p>I&#8217;m proud to have been a part of this effort since its inaugural launch back in 2007.  It&#8217;s a major undertaking, mostly in analyzing the data and turning that into a detailed report, but it&#8217;s more than worth the time and effort.  Before the Survey, we really didn&#8217;t know very much about who we were as a field of practice, and without it we wouldn&#8217;t have as clear a picture of who we are today.</p>

<p>There have been growing pains, of course, chief among them <a href="http://www.bigredspark.com/survey.html">UCCASS</a>, the survey software we&#8217;ve been using since the outset.  Its limitations and lack of updates finally pushed us to find another platform, and we chose to move over to <a href="http://polldaddy.com/">Polldaddy</a>.  Many thanks to the Polldaddy team for giving the survey a home and helping me figure out the best strategies for recreating the survey.  (And also for putting up with my occasionally testy feature and support requests.  Sorry, gang.)</p>

<p>Due to differences between UCCASS and Polldaddy, we ended up restructuring the survey into two distinct paths.  I think this change actually speeds the process of taking the survey.  I&#8217;m pretty sure just about anyone could get through it in under ten minutes.</p>

<p>Unsurprisingly, participation in the survey has dropped over the years; last year&#8217;s survey had a bit more than half as many respondents as the first-ever survey back in 2007.  Tellingly, the actual results have been pretty consistent over the years.  I&#8217;d really like to see how those results stand up to an increase of respondents, so please:</p>

<ul>
<li>If you haven&#8217;t taken the survey yet, kindly set aside ten minutes and <a href="http://surveyapart.polldaddy.com/s/ala2011/">do so</a>.</li>
<li>If you have taken the survey, thank you.  Now, spread the word!  If you could post a quick link to any mailing lists, web forums, newsgroups, or other professional communities in which you participate, it will be an enormous help.  The more practitioners we have answer, the better the results.</li>
</ul>

<p>As always, the survey will close a month after it opened; and as always, a detailed report will be published—feel free to peruse the reports from <a href="http://www.alistapart.com/d/2007surveyresults/2007surveyresults.pdf">2007</a> (PDF), <a href="http://aneventapart.com/alasurvey2008/">2008</a>, <a href="http://aneventapart.com/alasurvey2009/">2009</a>, and <a href="http://aneventapart.com/alasurvey2010/">2010</a>—along with anonymized data sets for independent analysis.  Together, they form a picture, but one that is still being drawn.  Please help us to add the most essential detail—you!</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/11/18/the-survey-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Searching For Mark Pilgrim</title>
		<link>http://meyerweb.com/eric/thoughts/2011/10/04/searching-for-mark-pilgrim/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/10/04/searching-for-mark-pilgrim/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 02:03:24 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1566</guid>
		<description><![CDATA[Mark Pilgrim has left the internet.]]></description>
			<content:encoded><![CDATA[<p><em>[[ MARK IS FINE and his work is not lost.  Please see the update and addendum later in the post. <small>—E.</small> ]]</em></p>
<p>
Just yesterday, I took a screenshot of the title page of <cite>Dive Into HTML5</cite> to include in a presentation as a highly recommended resource.  Now it&#8217;s gone.  That site, along with all the other &#8220;Dive Into…&#8221; sites (Accessibility, Python, Greasemonkey, etc.) and addictionis.org, is returning an HTTP &#8220;410 Gone&#8221; message.  Mark&#8217;s Github, Google+, Reddit, and Twitter accounts have all been deleted.  And attempts to email him have been bounced back.
</p>
<p>
This is very reminiscent of Why the Lucky Stiff&#8217;s infosuicide, and it&#8217;s honestly shocking.  If anyone is in direct contact with Mark, please let me know that he&#8217;s okay via comment here or by <a id="contactAddr" onmouseover="setAddr('e');" onfocus="setAddr('e');" href="/other/contact.html">direct e-mail</a>, even if his internet presence has been erased.  As much as I hate for the world to lose all of the incredible information he&#8217;s created and shared, that would be as nothing compared to losing the man himself.
</p>
<blockquote><p>&#8220;Embracing HTTP error code 410 means embracing the impermanence of all things.&#8221;</p></blockquote>
<p class="quoteattrib">—Mark Pilgrim, March 27, 2003 (diveintomark.com)</p>

<p><strong>Update 5 Oct 11:</strong> <a href="http://twitter.com/textfiles">Jason Scott</a> just tweeted the following:</p>

<blockquote><p><a href="https://twitter.com/#!/textfiles/status/121436401131716608">Mark Pilgrim is alive/annoyed we called the police. Please stand down and give the man privacy and space, and thanks everyone for caring.</a></p>
<p><a href="https://twitter.com/#!/textfiles/status/121436401131716608">The communication was specifically verified, it was him, and that&#8217;s that. That was the single hardest decision I&#8217;ve had to make this year.</a></p></blockquote>

<p>So there you have it.  I&#8217;m sorry to have helped annoy Mark, am very glad he&#8217;s well, and sincerely hope that we can all give him the privacy he desires.  And with that, I&#8217;m going to sleep now.  Thank you, everyone.</p>

<p><strong>Addendum 5 Oct 11:</strong> Several people have asked me if I know why Mark took this step.  I don&#8217;t.  I have three comments in the moderation queue all claiming to be from Mark, only one of which even approaches sounding credible, and none of which have any sort of verification.  Unless Mark contacts me directly, or changes his server to return an explanatory note instead of or along with a 410, or something similar, I&#8217;m as much in the dark as anyone else.  If he&#8217;d like to talk with me about it, he&#8217;s certainly more than welcome to do so, but he&#8217;s under no obligation to explain himself to me or anyone else.</p>
<p>Mirrors of Mark&#8217;s work have started appearing (see the comments for some of them) and so his legacy, if not his presence, will not be lost.  I am assuming that he has simply withdrawn from digital life, his reasons are his own, and that if he feels interested in explaining those reasons he will find a way to do so.  Regardless, his path is his own and we should leave him to walk it as he chooses.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/10/04/searching-for-mark-pilgrim/feed/</wfw:commentRss>
		<slash:comments>100</slash:comments>
		</item>
		<item>
		<title>CSS Modules Throughout History</title>
		<link>http://meyerweb.com/eric/thoughts/2011/09/27/css-modules-timelines/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/09/27/css-modules-timelines/#comments</comments>
		<pubDate>Tue, 27 Sep 2011 13:03:10 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1559</guid>
		<description><![CDATA[For very little reason other than I was curious to see what resulted, I've compiled a list of various CSS modules' version histories, and then used CSS to <a href="http://meyerweb.com/eric/css/timelines/">turn it into a set of timelines</a>.]]></description>
			<content:encoded><![CDATA[<p>For very little reason other than I was curious to see what resulted, I&#8217;ve compiled a list of various CSS modules&#8217; version histories, and then used CSS to <a href="http://meyerweb.com/eric/css/timelines/">turn it into a set of timelines</a>.  It&#8217;s kind of a low-cost way to visualize the life cycle of and energy going into various CSS modules.</p>

<p>I&#8217;ll warn you up front that as of this writing the user interaction is not ideal, and in some places the presentation suffers from too much content overlap.  This happens in timelines where lots of drafts were released in a short period of time.  (In one case, two related drafts were released on the same day!)  I intend to clean up the presentation, but for the moment I&#8217;m still fiddling with ideas.  The obvious one is to rotate every other spec name by -45 degrees, but that looked kind of awful.  I suspect I&#8217;ll end up doing some sort of timestamp comparison and if they&#8217;re too close together, toss on a class that invokes a <code>-45deg</code> rotation.  Or maybe I&#8217;ll get fancier!</p>

<p>The interaction is a little tougher to improve, given what&#8217;s being done here, but I have a few ideas for making things, if not perfect, at least less twitchy.</p>

<p>I should also note that not every module is listed as I write this:  I intentionally left off modules whose last update was 2006 or earlier.  I may add them at the end, or put them into a separate set of timelines.  The historian in me definitely wants to see them included, but the shadow of a UX person who dwells somewhere in the furthest corners of my head wanted to avoid as much clutter as possible.  We&#8217;ll see which one wins.</p>

<p>Anyway, somewhat like the <a href="http://meyerweb.com/eric/browsers/timeline-structured.html">browser release timeline</a>, which is probably going to freeze in the face of the rapid-versioning schemes that are all the rage these days, I had fun combining my love of the web and my love of history.  I should do it more often, really.  The irony is that I don&#8217;t really have the time.</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/09/27/css-modules-timelines/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Un-fixing Fixed Elements with CSS Transforms</title>
		<link>http://meyerweb.com/eric/thoughts/2011/09/12/un-fixing-fixed-elements-with-css-transforms/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/09/12/un-fixing-fixed-elements-with-css-transforms/#comments</comments>
		<pubDate>Mon, 12 Sep 2011 15:54:45 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1556</guid>
		<description><![CDATA[In the course of experimenting with some new artistic scripts to follow up "Spinning the Web", I ran across an interesting interaction between positioning and tranforms.]]></description>
			<content:encoded><![CDATA[<p>In the course of experimenting with some new artistic scripts to follow up &#8220;<a href="http://meyerweb.com/eric/thoughts/2011/06/03/spinning-the-web/">Spinning the Web</a>&#8220;, I ran across an interesting interaction between positioning and transforms.</p>

<p>Put simply: as per <a href="http://www.w3.org/TR/2009/WD-css3-2d-transforms-20091201/#introduction">the Introduction of the latest CSS 2D Transforms draft</a>, a transformed element creates a containing block for <strong>all</strong> its positioned descendants.  This occurs in the absence of any explicit positioning of the transformed element.</p>

<p>Let&#8217;s walk through that.  Say you have a document whose <code>body</code> contains nothing except a <code>position: static</code> (normal-flow) <code>div</code> that contains some absolutely-positioned descendants.  The containing block for those positioned elements will be the root element.  Nothing unusual or unexpected there.</p>

<p>But then you decide to declare <code>div {transform: rotate(10deg);}</code>.  (Or even <code>0deg</code>, which will have the same result.)  Now the <code>div</code> is the containing block for the absolutely-positioned elements that descend from it.  It&#8217;s as though transforming an element force-adds <code>position: relative</code>.  The positioned elements will rotate with their ancestor <em>and</em> be placed according to its containing block—not that of the root element.</p>

<p>Okay, so that&#8217;s a little unusual but perhaps not unexpected.  I could make arguments both ways, and some of the arguments could get pretty complex.  To pick one example, if the transformed element <em>didn&#8217;t</em> generate a containing block, how would translate transforms be handled?</p>

<p>Either way, here&#8217;s where things got really troublesome for me:  a transformed element creates a containing block <em>even for descendants that have been set to <code>position: fixed</code></em>.  In other words, the containing block for a fixed-position descendant of a transformed element is the transformed element, <em>not</em> the viewport.  Furthermore, if the transformed element is in the normal flow, it will scroll with the document <em>and the fixed-position descendants will scroll with it</em>. You can see <a href="http://meyerweb.com/eric/css/tests/css3-trans-an/nested-fixed.html">my test case</a>, where the red and blue boxes would overlap each other and stay fixed in place, except the second green <code>div</code> has been rotated.</p>

<p>Obviously this makes the fixed-position elements something less than fixed-position.  In effect, not only does the transformed element act as if it&#8217;s been force-assigned <code>position: relative</code>, the fixed descendants behave as if they&#8217;ve been force-changed to <code>position: absolute</code>. </p>

<p>I find this not only unusual and unexpected, but also a wee bit unsettling.  Personally, I think it goes too far.  Fixed-position elements should be fixed to the viewport, regardless of the transformation of their ancestors.  Of course, if you agree with my thinking there, realize that opens a whole new debate about how, or even whether, transforms of ancestors should be carried to fixed-position descendants.</p>

<p>I have my own intuitions about that, but this is definitely territory where intuitions are to be treated with caution.  There are a lot of interacting behaviors no matter what you do, and no matter what you do someone&#8217;s going to find the results baffling in some way or other.</p>

<p>But since I do have intuitions, here&#8217;s what they are:  transformed elements in the normal flow or floated do not establish containing blocks for absolutely- and fixed-position descendants.  This means that any transforms you apply to the transformed element are not applied to the positioned descendants, because transforms don&#8217;t inherit.</p>

<p>What if you want a normal-flow transformed element to be a containing block?  Use <code>position: relative</code>, same as you would if there were no transform.  And if you want the transforms to be passed on to the descendants even though no containing block is established?  The <code>inherit</code> value would work in some cases, though not all.  That&#8217;s where my approach runs aground, and I&#8217;m not yet sure how to get it back to sea.</p>

<p>Okay, so that&#8217;s what I think.  What do you think?</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/09/12/un-fixing-fixed-elements-with-css-transforms/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Adoption Day</title>
		<link>http://meyerweb.com/eric/thoughts/2011/08/30/adoption-day-3/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/08/30/adoption-day-3/#comments</comments>
		<pubDate>Tue, 30 Aug 2011 12:48:09 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Joshua]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1544</guid>
		<description><![CDATA[Yesterday afternoon, in a small office on the second floor of the Cuyahoga County Courthouse in downtown Cleveland, Ohio, Kat and Carolyn and Rebecca and I finalized our adoption of Joshua.]]></description>
			<content:encoded><![CDATA[<img src="http://meyerweb.com/pix/2011/adoption-day.jpg" alt="" class="pic border"/>

<p>Yesterday morning, in a small office on the second floor of the Cuyahoga County Courthouse in downtown Cleveland, Ohio, Kat and Carolyn and Rebecca and I finalized our adoption of Joshua. There were a few witnesses to this: the social worker who has handled our case from the outset, as she did Carolyn’s; the lawyer who made sure all of our paperwork was correct; my sister and father and stepmother; our friends Gini and Ferrett and Jim; and the magistrate who conducted the proceedings.</p>

<p>As with Carolyn and Rebecca, I haven’t talked about Joshua being adopted—not that it was any big secret, given our having adopted our other children.  Nevertheless, I did this for the same old reasons: for the past seven months, we’ve been borrowing him from his legal guardians, the adoption agency.  The usual monthly checkups from our social worker still occurred, and there was still the theoretical possibility of Joshua’s placement being revoked for any reason whatsoever.  Or even for no reason at all.  I had no way to know if a blog post might somehow make things more difficult, so I left it alone.</p>

<p>All this was always a basically theoretical possibility—there was no real fear of it actually happening—but now, even the theory is undone.  Joshua is now legally our son and the girls’ brother just as completely as he has long been both in our hearts.  He is now ours—but even more than that, and far more importantly, we are now his.</p>

<p>Over a celebratory lunch, Kat held our sleeping son in her arms and I cradled his head with my hand as we whispered our love for him, for our girls, and for each other.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/08/30/adoption-day-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Results of The Web Design Survey, 2010</title>
		<link>http://meyerweb.com/eric/thoughts/2011/06/27/results-of-the-web-design-survey-2010/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/06/27/results-of-the-web-design-survey-2010/#comments</comments>
		<pubDate>Mon, 27 Jun 2011 14:42:23 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1535</guid>
		<description><![CDATA[Now available: the <a href="http://www.alistapart.com/articles/findings-from-the-web-design-survey-2010/">results from the A List Apart Survey for People Who Make Web Sites, 2010</a>.]]></description>
			<content:encoded><![CDATA[<img src="http://meyerweb.com/pix/2011/alas10.png" alt="" class="pic left"/>

<p>Now available: the <a href="http://www.alistapart.com/articles/findings-from-the-web-design-survey-2010/">results from the A List Apart Survey for People Who Make Web Sites, 2010</a>.  This is the fourth industry snapshot we&#8217;ve compiled, and the story that&#8217;s emerged over that time is proving to be pretty consistent.  You can get a high-level view from <a href="http://aneventapart.com/alasurvey2010/">the Introduction</a>, and then dive deeper into the results in the following chapters.  And, as is traditional, <a href="http://aneventapart.com/alasurvey2010/add.html">the Addendum</a> contains links to the full (anonymized) data set in three formats for your own analytical investigations.  We&#8217;d love to see what you come up with!</p>

<p>Something that surprised me quite a bit was that in 2010 we got about half the number of respondents we&#8217;ve gotten in past years—not quite seventeen thousand participated in 2010 instead of just over thirty thousand as we saw in previous years.  I&#8217;m not quite sure what to make of that.  Is the industry shrinking?  Did we not get the word out as effectively?  Was it a bad time of year to run a survey?  Are people getting tired of taking the survey?  There&#8217;s no real way to know.</p>

<p>At least there weren&#8217;t any wild swings in the results, which might have indicated we&#8217;d lost some subgroups in disproportionate numbers.  Whatever caused the drop in participation, it appears to have done so in an evenly-distributed fashion.</p>

<p>Regardless, I&#8217;d like to see higher participation next year, so if anyone has good suggestions regarding how to make that happen, please do let me know in the comments.</p>

<p>We plan to run the 2011 survey in the next couple of months (and I&#8217;ll post a bit more about that soon) but for now, I hope you find the 2010 results an interesting and useful look at who we are.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/06/27/results-of-the-web-design-survey-2010/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Spinning the Web</title>
		<link>http://meyerweb.com/eric/thoughts/2011/06/03/spinning-the-web/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/06/03/spinning-the-web/#comments</comments>
		<pubDate>Fri, 03 Jun 2011 15:19:42 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1526</guid>
		<description><![CDATA[Can CSS create art?  That's a question I set out to explore recently, and I like to think that the answer is yes, but you can judge for yourself.]]></description>
			<content:encoded><![CDATA[<p>Can CSS create art?  That&#8217;s a question I set out to explore recently, and I like to think that the answer is yes.  You can judge for yourself: <a href="http://www.flickr.com/photos/meyerweb/sets/72157626750845115/">Spinning the Web</a>, a gallery on Flickr.</p>

<a href="http://www.flickr.com/photos/meyerweb/5793617592/" title="cnn by meyerweb, on Flickr"><img src="http://farm4.static.flickr.com/3647/5793617592_8ff99b7482.jpg" width="350" height="200" alt="cnn" class="pic"/></a>

<p>To be clear, when I say &#8220;Can CSS create art?&#8221; I don&#8217;t mean that in the sense of wondering if art, or artful designs, can be accomplished with CSS.  I think we all know the answer there, and have known at least since <a href="http://csszengarden.com/">the Zen Garden</a> got rolling.  What I&#8217;m doing here is using some basic CSS to generate art, using web sites as the medium.  For the series I linked, I spun all of the elements on a page using <code>transform: rotate()</code> to see what resulted.  Any time I saw something I liked, I took a screenshot.  After I was done, I winnowed the shots down to the best ones.</p>

<p>As some of you old-schoolers will probably have recognized, I&#8217;m absolutely following in the footsteps of <a href="http://joshuadavis.com/" rel="met">Joshua Davis</a> here, and in fact my working title for this effort was &#8220;Once Upon a Browser&#8221;.  I saw Josh speak years ago, and clearly remember his description of how he generated a lot of his art.  My process is almost identical, albeit with a bit less automation and computational complexity.</p>

<p>Because this is me, I built a little commentary joke into the first images in the series.  It&#8217;s not terribly subtle, but with luck one or two of you will get the same chuckle I did.</p>

<p>I&#8217;m already thinking about variants on this theme, so there may be more series to come.  In the meantime, as I surf around I&#8217;ll stop every now and again to spin what I see.  I&#8217;ll definitely mention any new additions <a href="http://twitter.com/meyerweb/">via Twitter</a>, and new series both there and here.  And of course if you follow <a href="http://flickr.com/photos/meyerweb/">me on Flickr</a>, you&#8217;ll see new pieces as they go up.</p>

<p>I hope you enjoy them half as much as I enjoyed creating them.  <ins datetime="2011-06-03T20:41:59+00:00">And if anyone wants to use the originals as desktop wallpapers, <a href="http://meyerweb.com/eric/thoughts/2011/06/03/spinning-the-web/#comment-558734">as Tim proposed</a>, feel free!</ins></p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/06/03/spinning-the-web/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Letter Sweep</title>
		<link>http://meyerweb.com/eric/thoughts/2011/04/21/letter-sweep/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/04/21/letter-sweep/#comments</comments>
		<pubDate>Thu, 21 Apr 2011 13:14:51 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1519</guid>
		<description><![CDATA[I thought it was unreasonably fun when <a href="http://www.tbray.org/" rel="acquaintance met">Tim Bray</a> did <a href="http://www.tbray.org/ongoing/When/201x/2011/03/03/ABC">his Letter Sweep</a> a while back, so I finally decided to fire up Camino and add my distinctiveness to his own.]]></description>
			<content:encoded><![CDATA[<p>I thought it was unreasonably fun when <a href="http://www.tbray.org/" rel="acquaintance met">Tim Bray</a> did <a href="http://www.tbray.org/ongoing/When/201x/2011/03/03/ABC">his Letter Sweep</a> a while back, so I finally decided to fire up Camino and add my distinctiveness to his own.</p>

<ul>
<li><p><a href="http://aneventapart.com/">[A]n Event Apart</a>.  Not surprising, I co-founded it.</p></li>
<li><p><a href="http://www.brucelawson.co.uk/" rel="friend colleague met">[B]ruce Lawson&#8217;s personal site</a>.  I&#8217;ve been there most recently thanks to his <a href="http://www.brucelawson.co.uk/2011/html5-gurus-on-twitter/">&#8220;HTML5 gurus on Twitter&#8221; post</a>.  I still feel like a little bit of a poser for being listed, but I appreciate the regard.  Bruce is good folks.</p></li>
<li><p><a href="http://cnn.com/">[C]NN</a>.  I think half the reason I go any more is to see what manner of goofiness they have in their featured boxes.</p></li>
<li><p><a href="http://daringfireball.net/projects/bbcolors/">[D]aring Fireball: BBColors</a>.  I went there so I could back up my current color scheme and try out <a href="https://github.com/rcarmo/textwrangler-bbedit-solarized">rcarmo&#8217;s port of Solarized Light</a>, which I&#8217;m using now in modified form (I hated the default selected-text highlight).</p></li>
<li><p><a href="http://www.economist.com/blogs/democracyinamerica">[E]conomist.com: Democracy in America</a>.  I have fun there, as time permits; there&#8217;s a surprisingly strong commenter community that keeps drawing me back.  I truly wish <a href="http://www.economist.com/blogs/clausewitz">the Clausewitz blog</a> had been a contender here, but it seems to be having a lot of trouble getting started.  I suppose it&#8217;s suffering the friction of warblogging.</p></li>
<li><p><a href="http://favstar.fm/">[F]avstar.fm</a>.  I like to see <a href="http://favstar.fm/users/meyerweb/recent">who&#8217;s favorited and retweeted my stuff</a> for the obvious ego reasons, but more importantly because people who like my CSS and other technical stuff are often people I might like to follow.  Similar interests, and all that.  The very close runner-up in this category is obviously <a href="http://flickr.com/">[F]lickr</a>, and it would probably take top billing some days.</p></li>
<li><p><a href="http://google.com/">[G]oogle</a>.  Of course.</p></li>
<li><p><a href="http://hiderefer.com/">[H]iderefer</a>.  I hacked WordPress (via a plugin) so links on my Dashboard are routed through Hiderefer.  This avoids giving away the location of my WordPress install to malicious sites that manage to get comments into the approval queue.  In doing this Letter Sweep, I discovered that I need to update the plugin to use <a href="http://nullrefer.com/">Nullrefer</a> instead, so I just did.</p></li>
<li><p><a href="http://imdb.com/">[I]MDB</a>.  I don&#8217;t get to watch a lot of movies these days, nor do I actually think I would do so even if the opportunity arose, but somehow I still love them.</p></li>
<li><p><a href="http://www.joewein.net/">[J]oe Wein&#8217;s blog</a>.  Specifically, the post &#8220;<a href="http://www.joewein.net/blog/2008/12/08/domain-registration-scam-in-china/">Domain registration scam in China</a>&#8220;, which I was reading after getting some suspicious e-mail.  The post confirmed my suspicions.  Thanks, Joe!</p></li>
<li><p><a href="http://kottke.org/">[K]ottke.org</a>.  The only guess the browser had for K was the post &#8220;<a href="http://kottke.org/11/04/unicode-all-of-it">Unicode, all of it</a>&#8220;.</p></li>
<li><p><a href="http://lists.css-discuss.org/">[l]ists.css-discuss-org</a>.  Not surprising, I co-founded it.</p></li>
<li><p><a href="http://meyerweb.com/">[M]eyerweb</a>.  Not surprising, I administrate it.</p></li>
<li><p><a href="http://netflix.com/">[N]etflix</a>.  I&#8217;ve been working my way through &#8220;<a href="http://movies.netflix.com/WiMovie/Avatar_The_Last_Airbender/70142405">Avatar: The Last Airbender</a>&#8221; to see if it would be appropriate for the young&#8217;uns.</p></li>
<li><p><a href="http://opera.com">[O]pera</a>.  Specifically the fantastic &#8220;<a href="http://opera.com/docs/history/">Opera version history</a>&#8220;, which I wish every browser vendor emulated in detail.</p></li>
<li><p><a href="http://penny-arcade.com/">[P]enny Arcade</a>.  <i>Yo when I hit it I hit L-shift-O to the quote and then dollar&#8230;</i></p></li>
<li><p><a href="http://quora.com/">[Q]uora</a>.  Another one-entry guess list, this time for the question &#8220;<a href="http://www.quora.com/Given-our-current-technology-and-with-the-proper-training-would-it-be-possible-for-someone-to-become-Batman?srid=3Iy">Given our current technology and with the proper training, would it be possible for someone to become Batman?</a>&#8220;.  I think that&#8217;s one of three times I&#8217;ve ever been on Quora, whose popularity I still find a little mystifying.  But then I remember and was a fan of alt.destroy.the.earth, so who am I to judge what&#8217;s interesting?</p></li>
<li><p><a href="http://r4g.co/">[R]etreats 4 Geeks</a>.  Thanks to which I just recently had a ridiculously good time hanging out with twelve awesome people in the mountains above Gatlinburg, TN.  Runner-up: the fabulous <a href="http://ratfist.com/">[R]atfist</a>.</p></li>
<li><p><a href="http://skynet/">[S]kynet</a>.  That&#8217;s my version of localhost, which means clicking the link will do you no good at all unless you did the same thing.  (Skynet is also the SSID of my home wifi cloud, which makes a bit more sense.)</p></li>
<li><p><a href="http://twitter.com">[T]witter</a>.  Of course.</p></li>
<li><p><a href="http://usbank.com/">[U]S Bank</a>.  My bank.</p></li>
<li><p><a href="http://visualguidanceltd.blogspot.com">[v]isualguidanceltd.blogspot.com</a>&#8216;s post &#8220;<a href="http://visualguidanceltd.blogspot.com/2011/04/css-married-porn-and-had-baby-or-eric.html">CSS Married Porn AND had a Baby! OR Eric Meyer: &#8216;Dirty Thought-CSS&#8217; Diary!</a>&#8220;.  Yeah, I don&#8217;t know either.</p></li>
<li><p><a href="http://w3.org/">[W]orld Wide Web Consortium (W3C)</a>.  Of course.</p></li>
<li><p>[X] had literally not a single guess.  No, I don&#8217;t follow XKCD; I figure the really good ones will get tweeted and copied to hell and gone anyway, so I just rely on the collective to pre-filter for me.  Apparently I haven&#8217;t been there recently.  Make of that what you will.</p></li>
<li><p><a href="http://youtube.com/">[Y]ouTube</a>.  Because where else am I going to find <a href="http://www.youtube.com/watch?v=21OH0wlkfbc">Bert and Ernie singing old-school M.O.P.</a>?</p></li>
<li><p><a href="http://zazzle.com/">[Z]azzle</a>.  Specifically the page for the <a href="http://www.zazzle.com/css_is_awesome_mug-168716435071981928">&#8220;CSS IS AWESOME&#8221; mug</a>, which I was considering buying because it&#8217;s not often you find an unalloyed song of praise to a CSS capability that no other Web technology has yet managed to duplicate.  But then I remembered I don&#8217;t really drink mug-based liquids, so I passed.  (And the T-shirts don&#8217;t make the content nearly big enough, so I passed again.)</p></li>
</ul>

<p>So what&#8217;s your browser guess for you?</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/04/21/letter-sweep/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>My Own Private HTML5 Survey</title>
		<link>http://meyerweb.com/eric/thoughts/2011/04/14/my-own-private-html5-survey/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/04/14/my-own-private-html5-survey/#comments</comments>
		<pubDate>Thu, 14 Apr 2011 16:31:24 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[(X)HTML]]></category>
		<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1516</guid>
		<description><![CDATA[Here's a sampling of sites using HTML5, listed in no particular order, with a few notes.]]></description>
			<content:encoded><![CDATA[<p>Yesterday, <a href="http://petitepurls.com/">Brandy Fortune</a> asked me on Twitter if there are &#8220;<a href="http://twitter.com/#!/pixiepurls/status/58166180480942080">any major sites written in HTML 5 now</a>&#8220;.  I decided to <a href="http://twitter.com/#!/meyerweb/status/58270839484846080">throw the question to my Twitter gang</a>, and was of course immediately deluged in answers.  Also a small helping of standards politics, which  wasn&#8217;t really what I was after but probably should have known was inevitable.  <i>Le sigh.</i></p>

<p>Anyway, here&#8217;s a sampling of the sites most frequently mentioned and how they&#8217;re using HTML5, listed in no particular order.</p>

<h4>Using new-to-HTML5 markup (and DOCTYPE)</h4>

<ul>
<li><a href="http://mailchimp.com/">MailChimp</a></li>
<li><a href="http://slashdot.org/">slashdot</a></li>
<li><a href="http://barackobama.com/">Obama for America</a></li>
<li><a href="http://about.com/">About</a></li>
<li><a href="http://unilever.com/">Unilever</a></li>
<li><a href="http://myspace.com/">Myspace</a></li>
<li><a href="http://sencha.com/">Sencha</a></li>
<li><a href="http://nikebetterworld.com/">Nike Better World</a></li>
<li><a href="http://apple.com/">Apple</a></li>
<li><a href="http://www.thekillersmusic.com/">The Killers</a></li>
<li><a href="http://www.theglobeandmail.com/">The GLobe and Mail</a></li>
<li><a href="http://youtube.com/">YouTube</a> &#8211; Basically only the <code>video</code> element, and that only if you&#8217;ve <a href="http://youtube.com/html5/">enrolled in the HTML5 trial</a>.</li>
</ul>

<h4>Using HTML5 DOCTYPE but no apparent new-to-HTML5 markup</h4>

<ul>
<li><a href="http://google.com/">Google</a></li>
<li><a href="http://usa.gov/">USA.gov</a></li>
<li><a href="http://digg.com/">Digg</a></li>
<li><a href="http://yahoo.com/">Yahoo</a> &#8211; I&#8217;m told that Yahoo! Mail uses HTML5 features but I&#8217;m not a user so I can&#8217;t verify that.</li>
<li><a href="http://flickr.com/">Flickr</a></li>
<li><a href="http://netflix.com/">Netflix</a></li>
</ul>

<p>And then there&#8217;s <a href="http://facebook.com/">Facebook</a>.  Rumor has it they&#8217;re using HTML5 features like the History API while still bearing an XHTML DOCTYPE.  I was also told they use <code>video</code> but all the videos I saw were Flash-based.  It&#8217;s possible that more is going on—who knows, maybe Farmville is all HTML5 now—but I was only willing to put up with the user experience for so long.</p>

<p>Some notes: </p>

<ul>
<li>I didn&#8217;t run a spider script to verify which HTML5 elements, if any, were being used on a site.  Instead I surfed around using a user stylesheet that highlights HTML5 elements and looked for dashed red outlines.  If they were there, the site got &#8220;uses HTML5 markup&#8221;.  If I didn&#8217;t see any, then &#8220;no apparent HTML5 markup&#8221;.  This may mean I miscategorized a site or two, in which case sorry.  Even if not, these lists won&#8217;t stay current for more than a couple of weeks, so regard this as a single snapshot in time, not the whole movie.</li>
<li>In my limited and purely anecdotal peerings, far and away the most commonly-used HTML5 element was <code>section</code>.  <code>nav</code> appeared to run a distant second.</li>
<li>Any site that uses font replacement is using HTML5: <code>canvas</code>.  I didn&#8217;t list such sites, so bear that in mind.  (Sorry, <a href="http://beano.com/">Beano</a>.)  I just hope such sites change their DOCTYPEs to match.</li>
<li>I did not list any site that lacked a DOCTYPE.  I don&#8217;t care if the HTML5 DOCTYPE is optional, that doesn&#8217;t mean any DOCTYPE-less page is using HTML5.  Or, if it does, my next step is to write a MeyerHTML DTD with an optional DOCTYPE and then charge you all $1 per site for using invalid markup in violation of the terms of the DTD&#8217;s license.  And then I&#8217;m buying an island.  Oahu seems nice.</li>
</ul>

<p>Comments are switched off for once partly because I don&#8217;t really want another faceful of politics right now, and partly because attempts to post links to other HTML5 sites will end up in the spam trap and frustrate posters.  Feel free to go nuts on your own sites, of course.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/04/14/my-own-private-html5-survey/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Seeing the matrix()</title>
		<link>http://meyerweb.com/eric/thoughts/2011/04/12/seeing-the-matrix/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/04/12/seeing-the-matrix/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 14:41:39 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1511</guid>
		<description><![CDATA[<a href="http://easy-designs.net/">Aaron Gustafson</a> and I created a tool for anyone who wants to resolve a series of CSS transforms into a <code>matrix()</code> value representing the same end state.  Behold: <a href="http://meyerweb.com/eric/tools/matrix/">The Matrix Resolutions</a>.]]></description>
			<content:encoded><![CDATA[<p>Over the weekend, <a href="http://aaron-gustafson.com/" rel="friend colleague met">Aaron Gustafson</a> and I created a tool for anyone who wants to resolve a series of CSS transforms into a <code>matrix()</code> value representing the same end state.  Behold: <strong><a href="http://meyerweb.com/eric/tools/matrix/">The Matrix Resolutions</a></strong>.  (You knew that was coming, right?)  It should work fine in various browsers, though due to the gratuitous use of keyframe animations on the <code>html</code> element&#8217;s multiple background images it looks best in WebKit browsers.</p>

<p>The way it works is you input a series of transform functions, such as <code>translateX(22px) rotate(33deg) scale(1.13)</code>.  The end-state and its <code>matrix()</code> equivalent should update whenever you hit the space bar or the return key, or else explicitly elect to take the red pill.  If you want to wipe out what you&#8217;ve input and go back to a state of blissful ignorance, take the blue pill. </p>

<p>There is one thing to note: the <code>matrix()</code> value you get from the tool is equivalent to the end-state placement of all the transforms you input.  That value most likely does <em>not</em> create an equivalent animation, particularly if you do any rotation.  For example, animating <code>translateX(75px) rotate(1590deg) translateY(-75px)</code> will not appear the same as animating <code>matrix(-0.866025, 0.5, -0.5, -0.866025, 112.5, 64.9519)</code>.  The two values will get the element to the same destination, but via very different paths.  If you&#8217;re just transforming, not animating, then that&#8217;s irrelevant.  If you are, then you may want to stick to the transforms.</p>

<p>This tool grew out of the first <a href="http://r4g.co/">Retreats 4 Geeks</a> (which was <strong>AWESOME</strong>) just outside of Gatlinburg, TN.  After some side conversations betwen me and Aaron during the CSS training program, we hacked this together in a few hours on Saturday night.  Hey, who knows how to <em>party</em>?  Aaron of course wrote the JavaScript.  Early on we came up with the punny name, and of course once we did that the visual design was pretty well chosen for us.  A free TTF webfont (for the page title), a few background images, and a whole bunch of RGBa colors later we had arrived.  Creating the visual appearance was a lot of fun, I have to say.  CSS geeks, please feel free to view source and enjoy.  No need to say &#8220;whoa&#8221;—it&#8217;s actually not that complicated.</p>

<p>So anyway, there you go.  If you want to see the <code>matrix()</code>, remember: we can only show you <a href="http://meyerweb.com/eric/tools/matrix/">the door</a>. You&#8217;re the one that has to walk through it.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/04/12/seeing-the-matrix/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>CSS Pocket Reference: The Cutting Room</title>
		<link>http://meyerweb.com/eric/thoughts/2011/04/06/css-pocket-reference-the-cutting-room/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/04/06/css-pocket-reference-the-cutting-room/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 21:11:54 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1506</guid>
		<description><![CDATA[I just shipped off the last of my drafts for <cite>CSS Pocket Reference, 4th Edition</cite> to my editor.  Here are the properties I cut.]]></description>
			<content:encoded><![CDATA[<p>I just shipped off the last of my drafts for <cite>CSS Pocket Reference, 4th Edition</cite> to my editor.  In the process of writing the entries, I set up an <a href="http://meyerweb.com/eric/css/tests/css3/">ad-hoc test suite</a> and made determinations about what to document and what to cut.  That&#8217;s what you do with a book, particularly a book that&#8217;s meant to fit into a pocket.  My general guide was to cut anything that isn&#8217;t supported in any rendering engine, though in a few cases I decided to cut properties that were supported by a lone browser but had no apparent prospects of being supported by anyone else, ever.</p>

<p>For fun, and also to give fans of this or that property a chance to petition for re-inclusion, here are the properties and modules I cut.  Think of it as the blooper reel, which can be taken more than one way.  I&#8217;ve organized them by module because it&#8217;s easier that way.</p>

<ul>
<li>The <a href="http://w3.org/TR/css3-3d-transforms/#backface-visibility-property">backface-visibility</a> property from the 3D Transforms module.  This is one I&#8217;m already reconsidering, but I haven&#8217;t found any indication that anyone besides Webkit will be picking it up in the near future.  Still, I did document the rest of the 3D Transforms module so I may add this back in during the tech review stage.</li>
<li><a href="http://w3.org/TR/css3-box/#rotating"><code>rotation</code></a> and <a href="http://w3.org/TR/css3-box/#rotating"><code>rotation-point</code></a> from the CSS3 Box module.  These have been effectively replaced by the 2D Transforms module, but the Box module hasn&#8217;t been updated since that happened.</li>
<li>Everything in the <a href="http://www.w3.org/TR/css3-flexbox/">Flexible Box Layout module</a>.  There are, as of now, just too many sections bearing notes, warnings, questions, and general feelings of instability and future change for me to feel comfortable including the properties from this module.  I&#8217;m probably going to catch some flak for that.</li>
<li><a href="http://w3.org/TR/css3-grid/#grid-columns">grid-columns</a> and <a href="http://w3.org/TR/css3-grid/#grid-rows">grid-rows</a> from the Grid Positioning Module Level 3, which effectively means means excluding the entire module.  Some day maybe I&#8217;ll write a separate pocket reference just for the various CSS layout systems.</li>
<li><a href="http://w3.org/TR/css3-fonts/#font-stretch">font-stretch</a>.  Its continued exclusion saddens me, because I am exactly the sort of sheep-stealing lowlife who would programmatically stretch and compress font faces and <em>like</em> it, but so far as I can tell nobody&#8217;s supporting the property.  Alas.</li>
<li>Basically, the entirety of the <a href="http://www.w3.org/TR/css3-gcpm/">Generated Content for Paged Media module</a>.</li>
<li>The Behavioral Extensions module, which means the <a href="http://w3.org/TR/becss/#the-binding">binding</a> property as well as the <code>:bound-element</code> pseudo-class.</li>
<li>All the properties in <a href="http://www.w3.org/TR/css3-marquee/">CSS Marquee module</a>.  I&#8217;d love to see someone make a compelling case for re-instating them.</li>
<li>The following properties from <a href="http://www.w3.org/TR/css3-text/">CSS Text Level 3</a>: 
<a href="http://w3.org/TR/css3-text/#hanging-punctuation"><code>hanging-punctuation</code></a>, 
<a href="http://w3.org/TR/css3-text/#punctuation-trim"><code>punctuation-trim</code></a>, 
<a href="http://w3.org/TR/css3-text/#text-align-last"><code>text-align-last</code></a>, 
<a href="http://w3.org/TR/css3-text/#text-emphasis-position"><code>text-emphasis-position</code></a>, 
<a href="http://w3.org/TR/css3-text/#text-emphasis-style"><code>text-emphasis-style</code></a>, 
<a href="http://w3.org/TR/css3-text/#text-emphasis"><code>text-emphasis</code></a>, 
<a href="http://w3.org/TR/css3-text/#text-justify"><code>text-justify</code></a>, 
<a href="http://w3.org/TR/css3-text/#text-outline"><code>text-outline</code></a>, 
<a href="http://w3.org/TR/css3-text/#text-wrap"><code>text-wrap</code></a>, 
<a href="http://w3.org/TR/css3-text/#white-space-collapse"><code>white-space-collapsing</code></a>, 
and <a href="http://w3.org/TR/css3-text/#word-break"><code>word-break</code></a>.</li>
<li>The following properties from <a href="http://www.w3.org/TR/css3-ui/">the Basic User Interface module</a>, dated 2004:
<a href="http://w3.org/TR/css3-ui/#appearance0"><code>appearance</code></a>, 
<a href="http://w3.org/TR/css3-ui/#icon"><code>icon</code></a>, 
<a href="http://w3.org/TR/css3-ui/#nav-dir"><code>nav-down</code></a>, 
<a href="http://w3.org/TR/css3-ui/#nav-dir"><code>nav-left</code></a>, 
<a href="http://w3.org/TR/css3-ui/#nav-dir"><code>nav-right</code></a>, 
<a href="http://w3.org/TR/css3-ui/#nav-dir"><code>nav-up</code></a>, 
and <a href="http://w3.org/TR/css3-ui/#nav-index0"><code>nav-index</code></a>.</li>
<li>The <a href="http://www.w3.org/TR/css3-hyperlinks/">Hyperlink Presentation module</a>, dated 2004.</li>
<li>The <a href="http://www.w3.org/TR/css3-preslev/">Presentation Levels module</a>, dated 2003.</li>
<li><a href="http://w3.org/TR/css3-content/#moving">move-to</a> and 
<a href="http://w3.org/TR/css3-content/#the-crop">crop</a> from the CSS3 Generated and Replaced Content module, dated 2003.</li>
<li>The <a href="http://www.w3.org/TR/css3-linebox/">Line module</a>, dated 2002 and bearing my name for no reason I can recall.  The one property listed there which I kept is <code>vertical-align</code>, and I just used the CSS2.1 definition.</li>
</ul>

<p>After all that, I imagine you&#8217;re going to laugh uproariously when I tell what I <em>did</em> include:  paged and aural properties.  I know—I&#8217;m kind of poleaxed by my own double standard on that score.  I included them for historical reasons (they&#8217;ve long been included) and also because they&#8217;re potentially very useful to a more accessible future.  Besides, if we run out of pages, they&#8217;re in their own section and so very easy to cut.</p>

<p>I&#8217;m pretty sure I listed everything that I explicitly dropped, so if you spot something that I absolutely have to reinstate, here&#8217;s your chance to let me know!</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/04/06/css-pocket-reference-the-cutting-room/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Inconsistent Transitions</title>
		<link>http://meyerweb.com/eric/thoughts/2011/03/24/inconsistent-transitions/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/03/24/inconsistent-transitions/#comments</comments>
		<pubDate>Thu, 24 Mar 2011 20:24:14 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1499</guid>
		<description><![CDATA[An interesting little test case for transitions, and the inconsistencies it reveals.]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s <a href="http://meyerweb.com/eric/css/tests/css3-trans-an/transition-placement.html">an interesting little test case for transitions</a>.  Obviously you&#8217;ll need to visit it in a browser that supports CSS transitions, and additionally also CSS 2D transforms.  (I&#8217;m not aware of a browser that supports the latter without supporting the former, but your rendering may vary.)</p>

<p>In Webkit and Gecko, hovering the first <code>div</code> causes the <code>span</code> to animate a 270 degree rotation over one second, but when you unhover the <code>div</code> the <code>span</code> immediately snaps back to its starting position.  In Opera 11, the <code>span</code> is instantly transformed when you hover and instantly restored to its starting position when you unhover.</p>

<p>In all three (Webkit, Gecko, and Opera), hovering the second <code>div</code> triggers a one-second 270-degree rotation of the <code>span</code>.  Unhovering causes the rotation animation to be reversed; that is, a one-second minus-270-degree rotation—or, if you mouseout from the <code>div</code> before the animation finishes, an rotation from that angle back to the starting position.  Either way, it&#8217;s completely consistent across browsers.</p>

<p>The difference is that in the first test case, both the transform and the transition are declared on hover.  Like this (edited for clarity):</p>

<pre><code>div:hover span {
	transition: 1s transform;
	transform: rotate(270deg);
}</code></pre>

<p>In the second test case, the transform and the transition are split up like so:</p>

<pre><code>div span {
	transition: 1s transform;
}
div:hover span {
	transform: rotate(270deg);
}</code></pre>

<p>It&#8217;s an interesting set of results.  Only the second case is consistently animated across the tested browsers, but the first case only animates one direction in Webkit and Gecko.  I&#8217;m not sure which, if any, of these results is more correct than the other.  It could well be that they&#8217;re all correct, even if not consistent; or that they&#8217;re all wrong, just in different ways.</p>

<p>At any rate, the takeaway here is that you probably don&#8217;t want to apply your transition properties to the hover state of the thing you&#8217;re transitioning, but to the unhovered state instead.  I say &#8220;probably&#8221; because maybe you like that it transitions on mouseover and instantly resets on mouseout.  I don&#8217;t know that I&#8217;d rely on that behavior, though.  It feels like the kind of thing that programmer action, or even spec changes, will take away.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/03/24/inconsistent-transitions/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
