<?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 &#187; Tech</title>
	<atom:link href="http://meyerweb.com/eric/thoughts/category/tech/feed/" 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>Wed, 05 Jun 2013 17:16:07 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Ciao, Camino</title>
		<link>http://meyerweb.com/eric/thoughts/2013/05/31/ciao-camino/</link>
		<comments>http://meyerweb.com/eric/thoughts/2013/05/31/ciao-camino/#comments</comments>
		<pubDate>Fri, 31 May 2013 18:36:14 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[History]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=2289</guid>
		<description><![CDATA[It’s been obvious for a long time that Camino was withering away, but <a href="http://caminobrowser.org/">they’ve called a formal end</a> to the project.  Here’s how I made Firefox act a lot like Camino.]]></description>
				<content:encoded><![CDATA[<p>It’s been obvious for a long time that Camino was withering away, but <a href="http://caminobrowser.org/">they’ve formally called an end</a> to the project:</p>

<blockquote><p>After a decade-long run, Camino is no longer being developed, and we encourage all users to upgrade to a more modern browser. Camino is increasingly lagging behind the fast pace of changes on the web, and more importantly it is not receiving security updates, making it increasingly unsafe to use.</p></blockquote>

<p>I used Camino for a long time, and only left when it had lagged much too far behind the rest of the browser market.  (Camino used Gecko embedding, which was disabled a couple of years ago.  That change effectively froze Camino’s rendering engine at the level of Firefox 3.6.)</p>

<p>When I migrated away from Camino, I tried a few alternatives and eventually settled on Firefox because its UI was the least unlike Camino’s.  (We like best what we know best.)  There were still some things I sorely missed, though, like simple Flash blocking and whitelisting, the multi-row Bookmarks bar, the keyboard bookmark-activation shortcuts, and the truly great downloads manager.  If you miss those (or would like to experience them) too, here’s how I got them back in Firefox:</p>

<ul>
<li><a href="http://flashblock.mozdev.org/">Flashblock</a> — though its UI isn’t quite as easy as Camino’s Flash preferences, Flashblock works well and allows whitelisting.</li>
<li><a href="http://multirowbookmarkstoolbar.com/">Multirow Bookmarks Toolbar Plus</a> —&nbsp;the layout of this has gotten a bit wonky under recent Firefox Nightly builds, but still works just fine, and you can even set it to auto-hide itself.</li>
<li><a href="https://github.com/jbalogh/bookmark-shortcut-keys">Bookmark Shortcut Keys</a> —&nbsp;built for me in Jetpack by <a href="http://jbalogh.me/">Jeff Balogh</a>, this lets you define which keyboard shortcuts trigger the first nine bookmarks in the Bookmarks bar.  I use this <strong><em>all the time</em></strong>, just as I did in Camino.  I’ve defined my shortcuts to be ⌘1 through ⌘9, but you can pick whichever modifier keys you like.  Thanks, Jeff!</li>
<li><a href="http://dmextension.mozdev.org/">Download Manage Tweak</a> — adds controls to show a file in the OS, delete the file, remove the file from the list without deleting it, and so on.  As with Flashblock, it isn’t quite as smooth as Camino’s UI, but it does the same job and a bit more besides.</li>
</ul>

<p>And one more: <a href="https://addons.mozilla.org/en-us/firefox/addon/new-tab-homepage/">New Tab Homepage</a>, which makes certain that Firefox loads your Home page, and not the dashboard, whenever you open a new tab.</p>

<p>Oh, all right, one more one more: <a href="https://addons.mozilla.org/cs/firefox/addon/rss-icon-in-awesombar/">RSS Icon in Awesombar</a>.  If you still roll that way.</p>

<p>So if you still pine a bit for Camino’s UI features, there’s how you can recreate most of the experience in Firefox.  If you don’t, then peace be with you, as with the entire Camino team.  Thank you all for everything you did to bring OS X a great browser that just <em>felt</em> right.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2013/05/31/ciao-camino/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Collective Editorial: the Plugin</title>
		<link>http://meyerweb.com/eric/thoughts/2013/05/28/collective-editorial-the-plugin/</link>
		<comments>http://meyerweb.com/eric/thoughts/2013/05/28/collective-editorial-the-plugin/#comments</comments>
		<pubDate>Tue, 28 May 2013 16:55:49 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=2232</guid>
		<description><![CDATA[As I was reading an article with a few scattered apostrophe errors, I wished that I could highlight each one, hit a report button, and know that the author had been notified of the errors so that they could fix them.  Then I realized that I wanted that for my own site.]]></description>
				<content:encoded><![CDATA[<p>As I was reading an article with a few scattered apostrophe errors, I wished that I could highlight each one, hit a report button, and know that the author had been notified of the errors so that they could fix them.  No requirement to leave a comment chastising them for bad grammar, replete with lots of textual context so they could find the errors—just a quick “hey, I spotted this error, now you know so you can fix it” notice, sent in private to them.</p>

<p>Then I realized that I wanted that for my own site, to let people tell me when I had gaffes in need of repair.  It’s an almost-wiki, where the crowd can flag errors that need to be corrected without having to edit the source themselves—or have the power to edit it themselves, for that matter, which is an open door for abuse.</p>

<p>I haven’t thought this through in tons of detail, but here’s how it feels in my head:</p>

<ul>
<li>Visitors highlight a typo and click a button to report it.  Or else click a button to start reporting, highlight a word, and click again to submit.  This part is kind of fuzzy in my head, and yes, “click” is not the best term here, but it’s one we all understand.</li>
<li>Interesting extra feature: the ability to classify the type of error when reporting.  For example: apostrophe, misspelling, parallelism, <a href="http://youtu.be/6e1hZGDaqIw?t=37s">pronoun trouble</a>.</li>
<li>Other interesting extra feature: the ability to inform users of the ground rules before they report.  For example: “This site uses British punctuation rules, the Oxford comma, and American spelling.”  (Which I do.)</li>
<li>The author gets notice whenever an error is reported, or else can opt for a daily digest.</li>
<li>Each notice lets the author quickly accept or reject the reported error, much as can be done with edits in MS Word and similar programs, along with a link that will jump the author straight to the reported error so they can see it in context.  If rejected, future reports of that word are disabled.  If accepted, the change is made immediately, without requiring a dive into the CMS.</li>
<li>When an error is reported, future visitors to the site will see any already-reported errors in highlight.  This keeps them from reporting the same thing over and over, and also acts as incentive to the author to fix errors quickly.  (The highlight style could be customizable.)</li>
<li>Reports can only happen at the word level, not the individual letter level.  So reporting an “it’s” error highlights all of “it’s”, not just the offending apostrophe.  Perhaps also for multiple words, though only up to a certain number, like three.  And yes, I’m keenly aware of the challenges of defining a “word” in an internationally-aware manner, but perhaps in ideographic languages you switch to per-symbol.  (Not an expert here, so take that with a few grinders of salt.)</li>
<li>The author can optionally limit the number of reports permitted per hour/day/whatever.  This could be enforced globally or on a per-user basis, though globally is a tad more robust.</li>
</ul>

<p>That’s how I see it working, after a few minutes’ thought.  It seems pretty achievable as a CMS plugin, actually, though I confess that I don’t have anywhere close to the time and coding chops needed to make it happen right now (or any time soon).  The biggest challenge to me seems like the “edit-on-accept-without-CMS-diving” part, since there are so many CMSes and particularly since static sites are staging a comeback.  Still, I think it would be a fun and worthwhile project for someone out there.  If somebody takes it on, I’d love to follow along and see where it ends up, particularly if they do it for WordPress (which is what the blog hereabouts runs on).</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2013/05/28/collective-editorial-the-plugin/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Resurrected Landmarks</title>
		<link>http://meyerweb.com/eric/thoughts/2013/05/08/resurrected-landmarks/</link>
		<comments>http://meyerweb.com/eric/thoughts/2013/05/08/resurrected-landmarks/#comments</comments>
		<pubDate>Wed, 08 May 2013 19:05:40 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[History]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=2222</guid>
		<description><![CDATA[Just recently, two landmark web sites were resurrected on major anniversaries.]]></description>
				<content:encoded><![CDATA[<p>It was just last week, at the end of April, that CERN announced the rebirth of <a href="http://info.cern.ch/hypertext/WWW/TheProject.html">The Very First URL</a>, in all its responsive and completely presentable glory.  If you hit <a href="http://info.cern.ch/">the root level of the server</a>, you get some wonderful information about the Web’s infancy and the extraordinary thing CERN did in releasing it, unencumbered by patent or licensing restrictions, into the world, twenty years ago.</p>

<p>That’s not at all minor point.  I don’t believe it overstates the case to say that if CERN hadn’t made the web free and open to all, it wouldn’t have taken over the net.  Like previous attempts at hypertext and similar information systems, it would have languished in a niche and eventually withered away.  There were other things that had to happen for the web to really take off, but none of them would have mattered without this one simple, foundational decision.</p>

<p>I would go even further and argue that this act infused the web, defining the culture that was built on top of it.  Because the medium was free and open, as was often the case in academic and hacker circles before it, the aesthetic of sharing freely became central to the web community.  The dynamic of using ideas and resources freely shared by others, and then freely sharing your own resources and ideas in return, was strongly encouraged by the open nature of the web.  It was an implicit encouragement, but no less strong for that.  As always, the environment shapes those who live within it.</p>

<p>It was in that very spirit that Dave Shea launched the <a href="http://www.csszengarden.com/">CSS Zen Garden</a> ten years ago this week.  After letting it lie fallow for the last few years, Dave has re-opened the site to submissions that make use of all the modern capabilities we have now.</p>

<p>It might be hard to understand this now, but the Zen Garden is one of the defining moments in the history of web design, and is truly critical to understanding the state of CSS before and after it debuted.  When histories of web design are written—and there <em>will</em> be—there will be a chapters titled things like “Wired, ESPN, and the Zen Garden: Why CSS Ended Up In Everything”.</p>

<p>Before the Zen Garden, CSS was a thing you used to color text and set fonts, and maybe for a simple design, not for “serious” layout.  CSS design is boxy and boring, and impossible to use for anything interesting, went the conventional wisdom.  (The Wired and ESPN designs were held to be special cases.)  Then Dave opened the gates on the Zen Garden, with its five utterly different designs based on the very same document…and the world turned.</p>

<p>I’m known to be a history buff, and these days a web history buff, so of course I’m super-excited to see both these sites online and actively looked after, but you should be too.  You can see where it all started, and where a major shift in design occurred, right from the comfort of your cutting-edge nightly build of the latest and greatest browsers known to man.  That’s a rare privilege, and a testimony to what CERN set free, two decades back.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2013/05/08/resurrected-landmarks/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Blink Support(s)</title>
		<link>http://meyerweb.com/eric/thoughts/2013/04/24/blink-supports/</link>
		<comments>http://meyerweb.com/eric/thoughts/2013/04/24/blink-supports/#comments</comments>
		<pubDate>Wed, 24 Apr 2013 15:43:34 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=2215</guid>
		<description><![CDATA[Just a quick followup to <a href="http://meyerweb.com/eric/thoughts/2013/03/19/unsupportable-promises/">last month’s post about <code>@supports</code></a>.]]></description>
				<content:encoded><![CDATA[<p>Just a quick followup to <a href="http://meyerweb.com/eric/thoughts/2013/03/19/unsupportable-promises/">last month’s post about <code>@supports</code></a>:</p>

<pre><code>@supports (text-decoration: blink) {
	#test {
		color: green;
		background: yellow;
		text-decoration: blink;
	}
}
</code></pre>

<p>Results in all <code>@supports</code>-supporting browsers I was able to test: green text on a yellow background, <em>except</em> Firefox 22, which additionally blinks the text.  The latest nightly builds of Firefox 23 do not blink the text, thanks to <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=857820">bug 857820</a>.</p>

<p>Discuss.</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2013/04/24/blink-supports/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Unsupportable Promises</title>
		<link>http://meyerweb.com/eric/thoughts/2013/03/19/unsupportable-promises/</link>
		<comments>http://meyerweb.com/eric/thoughts/2013/03/19/unsupportable-promises/#comments</comments>
		<pubDate>Tue, 19 Mar 2013 16:01:42 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=2183</guid>
		<description><![CDATA[What do <em>you</em> think <code>@supports</code> means?]]></description>
				<content:encoded><![CDATA[<p>Over the past year and a half, the CSS Working Group has been working on a <a href="http://www.w3.org/TR/css3-conditional/">CSS Conditional Rules Module Level 3</a> module.  Now, don’t get overexcited: this is not a proposal to add generalized, formal if/then/else or switch statements to CSS—though in a very limited way, it does just that.  This is the home of the <a href="http://www.w3.org/TR/css3-conditional/#at-media"><code>@media</code> rule</a>, which lets you create if/then conditions with regard to the media environment.  It’s also the home of the <a href="http://www.w3.org/TR/css3-conditional/#at-supports"><code>@supports</code> rule</a>, which lets you…well, that’s actually more complicated than you might think.</p>

<p>I mean, what do <em>you</em> think <code>@supports</code> means?  Take a moment to formulate a one-line definition of your understanding of what it does, before moving on to the rest of this piece.</p>

<p>If you’ve never heard of it before and wonder how it works, here’s a very basic example:</p>

<pre><code>body {background-color: white;}
@supports (background-color: cornflowerblue) {
	body {background-color: cornflowerblue;}
}
</code></pre>

<p>The idea is that if the browser supports that property:value combination, then it will apply the rule or rules found inside the curly brackets.  In this sense, it’s just like <code>@media</code> rules: if the conditions in the parentheses are deemed to apply, then the rules inside the declaration block are used.  The module refers to this ability as “feature queries”.</p>

<p>There are some logical combination keywords available: <code>and</code>, <code>or</code>, and <code>not</code>.  So you can say things like:</p>

<pre><code>body {color: #222; background-color: white;}
@supports ((background-color: cornflowerblue) and (color: rgba(0,0,0,0.5))) {
	body {background-color: cornflowerblue; color: rgba(0,0,0,0.5);}
}
</code></pre>

<p>Okay, but what does that actually mean?  Here’s what the specification says:</p>

<blockquote><p>A CSS processor is considered to <em><strong>support</strong></em> a declaration (consisting of a property and value) if it accepts that declaration (rather than discarding it as a parse error). If a processor does not implement, with a usable level of support, the value given, then it <strong>must not</strong> accept the declaration or claim support for it.</p></blockquote>

<p>So in that first sentence, what we’re told is that “support” means “accepts [a] declaration” and doesn’t drop it on the floor as something it doesn’t recognize.  In other words, if a browser parses a property:value pair, then that qualifies as “support” for said pair.  Note that this sentence says <em>nothing</em> about what happens after parsing.  According to this, a browser could have a completely botched, partial, and generally unusable implementation of the property:value pair, but the act of recognizing means that there’s “support”.</p>

<p>But wait!  That second sentence adds an additional constraint, after a fashion: there must be “a usable level of support”, the lack of which means that a browser “<strong>must not</strong>…claim support”.  So not only must a browser parse a property:value pair, but support it to “a usable level”.</p>

<p>But what constitutes a “usable level”?  According to everyone who’s told me that I was wrong about vendor prefixes, any browser implementation of a feature should be complete and error-free.  Is that what’s required to be regarded as a usable level?  How about if the implementation has one known bug?  Three?  Ten?  Can any of them be severe bugs?  What about merely serious bugs?  What if two browsers claim usable support, and yet are not interoperable?</p>

<p>So.  How does the definition of <code>@supports</code> match the one-line definition I asked you to formulate, back at the beginning?  Are they exactly the same, or is there a difference?</p>

<p>I suspect that most people, especially those coming across <code>@supports</code> for the first time, will assume that the word means that a browser has complete, error-free support.  That’s the implicit promise.  Very few people think of “supports” as a synonym for “recognizes” (let alone “parses”).  There’s a difference, sometimes a very large one, between recognizing a thing and supporting it.  I’m sure that browser teams will do their best to avoid situations where a property:value pair is parsed but not well supported, but it’s only a matter of time before a “supported” pair proves to be badly flawed, or retroactively made wrong by specification changes.  Assuming that such things will be allowed, in an environment where <code>@supports</code> exists.</p>

<p>If feature queries were set with <code>@feature</code>, as media queries are set using <code>@media</code>, or even if the name were something along the lines of <code>@parses</code> or <code>@recognizes</code>, I’d be a lot less bothered.  The implicit promise would be quite a bit different.  What I feel like we face here is the exact inversion of vendor prefixes: instead of a marker for possible instability and a warning that preserves the possibility of changing the specification when needed, this pretends to promise stability and safety while restricting the WG’s ability to make changes, however necessary.  My instinct is that <code>@supports</code> will end up in the same place: abused, broken, and eventually reviled—except this time, there will be the extra bitterness of authors feeling that they were betrayed.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2013/03/19/unsupportable-promises/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>How Twitter Got Its Line Breaks</title>
		<link>http://meyerweb.com/eric/thoughts/2013/03/14/how-twitter-got-its-line-breaks/</link>
		<comments>http://meyerweb.com/eric/thoughts/2013/03/14/how-twitter-got-its-line-breaks/#comments</comments>
		<pubDate>Thu, 14 Mar 2013 21:22:00 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=2176</guid>
		<description><![CDATA[In the past day or so, Twitter started “supporting line breaks”.  How?]]></description>
				<content:encoded><![CDATA[<p>In the past day or so, Twitter started “supporting line breaks”.  This is something lots of third-party clients had been doing for a while, and heck, even Facebook does it.  In fact, if you had a tweet with linebreaks get auto-posted to Facebook by the Twitter-to-Facebook tool that Twitter provides, the linebreaks would show up there even though they didn’t on Twitter itself.  Until recently.</p>

<p>So how did they do it?  With CSS.  Here it is:</p>

<pre><code>.tweet-display-linebreaks .tweet .js-tweet-text{
	white-space:pre-wrap
}
</code></pre>

<p>That’s it.  I’m not going to comment on their selector construction, except in the meta sense that I <em>just did</em>, but that single rule is all it took.</p>

<p>Well, not <em>quite</em> all.  The other thing they’ve done is to trim off any leading or trailing whitespace, and make sure the tweet’s content is right up against the opening and closing tags of the element.  It looks like so:</p>

<pre><code>&lt;p class=&quot;js-tweet-text&quot;&gt;Y’all ready for this?&lt;/p&gt;</code></pre>

<p>When I input that tweet, it was like this, extra linefeeds and all:</p>

<pre><code>


Y’all ready for this?



</code></pre>

<p>So why do they trim off the edges?  Because if they left any whitespace between the tags and the content, <code>pre-wrap</code> would honor it.  This would happen even if Twitter, and not the author, was the source of the linefeeds between tags and content.  So rather than just ensure the content was placed normally, without any extra space, they went the <code>trim($tweet)</code> route.  I’m sure there are ways to beat the trimming; I haven’t tried to find them.  And there may be perfectly good reasons why they went the <code>trim()</code> route.  Maybe someone from Twitter will drop by to fill us in.</p>

<p>I will also note that <code>white-space: pre-wrap</code> preserves spaces between characters, just like <code>pre</code> elements do.  That means that anyone who double-spaces after sentences will have that space show up in their tweets, for everyone else to see.  Just like with the line breaks, author intent is thus preserved.  <a href="http://meyerweb.com/bkkt/they-deal.gif">Deal with it.</a></p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2013/03/14/how-twitter-got-its-line-breaks/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Helvetial</title>
		<link>http://meyerweb.com/eric/thoughts/2013/03/12/helvetial/</link>
		<comments>http://meyerweb.com/eric/thoughts/2013/03/12/helvetial/#comments</comments>
		<pubDate>Tue, 12 Mar 2013 20:46:32 +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=2169</guid>
		<description><![CDATA[In Windows, Helvetica is not Helvetica: it’s Arial.]]></description>
				<content:encoded><![CDATA[<p>Maybe all the cool kids already know this, but I didn’t, so I’ll document it for the rest of us:  in Windows, Helvetica is not Helvetica: it’s Arial.  It’s Arial even if you explicitly ask for Helvetica <em>and</em> fall back to a non-sans-serif font family <em>and</em> allow for no other choices—but it’s <em>not</em> Helvetica if you try to get to it indirectly.</p>

<p>To see what I mean, you can load up <a href="http://meyerweb.com/eric/css/tests/helvetial.html">my testcase</a> in any Windows browser—IE, Firefox, Chrome, whatever—assuming that you haven’t installed Helvetica on your Windows machine.  (If you have, then I’d love to know what results you get.)  Given that you haven’t installed Helvetica, you should see that three of the four bottom-bordered <code>span</code>s are using Arial.  This can be determined due to the shapes of the “GR” characters—<a href="http://ilovetypography.com/2007/10/06/arial-versus-helvetica/">they are notably different between Helvetica and Arial</a>.  Here’s what I apply to the first test list item:</p>

<pre><code>#l01 .s01 {font-family: Helvetica, monospace;}
#l01 .s02 {font-family: Arial, monospace;}
</code></pre>

<p>My result is that they use exactly the same face, and that face is Arial, which should not have happened.  If Helvetica is not present, the first <code>span</code> should be rendered using a monospace font face.  If it <em>is</em> present, then the first <code>span</code> should have different letterforms than the second.</p>

<p>But it’s the second line where things get really interesting.  There, I assigned local copies of Helvetica and Arial (if they exist) to the invented family names “H” and “A”.  Then I apply this to the second test list item:</p>

<pre><code>#l02 .s01 {font-family: H, monospace;}
#l02 .s02 {font-family: A, monospace;}
</code></pre>

<p>The result should be the same as the first line, but it isn’t: the first <code>span</code> gets a fallback font face, and the second <code>span</code> gets Arial.  So while the system redirects requests for Helvetica to Arial, it doesn’t do so in such a way that the invented family name “H” resolves to Arial, even though it was assigned Helvetica (or perhaps I should say “Helvetica”) as its source.</p>

<p>I’d be interested to know if there’s something I’ve overlooked or misunderstood here, because these waters are deep and I suspect my understanding of them is somewhat shallow.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2013/03/12/helvetial/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Glasshouse</title>
		<link>http://meyerweb.com/eric/thoughts/2013/03/07/glasshouse/</link>
		<comments>http://meyerweb.com/eric/thoughts/2013/03/07/glasshouse/#comments</comments>
		<pubDate>Thu, 07 Mar 2013 17:08:50 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Culture]]></category>
		<category><![CDATA[Observations]]></category>
		<category><![CDATA[Parenting]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Technovertigo]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=2160</guid>
		<description><![CDATA[That was the moment when I realized that Google Glass is inevitable.]]></description>
				<content:encoded><![CDATA[<p>Our youngest tends to wake up fairly early in the morning, at least as compared to his sisters, and since I need less sleep than Kat I’m usually the one who gets up with him.  This morning, he put away a box he’d just emptied of toys and I told him, “Well done!”  He turned to me, stuck his hand up in the air, and said with glee, “Hive!”</p>

<p>I gave him the requested high-five, of course, and then another for being proactive.  It was the first time he’d ever asked for one.  He could not have looked more pleased with himself.</p>

<p>And I suddenly realized that I wanted to be able to say to my glasses, “Okay, dump the last 30 seconds of livestream to permanent storage.”</p>

<p>There have been <a href="http://creativegood.com/blog/the-google-glass-feature-no-one-is-talking-about/">concerns raised</a> about the impending crowdsourced panopticon that Google Glass represents.  I share those concerns, though I also wonder if the pairing of constant individual surveillance with cloud-based storage mediated through wearable CPUs will prove out an old if slightly recapitalized adage: that an <a href="http://en.wikipedia.org/wiki/ARM_architecture">ARM</a>ed society is a polite society.  Will it?  We’ll see—pun unintentional but unavoidable, very much like the future itself.</p>

<p>And yet.  You think that you’ll remember all those precious milestones, that there is <em>no way on Earth</em> you could ever forget your child’s first word, or the first time they took their first steps, or the time they suddenly put on an impromptu comedy show that had you on the floor laughing.  But you do forget.  Time piles up and you forget most of everything that ever happened to you.  A few shining moments stay preserved, and the rest fade into the indistinct fog of your former existence.</p>

<p>I’m not going to hold up my iPhone or Android or any other piece of hardware all the time, hoping that I’ll manage to catch a few moments to save.  That solution doesn’t scale at all, but I still want to save those moments.  If my glasses (or some other device) were always capturing a video buffer that could be dumped to permanent storage at any time, I could capture all of those truly important things.  I could go back and see that word, that step, that comedy show.  I would do that.  I wanted to do it, sitting on the floor of my child’s room this morning.</p>

<p>That was when I realized that Glass is inevitable.  We’re going to observe each other because we want to preserve our own lives—not every last second, but the parts that really matter to us.  There will be a whole host of side effects, some of which we can predict but most of which will surprise us.  I just don’t believe that we can avoid it.  Even if Google fails with Glass, someone else will succeed with a very similar project, and sooner than we expect.  I’ve started thinking about how to cope with that outcome.  Have you?</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2013/03/07/glasshouse/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>The Stinger</title>
		<link>http://meyerweb.com/eric/thoughts/2013/03/04/the-stinger/</link>
		<comments>http://meyerweb.com/eric/thoughts/2013/03/04/the-stinger/#comments</comments>
		<pubDate>Mon, 04 Mar 2013 17:44:19 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Commentary]]></category>
		<category><![CDATA[History]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=2155</guid>
		<description><![CDATA[On Friday, the Web Standards Project <a href="http://www.webstandards.org/2013/03/01/our-work-here-is-done/">announced its own dissolution</a>.  I felt a lot of things upon reading the announcement, once I got over my initial surprise: nostalgia, wistfulness, closure.]]></description>
				<content:encoded><![CDATA[<p>(In television, the “stinger” is the clip that plays during or just after the closing credits of a show.)</p>

<p>On Friday, the Web Standards Project <a href="http://www.webstandards.org/2013/03/01/our-work-here-is-done/">announced its own dissolution</a>.  I felt a lot of things upon reading the announcement, once I got over my initial surprise: nostalgia, wistfulness, closure.  And over it all, a deep sense of respect for the Project as a whole, from its inception to its peak to its final act.</p>

<p>In some ways, the announcement was a simple formalization of a longstanding state of affairs, as the Project has gradually grown quieter and quieter over the years, and its initiatives had been passed on to other, more active homes.  It was still impressive to see the group explicitly shut down.  I can’t think of the last time I saw a group that had been so influential and effective recognize that it was time to turn off the lights, and exit with dignity.  As they wrote:</p>

<blockquote cite="http://www.webstandards.org/2013/03/01/our-work-here-is-done"><p>Thanks to the hard work of countless WaSP members and supporters (like you), Tim Berners-Lee’s vision of the web as an open, accessible, and universal community is largely the reality. While there is still work to be done, the sting of the WaSP is no longer necessary. And so it is time for us to close down The Web Standards Project.</p></blockquote>

<p>I have a long history with the WaSP.  Way, way back, deep in the thick of the browser wars, I was invited to be a member of the CSS Action Committee, better known as the CSS Samurai.  We spent the next couple of years documenting how things worked (or, more often, didn’t) in CSS implementations, and—and this was the clever bit, if you ask me—writing up specific plans of action for browsers.  The <a href="http://archive.webstandards.org/css/#The_Top_10_Lists">standards compliance reviews</a> we published told browsers what they needed to fix first, not just what they were getting wrong.  I can’t claim that our every word was agreed with, let alone acted upon, but I’m pretty confident those reviews helped push browser teams in the right direction.  Or, more likely, helped browser teams push their bosses in the direction the teams already wanted to go.</p>

<p>Succumbing to a wave of nostalgia, I spent a few minutes trawling my archives.  I still have what I think is all the mail from the Samurai’s mailing list, run through Project Cool’s servers, from when it was set up in August 1998 up through June of 2000.  My archive totals 1,716 messages from the group, as well as some of the Steering Committee members (mostly Glenn Davis, though George Olsen was our primary contact during the Microsoft style sheets patent brouhaha of February 1999).  If I’m not reading too much into plain text messages over a decade old, we had a pretty great time.  And then, after a while, we were done.  Unlike the WaSP itself, we never really declared an end.  We didn’t even march off into the sunset having declared that the farmers always win.  We just faded away.</p>

<p>Not that that’s entirely a bad thing.  At a certain point, our work was done, and we moved on.  Still, I look back now and wish we’d made it a little more formal.  Had we done so, we might have said something like the WaSP did:</p>

<blockquote cite="http://www.webstandards.org/2013/03/01/our-work-here-is-done"><p>The job’s not over, but instead of being the work of a small activist group, it’s a job for tens of thousands of developers who care about ensuring that the web remains a free, open, interoperable, and accessible competitor to native apps and closed eco-systems. It’s <em>your</em> job now…</p></blockquote>

<p>And so it is.  These last years have shown that the job is in very good hands.</p>

<p>“Never doubt that a small group of thoughtful, committed citizens can change the world. Indeed, it is the only thing that ever has.” said Margaret Mead.  I see now that the way those small groups truly change the world is by convincing the rest of the world that they are right, thus co-opting the world to their cause.  Done properly, the change makes the group obsolete.  It’s a lesson worth remembering, as we look at the world today.</p>

<p>I’m honored to have been a part of the WaSP, and I offer my deepest samurai bow of respect to its founders, its members, and its leaders.  Thank you all for making the web today what it is.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2013/03/04/the-stinger/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Presto Change-o</title>
		<link>http://meyerweb.com/eric/thoughts/2013/02/13/presto-change-o/</link>
		<comments>http://meyerweb.com/eric/thoughts/2013/02/13/presto-change-o/#comments</comments>
		<pubDate>Wed, 13 Feb 2013 17:16:47 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Browsers]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=2146</guid>
		<description><![CDATA[Of browsers and word processors, formats and features, code and consolidation.]]></description>
				<content:encoded><![CDATA[<p>Way back in the day, I used to compare web standards to text file formats and browsers to word processors.  The analogy was that in the early days of word processors, they competed on features and file formats—WordPerfect has its own format, WordStar had its own, Word its own, and on and on.  Then, over time, they all converged on supporting a small(ish) number of common formats and competed on features.  And so it would be for browsers, I would say, back in those days.</p>

<p>Well, so it was.  But there was another stage to the analogy that I didn’t bring up because it seemed to so remote, back then: that one of the browsers would start to gobble up or kill off its competitors, as MS Word did in the word processor space.  Sure, there are still alternatives, but how many people use them?</p>

<p>You can argue that this sort of consolidation is inevitable.  You can argue that it has benefits that outweigh the drawbacks, and vice versa.  Certainly having a <em>de facto</em> word processor made publishers’ lives easier in many ways, even if it disrupted life for authors who had invested in other-than-<em>de-facto</em> programs.  It made life easier for people who wanted to extend the word processing space by writing extensions, helpers, and other tools.  And it definitely made life easier for the Office team, which could proceed to add whatever feature they liked without having to worry overmuch about interoperability with others.  (It was, obviously, up to others to be interoperable with them.)</p>

<p>This is the lens through which I view <a href="http://www.opera.com/press/releases/2013/02/13/">Opera’s announcement that they will migrate to WebKit</a>.  Actually, that’s not true: it’s <em>one</em> of the lenses.  I also remember the first browser wars, and the calls to have all browsers just use Trident, the engine in IE5 and IE6.  It was dominant, after all, and as good as or better than all its competitors, blessed with great resources and smart developers.  I find myself peering through that lens as well.</p>

<p>There are parallels and divergences, of course:  no analogy is ever perfect and no two events are identical.  We could argue about how this is exactly like or not like a decade ago, how this is precisely like or not like the word processor market, and some of us will.  No matter where you fall, of course, the Opera migration to WebKit and the sunset of Presto is going to happen.  As once was said:  <a href="http://youtu.be/1zJsrjOytG8?t=26s">The avalanche has already started.  It is too late for the pebbles to vote.</a></p>

<p>To which I would add: in this case the pebbles have already voted, have been voting for years now, and their votes determined that the avalanche would proceed in this direction and not another.  And no, I don’t mean the users.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2013/02/13/presto-change-o/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Where to Avoid CSS Hyphenation</title>
		<link>http://meyerweb.com/eric/thoughts/2012/12/17/where-to-avoid-css-hyphenation/</link>
		<comments>http://meyerweb.com/eric/thoughts/2012/12/17/where-to-avoid-css-hyphenation/#comments</comments>
		<pubDate>Mon, 17 Dec 2012 19:36:52 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=2123</guid>
		<description><![CDATA[Last week, I asked “<a href="http://meyerweb.com/eric/thoughts/2012/12/10/should-you-hyphenate/">Should You Hyphenate?</a>”  This week, I’m going to assume that you decided to answer in the affirmative and talk about some good practices (I don’t know if they’re best practices just yet).]]></description>
				<content:encoded><![CDATA[<p>Last week, I asked “<a href="http://meyerweb.com/eric/thoughts/2012/12/10/should-you-hyphenate/">Should You Hyphenate?</a>”  This week, I’m going to assume that you decided to answer in the affirmative and talk about some good practices (I don’t know if they’re best practices just yet).  This post was actually triggered by <a href="http://meyerweb.com/eric/thoughts/2012/12/10/should-you-hyphenate/#comment-998776">a comment from Kevin Hamilton</a> on last week’s post.  He said, in part:</p>

<blockquote cite="http://meyerweb.com/eric/thoughts/2012/12/10/should-you-hyphenate/#comment-998776"><p>You may want to exclude hyphenation on &lt;code&gt; tags within your blog. For both readability purposes (since many CSS tags already make heavy use of hyphens) and to avoid introducing some confusing/misleading references… Is it re-peating-linear-gradient? Or perhaps repeating-lin-ear-gradient?</p></blockquote>

<p>He’s absolutely right, of course.  If you’re going to blog about technical topics, or even if you’re just writing a style sheet that you expect to release into the wild for use by anyone, there are some elements that you should avoid hyphenating.  And since <a href="https://developer.mozilla.org/en-US/docs/CSS/hyphens"><code>hyphens</code></a> is an inherited property, it isn’t sufficient to set it for a limited number of elements and assume you’re done.  You have to make sure you’ve turned it off for the elements that shouldn’t be hyphenated.</p>

<p>In my opinion, those elements are:</p>

<ul>
<li><a href="https://developer.mozilla.org/en-US/docs/HTML/Element/code"><code>code</code></a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/HTML/Element/var"><code>var</code></a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/HTML/Element/kbd"><code>kbd</code></a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/HTML/Element/samp"><code>samp</code></a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/HTML/Element/tt"><code>tt</code></a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/HTML/Element/dir"><code>dir</code></a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/HTML/Element/listing"><code>listing</code></a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/HTML/Element/plaintext"><code>plaintext</code></a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/HTML/Element/xmp"><code>xmp</code></a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/HTML/Element/abbr"><code>abbr</code></a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/HTML/Element/acronym"><code>acronym</code></a></li>
</ul>

<p>Yes, most of those are old and obscure and in some cases (massively) deprecated, but they’re all elements that could be hanging around on a web site and by their nature shouldn’t have their content hyphenated.  I mean, I would hope that a browser would recognize not to hyphenate an acronym or abbreviation element, but who knows?  Maybe <acronym>ZOMGWTFBBQROFLMFAOCOPTER</acronym><acronym> has enough word-like strings to qualify for hyphenation in some hyphenation dictionaries.  (Or not.)</acronym></p>

<p>“So what about <code>pre</code>?” you ask.  A very good question.  I rate that as a solid “maybe”.  For most uses of <code>pre</code>, the content won’t line-wrap anyway thanks to <code>white-space: pre</code>, so it’s a moot point.  However, if a <code>pre</code> has been set to <code>white-space</code> of <code>pre-wrap</code>, <code>pre-line</code>, or even <code>normal</code>, then hyphenation may well kick in.</p>

<p>At that point, the question is what kind of content the <code>pre</code> contains.  It apparently is no longer meant to be rigidly preformatted, as the element name would imply, so what is it?  If it’s a code block, there should already be a <code>code</code> element present within the <code>pre</code>, so suppressing hyphenation for <code>code</code> will be sufficient.  Ditto if it’s an example of user input (<code>kbd</code>), program output (<code>samp</code>), and so on.  This is why semantic markup matters.  It’s why, if you’ve been using it all along, you can make fine-grained choices here.</p>

<p>Of course, lots of people weren’t as forward-looking as you and anyway nobody’s perfect, so it’s probably a good idea to switch off hyphenation for <code>pre</code>, just in case the more semantic elements were left out.</p>

<p>There are similar questions to confront regarding <code>q</code> and <code>blockquote</code>.  If you’re quoting someone, almost certainly something that someone wrote, is it advisable to hyphenate that text when they didn’t?  I’m honestly not sure if it matters or not.  I’ve personally suppressed hyphenation in those cases, but I did that purely on instinct and I’d love to know what content and typography specialists think of that question.  (Be polite, please.  We’re all learning here.)</p>

<p>For the last interesting question, what about auto-linked URLs?  If we suppress hyphenation for all links, then that solves one problem to introduce another.  What I have noticed is that if you drag-select CSS-hyphenated text, the auto-generated hyphen(s) and line break(s) are ignored when you copy the text.  You just get the original.  That’s why I don’t think it’s really necessary to suppress hyphenation on the <code>a</code> element, though I’m willing to change my mind in the presence of new evidence.</p>

<p>Thus, at the moment, meyerweb’s base style sheet contains the following:</p>

<pre><code>body {hyphens: auto;}
code, var, kbd, samp, tt, dir, listing, plaintext, xmp,
      abbr, acronym, blockquote, q {hyphens: none;}
</code></pre>

<p>I may adjust those rules over time, but that’s where I’ve landed.</p>

<p><strong>Update 18 Dec 12:</strong> I should make it more clear that this post is intended to be a starting point, not the final word.  I’m not proposing that these are all the elements on which one should ever suppress hyphenation, full stop, end of discussion.  There may well be others, like form labels and textareas and text inputs and so forth, that should also be excluded.  (Though I kind of enjoy watching my text input get auto-hyphenated as I type.  It’s a little surreal.)  Hopefully, this post will get people thinking about exactly how authors should handle hyphenation if they do choose to put it in place, and eventually help us figure out some solid best practices.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2012/12/17/where-to-avoid-css-hyphenation/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Should You Hyphenate?</title>
		<link>http://meyerweb.com/eric/thoughts/2012/12/10/should-you-hyphenate/</link>
		<comments>http://meyerweb.com/eric/thoughts/2012/12/10/should-you-hyphenate/#comments</comments>
		<pubDate>Mon, 10 Dec 2012 15:48:28 +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=2114</guid>
		<description><![CDATA[CSS hyphenation is widely supported in current browsers, and the very definition of a progressive enhancement.  Is it right for you?]]></description>
				<content:encoded><![CDATA[<img src="http://meyerweb.com/pix/2012/hyphen-minus.gif" class="pic" alt=""/>

<p>A couple of weeks back, PPK <a href="http://www.quirksmode.org/blog/archives/2012/11/hyphenation_wor.html">posted about the sudden emergence of CSS hyphenation support</a> in several browsers (which got <a href="http://www.webmonkey.com/2012/11/better-web-typography-with-css-hyphens/">picked up by WebMonkey</a>, the lucky dog).  At the time, there was some confusion about whether a <code>lang</code> attribute it required to allow the hyphenation to happen—PPK said it did, but my testing indicated the opposite.</p>

<p>Well, it turned out that at the moment I did that test, I was running Firefox 16, and FF16 apparently honored the <code>-moz-hyphens</code> property with nary <code>lang</code> a attribute in sight.  We might ask how <em>that’s</em> supposed to work, since hyphenation dictionaries are language-dependent, but never mind: it did.  Firefox 17, on the other hand, requires a <code>lang</code> attribute value in order to apply <code>hyphens</code> (note the lack of prefix).</p>

<p>I haven’t gone running down the behavior of other browsers, because the upshot is this: if you want hyphenation to work in a future-friendly way, you need a <code>lang</code> attribute.  What older versions do will become of fading relevance.</p>

<p>All of which raises a fairly important question: <em>should</em> you enable hyphenation?</p>

<p>After all, hyphenation, I am told, was invented to increase the density of text and reduce the number of column inches needed in printed media, where paper can be expensive and space at a premium.  Hyphenation, in other words, was devised as a trick to let authors be a little bit more wordy.  (Also as a way to help reduce interword spacing in fully justified text.)</p>

<p>On the web, of course, we have no physical length constraints: The Web Ain’t Print.  We can run on as long as we like, limited only by our thesaurus, our RSI flare-ups, and the attention span of our readers.</p>

<p>But wait…that’s all true for the <em>desktop</em> web.  We have lovely big monitors and easily resizeable windows and zoomable text.  On mobile devices, however, the real estate is much more limited.  We still have infinite length, yes, but line lengths tend to be a lot shorter on iPhone or Android—particularly if you’ve given your mobile users a nicely readble font size.</p>

<p>Right after PPK’s article hit my aggregator, I turned on hyphenation here on meyerweb.  For desktop reading, at first it caught my eye a bit, but now I don’t see it at all.  Years and years of print reading has made it seem familiar.  Things would be just fine without the hyphens, of course.  But when reading pages on mobile, the hyphens feel useful.  They give me a little bit more reading for each “screenful”, and just feel comfortable.</p>

<p>Thus my recommendation of the moment: if you’re going to use CSS hyphenation, turn it on for mobile contexts.  For desktop—well, that’s a much murkier call.  It may well depend on your font family, layout, default language, and so on.  If you do turn them on, just make sure you have that <code>lang</code> attribute (I put mine on the <code>html</code> element) so your hyphens will persist.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2012/12/10/should-you-hyphenate/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Another Year Apart</title>
		<link>http://meyerweb.com/eric/thoughts/2012/12/06/another-year-apart/</link>
		<comments>http://meyerweb.com/eric/thoughts/2012/12/06/another-year-apart/#comments</comments>
		<pubDate>Thu, 06 Dec 2012 16:22:01 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[An Event Apart]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=2086</guid>
		<description><![CDATA[Just some quick updates regarding <a href="http://aneventapart.com/">An Event Apart</a> as we transition from our just-finished 2012 schedule to the upcoming 2013 schedule.]]></description>
				<content:encoded><![CDATA[<p>Just some quick updates regarding <a href="http://aneventapart.com/">An Event Apart</a> as we transition from our just-finished 2012 schedule to the upcoming 2013 schedule.</p>

<p>If you&#8217;re interested in joining us in 2013, you can <a href="http://aneventapart.com/events">check out the event nearest you</a>…or maybe the event being held where you&#8217;ve always wanted to go!  If you have your eye on <a href="http://aneventapart.com/event/atlanta-2013">Atlanta</a>, bear in mind that the Early Bird rate (which saves you $100) ends on Christmas Eve, so don&#8217;t wait too much longer.  And if you were waiting for a detailed schedule in either <a href="http://aneventapart.com/event/san-diego-2013">San Diego</a> or <a href="http://aneventapart.com/event/boston-2013">Boston</a> before deciding to register, well, <a href="http://aneventapart.com/news/post/an-event-apart-posts-san-diego-and-boston-schedules">your wait is over</a>.  More schedules will be released as the shows get closer.</p>

<p>I don&#8217;t talk very much about An Event Apart, and I probably talk about it far less than I should.  I blame that on the show itself, partly.  Our last show of 2012, held at the opulent Palace Hotel in San Francisco, is now three weeks behind us and I&#8217;m still struck a little bit speechless by another year of fantastic attendees and speakers.  The fundamental nature of what we’ve created together really is overwhelming to me, in the best possible way.  Thank you, one and all, for making that possible.</p>

<p>To celebrate the year just past as well as the year to come, we&#8217;ve once again <a href="http://aneventapart.com/news/post/CFY-holiday-2012">made a donation to CFY</a> (formerly Computers For Youth) to help advance their efforts to bring digital literacy and access to impoverished elementary school students.  They&#8217;ve already seen great improvements in schools where they operate, and we&#8217;re thrilled to support their work.  If you&#8217;d like to support them as well, <a href="http://cfy.org/">please do</a>, or take a moment in all the end-of-year rush and lend some aid to the charity that speaks most clearly to you.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2012/12/06/another-year-apart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sixth Annual Blue Beanie Day</title>
		<link>http://meyerweb.com/eric/thoughts/2012/11/23/bbd6/</link>
		<comments>http://meyerweb.com/eric/thoughts/2012/11/23/bbd6/#comments</comments>
		<pubDate>Fri, 23 Nov 2012 19:14:25 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Standards]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=2003</guid>
		<description><![CDATA[Come November 30th, thousands of us will don our blue beanies.  I hope you’ll be among us.]]></description>
				<content:encoded><![CDATA[<p>I just recently stumbled across a years-ago post where I said, almost as an aside:</p>

<blockquote><p> Web design isn’t like chemistry, where the precipitate either forms or it doesn’t. If chemical engineers had to work in conditions equivalent to web developers, they’d have to mix their solutions in several parallel universes, each one with different physical constants, and get the same result in all of them. </p></blockquote>

<p>While that’s still true, the constants are a lot less divergent these days.  The parallel universes that are web browsers are much closer to unity than once they were.</p>

<p>Remember those days?  When major web sites had a home page with two links: one for Netscape users to enter, the other for IE users?</p>

<p>Madness.</p>

<img src="http://meyerweb.com/pix/2012/bbd-eric.png" class="pic"/>

<p>We know better now, of course.  Thanks to early pioneers like the organizers of the Web Standards Project, the path of web development was bent to a much saner course.  We still have little glitches and frustrations, of course, but it could be so unimaginably worse.  We know that it could be, because it was, once.</p>

<p>Along the way, the book cover of <a href="http://zeldman.com/" rel="friend colleague co-worker met">my friend and business partner</a>’s book, <a href="http://zeldman.com/dwws/"><cite>Designing With Web Standards</cite></a>, gave rise to <a href="http://zeldman.com/bbd/">Blue Beanie Day</a>, the day on which we give visible presence to our solidarity with the idea that web standards make possible the web as we know it.  Pictures go up on Twitter, Instagram, and Flickr with the tag <code>#bbd12</code>, and can be added to <a href="http://flickr.com/groups/bbd12/">the Flickr group</a> if you post there.</p>

<p>In this rapidly unfolding age of multiple device platforms and web access experiences, standards are more important than ever, even as they come under renewed pressure.  There will always be those who proclaim that standards are a failed process, an obstruction, an anachronism.  The desire to go faster and be shinier will always tempt developers to run down proprietary box canyons.</p>

<p>But so too will there always be those of us who remember the madness that lies that way.  Come November 30th, thousands of us will don our blue beanies.  I hope you’ll be among us.</p>

<p class="footnote">Image © Kevin Cornell.  Used with permission.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2012/11/23/bbd6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Optimized For the Fast-Fading Past</title>
		<link>http://meyerweb.com/eric/thoughts/2012/10/12/optimized-for-the-fast-fading-past/</link>
		<comments>http://meyerweb.com/eric/thoughts/2012/10/12/optimized-for-the-fast-fading-past/#comments</comments>
		<pubDate>Fri, 12 Oct 2012 19:31:30 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Observations]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=2024</guid>
		<description><![CDATA[I have a theory, one that I’m sure has been formulated by someone else much earlier than me, that all power users eventually get left behind.]]></description>
				<content:encoded><![CDATA[<p>I have a theory, one that I’m sure has been formulated by someone else much earlier than me, that all power users eventually get left behind.  They get stuck in a highly-optimized box canyon of their own making, one that is perfectly tuned to their way of working and interacting with data and is of interest to precisely nobody else in the world.</p>

<p>Let me use myself as an example.  I’m currently running OS X Snow Leopard, 10.6.8, with no intention of upgrading.  This is because after Snow Leopard, there is no more Rosetta.  That means that my preferred personal mail client, Eudora, will not work.  Neither will Word 2004.  Both are, in effect, upgrade deal-breakers for me.</p>

<p>But why would I hang on to such relics?</p>

<p>Well, Eudora has been my mail client for quite literally two decades, and thus it has two decades of archived mail that I can search very quickly and easily.  I have tried out migrations to other clients; they crash trying to suck in 3GB worth of mail text in Eudora&#8217;s special format.  I could simply declare a break and move on to a new client with no stored mail, but as soon as I upgrade my OS, even the archives will be inaccessible.  This is a major barrier.  There are possible solutions, but trying them is <em>incredibly</em> time-intensive with no actual guarantee of success.</p>

<p>As for Word 2004, I have it customized so that <kbd>⇧⌘S</kbd> shifts keyboard focus to the Styles combo box.  There I can type the name of the style I want and hit return.  This is really important when I’m writing a book whose files eventually have to be passed off to a publisher’s production staff, whose toolchains depend on proper use of styles.  O’Reilly in particular went to a lot of effort, back in the day, to create style who had vi-style shortcut names, so I can highlight a few words and type <kbd>⇧⌘S fc [return]</kbd> to set the highlighted text in the “literal” style (used for property names and the like).  Versions of Word after 2004 do not possess this feature.  I own Word 2011, and often use it to view documents sent to me by others, but I can’t use it as an efficient book-authoring tool because it amputated a feature I use a lot.</p>

<p>So the objection isn’t a simple “I like what I know, dadgumit!”, though of course I do like what I know (we all do).  The real problem is “I have built my workflow around these things, and breaking them is unacceptable”.</p>

<p>I hear similar complaints from my designer friends.  They’ve gotten so expert at using a particular piece of software that they bemoan even the hint that it will get a significant ‘upgrade’—which often sounds like “break everything I do while likely adding a metric ton of crap I don’t need” to the power user—or even be discontinued.  Although for the power user, discontinuing is often preferable; at least when software is discontinued, it works exactly as you expect for as long as you can keep it running.</p>

<p>The web doesn’t inherently fix this problem, either.  When Twitter finally retired the API access points that Twitterrific 3 depended upon, my desktop Twitter client irretrievably broke.  Why not upgrade to the latest Twitterrific?  Because version 3 allowed me to display my timeline with all tweets collapsed, except for the currently-active tweet.  It was an incredibly compact, high-density, useful interface.  Version 4 does not permit it.  no other Twitter client I’ve tried permits it.  In fact, every other Twitter client I’ve tried has come off as cartoonishly clumsy and sprawlingly obtrusive when compared to the sleekness of Twitterrific 3—including, as I say, the newer version of the very same Twitter client.</p>

<p>Granted, that’s more of a UI preference than a functionality problem, but UI preferences are often what drive us to use things, or not use them.  I’m much now less present on Twitter than I was before the break, and when I do go on Twitter, it’s either via the official Twitter client on my iPhone or via <a href="http://twitter.com/">twitter.com</a> itself on the desktop.</p>

<p>Getting back to my increasingly-aging OS version, it helps that, to <a href="http://www.tbray.org/ongoing/When/201x/2012/10/09/No-Takebacks">echo one my long-time personal heroes Tim Bray</a>, I have no particular interest in what’s come after Snow Leopard.  Dragging window edges might be nice, but I’ve lived without it for a very long time and rarely ever missed it.  (Not never, but rarely.)</p>

<p>Yes, the newer OS X versions have a whole bunch of hip new cloud features, but in my case that’s actually a bug, not a feature.  I instinctively distrust cloud-based storage for a variety of reasons.  The security concerns are pretty significant for me, and for that matter having everything stored remotely is a good idea only if I have 100% reliable network access everywhere I go.  Well, I don’t (and neither do you).</p>

<p>But of course the rest of the world is moving in a different direction, leaving people like me behind.  That doesn’t mean that the rest of the world has gone mad, or is wrong to move in the direction it does.  This isn’t a querulous demand that everything be frozen in the spot I like because if it was good enough ten years ago, it’s good enough now.  That’s not how the world works.  What I’m doing here, if I’m doing anything worthwhile at all, is documenting the point at which I came to the end of my box canyon, pulled out a guitar, and strummed a quiet ballad to the memory of my own forward progress.</p>

<p>As I say, I think all this happens to every power user at some point or another.  We become enmeshed in a web of interlocking dependencies, and sooner or later lock ourselves into a particular place.  The odds of it happening increase with age, but that’s less a function of biological age than it is elapsed time.  The younger you start, the younger you’re likely to reach this point.</p>

<p>I will have to exit my canyon eventually, of course—but when, how, and why all remain very open questions, and I do not look forward to the turbulent transition periods that are likely to follow.</p>

<p class="footnote">
Special thanks to <a href="http://tbray.org/" rel="acquaintance met">Tim Bray</a>, <a href="http://splorp.com/" rel="acquaintance met">Grant Hutchinson</a>, and <a href="http://jontangerine.com/" rel="acquaintance met">Jon Tan</a> for their insights and feedback on this post.
</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2012/10/12/optimized-for-the-fast-fading-past/feed/</wfw:commentRss>
		<slash:comments>18</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! -->