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

<channel>
	<title>Jason R Briggs &#187; miscellaneous</title>
	<atom:link href="http://www.briggs.net.nz/log/category/miscellaneous/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.briggs.net.nz/log</link>
	<description>Techie stuff from the perspective of a Kiwi abroad</description>
	<lastBuildDate>Mon, 28 Jun 2010 06:45:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Ham</title>
		<link>http://www.briggs.net.nz/log/2010/06/20/ham/</link>
		<comments>http://www.briggs.net.nz/log/2010/06/20/ham/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 20:19:07 +0000</pubDate>
		<dc:creator>jrbriggs</dc:creator>
				<category><![CDATA[commentary]]></category>
		<category><![CDATA[miscellaneous]]></category>

		<guid isPermaLink="false">http://www.briggs.net.nz/log/?p=1238</guid>
		<description><![CDATA[And the award for the most gratuitous over-acting in a football game goes to Brazil. With an (dis)honourable mention to the Ivory Coast.]]></description>
			<content:encoded><![CDATA[<p>And the award for the most gratuitous over-acting in a football game goes to Brazil.  With an (dis)honourable mention to the Ivory Coast.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.briggs.net.nz/log/2010/06/20/ham/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Emergency Remedial Maths</title>
		<link>http://www.briggs.net.nz/log/2010/01/26/emergency-remedial-maths/</link>
		<comments>http://www.briggs.net.nz/log/2010/01/26/emergency-remedial-maths/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 22:47:45 +0000</pubDate>
		<dc:creator>jrbriggs</dc:creator>
				<category><![CDATA[commentary]]></category>
		<category><![CDATA[miscellaneous]]></category>

		<guid isPermaLink="false">http://www.briggs.net.nz/log/?p=1184</guid>
		<description><![CDATA[It looks like the entire United Kingdom&#8230; or at least the percentage involved in property&#8230; needs Emergency Remedial Mathematics lessons. The UK economy leaps out of recession, like a grasshopper trying to jump on Jupiter, triggering a mass hallucinatory episode amongst real estate agents whom, I can only guess, come to the incorrect conclusion that [...]]]></description>
			<content:encoded><![CDATA[<p>It looks like the entire United Kingdom&#8230; or at least the percentage involved in property&#8230; needs Emergency Remedial Mathematics lessons.</p>
<p>The UK economy <a href="http://uk.reuters.com/article/idUKTRE60O4N420100126">leaps out of recession</a>, like a grasshopper trying to jump on <a href="http://www.universetoday.com/guide-to-space/jupiter/gravity-of-jupiter/">Jupiter</a>, triggering a mass hallucinatory episode amongst real estate agents whom, I can only guess, come to the incorrect conclusion that &#8220;0.1%&#8221; is somehow a fraction representing &#8220;1 percent&#8221;, and consequently re-list all their properties using a multiple of that figure.</p>
<p>Optimism abounds. :-]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.briggs.net.nz/log/2010/01/26/emergency-remedial-maths/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SWFK Tab Sweep</title>
		<link>http://www.briggs.net.nz/log/2009/12/19/swfk-tab-sweep/</link>
		<comments>http://www.briggs.net.nz/log/2009/12/19/swfk-tab-sweep/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 22:00:42 +0000</pubDate>
		<dc:creator>jrbriggs</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[miscellaneous]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[writing]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[swfk]]></category>

		<guid isPermaLink="false">http://www.briggs.net.nz/log/?p=1144</guid>
		<description><![CDATA[This is cool &#8211; SWFK was the top voted comment (option?) on a recent stack overflow discussion about programming for 11 year olds: stackoverflow.com/&#8230;/which-programming-language-is-manageable-by-an-11-year-old-kid There&#8217;s finally a German version in progress: code.google.com/p/swfk-de/ Here&#8217;s a news group discussion about SWFK being used (at least in part) for a course on teaching Python: archives.seul.org/schoolforge/&#8230;/msg00041.html And finally, the [...]]]></description>
			<content:encoded><![CDATA[<p>This is cool &#8211; <a href="http://code.google.com/p/swfk">SWFK</a> was the top voted comment (option?) on a recent <a href="http://stackoverflow.com">stack overflow</a> discussion about programming for 11 year olds:<br />
<a href="http://stackoverflow.com/questions/1621774/which-programming-language-is-manageable-by-an-11-year-old-kid/1621861#1621861">stackoverflow.com/&#8230;/which-programming-language-is-manageable-by-an-11-year-old-kid</a></p>
<p>There&#8217;s finally a German version in progress:<br />
<a href="http://code.google.com/p/swfk-de/">code.google.com/p/swfk-de/</a></p>
<p>Here&#8217;s a news group discussion about SWFK being used (at least in part) for a course on teaching Python:<br />
<a href="http://archives.seul.org/schoolforge/discuss/Jul-2009/msg00041.html">archives.seul.org/schoolforge/&#8230;/msg00041.html</a></p>
<p>And finally, the book also made the list of beginner&#8217;s tools on the sugarlabs wiki:<br />
<a href="http://wiki.sugarlabs.org/go/Development_Team/Resources">wiki.sugarlabs.org/&#8230;/Resources</a></p>
<p>Chuffed.  <img src='http://www.briggs.net.nz/log/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.briggs.net.nz/log/2009/12/19/swfk-tab-sweep/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lost touch with reality</title>
		<link>http://www.briggs.net.nz/log/2009/12/15/lost-touch-with-reality/</link>
		<comments>http://www.briggs.net.nz/log/2009/12/15/lost-touch-with-reality/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 00:25:10 +0000</pubDate>
		<dc:creator>jrbriggs</dc:creator>
				<category><![CDATA[commentary]]></category>
		<category><![CDATA[miscellaneous]]></category>

		<guid isPermaLink="false">http://www.briggs.net.nz/log/?p=1138</guid>
		<description><![CDATA[Here&#8217;s a judge who has completely lost touch with reality: http://www.telegraph.co.uk/news/newstopics/politics/lawandorder/6811239/Businessman-jailed-for-attacking-intruder&#8212;who-goes-free.html Quote: It&#8217;s difficult to believe that this outcome reflects the thinking of the public, or the interests of justice. I would say not difficult&#8230; more like impossible.]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a judge who has <strong>completely</strong> lost touch with reality:</p>
<p><a href="http://www.telegraph.co.uk/news/newstopics/politics/lawandorder/6811239/Businessman-jailed-for-attacking-intruder---who-goes-free.html">http://www.telegraph.co.uk/news/newstopics/politics/lawandorder/6811239/Businessman-jailed-for-attacking-intruder&#8212;who-goes-free.html</a></p>
<p>Quote:</p>
<blockquote><p>It&#8217;s difficult to believe that this outcome reflects the thinking of the public, or the interests of justice.</p></blockquote>
<p>I would say not difficult&#8230; more like impossible.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.briggs.net.nz/log/2009/12/15/lost-touch-with-reality/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cross it off the list&#8230;</title>
		<link>http://www.briggs.net.nz/log/2009/12/12/cross-it-off-the-list/</link>
		<comments>http://www.briggs.net.nz/log/2009/12/12/cross-it-off-the-list/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 10:45:48 +0000</pubDate>
		<dc:creator>jrbriggs</dc:creator>
				<category><![CDATA[commentary]]></category>
		<category><![CDATA[miscellaneous]]></category>

		<guid isPermaLink="false">http://www.briggs.net.nz/log/?p=1135</guid>
		<description><![CDATA[So, cross the US back off the list of places I want to visit any time soon&#8230; http://www.rifters.com/crawl/?p=932]]></description>
			<content:encoded><![CDATA[<p>So, cross the US back off the list of places I want to visit any time soon&#8230;</p>
<p><a href="http://www.rifters.com/crawl/?p=932">http://www.rifters.com/crawl/?p=932</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.briggs.net.nz/log/2009/12/12/cross-it-off-the-list/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clarkson should have a blog&#8230;</title>
		<link>http://www.briggs.net.nz/log/2009/11/09/clarkson-should-have-a-blog/</link>
		<comments>http://www.briggs.net.nz/log/2009/11/09/clarkson-should-have-a-blog/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 21:31:18 +0000</pubDate>
		<dc:creator>jrbriggs</dc:creator>
				<category><![CDATA[commentary]]></category>
		<category><![CDATA[miscellaneous]]></category>

		<guid isPermaLink="false">http://www.briggs.net.nz/log/?p=1131</guid>
		<description><![CDATA[Don&#8217;t know if he actually wrote it, but under the assumption he did, this is brilliant: http://bastardoldholborn.blogspot.com/2009/11/mandelson-censors-jeremy-clarkson.html]]></description>
			<content:encoded><![CDATA[<p>Don&#8217;t know if he actually wrote it, but under the assumption he did, this is brilliant:</p>
<p><a href="http://bastardoldholborn.blogspot.com/2009/11/mandelson-censors-jeremy-clarkson.html">http://bastardoldholborn.blogspot.com/2009/11/mandelson-censors-jeremy-clarkson.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.briggs.net.nz/log/2009/11/09/clarkson-should-have-a-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Miscalculations</title>
		<link>http://www.briggs.net.nz/log/2009/09/21/miscalculations/</link>
		<comments>http://www.briggs.net.nz/log/2009/09/21/miscalculations/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 18:41:20 +0000</pubDate>
		<dc:creator>jrbriggs</dc:creator>
				<category><![CDATA[commentary]]></category>
		<category><![CDATA[miscellaneous]]></category>
		<category><![CDATA[writing]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[swfk]]></category>

		<guid isPermaLink="false">http://www.briggs.net.nz/log/?p=1112</guid>
		<description><![CDATA[I was updating the SWFK project page with the total number of downloads (since I last updated it in March), and discovered that I&#8217;ve miscalculated the figure. I use awstats for my site, and usually just go through all the swfk-*.zip links for each month, using a calculator, to work out the sub-total, then add [...]]]></description>
			<content:encoded><![CDATA[<p>I was updating the <a href="http://code.google.com/p/swfk">SWFK</a> project page with the total number of downloads (since I last updated it in March), and discovered that I&#8217;ve miscalculated the figure.  I use <a href="http://awstats.sourceforge.net/">awstats </a>for my site, and usually just go through all the swfk-*.zip links for each month, using a calculator, to work out the sub-total, then add the downloads from the Google Code project page.  However, this time I used a spreadsheet, and it appears as if I&#8217;ve previously missed a few thousand downloads.  So while I thought the the grand total was around 16K, it looks like it&#8217;s actually in the region of 19K.  Which is something like 18-20GB worth of data &#8212; a reasonably impressive figure, when I think about it.</p>
<p>Perhaps I&#8217;ll throw myself a party when I hit 20K&#8230; <img src='http://www.briggs.net.nz/log/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.briggs.net.nz/log/2009/09/21/miscalculations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arkham Asylum and GTA IV mashup</title>
		<link>http://www.briggs.net.nz/log/2009/09/06/arkham-asylum-and-gta-iv-mashup/</link>
		<comments>http://www.briggs.net.nz/log/2009/09/06/arkham-asylum-and-gta-iv-mashup/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 18:55:04 +0000</pubDate>
		<dc:creator>jrbriggs</dc:creator>
				<category><![CDATA[commentary]]></category>
		<category><![CDATA[miscellaneous]]></category>
		<category><![CDATA[Batman]]></category>
		<category><![CDATA[gaming]]></category>
		<category><![CDATA[GTA IV]]></category>

		<guid isPermaLink="false">http://www.briggs.net.nz/log/?p=1068</guid>
		<description><![CDATA[So, I&#8217;ve just finished Batman: Arkham Asylum (almost twice), and currently playing GTA IV. Does anyone else wish that someone would take the Batman gameplay mechanics (and voice acting) and merge with a world the size of GTA? Gotham City instead of Liberty City. Imagine glide flight from the top of a skyscraper, rather than [...]]]></description>
			<content:encoded><![CDATA[<p>So, I&#8217;ve just finished <a href="http://uk.gamespot.com/xbox360/action/batmanarkhamasylum/index.html?tag=result;title;0">Batman: Arkham Asylum</a> (almost twice), and currently playing <a href="http://uk.gamespot.com/xbox360/action/grandtheftauto4/index.html?tag=result;title;2">GTA IV</a>.  Does anyone else wish that someone would take the Batman gameplay mechanics (and voice acting) and merge with a world the size of GTA?  </p>
<p>Gotham City instead of Liberty City.  </p>
<p>Imagine glide flight from the top of a skyscraper, rather than just a few storeys up on a gargoyle.  Tracking criminals from building to building.  Remote driving the Batcar or Batwing for a pickup.  Using the &#8220;real&#8221; Batcave facilities to investigate crimes.</p>
<p>The possibilities are endless&#8230;</p>
<p>&#8230;and I want that game!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.briggs.net.nz/log/2009/09/06/arkham-asylum-and-gta-iv-mashup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The problem with 6 year olds&#8230;</title>
		<link>http://www.briggs.net.nz/log/2009/05/26/the-problem-with-6-year-olds/</link>
		<comments>http://www.briggs.net.nz/log/2009/05/26/the-problem-with-6-year-olds/#comments</comments>
		<pubDate>Tue, 26 May 2009 19:52:28 +0000</pubDate>
		<dc:creator>jrbriggs</dc:creator>
				<category><![CDATA[miscellaneous]]></category>
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://www.briggs.net.nz/log/?p=988</guid>
		<description><![CDATA[&#8230;is that you&#8217;re forced to sit through the semi-final of Britain&#8217;s Got Talent. And I thought having to sit through multiple viewings of The Wiggles was bad&#8230;]]></description>
			<content:encoded><![CDATA[<p>&#8230;is that you&#8217;re forced to sit through the semi-final of Britain&#8217;s Got Talent.</p>
<p>And I thought having to sit through multiple viewings of The Wiggles was bad&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.briggs.net.nz/log/2009/05/26/the-problem-with-6-year-olds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changes are afoot</title>
		<link>http://www.briggs.net.nz/log/2009/05/25/changes-are-afoot/</link>
		<comments>http://www.briggs.net.nz/log/2009/05/25/changes-are-afoot/#comments</comments>
		<pubDate>Mon, 25 May 2009 21:33:04 +0000</pubDate>
		<dc:creator>jrbriggs</dc:creator>
				<category><![CDATA[miscellaneous]]></category>
		<category><![CDATA[proton]]></category>
		<category><![CDATA[stomp]]></category>
		<category><![CDATA[swfk]]></category>
		<category><![CDATA[yak]]></category>

		<guid isPermaLink="false">http://www.briggs.net.nz/log/?p=984</guid>
		<description><![CDATA[If you&#8217;re a regular visitor, you may have noticed my rather ill-fated attempt (IMO) at using a magazine style theme on this site has now been replaced by&#8230; well&#8230; very little theme at all. This is not the only change. After much internal cogitation, I&#8217;ve decided to dump the forum, and use Google Groups for [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re a regular visitor, you may have noticed my rather ill-fated attempt (IMO) at using a magazine style theme on this site has now been replaced by&#8230; well&#8230; very little theme at all.</p>
<p>This is not the only change.  After much internal cogitation, I&#8217;ve decided to dump the forum, and use Google Groups for further discussion on all my projects.  Along with moving the hosting of those projects elsewhere.  In short, this blog now becomes more of a blog.  The distinction makes sense in my head anyway.</p>
<p>While the old forum messages can still be found here: <a href="http://www.briggs.net.nz/log/forum">http://www.briggs.net.nz/log/forum</a>, check below for where you should submit comments from now on.</p>
<p><strong>YAK for WordPress</strong><br />
The main project page will now be at WordPress:  <a href="http://wordpress.org/extend/plugins/yak-for-wordpress/">http://wordpress.org/extend/plugins/yak-for-wordpress/</a>.<br />
General discussion will now be held at:  <a href="http://groups.google.com/group/yak-discuss">http://groups.google.com/group/yak-discuss</a>.<br />
Bug reports can be posted to: <a href="http://groups.google.com/group/yak-bugs">http://groups.google.com/group/yak-bugs</a>.</p>
<p><strong>stomp.py</strong><br />
The main project page is at Google Code:  <a href="http://code.google.com/p/stomppy/">http://code.google.com/p/stomppy/</a>.<br />
The discussion group can be found here:  <a href="http://groups.google.com/group/stomppy">http://groups.google.com/group/stomppy</a>.</p>
<p><strong>Proton Template Engine</strong><br />
The project page is at Google Code: <a href="http://code.google.com/p/proton-te/">http://code.google.com/p/proton-te/</a>.</p>
<p><strong>Snake Wrangling for Kids</strong><br />
The project page is still here:  <a href="http://www.briggs.net.nz/log/writing/snake-wrangling-for-kids/">http://www.briggs.net.nz/log/writing/snake-wrangling-for-kids/</a>.<br />
The discussion group is here:  <a href="http://groups.google.com/group/swfk">http://groups.google.com/group/swfk</a></p>
<p>More to come&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.briggs.net.nz/log/2009/05/25/changes-are-afoot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apple shows MS how it should be done&#8230;</title>
		<link>http://www.briggs.net.nz/log/2009/05/15/apple-shows-ms-how-it-should-be-done/</link>
		<comments>http://www.briggs.net.nz/log/2009/05/15/apple-shows-ms-how-it-should-be-done/#comments</comments>
		<pubDate>Fri, 15 May 2009 20:56:14 +0000</pubDate>
		<dc:creator>jrbriggs</dc:creator>
				<category><![CDATA[commentary]]></category>
		<category><![CDATA[miscellaneous]]></category>
		<category><![CDATA[mac]]></category>

		<guid isPermaLink="false">http://www.briggs.net.nz/log/?p=828</guid>
		<description><![CDATA[Apple shows Microsoft how to really do an &#8220;I&#8217;m a PC, I&#8217;m a Mac&#8221; advert: http://movies.apple.com/media/us/mac/getamac/2009/apple-mvp-elimination-us-20090512_480x272.mov Awesome.]]></description>
			<content:encoded><![CDATA[<p>Apple shows Microsoft how to really do an &#8220;I&#8217;m a PC, I&#8217;m a Mac&#8221; advert:</p>
<p><a href="http://movies.apple.com/media/us/mac/getamac/2009/apple-mvp-elimination-us-20090512_480x272.mov">http://movies.apple.com/media/us/mac/getamac/2009/apple-mvp-elimination-us-20090512_480x272.mov</a></p>
<p>Awesome.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.briggs.net.nz/log/2009/05/15/apple-shows-ms-how-it-should-be-done/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://movies.apple.com/media/us/mac/getamac/2009/apple-mvp-elimination-us-20090512_480x272.mov" length="2945900" type="video/quicktime" />
		</item>
		<item>
		<title>More forums, and a French translation</title>
		<link>http://www.briggs.net.nz/log/2009/03/31/more-forums-and-a-french-translation/</link>
		<comments>http://www.briggs.net.nz/log/2009/03/31/more-forums-and-a-french-translation/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 14:15:22 +0000</pubDate>
		<dc:creator>jrbriggs</dc:creator>
				<category><![CDATA[miscellaneous]]></category>
		<category><![CDATA[forum]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[stomp]]></category>
		<category><![CDATA[swfk]]></category>

		<guid isPermaLink="false">http://www.briggs.net.nz/log/?p=763</guid>
		<description><![CDATA[I&#8217;ve finally added a new forum for Snake Wrangling for Kids (python programming book for kids), and another for stomp.py. Neither pages were attracting a huge amount of comment traffic, but even the small number of comments was becoming unmanageable. On the SWFK front, it looks like the French translation is approaching completion &#8212; the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finally added a new <a href="http://www.briggs.net.nz/log/forum/snake-wrangling-for-kids">forum</a> for <a href="http://www.briggs.net.nz/log/writing/snake-wrangling-for-kids">Snake Wrangling for Kids</a> (python programming book for kids), and <a href="http://www.briggs.net.nz/log/forum/stomppy">another</a> for <a href="http://www.briggs.net.nz/log/projects/stomppy">stomp.py</a>.</p>
<p>Neither pages were attracting a huge amount of comment traffic, but even the small number of comments was becoming unmanageable.</p>
<p>On the SWFK front, it looks like the French translation is approaching completion &#8212; the current draft looks brilliant (arguably better than the original).  Michel has done an excellent job.  This is the first translation, and I&#8217;m keen to see more&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.briggs.net.nz/log/2009/03/31/more-forums-and-a-french-translation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Units of Work</title>
		<link>http://www.briggs.net.nz/log/2009/03/20/units-of-work/</link>
		<comments>http://www.briggs.net.nz/log/2009/03/20/units-of-work/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 22:59:26 +0000</pubDate>
		<dc:creator>jrbriggs</dc:creator>
				<category><![CDATA[commentary]]></category>
		<category><![CDATA[miscellaneous]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[distributed]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[transactions]]></category>

		<guid isPermaLink="false">http://www.briggs.net.nz/log/?p=666</guid>
		<description><![CDATA[In regard to cross-resource transactions, I&#8217;m a member of the camp that wonders whether distributed transactions are strictly necessary in the REST/HTTP world; indeed I wonder whether they represent a design failure in modeling the granularity of your resources. That said, we don&#8217;t live in a perfect world &#8212; and even if I can&#8217;t envisage [...]]]></description>
			<content:encoded><![CDATA[<p>In regard to <a href="http://www.jboss.org/community/docs/DOC-13311">cross-resource transactions</a>, I&#8217;m a member of the <a href="http://www.innoq.com/blog/st/2009/03/restful_transactions.html">camp</a> that wonders whether distributed transactions are strictly necessary in the REST/HTTP world; indeed I wonder whether they represent a design failure in modeling the granularity of your <a href="http://rest.blueoxen.net/cgi-bin/wiki.pl?RestResources">resources</a>.</p>
<p>That said, we don&#8217;t live in a perfect world &#8212; and even if I can&#8217;t envisage why a properly designed RESTful application might require access to a distributed transaction, I can certainly envisage the environment where such an application might evolve.  I&#8217;ve worked in a few of them.  Places where interdepartmental barriers are as solid as the Great Wall; bastions of archaic technology where <em>&#8220;one might provide a pseudo-RESTful interface, but one certainly won&#8217;t be re-architecting one&#8217;s legacy system in the buzzword language of the day&#8221;</em>. </p>
<p>But, I think there&#8217;s a certain amount of smoke and mirrors in the JBossTS article &#8220;<a href="http://www.jboss.org/community/docs/DOC-13311">Transactional support for JAX RS based applications</a>&#8220;:</p>
<p><em>Certainly it is worth pointing out that if a system cannot be made reliable then it can be of only limited utility. That said it is a worthwhile exercise to show how a REST based system can be made reliable. </em></p>
<p>Lack of distributed transactions would hardly seem to make a REST based system &#8220;unreliable&#8221; and, as a consequence, of &#8220;only limited utility&#8221;.  Imagine a hotel booking facility &#8212; perhaps a <em>booking</em> resource, which internally might be constructed from a number of components, all governed (again internally) by transaction demarcation.  Does the fact that the booking resource is coarse-grained and does not require an external transaction make it less reliable than a number of fine-grained resources which do?  On the contrary. The latter sounds more like a WS-* api than a RESTful architecture, nothing to do with reliability.</p>
<p>So&#8230; hopefully it&#8217;s obvious I think it&#8217;s a bad idea.  But if I <strong>were</strong> to write such an API, I think the 8-year old spec mentioned in the article falls short of the mark.  Here&#8217;s my first-cut attempt at an alternative (which I still think falls a bit short of the mark, but is possibly an improvement):</p>
<table>
<tr>
<th colspan="5">Resource: tc</th>
</tr>
<tr>
<th>Method</th>
<th>URL</th>
<th>Content</th>
<th>Description</th>
<th>Statuses</th>
</tr>
<tr>
<td>GET</td>
<td>/tc</td>
<td></td>
<td>Returns HTML containing a summary of all transactions (status), plus an href to the transaction detail</td>
<td>200 &#8211; ok</td>
</tr>
<tr>
<td></td>
<td>/tc/{txid}</td>
<td></td>
<td>Returns HTML containing detail for the transaction with id {txid}, including the status and a list of hrefs to the each of the participants. For example:</p>
<pre><code>
&lt;html&gt;
&lt;body&gt;
	&lt;dl&gt;
		&lt;dt&gt;Transaction ID&lt;/dt&gt;
			&lt;dd id="transaction-id"&gt;12345a&lt;/dd&gt;
		&lt;dt&gt;Status&lt;/dt&gt;
			&lt;dd id="transaction-status"&gt;ACTIVE&lt;/dd&gt;
		&lt;dt&gt;Timeout&lt;/dt&gt;
			&lt;dd id="transaction-timeout"&gt;5000&lt;/dd&gt;
	&lt;/dl&gt;
	&lt;ul id="participants"&gt;
		&lt;li&gt;
			&lt;a href="/tc/12345a/participants/1"&gt;
				Participant 1
			&lt;/a&gt;
		&lt;/li&gt;
		&lt;li&gt;
			&lt;a href="/tc/12345a/participants/2"&gt;
				Order
			&lt;/a&gt;
		&lt;/li&gt;
	&lt;ul&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
</td>
<td>200 &#8211; ok<br/><br />
404 &#8211; if txid is not found<br />
409 &#8211; if the transaction has been deleted</td>
</tr>
<tr>
<td></td>
<td>/tc?status={status-type}</td>
<td></td>
<td>Return HTML containing a summary of transactions with a specific status, with href to the transaction detail<br />
For example: /tc?status=recovering or /tc?status=active</td>
<td>200 &#8211; ok</td>
</tr>
<tr>
<td></td>
<td>/tc/{txid}/participants</td>
<td></td>
<td>Return a list of participants in the transaction (list of hrefs)</td>
<td>200 &#8211; ok<br />
404 &#8211; if the transaction does not exist</td>
</tr>
<tr>
<td></td>
<td>/tc/{txid}/partipants/{rec-coord-id}</td>
<td></td>
<td>Return HTML containing the detail of a participant.  For example:</p>
<pre><code>
&lt;html&gt;
&lt;title&gt;Participant #2&lt;/title&gt;
&lt;body&gt;
&lt;dl&gt;
    &lt;dt&gt;ID&lt;/dt&gt;
        &lt;dd&gt;2&lt;/dd&gt;
    &lt;dt&gt;Name&lt;/dt&gt;
        &lt;dd&gt;Order&lt;/dd&gt;
    &lt;dt&gt;URL&lt;/dt&gt;
        &lt;dd&gt;
            &lt;a href="http://internal.mydomain.com/someresource/123"&gt;Order&lt;/a&gt;
        &lt;/dd&gt;
&lt;/dl&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
</td>
<td>200 &#8211; ok<br />
404 &#8211; if the transaction or participant does not exist</td>
</tr>
<tr>
<td>POST</td>
<td>/tc</td>
<td>[timeout={timeout}]</td>
<td>Start a transaction (with default timeout) returning the url /tc/{txid} &#8212; which is deleted after the timeout or after completion (any HTTP method relating to {txid} thereafter returns 404). Use timeout={timeout} to override the default timeout period.</td>
<td>201 &#8211; created</td>
</tr>
<tr>
<td>DELETE</td>
<td>/tc/{txid}</td>
<td></td>
<td>Rollback and stop a transaction</td>
<td>204 &#8211; ok<br />
404 &#8211; if the transaction does not exist</td>
</tr>
<tr>
<td></td>
<td>/tc/{txid}?commit</td>
<td></td>
<td>Commit and stop a transaction</td>
<td>204 &#8211; ok<br />
404 &#8211; if the transaction does not exist</td>
</tr>
<tr>
<td>POST</td>
<td>/tc/{txid}/participants</td>
<td>url={url}&#038;[name={name}]</td>
<td>Enlist {url} in the transaction, returning a unique resource for that participant of the form /tc/{txid}/participants/{rec-coord-id}. If name exists, record against the participant detail</td>
<td>201 &#8211; created<br />
404 &#8211; if the transaction does not exist</td>
</tr>
<tr>
<td>PUT</td>
<td>/tc/{txid}/participants/{rec-coord-id}</td>
<td>url={url}</td>
<td>Replace the participant url</td>
<td>200 &#8211; ok<br />
404 &#8211; if the transaction or participant does not exist</td>
</tr>
</table>
<p>The resource identified by a participant URL will have the following semantics:</p>
<table>
<tr>
<th>Method</th>
<th>URL</th>
<th>Content</th>
<th>Description</th>
<th>Statuses</th>
</tr>
<tr>
<td>PUT</td>
<td>URL/tx/{rec-coord-id}</td>
<td>action=prepare</td>
<td>The participant prepares any work done in the context of the transaction. The Warning header will contain additional info about the state of the prepare (either readonly, or notok).</td>
<td>200 &#8211; ok<br />
200 &#8211; ok (+ Warning: readonly)<br />
200 &#8211; ok (+ Warning: notok)<br />
404 &#8211; participant has rolled back</td>
</tr>
<tr>
<td></td>
<td></td>
<td>action=commit</td>
<td>The participant commits any work done in the context of the transaction.</td>
<td>200 &#8211; ok<br />
200 &#8211; ok (+ Warning: heuristic)<br />
404 &#8211; participant has rolled back</td>
</tr>
<tr>
<td></td>
<td></td>
<td>action=rollback</td>
<td>The participant commits any work done in the context of the transaction.</td>
<td>200 &#8211; ok<br />
200 &#8211; ok (+ Warning: heuristic)<br />
404 &#8211; participant has already rolled back</td>
</tr>
</table>
<p>Basic usage might look something like the following:</p>
<table>
<tr>
<td colspan="2">1. Create a new transaction resource</td>
</tr>
<tr>
<td>
<pre><code>POST /tc
Host: somedomain.com

timeout=5000
</code></pre>
</td>
<td>
<pre><code>HTTP/1.1 201 Created
Connection: close
Date: Thu, 19 Mar 2009 21:01:56 GMT
Location: http://somedomain.com/tc/10a23v991
X-Powered-By: TransactionServer/0.1
</code></pre>
</td>
</tr>
<tr>
<td colspan="2">2. Create a new resource of some kind (notify the resource that it will operate with a distributed transaction)</td>
</tr>
<tr>
<td>
<pre><code>POST /res1?tx
Host: internaldept1.somedomain.com

&lt;xml&gt;some xml describing the resource&lt;/xml&gt;
</code></pre>
</td>
<td>
<pre><code>HTTP1.1 201 Created
Connection: close
Date: Thu, 19 Mar 2009 21:01:56 GMT
Location: http://internaldept1.somedomain.com/res1/100
</code></pre>
</td>
</tr>
<tr>
<td colspan="2">3. Update another resource (again notify that it will be operating within a transaction)</td>
</tr>
<tr>
<td>
<pre><code>PUT /res2/somename?tx
Host: internaldept2.somedomain.com

&lt;xml&gt;some xml describing the update,
perhaps including a reference to the previously
created resource&lt;/xml&gt;
</code></pre>
</td>
<td>
<pre><code>HTTP1.1 200 Ok
Connection: close
Date: Thu, 19 Mar 2009 21:01:56 GMT
Location: http://internaldept2.somedomain.com/res2/somename
</code></pre>
</td>
</tr>
<tr>
<td colspan="2">4. Enlist the url for each resource in the transaction</td>
</tr>
<tr>
<td>
<pre><code>POST /tc/10a23v991/participants
Host: somedomain.com

name=resource1&amp;url=http://internaldept1.somedomain.com/res1/100
</code></pre>
</td>
<td>
<pre><code>HTTP/1.1 201 Created
Connection: close
Date: Thu, 19 Mar 2009 21:01:56 GMT
Location: http://somedomain.com/tc/10a23v991/participants/a01abgv21
X-Powered-By: TransactionServer/0.1
</code></pre>
</td>
</tr>
<tr>
<td>
<pre><code>POST /tc/10a23v991/participants
Host: somedomain.com

name=resource2&amp;url=http://internaldept2.somedomain.com/res2/somename
</code></pre>
</td>
<td>
<pre><code>HTTP/1.1 201 Created
Connection: close
Date: Thu, 19 Mar 2009 21:01:56 GMT
Location: http://somedomain.com/tc/10a23v991/participants/a01abgv22
X-Powered-By: TransactionServer/0.1
</code></pre>
</td>
</tr>
<tr>
<td colspan="2">5. Commit the transaction</td>
</tr>
<tr>
<td>
<pre><code>DELETE /tc/10a23v991?action=commit
Host: somedomain.com
</code></pre>
</td>
<td>
<pre><code>HTTP/1.1 204 Committed and deleted
Connection: close
Date: Thu, 19 Mar 2009 21:01:56 GMT
X-Powered-By: TransactionServer/0.1
</code></pre>
</td>
</tr>
<tr>
<td colspan="2">6. &#8216;Behind the scenes&#8217;, the commit results in the following (2-phase commit at this point)&#8230;</td>
</tr>
<tr>
<td>
<pre><code>PUT /res1/100/tx/a01abgv21
Host: internaldept1.somedomain.com

action=prepare
</code></pre>
<pre><code>PUT /res2/somename/tx/a01abgv22
Host: internaldept2.somedomain.com

action=prepare
</code></pre>
<p>and</p>
<pre><code>PUT /res1/100/tx/a01abgv21
Host: internaldept1.somedomain.com

action=commit
</code></pre>
<pre><code>PUT /res2/somename/tx/a01abgv22
Host: internaldept2.somedomain.com

action=commit
</code></pre>
</td>
<td></td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.briggs.net.nz/log/2009/03/20/units-of-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Writability</title>
		<link>http://www.briggs.net.nz/log/2009/02/23/writability/</link>
		<comments>http://www.briggs.net.nz/log/2009/02/23/writability/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 04:17:46 +0000</pubDate>
		<dc:creator>jrbriggs</dc:creator>
				<category><![CDATA[miscellaneous]]></category>
		<category><![CDATA[technical]]></category>

		<guid isPermaLink="false">http://www.briggs.net.nz/log/?p=643</guid>
		<description><![CDATA[Dumb. I left .htaccess writable, and something (maybe wp-super-cache&#8230;?) corrupted it. Of course, this left my blog completely inaccessible &#8212; and not sure how long for. Mental note&#8230; do NOT do that again. We apologise for this temporary interruption in our services. We&#8217;ll be back with you&#8230; well now, actually.]]></description>
			<content:encoded><![CDATA[<p>Dumb.  </p>
<p>I left .htaccess writable, and something (maybe wp-super-cache&#8230;?) corrupted it.  Of course, this left my blog completely inaccessible &#8212; and not sure how long for.</p>
<p>Mental note&#8230; do NOT do that again.</p>
<p><em>We apologise for this temporary interruption in our services.  We&#8217;ll be back with you&#8230; well now, actually.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.briggs.net.nz/log/2009/02/23/writability/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New forums for YAK</title>
		<link>http://www.briggs.net.nz/log/2009/02/11/new-forums-for-yak/</link>
		<comments>http://www.briggs.net.nz/log/2009/02/11/new-forums-for-yak/#comments</comments>
		<pubDate>Wed, 11 Feb 2009 00:35:47 +0000</pubDate>
		<dc:creator>jrbriggs</dc:creator>
				<category><![CDATA[miscellaneous]]></category>

		<guid isPermaLink="false">http://www.briggs.net.nz/log/?p=604</guid>
		<description><![CDATA[I&#8217;ve finished migrating comments from the original YAK pages to the new forums. Slightly less painful than it could&#8217;ve been, after I wrote a quick app to automate much of the process &#8212; but it was still fairly labour intensive. Which is a long-winded way of saying, if comments have wound up in the wrong [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finished migrating comments from the original YAK pages to the new forums.  Slightly less painful than it could&#8217;ve been, after I wrote a quick app to automate much of the process &#8212; but it was still fairly labour intensive.  Which is a long-winded way of saying, if comments have wound up in the wrong place (or gone missing), it&#8217;s probably due to the manual process.</p>
<p>There are 3 forums for <a href="http://www.briggs.net.nz/log/forum/yak-general-discussion">General Discussion</a>, <a href="http://www.briggs.net.nz/log/forum/yak-suggestions">Suggestions</a> and <a href="http://www.briggs.net.nz/log/forum/yak-bugs">Bugs</a>.  Hopefully they&#8217;re more navigable than the previous comment system.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.briggs.net.nz/log/2009/02/11/new-forums-for-yak/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New theme</title>
		<link>http://www.briggs.net.nz/log/2009/02/09/new-theme/</link>
		<comments>http://www.briggs.net.nz/log/2009/02/09/new-theme/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 00:32:01 +0000</pubDate>
		<dc:creator>jrbriggs</dc:creator>
				<category><![CDATA[miscellaneous]]></category>
		<category><![CDATA[yak]]></category>

		<guid isPermaLink="false">http://www.briggs.net.nz/log/?p=593</guid>
		<description><![CDATA[I&#8217;ve (rather obviously) just updated my theme, and added a new forum. If anyone notices anything odd, please let me know. I&#8217;ve also begun the rather laborious process of moving comments on the YAK general discussion page into the forum (unfortunately there&#8217;s no straightforward, automated method). I&#8217;ll probably lose interest in the process long before [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve (rather obviously) just updated my theme, and added a new forum.  If anyone notices anything odd, please let me know.</p>
<p>I&#8217;ve also begun the rather laborious process of moving comments on the YAK general discussion page into the forum (unfortunately there&#8217;s no straightforward, automated method).  I&#8217;ll probably lose interest in the process long before I reach any great percentage of the 500 comments on that page, but please note comments are now closed on those pages &#8212; anything new should go directly in the <a href="http://www.briggs.net.nz/log/forum/">forum</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.briggs.net.nz/log/2009/02/09/new-theme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>11K</title>
		<link>http://www.briggs.net.nz/log/2008/12/30/eleven-thousand/</link>
		<comments>http://www.briggs.net.nz/log/2008/12/30/eleven-thousand/#comments</comments>
		<pubDate>Tue, 30 Dec 2008 11:43:49 +0000</pubDate>
		<dc:creator>jrbriggs</dc:creator>
				<category><![CDATA[miscellaneous]]></category>
		<category><![CDATA[writing]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[swfk]]></category>

		<guid isPermaLink="false">http://www.briggs.net.nz/log/?p=479</guid>
		<description><![CDATA[A recent visit by Slashdotters (which I had no idea had happened until after the fact) finally tipped the download stats for SWFK over 10K. 11767 (at time of writing), to be exact. I have no idea how that compares to &#8216;real&#8217; books (i.e. stuff that is printed&#8230; or sold in fact), but it seems [...]]]></description>
			<content:encoded><![CDATA[<p>A recent visit by <a href="http://www.slashdot.org">Slashdot</a>ters (which I had no idea had happened until after the fact) finally tipped the download stats for <a href="http://www.briggs.net.nz/log/writing/snake-wrangling-for-kids">SWFK</a> over 10K.  11767 (at time of writing), to be exact.</p>
<p>I have no idea how that compares to &#8216;real&#8217; books (i.e. stuff that is printed&#8230; or sold in fact), but it seems like a reasonably impressive number to me&#8230; at least, for an unmarketed, self-published effort.</p>
<p>Thanks for your support, and hopefully your kids are finding it useful. <img src='http://www.briggs.net.nz/log/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.briggs.net.nz/log/2008/12/30/eleven-thousand/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What is it with shoes lately?</title>
		<link>http://www.briggs.net.nz/log/2008/12/21/what-is-it-with-shoes-lately/</link>
		<comments>http://www.briggs.net.nz/log/2008/12/21/what-is-it-with-shoes-lately/#comments</comments>
		<pubDate>Sun, 21 Dec 2008 10:30:42 +0000</pubDate>
		<dc:creator>jrbriggs</dc:creator>
				<category><![CDATA[commentary]]></category>
		<category><![CDATA[miscellaneous]]></category>

		<guid isPermaLink="false">http://www.briggs.net.nz/log/?p=475</guid>
		<description><![CDATA[First of all a journalist throwing his shoe at Dubyah, then shoe company throwing their weight at a small NZ online retailer: British (shoe design [sic]) company, Jimmy Choo has told the north of Auckland gift seller website, Kookychoo.com, it must agree to give up its name by Tuesday, or face a lawsuit. I have [...]]]></description>
			<content:encoded><![CDATA[<p>First of all a journalist throwing his shoe at Dubyah, then shoe company <a href="http://www.nzherald.co.nz/nz/news/article.cfm?c_id=1&#038;objectid=10549055">throwing their </a><a href="http://www.stuff.co.nz/4799342a19716.html">weight</a> at a small NZ online retailer:</p>
<blockquote><p>
British (shoe design [sic]) company, Jimmy Choo has told the north of Auckland gift seller website, Kookychoo.com, it must agree to give up its name by Tuesday, or face a lawsuit.
</p></blockquote>
<p>I have to admit, I find this kind of thing (the latter rather than the former), really annoying.  Undoubtedly some kind of Freudian &#8220;David versus Goliath&#8221; kind of thing.  </p>
<p>I have no problem with a company trying to protect its brand, but I have a big problem with the manner and terms by which they do so.  In any case, let&#8217;s face it, the only reason one might associate the brand &#8220;Kookychoo&#8221; with &#8220;Jimmy Choo&#8221; is now because of this case.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.briggs.net.nz/log/2008/12/21/what-is-it-with-shoes-lately/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Quote of the Day&#8230;</title>
		<link>http://www.briggs.net.nz/log/2008/10/21/quote-of-the-day/</link>
		<comments>http://www.briggs.net.nz/log/2008/10/21/quote-of-the-day/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 09:17:16 +0000</pubDate>
		<dc:creator>jrbriggs</dc:creator>
				<category><![CDATA[commentary]]></category>
		<category><![CDATA[miscellaneous]]></category>
		<category><![CDATA[technical]]></category>

		<guid isPermaLink="false">http://www.briggs.net.nz/log/?p=422</guid>
		<description><![CDATA[Quote of the Day goes to Roy Fielding for the excellent: That is RPC. It screams RPC. There is so much coupling on display that it should be given an X rating]]></description>
			<content:encoded><![CDATA[<p>Quote of the Day goes to Roy Fielding for the <a href="http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven">excellent</a>:</p>
<blockquote><p>That is RPC. It screams RPC. There is so much coupling on display that it should be given an X rating</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.briggs.net.nz/log/2008/10/21/quote-of-the-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Word on the Mac is a Mess</title>
		<link>http://www.briggs.net.nz/log/2008/10/17/word-on-the-mac-is-a-mess/</link>
		<comments>http://www.briggs.net.nz/log/2008/10/17/word-on-the-mac-is-a-mess/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 08:00:43 +0000</pubDate>
		<dc:creator>jrbriggs</dc:creator>
				<category><![CDATA[commentary]]></category>
		<category><![CDATA[miscellaneous]]></category>
		<category><![CDATA[mac]]></category>

		<guid isPermaLink="false">http://www.briggs.net.nz/log/?p=417</guid>
		<description><![CDATA[Word on the Mac is a mess, and I don&#8217;t like Excel much either. The lack of VBA macro support means it&#8217;s useless for the purpose I originally bought it for &#8212; teach me to not double-check the specs before I buy. Worse yet, Word appears to no longer support Thai language &#8212; meaning it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>Word on the Mac is a mess, and I don&#8217;t like Excel much either. The lack of VBA macro support means it&#8217;s useless for the purpose I originally bought it for &#8212; teach me to not double-check the specs before I buy.</p>
<p>Worse yet, Word appears to no longer support Thai language &#8212; meaning it&#8217;s not fit-for-purpose for my wife either.  Unfortunately, we left the Office 2003 disk in storage, back in NZ, so we can&#8217;t rollback to the version of Office that <strong>did</strong> support Thai language.</p>
<p>Exactly why is Office such a cash cow for Microsoft?  Because of muppets like me, obviously.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.briggs.net.nz/log/2008/10/17/word-on-the-mac-is-a-mess/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
