<?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>Reinventing Fire &#187; Uncategorized</title>
	<atom:link href="http://schepers.cc/category/uncategorized/feed" rel="self" type="application/rss+xml" />
	<link>http://schepers.cc</link>
	<description>Technology upside down and backwards</description>
	<lastBuildDate>Sun, 09 Oct 2011 19:47:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Shanghaied</title>
		<link>http://schepers.cc/shanghaied</link>
		<comments>http://schepers.cc/shanghaied#comments</comments>
		<pubDate>Mon, 05 May 2008 23:35:51 +0000</pubDate>
		<dc:creator>Schepers</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.schepers.cc/?p=66</guid>
		<description><![CDATA[<br/>We spent a day looking around Guilin, another day on the rice terraces, then took the bus down to Yangshuo.  Guilin was nice enough, and interesting to see (we spent most of the day in a natural amusement park of sorts, including the sad zoo, where we did get to see a panda), but the [...]]]></description>
			<content:encoded><![CDATA[<br/><p>We spent a day looking around Guilin, another day on the rice terraces, then took the bus down to Yangshuo.  Guilin was nice enough, and interesting to see (we spent most of the day in a natural amusement park of sorts, including the sad zoo, where we did get to see a panda), but the terraces and Yangshuo were spectacular.</p>
<p>Up in the mountains with the rice terraces, we saw the a show by the indigenous women (they have long hair, which they tie in buns atop their heads and wear like a turban), then climbed the peaks and even went a bit off the normal tourist-clogged hilltop onto the narrow trails between stepped paddies.  Here again, the lie was put to Chinese Communism, as these people were both poor and opportunistically capitalist, hawking their souvenirs aggressively in the villages and along the trails (not that we could blame them for preferring that to working the fields, and we did buy this and that).  But the sights were gorgeous, and I&#8217;d love to see more of it.</p>
<p>Then down to Yangshuo. This is the area of China with the striking narrow mountains, shrouded in mist.  The first day there, having started a bit late, we biked out to the river and took a bamboo raft back down, then climbed to the top of a small mountain called Moon Hill, a striking peak we&#8217;d unknowingly seen from the raft, with a semicircular arch through its middle.  At first, we got to the arch, where there was a scenic view.  But then we followed an unmarked, unpaved trail further out, and eventually up, to the top of the &#8220;hill&#8221;.  Up there, the sky and the mountains were even more spectacular.  The climb was a doozy, but it was worth it.</p>
<p>That night, we stayed in a place appropriately named Fawlty Towers; it was cheap, but we found out why, with a dubious bathroom, no topsheets or duvet covers for the musty and questionable blankets, and, worst of all, some bizarre wiring problem that caused the ceiling lamp to suddenly start flashing erratically (though it was turned off) at 3 AM.  When I stumbled downstairs to complain, they made us move rooms.  Don&#8217;t stay there.</p>
<p>The next day, we rented bikes again, and hired a guide to show us around on a bike tour of the local villages.  It rained most of the day, and I was covered in mud by the end.  We stopped at one of the villages for lunch, whereupon our guide tried to convert us&#8230; to Christianity!  I asked him to tell us about the countryside and the villages instead, but he kept coming back to religion, until I had to insist he stop it.  Truth to tell, he wasn&#8217;t much of a tour guide, showing us the path but not pointing out or explaining any of the sites unless we asked, and not even much then.  But we still had a good ride over bumpy country roads, and we cought a shower and a plane out to Shanghai.</p>
<p>&#8230; Where M promptly fell ill.  Luckily, we&#8217;re staying with the mother of a friend, who had their driver take us to a clinic.  Gastroenteritis, apparently, and a nasty case of it, so we are taking it easy today.</p>
]]></content:encoded>
			<wfw:commentRss>http://schepers.cc/shanghaied/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Underscoring Accessibility</title>
		<link>http://schepers.cc/underscoring-accessibility</link>
		<comments>http://schepers.cc/underscoring-accessibility#comments</comments>
		<pubDate>Wed, 17 Oct 2007 21:57:54 +0000</pubDate>
		<dc:creator>Schepers</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[CDF]]></category>
		<category><![CDATA[Metadata]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[SVG]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.schepers.cc/?p=46</guid>
		<description><![CDATA[<br/>Dramatis Personae Doug Schepers (a Montague) Anne van Kestern (a Capulet) Simon Pieters (a Capulet) Henri Sivonen (a Capulet) Rich Schwerdtfeger (a Franciscan) Aaron Leventhal (an Apothecary) The Prologue Over the past few weeks, there has been a long, drawn-out discussion about how to integrate ARIA (an accessibility specification) into both SVG and HTML in [...]]]></description>
			<content:encoded><![CDATA[<br/><h3>Dramatis Personae</h3>
<ul>
<li>Doug Schepers (a Montague)</li>
<li>Anne van Kestern (a Capulet)</li>
<li>Simon Pieters (a Capulet)</li>
<li>Henri Sivonen (a Capulet)</li>
<li>Rich Schwerdtfeger (a Franciscan)</li>
<li>Aaron Leventhal (an Apothecary)</li>
</ul>
<h3>The Prologue</h3>
<p>Over the past few weeks, there has been a long, drawn-out discussion about how to integrate <a target="_blank" title="Roles for Accessible Rich Internet Applications" href="http://www.w3.org/TR/aria-role/">ARIA</a> (an accessibility specification) into both SVG and HTML in a uniform way.  There have been two main camps, as there usually are in these matters: the XML advocates, and the HTML5 (WHATWG) advocates.  Both sides want to make sure that all content works the same across all browsers, authoring tools, etc. (collectively called User Agents), but they differed in how they thought it should be done.</p>
<p>The XML True Believers have held that the way forward for the Web is to enforce a strict, well-defined syntax for Web languages, and that to extend or combine languages, a differentiating mechanism called &#8220;namespaces&#8221; would be used.  Namespaces in XML are specified to take the form &#8220;schepers:doug&#8221;.  They declared a do-over on HTML, recasting it in the new XML mold (XHTML), and planned for browsers to be stricter on new content, and for authors to have learned their lessons.</p>
<p>The HTML Young Turks came forward with the observation that no matter how well you define a syntax, people will make mistakes (or not know the right way to do things), and that the way to recover from those mistakes is to define error-handling behavior for each kind of mistake; they also believed that since they could now reconcile older &#8220;broken&#8221; content with new browser behavior, that they were constrained to define behavior that would work in all past browsers, as much as possible, and to degrade gracefully in those that didn&#8217;t.  But this required a more rigid parsing mechanism that doesn&#8217;t work well with extensibility, a problem exacerbated by Internet Explorer&#8217;s idiosyncratic and variable (one might even say spasmotic) behavior regarding the colon (&#8220;:&#8221;), meaning XML Namespaces didn&#8217;t work right.  Also, the colon has a special meaning in CSS, yet another wrinkle.</p>
<p>So, XHTML and SVG are based on the XML model, and the new HTML5 is based on the new-old model.  This difference wasn&#8217;t really much of a problem for SVG, though, because SVG and HTML are two different languages&#8230;</p>
<p>But of course people want to use them together.  (More on that in some other post.)</p>
<p>The obvious way around that is to have two different parsers (a parser is a program that reads a formal syntax and makes a model of it for the browser to act on), and when you encountered SVG inside HTML, you would switch to the stricter parser.  HTML would have its model for naming attributes (with no colon), and SVG would have its attributes (with a colon).</p>
<p>But there&#8217;s a hitch.  ARIA is an accessibility technology meant to work in HTML and XHTML and SVG (and other presentation languages).  The functionality for ARIA is defined in its own specification, but it&#8217;s not intended to be used on its own&#8230; it has to be integrated into a host language.  It would be confusing for authors to have to use two different syntaces for the same functionality in different languages.</p>
<p>For example, in SVG you might have:</p>
<pre>&lt;svg version="1.1"
xmlns="<a class="linkification-ext" title="Linkification: http://www.w3.org/2000/svg" href="http://www.w3.org/2000/svg">http://www.w3.org/2000/svg</a>"
xmlns:xlink="<a class="linkification-ext" title="Linkification: http://www.w3.org/1999/xlink" href="http://www.w3.org/1999/xlink">http://www.w3.org/1999/xlink</a>"
xmlns:xhtml="<a class="linkification-ext" title="Linkification: http://www.w3.org/1999/xhtml" href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>"
xmlns:aaa="<a class="linkification-ext" title="Linkification: http://www.w3.org/2005/07/aaa" href="http://www.w3.org/2005/07/aaa">http://www.w3.org/2005/07/aaa</a>"&gt;

&lt;g xhtml:role="checkbox" aaa:checked="true"&gt;
&lt;rect x="5" y="5" width="20" height="20" rx="5" ry="5"
fill="none" stroke="crimson" stroke-width="2"/&gt;

&lt;text x="30" y="22" font-size="18" fill="crimson"&gt;
Enable Accessibility&lt;/text&gt;
&lt;/g&gt;

&lt;/svg&gt;</pre>
<p>While in HTML, you would have something like:</p>
<pre>&lt;html&gt;
&lt;ul role="checkbox" aria-checked="true"&gt;
&lt;li&gt;Enable Accessibility
&lt;/ul&gt;
&lt;/html&gt;</pre>
<p>Let the drama unfold&#8230;</p>
<p><span id="more-46"></span></p>
<h3>Act I</h3>
<h4>Scene I</h4>
<p>XHTML defined a new point of extensibility, the <a title="XHTML Role Attribute Module" target="_blank" href="http://www.w3.org/TR/xhtml-role/">&#8216;role&#8217; attribute</a>, which was intended to be use to add semantics to an element.</p>
<h4>Scene II</h4>
<p>The WAI Working Group  decided to use that as the point of entry for adding accessibility behaviors to custom controls.  Custom controls are things like an interactive tree selector, or a slider knob; they extend the limited set of form-based controls that browsers settled on, and they are increasingly used in script libraries like dojo or Scriptaculous.  SVG developers have been making custom controls using script and/or declarative animation for many years, since SVG doesn&#8217;t have any native controls at all, but can be used to build visually glitzy ones; they just aren&#8217;t treated as controls by AT (Assistive Technology) apps.  ARIA can be used to tell the AT that a collection of elements is meant to represent a particular type of control, and report what its current state is (on, off, hidden, selected, etc.).  So the SVG WG has been eyeing the progress of the Role and ARIA specs.</p>
<h3>Act II</h3>
<h4>Scene I</h4>
<p>The HTML5 movement, under the banner of the WHATWG, gained critical mass and was brought into the W3C for standardization with all major browser vendors.  The ARIA proponents worked hard to get ARIA&#8217;s accessibility functionality integrated into the standard.  Simon Pieters of Opera and Aaron Leventhal of Mozilla made a <a target="_blank" title="ARIA Proposal for HTML5" href="http://simon.html5.org/specs/aria-proposal">proposal for integration of ARIA</a> using a limited &#8216;role&#8217; attribute.  Because XML Namespaces don&#8217;t work right in IE (and not very intuitively in CSS), it was proposed that the different states of ARIA would be referenced and set in HTML5 using the prefix &#8216;arai-*&#8217; instead of &#8216;aaa:*&#8217; or &#8216;aria:*&#8217;.  I was only vaguely aware of early discussions of &#8216;role&#8217; in HTML5, and despaired of its ever being adopted, knowing the resistance to generic extensibility.  But Simon and Aaron were actively working on getting ARIA integrated into the next releases of Opera and Firefox, to enable accessible Web apps.</p>
<h4>Scene II</h4>
<p>Dave Raggett (who originated forms in HTML) made an independent public request for the &#8216;role&#8217; attribute to be added to SVG; I jumped on this, expecting that it would be done using the built-in extensibility mechanism provided by XML Namespaces.  Much to my dismay, immediately was made aware of Simon and Aaron&#8217;s proposal, which uses different syntax to how it would be done in SVG.  <a target="_blank" title="Role/ARIA email thread 1" href="http://lists.w3.org/Archives/Public/www-svg/2007Oct/0012.html">Much</a> <a target="_blank" title="Role/ARIA email thread 2" href="http://lists.w3.org/Archives/Public/www-svg/2007Oct/0025.html">email</a> <a target="_blank" title="Role/ARIA email thread 3" href="http://lists.w3.org/Archives/Public/www-svg/2007Oct/0046.html">discussion</a> ensued, and a little biting of thumbs.</p>
<h4>Scene III</h4>
<p>I talked with the SVG Working Group about the &#8216;role&#8217; attribute (step one in integrating ARIA), and while there were some reservations, we agreed that it would be great if we could do it.  (Note: really boring issues of process elided here&#8230; assume I explained why it&#8217;s kinda bad timing for SVG right now.)  But we decided to first gather opinions about how best to do so from the SVG community and other interested parties.  But the issue of &#8216;role&#8217; was buried under the talk of whether or not to use the controversial and dreaded Namespaces (e.g. &#8216;aria:checked&#8217; versus &#8216;aria-checked&#8217;).  It&#8217;s undesirable to add arbitrary attributes to SVG, because the content wouldn&#8217;t validate and couldn&#8217;t take advantage of all the XML tools that already exist.  And there are like 70 attributes, so we couldn&#8217;t just adopt them all&#8230; and if we did, what would happen when ARIA v2.0 came out?  Ugh&#8230; messy.  But the HTML5 guys insisted they couldn&#8217;t use namespaces.</p>
<h3>Act III</h3>
<h4>Scene I</h4>
<p>Rich Schwerdtfeger of IBM, who&#8217;s heavily invested in getting ARIA implemented, set up an informal call involving the Dramatis Personae (and a few others who couldn&#8217;t show up).  I talked it over with people on &#8220;my&#8221; side, and reviewed the XML Namespaces specification.  A little reflection revealed to me that, in fact, both approaches were using namespaces&#8230; just the syntax is different (&#8216;aria:*&#8217; versus &#8216;aria-*&#8217;).  And while the Namespaces spec doesn&#8217;t describe any other mechanism than the namespace declaration and prefix, neither does it procribe it.  I saw a possible way out.</p>
<p>The uninformed reader will assume this is some persnickety, trivial detail; such a reader would be right, but it&#8217;s still a pain to coordinate on crap like this.  Everyone assumes they are right, the other guy is wrong, and everyone should just do it their way.</p>
<h4>Scene II</h4>
<p>The <a target="_blank" title="Scribed minutes of informal talk on ARIA in HTML and SVG" href="http://www.w3.org/2007/10/17-aria-minutes.html">teleconference happened today</a>, and arguments were presented, and assumptions were challenged, and a verbal duel took place.  Issues with delimiters in IE and CSS were explained and explored.  The colon was a real problem, but so was the dash.  Making the &#8220;aria-*&#8221; string is a klutzy, short-term, one-off solution, and couldn&#8217;t really cut it as a true namespace prefix.  SVG has many attributes that contain the dash (&#8216;stroke-width&#8217;, &#8216;fill-rule&#8217;, &#8216;font-size&#8217;, &#8216;stroke-dasharray&#8217;, &#8216;fill-opacity&#8217;, &#8216;pointer-events&#8217;, &#8216;font-family&#8217;, &#8216;shape-rendering&#8217;, and many more); it&#8217;s a common convention to separate words in attributes with a dash.  No future (or present) language could safely use &#8216;font-&#8217; or &#8216;shape-&#8217; or any other prefix to integrate with SVG.</p>
<p>But Aaron Leventhal, a very pragmatic guy, pulled out just the medicine I think was needed.  The underscore (&#8220;_&#8221;).  It works in IE, has no special meaning in CSS, is a legal (if underused) character for attributes in XML, doesn&#8217;t cause problems for the HTML parser, and doesn&#8217;t conflict with any conventions in SVG.  It&#8217;s probably underutilized because it&#8217;s just slightly harder to type than a dash (on my keyboard, it&#8217;s the same key, but requires the shift key be depressed).</p>
<p>_!!</p>
<h4>Scene III</h4>
<p>The final scene has been lost in the mists of the future.  But here&#8217;s my plan, if nothing gets in its way:  to create a new namespacing specification that uses the underscore as its prefix delimiter.  It would differ from <a target="_blank" title="Namespaces in XML 1.0 (Second Edition)" href="http://www.w3.org/TR/xml-names/">Namespaces in XML 1.0</a> in three ways:</p>
<ol>
<li>It would make the namespace prefix string fixed.  In XML Namespaces 1.0, any string is allowed to be used for any namespace prefix.  For example, if you were feeling particularly contrary, you could delare that the string &#8220;svg&#8221; is the prefix for XForms content, &#8220;xforms&#8221; is the prefix for MathML content, and &#8220;math&#8221; is the prefix for SVG content; in reality, nobody does this, for obvious reasons.  In my proposal, there would be a central &#8220;registry&#8221; of sorts for the most common prefixes; my suggestion is that such a registry should be defined in the CDF WICD profiles (though I haven&#8217;t consulted that group), and that a User Agent that supports multi-namespace documents (aka Compound Documents) would know what those prefixes stand for.  The most obvious ones are &#8220;svg&#8221;, &#8220;html&#8221;, &#8220;xhtml&#8221;, &#8220;xforms&#8221;, &#8220;mathml&#8221;&#8230; oh, yeah, and &#8220;aria&#8221;.  That this is less inherently extensible than the colon-delimited unfixed prefix might even be a bonus, ensuring that the combination of technologies has been combined systematically and specified, promoting interoperability betweem UAs.  Prefix names would consist only of letters and digits, forgoing the dot and the dash, and of course the colon and underscore; a possible exception that occurs to me is the use of the dot to serve as a versioning convention, so you would have &#8220;aria.2_checked&#8221; to represent an ARIA v2.0 &#8216;checked&#8217; attribute.</li>
<li>As a consequence of #1, there would be no declaration needed or specified.  The supporting UA would simply know the &#8221; name + _&#8221; prefix, and treat it as it should be treated.  This makes copy-paste authoring easier, since authors wouldn&#8217;t have to know or care about the namespace declaration earlier in the scope of the copied content.</li>
<li>This specification would not reserve the underscore, but merely allow supporting implementations to assign special meaning to the combination of &#8221; name + _&#8221;.  This would prevent some problems in existing XML processors.  Languages that register their prefix name would be encouraged to pick something that is unlikely to conflict with other partial attribute or element names.  (I toyed with the idea of making this an extension mechanism for attributes only&#8230; not element names.  I haven&#8217;t thought that through yet, though.)</li>
</ol>
<p>This would be more intuitive for creatinging documents, since authors (and authoring tool) could depend upon a convention.  Supporting XML processors would have a much easier time resolving namespaces.  Languages and UAs could support both namespacing schmemes, if they so chose, to allow for custom or unconventional namespaces that aren&#8217;t registered; the two schemes are orthogonal and (I believe) compatible.</p>
<p>Let the rotten tomatoes fly.</p>
]]></content:encoded>
			<wfw:commentRss>http://schepers.cc/underscoring-accessibility/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Trapped in Tuscany</title>
		<link>http://schepers.cc/trapped-in-tuscany</link>
		<comments>http://schepers.cc/trapped-in-tuscany#comments</comments>
		<pubDate>Thu, 14 Jun 2007 05:49:11 +0000</pubDate>
		<dc:creator>Schepers</dc:creator>
				<category><![CDATA[Real Life]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.schepers.cc/?p=36</guid>
		<description><![CDATA[<br/>Okay, Okay, normally I wouldn&#8217;t complain about having to spend another day in Tuscany&#8230; but I have other plans.   Yesterday I missed my flight, and it had a domino affect that resulted in the worst tangle of travel complications I&#8217;ve ever had.  I&#8217;ve missed flights before &#8211;sometimes my own fault, sometime through circumstances beyond my [...]]]></description>
			<content:encoded><![CDATA[<br/><p>Okay, Okay, normally I wouldn&#8217;t complain about having to spend another day in Tuscany&#8230; but I have other plans.   Yesterday I missed my flight, and it had a domino affect that resulted in the worst tangle of travel complications I&#8217;ve ever had.  I&#8217;ve missed flights before &#8211;sometimes my own fault, sometime through circumstances beyond my control (this time it was a combination&#8230; the taxi took a long time to get to my hotel, and got trapped behind a slow-moving truck on the way in, but I should have budgeted more time in the morning)&#8211; but normally I hop on the next flight and it works out, usually with no fee.</p>
<p>This time was different.</p>
<p>For fare reasons, I had a fairly complicated flight plan, involving a round-trip from RDU to Zurich, and a second round-trip from Zurich to Pisa.  Though they are actually fairly close geographically, there are limited flights out of Pisa, all involving a layover (sometime 12 hours!), and when I missed my flight out of Pisa, there was simply no way of connecting through in time to catch my flight out of Zurich (and there&#8217;s only one of those to the States per day).  So half a day later of figuring out how to get in touch with the 4 airlines involved by payphone and Internet, and several outlandish rebooking fees later, I ended up with tickets the next day&#8230; for most of my trip.  I now get home 2 hours and an additional layover later on an already tight schedule to go on my vacation back to Missouri for my 20th high school reunion.  After flying for 18 hours, I&#8217;m not looking forward to a 15-hour drive nearly as much&#8230;</p>
<p>On the lighter side, a colleague drove me in his luxury sports car to Lucca, a nice little medieval city 25 kilometers away.  We strolled around all evening, talked technology and neurology and such, had a nice dinner and a gelato, and snapped pictures of the town.</p>
<p>This morning I snapped awake at 5:30, long before my wake-up call.  You&#8217;d better believe I&#8217;m making this flight&#8230; which is now boarding&#8230;. Ciao, y&#8217;all.</p>
]]></content:encoded>
			<wfw:commentRss>http://schepers.cc/trapped-in-tuscany/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

