<?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>Inasmuch as...</title>
	<atom:link href="http://inasmuch.as/feed/" rel="self" type="application/rss+xml" />
	<link>http://inasmuch.as</link>
	<description>...Life&#039;s but a walking shadow</description>
	<lastBuildDate>Sun, 13 May 2012 18:35:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>use-when</title>
		<link>http://inasmuch.as/2012/05/13/use-when/</link>
		<comments>http://inasmuch.as/2012/05/13/use-when/#comments</comments>
		<pubDate>Sun, 13 May 2012 18:34:27 +0000</pubDate>
		<dc:creator>tkg</dc:creator>
				<category><![CDATA[XSLT]]></category>

		<guid isPermaLink="false">http://inasmuch.as/?p=1397</guid>
		<description><![CDATA[Inasmuch as use-when is one of the standard attributes in XSLT 2.0 (and later) rather than being on a particular XSLT element, it seldom gets much of a mention; e.g., currently only 568 mentions on the XSL-List according to MarkMail &#8230; <a href="http://inasmuch.as/2012/05/13/use-when/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span style="font-variant: small-caps;">Inasmuch as</span> <code>use-when</code> is one of the <a title="&quot;Standard attributes&quot; in XSLT 2.0" href="http://www.w3.org/TR/xslt20/#standard-attributes">standard attributes</a> in XSLT 2.0 (and later) rather than being on a particular XSLT element, it seldom gets much of a mention; e.g., currently only <a title="'use-when' in XSL-List messages according to MarkMail" href="http://markmail.org/search/?q=use-when+list%3Axsl-list">568 mentions on the XSL-List according to MarkMail</a> (and some of those are false positives).</p>
<p><code>use-when</code> (and <code>xsl:use-when</code> on non-XSLT elements) is for &#8220;<a title="'Conditional element inclusion' in XSLT 2.0" href="http://www.w3.org/TR/xslt20/#conditional-inclusion">conditional element inclusion</a>&#8221; and is very useful for excluding elements that either aren&#8217;t currently useful or that will cause errors if acted upon.  The <code>use-when</code> in the example below causes the <code>xsl:value-of</code> to be used only when <code>saxon:line-number()</code> is available, thereby avoiding the <code>Saxon extension functions are not available under Saxon-HE</code> message from more recent versions of Saxon HE where <code>saxon:line-number()</code> is no longer available but<code></code> producing a useful result on older Saxon HE versions where the function<code></code> is available.</p>
<pre>&lt;!-- Leftover intermediate elements. --&gt;
&lt;xsl:template match="t:*"&gt;
  &lt;xsl:if test="$debug"&gt;
    &lt;xsl:message&gt;
      &lt;xsl:value-of select="t:node-basename(.)" /&gt;
      &lt;xsl:value-of
        <strong>use-when="function-available('saxon:line-number')"</strong>
        select="concat(':', saxon:line-number())"
        xmlns:saxon="http://saxon.sf.net/" /&gt;
      &lt;xsl:text&gt; :: &lt;/xsl:text&gt;
      &lt;xsl:copy-of select="." /&gt;
    &lt;/xsl:message&gt;
  &lt;/xsl:if&gt;
  &lt;xsl:apply-templates /&gt;
&lt;/xsl:template&gt;</pre>
<p>The <code>use-when</code> expression is evaluated very early in the processing of the stylesheet, and you can&#8217;t use variable references in the expression.  So don&#8217;t be tempted to try:</p>
<pre>&lt;xsl:message use-when="$debug"&gt;
...
&lt;/xsl:message&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://inasmuch.as/2012/05/13/use-when/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting started with Wisent</title>
		<link>http://inasmuch.as/2012/04/25/getting-started-with-wisent/</link>
		<comments>http://inasmuch.as/2012/04/25/getting-started-with-wisent/#comments</comments>
		<pubDate>Wed, 25 Apr 2012 22:28:29 +0000</pubDate>
		<dc:creator>tkg</dc:creator>
				<category><![CDATA[Emacs]]></category>

		<guid isPermaLink="false">http://inasmuch.as/?p=1357</guid>
		<description><![CDATA[Inasmuch as I&#8217;d wanted for a long time to have an excuse to write an Emacs mode that uses a Semantic Wisent parser, I recently started writing a new mode for RELAX NG compact syntax files. The mode-in-progress is available &#8230; <a href="http://inasmuch.as/2012/04/25/getting-started-with-wisent/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span style="font-variant: small-caps;">Inasmuch as</span> I&#8217;d wanted for a long time to have an excuse to write an Emacs mode that uses a <a title="Adding a new language to Semantic (or vice-versa)" href="http://cedet.sourceforge.net/addlang.shtml">Semantic Wisent parser</a>, I recently started writing a new mode for <a title="RELAX NG home page" href="http://www.relaxng.org/">RELAX NG</a> compact syntax files. The mode-in-progress is available on GitHub at <a title="nrnc-mode on GitHub" href="https://github.com/tkg/nrnc.git">https://github.com/tkg/nrnc.git</a>, and here&#8217;s my thoughts so far on using Wisent:<span id="more-1357"></span></p>
<ul>
<li><strong>Start from the examples in the documentation</strong> – My first attempt at a top-level production was incorrect and failed to match anything, so nothing matched. I eventually resorted to reusing the entire <code>wisent-graphviz-dot-mode</code> parsing code with one added production for RELAX NG compact syntax <code>namespace</code> declarations and built it up from there until I&#8217;d sufficiently got the hang of the productions to remove the remaining <code>wisent-graphviz-dot-mode</code> training wheels and go it alone.</li>
<li><strong>Make sure your syntax table is correct</strong> – The mode was initially based on <a title="rnc-mode download page" href="http://www.pantor.com/download.html"><code>rnc-mode</code></a> by David Rosenberg of Pantor Engineering AB and used the syntax table defined in it. At one point when things weren&#8217;t working, I remembered that the <code>wisent-graphviz-dot-mode</code> code that I&#8217;d been using as an example included a comment about needing to modify the syntax table of <code>graphviz-dot-mode</code>. Sure enough, <code>rnc-mode</code> was missing a syntax-table entry that was needed for Semantic parsing of <code>.rnc</code> files. And just today I had to set the &#8220;<code>?</code>&#8221; character as a symbol character to get one more part working properly.</li>
<li><strong>Use the debug functions</strong> – Forgive me for restating the very, very obvious, but you will find these useful. For example, `<code>semantic-show-unmatched-syntax-mode</code>&#8216; is useful, though initially disheartening, for showing which parts of the file are not being matched by displaying a red line under the unmatched parts. Occasionally, you may also note the absence of the red line under parts that you don&#8217;t expect to be matched yet.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://inasmuch.as/2012/04/25/getting-started-with-wisent/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>&#8220;that error-handling be completely deterministic&#8221;</title>
		<link>http://inasmuch.as/2012/04/16/error-handling/</link>
		<comments>http://inasmuch.as/2012/04/16/error-handling/#comments</comments>
		<pubDate>Sun, 15 Apr 2012 23:22:39 +0000</pubDate>
		<dc:creator>tkg</dc:creator>
				<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://inasmuch.as/?p=1263</guid>
		<description><![CDATA[Inasmuch as, back in January, I was teaching another XML course, I reviewed the basis for draconian error handling in XML in light of the sea change in recent years towards HTML5-style completely-defined error recovery. At the time of the &#8230; <a href="http://inasmuch.as/2012/04/16/error-handling/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span style="font-variant: small-caps;">Inasmuch as</span>, back in January, I was teaching another XML course, I reviewed the basis for draconian error handling in XML in light of the sea change in recent years towards HTML5-style completely-defined error recovery.</p>
<p>At the time of the draconian error handling decision, I was on the larger &#8220;W3C SGML Working Group&#8221; mailing list that provided input, clamour, and distraction to the core &#8220;W3C SGML Editorial Review Board&#8221; that did the work and made the decisions on the road to XML.  I followed the discussions on the mailing list at the time (as much as humanly possible), and the message about this that stuck in my mind is the &#8220;<a title="ERB votes on error handling" href="http://lists.w3.org/Archives/Public/w3c-sgml-wg/1997May/0079.html">ERB votes on error handling</a>&#8221; message from Tim Bray on behalf of the ERB, particularly this section:</p>
<blockquote><p>2. We have a strong political reality to deal with here in that for the first time, the big browser manufacturers have noticed XML and have together made a strong request: that error-handling be completely deterministic, and that browsers not compete on the basis of excellence in handling mangled documents.  It was observed that if they wanted to do this, they could just do it; but then pointed out that this is exactly why standards exist &#8211; to codify the desired practices shared between competitors.  In any case, if we want XML to succeed on the Web, it will be difficult to throw the first serious request from M &amp; N back in their face.</p></blockquote>
<p><span id="more-1263"></span></p>
<p>The connection that I, and possibly many others, at the time saw between this summary, at twice remove, of browser vendors asking &#8220;that error-handling be completely deterministic&#8221; and XML using draconian error handling may not have been much of a connection at all.  Okay, if you apply hindsight as of now, there never was any connection, but if you were/are of the mindset that:</p>
<ul>
<li>Well-formed XML doesn&#8217;t come with rules about what elements, etc., are allowed and not-allowed in different places so in the general case you can&#8217;t &#8220;just fix&#8221; a broken document so it now makes sense;</li>
<li>There are (or, in 1997, were to be) XML applications where &#8220;keep calm and carry on&#8221; after receiving a document with an error isn&#8217;t an option; and</li>
<li>The <a title="XML design goals" href="http://www.w3.org/TR/xml/#sec-origin-goals">design goal</a> of XML that &#8220;The number of optional features in XML is to be kept to the absolute minimum, ideally zero.&#8221; rules out including optional error recovery in the XML spec</li>
</ul>
<p>then draconian error handling looks like the best/only alternative for XML.  And binary yes/no error handling certainly is completely deterministic even if it may not have been exactly what the browser vendors had in mind at the time.</p>
<p>The question whether draconian error handling is a good idea still comes up today.  (In XML circles, anyway; in HTML circles, they&#8217;ve voted with their feet/keyboards and gone for the <a title="&quot;Parsing algorithm should not preclude Complex Ruby&quot; bug report" href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=13113">almost too completely defined</a> error handling of HTML 5.)  It came up again at <a title="XML Prague 2012" href="http://www.xmlprague.cz/2012/index.html">XML Prague 2012</a>, where the circles overlapped briefly when Anne van Kesteren presented &#8220;<a title="&quot;What XML can learn from HTML; also known as XML5&quot; @ XML Prague 2012" href="http://www.xmlprague.cz/2012/sessions.html#What-XML-can-learn-from-HTML-also-known-as-XML5">What XML can learn from HTML; also known as XML5</a>&#8221; and, as Eric van der Vlist notes in his <a title="&quot;XML Prague 2012: The web would be so cool without the web developers&quot; by Eric van der Vlist" href="http://eric.van-der-vlist.com/blog/2012/02/15/xml-prague-2012-the-web-would-be-so-cool-without-the-web-developers/">blog</a>, in the panel discussion that followed.  The question still has no universally accepted answer: for instance, Eric in his post describes as irrational that others wouldn&#8217;t even discuss changing well-formedness requirements, and these two successive posts to the XML-ER list, by <a title="Message by David Carlisle" href="http://lists.w3.org/Archives/Public/public-xml-er/2012Feb/0120.html">David Carlisle</a> and <a title="Message by David Lee" href="http://lists.w3.org/Archives/Public/public-xml-er/2012Feb/0123.html">David Lee</a>, take diametrically opposite views about error recovery.</p>
<p>IMO, it&#8217;s too late to change the definition of well-formedness for XML 1.0, and the inroads that XML 1.1 hasn&#8217;t made illustrates the likely success of anything labelled XML 1.2 or even XML 2.0.  Enter the <a title="XML Error Recovery Community Group page" href="http://www.w3.org/community/xml-er/">XML Error Recovery Community Group</a> (XML-ER).  Set up in record time mid-conference at XML Prague 2012, its goal is to define a deterministic error-recovery mechanism for XML such that parsing well-formed XML 1.0 with a XML-ER processor (if that&#8217;s what it&#8217;s eventually called) produces the same result as parsing with a XML 1.0 processor and parsing non-well-formed XML (which, strictly speaking, by not being well-formed isn&#8217;t XML at all) produces what looks like the result of parsing well-formed XML with a XML 1.0 processor, where the fix-ups from non-well-formed to well-formed will be the same in every XML-ER processor.</p>
<p>Where XML-ER finds it&#8217;s place in the XML stack is a bit up in the air at present – since few people would want to parse with a XML 1.0 processor then fall back to a XML-ER processor only if it failed yet there are aspects of XML 1.0 parsing, such as reading and using any DTD, that won&#8217;t be handled by a XML-ER processor – but it is the current best effort for moving to deterministic error-handling that is more than a binary yes/no.</p>
]]></content:encoded>
			<wfw:commentRss>http://inasmuch.as/2012/04/16/error-handling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Khmer pagination</title>
		<link>http://inasmuch.as/2012/03/22/khmer-pagination/</link>
		<comments>http://inasmuch.as/2012/03/22/khmer-pagination/#comments</comments>
		<pubDate>Thu, 22 Mar 2012 15:32:35 +0000</pubDate>
		<dc:creator>tkg</dc:creator>
				<category><![CDATA[I18n]]></category>
		<category><![CDATA[XSL-FO]]></category>

		<guid isPermaLink="false">http://inasmuch.as/?p=1316</guid>
		<description><![CDATA[Inasmuch as Khmer – more specifically, my lack of knowledge about how to best format Khmer – made up a slide in my &#8220;XSL-FO meets the Tower of Babel&#8221; talk at the MultilingualWeb workshop in Luxembourg last week, Richard Ishida directed &#8230; <a href="http://inasmuch.as/2012/03/22/khmer-pagination/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span style="font-variant: small-caps;">Inasmuch as</span> Khmer – more specifically, my lack of knowledge about how to best format Khmer – made up a slide in my &#8220;<a title="&quot;XSL-FO meets the Tower of Babel&quot; slides" href="http://www.mentea.net/resources.html#multilingualweb2012">XSL-FO meets the Tower of Babel</a>&#8221; talk at the <a title="MultilingualWeb workshop programme" href="http://www.multilingualweb.eu/documents/luxembourg-workshop/luxembourg-program">MultilingualWeb workshop in Luxembourg</a> last week, Richard Ishida directed me to his page about <a title="Khmer script notes by Richard Ishida" href="http://rishida.net/scripts/khmer/">Khmer</a>, from which I found Franklin Huffman&#8217;s &#8220;<a title="Cambodian System of Writing" href="http://www.pratyeka.org/csw/hlp-csw.pdf">Cambodian System of Writing</a>&#8220;, and in the 153-page book, I found half a page on page numbering and section numbering in Khmer.<span id="more-1316"></span></p>
<p>The intent of my talk – after the <a title="In the beginning, there was the page…" href="http://inasmuch.as/2011/10/21/in-the-beginning/">amusing introduction</a>, the pep-talk about XSL-FO being good at multilingual layout, and the public displays of ignorance – was to make the case for <a title="Japanese Layout Task Force" href="http://www.w3.org/2007/02/japanese-layout/">additional</a> W3C Layout Task Forces and/or for a Multilingual Layout <a title="Community Groups home page" href="http://www.w3.org/community/">Community Group</a> at the W3C, where any Task Force(s) could do the heavy lifting for specific languages or scripts and any community group&#8217;s wiki could accrete information about lesser-known traditions.  Sadly, to me at least, the only expressions of support that I got for either idea were from Richard Ishida and Felix Sasaki, but then they&#8217;re also the current and previous chairs of the <a title="Japanese Layout Task Force" href="http://www.w3.org/2007/02/japanese-layout/">Japanese Layout Task Force</a>.</p>
<p>Since Richard&#8217;s page, Daniels and Bright&#8217;s &#8220;The World&#8217;s Writing Systems&#8221;, and the Unicode Standard Version 5.0 (being about plain text, as it is) all cover the Khmer script without mentioning even the few layout details in the book, and since there&#8217;s no W3C community group to collect this sort of information, and since my talk included three slides of &#8220;What I know about&#8230;&#8221; for three Ruby traditions, here&#8217;s &#8220;What I know about Khmer pagination&#8221;:</p>
<p style="text-align: center;"><a href="http://inasmuch.as/wp-content/uploads/2012/03/khmer-pagination.png"><img class="aligncenter  wp-image-1318" style="border: 1px solid black;" title="Khmer pagination" src="http://inasmuch.as/wp-content/uploads/2012/03/khmer-pagination.png" alt="" width="721" height="598" /></a></p>
<p>Image from page 63 of Franklin Huffman&#8217;s &#8220;<a title="Cambodian System of Writing" href="http://www.pratyeka.org/csw/hlp-csw.pdf">Cambodian System of Writing</a>&#8220;. Book placed in the public domain in 1975.</p>
]]></content:encoded>
			<wfw:commentRss>http://inasmuch.as/2012/03/22/khmer-pagination/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Flymake for RELAX NG compact syntax</title>
		<link>http://inasmuch.as/2012/02/22/flymake-for-relax-ng-compact-syntax/</link>
		<comments>http://inasmuch.as/2012/02/22/flymake-for-relax-ng-compact-syntax/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 13:11:27 +0000</pubDate>
		<dc:creator>tkg</dc:creator>
				<category><![CDATA[Emacs]]></category>
		<category><![CDATA[RELAX NG]]></category>

		<guid isPermaLink="false">http://inasmuch.as/?p=1285</guid>
		<description><![CDATA[Inasmuch as the Wisent parsing and other CEDET/Speedbar/Semantic goodness for RELAX NG compact syntax files that I&#8217;m currently working on may not be ready for prime time for a while, here&#8217;s something to add to your .emacs so `flymake' runs &#8230; <a href="http://inasmuch.as/2012/02/22/flymake-for-relax-ng-compact-syntax/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span style="font-variant: small-caps;">Inasmuch as</span> the Wisent parsing and other CEDET/Speedbar/Semantic goodness for RELAX NG compact syntax files that I&#8217;m currently working on may not be ready for prime time for a while, here&#8217;s something to add to your <code>.emacs</code> so <code>`flymake'</code> runs Jing in the background to find syntax errors in your RELAX NG compact syntax files:</p>
<pre>(require 'flymake)
(defun flymake-rnc-init ()
  (let* ((temp-file (flymake-init-create-temp-buffer-copy
		     'flymake-create-temp-inplace))
     	 (local-file (file-relative-name
		      temp-file
		      (file-name-directory buffer-file-name))))
    (list "jing" (list "-c" local-file))))
(add-to-list 'flymake-allowed-file-name-masks
      '(".+\\.rnc$"
	flymake-rnc-init
	flymake-simple-cleanup
	flymake-get-real-file-name))
(add-hook 'rnc-mode-hook
	  'flymake-mode)</pre>
]]></content:encoded>
			<wfw:commentRss>http://inasmuch.as/2012/02/22/flymake-for-relax-ng-compact-syntax/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>MultilingualWeb Workshop, Luxembourg</title>
		<link>http://inasmuch.as/2012/02/21/multilingual-web-workshop-luxembourg/</link>
		<comments>http://inasmuch.as/2012/02/21/multilingual-web-workshop-luxembourg/#comments</comments>
		<pubDate>Tue, 21 Feb 2012 12:59:01 +0000</pubDate>
		<dc:creator>tkg</dc:creator>
				<category><![CDATA[I18n]]></category>
		<category><![CDATA[XSL-FO]]></category>

		<guid isPermaLink="false">http://inasmuch.as/?p=1257</guid>
		<description><![CDATA[Inasmuch as I couldn&#8217;t attend the Limerick MultilingualWeb workshop last year, I&#8217;m doubly pleased to be presenting at the Luxembourg workshop on 15–16 March 2012 with a talk titled &#8220;XSL-FO meets the Tower of Babel&#8221;: XSL Formatting Objects (XSL-FO) from &#8230; <a href="http://inasmuch.as/2012/02/21/multilingual-web-workshop-luxembourg/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span style="font-variant: small-caps;">Inasmuch as</span> I couldn&#8217;t attend the <a title="A Local Focus for the Multilingual Web, 21-22 September 2011, Limerick, Ireland" href="http://www.multilingualweb.eu/documents/limerick-workshop/limerick-program">Limerick MultilingualWeb workshop</a> last year, I&#8217;m doubly pleased to be presenting at the <a title="The Multilingual Web – The Way Ahead, 15-16 March 2012, Luxembourg" href="http://www.multilingualweb.eu/documents/luxembourg-workshop/luxembourg-program">Luxembourg workshop</a> on 15–16 March 2012 with a talk titled &#8220;XSL-FO meets the Tower of Babel&#8221;:<span id="more-1257"></span></p>
<blockquote><p>XSL Formatting Objects (XSL-FO) from the W3C is an XML vocabulary for specifying formatting semantics. While it shares many properties with CSS, it is most frequently used with paged media, such as formatting XML documents as PDF. XSL-FO 2.0 is currently under development, and one of its top-level requirements is for further improved non-Western language support. However, the requirement for improved support in XSL-FO 2.0 is actually less specific than the 1998 requirements for XSL 1.0 since we recognised that we didn&#8217;t have the knowledge and expertise to match our ambitions. For that, we would need more help &#8212; either from individual experts or from the W3C forming more task forces along the lines of the Japanese Layout Task Force to capture and distill expertise for use by all of the W3C and beyond.</p></blockquote>
<p>XSL-FO does quite well at &#8220;big picture&#8221; multilingualism, with support for the Unicode Bidirectional Algorithm, multiple writing modes, and multiple text directions being there from the start and with property names being &#8220;writing-mode neutral&#8221; – such as preferring property names with &#8220;-before&#8221;, &#8220;-after&#8221;, &#8220;-start&#8221;, and &#8220;-end&#8221; rather than &#8220;-top&#8221;, &#8220;-bottom&#8221;, &#8220;-left&#8221;, and &#8220;-right&#8221; – but the &#8220;small picture&#8221; of getting the details right for individual languages and scripts has mostly been out of reach because the Working Group (under its various names) has not had the necessary knowledge to get all of it right.</p>
<p>If you print out the &#8220;<a title="&quot;Internationalization&quot; section of &quot;XSL Requirements Summary&quot;" href="http://www.w3.org/TR/WD-XSLReq#AEN316">Internationalization</a>&#8221; section of the &#8220;<a title="XSL Requirements Summary" href="http://www.w3.org/TR/WD-XSLReq">XSL Requirements Summary</a>&#8221; (produced before XSL 1.0 but explicitly not for any target version), it&#8217;s about 10 pages.  You might be tempted to discount that by noting that requirements for Western European and related languages takes about four pages, but even six or so pages is a lot more, and a lot more specific, than the corresponding <a title="&quot;Further improved non-Western language support&quot; section" href="http://www.w3.org/TR/xslfo20-req/#N66934">section</a> from &#8220;<a title="Extensible Stylesheet Language (XSL) Requirements Version 2.0" href="http://www.w3.org/TR/xslfo20-req/">Extensible Stylesheet Language (XSL) Requirements Version 2.0</a>&#8220;:</p>
<blockquote>
<h2>6 Further improved non-Western language support</h2>
<p>Improve support for non-Western languages, such as Mongolian, Indic languages, Thai, Japanese, Chinese, etc. The working group invites language experts to identify language specific features that are currently not yet supported by XSL.</p>
<p>Specifically, the <a href="http://www.w3.org/2007/02/japanese-layout/">Japanese Layout Taskforce</a> is creating a document about requirements for general Japanese layout realized with technologies like CSS, SVG and XSL-FO. The document is currently in draft stage and is being developed further by the Japanese participants in the task force. This document will be an input to the XSL working group as a source of requirements.</p></blockquote>
<p>But as I state in the abstract for the Multilingual Web workshop, this isn&#8217;t because we don&#8217;t want to do better at non-Western languages in XSL-FO 2.0, it&#8217;s because we recognised that we need more outside help to fulfil our ambitions.  It may just be that the MultilingualWeb workshop could be the start of a way to get some of that help.</p>
]]></content:encoded>
			<wfw:commentRss>http://inasmuch.as/2012/02/21/multilingual-web-workshop-luxembourg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Schematron Testing Framework poster</title>
		<link>http://inasmuch.as/2012/02/20/schematron-testing-framework-poster/</link>
		<comments>http://inasmuch.as/2012/02/20/schematron-testing-framework-poster/#comments</comments>
		<pubDate>Mon, 20 Feb 2012 11:42:10 +0000</pubDate>
		<dc:creator>tkg</dc:creator>
				<category><![CDATA[Schematron]]></category>

		<guid isPermaLink="false">http://inasmuch.as/?p=1265</guid>
		<description><![CDATA[Inasmuch as it exists as a PDF file, you, too, can have your own copy of my &#8220;Schematron Testing Framework&#8221; (stf) poster from XML Prague 2012.  I&#8217;m happy to say that I received constructive comments about stf from people at &#8230; <a href="http://inasmuch.as/2012/02/20/schematron-testing-framework-poster/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span style="font-variant: small-caps;">Inasmuch as</span> it exists as a PDF file, you, too, can have your own copy of my &#8220;<a title="stf on GitHub" href="https://github.com/MenteaXML/stf">Schematron Testing Framework</a>&#8221; (<code>stf</code>) <a title="&quot;Schematron Testing Framework&quot; poster from XML Prague 2012" href="http://www.mentea.net/resources.html#XMLPrague2012">poster</a> from <a title="XML Prague 2012 website" href="http://www.xmlprague.cz/2012/index.html">XML Prague 2012</a>.  I&#8217;m happy to say that I received constructive comments about <code>stf</code> from people at XML Prague 2012 who read the poster, and I&#8217;ll be looking at incorporating the feedback in the near future.</p>
<p>One suggestion, from George Bina, was to make a single &#8220;framework&#8221; file for running the tests – and including the test files in the framework file either directly or by using XInclude to refer to external test files – rather than the current decentralised approach.  A single framework file would make it easier to make a report of the results, unlike the the current approach where the idea is that the only report you really want to see is &#8220;<code>&lt;errors/&gt;</code>&#8221; when there are no more errors.  A single framework file could also become very large and hard to navigate when there&#8217;s lots of very similar tests in it.  What do you think?</p>
]]></content:encoded>
			<wfw:commentRss>http://inasmuch.as/2012/02/20/schematron-testing-framework-poster/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New XSL-FO 2.0 Working Draft</title>
		<link>http://inasmuch.as/2012/01/30/new-xsl-fo-2-0-working-draft-2/</link>
		<comments>http://inasmuch.as/2012/01/30/new-xsl-fo-2-0-working-draft-2/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 13:16:19 +0000</pubDate>
		<dc:creator>tkg</dc:creator>
				<category><![CDATA[XSL-FO]]></category>

		<guid isPermaLink="false">http://inasmuch.as/?p=1247</guid>
		<description><![CDATA[Inasmuch as there&#8217;s work been done, there&#8217;s a new XSL FO 2.0 Working Draft at http://www.w3.org/TR/xslfo20/.  This version adds Ruby, numbering, and side-by-side formatting.]]></description>
			<content:encoded><![CDATA[<p><span style="font-variant: small-caps;">Inasmuch as</span> there&#8217;s work been done, there&#8217;s a new XSL FO 2.0 Working Draft at <a title="XSL FO 2.0 Working Draft" href="http://www.w3.org/TR/xslfo20/">http://www.w3.org/TR/xslfo20/</a>.  This version adds Ruby, numbering, and side-by-side formatting.</p>
]]></content:encoded>
			<wfw:commentRss>http://inasmuch.as/2012/01/30/new-xsl-fo-2-0-working-draft-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fujitsu P1630 Drive Replacement</title>
		<link>http://inasmuch.as/2012/01/30/p1630-drive-replacement/</link>
		<comments>http://inasmuch.as/2012/01/30/p1630-drive-replacement/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 13:00:00 +0000</pubDate>
		<dc:creator>tkg</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://inasmuch.as/?p=1230</guid>
		<description><![CDATA[Inasmuch as there&#8217;s nothing quite like the warranty expiring to turn a person&#8217;s thoughts to tinkering with the insides of their computer, I recently upgraded the 1.8-inch solid-state drive of my Fujitsu P1630. This procedure worked for me.  There is &#8230; <a href="http://inasmuch.as/2012/01/30/p1630-drive-replacement/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span style="font-variant: small-caps;">Inasmuch as</span> there&#8217;s nothing quite like the warranty expiring to turn a person&#8217;s thoughts to tinkering with the insides of their computer, I recently upgraded the 1.8-inch solid-state drive of my Fujitsu P1630.<span id="more-1230"></span></p>
<blockquote><p>This procedure worked for me.  There is no guarantee that it would work for you, and you use these instructions solely at your own risk.  As always, back-up your data and remove the battery before fiddling with the insides of your computer.</p></blockquote>
<p>The underside of the P1630, with battery removed, is shown below:</p>
<p><a href="http://inasmuch.as/wp-content/uploads/2012/01/p1630-underside.png"><img class="aligncenter size-full wp-image-1232" title="P1630 underside" src="http://inasmuch.as/wp-content/uploads/2012/01/p1630-underside.png" alt="" width="570" height="416" /></a>The drive bay with the cover removed is shown below. The drive is covered by a plastic sheet, and it&#8217;s the four foam-rubber pads at the edges of the sheet that holds the drive in place.</p>
<p><a href="http://inasmuch.as/wp-content/uploads/2012/01/p1630-drive-cover-removed.png"><img class="aligncenter size-full wp-image-1234" title="P1630 with drive bay cover removed" src="http://inasmuch.as/wp-content/uploads/2012/01/p1630-drive-cover-removed.png" alt="" width="570" height="466" /></a>Every muscle, every sinew, every fibre of your being will scream that it isn&#8217;t so, but you just need to lever up the disk drive to be able to take it out (taking care not to damage the flat cable connecting to the drive):</p>
<p><a href="http://inasmuch.as/wp-content/uploads/2012/01/p1630-drive-half-removed.png"><img class="aligncenter size-full wp-image-1235" title="P1630 with drive half removed" src="http://inasmuch.as/wp-content/uploads/2012/01/p1630-drive-half-removed.png" alt="" width="570" height="387" /></a>After you disconnect the flat cable from the drive (another moment where you wonder exactly how much force will be &#8220;enough&#8221; force), you can take the plastic/foam-rubber combo off the old drive, put it on the new drive, and do the reverse procedure to reassemble the P1630 with the new drive.</p>
<p><a href="http://inasmuch.as/wp-content/uploads/2012/01/p1630-drive-plastic-cover.png"><img class="aligncenter size-full wp-image-1236" title="P1630 drive and plastic cover" src="http://inasmuch.as/wp-content/uploads/2012/01/p1630-drive-plastic-cover.png" alt="" width="570" height="368" /></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://inasmuch.as/2012/01/30/p1630-drive-replacement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>imenu-generic-expression</title>
		<link>http://inasmuch.as/2012/01/13/imenu-generic-expression/</link>
		<comments>http://inasmuch.as/2012/01/13/imenu-generic-expression/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 11:27:30 +0000</pubDate>
		<dc:creator>tkg</dc:creator>
				<category><![CDATA[Emacs]]></category>
		<category><![CDATA[RELAX NG]]></category>

		<guid isPermaLink="false">http://inasmuch.as/?p=1207</guid>
		<description><![CDATA[Inasmuch as `imenu-generic-expression` makes using Emacs&#8217; &#8220;Imenu&#8221; simpler, it&#8217;s this triennial&#8217;s &#8220;Obscure Emacs variable of the week&#8220;. Emacs&#8217; &#8220;Imenu&#8221; feature puts in the menu-bar a menu whose each menu item (or sub-menu item) jumps you to a location in the &#8230; <a href="http://inasmuch.as/2012/01/13/imenu-generic-expression/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span style="font-variant: small-caps;">Inasmuch as</span> <code>`imenu-generic-expression`</code> makes using Emacs&#8217; &#8220;Imenu&#8221; simpler, it&#8217;s this triennial&#8217;s &#8220;<a title="Obscure Emacs variable of the week" href="http://inasmuch.as/2009/02/06/obscure-emacs-variable-of-the-week/">Obscure Emacs variable of the week</a>&#8220;.<br />
<span id="more-1207"></span></p>
<p>Emacs&#8217; &#8220;Imenu&#8221; feature puts in the menu-bar a menu whose each menu item (or sub-menu item) jumps you to a location in the current buffer.  Emacs being Emacs, Imenu is highly configurable, and quite often an Emacs mode will set up the Imenu menu to point to locations in the buffer that are significant for that mode/file-type.  For example, my <a href="https://sourceforge.net/apps/trac/xslide/wiki/WikiStart" title="'xslide' XSL mode for Emacs at SourceForge">xslide</a> and <a href="http://www.menteith.com/wiki/tdtd" title="'tdtd' Emacs mode for DTDs">tdtd</a> modes each set up very different Imenu menus.</p>
<p><code>`imenu-generic-expression`</code> is a variable that, at its simplest, contains a list of three-item lists that each specify a menu title, a regular expression, and the number corresponding to the subexpression of the regular expression to use as the resulting menu item&#8217;s name.  When <code>`imenu-generic-expression`</code> is set and the Imenu menu bar item is enabled (using <code>`imenu-add-to-menubar`</code>, naturally), Emacs constructs a buffer index by searching the buffer using each of the regular expressions in turn and then builds up the menu based on the matches found.</p>
<p>For example, here&#8217;s the <code>`rnc-mode-hook'</code> that I use to add a &#8220;RNC&#8221; menu when using <code>`rnc-mode'</code> to edit RELAX NG compact syntax (RNC) files.  The hook sets <code>`imenu-generic-expression`</code> with patterns that match significant declarations in a RNC file (with separate sub-menus for <code>include</code>, <code>namespace</code>, and <code>datatypes</code> declaration types) then enables Imenu with <code>`imenu-add-to-menubar`</code>.  A screenshot of the resulting menu is action is shown after the code.</p>
<pre>(require 'rnc-mode)
(add-hook 'rnc-mode-hook
 (lambda ()
   (set-variable
    'imenu-generic-expression
    (list
     (list
      nil
      "^\\([a-zA-Z][-a-zA-Z0-9._]*\\)\\s-*[&amp;|]?=" 1)
     (list
      "include"
      "^include\\s-+['\"]\\([a-zA-Z][-a-zA-Z0-9._]*\\)['\"]" 1)
     (list
      "namespace"
      "^\\(default\\s-+\\)?namespace\\s-+\\([a-zA-Z][-a-zA-Z0-9._]*\\)\\s-*=" 2)
     (list
      "dataypes"
      "^datatypes\\s-+\\([a-zA-Z][-a-zA-Z0-9._]*\\)\\s-*=" 1)))
   (imenu-add-to-menubar "RNC")))
</pre>
<p><a href="http://inasmuch.as/wp-content/uploads/2012/01/imenu-generic-expression.png"><img src="http://inasmuch.as/wp-content/uploads/2012/01/imenu-generic-expression.png" alt="" title="&#039;RNC&#039; Imenu menu" width="765" height="705" class="aligncenter size-full wp-image-1217" /></a></p>
<p>The only downside to using <code>`imenu-add-to-menubar`</code> compared to doing more of it yourself is that <code>`imenu-add-to-menubar`</code> doesn&#8217;t provide a way to sort the menu items, so the order of the matches in the file is the order of the items in the menu or sub-menu.  I wrote both xslide and tdtd before I knew of <code>`imenu-add-to-menubar`</code>, but the recently revived <a href="http://inasmuch.as/2011/10/21/xslide-alive/" title="xslide alive!">xslide for XSLT 2.0</a> still uses a custom function to make the Imenu index because I also like to sort the index entries alphabetically within each menu or sub-menu.</p>
]]></content:encoded>
			<wfw:commentRss>http://inasmuch.as/2012/01/13/imenu-generic-expression/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

