<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Rob Weir: An Antic Disposition</title>
	
	<link>http://www.robweir.com/blog</link>
	<description>Thinking the unthinkable, pondering the imponderable, effing the ineffable and scruting the inscrutable</description>
	<lastBuildDate>Tue, 09 Mar 2010 02:33:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/us/</creativeCommons:license>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/robweir/antic-atom" /><feedburner:info uri="robweir/antic-atom" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>42.592086</geo:lat><geo:long>-71.437547</geo:long><item>
		<title>The New &amp; Improved Microsoft Shuffle</title>
		<link>http://feedproxy.google.com/~r/robweir/antic-atom/~3/WcBTUQ8AVEk/new-microsoft-shuffle.html</link>
		<comments>http://www.robweir.com/blog/2010/03/new-microsoft-shuffle.html#comments</comments>
		<pubDate>Sat, 06 Mar 2010 19:48:28 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://www.robweir.com/blog/?p=813</guid>
		<description><![CDATA[A quick update on my post from last week on the &#8220;Microsoft Shuffle&#8220;, where I looked at how Microsoft&#8217;s &#8220;random&#8221; browser ballot was far from random.
First, I&#8217;d like to thanks those who commented on that post, or sent me notes, offering additional analysis.  I think we nailed this one.  Within a few days [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>A quick update on my post from last week on the &#8220;<a href="http://www.robweir.com/blog/2010/02/microsoft-random-browser-ballot.html">Microsoft Shuffle</a>&#8220;, where I looked at how Microsoft&#8217;s &#8220;random&#8221; browser ballot was far from random.</p>
<p>First, I&#8217;d like to thanks those who commented on that post, or sent me notes, offering additional analysis.  I think we nailed this one.  Within a few days of my report Microsoft updated their Javascript on the <a href="http://www.browserchoice.eu">browserchoice.eu</a> website, fixing the error.  But more on that in a minute.</p>
<h3>Some random observations</h3>
<p>Several commenters mentioned that if you search Google for &#8220;javascript random array sort&#8221; the first link returned will be a Javascript tutorial that has the same offending code as Microsoft&#8217;s algorithm.  This is not surprising.  As I said in my original post, this is a well-known mistake. But it is no less a mistake.  If you use Google Code Search for the query <a href="http://www.google.com/codesearch?hl=en&amp;sa=N&amp;filter=0&amp;q=%220.5+-+Math.random%28%29%22++lang:javascript&amp;ct=rr&amp;cs_r=lang:javascript">&#8220;0.5 &#8211; Math.random()&#8221; lang:javascript</a> you will find 50 or so other instances of the faulty algorithm.  So if anyone else is using this same algorithm, they should evaluate whether it is really sufficiently random for their needs.  In some case, such as a children&#8217;s game, it might be fine.  But know that there are better and faster algorithms available that are not much more complicated to code.</p>
<p>Another thing to note is that the Microsoft Shuffle algorithm is bad enough with 5-elements in the array, but the non-randomness gets more pronounced as you increase the length of the array.  Regardless of the size of the array, it appears that on Internet Explorer the 1st element will end up in last place 50% of the time.  There are other pronounced patterns as well.  You can see this yourself this <a href="http://www.robweir.com/blog/attachments/shuffle/shuffle-variable.html">this test file</a>, which allows you to specify the size of the array as well as the number of iterations.  Try a 50-element array for 10,000 iterations to get a good sense of how non-random the results can be.</p>
<p>I used that script to run a large test of 1,000,000 iterations of a 1024-element array. The raw results are <a href="http://www.robweir.com/blog/attachments/shuffle/ms-million-ie.txt">here</a>.  I took that table, and using R&#8217;s image() function produced a rendering of that matrix.  You can see here the clear over-representation at some positions, including (in the lower left) the flip of the first position to last place.   (I&#8217;m not quite satisfied with this rendering.  Maybe someone can get a better-looking visualization of this same data.)</p>
<p><img class="alignnone" title="Distribution of positions" src="http://www.robweir.com/blog/attachments/shuffle/heatmap.png" alt="" width="570" height="516" /></p>
<h3>Evaluating Microsoft&#8217;s new shuffle</h3>
<p>Sometime last week &#8212; I don&#8217;t know the exact date &#8212; Microsoft updated the code for the browser choice website with a new random shuffle algorithm.  You see see the code, in situ, <a href="http://www.browserchoice.eu/resources/scripts/page.js">here</a>.  The core of it is in this function:</p>
<pre>function ArrayShuffle(a)
{
    var d, c, b=a.length;
    while(b)
    {
        c=Math.floor(Math.random()*b);
        d=a[--b];
        a[b]=a[c];
        a[c]=d
    }
}
</pre>
<p>This looks fine to me.  I created a new test driver for this routine, which you can try out <a href="http://www.robweir.com/blog/attachments/shuffle/shuffle-new.html">here</a>.  Aside from being much faster, it is gives much better results.  Here is a run with a million iterations:</p>
<h4>Raw counts</h4>
<table border="1">
<tbody>
<tr>
<th>Position</th>
<th>I.E.</th>
<th>Firefox</th>
<th>Opera</th>
<th>Chrome</th>
<th>Safari</th>
</tr>
<tr>
<td>1</td>
<td>199988</td>
<td>200754</td>
<td>199944</td>
<td>199431</td>
<td>199883</td>
</tr>
<tr>
<td>2</td>
<td>200320</td>
<td>200016</td>
<td>199838</td>
<td>199752</td>
<td>200074</td>
</tr>
<tr>
<td>3</td>
<td>199702</td>
<td>199680</td>
<td>199911</td>
<td>200865</td>
<td>199842</td>
</tr>
<tr>
<td>4</td>
<td>200408</td>
<td>200286</td>
<td>199740</td>
<td>199861</td>
<td>199705</td>
</tr>
<tr>
<td>5</td>
<td>199582</td>
<td>199264</td>
<td>200567</td>
<td>200091</td>
<td>200496</td>
</tr>
</tbody>
</table>
<h4>Fraction of total</h4>
<table border="1">
<tbody>
<tr>
<th>Position</th>
<th>I.E.</th>
<th>Firefox</th>
<th>Opera</th>
<th>Chrome</th>
<th>Safari</th>
</tr>
<tr>
<td>1</td>
<td>0.2000</td>
<td>0.2008</td>
<td>0.1999</td>
<td>0.1994</td>
<td>0.1999</td>
</tr>
<tr>
<td>2</td>
<td>0.2003</td>
<td>0.2000</td>
<td>0.1998</td>
<td>0.1998</td>
<td>0.2001</td>
</tr>
<tr>
<td>3</td>
<td>0.1997</td>
<td>0.1997</td>
<td>0.1999</td>
<td>0.2009</td>
<td>0.1998</td>
</tr>
<tr>
<td>4</td>
<td>0.2004</td>
<td>0.2003</td>
<td>0.1997</td>
<td>0.1999</td>
<td>0.1997</td>
</tr>
<tr>
<td>5</td>
<td>0.1996</td>
<td>0.1993</td>
<td>0.2006</td>
<td>0.2001</td>
<td>0.2005</td>
</tr>
</tbody>
</table>
<p>And the results of the Chi-square test:</p>
<pre>X-squared = 18.9593, df = 16, p-value = 0.2708
</pre>
<h3>Final thoughts</h3>
<p>In the end I don&#8217;t think it is reasonable to expect every programmer to be memorize the Fisher-Yates algorithm. These things belong in our standard libraries.  But what I would expect every programmer to know is:</p>
<ol>
<li>That the problem here is one that requires a &#8220;random shuffle&#8221;.  If you don&#8217;t know what it is called, then it will be difficult to lookup the known approaches.  So this is partially a vocabulary problem. We, as programmers, have a shared vocabulary which we use to describe data structures and algorithms; binary searches, priority heaps, tries, and dozens of other concepts.  I don&#8217;t blame anyone for not memorizing algorithms, but I would expect a programmer to know what types of algorithms apply to their work.</li>
<li>How to research which algorithm to use in a specific context, including where to find reliable information, how to evaluate the classic trade-offs of time and space, etc.  There is almost always more than one way to solve a problem.</li>
<li>That where randomized outputs are needed,  the outputs should be statistically tested.  I would not expect the average programmer to know how to do a chi-square test, or even to know what one is.  But I would expect a mature programmer to know either find this out or seek help.</li>
</ol>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=WcBTUQ8AVEk:FFeQiGNbIrk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=WcBTUQ8AVEk:FFeQiGNbIrk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=WcBTUQ8AVEk:FFeQiGNbIrk:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=WcBTUQ8AVEk:FFeQiGNbIrk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=WcBTUQ8AVEk:FFeQiGNbIrk:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/robweir/antic-atom/~4/WcBTUQ8AVEk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robweir.com/blog/2010/03/new-microsoft-shuffle.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/us/</creativeCommons:license>
	<feedburner:origLink>http://www.robweir.com/blog/2010/03/new-microsoft-shuffle.html</feedburner:origLink></item>
		<item>
		<title>National Grammar Day, Bah Humbug!</title>
		<link>http://feedproxy.google.com/~r/robweir/antic-atom/~3/9fowJ3ogsgY/national-grammar-day.html</link>
		<comments>http://www.robweir.com/blog/2010/03/national-grammar-day.html#comments</comments>
		<pubDate>Thu, 04 Mar 2010 22:18:27 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Language]]></category>

		<guid isPermaLink="false">http://www.robweir.com/blog/?p=802</guid>
		<description><![CDATA[Evidently today is National Grammar Day.  I am not a fan.
Like most Americans of my generation I was taught to identify parts of speech, diagram sentences and intone with the rest of the class the mysteries of the three-and-twenty most holy helping verbs: &#8220;is, am, are, was, were, be, being, been, have, has, had, do, [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Evidently today is <a href="http://nationalgrammarday.com/">National Grammar Day</a>.  I am not a fan.</p>
<p>Like most Americans of my generation I was taught to identify parts of speech, diagram sentences and intone with the rest of the class the mysteries of the three-and-twenty most holy helping verbs: &#8220;is, am, are, was, were, be, being, been, have, has, had, do, did, does, may, must, might, can, could, will, would,  shall, should&#8221;.   Because I was good at it, and felt a call to the service of pedantry, I continued my novitiate in stranger accents, in German, Latin and Greek.</p>
<p>I was well on my path the the priesthood of a grammarian, when in 1992 I abandoned all my vows in a bus in Somerville, Massachusetts, when a drunk showed me what language was really all about.</p>
<div class="zemanta-img zemanta-action-dragged" style="margin: 1em; display: block;">
<div>
<dl class="wp-caption alignright" style="width: 310px;">
<dt class="wp-caption-dt"><a href="http://commons.wikipedia.org/wiki/Image:DavisSqSomervilleMass20040313.jpg"><img title="Somerville, Massachusetts" src="http://upload.wikimedia.org/wikipedia/commons/thumb/6/69/DavisSqSomervilleMass20040313.jpg/300px-DavisSqSomervilleMass20040313.jpg" alt="Somerville, Massachusetts" width="300" height="151" /></a></dt>
<dd class="wp-caption-dd zemanta-img-attribution" style="font-size: 0.8em;">Image via <a href="http://commons.wikipedia.org/wiki/Image:DavisSqSomervilleMass20040313.jpg">Wikipedia</a></dd>
</dl>
</div>
</div>
<p>I&#8217;m not one to start a conversation with a stranger &#8211;  even a sober one &#8212; on public transportation.  But in this case I had little choice in the matter, since this particular gentleman insisted on initiating a debate on the virtues of the <a href="http://en.wikipedia.org/wiki/Alman_Brothers">Allman Brothers</a>, a subject which I was neither equipped nor inclined to discuss with him.</p>
<p>When I expressed my disinclination to debate, and further, my ignorance of all things Allman, the dear fellow was offended and let out a string of expletives, starting with &#8220;Un-freakin&#8217;-believable&#8221; (albeit with a more emphatic, saltier interposed participial adjective than I can relate to you here) and continuing for several minutes.  Nothing he said was grammatical.  Little was even coherent.  But what I did understand was pure genius.  I wish I had a tape recorder.  As my stop approached, I hesitated a moment, intending to thank the man, offer him my congratulations and laud him as a poet of the first order.  But the smell, as well as my own instinct for self-preservation, held me in abeyance.</p>
<p>Since that day I have been an apostate to grammar.  I think we should all have a range of ways to speak and write,  and should be able to modulate according to circumstances. Language is like a wardrobe.  A man should have jogging shorts as well as a tuxedo.  In the end, language is not about rules.  It is about suiting the words to the occasion, of putting the right words in the right places, and what is &#8220;right&#8217; will depend on circumstances.</p>
<p>So down with grammar, down with the rules! Go, split an infinitive, dangle your participles, and like my good friend on the #86 bus, even separate your inseparable prefixes.  To quote Duke Ellington, &#8220;If it <em>sounds</em> good, it <em>is</em> good&#8221;.  And remember that the goal in the end is expression and understanding.  If you are understood, then you&#8217;ve accomplished more than many.</p>
<p>As Gertrude Stein wrote:</p>
<blockquote><p>Clarity is of no importance because nobody listens and nobody knows what you mean no matter what you mean, nor how clearly you mean what you mean. But if you have vitality enough of knowing enough of what you mean, somebody and sometime and sometimes a great many will have to realize that you know what you mean and so they will agree that you mean what you know, what you know you mean, which is as near as anybody can come to understanding anyone.</p></blockquote>
<p><em> </em></p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/4b3944dc-b26e-408c-b3b9-0447bbc9d8d6/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=4b3944dc-b26e-408c-b3b9-0447bbc9d8d6" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=9fowJ3ogsgY:3etc-_SSfS4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=9fowJ3ogsgY:3etc-_SSfS4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=9fowJ3ogsgY:3etc-_SSfS4:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=9fowJ3ogsgY:3etc-_SSfS4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=9fowJ3ogsgY:3etc-_SSfS4:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/robweir/antic-atom/~4/9fowJ3ogsgY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robweir.com/blog/2010/03/national-grammar-day.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/us/</creativeCommons:license>
	<feedburner:origLink>http://www.robweir.com/blog/2010/03/national-grammar-day.html</feedburner:origLink></item>
		<item>
		<title>Doing the Microsoft Shuffle: Algorithm Fail in Browser Ballot</title>
		<link>http://feedproxy.google.com/~r/robweir/antic-atom/~3/Vzv41ifFsD8/microsoft-random-browser-ballot.html</link>
		<comments>http://www.robweir.com/blog/2010/02/microsoft-random-browser-ballot.html#comments</comments>
		<pubDate>Sun, 28 Feb 2010 03:00:24 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[algorithm]]></category>
		<category><![CDATA[chi square test]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[random number generator]]></category>
		<category><![CDATA[shuffling]]></category>
		<category><![CDATA[statistics]]></category>

		<guid isPermaLink="false">http://www.robweir.com/blog/?p=766</guid>
		<description><![CDATA[March 6th Update:  Microsoft appears to have updated the www.browserchoice.eu website and corrected the error I describe in thi post.  More details on the fix can be found in The New &#38; Improved Microsoft Shuffle.  However, I think you will still find the following analysis interesting.
-Rob

Introduction
The story first hit in last week on the Slovakian [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>March 6th Update:  Microsoft appears to have updated the <a href="http://www.browserchoice.eu/">www.browserchoice.eu</a> website and corrected the error I describe in thi post.  More details on the fix can be found in <a href="http://www.robweir.com/blog/2010/03/new-microsoft-shuffle.html">The New &amp; Improved Microsoft Shuffle</a>.  However, I think you will still find the following analysis interesting.</p>
<p>-Rob</p>
<hr />
<h3>Introduction</h3>
<p>The story first hit in last week on the Slovakian tech site <a href="http://www.dsl.sk/article.php?article=8770">DSL.sk</a>.  Since I am not linguistically equipped to follow the Slovakian tech scene, I didn&#8217;t hear about the story until it was brought up in English on <a href="http://techcrunch.com/2010/02/22/microsoft-ballot-screen/">TechCrunch</a>.  The gist of these reports is this: DSL.sk did a test of the &#8220;ballot&#8221; screen at <a href="http://www.browserchoice.eu/">www.browserchoice.eu</a>, used in Microsoft Windows 7 to prompt the user to install a browser.  It was a Microsoft concession to the EU, to provide a randomized ballot screen for users to select a browser.  However, the DSL.sk test suggested that the ordering of the browsers was far from random.</p>
<p>But this wasn&#8217;t a simple case of Internet Explorer showing up more in the first position.  The non-randomness was pronounced, but more complicated.  For example, Chrome was more likely to show up in one of the first 3 positions.  And Internet Explorer showed up 50% of the time in the last position.  This isn&#8217;t just a minor case of it being slightly random.  Try this test yourself: Load <a href="http://www.browserchoice.eu/">www.browserchoice.eu</a>, in Internet Explorer, and press refresh 20 times.  Count how many times the Internet Explorer choice is on the far right.   Can this be right?</p>
<p>The DLS.sk findings have lead to various theories, made on the likely mistaken theory that this is an intentional non-randomness.  Does Microsoft have secret research showing that the 5th position is actually chosen more often?  Is the Internet Explorer random number generator not random?  There were also comments asserting that the tests proved nothing, and the results were just chance, and others saying that the results are expected to be non-random because computers can only make pseudo-random numbers, not genuinely random numbers.</p>
<p>Maybe there was cogent technical analysis of this issue posted someplace, but if there was, I could not find it.  So I&#8217;m providing my own analysis here, a little statistics and a little algorithms 101.  I&#8217;ll tell you what went wrong, and how Microsoft can fix it.  In the end it is a rookie mistake in the code, but it is an interesting mistake that we can learn from, so I&#8217;ll examine it in some depth.</p>
<h3>Are the results random?</h3>
<p>The ordering of the browser choices is determined by <a href="http://www.robweir.com/blog/attachments/shuffle/page.js">JavaScript code</a> on the BrowserChoice.eu web site.  You can see the core function in the GenerateBrowserOrder function.  I took that function and supporting functions,  put it into my own HTML file, added some test driver code and ran it for 10,000 iterations on Internet Explorer.  The results are as follows:</p>
<table border="1">
<caption>Internet Explorer raw counts</caption>
<tbody>
<tr>
<th>Position</th>
<th>I.E.</th>
<th>Firefox</th>
<th>Opera</th>
<th>Chrome</th>
<th>Safari</th>
</tr>
<tr>
<td>1</td>
<td>1304</td>
<td>2099</td>
<td>2132</td>
<td>2595</td>
<td>1870</td>
</tr>
<tr>
<td>2</td>
<td>1325</td>
<td>2161</td>
<td>2036</td>
<td>2565</td>
<td>1913</td>
</tr>
<tr>
<td>3</td>
<td>1105</td>
<td>2244</td>
<td>1374</td>
<td>3679</td>
<td>1598</td>
</tr>
<tr>
<td>4</td>
<td>1232</td>
<td>2248</td>
<td>1916</td>
<td>590</td>
<td>4014</td>
</tr>
<tr>
<td>5</td>
<td>5034</td>
<td>1248</td>
<td>2542</td>
<td>571</td>
<td>605</td>
</tr>
</tbody>
</table>
<table border="1">
<caption>Internet Explorer fraction of total</caption>
<tbody>
<tr>
<th>Position</th>
<th>I.E.</th>
<th>Firefox</th>
<th>Opera</th>
<th>Chrome</th>
<th>Safari</th>
</tr>
<tr>
<td>1</td>
<td>0.1304</td>
<td>0.2099</td>
<td>0.2132</td>
<td>0.2595</td>
<td>0.1870</td>
</tr>
<tr>
<td>2</td>
<td>0.1325</td>
<td>0.2161</td>
<td>0.2036</td>
<td>0.2565</td>
<td>0.1913</td>
</tr>
<tr>
<td>3</td>
<td>0.1105</td>
<td>0.2244</td>
<td>0.1374</td>
<td>0.3679</td>
<td>0.1598</td>
</tr>
<tr>
<td>4</td>
<td>0.1232</td>
<td>0.2248</td>
<td>0.1916</td>
<td>0.0590</td>
<td>0.4014</td>
</tr>
<tr>
<td>5</td>
<td>0.5034</td>
<td>0.1248</td>
<td>0.2542</td>
<td>0.0571</td>
<td>0.0605</td>
</tr>
</tbody>
</table>
<p>This confirms the DSL.sk results.  Chrome appears more often in one of the first 3 positions and I.E. is most likely to be in the 5th position.</p>
<p>You can also see this graphically in a 3D bar chart:</p>
<p><img class="alignnone" title="Microsoft Shuffle" src="http://www.robweir.com/blog/attachments/shuffle/microsoft.png" alt="" width="634" height="471" /></p>
<p>But is this a statistically significant result?  I think most  of us have an intuitive feeling that results are more significant if many tests are run, and if the results also vary much from an even distribution of positions.  On the other hand, we also know that a finite run of even a perfectly random algorithm will not give a perfectly uniform distribution.  It would be quite unusual if every cell in the above table was exactly 2,000.</p>
<p>This is not a question one answers with debate.  To go beyond intuition you need to perform a statistical test.  In this case, a good test is Pearson&#8217;s Chi-square test, which tests how well observed results match a specified distribution.  In this test we assume the null-hypothesis that the observed data is taken from a uniform distribution.  The test then tells us the probability that the observed results can be explained by chance.  In other words, what is the probability that the difference between observation and a uniform distribution was just the luck of the draw?  If that probability is very small, say less than 1%, then we can say with high confidence, say 99% confidence, that the positions are not uniformly distributed.   However, if the test returns a larger number, then we cannot disprove our null-hypothesis.  That doesn&#8217;t mean the null-hypothesis is true.  It just means we can&#8217;t disprove it.  In the end we can never prove the null hypothesis.  We can only try to disprove it.</p>
<p>Note also that having a uniform distribution is not the same as having uniformly distributed random positions.  There are ways of getting a uniform distribution that are not random, for example, by treating the order as a circular buffer and rotating through the list on each invocation.  Whether or not randomization is needed is ultimately dictated by the architectural assumptions of your application.  If you determine the order on a central server and then serve out that order on each innovation, then you can use non-random solutions, like the rotating circular buffer.  But if the ordering is determined independently on each client, for each invocation, then you need some source of randomness on each client to achieve a uniform distribution overall.  But regardless of how you attempt to achieve a uniform distribution the way to test it is the same, using the Chi-square test.</p>
<p>Using the open source statistical package <a href="http://www.r-project.org/">R</a>, I ran the  chisq.test() routine on the above data.  The results are:</p>
<pre>X-squared = 13340.23, df = 16, p-value &lt; 2.2e-16</pre>
<p>The p-value is much, much less than 1%.  So, we can say with high confidence that the results are not random.</p>
<p>Repeating the same test on Firefox is also non-random, but in a different way:</p>
<table border="1">
<caption>Firefox raw counts</caption>
<tbody>
<tr>
<th>Position</th>
<th>I.E.</th>
<th>Firefox</th>
<th>Opera</th>
<th>Chrome</th>
<th>Safari</th>
</tr>
<tr>
<td>1</td>
<td>2494</td>
<td>2489</td>
<td>1612</td>
<td>947</td>
<td>2458</td>
</tr>
<tr>
<td>2</td>
<td>2892</td>
<td>2820</td>
<td>1909</td>
<td>1111</td>
<td>1268</td>
</tr>
<tr>
<td>3</td>
<td>2398</td>
<td>2435</td>
<td>2643</td>
<td>1891</td>
<td>633</td>
</tr>
<tr>
<td>4</td>
<td>1628</td>
<td>1638</td>
<td>2632</td>
<td>3779</td>
<td>323</td>
</tr>
<tr>
<td>5</td>
<td>588</td>
<td>618</td>
<td>1204</td>
<td>2272</td>
<td>5318</td>
</tr>
</tbody>
</table>
<table border="1">
<caption>Firefox fraction of total</caption>
<tbody>
<tr>
<th>Position</th>
<th>I.E.</th>
<th>Firefox</th>
<th>Opera</th>
<th>Chrome</th>
<th>Safari</th>
</tr>
<tr>
<td>1</td>
<td>0.2494</td>
<td>0.2489</td>
<td>0.1612</td>
<td>0.0947</td>
<td>0.2458</td>
</tr>
<tr>
<td>2</td>
<td>0.2892</td>
<td>0.2820</td>
<td>0.1909</td>
<td>0.1111</td>
<td>0.1268</td>
</tr>
<tr>
<td>3</td>
<td>0.2398</td>
<td>0.2435</td>
<td>0.2643</td>
<td>0.1891</td>
<td>0.0633</td>
</tr>
<tr>
<td>4</td>
<td>0.1628</td>
<td>0.1638</td>
<td>0.2632</td>
<td>0.3779</td>
<td>0.0323</td>
</tr>
<tr>
<td>5</td>
<td>0.0588</td>
<td>0.0618</td>
<td>0.1204</td>
<td>0.2272</td>
<td>0.5318</td>
</tr>
</tbody>
</table>
<p>On Firefox, Internet Explorer is more frequently in one of the first 3 positions, while Safari is most often in last position.  Strange.  The same code, but vastly different results.</p>
<p>The results here are also highly significant:</p>
<pre>X-squared = 14831.41, df = 16, p-value &lt; 2.2e-16</pre>
<p>So given the above, we know two things:  1) The problem is real.  2) The problem is not related to a flaw only in Internet Explorer.</p>
<p>In the next section we look at the algorithm and show what the real problem is, and how to fix it.</p>
<h3>Random shuffles</h3>
<p>The browser choice screen requires what we call a &#8220;random shuffle&#8221;.  You start with an array of values and return those same values, but in a randomized order. This computational problem has been known since the earliest days of computing.  There are 4 well-known approaches: 2 good solutions, 1 acceptable (&#8220;good enough&#8221;) solution that is slower than necessary, and 1 bad approach that doesn&#8217;t really work.  Microsoft appears to have picked the bad approach. But I do not believe there is some nefarious intent to this bug.  It is more in the nature of a &#8220;naive&#8221; algorithm&#8221;, like the bubble sort, that inexperienced programmers  inevitably will fall upon when solving a given problem.  I bet if we gave this same problem to 100 freshmen computer science majors, at least one of them would make the same mistake.  But with education and experience, one learns about these things.  And one of the things one learns early on is to reach for <a href="http://en.wikipedia.org/wiki/Art_of_Computer_Programming">Knuth</a>.</p>
<p><cite>The Art of Computer Programming</cite>, Vol. 2, section 3.4.2 &#8220;Random sampling and shuffling&#8221; describes two solutions:</p>
<ol>
<li>If the number of items to sort is small, then simply put all possible orderings in a table and select one ordering at random.  In our case, with 5 browsers, the table would need 5! = 120 rows.</li>
<li>&#8220;Algorithm P&#8221; which Knuth attributes to Moses and Oakford (1963), but is now known to have been anticipated by Fisher and Yates (1938) so it is now called the <a href="http://en.wikipedia.org/wiki/Fisher-Yates_shuffle">Fisher-Yates Shuffle</a>.</li>
</ol>
<p>Another solution, one I use when I need a random shuffle in a database or spreadsheet, is to add a new column, fill that column with random numbers and then sort by that column.  This is very easy to implement in those environments. However, sorting is an O(N log N)  operation where the Fisher-Yates algorithm is O(N), so you need to keep that in mind if performance is critical.</p>
<p>Microsoft used none of these well-known solutions in their random solution.  Instead they fell for the well-known trap.  What they did is sort the array, but with a custom-defined comparison function or &#8220;comparator&#8221;.  JavaScript, like many other programming languages, allows a custom comparator function to be specified.  In the case of JavaScript, this function takes two indexes into the value array and returns a value which is:</p>
<ul>
<li>&lt;0 if the value at the first index should be sorted before the value at the second index</li>
<li>0 if the values at the first index and the second index are equal, which is to say you are indifferent as to what order they are sorted</li>
<li>&gt;0 if the value at the first index should be sorted after the value at the second index</li>
</ul>
<p>This is a very flexible approach, and allows the programmer to handle all sorts of sorting tasks, from making case-insensitive sorts to defining locale-specific collation orders, etc..</p>
<p>In this case Microsoft gave the following comparison function:</p>
<pre>function RandomSort (a,b)
{
    return (0.5 - Math.random());
}</pre>
<p>Since Math.random() should return a random number chosen uniformly between 0 and 1, the RandomSort() function will return a random value between -0.5 and 0.5.  If you know anything about sorting, you can see the problem here.  Sorting requires a self-consistent definition of ordering. The following assertions must be true if sorting is to make any sense at all:</p>
<ol>
<li>If a&lt;b then b&gt;a</li>
<li>If a&gt;b then b&lt;a</li>
<li>If a=b then b=a</li>
<li>if a&lt;b and b&lt;c then a&lt;c</li>
<li>If a&gt;b and b&gt;c then a&gt;c</li>
<li>If a=b and b=c then a=c</li>
</ol>
<p>All of these statements are violated by the Microsoft comparison function.  Since the comparison function returns random results, a sort routine that depends on any of these logical implications would receive inconsistent information regarding the progress of the sort.  Given that, the fact that the results were non-random is hardly surprising.  Depending on the exact search algorithm used, it may just do a few exchanges operations and then prematurely stop.  Or, it could be worse.  It could lead to an infinite loop.</p>
<h3>Fixing the Microsoft Shuffle</h3>
<p>The simplest approach is to adopt a well-known and respected algorithm like the Fisher-Yates Shuffle, which has been known since 1938.  I tested with that algorithm, using a JavaScript implementation taken from the <a href="http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle">Fisher-Yates</a> Wikpedia page, with the following results for 10,000 iterations in Internet Explorer:</p>
<table border="1">
<caption>Internet Explorer raw counts</caption>
<tbody>
<tr>
<th>Position</th>
<th>I.E.</th>
<th>Firefox</th>
<th>Opera</th>
<th>Chrome</th>
<th>Safari</th>
</tr>
<tr>
<td>1</td>
<td>2023</td>
<td>1996</td>
<td>2007</td>
<td>1944</td>
<td>2030</td>
</tr>
<tr>
<td>2</td>
<td>1906</td>
<td>2052</td>
<td>1986</td>
<td>2036</td>
<td>2020</td>
</tr>
<tr>
<td>3</td>
<td>2023</td>
<td>1988</td>
<td>1981</td>
<td>1984</td>
<td>2024</td>
</tr>
<tr>
<td>4</td>
<td>2065</td>
<td>1985</td>
<td>1934</td>
<td>2019</td>
<td>1997</td>
</tr>
<tr>
<td>5</td>
<td>1983</td>
<td>1979</td>
<td>2092</td>
<td>2017</td>
<td>1929</td>
</tr>
</tbody>
</table>
<table border="1">
<caption>Internet Explorer fraction of total</caption>
<tbody>
<tr>
<th>Position</th>
<th>I.E.</th>
<th>Firefox</th>
<th>Opera</th>
<th>Chrome</th>
<th>Safari</th>
</tr>
<tr>
<td>1</td>
<td>0.2023</td>
<td>0.1996</td>
<td>0.2007</td>
<td>0.1944</td>
<td>0.2030</td>
</tr>
<tr>
<td>2</td>
<td>0.1906</td>
<td>0.2052</td>
<td>0.1986</td>
<td>0.2036</td>
<td>0.2020</td>
</tr>
<tr>
<td>3</td>
<td>0.2023</td>
<td>0.1988</td>
<td>0.1981</td>
<td>0.1984</td>
<td>0.2024</td>
</tr>
<tr>
<td>4</td>
<td>0.2065</td>
<td>0.1985</td>
<td>0.1934</td>
<td>0.2019</td>
<td>0.1997</td>
</tr>
<tr>
<td>5</td>
<td>0.1983</td>
<td>0.1979</td>
<td>0.2092</td>
<td>0.2017</td>
<td>0.1929</td>
</tr>
</tbody>
</table>
<p>Applying Pearson&#8217;s Chi-square test we see:</p>
<pre>X-squared = 21.814, df = 16, p-value = 0.1493</pre>
<p>In other words, these results are not significantly different than a truly random distribution of positions.  This is good.  This is what we want to see.</p>
<p>Here it is, in graphical form, to the same scale as the &#8220;Microsoft Shuffle&#8221; chart earlier:</p>
<p><img class="alignnone" title="Fisher-Yates Shuffle" src="http://www.robweir.com/blog/attachments/shuffle/fisher-yates.png" alt="" width="628" height="472" /></p>
<h3>Summary</h3>
<p>The lesson here is that getting randomness on a computer cannot be left to chance.  You cannot just throw Math.random() at a problem and stir the pot, and expect good results.  Random is not the same as being casual.  Getting random results on a deterministic computer is one of the hardest things you can do with a computer and requires deliberate effort, including avoiding known traps.  But it also requires testing.  Where serious money is on the line, such as with online gambling sites, random number generators and shuffling algorithms are audited, tested and subject to inspection.  I suspect that the stakes involved in the browser market are no less significant.  Although I commend DSL.sk for finding this issue in the first place, I am astonished that the bug got as far as it did.  This should have been caught far earlier, by Microsoft, before this ballot screen was ever made public.  And if the EC is not already demanding a periodic audit of the aggregate browser presentation orderings, I think that would be a prudent thing to do.</p>
<p>If anyone is interested, you can take a look at <a href="http://www.robweir.com/blog/attachments/shuffle/shuffle.html">the file I used for running the tests</a>.  You type in an iteration count and press the execute button.  After a (hopefully) short delay you will get a table of results, using the Microsoft Shuffle as well as the Fisher-Yates Shuffle.  With 10,000 iterations you will get results in around 5 seconds.  Since all execution is in the browser, use larger numbers at your own risk.  At some large value you will presumably run out of memory, time out, hang, or otherwise get an unsatisfactory experience.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/4f53a829-1c7e-4a56-87c8-5fef3db7456d/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=4f53a829-1c7e-4a56-87c8-5fef3db7456d" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=Vzv41ifFsD8:0yioU-jmHMs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=Vzv41ifFsD8:0yioU-jmHMs:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=Vzv41ifFsD8:0yioU-jmHMs:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=Vzv41ifFsD8:0yioU-jmHMs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=Vzv41ifFsD8:0yioU-jmHMs:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/robweir/antic-atom/~4/Vzv41ifFsD8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robweir.com/blog/2010/02/microsoft-random-browser-ballot.html/feed</wfw:commentRss>
		<slash:comments>156</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/us/</creativeCommons:license>
	<feedburner:origLink>http://www.robweir.com/blog/2010/02/microsoft-random-browser-ballot.html</feedburner:origLink></item>
		<item>
		<title>How to photograph an asteroid</title>
		<link>http://feedproxy.google.com/~r/robweir/antic-atom/~3/UCsL4jXjCoo/how-to-photograph-an-asteroid.html</link>
		<comments>http://www.robweir.com/blog/2010/02/how-to-photograph-an-asteroid.html#comments</comments>
		<pubDate>Tue, 23 Feb 2010 02:50:14 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Photography]]></category>
		<category><![CDATA[Astronomy]]></category>
		<category><![CDATA[Vesta]]></category>

		<guid isPermaLink="false">http://www.robweir.com/blog/?p=748</guid>
		<description><![CDATA[Over the years, I&#8217;ve seen Mercury, Venus, Mars, Jupiter and Saturn with my naked eyes.  And I&#8217;ve seen Uranus and Neptune through a telescope.  But I&#8217;ve never seen an asteroid until last night, when I photographed the 2nd largest minor planet, Vesta.
Vesta is currently near opposition, meaning as seen from the Earth, Vesta and the [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Over the years, I&#8217;ve seen Mercury, Venus, Mars, Jupiter and Saturn with my naked eyes.  And I&#8217;ve seen Uranus and Neptune through a telescope.  But I&#8217;ve never seen an asteroid until last night, when I photographed the 2nd largest minor planet, Vesta.</p>
<p>Vesta is currently near opposition, meaning as seen from the Earth, Vesta and the Sun are 180 degrees apart. This makes Vesta well-placed for observation all-night long, and also means that it is around as bright as it ever gets.  So if you are eager to see an asteroid, give it a try some clear night in February or March.</p>
<p>The first step is to find the constellation Leo.   Where exactly Leo is from your location will depend on your latitude.  But generally, if you are in mid-northern latitudes, a good start is to look to the south-east around 10pm.  If you are running Linux, give <a href="http://edu.kde.org/kstars/">KStars</a> a try to simulate what the sky will look like.  Once you&#8217;ve found where Leo is, take a look at this chart showing the<a href="http://media.skyandtelescope.com/documents/WEB_VestaPath_Fndr.pdf"> location of Vesta</a> [PDF] over the next few months.</p>
<p>Since Vesta is now around magnitude 6.8, it is too faint to see with the naked eye.   But it should be visible with even the smallest telescope or binoculars.  Compare what you see with the chart.  Don&#8217;t expect to see any disk or features.  It will look just like a star.  If you want to be sure, make a sketch of the location of the stars you see in the area, and compare it a night or two later.  If it is Vesta, you should see it noticeably move from night to night.</p>
<p>Instead of using binoculars or a telescope, I decided to photograph Vesta.  With some trial and error I found a technique that worked rather well.</p>
<ol>
<li>Obviously, you need a camera that can record the faint stars without so much noise that it overwhelms them.  I don&#8217;t think a little compact digital camera will work well here.  It is all about light gathering ability of the lens.  The little lenses in a compact camera will not work well here.  But a DSLR can work well, especially if you have a fast lens.  Use the fastest (lowest f-ratio) that you have.  If the lens is too &#8220;soft&#8221; at its wide open setting, you can also try stopping it down a stop.</li>
<li>The focal length of the lens is not that important.  A big telephoto lens is not going to help here.  You are not going to be able to make Vesta look any bigger than just a pin point of light.  At the other extreme, if you use a wide-angle lens, your image scale might not allow you to resolve individual stars well.  You want something in the &#8220;normal&#8221; range, not telephoto, not wide angle.</li>
<li>You will need to take a longer exposure, several seconds long, so a tripod is a must, to hold the camera steady.  You also want to use a cable release or remote trigger to avoid camera shake.  If you know how to set the mirror-up lock on your camera, that can help as well.</li>
<li>You want to take as long of an exposure as you can while avoiding the star images streaking (from the earth&#8217;s rotation).  This will depend on the local length of your lens and the resolution of your camera.  Try exposures in the range of 2-30 seconds.</li>
<li>You will want to set the ISO speed as high as you can without the noise level getting too high.  What is too high?  Use your judgment.  At some point the noise overwhelms the star images.</li>
<li>If you are in a suburban location, you may find that the light pollution causes the image to &#8220;fog up&#8221;.  If so, reduce the ISO speed or decrease the exposure.</li>
</ol>
<h6 class="zemanta-related-title" style="font-size: 1em;"><a href="http://www.robweir.com/blog/wp-content/uploads/2010/02/vesta.png"><img class="alignnone" style="border: 1px solid black; margin-top: 5px; margin-bottom: 5px;" title="Vesta" src="http://www.robweir.com/blog/wp-content/uploads/2010/02/vesta.png" alt="" width="500" height="495" /></a></h6>
<h6 class="zemanta-related-title" style="font-size: 1em;"><a href="http://www.robweir.com/blog/wp-content/uploads/2010/02/vesta-detail.jpg"><img class="size-full wp-image-758 alignnone" title="Vesta Detail" src="http://www.robweir.com/blog/wp-content/uploads/2010/02/vesta-detail.jpg" alt="" width="600" height="399" /></a></h6>
<p>In my case, I used a Pentax K20d at ISO 800 with a 50mm f/1.4 lens and a 4-second exposure.  The results are as above, which I&#8217;ve annotated, as well as a the blown up details   When I compared to the chart the extra &#8220;star&#8221; was obvious.  It doesn&#8217;t look like much, but that is Vesta, nearly 600km in diameter, orbiting somewhere between the orbits of Mars and Jupiter.</p>
<p>Good luck!</p>
<h6 class="zemanta-related-title" style="font-size: 1em;">Related articles by Zemanta</h6>
<ul class="zemanta-article-ul">
<li class="zemanta-article-ul-li"><a href="http://spacefellowship.com/news/art18597/get-set-for-a-possible-glimpse-of-an-asteroid.html">Get Set for a Possible Glimpse of an Asteroid</a> (spacefellowship.com)</li>
<li class="zemanta-article-ul-li"><a href="http://blogs.discovermagazine.com/badastronomy/2010/02/17/vesta-interest/">Vesta interest</a> (blogs.discovermagazine.com)</li>
<li class="zemanta-article-ul-li"><a href="http://www.space.com/spacewatch/gaherty-vesta-100217.html">Viewing Vesta</a> (space.com)</li>
</ul>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/154ba093-78f7-48f0-bdcc-3258d2575d77/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=154ba093-78f7-48f0-bdcc-3258d2575d77" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=UCsL4jXjCoo:6ouvYpHBUSY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=UCsL4jXjCoo:6ouvYpHBUSY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=UCsL4jXjCoo:6ouvYpHBUSY:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=UCsL4jXjCoo:6ouvYpHBUSY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=UCsL4jXjCoo:6ouvYpHBUSY:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/robweir/antic-atom/~4/UCsL4jXjCoo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robweir.com/blog/2010/02/how-to-photograph-an-asteroid.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/us/</creativeCommons:license>
	<feedburner:origLink>http://www.robweir.com/blog/2010/02/how-to-photograph-an-asteroid.html</feedburner:origLink></item>
		<item>
		<title>Weekly Links #3</title>
		<link>http://feedproxy.google.com/~r/robweir/antic-atom/~3/OBzc7AOPktY/weekly-links-3.html</link>
		<comments>http://www.robweir.com/blog/2010/02/weekly-links-3.html#comments</comments>
		<pubDate>Sun, 21 Feb 2010 00:38:06 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Weekly Links]]></category>

		<guid isPermaLink="false">http://www.robweir.com/blog/?p=740</guid>
		<description><![CDATA[

Danish Open Source Vendors declares victory in open standards war
&#8220;The mood at this year’s general meeting was joyous. In late January 2010, OSL could declare victory in maybe the most important and hard fought battle that OSL has been part of since its formation.
On 29 January 2010 the Danish Parliament (Folketinget) decided unanimously to place [...]]]></description>
			<content:encoded><![CDATA[<p></p><ul class="diigo-linkroll">
<li>
<p class="diigo-link"><a rel="nofollow" href="http://www.lexlinux.dk/?p=21">Danish Open Source Vendors declares victory in open standards war</a></p>
<p class="diigo-description">&#8220;The mood at this year’s general meeting was joyous. In late January 2010, OSL could declare victory in maybe the most important and hard fought battle that OSL has been part of since its formation.</p>
<p>On 29 January 2010 the Danish Parliament (Folketinget) decided unanimously to place the ODF standard as the only compliant open standard for editable documents on the list of open standards to be used by the Danish public sector.&#8221;</p>
<p class="diigo-tags"><a style="color: #000 !important; text-decoration: none !important;" href="http://www.diigo.com/cloud/rcweir">tags</a>: <a href="http://www.diigo.com/user/rcweir/ODF">ODF</a></p>
</li>
<li>
<p class="diigo-link"><a rel="nofollow" href="http://brentrbrian.blogspot.com/2010/02/questions-for-microsoft.html">Brent R Brian: Questions for Microsoft</a></p>
<p class="diigo-description">&#8220;Now, what about all the customers that chose to use Microsoft&#8217;s Office product just to get the OOXML feature? If they suffer loss because of this Microsoft compensate them? What about the documents they created with OOXML, will they have to be converted? What about the people that refuse to let Microsoft remove the patent violating code to protect their investments and documents? Could i4i sue them?&#8221;</p>
<p class="diigo-tags"><a style="color: #000 !important; text-decoration: none !important;" href="http://www.diigo.com/cloud/rcweir">tags</a>: <a href="http://www.diigo.com/user/rcweir/OOXML">OOXML</a></p>
</li>
<li>
<p class="diigo-link"><a rel="nofollow" href="http://news.cnet.com/8301-31114_3-10456152-258.html">Use the tools that make the job easier | Apps Meet Ops &#8211; CNET News</a></p>
<p class="diigo-description">&#8220;Because we have ever less time to build apps and services, and because the human resources needed to get the job done are now the gating factor (not system resources), there aren&#8217;t too many good counter-arguments to the idea of up-leveling our data and tasks, then using the most powerful tools we can find. &#8220;</p>
<p class="diigo-tags"><a style="color: #000 !important; text-decoration: none !important;" href="http://www.diigo.com/cloud/rcweir">tags</a>: <a href="http://www.diigo.com/user/rcweir/ODF">ODF</a></p>
</li>
<li>
<p class="diigo-link"><a rel="nofollow" href="http://www.odtphp.com">odtPHP &#8211; OpenOffice documents generation with PHP</a></p>
<p class="diigo-description">&#8220;OdtPHP is an oriented object libary for PHP 5+. It allows you to generate automatically OpenOffice text documents from templates. You can use it directly within your PHP scripts (without OpenOffice).&#8221;</p>
<p class="diigo-tags"><a style="color: #000 !important; text-decoration: none !important;" href="http://www.diigo.com/cloud/rcweir">tags</a>: <a href="http://www.diigo.com/user/rcweir/ODF">ODF</a></p>
</li>
<li>
<p class="diigo-link"><a rel="nofollow" href="http://stop.zona-m.net/node/102">File formats, alphabets and public money: did you know that&#8230; | Stop!</a></p>
<p class="diigo-description">&#8220;File formats are the rules that define the meaning of all the sequences of bits that you can find inside a computer file. If the format of a file isn&#8217;t really open, that is completely known and useable by everybody without paying fees or asking some permit, that file will surely readable without errors only with one or very few software programs and only until those programs exist. Therefore, their authors will be able to ask whatever price they want for every new version of their program(s), especially if citizens are trained in public schools to know (only) those same programs. &#8220;</p>
<p class="diigo-tags"><a style="color: #000 !important; text-decoration: none !important;" href="http://www.diigo.com/cloud/rcweir">tags</a>: <a href="http://www.diigo.com/user/rcweir/ODF">ODF</a></p>
</li>
<li>
<p class="diigo-link"><a rel="nofollow" href="http://ostatic.com/blog/gnumeric-1-10-release-brings-better-tools">Gnumeric 1.10 Release Brings Better Tools</a></p>
<p class="diigo-description">&#8220;It&#8217;s been just over two years since the last stable release, but the Gnumeric team is still going strong. The project has a new stable series 1.10.x. This release removes the 65,536 row restriction on spreadsheets and includes many new functions, better OpenDocument Format (ODF) support, new statistical analysis tools, and a new utility for searching spreadsheet files.&#8221;</p>
<p class="diigo-tags"><a style="color: #000 !important; text-decoration: none !important;" href="http://www.diigo.com/cloud/rcweir">tags</a>: <a href="http://www.diigo.com/user/rcweir/ODF">ODF</a></p>
</li>
<li>
<p class="diigo-link"><a rel="nofollow" href="http://github.com/maximkulkin/spreadsheet">maximkulkin&#8217;s spreadsheet at master &#8211; GitHub</a></p>
<p class="diigo-description">ODF with Ruby?</p>
<p class="diigo-tags"><a style="color: #000 !important; text-decoration: none !important;" href="http://www.diigo.com/cloud/rcweir">tags</a>: <a href="http://www.diigo.com/user/rcweir/ODF">ODF</a></p>
</li>
</ul>
<p>Posted from <a href="http://www.diigo.com">Diigo</a>. The rest of my <a href="http://www.diigo.com/user/rcweir">favorite links</a> are here.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=OBzc7AOPktY:rcQs4C2p5uY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=OBzc7AOPktY:rcQs4C2p5uY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=OBzc7AOPktY:rcQs4C2p5uY:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=OBzc7AOPktY:rcQs4C2p5uY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=OBzc7AOPktY:rcQs4C2p5uY:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/robweir/antic-atom/~4/OBzc7AOPktY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robweir.com/blog/2010/02/weekly-links-3.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/us/</creativeCommons:license>
	<feedburner:origLink>http://www.robweir.com/blog/2010/02/weekly-links-3.html</feedburner:origLink></item>
		<item>
		<title>Microsoft Office document corruption: Testing the OOXML claims</title>
		<link>http://feedproxy.google.com/~r/robweir/antic-atom/~3/mdanDcvGIFA/office-document-corruption.html</link>
		<comments>http://www.robweir.com/blog/2010/02/office-document-corruption.html#comments</comments>
		<pubDate>Mon, 15 Feb 2010 05:32:39 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[ODF]]></category>
		<category><![CDATA[OOXML]]></category>

		<guid isPermaLink="false">http://www.robweir.com/blog/?p=701</guid>
		<description><![CDATA[Summary
In this post I take a look at Microsoft&#8217;s claims for robust data recovery with their Office Open XML (OOXML) file format.  I show the results of an experiment, where I introduce random errors into documents and observe whether word processors can recover from these errors.  Based on these result, I estimate data recovery rates [...]]]></description>
			<content:encoded><![CDATA[<p></p><h3>Summary</h3>
<p>In this post I take a look at Microsoft&#8217;s claims for robust data recovery with their Office Open XML (OOXML) file format.  I show the results of an experiment, where I introduce random errors into documents and observe whether word processors can recover from these errors.  Based on these result, I estimate data recovery rates for Word 2003 binary, OOXML and ODF documents, as loaded in Word 2007, Word 2003 and in OpenOffice.org Writer 3.2.</p>
<p>My tests suggest that the OOXML format is less robust than the Word binary or ODF formats, with no observed basis for the contrary Microsoft claims.  I then discuss the reasons why this might be expected.</p>
<h3>The OOXML &#8220;data recovery&#8221; claims</h3>
<p>I&#8217;m sure you&#8217;ve heard the claim stated, in one form or another, over the past few years.  The claim is that OOXML files are more robust and recoverable than Office 2003 binary files.  For example, the <a style="text-decoration: line-through;" rel="nofollow" href="http://office.microsoft.com/en-us/products/HA102058151033.aspx">Ecma Office Open XML File Formats overview</a> says:</p>
<blockquote><p>Smaller file sizes and improved recovery of corrupted documents enable Microsoft Office users to operate efficiently and confidently and reduces the risk of lost information.</p></blockquote>
<p><a style="text-decoration: line-through;" rel="nofollow" href="http://office.microsoft.com/en-us/products/HA102139821033.aspx">Jean Paoli</a> says essentially the same thing:</p>
<blockquote><p>By taking advantage of XML, people and organizations will benefit from enhanced data recovery capabilities, greater security, and smaller file size because of the use of ZIP compression.</p></blockquote>
<p>And we see similar claims in Micrsoft <a style="text-decoration: line-through;" rel="nofollow" href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?CaseStudyID=201097">case studies</a>:</p>
<blockquote><p>The Office Open XML file format can help improve file and data management, data recovery, and interoperability with line-of-business systems by storing important metadata within the document.</p></blockquote>
<p>A Microsoft <a style="text-decoration: line-through;" rel="nofollow" href="http://www.microsoft.com/presspass/features/2005/jun05/06-01XMLFileFormat.mspx">press release</a> quotes Senior Vice President Steven Sinofsky:</p>
<blockquote><p>The new formats improve file and data management, data recovery, and interoperability with line-of-business systems beyond what&#8217;s possible with Office 2003 binary files.</p></blockquote>
<p>Those are just four examples of a claim that has been repeated dozens of time.</p>
<p>There are many kinds of document errors.  Some errors are introduced by logic defects in the authoring application.  Some are introduced by other, non-editor applications that might modify the document after it was authored.  And some are caused failures in data transmission and storage.  The Sinofsky press release gives some further detail into exactly what kinds of errors are more easily recoverable in the OOXML format:</p>
<blockquote><p>With more and more documents traveling through e-mail attachments or removable storage, the chance of a network or storage failure increases the possibility of a document becoming corrupt. So it&#8217;s important that the new file formats also will improve data recovery&#8211;and since data is the lifeblood of most businesses, better data recovery has the potential to save companies tremendous amounts of money.</p></blockquote>
<p>So clearly we&#8217;re talking here about network and storage failures, and not application logic errors.  Good, this is a testable proposition then.  We first need to model the effect of these errors on documents.</p>
<h3>Modeling document errors</h3>
<p>Let&#8217;s model &#8220;network and storage failures&#8221; so we can then test how OOXML files behave when subjected to these types of errors.</p>
<p>With modern error-checking file transfer protocols, the days of transmission data errors are a memory.  Maybe  25 years ago, with XMODEM and other transfer mechanisms, you would see randomly-introduced transmission errors in the body of a document.  But today the more likely problem would be that of truncation, of missing the last few bytes of a file transfer.  This could happen for a variety of reasons, including logic errors in application-hosted file transfer support , to user-induced errors from removing a USB memory stick with uncommitted data still in the file buffer.  (I remember debugging a program once that had a bug where it would lose the last byte of a file whenever the file was an exactt multiple of 1024 bytes.)  These types of error can be particularly pernicious with some file formats.  For example, the old Lotus WordPro file format stored the table of contents for the document container at the end of the file.  This was great for incremental updating, but particularly bad for truncation errors.</p>
<p>For this experiment I modeled truncation errors by generating a series of copies of a reference document, each copy truncating an additional byte from the end of the document.</p>
<p>The other class of errors &#8212; &#8220;storage errors&#8221; as Sinofsky calls them &#8212; can come from a variety of hardware-level failures, including degeneration of the physical storage medum or mechanical errors in the storage device.  The unit of physical storage &#8212; and thus of physical damage &#8212; is the sector.  For most storage media the size of a sector is 512 bytes.  I modeled storage errors by creating a series of copies of a reference document, and for each one selecting a random location within that document and then introducing a 512-byte run of random bytes.</p>
<p>The reference document I used for these tests was Microsoft&#8217;s whitepaper, <cite>The Microsoft Office Open XML Formats</cite>.  This is a 16-page document, with title page with logo, a table of contents, a running text footer, and a text box.</p>
<h3>Test Execution</h3>
<p>I tested Microsoft Word 2003, Word 2007 and OpenOffice.org 3.2.   I attempted to load each test document into each editor.  Since corrupt documents have the potential to introduce application instability, I exited the editor between each test.</p>
<p>Each test outcome was recorded as one of:</p>
<ul>
<li>Silent Recovery:  The application gave no error or warning message.  The document loaded, with partial localized corruption, but most of the data was recoverable.</li>
<li>Prompted Recovery: The application gave an error or warning message offering to recover the data.  The document loaded, with partial localized corruption, but most of the data was recoverable.</li>
<li>Recovery Failed: The application gave an error or warning message offering to recover the data, but no data was able to be recovered.</li>
<li>Failure to load: The application gave an error message and refused to load the document, or crashed or hanged attempting to load it.</li>
</ul>
<p>The first two outcomes were scored as successes, and the last two were scored as failures.</p>
<h3>Results: Simulated File Truncation</h3>
<p>In this series of tests I took each reference document (in DOC, DOCX and ODT formats) and created 32 truncated files corresponding to 1-32 bytes truncation.  The results were the same regardless of the number of bytes truncated, as in the following table:</p>

<table id="wp-table-reloaded-id-3-no-1" class="wp-table-reloaded wp-table-reloaded-id-3">
<thead>
	<tr class="row-1">
		<th class="column-1">% Successful Recovery</th><th class="column-2">Office 2003</th><th class="column-3">Office 2007</th><th class="column-4">OpenOffice 3.2</th>
	</tr>
</thead>
<tbody>
	<tr class="row-2">
		<td class="column-1">DOC</td><td class="column-2">100%<br />
(Silent Recovery)</td><td class="column-3">100%<br />
(Silent Recovery)</td><td class="column-4">100%<br />
(Silent Recovery)</td>
	</tr>
	<tr class="row-3">
		<td class="column-1">OOXML</td><td class="column-2">0%<br />
(Failure to Load)</td><td class="column-3">100%<br />
(Prompted Recovery)</td><td class="column-4">0%<br />
(Failure to Load)</td>
	</tr>
	<tr class="row-4">
		<td class="column-1">ODF</td><td class="column-2">N/A</td><td class="column-3">100%<br />
(Prompted Recovery)</td><td class="column-4">100%<br />
(Prompted Recovery)</td>
	</tr>
</tbody>
</table>

<h3>Results: Simulated Sector Damage:</h3>
<p>In these tests I created 30 copies of each reference document and introduced a random 512-byte run of random bytes,  with the following summary results:</p>

<table id="wp-table-reloaded-id-6-no-1" class="wp-table-reloaded wp-table-reloaded-id-6">
<thead>
	<tr class="row-1">
		<th class="column-1">% Successful Recovery</th><th class="column-2">Office 2003</th><th class="column-3">Office 2007</th><th class="column-4">OpenOffice 3.2</th>
	</tr>
</thead>
<tbody>
	<tr class="row-2">
		<td class="column-1">DOC</td><td class="column-2">83%</td><td class="column-3">83%</td><td class="column-4">90%</td>
	</tr>
	<tr class="row-3">
		<td class="column-1">OOXML</td><td class="column-2">30%</td><td class="column-3">47%</td><td class="column-4">37%</td>
	</tr>
	<tr class="row-4">
		<td class="column-1">ODF</td><td class="column-2">N/A</td><td class="column-3">60%</td><td class="column-4">60%</td>
	</tr>
</tbody>
</table>

<h3>Discussion</h3>
<p>First, what do the results say about Microsoft&#8217;s claim that the OOXML format &#8220;improves&#8230;data recovery&#8230;beyond what&#8217;s possible with Office 2003 binary files&#8221;?  A look at the above two tables brings this claim into question.  With truncation errors, all three word processors scored 100% recovery using the legacy binary DOC format.  With OOXML the same result was achieved only with Office 2007.  But both Office 2003 and OpenOffice 3.2 failed to open any of the truncated documents.  With the simulated sector-level errors, all three tested applications did far better recovering data from legacy DOC binary files than from OOXML files.  For example, Microsoft Word 2007 recovered 83% of the DOC files but only 47% of the OOXML files.  OpenOffice 3.2 recovered 90% of the DOC files, but only 37% of the OOXML files.</p>
<p>In no case, of almost 200 tested documents, did we see the data recover of OOXML files exceed that of the legacy binary formats.  This makes sense, if you consider this from an information theoretic perspective.  The ZIP compression in OOXML, while it compresses the document at the same time makes the byte stream denser in terms of the information encoding.  The number of physical bits per information bits is smaller in the ZIP than in the uncompressed DOC file. (In the limit of perfect compression, this ratio would be 1-to-1.)  Because of this, a physical error of 1-bit introduces more than 1-bit of error in the information content of the document.  In other words, a compressed document, all else being equal, will be less robust, not more robust to &#8220;network and storage failures&#8221;.  Because of this it is extraordinary that Microsoft so frequently claims that OOXML is both smaller and more robust than the binary formats, without providing details of how they managed to optimize these two opposing and complementary qualities.</p>
<p>Although no similar claims have been made regarding ODF documents, I tested them as well.  Since ODF documents are compressed by ZIP, we would expect them to also be less robust to physical errors than DOC, for the same reasons discussed above.  This was confirmed in the tests.  However, ODF documents exhibited a higher recovery rate than OOXML.  Both OpenOffice 3.2 (60% versus 37%) as well as Word 2007 (60% versus 47%) had higher recovery rates for ODF documents.  If all else had been equal, we would have expected ODF documents to have lower recover rates than OOXML.  Why?  Because the ODF documents were on average 18% smaller than the corresponding OOXML documents, so the fixed 512-byte sector errors were proportionately larger impact in ODF documents.</p>
<p>The above is explainable if we consider the general problem of random errors in markup.  There are two opposing tendencies here.  On the one hand, the greater the ratio of character data to markup, the more likely it will be that any introduced error will be benign to the integrity of the document, since it will most likely occur within a block of text.  At the extreme, a plain text file, with no markup whatsoever, can handle any degree of error introduction with only proportionate data corruption.  However, one can also argue in the other direction, that the more encoded structure there is in the document, the easier it is to surgically remove only the damaged parts of the file.  However, we must acknowledge that physical errors, the &#8220;network and storage failures&#8221; that we looked at in these tests, do not respect document structure.  Certainly the results of these tests call into question the wisdom of claiming that the complexity of the document model leads it to be more robust.  When things go wrong, simplicity often wins.</p>
<p>Finally, I should observe that application difference, as well as file format differences, play a role in determining success in recovering damaged files.  With DOC files, OpenOffice.org 3.2 was able to read more files than either version of Microsoft Word.  This confirms some of the anecdotes I&#8217;ve heard that OpenOffice will read files that Word will not.  With OOXML files, however, Word 2007 did best, though OpenOffice fared better than Word 2003.  With ODF files, both Word and OpenOffice scored the same.</p>
<h3>Further work</h3>
<p>Obviously the field of document file robustness is a complex question.  These tests strongly motivate the thought that there are real differences in how robust document formats are with respect to corruption, and these observed differences appear to contradict claims made in Microsoft&#8217;s OOXML promotional materials.  It would require more tests to demonstrate the significance and magnitude of those differences.</p>
<p>With more test cases, one could also determine exactly which portions of a file are the most vulnerable.  For example, one could make a heat map visualization to illustrate this.  Are there any particular areas of a document where even a 1-byte error can cause total failures?  It appears that a single-byte truncation error on OOXML documents will cause a total failure in Office 2003, but not in Office 2007.  Are there any 1-byte errors that cause failure in both editors?</p>
<p>We also need to remember that neither OOXML nor ODF are pure XML formats.  Both formats involve a ZIP container file with multiple XML files and associated resources inside.  So document corruption may consist of damage to the directory or compression structures of the ZIP container as well as errors introduced into the contained XML and other resources.    The directory of the ZIP&#8217;s contents is stored at the end of the file.  So the truncation errors are damaging the directory.  However, this information is redundant, since each undamaged ZIP entry can be recovered in a sequential processing of the archive.  So I would expect a near perfect recovery rate for the modest truncations exercised in these tests.  But with OOXML files in Office 2003 and OpenOffice 3.2, even a truncation of a single byte prevented the document from loaded.  This should be relatively easy to fix.</p>
<p>Also, the large number of tests with the &#8220;Silently Recover&#8221; outcome is a concern.  Although the problem in general is solved with digital signatures, there should be some lightweight way, perhaps checking CRC&#8217;s at the ZIP entry level, to detect and warn users when a file has been damaged.  If this is not done, the user could inadvertently work and resave the damaged work or otherwise propagate the errors, when an early warning of the error would potentially give the user the opportunity, for example, to download the file again, or seek another, hopefully, undamaged copy of the document.  But by silently recovering and loading the file, the user is not made aware of their risky situation.</p>
<h3>Files and detailed results</h3>
<p>If you are interested in repeating or extending these tests, here are the test files (including reference files) in <a href="http://www.robweir.com/blog/attachments/doc-errors/doc.zip">DOC</a>, <a href="http://www.robweir.com/blog/attachments/doc-errors/docx.zip">DOCX</a> and <a href="http://www.robweir.com/blog/attachments/doc-errors/odt.zip">ODT</a> formats.  You can also download a ZIP of the <a href="http://www.robweir.com/blog/attachments/doc-errors/code.zip">Java source code</a> I used to introduce the document errors.  And you can also download the ODF spreadsheet containing the <a href="http://www.robweir.com/blog/attachments/doc-errors/test-results.ods">detailed results</a>.</p>
<p>WARNING: The above ZIP files contain corrupted documents.  Loading them could potentially cause system instability and crash your word processor or operating system (if you are running Windows).  You probably don&#8217;t want to be playing with them at the same time you are editing other critical documents.</p>
<h3>Updates</h3>
<p>2010-02-15: I did an additional 100 tests of DOC and DOCX in Office 2007.  Combined with the previous 30, this gives the DOC files a recovery rate of 92% compared to only 45% for DOCX.  With that we have significant results at 99% confidence level.</p>
<p>Given that, can anyone see a basis for Microsoft&#8217;s claims?  Or is this more subtle?  Maybe they really meant to say that it is easier to recover from errors in an OOXML file, while ignoring the more significant fact that it is also far easier to corrupt an OOXML file.  If so, the greater susceptibility to corruption seems to have outpaced any purported enhanced ability of Office 2007 to recover from these errors.</p>
<p>It is like a car with bad brakes claiming that is has better airbags.  No thanks.  I&#8217;ll pass.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=mdanDcvGIFA:k1PSq8B81q4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=mdanDcvGIFA:k1PSq8B81q4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=mdanDcvGIFA:k1PSq8B81q4:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=mdanDcvGIFA:k1PSq8B81q4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=mdanDcvGIFA:k1PSq8B81q4:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/robweir/antic-atom/~4/mdanDcvGIFA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robweir.com/blog/2010/02/office-document-corruption.html/feed</wfw:commentRss>
		<slash:comments>21</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/us/</creativeCommons:license>
	<feedburner:origLink>http://www.robweir.com/blog/2010/02/office-document-corruption.html</feedburner:origLink></item>
		<item>
		<title>Weekly Links #2</title>
		<link>http://feedproxy.google.com/~r/robweir/antic-atom/~3/jDBGRofBqc0/weekly-links-2.html</link>
		<comments>http://www.robweir.com/blog/2010/02/weekly-links-2.html#comments</comments>
		<pubDate>Sun, 14 Feb 2010 00:37:14 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Weekly Links]]></category>

		<guid isPermaLink="false">http://www.robweir.com/blog/?p=694</guid>
		<description><![CDATA[

Q&#38;A: IBM&#8217;s Alistair Rennie on the big picture for Lotus &#124; Between the Lines &#124; ZDNet.com
&#8220;Ultimately, new types of documents are possible. I don’t see my kids creating content 5 to 10 years from now going into a dumb text editor and doing a presentation. I see them using rich media and aggregating small bits [...]]]></description>
			<content:encoded><![CDATA[<p></p><ul class="diigo-linkroll">
<li>
<p class="diigo-link"><a rel="nofollow" href="http://blogs.zdnet.com/BTL/?p=30672">Q&amp;A: IBM&#8217;s Alistair Rennie on the big picture for Lotus | Between the Lines | ZDNet.com</a></p>
<p class="diigo-description">&#8220;Ultimately, new types of documents are possible. I don’t see my kids creating content 5 to 10 years from now going into a dumb text editor and doing a presentation. I see them using rich media and aggregating small bits of data from the Web. The office suite box is constraining. People should interchange content over time, use collaborative Web-based editing and components that can be shared. Symphony is fundamental to changing and enabling open standards.&#8221;</p>
<p class="diigo-tags"><a style="color: #000 !important; text-decoration: none !important;" href="http://www.diigo.com/cloud/rcweir">tags</a>: <a href="http://www.diigo.com/user/rcweir/ODF">ODF</a>, <a href="http://www.diigo.com/user/rcweir/Symphony">Symphony</a></p>
</li>
<li>
<p class="diigo-link"><a rel="nofollow" href="http://drupal.org/project/odfimport">ODF Import | drupal.org</a></p>
<p class="diigo-description">&#8220;ODF Import allows a user to import ODF files into drupal nodes. Currently the module can import content from ODT files only. No style information is imported in current release.<br />
Future releases will support other ODF formats as well as importing of styles from an ODF document.&#8221;</p>
<p class="diigo-tags"><a style="color: #000 !important; text-decoration: none !important;" href="http://www.diigo.com/cloud/rcweir">tags</a>: <a href="http://www.diigo.com/user/rcweir/ODF">ODF</a></p>
</li>
<li>
<p class="diigo-link"><a rel="nofollow" href="http://www.wp-united.com/2010/02/13/wp-united-user-manual-help-needed">WP-United User Manual: Help Needed!</a></p>
<p class="diigo-description">&#8220;You can download the manual from SVN, here. It is in ODF, and it would be great if it could stay that way — if you are using software by The Man, you can download an ODF add-in to open and save the format. (For downloads, I will convert it to PDF, and probably many other formats. The key is keeping the source in ODF).&#8221;</p>
<p class="diigo-tags"><a style="color: #000 !important; text-decoration: none !important;" href="http://www.diigo.com/cloud/rcweir">tags</a>: <a href="http://www.diigo.com/user/rcweir/ODF">ODF</a></p>
</li>
<li>
<p class="diigo-link"><a rel="nofollow" href="http://www.sciencedirect.com/science?_ob=ArticleURL&amp;_udi=B7CW4-4V936P6-1&amp;_user=10&amp;_coverDate=03%2F31%2F2009&amp;_rdoc=1&amp;_fmt=high&amp;_orig=search&amp;_sort=d&amp;_docanchor=&amp;view=c&amp;_acct=C000050221&amp;_version=1&amp;_urlVersion=0&amp;_userid=10&amp;md5=b6e1e90ed0303dfe13f2b8bf90049992">Digital Investigation : Data concealment and detection in Microsoft Office 2007 files</a></p>
<p class="diigo-description">&#8220;As more offenders attempt to conceal incriminating data or stolen information, it is important for forensic examiners and computer security professionals to know where to look for concealed information. This paper demonstrates how data concealment in Microsoft Office 2007 files is possible. The Office Open XML (OOXML) format forms the basis of Microsoft Office 2007, and an individual can use OOXML to define customized parts, relationships, or both within a Microsoft Office 2007 file to store and conceal information&#8221;</p>
<p class="diigo-tags"><a style="color: #000 !important; text-decoration: none !important;" href="http://www.diigo.com/cloud/rcweir">tags</a>: <a href="http://www.diigo.com/user/rcweir/OOXML">OOXML</a></p>
</li>
<li>
<p class="diigo-link"><a rel="nofollow" href="http://ostatic.com/blog/openoffice-org-3-2-10-years-in-the-making">OpenOffice.org 3.2: 10 Years in the Making</a></p>
<p class="diigo-description">&#8220;File format support gets a boost in 3.2, including better compliance with the Open Document Format (ODF). One of the sad facts about ODF support, at least at the moment, is that multiple suites support ODF but do it differently — thus making the interoperable format rather less than interoperable. OpenOffice.org supports a &#8220;superset&#8221; of ODF 1.2, and the latest release will now warn users if they are using Extended features that may not be supported by other suites. &#8220;</p>
<p class="diigo-tags"><a style="color: #000 !important; text-decoration: none !important;" href="http://www.diigo.com/cloud/rcweir">tags</a>: <a href="http://www.diigo.com/user/rcweir/ODF">ODF</a>, <a href="http://www.diigo.com/user/rcweir/OpenOffice">OpenOffice</a></p>
</li>
<li>
<p class="diigo-link"><a rel="nofollow" href="http://jfopen.blogspot.com/2010/02/relevant-link-of-today-ooxml-not.html">Jochen Friedrich&#8217;s Open Blog: Relevant link of today: OOXML not suitable for Norwegian government</a></p>
<p class="diigo-description">&#8220;A study published by the Norwegian &#8220;Direktoratet for forvaltning og IKT&#8221; (Agency for public adminstration and ICT) comes to the result that OOXML is not suitable for being used by the Norwegian government. The study is available online in Norwegian. Amongst the reasons that are given are that the standard with its more than 6000 pages is not appropriate; it is not suitable for collaboration; and there is only one software that can implement it and produce the respective file format. Norway recommends pdf for electronic document exchange of documents that don&#8217;t need to be edited and ODF (open document format) for all other documents.&#8221;</p>
<p class="diigo-tags"><a style="color: #000 !important; text-decoration: none !important;" href="http://www.diigo.com/cloud/rcweir">tags</a>: <a href="http://www.diigo.com/user/rcweir/ODF">ODF</a></p>
</li>
<li>
<p class="diigo-link"><a rel="nofollow" href="http://odp-view.googlecode.com/svn/trunk/src/test1.html">http://odp-view.googlecode.com/svn/trunk/src/test1.html</a></p>
<p class="diigo-description">&#8220;Web based Open Office Presentation Viewer -v0.0000 &#8211; A effort to make a pure Javascript ODP Viewer&#8221;</p>
<p class="diigo-tags"><a style="color: #000 !important; text-decoration: none !important;" href="http://www.diigo.com/cloud/rcweir">tags</a>: <a href="http://www.diigo.com/user/rcweir/ODF">ODF</a></p>
</li>
<li>
<p class="diigo-link"><a rel="nofollow" href="http://monkeyiq.blogspot.com/2010/01/koffice-rdf-who-what-when-where.html">monkeyiq: KOffice &amp; RDF: Who, What, When, Where?</a></p>
<p class="diigo-description">The first of a series of posts on what KOffice is doing to support the new metadata framework in ODF 1.2.   Some good work shown here in the videos.</p>
<p class="diigo-tags"><a style="color: #000 !important; text-decoration: none !important;" href="http://www.diigo.com/cloud/rcweir">tags</a>: <a href="http://www.diigo.com/user/rcweir/ODF">ODF</a>, <a href="http://www.diigo.com/user/rcweir/RDF">RDF</a></p>
</li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=jDBGRofBqc0:uTz4AKUqEuw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=jDBGRofBqc0:uTz4AKUqEuw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=jDBGRofBqc0:uTz4AKUqEuw:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=jDBGRofBqc0:uTz4AKUqEuw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=jDBGRofBqc0:uTz4AKUqEuw:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/robweir/antic-atom/~4/jDBGRofBqc0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robweir.com/blog/2010/02/weekly-links-2.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/us/</creativeCommons:license>
	<feedburner:origLink>http://www.robweir.com/blog/2010/02/weekly-links-2.html</feedburner:origLink></item>
		<item>
		<title>Weekly Links #1</title>
		<link>http://feedproxy.google.com/~r/robweir/antic-atom/~3/9AOfCoX6_5A/weekly-links-1.html</link>
		<comments>http://www.robweir.com/blog/2010/02/weekly-links-1.html#comments</comments>
		<pubDate>Sun, 07 Feb 2010 00:38:37 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Weekly Links]]></category>

		<guid isPermaLink="false">http://www.robweir.com/blog/?p=669</guid>
		<description><![CDATA[

Advogato: Proprietary File Formats conflict with Equal Opportunities
tags:  standards


Bob Sutor: What would ODF support for WordPress look like?
tags: ODF


Lotus Solutions Development Lab: Lab 04: ODFDOM: Generating ODF Documents from a Notes Agent
tags: ODF, Notes


Gwennel &#8211; A WYSIWYG and WYSIWYM editor
&#8220;Gwennel is a free WYSIWYG and WYSIWYM editor for Windows supporting natively the Open Document Format.&#8221;
tags: [...]]]></description>
			<content:encoded><![CDATA[<p></p><ul class="diigo-linkroll">
<li>
<p class="diigo-link"><a rel="nofollow" href="http://www.advogato.org/article/1032.html">Advogato: Proprietary File Formats conflict with Equal Opportunities</a></p>
<p class="diigo-tags"><a style="color: #000 !important; text-decoration: none !important;" href="http://www.diigo.com/cloud/rcweir">tags</a>:  <a href="http://www.diigo.com/user/rcweir/standards">standards</a></p>
</li>
<li>
<p class="diigo-link"><a rel="nofollow" href="http://www.sutor.com/c/2010/02/odf-support-for-wordpress">Bob Sutor: What would ODF support for WordPress look like?</a></p>
<p class="diigo-tags"><a style="color: #000 !important; text-decoration: none !important;" href="http://www.diigo.com/cloud/rcweir">tags</a>: <a href="http://www.diigo.com/user/rcweir/ODF">ODF</a></p>
</li>
<li>
<p class="diigo-link"><a rel="nofollow" href="http://www-10.lotus.com/ldd/lswiki.nsf/dx/Lotus_Solutions_Development_Lab_Lab_04_ODFDOM_Generating_ODF_Documents_from_a_Notes_Agent">Lotus Solutions Development Lab: Lab 04: ODFDOM: Generating ODF Documents from a Notes Agent</a></p>
<p class="diigo-tags"><a style="color: #000 !important; text-decoration: none !important;" href="http://www.diigo.com/cloud/rcweir">tags</a>: <a href="http://www.diigo.com/user/rcweir/ODF">ODF</a>, <a href="http://www.diigo.com/user/rcweir/Notes">Notes</a></p>
</li>
<li>
<p class="diigo-link"><a rel="nofollow" href="http://gwennel.org">Gwennel &#8211; A WYSIWYG and WYSIWYM editor</a></p>
<p class="diigo-description">&#8220;Gwennel is a free WYSIWYG and WYSIWYM editor for Windows supporting natively the Open Document Format.&#8221;</p>
<p class="diigo-tags"><a style="color: #000 !important; text-decoration: none !important;" href="http://www.diigo.com/cloud/rcweir">tags</a>: <a href="http://www.diigo.com/user/rcweir/ODF">ODF</a></p>
</li>
<li>
<p class="diigo-link"><a rel="nofollow" href="http://www.osor.eu/news/dk-danish-state-administrations-to-use-odf">OSOR.EU: Danish state administrations to use ODF</a></p>
<p class="diigo-description">&#8220;The open standard ODF is recognised by many European member states. Next to Denmark it is also a national standard for public administrations in Belgium, Germany, France, Lithuania, Sweden and the Netherlands. ODF is recommended by Norway and it is one of the document standards at NATO.&#8221;</p>
<p class="diigo-tags"><a style="color: #000 !important; text-decoration: none !important;" href="http://www.diigo.com/cloud/rcweir">tags</a>: <a href="http://www.diigo.com/user/rcweir/ODF">ODF</a></p>
</li>
<li>
<p class="diigo-link"><a rel="nofollow" href="http://www.cphpost.dk/business/business/48148-state-dumps-microsoft.html">Copenhagen Post: State dumps Microsoft</a></p>
<p class="diigo-description">&#8220;After years of deliberation, parliament has voted to stop using Microsoft’s Open Suite file format and switch to ‘Open Document Format’&#8221;</p>
<p class="diigo-tags"><a style="color: #000 !important; text-decoration: none !important;" href="http://www.diigo.com/cloud/rcweir">tags</a>: <a href="http://www.diigo.com/user/rcweir/ODF">ODF</a></p>
</li>
<li>
<p class="diigo-link"><a rel="nofollow" href="http://blogs.zdnet.com/BTL/?p=30413">ZDNet: IBM launches Lotus Symphony 3 beta; Office alternatives pile up</a></p>
<p class="diigo-description">&#8220;Jeannette Barlow, Symphony’s product manager, called the latest release of IBM’s free office suite &#8216;the most significant investment and enhancement from that original delivery.&#8217;&#8221;</p>
<p class="diigo-tags"><a style="color: #000 !important; text-decoration: none !important;" href="http://www.diigo.com/cloud/rcweir">tags</a>: <a href="http://www.diigo.com/user/rcweir/Symphony">Symphony</a></p>
</li>
<li>
<p class="diigo-link"><a rel="nofollow" href="http://news.zdnet.co.uk/software/0,1000000121,40016263,00.htm">Denmark adopts ODF and PDF/A &#8211; ZDNet.co.uk</a></p>
<p class="diigo-tags"><a style="color: #000 !important; text-decoration: none !important;" href="http://www.diigo.com/cloud/rcweir">tags</a>: <a href="http://www.diigo.com/user/rcweir/ODF">ODF</a></p>
</li>
<li>
<p class="diigo-link"><a rel="nofollow" href="https://dct.sun.com/dct/forms/reg_us_2001_720_0.jsp">Integrating OpenDocument Format with Microsoft Office Document Formats</a></p>
<p class="diigo-description">&#8220;In this guide, you&#8217;ll learn how to implement and integrate the OpenDocument Format into your environment where other file formats are also in use.  Topics include advantages of ODF, best practices for common scenarios, developing an action plan for ODF adoption, document management systems, and collaborating with Microsoft Office users.&#8221;</p>
<p class="diigo-tags"><a style="color: #000 !important; text-decoration: none !important;" href="http://www.diigo.com/cloud/rcweir">tags</a>: <a href="http://www.diigo.com/user/rcweir/ODF">ODF</a></p>
</li>
<li>
<p class="diigo-link"><a rel="nofollow" href="http://technology.inc.com/software/articles/201002/doc.html">Doc or Docx?</a></p>
<p class="diigo-description">&#8220;For those using older versions of Microsoft Word, or other non-Microsoft word processing software, the new .docx format can be a real pain. It has caused dissension in some workplaces. &#8220;</p>
<p class="diigo-tags"><a style="color: #000 !important; text-decoration: none !important;" href="http://www.diigo.com/cloud/rcweir">tags</a>: <a href="http://www.diigo.com/user/rcweir/OOXML">OOXML</a></p>
</li>
<li>
<p class="diigo-link"><a rel="nofollow" href="http://lpod-project.org/actualites-lpod/git-repository-access-available?language=en">lpOD:  Git repository access available!</a></p>
<p class="diigo-description">lpOD is a powerful new python API for reading, writing or manipulating ODF documents.</p>
<p class="diigo-tags"><a style="color: #000 !important; text-decoration: none !important;" href="http://www.diigo.com/cloud/rcweir">tags</a>: <a href="http://www.diigo.com/user/rcweir/ODF">ODF</a></p>
</li>
</ul>
<p>Posted from <a href="http://www.diigo.com">Diigo</a>. The rest of my <a href="http://www.diigo.com/user/rcweir">favorite links</a> are here.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=9AOfCoX6_5A:oq3jj9M4Y00:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=9AOfCoX6_5A:oq3jj9M4Y00:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=9AOfCoX6_5A:oq3jj9M4Y00:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=9AOfCoX6_5A:oq3jj9M4Y00:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=9AOfCoX6_5A:oq3jj9M4Y00:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/robweir/antic-atom/~4/9AOfCoX6_5A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robweir.com/blog/2010/02/weekly-links-1.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/us/</creativeCommons:license>
	<feedburner:origLink>http://www.robweir.com/blog/2010/02/weekly-links-1.html</feedburner:origLink></item>
		<item>
		<title>ODF 1.2 Part 1 Public Review</title>
		<link>http://feedproxy.google.com/~r/robweir/antic-atom/~3/4aH0pd7FyDs/odf-1-2-part-1-public-review.html</link>
		<comments>http://www.robweir.com/blog/2010/01/odf-1-2-part-1-public-review.html#comments</comments>
		<pubDate>Tue, 26 Jan 2010 02:32:21 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[ODF]]></category>
		<category><![CDATA[OASIS]]></category>
		<category><![CDATA[OpenFormula]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.robweir.com/blog/?p=600</guid>
		<description><![CDATA[A major milestone was reached for the OASIS ODF TC today.  The latest Committee Draft of ODF 1.2 Part 1 was sent out for a 60-day public review.
&#8220;What does this mean, and why should I care?&#8221; you might be asking.  That&#8217;s a fair question.
First, a quick review of the OASIS standards approval process.  The stages [...]]]></description>
			<content:encoded><![CDATA[<p></p><div class="wp-caption alignright" style="width: 500px">
	<a href="http://www.flickr.com/photos/rcweir/4306659472/"><img class=" " src="http://farm5.static.flickr.com/4049/4306659472_6f852ede31.jpg" alt="" width="500" height="333" /></a>
	<p class="wp-caption-text">Salt and Fresh-ground Pepper (photo by author)</p>
</div>
<p>A major milestone was reached for the OASIS ODF TC today.  The latest Committee Draft of ODF 1.2 Part 1 was <a href="http://lists.oasis-open.org/archives/office/201001/msg00255.html">sent out for a 60-day public review</a>.</p>
<p>&#8220;What does this mean, and why should I care?&#8221; you might be asking.  That&#8217;s a fair question.</p>
<p>First, a quick review of the OASIS standards approval process.  The stages look like this:</p>
<ol>
<li>TC creates one or more Working Drafts</li>
<li>A Working Draft may then additionally be approved as a Committee Draft</li>
<li>A Committee Draft may then be additionally approved as a Public Review Draft</li>
<li>After addressing received public comments, a Committee Draft may be approved as a Committee Specification</li>
<li>Finally, a Committee Specification may be voted on by OASIS as an OASIS Standard</li>
</ol>
<p>There is the possibility of iteration at most of these stages.  So we&#8217;re not done with ODF 1.2.   There is still work to be done, but we are certainly in the endgame now.</p>
<p>Also, it is important to remember that ODF 1.2 has been factored into three &#8220;parts&#8221;:</p>
<ul>
<li>Part 1 specifies the core schema</li>
<li>Part 2 is OpenFormula (spreadsheet formulas)</li>
<li>Part 3 defines the packaging model of ODF, and went out for public review <a href="http://www.robweir.com/blog/2009/11/odf-12-part-3-goes-out-for-public.html">back in November</a></li>
</ul>
<p>Part 1 is by far the largest of the 3 parts, at 838 pages.  Here is a high-level view of what is covered:</p>
<ol>
<li>Introduction</li>
<li>Scope</li>
<li>Document Structure</li>
<li>Metadata</li>
<li>Text Content</li>
<li>Paragraph Elements Content</li>
<li>Text Fields</li>
<li>Text Indexes</li>
<li>Tables</li>
<li>Graphic Content</li>
<li>Chart Content</li>
<li>Database Front-end Document Content</li>
<li>Form Content</li>
<li>Common Content</li>
<li>SMIL Animations</li>
<li>Styles</li>
<li>Formatting Elements</li>
<li>Datatypes</li>
<li>General Attributes</li>
<li>Formatting Attributes</li>
<li>Document Processing</li>
<li>Conformance</li>
<li>Appendix A.  OpenDocument Relax NG Schema</li>
<li>Appendix B.  OpenDocument Metadata Manifest Ontology</li>
<li>Appendix C.  MIME Types and File Name Extensions (Non Normative)</li>
<li>Appendix E.  Recommend Usage of SMIL</li>
<li>Appendix G.  Acknowledgments (Non Normative)</li>
</ol>
<p>If any of this interests you I&#8217;d encourage you to take a look at the draft and submit comments per the process defined in the <a href="http://lists.oasis-open.org/archives/office/201001/msg00255.html">public review announcement</a>.  I expect few will review the entire specification, but even if you can review only a chapter of particular interest to you, or even do a random page review, that will help.  We&#8217;re looking for any reasonable feedback, from typographical errors, to ambiguities to new feature proposals.  It is all good.</p>
<p>You can follow the incoming comments via the TC&#8217;s <a href="http://lists.oasis-open.org/archives/office-comment/">comment list</a>, or unofficially via the <a href="http://twitter.com/ODFJIRA">ODFJIRA</a> Twitter feed.</p>
<p>Now, I know that a vigorous public review, with many reviewers and many comments, is seen in some quarters as inconvenient and troublesome.  It is thought better (in those circles) for standards to sail by, unread, unchallenged and unimplemented.  I do not subscribe to that view.  I ask you to not be gentle on the ODF 1.2 public review draft.  Send us a lot of comments, so we know where we need to improve.  Send us a lot of defect reports, so we know what to fix.  Send us a lot of feature proposals, so we know what to do next.  Short of joining the ODF TC directly, this is the best opportunity to give us feedback.<span class="zem-script more-related"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=4aH0pd7FyDs:gTj8UdUwSKk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=4aH0pd7FyDs:gTj8UdUwSKk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=4aH0pd7FyDs:gTj8UdUwSKk:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=4aH0pd7FyDs:gTj8UdUwSKk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=4aH0pd7FyDs:gTj8UdUwSKk:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/robweir/antic-atom/~4/4aH0pd7FyDs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robweir.com/blog/2010/01/odf-1-2-part-1-public-review.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/us/</creativeCommons:license>
	<feedburner:origLink>http://www.robweir.com/blog/2010/01/odf-1-2-part-1-public-review.html</feedburner:origLink></item>
		<item>
		<title>At the Setting of the Sun</title>
		<link>http://feedproxy.google.com/~r/robweir/antic-atom/~3/g3GrKYLtEeM/at-the-setting-of-the-sun.html</link>
		<comments>http://www.robweir.com/blog/2010/01/at-the-setting-of-the-sun.html#comments</comments>
		<pubDate>Fri, 22 Jan 2010 02:26:14 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[OpenOffice]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Sun]]></category>

		<guid isPermaLink="false">http://www.robweir.com/blog/?p=589</guid>
		<description><![CDATA[    
As my readers have no doubt heard by now, today the EC cleared Oracle&#8217;s proposed acquisition of Sun Microsystems.  This will undoubtedly have a significant impact on all Sun employees,  many of whom I have  worked with toward common purposes, on standards or open source projects, and whom I am [...]]]></description>
			<content:encoded><![CDATA[<p></p><div id="attachment_592" class="wp-caption aligncenter" style="width: 800px">
	<a href="http://www.robweir.com/blog/wp-content/uploads/2010/01/sunset.jpg"><img class="size-full wp-image-592" title="Ssunset" src="http://www.robweir.com/blog/wp-content/uploads/2010/01/sunset.jpg" alt="" width="800" height="536" /></a>
	<p class="wp-caption-text">Sunset at First Encounter Beach, Eastham, Massachusetts (photo by Rob Weir)</p>
</div>
<p><!-- LEFT MARGIN END --> <!--startindex--> <!-- ============ --> <!-- MAIN CONTENT --> <!-- ============ --></p>
<p>As my readers have no doubt heard by now, today the <a href="http://europa.eu/rapid/pressReleasesAction.do?reference=IP/10/40">EC</a> cleared Oracle&#8217;s proposed acquisition of Sun Microsystems.  This will undoubtedly have a significant impact on all Sun employees,  many of whom I have  worked with toward common purposes, on standards or open source projects, and whom I am proud to call my colleagues.  I wish them all best of luck.</p>
<p>I know a little of what they will be going through in the weeks and months ahead, having worked for Lotus Development Corporation when IBM acquired it in 1995.  So here is my unsolicited advice.  Some day they will come.  It may be in weeks, maybe months from now, maybe early in the morning, maybe after hours or on the weekend.  But that day will come.  They will come and strip the Sun logo from the wall in the lobby and replace it with the Oracle logo. Watch for that day, that narrow window of opportunity.  Save the logo.  It is your trophy, your icon, your totem.  You will always be Sun.  Don&#8217;t let them take it away.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=g3GrKYLtEeM:0eGpqOPAdOg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=g3GrKYLtEeM:0eGpqOPAdOg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=g3GrKYLtEeM:0eGpqOPAdOg:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=g3GrKYLtEeM:0eGpqOPAdOg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=g3GrKYLtEeM:0eGpqOPAdOg:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/robweir/antic-atom/~4/g3GrKYLtEeM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robweir.com/blog/2010/01/at-the-setting-of-the-sun.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/us/</creativeCommons:license>
	<feedburner:origLink>http://www.robweir.com/blog/2010/01/at-the-setting-of-the-sun.html</feedburner:origLink></item>
		<item>
		<title>The Duel: A curious mathematical puzzle</title>
		<link>http://feedproxy.google.com/~r/robweir/antic-atom/~3/jhHDHdsXtpU/duel-curious-mathematical-puzzle.html</link>
		<comments>http://www.robweir.com/blog/2010/01/duel-curious-mathematical-puzzle.html#comments</comments>
		<pubDate>Wed, 20 Jan 2010 14:33:59 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Puzzles]]></category>
		<category><![CDATA[Add new tag]]></category>
		<category><![CDATA[Game Theory]]></category>
		<category><![CDATA[Math]]></category>
		<category><![CDATA[Probability]]></category>

		<guid isPermaLink="false">http://www.robweir.com/blog/?p=580</guid>
		<description><![CDATA[Captain Galaxy and Commander Glarcon are locked in mortal combat.   Each mans a battle tank armed with N photonic missiles which move at the speed of light.   They move toward each other at constant velocity=v on a 1-dimensional track, unable to stop or reverse direction.  Assume v &#60;&#60; c.  The probability of scoring a [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Captain Galaxy and Commander Glarcon are locked in mortal combat.   Each mans a battle tank armed with N photonic missiles which move at the speed of light.   They move toward each other at constant velocity=v on a 1-dimensional track, unable to stop or reverse direction.  Assume v &lt;&lt; c.  The probability of scoring a kill with a missile is described by a function f(d) which monotonically increases from 0 to 1 as the distance between the tanks decreases from infinity to 0.  If the distance closes to 0 and no missiles are fired, both tanks are destroyed in the collision.    Assume each combatant attempts to maximize their own probability of survival.</p>
<p><a href="http://www.robweir.com/blog/wp-content/uploads/2010/01/duel.png"><img class="size-full wp-image-584 alignnone" title="The Duel" src="http://www.robweir.com/blog/wp-content/uploads/2010/01/duel.png" alt="" width="557" height="127" /></a></p>
<p>Note that this is not strictly a zero-sum game, since it is possible for neither player to survive.  But it is impossible for both to survive.</p>
<p>The state of the game is thus described by three variables:</p>
<ul>
<li>d=distance between the players</li>
<li>N1= number of own missiles remaining</li>
<li>N2= number of opponent&#8217;s missiles remaining</li>
</ul>
<p>A strategy S(d,N1,N2) would describe a combatant&#8217; actions (shoot or don&#8217;t shoot) for all possible states.</p>
<ol>
<li>If each player has exactly one missile what is the optimal strategy?  Clearly, if the first player shoots and misses, the 2nd will win by waiting for d to approach 0 and then make a last minute shot.</li>
<li>What if each player has exactly two missiles?</li>
<li>What if each player has N missiles?</li>
</ol>
<p>It may simplify the problem to assume f(d) is proportionate to 1/d or 1/d^2 and then solve the general case.<a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/e01b50f8-ceb8-4735-bc4f-2fa1c1d47894/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=e01b50f8-ceb8-4735-bc4f-2fa1c1d47894" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=jhHDHdsXtpU:SapTwTRP_Uc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=jhHDHdsXtpU:SapTwTRP_Uc:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=jhHDHdsXtpU:SapTwTRP_Uc:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=jhHDHdsXtpU:SapTwTRP_Uc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=jhHDHdsXtpU:SapTwTRP_Uc:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/robweir/antic-atom/~4/jhHDHdsXtpU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robweir.com/blog/2010/01/duel-curious-mathematical-puzzle.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/us/</creativeCommons:license>
	<feedburner:origLink>http://www.robweir.com/blog/2010/01/duel-curious-mathematical-puzzle.html</feedburner:origLink></item>
		<item>
		<title>Top 10 Seed and Plant Catalogs for New England</title>
		<link>http://feedproxy.google.com/~r/robweir/antic-atom/~3/XTsXDb-itaM/2010-seed-catalogs-new-england.html</link>
		<comments>http://www.robweir.com/blog/2010/01/2010-seed-catalogs-new-england.html#comments</comments>
		<pubDate>Fri, 15 Jan 2010 01:55:25 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Gardening]]></category>
		<category><![CDATA[Cultivar]]></category>
		<category><![CDATA[Fruit]]></category>
		<category><![CDATA[Plant]]></category>
		<category><![CDATA[Seed]]></category>

		<guid isPermaLink="false">http://www.robweir.com/blog/?p=477</guid>
		<description><![CDATA[The ground is blanketed in snow, and will remain so for most of the next 3 months.  The temperature ranges from cold to frigid.  It is hard to think of spring, but now is the time when the garden planning begins, when I start making lists, drawing plot diagrams, calculating planting times, and [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>The ground is blanketed in snow, and will remain so for most of the next 3 months.  The temperature ranges from cold to frigid.  It is hard to think of spring, but now is the time when the garden planning begins, when I start making lists, drawing plot diagrams, calculating planting times, and anticipating, in my mind, the eventual blooms of summer and the harvest of next fall.</p>
<p>This is also the time when my mailbox fills up with catalogs from plantsmen and nurseries, offering new <a class="zem_slink" title="Cultivar" rel="wikipedia" href="http://en.wikipedia.org/wiki/Cultivar">cultivars</a>, rediscovered <a class="zem_slink" title="Heirloom plant" rel="wikipedia" href="http://en.wikipedia.org/wiki/Heirloom_plant">heirloom varieties</a> and all manner of new garden gadgets.  When possible I prefer to support local nurseries.  Their plants are chosen to be well-adapted for my regional conditions.  Of course, the downside is that if you buy locally, then you&#8217;ll be buying the same plants as your neighbors, and who wants to have their landscaping look the same as everyone else on the street?</p>
<p>Of the dozens of catalogs I receive every winter, there are a few that I return to year after year, the ones where I find the immense variety I crave,  as well as high quality service.  The following is my &#8220;top 10 list&#8221; of seed and plant catalogs suitable for New England:</p>
<ol>
<li><a href="http://www.fedcoseeds.com/">Fedco Seeds</a> (Maine)   Their new 137 page catalog covers seeds, tubers and organic growing supplies.  The emphasis is on hardy and short-season varieties suitable for northern gardens.</li>
<li><a href="http://www.noursefarms.com/">Nourse Farms</a> (Massachusetts) Strawberries, raspberries, blackberries, currants, gooseberries live plants, including new introductions.  They are my first choice for berries.</li>
<li> <a href="http://www.territorialseed.com/">Territorial Seed Company</a> (Oregon)  Very informative catalog, 167 pages, should be a model for others.  Clearly indicates which seeds are open pollinated, which are <a class="zem_slink" title="F1 hybrid" rel="wikipedia" href="http://en.wikipedia.org/wiki/F1_hybrid">F1 hybrids</a>, which are organic, disease resistance, days to maturity, etc.   Most seeds are available in different packet sizes, ranging from small samplers to larger packets for small commercial growers.</li>
<li>Artistic Gardens / <a href="https://www.artisticgardens.com/catalog/">Le Jardin du Gourmet</a> (Vermont)   Their <a href="https://www.artisticgardens.com/catalog/product_info.php?cPath=82&amp;products_id=498">50 Sample Herb Packet Special</a> is a regular annual purchase for me.  At any other seed company you pay $3 or so for a packet containing enough basil seeds for a pesto factory.  Total overkill for a mall garden, and expensive if you want to plant a wide variety of herbs.   But for a very reasonable price Le Jardin du Gourmet offers a bundle of  50 herb seed packets, each very small, but providing &#8220;just enough&#8221; seeds for my small garden.  You have no control over the variety, so if you absolutely must have Genovese Basil, this is not for you, but in turn for giving up control over the variety you get large selection of culinary and traditional medicinal herbs for a very reasonable price.  I find it also gets me to grow herbs I might not otherwise try, like lovage or horehound.</li>
<li> <a href="http://www.seedsavers.org/">Seed Savers Exchange</a> (Iowa) This is the open source project of the seed world.  Individual amateur gardeners and small farms preserving 12,613 varieties of heirloom, ethnic and unique vegetable varieties, growing from seed, and harvesting and preserving the seed to pass on to the next year.  The resulting huge diversity of seeds are shared with members for the cost of postage. The variety is staggering.  If they don&#8217;t have it,  it probably doesn&#8217;t exist (or is protected by a plant patent).  A subset of the most popular heirloom varieties is for sale on their website, but to get the full phonebook-thick catalog of member-offered seeds, you need to join.</li>
<li> <a href="http://www.whiteflowerfarm.com/">White Flower Farm</a> (Connecticut)  The catalog, fully photographed in luscious detail, is a feast for the eyes.  Strong on perennials (herbaceous and woody) and bulbs.  I use it as much to generate ideas as I do for ordering.</li>
<li> <a href="http://www.johnnyseeds.com/">Johnny&#8217;s Selected Seeds</a> (Maine)  I go to Johnny&#8217;s especially for their new vegetable variety introductions.  For example, they introduced &#8220;Bright Lights&#8221; Swiss chard, one of my favorites.   Their catalog always has something new to look forward to.</li>
<li><a href="http://www.raintreenursery.com/">Raintree Nursery</a> (Washington) If you want something unusual in the fruit department, this is where to go.  From medlars to hardy kiwi to saskatoons, they have it.  Their catalog has also the cultural information you need to be successful, including recommendations on compatible pollinators.</li>
<li> <a href="http://www.bluestoneperennials.com/b/bp/index.html">Bluestone Perennials</a> (Ohio) Along with the White Flower Farm catalog, this is my main source for perennials.  The PlantFinder search engine on their website is great for finding plants for a special niche, like &#8220;Zone 6 hardy, deer resistant groundcovers with blue flowers&#8221;.</li>
<li><a href="http://www.totallytomato.com/">Totally Tomato</a> (Wisconsin)  The name says it all.  If you want a specific tomato variety and no substitute will do, this is the place to go.  For example, their catalog lists 41 different cherry tomato varieties.  This is the &#8220;long tail&#8221; of the lycopersicum world.</li>
</ol>
<h6 class="zemanta-related-title" style="font-size: 1em;">Related articles by Zemanta</h6>
<ul class="zemanta-article-ul">
<li class="zemanta-article-ul-li"><a href="http://www.huffingtonpost.com/maria-rodale/its-time-to-order-seeds_b_421487.html">Maria Rodale: It&#8217;s Time to Order Seeds</a> (huffingtonpost.com)</li>
<li class="zemanta-article-ul-li"><a href="http://www.sutor.com/c/2010/01/almost-spring-in-my-dreams/">Almost Spring, in my dreams</a> (sutor.com)</li>
</ul>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/8fb4607d-b20a-4f24-a76f-67b84d551d62/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=8fb4607d-b20a-4f24-a76f-67b84d551d62" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=XTsXDb-itaM:vfjH5lCFNq0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=XTsXDb-itaM:vfjH5lCFNq0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=XTsXDb-itaM:vfjH5lCFNq0:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=XTsXDb-itaM:vfjH5lCFNq0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=XTsXDb-itaM:vfjH5lCFNq0:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/robweir/antic-atom/~4/XTsXDb-itaM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robweir.com/blog/2010/01/2010-seed-catalogs-new-england.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/us/</creativeCommons:license>
	<feedburner:origLink>http://www.robweir.com/blog/2010/01/2010-seed-catalogs-new-england.html</feedburner:origLink></item>
		<item>
		<title>Top 10 Blog Posts of 2009</title>
		<link>http://feedproxy.google.com/~r/robweir/antic-atom/~3/ael3CE2cFw0/top-10-blog-posts-of-2009.html</link>
		<comments>http://www.robweir.com/blog/2010/01/top-10-blog-posts-of-2009.html#comments</comments>
		<pubDate>Sat, 02 Jan 2010 01:08:48 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[ODF]]></category>
		<category><![CDATA[OOXML]]></category>

		<guid isPermaLink="false">http://www.robweir.com/blog/?p=490</guid>
		<description><![CDATA[The 2009 wall calendar is now tossed in recycling bin, and I look to 2010 with renewed energy and dedication.  But I did want to take once last parting look at 2009, from the perspective of this blog&#8217;s server logs.
Top Blog Posts

Update on ODF Spreadsheet Interoperability (May 2009)
ODF Lies and Whispers (June 2009)
A Game of [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>The 2009 wall calendar is now tossed in recycling bin, and I look to 2010 with renewed energy and dedication.  But I did want to take once last parting look at 2009, from the perspective of this blog&#8217;s server logs.</p>
<h3>Top Blog Posts</h3>
<ol>
<li><a href="http://www.robweir.com/blog/2009/05/update-on-odf-spreadsheet-interoperability.html">Update on ODF Spreadsheet Interoperability</a> (May 2009)</li>
<li><a href="http://www.robweir.com/blog/2009/06/odf-lies-and-whispers.html">ODF Lies and Whispers</a> (June 2009)</li>
<li><a href="http://www.robweir.com/blog/2006/07/game-of-zendo.html">A Game of Zendo</a> (July 2006)</li>
<li><a href="http://www.robweir.com/blog/2009/05/follow-up-on-excel-2007-sp2s-odf.html">A follow-up on Excel 2007 SP2’s ODF</a> support (May 2009)</li>
<li><a href="http://www.robweir.com/blog/2009/10/final-ooxml-update-part-i.html">The Final OOXML Update: Part I</a> (October 2009)</li>
<li><a href="http://www.robweir.com/blog/2007/01/formats-of-excel-2007.html">The Formats of Excel 2007</a> (January 2007)</li>
<li><a href="http://www.robweir.com/blog/2009/10/final-ooxml-update-part-iii.html">The Final OOXML Update: Part III</a> (October 2009)</li>
<li><a href="http://www.robweir.com/blog/2009/03/taking-control-of-your-documents.html">Taking Control of Your Documents</a> March 2009)</li>
<li><a href="http://www.robweir.com/blog/2009/05/battle-for-odf-interoperabilitybility.html">The Battle for ODF Interoperability</a> (May 2009)</li>
<li><a href="http://www.robweir.com/blog/2006/10/chernobyl-design-pattern.html">The Chernobyl Design Pattern</a> (October 2006)</li>
</ol>
<h3>Top Browsers</h3>
<ul>
<li>Firefox: 57.3%</li>
<li>Internet Explorer: 22.9%</li>
<li>Safari: 5.2%</li>
<li>Mozilla 4.7%</li>
<li>Chrome: 3.8%</li>
<li>Opera: 3.4%</li>
<li>Mobile (various browsers): 1.4%</li>
<li>Konqueror :1.3%</li>
</ul>
<h3>Top Operating Systems</h3>
<ul>
<li>Windows: 62.1%</li>
<li>Linux 26.8%</li>
<li>Mac 9.7%</li>
<li>Mobile 1.4%</li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=ael3CE2cFw0:82C5AUgWU6Y:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=ael3CE2cFw0:82C5AUgWU6Y:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=ael3CE2cFw0:82C5AUgWU6Y:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=ael3CE2cFw0:82C5AUgWU6Y:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=ael3CE2cFw0:82C5AUgWU6Y:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/robweir/antic-atom/~4/ael3CE2cFw0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robweir.com/blog/2010/01/top-10-blog-posts-of-2009.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/us/</creativeCommons:license>
	<feedburner:origLink>http://www.robweir.com/blog/2010/01/top-10-blog-posts-of-2009.html</feedburner:origLink></item>
		<item>
		<title>U.S. Postage Stamps of 1959: A View from 50 Years Later</title>
		<link>http://feedproxy.google.com/~r/robweir/antic-atom/~3/7bCvanynlaA/us-postage-stamps-1959.html</link>
		<comments>http://www.robweir.com/blog/2009/12/us-postage-stamps-1959.html#comments</comments>
		<pubDate>Wed, 30 Dec 2009 16:45:24 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Philately]]></category>
		<category><![CDATA[1859]]></category>
		<category><![CDATA[1959]]></category>
		<category><![CDATA[Abraham Lincoln]]></category>
		<category><![CDATA[American Dental Association]]></category>
		<category><![CDATA[Comstock Lode]]></category>
		<category><![CDATA[Conservation]]></category>
		<category><![CDATA[Edwin L. Drake]]></category>
		<category><![CDATA[Gutzon Borglum]]></category>
		<category><![CDATA[Lincoln Sesquicentennial]]></category>
		<category><![CDATA[NATO]]></category>
		<category><![CDATA[Nikita Khrushchev]]></category>
		<category><![CDATA[Oregon]]></category>
		<category><![CDATA[Petroleum]]></category>
		<category><![CDATA[Silver]]></category>
		<category><![CDATA[St. Lawrence Seaway]]></category>
		<category><![CDATA[Titusville]]></category>
		<category><![CDATA[USS Nautilus]]></category>
		<category><![CDATA[William Jennings Bryan]]></category>

		<guid isPermaLink="false">http://www.robweir.com/blog/?p=417</guid>
		<description><![CDATA[What We Commemorate
Commemorative stamps memorialize recently-deceased presidents, mark important anniversaries, acknowledge national institutions, boast of engineering, scientific and artistic achievements and celebrate victory in war and in peace.  Historically, U.S. stamps have portrayed the country as we like to imagine it is, or was.
If history is written by the victors, then that portion of history [...]]]></description>
			<content:encoded><![CDATA[<p></p><h3>What We Commemorate</h3>
<p><span class="drop_cap">C</span>ommemorative stamps memorialize recently-deceased presidents, mark important anniversaries, acknowledge national institutions, boast of engineering, scientific and artistic achievements and celebrate victory in war and in peace.  Historically, U.S. stamps have portrayed the country as we like to imagine it is, or was.</p>
<p>If history is written by the victors, then that portion of history represented on our stamps is written by the <a href="http://www.usps.com/communications/organization/csac.htm">Citizens Stamp Advisory Committee</a> (CSAC).   As we look at the commemorative issues of 1959, we might ask three questions:</p>
<ol>
<li>What is the ostensible subject of the stamp, the real historical event?</li>
<li>What was notable about the subject matter in 1959?  What recommended this for commemoration?  How did the ethos of 1959 color the portrayal of the subject?</li>
<li>How is the subject viewed today?  Is it of enduring interest?  For example, was it widely celebrated in 2009?</li>
</ol>
<h3>The Lincoln Sesquicentennial</h3>
<p>The sesquicentennial of the birth of Abraham Lincoln in 1959 was celebrated by a redesign of the Lincoln Cent (retiring the &#8220;wheat back&#8221; and introducing the &#8220;Lincoln Memorial&#8221; reverse) and with a series of four commemorative stamps.    The first stamp (actually issued in 1958) marked the 100th anniversary of the Lincoln-Douglas debates.  I covered that stamp last year with the other <a href="http://www.robweir.com/blog/2008/12/through-two-lenses.html">1958 stamp issues</a>.</p>
<p>The <a href="http://www.archive.org/details/abrahamlincolnse00unit">Final Report of the Lincoln Sesquicentennial Commission</a> gives many details of these stamps and the ceremony around their release:</p>
<blockquote><p>The second stamp in the Lincoln Commemorative series was of 1-cent denomination and the first-day issuance was held at Hodgenville, Ky., on February 12, 1959.  Hodgenville was chosen as the site since it is the nearest post office to Lincoln&#8217;s birthplace. A commemorative event had already taken place here when on December 27, 1958, Commission Chairman Cooper, Senator Thruston B. Morton, and Representative Frank Chelf, all of Kentucky, formally presented to Carl Howell, president of the Hodgenville Chamber of Commerce, the Post Office Department&#8217;s cancellation die hub, especially prepared for commemorative use at the Hodgenville Post Office during Lincoln Year. The die was inscribed : &#8220;Lincoln&#8217;s Birthplace, Sesquicentennial, 1809- 1959&#8243;</p>
<p>Mr. Howell turned the die over to Postmaster Russell Parker, who began using it on January 1, 1959, to cancel all mail issuing from the Hodgenville Post Office.  At this ceremony, also attended by Mr. George M. Moore, executive assistant to the Postmaster General, announcement was made of the first-day issue of the new 1-cent Lincoln stamp. This second stamp in the commemorative series was arranged vertically, printed in green and measured 0.84 by 1.44 inches in size. It bore the head of Lincoln from the famous portrait by George Peter Alexander Healy. After Lincoln&#8217;s election to the Presidency in 1860, he sat for a portrait by this famous American artist. This portrait, known as the &#8220;Beardless Lincoln,&#8221;  is owned by the Corcoran Gallery of Art in Washington, D.C, and was used for the design of the stamp. Initial quantity issued: 90 million.</p></blockquote>
<p>If you look at the original <a href="http://sirismm.si.edu/saam/scan2/P08260137_b.jpg">Healy portrait</a> you will notice that Ervine Metzl&#8217;s stamp design departs just slightly from a literal copy.  The features are the same, but the pose has been adjusted with a slight twist to the neck and tilt to the head.  Compare the angle of the shoulders in the original compared to Metzl&#8217;s pose.  Posing, like fashion, changes over time.</p>
<blockquote><p><a title="Young Lincoln" href="http://www.flickr.com/photos/rcweir/4225440419/"><img src="http://farm3.static.flickr.com/2745/4225440419_2a21263f1e_o.jpg" alt="Young Lincoln" width="319" height="484" /></a></p>
<p>The third stamp in the commemorative series was of 3-cent denomination, arranged vertically, the same 0.84 by 1.44 inches in size, and maroon in color. It featured the sculptured head of Lincoln by Gutzon Borglum which was completed in 1906 in marble and is now in the rotunda of the Capitol in Washington, D.C. The first-day sale ceremony was held at the Cooper Union in New York on February 27, 1959, as a prelude to Cooper Union&#8217;s own centennial year and marked the 99th anniversary of Lincoln&#8217;s address there. It was on February 27, 1860, that Lincoln, speaking in the Great Hall of the Cooper Union, delivered what has come to be known as his famous &#8220;right makes might&#8221; speech. As he concluded his address, the campaigner said :</p>
<p>&#8216;Let us have faith that right makes might, and in that faith, let us, to the end, dare to do our duty as we understand it.&#8217;</p>
<p>As a memento of this first-day-issue ceremony, the printed program carried a picture of Lincoln delivering his Cooper Union Address on the front cover and the first-day cancellation on the inside. The Honorable Robert F. Wagner, mayor of New York City, gave greetings; Postmaster General Summerfield delivered the address; and Dr. Edwin S. Burdell, president of the Cooper Union, responded. Initial quantity of stamps issued was 90 million. There were 1,576,866 stamps sold in New York City on this first day of issue and 437,737 covers canceled.</p></blockquote>
<p>Compare the stamp design with a photo of the Capitol&#8217;s <a href="http://www.aoc.gov/cc/art/lincoln_borglum_1.cfm">Borglum Lincoln bust</a>.   The name Gutzon Borglum may be more familiar to you as the sculptor of <a class="zem_slink" title="Mount Rushmore" rel="homepage" href="http://www.nps.gov/moru">Mount Rushmore</a>.</p>
<p><a title="Borglum Bust" href="http://www.flickr.com/photos/rcweir/4226208648/"><img src="http://farm5.static.flickr.com/4019/4226208648_fe89aea338_o.jpg" alt="Borglum Bust" width="316" height="492" /></a></p>
<blockquote><p>The fourth and final stamp in the Sesquicentennial series was placed on first-day sale at a special ceremony on the steps of the Lincoln Memorial in Washington, D.C., May 30, 1959. This date also marked the anniversary of the completion of the Lincoln Memorial, the most popular shrine in the United States. The stamp, printed in blue, arranged horizontally and measuring 0.84 by 1.44 inches, featured a drawing by Fritz Busse of the head of Lincoln in the Memorial sculpted by <a class="zem_slink" title="Daniel Chester French" rel="wikipedia" href="http://en.wikipedia.org/wiki/Daniel_Chester_French">Daniel Chester French</a>.</p>
<p>Cosponsored by the Lincoln Sesquicentennial Commission and the Post Office Department, the stamp dedication ceremony drew an audience of several hundred persons, including diplomats. Cabinet officers, Members of Congress, Lincoln enthusiasts, and scores of visitors to the Nation&#8217;s Capital. Following the Presentation of Colors by the Joint Services Color Guard and an invocation by Maj. Gen. Frank A. Tobey, Chief of Chaplains, U.S. Army, the audience heard a stirring eulogy to Mr. Lincoln by John B. Fisher, a member of the Commission&#8217;s Executive Committee. Secretary of the Interior Fred A. Seaton- delivered an address of welcome, Deputy Postmaster General Edson O. Sessions gave the dedication address, and Mrs. Katharine McCook Knox, an honorary member of the Commission, presented to the Post Office Department a reproduction of the Healy portrait of Lincoln on which the i-cent stamp in the series is based. L. Rohe Walter, special assistant to the Postmaster General, presided.</p></blockquote>
<p><a title="Daniel Chester French Statue" href="http://www.flickr.com/photos/rcweir/4225441057/"><img src="http://farm5.static.flickr.com/4004/4225441057_3916c16e63_o.jpg" alt="Daniel Chester French Statue" width="485" height="316" /></a></p>
<h3>Oregon Statehood Centennial</h3>
<p>The Oregon Statehood issue, Scott #1124, was designed by illustrator Robert Hallock.  The wagon is unhorsed, signifying that the travelers have arrived at their destination, perhaps having traveled along the famed Oregon Trail.  The star represents statehood.  You can see Mt. Hood on the right.</p>
<p><a title="Oregon Statehood Centennial" href="http://www.flickr.com/photos/rcweir/4225441391/"><img src="http://farm3.static.flickr.com/2537/4225441391_e5d90f02d5_o.jpg" alt="Oregon Statehood Centennial" width="485" height="320" /></a></p>
<h3>Ten Years of NATO</h3>
<p>Only 10 years?   This seems like an unsubstantial achievement.   Or was this beating expectations?  Keep in mind the world of 1959: Castro in charge in Cuba, the first American dies in Vietnam, the Space Race heating up, and de Gaulle withdrawing France from NATO in 1959, preferring to develop their own <em>force de frappe</em> deterrent.  So I&#8217;m not sure what exactly we were celebrating.</p>
<p>The design here is by Stevan Dohanos, a social realist illustrator known for his <em>Saturday Evening Post</em> covers.</p>
<p><a title="1959 10th Anniversary of NATO" href="http://www.flickr.com/photos/rcweir/4225441853/"><img src="http://farm5.static.flickr.com/4007/4225441853_959924e3e9_o.jpg" alt="10th Anniversary of NATO" width="323" height="361" /></a></p>
<h4>Arctic Explorations</h4>
<p>This design by George Samerjan marks two events:  the 50th anniversary of Admiral Peary reaching the North Pole, and the 1959 sub-polar transit (<a href="http://en.wikipedia.org/wiki/USS_Nautilus_%28SSN-571%29#Operation_Sunshine_-_Under_the_North_Pole">Operation Sunshine</a>) of the nuclear submarine &#8220;Nautilus&#8221;.</p>
<p>(Btw, it is well worth a trip to Groton, Connecticut to visit the <a href="http://www.ussnautilus.org/">Submarine Force Museum</a>.  If you are not claustrophobic you can take a self-guided tour of the Nautilus.)</p>
<p><a title="Robert Perry Arctic Exploration" href="http://www.flickr.com/photos/rcweir/4226209942/"><img src="http://farm3.static.flickr.com/2726/4226209942_3f52b17258_o.jpg" alt="Robert Perry Arctic Exploration" width="489" height="338" /></a></p>
<h3>World Peace through World Trade</h3>
<p>There is an IBM connection on this one.  Former IBM president &#8212; and a giant of industry and commerce &#8212; Thomas J. Watson, Sr., coined this phrase in an address to the International Chamber of Commerce in 1937.  It then became an IBM advertising slogan which was featured for many years on a 30-foot sign on the side of 590 Madison Ave in NYC.</p>
<p>It is interesting that the slogan was pre-war, though the stamp is post-war. Certainly the optimism of world peace in 1937 was not very prescient.  But post-war there was a string of successes including Bretton Woods (1944), GATT (1947) and the Marshall Plan (1948).  For a generation that saw two world wars and world-wide depression, there was a lot to be optimistic about in 1959.</p>
<p>The design by Robert Baker, features a globe and laurel.</p>
<p><a title="World Peace Through World Trade" href="http://www.flickr.com/photos/rcweir/4225442451/"><img src="http://farm3.static.flickr.com/2705/4225442451_20ce4b5f50_o.jpg" alt="World Peace Through World Trade" width="493" height="326" /></a></p>
<h3>Centennial of the Comstock Lode</h3>
<p>Silver was discovered in Utah Territory (now Nevada) in 1859 on the slopes of Mt. Davison.   The commemorative stamp, designed by Robert L. Miller and W.K. Schrage is based on an old print which I have not been able to identify.</p>
<p>Of course, this is a romanticized view of the original event, which was soaked in blood and whiskey. No mention is made of the most significant social result of the silver rush, namely the instability introduced into the US currency system, then based on gold and silver, by the rapid increase in the silver supply.  Left uncorrected this would have lead to inflation, which was favored by those in debt.  This became the largest political issue of the day, culminating in the  Coinage Act of 1873 (which de-monetized silver) and the 1896 presidential campaign of the populist William Jennings Bryan and his renowned &#8220;Cross of Gold&#8221; speech:</p>
<blockquote><p>If they dare to come out in the open field and defend the gold standard as a good thing, we shall fight them to the uttermost, having behind us the producing masses of the nation and the world. Having behind us the commercial interests and the laboring interests and all the toiling masses, we shall answer their demands for a gold standard by saying to them, you shall not press down upon the brow of labor this crown of thorns. You shall not crucify mankind upon a cross of gold.</p></blockquote>
<p><a title="Silver Centennial" href="http://www.flickr.com/photos/rcweir/4226210566/"><img src="http://farm3.static.flickr.com/2500/4226210566_cff1a8eb7e_o.jpg" alt="Silver Centennial" width="495" height="362" /></a></p>
<h3>Opening of the St. Lawrence Seaway</h3>
<p>The St. Lawrence Seaway was opened in 1959, a joint U.S.-Canadian venture that connected the Great Lakes to the sea, an event considered momentous enough to warrant a contemporary stamp issue.  The design of the stamp was also a collaborative venture, by Arnold Copeland, Ervine Metzl, William H. Buckley and Gerald Trottier.  There was a corresponding Canadian stamp featuring the same design which was issued simultaneously.</p>
<p><a title="St. Lawrence Seaway" href="http://www.flickr.com/photos/rcweir/4226210934/"><img src="http://farm5.static.flickr.com/4065/4226210934_1fd58d0559_o.jpg" alt="St. Lawrence Seaway" width="488" height="317" /></a></p>
<h3>The 49-Star Flag</h3>
<p>Alaska joined the Union as the 49th state on January 3rd, 1959.  The design of the Union (that portion of the flag which has the stars) was updated to include the 49th star, but this design was in use only for a short period of time, since Hawaii became the 50th state later that year.  So the 49-star flag was only officially used from July 4, 1959 to July 3, 1960.  It must have been good business for flag makers that year.</p>
<p>So what happens if a new state is added in the future, say Washington, DC, or Puerto Rico?  USC Title 4, Chapter 1, § 2 covers this:</p>
<blockquote><p>On the admission of a new State into the Union one star shall be added to the union of the flag; and such addition shall take effect on the fourth day of July then next succeeding such admission.</p></blockquote>
<p>What about the design?  Where exactly do you put a 51st or 52nd star?  The US Army&#8217;s <a href="http://www.tioh.hqda.pentagon.mil/">Department of Heraldry</a> has that covered, with contigency designs for 51-56 stars.  Just in case.</p>
<p><a title="U.S. Flag with 49 Stars" href="http://www.flickr.com/photos/rcweir/4225443561/"><img src="http://farm5.static.flickr.com/4006/4225443561_e17d2fbf71_o.jpg" alt="U.S. Flag with 49 Stars" width="488" height="321" /></a></p>
<h3>Soil Conservation</h3>
<p>Now here&#8217;s a topic you don&#8217;t hear a lot about these days.  Errosion.  Soil conservation.  Contour plowing.  We don&#8217;t hear much about it these days, mainly because the movement, lead by the U.S. Department of Agriculture&#8217;s  Soil  Conservation Service after the 1930&#8217;s &#8220;Dust Bowl&#8221;, was successful.   By plowing fields parallel to the natural contours of the land, water run-off was reduced, preventing topsoil errosion, improving the efficiency of irrigation and increasing crop yields.</p>
<p><a title="Soil Conservation" href="http://www.flickr.com/photos/rcweir/4226211576/"><img src="http://farm5.static.flickr.com/4044/4226211576_e6766b97da_o.jpg" alt="Soil Conservation" width="490" height="316" /></a></p>
<h3>Centennial of Drake&#8217;s Oil Well</h3>
<p>When you think of oil wells, you typically don&#8217;t think of Pennsylvania.  But that is where a lot of the early work happened, including the first US oil refinery (Pittsburgh) and <a href="http://en.wikipedia.org/wiki/Edwin_Drake">Colonel Edwin L. Drake&#8217;s</a> early oil well (some claim it to be the first in the U.S.) in Titusville.  Of course, there were no automobiles in 1859.  Coal was king.  So what kind of &#8220;petroleum&#8221; industry was there?  Kerosene, mainly for lamps, as a replacement for whale oil.</p>
<p><a title="Petroleum Industry" href="http://www.flickr.com/photos/rcweir/4225444143/"><img src="http://farm5.static.flickr.com/4034/4225444143_257173d5c7_o.jpg" alt="Petroleum Industry" width="323" height="485" /></a></p>
<h3>American Dental Association Centennial</h3>
<p>The American Dental Association resulted from a merger of several smaller associations at a convention in Niagra Falls in 1859.  The Association&#8217;s 1959 centennial celebrations in New York City made the headlines due to an unplanned intersection with cold war politics.  The Association had booked the Waldorf Astoria for their celebrations, but the day before their event, they received a call from the City asking if they would relinquish that space so the City could hold a luncheon in honor of the visiting Soviet Premier Khrushchev.   The Association refused to give up their space, a stance warmly supported by Vice-President Nixon, who was a featured speaker at their event.  Probably a wise choice.   Remember, this was a time when many thought that fluoridation of water was a <a href="http://en.wikipedia.org/wiki/Opposition_to_water_fluoridation#Conspiracy_theories">communist conspiracy</a>.  If the ADA had yielded publicly before Khrushchev it would have given the lunatic fringe more fodder.</p>
<p><a title="American Dental Association" href="http://www.flickr.com/photos/rcweir/4226212154/"><img src="http://farm3.static.flickr.com/2753/4226212154_2f3e4f2f15_o.jpg" alt="American Dental Association" width="492" height="325" /></a></p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/1bbd21af-9cbc-47ed-8d33-ac1844880ff3/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=1bbd21af-9cbc-47ed-8d33-ac1844880ff3" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=7bCvanynlaA:xDZ000ytCzg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=7bCvanynlaA:xDZ000ytCzg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=7bCvanynlaA:xDZ000ytCzg:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=7bCvanynlaA:xDZ000ytCzg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=7bCvanynlaA:xDZ000ytCzg:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/robweir/antic-atom/~4/7bCvanynlaA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robweir.com/blog/2009/12/us-postage-stamps-1959.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/us/</creativeCommons:license>
	<feedburner:origLink>http://www.robweir.com/blog/2009/12/us-postage-stamps-1959.html</feedburner:origLink></item>
		<item>
		<title>Planned Migration of An Antic Disposition</title>
		<link>http://feedproxy.google.com/~r/robweir/antic-atom/~3/LUZKxxQFtV0/planned-migration-of-antic-disposition.html</link>
		<comments>http://www.robweir.com/blog/2009/12/planned-migration-of-antic-disposition.html#comments</comments>
		<pubDate>Wed, 16 Dec 2009 22:31:00 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Blogging]]></category>

		<guid isPermaLink="false">http://www.robweir.com/blog/2009/12/planned-migration-of-an-antic-disposition.html</guid>
		<description><![CDATA[Sometime over the next two weeks I&#8217;ll be migrating An Antic Disposition over to WordPress, introducing a new visual theme, and relocating to a new hosting company.  This will allow some additional capabilities that I look forward to enabling down the road.
My plan is to preserve all of the comments during the migration, not to [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Sometime over the next two weeks I&#8217;ll be migrating <cite>An Antic Disposition</cite> over to WordPress, introducing a new visual theme, and relocating to a new hosting company.  This will allow some additional capabilities that I look forward to enabling down the road.</p>
<p>My plan is to preserve all of the comments during the migration, not to break any incoming links, and to minimize any downtime.  That is the plan.  But minimal downtime is not the same as zero downtime, so don&#8217;t be surprised if you see me not here, at least occasionally.</p>
<p>One last thing to check, dear reader, especially if you follow me via my feed.  Around a year ago I wrapped my feed via FeedBurner.  If you have subscribed since then, you should be fine, since that FeedBurner URL will continue to work.  However, if you still subscribe to my old original Blogger feed (http://www.blogger.com/feeds/11236681/posts/full) then you will need to resubscribe with the new URL:</p>
<p>The main feed is:  ﻿﻿<a href="﻿﻿http://feeds.feedburner.com/robweir/antic-atom">http://feeds.feedburner.com/robweir/antic-atom</a></p>
<hr />12/28/09 Update</p>
<p>I&#8217;ve completed the migration from Blogger to WordPress.  It went easier than anticipated.  The posts and comments came over without problems.  I think I was able to preserve almost all of the post permalinks.  I&#8217;ll monitor the logs for 404 errors and add 303 redirects to fix any remaining URL mismatches.  However, I have not made any attempt to preserve the URLs for the archive or tag pages.  For the various legacy feeds, I&#8217;ve redirected all of them to the FeedBurner feed.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=LUZKxxQFtV0:cBiunN2m1-k:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=LUZKxxQFtV0:cBiunN2m1-k:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=LUZKxxQFtV0:cBiunN2m1-k:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=LUZKxxQFtV0:cBiunN2m1-k:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=LUZKxxQFtV0:cBiunN2m1-k:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/robweir/antic-atom/~4/LUZKxxQFtV0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robweir.com/blog/2009/12/planned-migration-of-antic-disposition.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/us/</creativeCommons:license>
	<feedburner:origLink>http://www.robweir.com/blog/2009/12/planned-migration-of-antic-disposition.html</feedburner:origLink></item>
		<item>
		<title>The Relevancy of ODF 1.0</title>
		<link>http://feedproxy.google.com/~r/robweir/antic-atom/~3/NeQ46Mhytmg/relevancy-of-odf-10.html</link>
		<comments>http://www.robweir.com/blog/2009/12/relevancy-of-odf-10.html#comments</comments>
		<pubDate>Tue, 15 Dec 2009 04:52:00 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[ODF]]></category>

		<guid isPermaLink="false">http://www.robweir.com/blog/2009/12/the-relevancy-of-odf-1-0.html</guid>
		<description><![CDATA[By the time you read this (actually probably by the time I finish writing this post) a ballot approving the Public Review Draft of ODF 1.2, Part 1  will have passed.  Part 1 is the largest of the three parts of ODF 1.2, and reaching a Public Review Draft status is a major accomplishment.  [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>By the time you read this (actually probably by the time I finish writing this post) a ballot approving the Public Review Draft of ODF 1.2, Part 1  will have passed.  Part 1 is the largest of the three parts of ODF 1.2, and reaching a Public Review Draft status is a major accomplishment.  Expect to see an official notice of the start of the public review period over the next few days.</p>
<p>But as we look forward to ODF 1.2, and then beyond to &#8220;ODF-Next&#8221;, it is worth giving some consideration to what we do with ODF 1.1 and ODF 1.0.</p>
<p>Today, if you surveyed ODF implementations, you would find that the preponderance of them write ODF 1.1 documents by default. Twelve months ago many of them wrote out ODF 1.0 format, and in another 12 months I predict most will be writing out ODF 1.2 format by default.</p>
<p>So what does this mean for ODF the standard?</p>
<p>Every 5 years each ISO standard undergoes what is called &#8220;Periodic Review&#8221;.  The outcome of this review is to classify the standard as one of: confirmed, revised, stabilized or withdrawn.   If it is confirmed, it means the standard is of continued relevancy and is still undergoing maintenance.  Revised means it is currently undergoing revision and periodic review is not necessary.  Stabilized means it &#8220;has ongoing validity and effectiveness but is mature and insofar as can be determined will not require further maintenance of any sort&#8221;.  And a standard is withdrawn (the most extreme option) if it has been declared unsafe, has a non-RAND patent asserted against it, or is &#8220;no longer in use&#8221;.</p>
<p>Some of the nattering nabobs in SC34 (e.g., Alex Brown) are floating the idea that ODF 1.0 should be withdrawn from ISO, claiming it is not implemented and not relevant.  At the recent SC34 meeting in Paris this view was echoed by a Microsoft participant (one of many) in the meeting, who additionally urged that a motion to withdraw ODF 1.0 be brought forward at the Stockholm SC34 Plenary in March.</p>
<p>I think this shows an extraordinarily poor understanding of how documents and document format standards work.  ODF is not a standard for a transient phenomenon, like a network or telephone protocol standard, that is no longer relevant when the last producer of the network protocol is gone from the market and the last signal fades from the wire.  ODF specifies a document format, and documents persist and remain relevant so long as the documents and their owners remain.</p>
<p>Additionally, and especially in public sector use, there are regulatory or statutory requirements for how long documents (records) must be preserved.  Some for 3 years, some for 7, some for 30 years, and some records must be preserved forever.  Just because ODF 1.2 comes along does not make ODF 1.0 retention and public access requirements go away.</p>
<p>Although most major ODF editors now write out new documents in ODF 1.1 format by default, they all are able to read and process ODF 1.0 documents as well.  So they are all &#8220;consumers&#8221; of ODF 1.0 and conform to the ODF 1.0 standard.  This occurs at the same time they are also conforming ODF 1.1 &#8220;producers&#8221;.  So it is absolutely false to say that there are no ODF 1.0 implementations today.  There are many, including OpenOffice, Symphony, Google Docs, KOffice, even Microsoft Office.  The are all ODF 1.0 consumers.</p>
<p>We should also consider the needs of new word processors that implement ODF, since there are still a few that do not support ODF yet, like Apple&#8217;s iWork.  When they eventually implement ODF they will want to implement write support (&#8220;producer&#8221; conformance) for the current version of ODF, as well as read support (&#8220;consumer&#8221; conformance) for earlier versions of ODF.  So to enable competition in this space, and allow for new players, we must preserve access to the relevant legacy standards.  Otherwise we would be perpetuating the type of information exclusion we typically associate with Microsoft, in the decades when they restricted access to their legacy formats.</p>
<p>In any case, it is still puzzling to me why some are pushing for the very unusual and extreme action of withdrawing ODF 1.0 from ISO.  This doesn&#8217;t pass the sniff test.  Something is rotten here.  This is an anti-competition, anti-user, anti-adopter and overtly political move, lead by Microsoft employees and Microsoft consultants in the Microsoft-dominated JTC1/SC34.   (I wish I had a pump big enough to drain that swamp.)  Ironically, by questioning the relevancy of ODF 1.0, they will cause many more to question the relevancy of SC34.</p>
<p>At some point, I agree that stabilization may be something to consider in the future.  But for now, ODF does not fit in that category because it is actively undergoing maintenance. SC34 members, including Alex Brown, have submitted defect reports against ODF 1.0, and the OASIS ODF TC is responding to them.  It is quite reasonable to expect that ODF 1.1 and ODF 1.2 will be broadly implemented at the same time as ODF 1.0 continues to undergo corrective maintenance.  That is the nature of document format standards like ODF.  Their relevancy, as perceived by users and adopters of the standard, is determined by the mass of legacy documents in the format, not on whether their current word processor saves in that format by default.</p>
<p>[12/15/09 Doug Mahugh today wrote to the OASIS ODF TC list, apprently concerned that this blog post might be misread as an official statement of the OASIS ODF TC.  I've attempted to <a href="http://lists.oasis-open.org/archives/office/200912/msg00201.html">dispel such notions</a> in my response on that list.  As I've made abundantly clear on my <a href="http://www.robweir.com/blog/who-is-rob-weir">Who is Rob Weir</a> page, "The postings on this site are my own and don't      necessarily represent the positions, strategies or opinions of any of my employers or the organizations I'm associated with".</p>
<p>My practice is simple:   I am not speaking as OASIS ODF TC Co-Chair, unless I am posting ODF TC agendas, minutes or similar official ODF TC notices to the ODF TC's mailing list, or when I explicitly sign my name with the title, "Co-Chair, OASIS ODF TC".]</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=NeQ46Mhytmg:u8xQ4QxWeSE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=NeQ46Mhytmg:u8xQ4QxWeSE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=NeQ46Mhytmg:u8xQ4QxWeSE:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=NeQ46Mhytmg:u8xQ4QxWeSE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=NeQ46Mhytmg:u8xQ4QxWeSE:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/robweir/antic-atom/~4/NeQ46Mhytmg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robweir.com/blog/2009/12/relevancy-of-odf-10.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/us/</creativeCommons:license>
	<feedburner:origLink>http://www.robweir.com/blog/2009/12/relevancy-of-odf-10.html</feedburner:origLink></item>
		<item>
		<title>Asking the right questions about Office 2010’s OOXML support</title>
		<link>http://feedproxy.google.com/~r/robweir/antic-atom/~3/Ydh5MfLJVsc/asking-right-questions-about-office.html</link>
		<comments>http://www.robweir.com/blog/2009/11/asking-right-questions-about-office.html#comments</comments>
		<pubDate>Tue, 17 Nov 2009 16:00:00 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[OOXML]]></category>

		<guid isPermaLink="false">http://www.robweir.com/blog/2009/11/asking-the-right-questions-about-office-2010s-ooxml-support.html</guid>
		<description><![CDATA[Image via Wikipedia
There is more OOXML controversy in the news, this time in Denmark.  I don&#8217;t claim to understand all the nuances of the accusations, since I don&#8217;t read Danish, and Google Translates makes it sound at times like a discussion about loaves of rye bread or something, but the gist of it, as [...]]]></description>
			<content:encoded><![CDATA[<p></p><p class="zemanta-img" style="margin: 1em; float: right; display: block; width: 310px;"><a href="http://en.wikipedia.org/wiki/Image:Dk_adm_regions_2007.png"><img style="border: medium none; display: block;" src="http://upload.wikimedia.org/wikipedia/en/thumb/c/c5/Dk_adm_regions_2007.png/300px-Dk_adm_regions_2007.png" alt="Administrative divisions of Denmark in effect ..." width="300" height="367" /></a><span class="zemanta-img-attribution">Image via <a href="http://en.wikipedia.org/wiki/Image:Dk_adm_regions_2007.png">Wikipedia</a></span></p>
<p>There is more OOXML controversy in the news, this time in Denmark.  I don&#8217;t claim to understand all the nuances of the accusations, since I don&#8217;t read Danish, and Google Translates makes it sound at times like a discussion about loaves of rye bread or something, but the gist of it, as I can surmise from <a href="http://www.osor.eu/news/dk-chair-of-denmarks-standards-committee-microsoft-is-lying">this account</a>, is whether Office 2010 will &#8220;support the complete ISO-approved version of OOXML&#8221;.  Microsoft&#8217;s spokesperson says it will.  <span id="parent-fieldname-description">Mogens Kühn Pedersen, chair of the Danish Standards Committee, says it will not.</span></p>
<p>This is the kind of dispute where you can go around in circles with for days and not reach agreement.  The problem is they are arguing over words, not facts, and they do not agree perfectly on the meaning of the words. Words like &#8220;support&#8221; and &#8220;complete&#8221; and &#8220;conform&#8221; are used in different ways, with different meanings and intents.</p>
<p>Let&#8217;s try to escape the equivocation and instead try to establish the underling facts. I can&#8217;t promise that this will clarify the situation any. In fact I suspect we&#8217;ll end up even more confused about what exactly Office 2010 actually supports.  But replacing a false certainty with an honest uncertainty is progress of a kind.  It gives us something we can build on.</p>
<p>First, we need to acknowledge that OOXML entered ISO as one standard, and was transformed, via the BRM and ISO ballot, formally into 4 standards, ISO/IEC 29500 Parts 1, 2, 3 and 4.  Within these parts are are several different conformance targets and conformance classes.  In particular, these 4 standards encompass two different and incompatible schemas for many of its features: &#8220;Strict&#8221; and &#8220;Transitional&#8221;.  What was submitted in the Fast Track is essentially the &#8220;Transitional&#8221; schema.  What was created by the BRM was the &#8220;Strict&#8221; schema.  This is where Microsoft made most of its &#8220;concessions&#8221;  in order to turn &#8220;No&#8221; votes into &#8220;Yes&#8221; votes.  So things like support for spreadsheet dates before the year 1900, the elimination of <a class="zem_slink" title="Vector Markup Language" rel="wikipedia" href="http://en.wikipedia.org/wiki/Vector_Markup_Language">VML</a> graphics,  etc., these are all in the &#8220;Strict&#8221; schema.  All the legacy &#8220;DoItLikeWord95&#8243; garbage was in &#8220;Transitional&#8221; only.  Several NBs voted to approve OOXML because the assertion that &#8220;Transitional&#8221; would not be written in documents produced by future versions of MS Office.  The promise was that it was&#8230;well&#8230;transitional, for moving legacy binary documents into XML.   Few people want to support two different document standards (both ODF and OOXML) in the first place.  But to require support for two different and incompatible versions of OOXML &#8212; that is simply intolerable.</p>
<p>In any case, because of these two conformance classes, anyone who claims that their product supports &#8220;OOXML&#8221; in an unqualified sense, without stating which conformance target or conformance classes they are supporting, is not stating anything of substance.  It is like trying to buy an electrical plug adapter by just saying &#8220;I need electricity&#8221;.  Merely saying &#8220;conformance to OOXML&#8221; means nothing.  You need to state the conformance targets and classes that you support.  Remember, the conformance language of OOXML is so loose that even a shell statement of  &#8220;cat foo.docx &gt; /dev/null&#8221; would qualify as a conformant application.  I assume that Office 2010 supports at least that.</p>
<p>Of course, the alleged assertion that Office 2010 supports OOXML &#8220;completely&#8221; is a bit more problematic.  What exactly does this mean?  Does this mean that Office 2010 supports all conformance classes and targets of all 4 parts of OOXML?  Including being a Strict consumer?  A Strict producer?  That would be a good thing, IMHO, if it were true.  But that is not what WG4 was recently told in Seattle, where they were told that Office would not write out Strict documents until Office 16.  That would put it out to the middle of the next decade, assuming the typical 3-year Office release schedule.</p>
<p>So I&#8217;ll lay out my assertions (with the caveat that Office 2010 is not complete and shipped yet) as:</p>
<ul>
<li>Office 2010 will conform to the Transitional consumer and producer classes defined in the OOXML standards.  Any bugs that are found in the shipped version of Office 2010 will be &#8220;fixed&#8221; by retroactively changing the standards to match what Office actually does, as is currently being done by Microsoft-packed SC34/WG4 committee with similar bugs found in Office 2007&#8217;s OOXML support.</li>
<li>Office 2010 will <span style="font-weight: bold;">not</span> have conforming support for OOXML Strict producer or consumer classes.</li>
<li>Office 2010 will write dozens of non-interoperable, proprietary extensions into their OOXML documents, extensions which are not defined by the OOXML standards and which have not been reviewed or standardized by any standards committee and which will not be fully interoperable with other OOXML editors, or even with previous versions of MS Office.</li>
</ul>
<p>So instead of arguing over the meaning of &#8220;support&#8221; and  &#8220;complete&#8221; I suggest some alternate questions for Microsoft, to give them the opportunity to clarify exactly what kind of support for OOXML will be coming in Office 2010:</p>
<ol>
<li>Exactly what ISO/IEC 29500:2008 conformance classes and targets will Office 2010 conform to?</li>
<li>Is this contingent on first changing the conformance requirements of the published ISO/IEC 29500:2008 standards to match what Office 2010 actually supports?  Or is there a commitment to support the published standards as they was approved by JTC1 national bodies?  In other words, is Microsoft committed to conform to the standards, or are we back to changing the standards to &#8220;conform&#8221; to Microsoft?</li>
<li>Will Microsoft Office 2010 write out only markup that is fully described in the OOXML standards?  Or will it write out proprietary markup extensions that are not fully defined in the standards?  In other words,  will Office 2010 be &#8220;strictly conformant&#8221; with the ISO/IEC 29500:2008 standards?</li>
</ol>
<p>The problem you run into here is that there are really two different OOXML standards: the new and improved OOXML Strict conformance class, the one that was &#8220;sold&#8221; to ISO NBs, the one that garnered the approval votes, and then the old ugly one, the &#8220;haunted&#8221; specification, the Transitional conformance class, supported only by Microsoft Office.  Anyone considering adopting OOXML should have <span style="font-weight: bold;">perfect clarity</span> as to which one they are adopting, especially since these are two very different standards, both formally and logically.  Just as it is problematic to speak about OOXML support in a product without stating which conformance classes and targets are supported, it is equally a defect of any adoption policy to be loose in what version of OOXML is being proposed for adoption.</p>
<p>IMHO, if you must state a requirement for OOXML (along with ODF), at least specify it clearly, and state a requirement for &#8220;strict conformance&#8221; (meaning no extensions) of the Strict conformance classes of ISO/IEC 29500:2008.  To do otherwise is to essentially specify a requirement for the use of Microsoft Office and Microsoft Office alone.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/f530d897-6f78-4fe2-9805-fa878802f76b/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=f530d897-6f78-4fe2-9805-fa878802f76b" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=Ydh5MfLJVsc:V2JP_4P3ZfI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=Ydh5MfLJVsc:V2JP_4P3ZfI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=Ydh5MfLJVsc:V2JP_4P3ZfI:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=Ydh5MfLJVsc:V2JP_4P3ZfI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=Ydh5MfLJVsc:V2JP_4P3ZfI:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/robweir/antic-atom/~4/Ydh5MfLJVsc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robweir.com/blog/2009/11/asking-right-questions-about-office.html/feed</wfw:commentRss>
		<slash:comments>18</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/us/</creativeCommons:license>
	<feedburner:origLink>http://www.robweir.com/blog/2009/11/asking-right-questions-about-office.html</feedburner:origLink></item>
		<item>
		<title>ODF 1.2, Part 3 goes out for Public Review</title>
		<link>http://feedproxy.google.com/~r/robweir/antic-atom/~3/gK7B2XVSUcE/odf-12-part-3-goes-out-for-public.html</link>
		<comments>http://www.robweir.com/blog/2009/11/odf-12-part-3-goes-out-for-public.html#comments</comments>
		<pubDate>Mon, 16 Nov 2009 17:15:00 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[ODF]]></category>

		<guid isPermaLink="false">http://www.robweir.com/blog/2009/11/odf-1-2-part-3-goes-out-for-public-review.html</guid>
		<description><![CDATA[A major milestone for ODF 1.2 was reached on Friday.  Part 3 of ODF 1.2, which specifies document packaging  (how a document&#8217;s XML, images and metadata are combined into a single file and are optionally encrypted or signed), went out for a 60-day public review period.  This public review period will run [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>A major milestone for ODF 1.2 was reached on Friday.  Part 3 of ODF 1.2, which specifies document packaging  (how a document&#8217;s XML, images and metadata are combined into a single file and are optionally encrypted or signed), went out for a 60-day public review period.  This public review period will run through January 12th, 2010.  A public review is a necessary OASIS procedure before a Committee Draft can be approved as a Committee Specification and then as an OASIS Standard.</p>
<p>The <a href="http://lists.oasis-open.org/archives/tc-announce/200911/msg00007.html">official announcement</a> of the review has more information, including links to <a href="http://docs.oasis-open.org/office/v1.2/part3/cd01/OpenDocument-v1.2-part3-cd01.pdf">download</a> the public review draft and information on how to <a href="http://www.oasis-open.org/committees/comments/index.php?wg_abbrev=office">submit comments</a> on the draft.</p>
<p>Compared to the packaging specification used in ODF 1.0 and ODF 1.1, the main differences are:</p>
<ol>
<li>We&#8217;ve split this material into its own specification, since these packaging conventions are more widely applicable, and in fact have been more widely used than just in ODF.  For example, the International Digital Publishing Forum (IDPF), who standardize the increasingly important ePub digital book format, use ODF&#8217;s packaging as the base of their <a href="http://www.idpf.org/ocf/ocf1.0/index.htm">Open eBook Publication Structure  Container Format (OCF) 1.0</a> specification.</li>
<li>We&#8217;ve added digital signature support (chapter 4) based on the W3C&#8217;s XML Digital Signature Core, including the ability to use standardized extensions such as <a href="http://en.wikipedia.org/wiki/XAdES">XAdES</a>.</li>
<li>We now have an RDF-based metadata framework with OWL ontology for the manifest file (chapter 5).</li>
<li>We include a more detailed conformance definition has been added, including conformance targets for packages, producers and consumers, as well as a separate conformance class for extended packages.</li>
<li>Generally, a redraft of the specification to ISO style guidelines.</li>
</ol>
<p>This specification is only 34 pages long, so if you&#8217;re at all interested please give it a look  between now and January 12th, and send along any comments via the <a href="http://www.oasis-open.org/committees/comments/index.php?wg_abbrev=office">office-comment</a> list.  Anything that improves the specification is welcome, from reports of typographical errors, to technical omissions or errors, to suggestions for future features.  It is all good.</p>
<p>And if you want to follow along, you can track the incoming comments in several ways:</p>
<ul>
<li>Subscribe to the <a href="http://www.oasis-open.org/committees/comments/index.php?wg_abbrev=office">office-comment</a> list mentioned above.</li>
<li>View the <a href="http://lists.oasis-open.org/archives/office-comment/">archives</a> of the off-comment list.</li>
<li>View the public review comments we&#8217;re <a href="http://tools.oasis-open.org/issues/secure/IssueNavigator.jspa?mode=hide&amp;requestId=10082">tracking in JIRA</a>.  I have a python script that scrapes the office-comment list and enters them into JIRA.  This will be more complete than the office-comment list because it will includes additional comments from ODF TC.</li>
<li>I have another python script that takes each newly entered issue from JIRA and sends it out via Twitter.  So you can follow all new ODF issues by subscribing to <a href="http://twitter.com/odfjira">@ODFJIRA</a>.  Depending on your Twitter reader, you might be able to mark some issues as &#8220;favorites&#8221; and return to them later to see how they have been resolved.  (While you&#8217;re at it, you might also follow me, <a href="http://twitter.com/rcweir">@RCWeir</a>)</li>
</ul>
<p>Also, keep your eye open for the announcement of a public review for ODF 1.2, Part 1 (ODF Schema) and Part 2 (OpenFormula),  which will be ready for review soon.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=gK7B2XVSUcE:AS_CKhYNs7U:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=gK7B2XVSUcE:AS_CKhYNs7U:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=gK7B2XVSUcE:AS_CKhYNs7U:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=gK7B2XVSUcE:AS_CKhYNs7U:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=gK7B2XVSUcE:AS_CKhYNs7U:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/robweir/antic-atom/~4/gK7B2XVSUcE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robweir.com/blog/2009/11/odf-12-part-3-goes-out-for-public.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/us/</creativeCommons:license>
	<feedburner:origLink>http://www.robweir.com/blog/2009/11/odf-12-part-3-goes-out-for-public.html</feedburner:origLink></item>
		<item>
		<title>The Final OOXML Update: Part III</title>
		<link>http://feedproxy.google.com/~r/robweir/antic-atom/~3/cDrE0LBkvkc/final-ooxml-update-part-iii.html</link>
		<comments>http://www.robweir.com/blog/2009/10/final-ooxml-update-part-iii.html#comments</comments>
		<pubDate>Tue, 27 Oct 2009 13:35:00 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[OOXML]]></category>

		<guid isPermaLink="false">http://www.robweir.com/blog/2009/10/the-final-ooxml-update-part-iii.html</guid>
		<description><![CDATA[This is Part III of an 5-part series on the state of OOXML today.  Previous to starting this series, I had not posted about OOXML in over a year.  Part I showed how Microsoft, despite their promises that control of OOXML would be handed over to an independent, international committee, have instead stuffed [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>This is Part III of an 5-part series on the state of OOXML today.  Previous to starting this series, I had not posted about OOXML in over a year.  <a href="http://www.robweir.com/blog/2009/10/final-ooxml-update-part-i.html">Part I</a> showed how Microsoft, despite their promises that control of OOXML would be handed over to an independent, international committee, have instead stuffed the committee that maintains OOXML (JTC1/SC34/WG4) with Microsoft employees.     And in <a href="http://www.robweir.com/blog/2009/10/final-ooxml-update-part-ii.html">Part II</a> I looked at how the final published text of OOXML failed to account for all BRM decisions, and described the steps that ISO was taking to remedy this obvious procedural flaw.</p>
<p>In this Part I&#8217;ll look at how Microsoft is using their dominance in SC34 to push through hundreds of changes and additions to OOXML, in a misuse of a procedure intended for correcting drafting errors, to make OOXML &#8220;conform&#8221; to Microsoft&#8217;s monopoly product.</p>
<p>Let&#8217;s start by taking a look at the OOXML <a href="http://www.itscj.ipsj.or.jp/sc34/open/1253.pdf">defect log</a> [PDF] that SC34/WG4 uses to track their large list of errors and omissions discovered in the published standard. This defect report currently amounts to over 800 pages, longer than the entire ODF 1.0 standard.  But it is well worth downloading and browsing through.</p>
<p>Some of these changes will be made in Technical Corrigenda while others are proposed for Amendments.  What is the difference?  SC34/WG4 itself made the distinction clear, in a presentation (<a href="http://www.itscj.ipsj.or.jp/sc34/def/1187.pdf">N 1187</a> for those with access) it made to the SC34 Plenary in Prague, where it outlined its practice for deciding which changes would be made in corrigenda versus amendments:</p>
<blockquote><p>All of the following criteria should be met for the defect to be resolved by Corrigendum:</p>
<p>1) WG 4 agrees that the defect is an unintentional drafting error.<br />
2) WG 4 agrees that the defect can be resolved without the theoretical possibility of breaking existing conformant implementations of the standard.<br />
3) WG 4 agrees that the defect can be resolved without introducing any significant new feature.</p>
<p>Unless all the above criteria are met, the defect should be resolved by Amendment.</p></blockquote>
<p>These are reasonable criteria and no objections were made when these guidelines were presented to SC34.</p>
<p>A key procedural point is that in ISO/IEC it is the JTC1 NBs who are the consensus body that has the authority to create international standards.  All ballots which create or substantial modify standards must be approved by JTC1.  This includes DIS ballots, FDIS ballots, FDAM ballots and DTR ballots. So standards, technical reports and amendments are ultimately approved or disapproved by JTC1 NBs.    Although subcommittees in JTC1, such as SC34, provide the technical expertise and author and review work, they are not the standardizing authority.  The exception that proves the rule is with corrigenda, which are authored and approved entirely at the SC level.   However, this small area of autonomy in defect correction comes with carefully delineated bounds.  A SC can author, approve and publish corrigenda by itself, but only to make corrections.</p>
<p>So if we look at JTC1 Directives 15.4.2.2, we read  (with my emphasis) &#8220;A technical corrigendum is issued to correct a technical defect&#8230;. <span style="font-weight: bold;">Technical corrigenda are not issued for technical additions</span> which  shall follow the amendment procedure&#8230;&#8221;.   And in 15.4.1 &#8220;technical addition&#8221; is defined as: &#8220;Alteration or addition to previously agreed technical provisions in an existing IS.&#8221;</p>
<p>So amendments, which require approval by JTC1, are used for altering or extending the provisions of a standard, while corrigenda are used to correct errors introduced in drafting or publication.  This dichotomy is common in other standards organizations.  For example, in OASIS, a technical committee is able to approved and publish &#8220;Approved Errata&#8221; but these are restricted to changes that do not break conformance of existing implementations.  Anything beyond that is considered a substantive change to the standard and requires review approval by the OASIS membership.</p>
<p>Clear enough? In fact, in many cases WG4 appears to follow this important distinction.  Some of the proposed changes are simple and benign.  For example, some BRM issues were fixed, but in being fixed caused informative example markup in the standard to be incorrect.  A quick fix of these items via corrigenda is most welcome.</p>
<p>However, in other cases (in fact most of the cases), the Microsoft-dominated WG4 appears to have overstepped the permissible bounds for corrigenda, and indeed gone far, far beyond what it stated it would be doing in corrigenda.  Let&#8217;s look at a few examples.</p>
<p>(Sadly, the general public is not given access to the text of the draft corrigenda (the DCOR) but those on the inside can follow along by reading <a href="http://www.itscj.ipsj.or.jp/sc34/def/1252.zip">N 1252</a> in the SC34 document repository.)</p>
<p>Let&#8217;s start by looking at items 16, 17, 36, 52, 53 and 133 in DCOR for ISO/IEC 29500 Part 4.  These make changes and additions to the WordProcessingML schema.  Deletions are noted in red strikethroughs, and additions in blue:</p>
<p><img src="http://www.robweir.com/blog/images/dcor-16.png" alt="" /></p>
<p><img src="http://www.robweir.com/blog/images/dcor-17.png" alt="" /></p>
<p>This is not correcting a drafting error.  This is not correcting a publishing error.  This is a substantial addition to the schema as you can see above.</p>
<p>It is argued, in the defect log, that this change is needed because, without it, ISO/IEC 29500 cannot represent change tracking in mathematical equations.  However, this is exactly the type of change that WG4&#8217;s guidelines and JTC1 Directives exclude from corrigenda and place into amendments.  The schema of OOXML is certainly an &#8220;agreed technical provision of an existing IS&#8221;.  So how can adding math change tracking support to the schema be anything other than an &#8220;addition to previously agreed technical provisions&#8221;?  And how can anyone in WG4 believe that adding dozens of lines to the schema can be done &#8220;without the theoretical possibility of breaking existing conformant implementations of the standard&#8221;?  What about, for example, applications that were programmed to use the published OOXML schema, such as any application that uses a validating parser, or an schema-directed editor, or a program that generates code stubs from the schema, or does XML-to-relational DB mapping?  Not only is there a theoretical possibility of breaking such applications, there is a theoretical certainty.</p>
<p>(Ironically, it should be noted that Microsoft was very keen to beat up on ODF for not having change tracking for mathematical equations, all while hiding the fact that OOXML lacked complete support for this feature as well.)</p>
<p>Another example, #122 in the DCOR.</p>
<p><img src="http://www.robweir.com/blog/images/dcor-122.png" alt="" /></p>
<p>It changes a type in chart, from a byte to an int and in doing so extends its allowed range considerably.  How did anyone think that this was a change that was &#8220;without the theoretical possibility of breaking existing conformant implementations of the standard&#8221;?  Isn&#8217;t there enough theoretical and practical expertise in WG4 to know that changes like this break compatibility?</p>
<p>For this change the rationale in the defect log explains the logic of it:</p>
<blockquote><p>The standard states that the ST_Period simple type uses the XML Schema ST_Period data type and supports a range 2–255.</p>
<p>These observations are incompatible with existing documents and should be updated to reflect such prior art.</p></blockquote>
<p>And so on and so on.  If you search through the defect log, you will see the phrase &#8220;existing documents&#8221; used dozens of times.  That appears to be how many discussions in WG4 end.  It shuts down debate like an appeal to &#8220;national security&#8221; or &#8220;executive privilege&#8221;, arguments that trumps all others.  It doesn&#8217;t matter what WG4 previously told SC34, or what JTC1 Directives say, if ISO/IEC 29500 does not match what Microsoft Office actually writes out, then this is by definition a drafting error, and the standard will be &#8220;corrected&#8221; to conform with MS Office.  Let that sink in for a little, until you realize how backwards this is.</p>
<p>I invite you to go back to the <a href="http://www.itscj.ipsj.or.jp/sc34/open/1253.pdf">defect log</a> [PDF] and search for &#8220;BRM&#8221;.  You will find several oddities.  For example, among these proposed changes are some that actually reverse BRM decisions. Yes, you heard me correctly. SC34/WG4, the Microsoft-dominated committee that maintains OOXML, is undoing various BRM decisions that enabled OOXML to be approved in the first place.  Why?  Well, of course, to make the standard conform more to Microsoft Office.</p>
<p>For example, take  DR 09-0159 &#8220;General: Unintended incompatibilities between Transitional schema and Ecma-376&#8243; or DR 09-0275 &#8220;BRM: serial date representation&#8221; with this comment:</p>
<blockquote><p>Although this text is in accord with the detailed amendments resolved at the BRM, it is against the spirit of the desired changes for many countries. We believe that due to time limitations at the BRM, this change was made without sufficient examination of the consequences, and was made in error by the BRM (in which error the UK played a part).</p></blockquote>
<p>(Norbert Bollow, a member of the Swiss NB, has some good analysis of the <a href="http://adaptux.com/standards/ooxml-wg4-leap-year-bug-unfix">return of the leap year bug in spreadsheets</a>.  And Jomar Silva with the Brazilian NB tracks some <a href="http://gebara.blog.br/mainblog/wikigt/index.php?title=N1247">additional breaking changes</a> on a wiki.)</p>
<p>Ah, So WG4 is now interpreting the &#8220;spirit of the BRM&#8221; through their shamanic communion with the ISO Weltgeist, and each time their oracle come back with the same response: &#8220;Change OOXML so it &#8216;conforms&#8217; to Microsoft Office 2007&#8243;.  How convenient for Microsoft.</p>
<p>For most standards, multiple vendors work together to improve interoperability and to increase their conformance with the standard. But with OOXML a single vendor stuffs the committee and works to make the standard better conform to Microsoft&#8217;s monopoly product.</p>
<p>So although Microsoft Office does not conform to ISO/IEC 29500 today, I have no doubt that within a few months it will fully conform.  But not a single line of code will have changed in the Office product.  Office 2007 will be retroactively made to conform to ISO/IEC 29500.  What will happen is the standard will be modified to match that single vendor&#8217;s products, by misapplication of an ISO procedure intended for fixing minor drafting errors.</p>
<p>So why go through all this trouble?  I believe this is all about getting the OOXML standard &#8220;corrected&#8221; so Microsoft can push for it to get it officially adopted around the world.  The only reason they&#8217;ve held back so far is because MS Office does not actually implement ISO/IEC 29500 today.  So it would have been counter productive for them to push for official adoption.  However, once this oversight is remedied, by changing the standard to match their product, then watch out.</p>
<p>The side effect, perhaps unintended, is that the OOXML standard is thus clearly marked to be unstable and unsuitable for adoption or implementation.  With 800 pages of defects and more being found, and a Microsoft-dominated committee that changes the standard with no objective technical justification, the exact contents of the OOXML standard is tentative, uncertain and temporary.  Four corrigenda documents and two amendment documents are currently being balloted, including many breaking changes.  More corrigenda and amendments are on the way.  There is no provision for a version attribute or any other indicator to declare which of the multiple incompatible versions of the standard a document conforms to.    What competitor would risk implementing the standard, knowing that Microsoft dominates WG4, which has shown it is willing to change the standard at Microsoft&#8217;s whim?  The risk is simply too large.  A competitor would simply be putting their head in the lion&#8217;s mouth.</p>
<p>And at the same time WG4 rushes to make OOXML conform to Office 2007, Microsoft is moving on with Office 2010, now in technical preview.  Office 2010 will be extending OOXML in hundreds of places.  Where is SC34 in this?  Where is the new work proposal for OOXML 1.1?  Where the are discussions?  The drafts?  None of this exists.  If Microsoft wanted to, they could have submitted these changes to SC34 at the recent meeting in Seattle, but they preferred to reserve discussion of the Office 2010 changes for a private meeting in Redmond the day after the SC34 Plenary ended, a snub to SC34 and their fictional control of OOXML.</p>
<p>So Microsoft is now off extending OOXML, and this whole ISO escapade with OOXML seems for naught.  (I hear also that Microsoft is also backing off the submission of their Extensible Page Specification (XPS) to ISO as well, saying that &#8220;an Ecma Standard is good enough&#8221;.)  It appears that Microsoft got what they wanted from ISO and is moving on.  Who said it would last more than a night?  As my grandmother used to say, &#8220;Why buy the cow when you can get the milk for free?&#8221;</p>
<p>In any case,  the future looks like something like this:</p>
<ul>
<li>ISO/IEC 29500:2008&#8217;s future is uncertain.  If the whole i4i patent thing goes against Microsoft, the standard will probably need to be withdrawn.</li>
<li>ISO/IEC 29500 with Corrigenda and Amendments will eventually line up with Office 2007 SP2 sometime in 2010/11.</li>
<li>But before that happens, Office 2010 will ship with hundreds of extensions that are not described in ISO/IEC 29500 but are documented in proprietary &#8220;implementation notes&#8221; on Microsoft&#8217;s web site.</li>
<li>&#8220;Office 15&#8243; will ship sometime around 2013.  It will have further proprietary extensions to ISO/IEC 29500, also not standardized.  Office 15 will still be supporting &#8220;transitional&#8221; OOXML, just like Office 2007 and Office 2010 did. &#8220;Transitional&#8221; OOXML is the variation that has all the deprecated crud, like VML and &#8220;DoItLikeWord95&#8243; in it.</li>
<li>&#8220;Office 16&#8243; will ship sometime around 2016.  It will finally support the &#8220;strict&#8221; schema of ISO/IEC 29500, but with 3 generations of proprietary extensions layered on top of it.  And that assumes ISO/IEC 29500 actually still exists.  In 2015 —  5 years after its last amendment — it will be up for &#8220;periodic review&#8221; in ISO and may be withdrawn if it appears to have been abandoned by Microsoft.</li>
</ul>
<p>The pattern is clear:  OOXML will be extended by Microsoft much faster than it will be standardized and corrected by ISO.  This will make the ISO version of OOXML, currently not supported by Microsoft, even more irrelevant in the future.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=cDrE0LBkvkc:wRJpqvp8LLY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=cDrE0LBkvkc:wRJpqvp8LLY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=cDrE0LBkvkc:wRJpqvp8LLY:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=cDrE0LBkvkc:wRJpqvp8LLY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=cDrE0LBkvkc:wRJpqvp8LLY:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/robweir/antic-atom/~4/cDrE0LBkvkc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robweir.com/blog/2009/10/final-ooxml-update-part-iii.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/us/</creativeCommons:license>
	<feedburner:origLink>http://www.robweir.com/blog/2009/10/final-ooxml-update-part-iii.html</feedburner:origLink></item>
		<item>
		<title>The Final OOXML Update: Part II</title>
		<link>http://feedproxy.google.com/~r/robweir/antic-atom/~3/zGTjBnDnSm8/final-ooxml-update-part-ii.html</link>
		<comments>http://www.robweir.com/blog/2009/10/final-ooxml-update-part-ii.html#comments</comments>
		<pubDate>Fri, 16 Oct 2009 12:30:00 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[OOXML]]></category>

		<guid isPermaLink="false">http://www.robweir.com/blog/2009/10/the-final-ooxml-update-part-ii.html</guid>
		<description><![CDATA[In Part I of this OOXML update, my first post on the topic in over a year, I showed you how Microsoft maintains strong control over the OOXML standard.  Despite their earlier promises that control of OOXML would be handed over to an independent, international committee, a look at attendance records reveals that the [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>In <a href="http://www.robweir.com/blog/2009/10/final-ooxml-update-part-i.html">Part I</a> of this OOXML update, my first post on the topic in over a year, I showed you how Microsoft maintains strong control over the OOXML standard.  Despite their earlier promises that control of OOXML would be handed over to an independent, international committee, a look at attendance records reveals that the committee  that maintains OOXML (JTC1/SC34/WG4) consists mainly of Microsoft employees, who outnumber any other company or organization on the committee 10-to-1.</p>
<p>In this, Part II of my OOXML update, I&#8217;ll tie up another loose end from the immediate aftermath of the DIS 29500 BRM.</p>
<p>Let&#8217;s start by casting our memories back to April, 2008.   The BRM was over.  NBs had reviewed thousands of pages and submitted thousands of defects.  And Microsoft/Ecma made thousands of responses.  And the BRM approved thousands of changes.  Then, as a final step,  NBs were asked if they wanted to change their vote from their original September 2007 vote, based on the changes made to the standard by the BRM.</p>
<p>Curiously, NBs were asked to make their final decision without actually seeing the text of the standard they were being asked to approve.  ISO leadership denied requests from several NBs, a formal SC34 resolution requesting this text, as well as NB appeals, all which asked to have access to the &#8220;final DIS&#8221; text that would eventually be published. The ISO chief, in his response to the NB appeals, called the final text of OOXML &#8220;irrelevant&#8221; (prophetic words, indeed!) and would only permit NBs to have access to a list of over 1,000 resolutions from the BRM, many of which gave great editing discretion to the Microsoft consultant who would eventually produce the final text of the specification.</p>
<p>I discussed why the <a href="http://www.robweir.com/blog/2008/05/release-ooxml-final-dis-text-now.html">lack of a final DIS text</a> was a problem back in May 2008:</p>
<blockquote><p>We are currently approaching a two month period where NB&#8217;s can lodge an appeal against OOXML. Ordinarily, one of the grounds for appeal would be if the Project Editor did not faithfully carry out the editing instructions approved at the BRM. For example, if he failed to make approved changes, made changes that were not authorized, or introduced new errors when applying the approved changes. But with no final DIS text, the NB&#8217;s are unable to make any appeals on those grounds. By delaying the release of the final DIS text, JTC1 is preventing NB&#8217;s from exercising their rights.</p></blockquote>
<p>Would you make thousands of changes to code and then not allow anyone to test it, and then release it internationally?  Of course not.  Doing so would amount to professional malpractice.  But that is essentially what ISO did with OOXML.</p>
<p>Well, guess what happened? Indeed, the published text of OOXML failed to carry out all of the editing instructions made by the BRM. Several of the BRM resolutions were ignored altogether. Several others were applied inconsistently or erroneously.  Although I am aware of no systematic review of all 1,000+ BRM decisions, some NBs have gone back and reviewed the published text against BRM decisions that should have addressed their own NB&#8217;s reported comments. They have found many &#8220;discrepancies&#8221; and these have now been reported as <a href="http://www.itscj.ipsj.or.jp/sc34/open/1253.pdf">defect reports</a> [PDF].</p>
<p>Whether the flaws in the published text are intentional or accidental, grave or minor, does not really matter here. <span style="font-style: italic;">Errare </span><span style="font-style: italic;">humanum  est</span>.  The problem is that it was 100% predictable that human error would cause problems like this when dealing with text changes of this volume.  The issue is not whether there will be errors introduced.  The presence of many errors was guaranteed.  The question was whether NBs are entitled to base their vote on all relevant information, including the final text of the standard, or whether relevant information, indeed the most relevant information &#8212; the text of the specification they are voting on &#8212; may be withheld from inspection.   For ISO leadership to deny NBs the ability to review the very text they were voting was irresponsible.</p>
<p>The good news is that ISO leadership has changed since this debacle, and JTC1 is currently revising Fast Track procedures, in part to deal with the abuses of DIS 29500.  One of the changes they are making is to the Fast Track procedure will require that the final DIS text be distributed to NBs before the final vote. This is progress and it is good to see these changes made, though it is unfortunate that it required a failure before such obvious and prudent precautions were instituted. Leadership entails foreseeing and preventing problems, not simply reacting to them. In any case, the NBs that appealed to ISO on the basis of not being allowed to see the final text should feel vindicated now. The NBs of India, Brazil and South Africa were right.</p>
<p>In Part III of this Update, I&#8217;ll bring the story up to the present day, and in Part IV I&#8217;ll update the story through the year 2016.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=zGTjBnDnSm8:XRp2mfQcWYQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=zGTjBnDnSm8:XRp2mfQcWYQ:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=zGTjBnDnSm8:XRp2mfQcWYQ:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/robweir/antic-atom?a=zGTjBnDnSm8:XRp2mfQcWYQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/robweir/antic-atom?i=zGTjBnDnSm8:XRp2mfQcWYQ:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/robweir/antic-atom/~4/zGTjBnDnSm8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robweir.com/blog/2009/10/final-ooxml-update-part-ii.html/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/us/</creativeCommons:license>
	<feedburner:origLink>http://www.robweir.com/blog/2009/10/final-ooxml-update-part-ii.html</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic Page Served (once) in 1.962 seconds --><!-- Cached page served by WP-Cache -->
