<?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; commentary</title>
	<atom:link href="http://www.briggs.net.nz/log/category/commentary/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>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>Warts and all</title>
		<link>http://www.briggs.net.nz/log/2009/09/13/warts-and-all/</link>
		<comments>http://www.briggs.net.nz/log/2009/09/13/warts-and-all/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 14:46:03 +0000</pubDate>
		<dc:creator>jrbriggs</dc:creator>
				<category><![CDATA[commentary]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[eshop]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[shopp]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp e-commerce]]></category>
		<category><![CDATA[yak]]></category>

		<guid isPermaLink="false">http://www.briggs.net.nz/log/?p=1073</guid>
		<description><![CDATA[#ver-zebra { font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif; font-size: 12px; width: 100%; text-align: left; border-collapse: collapse; } #ver-zebra th { font-size: 14px; font-weight: normal; padding: 12px 15px; border-right: 1px solid #fff; border-left: 1px solid #fff; border-bottom: 1px solid #fff; color: #039; } #ver-zebra td { padding: 8px 15px; border-right: 1px solid #fff; border-left: 1px [...]]]></description>
			<content:encoded><![CDATA[<style type="text/css">
#ver-zebra {
	font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
	font-size: 12px;
	width: 100%;
	text-align: left;
	border-collapse: collapse;
}
#ver-zebra th {
	font-size: 14px;
	font-weight: normal;
	padding: 12px 15px;
	border-right: 1px solid #fff;
	border-left: 1px solid #fff;
	border-bottom: 1px solid #fff;
	color: #039;
}
#ver-zebra td {
	padding: 8px 15px;
	border-right: 1px solid #fff;
	border-left: 1px solid #fff;
	border-bottom: 1px solid #fff;
	color: #669;
}
.vzebra-odd {
	background: #eff2ff;
}
.vzebra-even {
	background: #e8edff;
}
#ver-zebra #vzebra-adventure, #ver-zebra #vzebra-children {
	background: #d0dafd;
	border-bottom: 1px solid #c8d4fd;
}
#ver-zebra #vzebra-comedy, #ver-zebra #vzebra-action {
	background: #dce4ff;
	border-bottom: 1px solid #d6dfff;
}
td>span {
    font-size: x-large;
}
</style>
<p>I&#8217;ve noticed what seems to be a predilection, by those who write reviews of WordPress shopping cart plugins and themes, to stick YAK at the bottom of the list.  Probably because the number of downloads is below the others.  But the final result is something along the lines of:</p>
<p>WP-Ecommerce: feature, feature, feature, feature&#8230;<br />
Shopp:  feature, feature, feature, feature&#8230;<br />
Eshop:  feature, feature, feature, feature&#8230;<br />
YAK: [gawd I'm tired of listing features... let's not bother with it any more... what can come up with instead... oh I know] it&#8217;s a simple plugin!</p>
<p>It&#8217;s getting old.  Frankly.</p>
<p>So, this is an attempt to come up with a reasonably objective comparison of the shopping cart plugins for WordPress, without excluding the one at the end because someone-got-bored-before-they-finished-writing.  You might be wondering how I can be objective when I develop one of those very plugins &#8212; well, we&#8217;ll see how I do, I guess.  </p>
<p>I&#8217;m going to take a look at the major e-commerce plugins (not themes, because this probably should be an apples-to-apples comparison).  First up, let&#8217;s bundle all those features together into one nice big list and see who does what&#8230; this might end up being a work-in-progress, because in some cases, it&#8217;s not immediately obvious whether the features are included.  If I&#8217;ve missed something, let me know.</p>
<style type="text/css">
td {
text-align: center;
}
td.left {
text-align: left;
}
</style>
<table id="ver-zebra">
<colgroup>
<col class="vzebra-odd" />
<col class="vzebra-even" />
<col class="vzebra-odd" />
<col class="vzebra-even" />
<col class="vzebra-odd" />
<col class="vzebra-even" />
    </colgroup>
<thead>
<tr>
<th>Feature</th>
<th><a href="http://wordpress.org/extend/plugins/wp-e-commerce/">WP-Ecommerce</a></th>
<th><a href="http://wordpress.org/extend/plugins/eshop/">Eshop</a></th>
<th><a href="http://shopplugin.net/">Shopp</a></th>
<th><a href="http://wordpress.org/extend/plugins/yak-for-wordpress/">YAK</a></th>
<th><a href="http://wordpress.org/extend/plugins/quick-shop/">QuickShop</a></th>
<tr>
    </thead>
<tbody>
<tr>
<td class="left">Pricing</td>
<td>Free or $40/195 for Gold, plus other modules</td>
<td>Free, open source</td>
<td>$55 single site, $299 developer</td>
<td>Free, open source, €20 for detailed handbook</td>
<td>Free, open source</td>
</tr>
<tr>
<td class="left"># of Downloads</td>
<td>277,527</td>
<td>57,415</td>
<td>~3,000</td>
<td>19,575 (~7000 on sourceforge)</td>
<td>30,310</td>
</tr>
<tr>
<td class="left">Memory Usage</td>
<td>6.15MB</td>
<td>0.90MB</td>
<td>2.5MB</td>
<td>1.13MB</td>
<td>0.10MB</td>
</tr>
<tr>
<td class="left">Post-as-product</td>
<td></td>
<td><span>&#8226;</span></td>
<td></td>
<td><span>&#8226;</span></td>
<td></td>
</tr>
<tr>
<td class="left">Multiple types of product (options/variations)</td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span><br />(plus multi-select options)</td>
<td><span>&#8226;</span></td>
</tr>
<tr>
<td class="left">Support for digital products</td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span></td>
<td></td>
</tr>
<tr>
<td class="left">Confirmation email</td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span></td>
<td></td>
</tr>
<tr>
<td class="left">Email templates</td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span></td>
<td>Text &amp; HTML</td>
<td>Basic, text and html</td>
<td></td>
</tr>
<tr>
<td class="left">Product search</td>
<td>Gold version only</td>
<td>Products are posts, so searchable via WP</td>
<td><span>&#8226;</span></td>
<td>Products are posts, so searchable via WP</td>
<td></td>
</tr>
<tr>
<td class="left">Product templates</td>
<td><span>&#8226;</span></td>
<td></td>
<td><span>&#8226;</span></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">Product tags</td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span></td>
<td></td>
</tr>
<tr>
<td class="left">Product catalog</td>
<td><span>&#8226;</span></td>
<td></td>
<td><span>&#8226;</span></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">Products groups/subgroups</td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span><br />(through categorisation, I think)</td>
<td>Hierarchical categories (probably the same)</td>
<td><span>&#8226;</span><br />(through categorisation)</td>
<td></td>
</tr>
<tr>
<td class="left">Product attributes or metadata</td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span><br />(via normal post meta)</td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span><br />(via normal post meta)</td>
<td>Basic properties</td>
</tr>
<tr>
<td class="left">Configurable out-of-stock message</td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span></td>
<td></td>
</tr>
<tr>
<td class="left">Order management/history</td>
<td><span>&#8226;</span></td>
<td></td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span></td>
<td></td>
</tr>
<tr>
<td class="left">Dashboard Widgets</td>
<td></td>
<td></td>
<td><span>&#8226;</span></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">Themes</td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span><br />(not free)</td>
<td>Theme widgets, but not themes as far as I can tell</td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">AJAX support (drag &#038; drop, live update, etc)</td>
<td>drag &#038; drop with Gold version</td>
<td></td>
<td>drag &#038; drop shopping</td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">Image upload</td>
<td>Bulk upload</td>
<td>Via WP</td>
<td>Drag-and-drop</td>
<td>Via WP</td>
<td></td>
</tr>
<tr>
<td class="left">Drill-down (or filter) menus</td>
<td></td>
<td></td>
<td><span>&#8226;</span></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">Promotions/Coupons</td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span><br />(plus discounts by spending amount)</td>
<td><span>&#8226;</span><br />(rule based &#8211; by amount, by percentage, free shipping and buy x get y free)</td>
<td><span>&#8226;</span><br />(price or shipping discounts with promo codes, plus discounts by spending amount)</td>
<td></td>
</tr>
<tr>
<td class="left">Related products functionality</td>
<td><span>&#8226;</span></td>
<td>Possible with WP tags</td>
<td><span>&#8226;</span></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">Subscription</td>
<td>Module for Gold version</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">Membership support</td>
<td>Module for Gold version</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">Flat rate shipping</td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span></td>
<td>I think so</td>
</tr>
<tr>
<td class="left">Weight based shipping</td>
<td><span>&#8226;</span></td>
<td></td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span></td>
<td></td>
</tr>
<tr>
<td class="left">Tiered and/or amount-based shipping</td>
<td></td>
<td></td>
<td><span>&#8226;</span></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">USPS integration</td>
<td><span>&#8226;</span></td>
<td></td>
<td>Add-on</td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">UPS integration</td>
<td><span>&#8226;</span></td>
<td></td>
<td>Add-on</td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">Fedex integration</td>
<td></td>
<td></td>
<td>Add-on</td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">Shipwire integration</td>
<td><span>&#8226;</span></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">CA Post integration</td>
<td></td>
<td></td>
<td>Add-on</td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">CSV (or other) export</td>
<td>Products, Orders, Customer info</td>
<td>Products, Orders</td>
<td>Orders and Customers in Tab, CSV, (true) XLS and IIF for QuickBooks (orders only)</td>
<td>Orders and Customer info</td>
<td></td>
</tr>
<tr>
<td class="left">PayPal Std payments</td>
<td><span>&#8226;</span><br />(plus express checkout)</td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span><br />(plus express checkout)</td>
<td><span>&#8226;</span></td>
<td>Redirects to PayPal</td>
</tr>
<tr>
<td class="left">PayPal Pro payments</td>
<td><span>&#8226;</span></td>
<td></td>
<td>Add-on</td>
<td><span>&#8226;</span></td>
<td></td>
</tr>
<tr>
<td class="left">Authorize.net payments</td>
<td></td>
<td><span>&#8226;</span></td>
<td>Add-on</td>
<td><span>&#8226;</span></td>
<td></td>
</tr>
<tr>
<td class="left">Google Checkout payments</td>
<td><span>&#8226;</span></td>
<td></td>
<td><span>&#8226;</span></td>
<td>Partial</td>
<td></td>
</tr>
<tr>
<td class="left">2checkout payments</td>
<td></td>
<td></td>
<td><span>&#8226;</span></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">Chronopay payments</td>
<td><span>&#8226;</span></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">PayJunction payments</td>
<td></td>
<td></td>
<td>Add-on (US-only)</td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">FirstData payments</td>
<td></td>
<td></td>
<td>Add-on</td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">HSBC ePayments</td>
<td></td>
<td></td>
<td>Add-on</td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">eWay payments</td>
<td></td>
<td></td>
<td>Add-on (AU-only)</td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">Payson payments</td>
<td></td>
<td><span>&#8226;</span></td>
<td>Add-on</td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">eProcessingNetwork payments</td>
<td></td>
<td><span>&#8226;</span></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">iDeal (moille) payments (Nederlands only)</td>
<td>Add-on</td>
<td></td>
<td>Add-on</td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">NetCash payments (South Africa only)</td>
<td></td>
<td></td>
<td>Add-on</td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">Webtopay payments</td>
<td></td>
<td><span>&#8226;</span></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">Manual Credit card payments</td>
<td></td>
<td></td>
<td></td>
<td><span>&#8226;</span></td>
<td></td>
</tr>
<tr>
<td class="left">Simple payments (cash, cheque, deposit)</td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span></td>
<td></td>
<td><span>&#8226;</span></td>
<td></td>
</tr>
<tr>
<td class="left">Accounts receivable payments</td>
<td></td>
<td></td>
<td></td>
<td><span>&#8226;</span></td>
<td></td>
</tr>
<tr>
<td class="left">Recurrent billing</td>
<td>Members module</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">Sales Tax Calculations</td>
<td><span>&#8226;</span></td>
<td></td>
<td></td>
<td><span>&#8226;</span></td>
<td></td>
</tr>
<tr>
<td class="left">Google Base integration</td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">Google Analytics integration</td>
<td><span>&#8226;</span></td>
<td></td>
<td><span>&#8226;</span><br />(free add-on)</td>
<td><span>&#8226;</span></td>
<td></td>
</tr>
<tr>
<td class="left">Facebook Marketplace integration</td>
<td><span>&#8226;</span></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">Email marketing</td>
<td><span>&#8226;</span></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">Affiliate program</td>
<td>Gold (beta at time of writing)</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">Reports</td>
<td>Business reports dashboard</td>
<td></td>
<td>Basic Dashboard Stats &#038; Aggregate information in the order log (by filtering)</td>
<td>Simple sales reports</td>
<td></td>
</tr>
<tr>
<td class="left">Category/Product RSS Feeds</td>
<td>Business reports dashboard</td>
<td></td>
<td>Basic Dashboard Stats &#038; Aggregate information in the order log (by filtering)</td>
<td>Simple sales reports</td>
<td></td>
</tr>
<tr>
<td class="left">3rd party integration</td>
<td></td>
<td></td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span></td>
<td></td>
</tr>
<tr>
<td class="left">Developer API</td>
<td><span>&#8226;</span></td>
<td></td>
<td><span>&#8226;</span></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="left">WPMU support?</td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span><br />(not officially supported)</td>
<td><span>&#8226;</span></td>
<td></td>
</tr>
<tr>
<td class="left">Internationalisation</td>
<td></td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span></td>
<td><span>&#8226;</span></td>
<td></td>
</tr>
<tr>
<td class="left">Support Model</td>
<td>Free support via Forum, paid support available</td>
<td>Free support via Forum</td>
<td>Free support via Forum</td>
<td>Free support via Google Group, plus paid</td>
<td>Free support via Forum, paid support by request</td>
</tr>
</tbody>
</table>
<p>Hard to draw any real conclusions from this matrix &#8212; WP E-commerce probably leads in terms of features, but those features come with a (resource) cost.  Shopp looks like it might come second (in terms of featureset), and certainly covers the most payment gateways, but it&#8217;s also a reasonable investment (particularly purchase of a developer license).  Given it&#8217;s commercial-only, it&#8217;s impossible to know what performance or memory usage is like.</p>
<p>Given that no single plugin covers all the possible features, I guess it&#8217;s very much a case of identifying the things that are important to you, then choose the plugin which best covers that featureset.</p>
<p>&#8230;At least, until YAK2 comes out, because that will do everything.</p>
<p>That&#8217;s a joke by the way.</p>
<p>More to come later, and do let me know if I&#8217;m made some glaringly obvious omissions.</p>
<p><em>Update #1:  Added number of downloads, and project links.</em></p>
<p><em>Update #2:  Changes to eShop features, kindly provided by Rich.</em></p>
<p><em>Update #3:  Added info on WP E-commerce product search.</em></p>
<p><em>Update #4:  Added info on Shopp, provided by Jonathon.</em></p>
<p><em>Update #5:  Added iDeal to wp-ecommerce, i18n to eshop.</em></p>
<p><em>Update #6:  Added 2 new YAK features</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.briggs.net.nz/log/2009/09/13/warts-and-all/feed/</wfw:commentRss>
		<slash:comments>16</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>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>Somewhat Less Than Complementary</title>
		<link>http://www.briggs.net.nz/log/2009/03/26/somewhat-less-than-complementary/</link>
		<comments>http://www.briggs.net.nz/log/2009/03/26/somewhat-less-than-complementary/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 12:30:38 +0000</pubDate>
		<dc:creator>jrbriggs</dc:creator>
				<category><![CDATA[commentary]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[e-commerce]]></category>
		<category><![CDATA[shopping cart]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[yak]]></category>

		<guid isPermaLink="false">http://www.briggs.net.nz/log/?p=719</guid>
		<description><![CDATA[Trackback pointed out a somewhat less than complementary review of YAK. I think the reviewer probably has a valid point in regard to user-friendliness, but otherwise hasn&#8217;t appeared to put a huge amount of thought into his review. In fact, it was negative enough that I feel the need to post a rebuttal both here [...]]]></description>
			<content:encoded><![CDATA[<p>Trackback <a href="http://www.internetbusinesspath.com/988/yak-shopping-cart-plugin-review">pointed out</a> a somewhat less than complementary review of <a href="http://www.briggs.net.nz/log/projects/yak-for-wordpress">YAK</a>.</p>
<p>I think the reviewer probably has a valid point in regard to user-friendliness, but otherwise hasn&#8217;t appeared to put a huge amount of thought into his review.  In fact, it was negative enough that I feel the need to post a rebuttal both here and in a comment on his post.  I don&#8217;t mind constructive criticism (as I said, I tend to agree on the user-friendliness front), but I&#8217;m less than impressed with criticism that&#8217;s based on a fundamental lack of research.</p>
<p>Here&#8217;s my comment (hopefully it doesn&#8217;t come across as too defensive&#8230;):</p>
<hr />
<p><i>A question for you:  did you happen to scroll down the YAK project page (here: http://www.briggs.net.nz/log/projects/yak-for-wordpress/)?</p>
<p>I&#8217;m not trying to be snide, but your review mentions a lack of documentation, and there is basic installation documentation on the main project page.</p>
<p>A lot of open source projects make money by selling documentation.  It&#8217;s pretty much a standard practice.  Some users want to pay, some would rather figure it out themselves.  That&#8217;s flexibility for you.  But you don&#8217;t <strong>have</strong> to waste time figuring it out for yourself, because you can buy the handbook &#8212; so I find it rather trite for you to suggest that it&#8217;s somehow okay to pay for a plugin with documentation, yet it&#8217;s not okay to get a free plugin and then pay for the docs.</p>
<p>Yes, YAK is basic.  That was one of the initial goals &#8212; along with tight integration within WordPress.  So no, there isn&#8217;t a way to insert product images from YAK.  Instead, you insert them in your post &#8212; your post is your product.  That&#8217;s the foundation of YAK:  post as product.<br />
YAK originally had its own menu option, but before the new design of WP, I felt it took too much menu real estate and figured users would prefer if it was included within the standard WP menu structure &#8212; settings went into WP->Settings.  Orders and Products and then Reports went into the Manage menu (which has now become Tools).  I haven&#8217;t had any complaints or suggestions to change it, so far.<br />
On the &#8220;lack of help&#8221; front, there is a forum on my site.  A responsible reviewer might&#8217;ve taken a look there first &#8212; and found that, as with many open source projects, the forum is reasonably active, with support requests, and discussions on how to do things, and so on.</p>
<p>YAK might be lacking in user-friendliness (something I&#8217;m trying to address over time, but as a single-developer project, it&#8217;s slow going), but an accusation of lack of support is, quite frankly, groundless.</p>
<p>In the distant past, I was one of the editors of a (printed) technical journal in the US.  Generally if we were reviewing a product, we&#8217;d contact the company in advance for review copies (giving them the opportunity to provide additional information if they wanted). In this case, and for any future reviews you decide to write, I believe you&#8217;d be better served contacting the developer (or developers) and give them that same opportunity. It is perhaps a better form of journalism not to rubbish a project or product without actually doing a little research in advance&#8230;</i></p>
]]></content:encoded>
			<wfw:commentRss>http://www.briggs.net.nz/log/2009/03/26/somewhat-less-than-complementary/feed/</wfw:commentRss>
		<slash:comments>4</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>Flaws?</title>
		<link>http://www.briggs.net.nz/log/2009/03/02/flaws/</link>
		<comments>http://www.briggs.net.nz/log/2009/03/02/flaws/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 23:35:29 +0000</pubDate>
		<dc:creator>jrbriggs</dc:creator>
				<category><![CDATA[commentary]]></category>
		<category><![CDATA[shopping cart]]></category>
		<category><![CDATA[trolls]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[yak]]></category>

		<guid isPermaLink="false">http://www.briggs.net.nz/log/?p=647</guid>
		<description><![CDATA[Last September, I posted about a somewhat odd exchange between myself and the developer of a competing shopping cart plugin, over a troll whom, in the end, wound up attacking both plugins. Since then, I&#8217;ve come across a few negative comments about YAK on various forums &#8212; interestingly, in none of these cases has the [...]]]></description>
			<content:encoded><![CDATA[<p>Last September, I <a href="http://www.briggs.net.nz/log/2008/09/21/on-trolls-and-other-nasty-beasts/">posted</a> about a somewhat odd exchange between myself and the developer of a competing shopping cart plugin, over a troll whom, in the end, wound up attacking both plugins.</p>
<p>Since then, I&#8217;ve come across a few negative comments about YAK on various forums &#8212; interestingly, in none of these cases has the poster actually contacted me.  All too similar to the original troll.</p>
<p>The usual process, when there&#8217;s been a real issue with YAK, is that someone lets me know, I fix said issue (or otherwise try to resolve), and release a new version.  So far, I&#8217;ve only been notified about one legitimate hole in the code (quickly fixed), and (at least, as far as I can recall) haven&#8217;t left any major flaws outstanding for great lengths of time.  So I haven&#8217;t been enormously worried about the odd malcontent.</p>
<p>That said, I occasionally google to see what&#8217;s being said out there, and came across the following gem (from the aforementioned plugin developer).</p>
<p><em>If you want to throw up an image with a price in a page or a post then by all means use YAK. But if you want the real deal then [competing-plugin] is built on years of e-Commerce knowledge and has plenty of important features for people wanting to SELL Online &#8211; such as the ability to interface with many payment gateways, the ability to interface with shipping companies, and much much more</em></p>
<p>(Note: I&#8217;ve removed the name of the plugin because I&#8217;ve thus far tried to avoid actually naming the individual involved).</p>
<p>This was posted sometime after May last year, but I do feel the need to make a couple of comments, even though it&#8217;s almost a year old:</p>
<p>1.  What&#8217;s your definition of important feature?  Get a group of users together, and I guarantee they won&#8217;t come up with the same list.<br />
2.  YAK now supports a number of payment gateways (PayPal standard, PayPal Pro, Authorize.net and basic Google Checkout integration)<br />
3.  Okay, it doesn&#8217;t directly interface with shipping companies &#8212; but the shipping calculation is relatively flexible, and I&#8217;m always open to suggestions.<br />
4.  YAK as a project has now been actively (if intermittently) developed for 3 years.  So I&#8217;d say it also fulfills the assertion: &#8220;built on years of e-Commerce knowledge&#8221;.  <img src='http://www.briggs.net.nz/log/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>
<p>UPDATE: here&#8217;s another <a href="http://www.davidbisset.com/2008/01/28/wordpress-ecommerce-shopping-cart-plugin/#comment-906">interesting comment</a> (by someone called <a href="http://mccormicky.com/">Mccormicky</a>) which I came across after posting this:</p>
<p><em>Yak cart is another you might consider if you don’t mind repairing tables in mysql. I did it and I am no expert.<br />
Yak is not that supported either-there isn’t even an onsite tutorial for setting it up and the readme contains nothing about where to put the hooks! I was amazed.</em></p>
<p>It looks like fairly obvious trolling, given that (at the time it was posted) there was certainly a basic tutorial for YAK setup, and at the time I don&#8217;t recall being contacted about any &#8220;table repair&#8221; problems.  Weird.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.briggs.net.nz/log/2009/03/02/flaws/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>ARTS, or the lack thereof</title>
		<link>http://www.briggs.net.nz/log/2008/11/07/arts-or-the-lack-thereof/</link>
		<comments>http://www.briggs.net.nz/log/2008/11/07/arts-or-the-lack-thereof/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 00:22:08 +0000</pubDate>
		<dc:creator>jrbriggs</dc:creator>
				<category><![CDATA[commentary]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[yak]]></category>

		<guid isPermaLink="false">http://www.briggs.net.nz/log/?p=431</guid>
		<description><![CDATA[I&#8217;ve been looking at providing a basic xml product feed through YAK (needed for some rather esoteric customer requirements) &#8212; at the experimental stage, rather than a feature that will actually make it into development or release. I cast around for some standardised XML formats, and hazy recollection (thanks TOGAF) popped ARTS into my head. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been looking at providing a basic xml product feed through YAK (needed for some rather esoteric customer requirements) &#8212; at the experimental stage, rather than a feature that will actually make it into development or release.  I cast around for some standardised XML formats, and hazy recollection (thanks TOGAF) popped ARTS into my head.  ARTS is the Association for Retail Technology Standards (developed by the National Retail Federation &#8212; NRF&#8217;s byline is &#8220;The Voice of Retail Worldwide&#8221;.  Not to be petty, but wouldn&#8217;t International Retail Federation be a better name if you&#8217;re talking global?) and they publish a bunch of schemas which I figured may be useful &#8212; particularly their inventory schema.  Why come up with my own format, when I can use the work of someone else?</p>
<p><em>Unless, of course, the work of &#8220;someone else&#8221; amounts to a half-meg schema file.</em></p>
<p>Now, my spider senses start tingling if I come across a single schema file that&#8217;s over a few 100 kilobytes, but Netbeans gets it&#8217;s knickers in a right proper twist if you try to generate sample xml from this epic monstrosity.  289MB generated before I managed to kill the process.  </p>
<p>And oh, what an xml.  I don&#8217;t think separation of concerns was a primary, secondary or even tertiary thought for whoever sat down with tool in hand to design this particular &#8216;standard&#8217;.  If a <em>simple</em> type named <code>ActionCommonDataTypeCodesEnumeration</code> isn&#8217;t worrying enough, the fact that it contains terms such as Begin, Cancel, Complete, Create, Delete, Dispatch, Lookup, Initiate, Instruction, Information, PartialCancel, PartialComplete, Read, Request, Update, and so on, hurts the back of my brain.<br />
Let&#8217;s not get started on <code>PriceCommonData</code>, <code>UnitPriceCommonData</code>, and the myriad other <code>CommonData</code>s littered through the document.  Ack.  Aching brain.</p>
<p>Okay, yes, I&#8217;m not the target audience, and I haven&#8217;t paid the US$149 for the documentation, so I may be reading more into the schema than I probably should, but if I look at it through even slightly REST-tinted glasses, it frankly gives me the heebie-jeebies.</p>
<p>Suffice it to say that I will probably not be using ARTS&#8217; inventory.xsd for my, much simpler, requirements.  I may indeed roll my own, but happy to entertain suggestions if someone has a better idea.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.briggs.net.nz/log/2008/11/07/arts-or-the-lack-thereof/feed/</wfw:commentRss>
		<slash:comments>0</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>
		<item>
		<title>On Trolls and Other Nasty Beasts</title>
		<link>http://www.briggs.net.nz/log/2008/09/21/on-trolls-and-other-nasty-beasts/</link>
		<comments>http://www.briggs.net.nz/log/2008/09/21/on-trolls-and-other-nasty-beasts/#comments</comments>
		<pubDate>Sun, 21 Sep 2008 11:31:24 +0000</pubDate>
		<dc:creator>jrbriggs</dc:creator>
				<category><![CDATA[commentary]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[yak]]></category>

		<guid isPermaLink="false">http://www.briggs.net.nz/log/?p=393</guid>
		<description><![CDATA[A few months ago, the author of a competing plugin (to my own rather more modest efforts), contacted me about a troll he was having trouble with. Said troll was posting negative messages about the competition on various forums, and his theory was that the guy is my supporter. Somewhat irritating, was the fact he [...]]]></description>
			<content:encoded><![CDATA[<p>A few months ago, the author of a competing plugin (to my own rather more <a href="http://www.briggs.net.nz/log/projects/yak-for-wordpress">modest efforts</a>), contacted me about a troll he was having trouble with.  Said troll was posting negative messages about the competition on various forums, and his theory was that the guy is my supporter.  </p>
<p>Somewhat irritating, was the fact he claimed to have found connections between us.  Quite how he managed to find a connection I don&#8217;t know &#8212; given that there were/are none &#8212; but more galling was the subsequent request that I post messages to that effect, on all the forums where this muppet had been posting.  Needless to say, I was somewhat less than agreeable, and I suspect that my refusal cemented whatever paranoid delusions of persecution he had conjured.</p>
<p>I only bring this up now, because YAK has suddenly become the <a href="http://wordpress.org/support/topic/200834">target</a> of that self-same troll.  Or at least, I&#8217;m guessing it&#8217;s the same twit (given the similarity of name).  This time ridiculously claiming that my plugin has somehow opened a gaping security hole in WordPress&#8217;s administration panel.  Laughable.</p>
<p>I suggest that rather than YAK causing the problem, it&#8217;ll be the fact that this individual has a few too many brain-cells short of a functional cranium, and that &#8220;password&#8221; is rather too simple an administration password.<br />
On the positive side, it does hopefully prove that the troll has nothing to do with me, and is obviously a sad git with far too much spare time on his hands.</p>
<p><em>UPDATE: just to be thorough, I&#8217;ve double-checked some of the access points in YAK where there might&#8217;ve been potential for a security hole, and I can&#8217;t see anything that might compromise WP&#8217;s security.  So I return to my earlier description of the poster: a <a href="http://www.wordwebonline.com/en/MUPPET">muppet</a>.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.briggs.net.nz/log/2008/09/21/on-trolls-and-other-nasty-beasts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Metro&#8217;s best restaurants</title>
		<link>http://www.briggs.net.nz/log/2008/08/24/metros-best-restaurants/</link>
		<comments>http://www.briggs.net.nz/log/2008/08/24/metros-best-restaurants/#comments</comments>
		<pubDate>Sun, 24 Aug 2008 09:18:02 +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=373</guid>
		<description><![CDATA[Can&#8217;t say I&#8217;m that impressed by Metro&#8217;s selection of the best Auckland restaurants. At least not the Thai choice. Thai Friends has the benefit of a nice view of the Domain, but the last time we went (a few months before we left NZ) the food was just so-so. The 2007 winner (Red Elephant) was [...]]]></description>
			<content:encoded><![CDATA[<p>Can&#8217;t say I&#8217;m that impressed by Metro&#8217;s <a href="http://www.metrolive.co.nz/restaurants/restaurantawards/restaurantoftheyearawards/tabid/290/language/en-NZ/Default.aspx">selection</a> of the best Auckland restaurants.  At least not the Thai choice.  Thai Friends has the benefit of a nice view of the Domain, but the last time we went (a few months before we left NZ) the food was just so-so.  The 2007 winner (Red Elephant) was an order of magnitude better.  It even impressed my wife, which, when it comes to Thai restaurants, is extremely difficult to do.</p>
<p>Transpose Red Elephant&#8217;s menu and chefs to the Thai Friends location and you&#8217;d have the perfect restaurant.  As it is, I&#8217;d rather put up with the crappy view of Khyber Pass and the motorway, and enjoy the steamed snapper and flaming chicken.</p>
<p>Interestingly, I have yet to find a Thai restaurant in London which comes even close to Red Elephant.  The closest would be (coincidentally) Blue Elephant in Fulham &#8212; but that has variety in its favour rather than quality.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.briggs.net.nz/log/2008/08/24/metros-best-restaurants/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is Age a Barrier to Learning?</title>
		<link>http://www.briggs.net.nz/log/2008/08/22/is-age-a-barrier-to-learning/</link>
		<comments>http://www.briggs.net.nz/log/2008/08/22/is-age-a-barrier-to-learning/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 19:08:39 +0000</pubDate>
		<dc:creator>jrbriggs</dc:creator>
				<category><![CDATA[commentary]]></category>

		<guid isPermaLink="false">http://www.briggs.net.nz/log/?p=371</guid>
		<description><![CDATA[Is age a barrier to learning? I don&#8217;t think so. I&#8217;m attempting to follow the pragmatic creed of learning a new programming language a year (well, laziness will probably turn it into every 2 years, but that&#8217;s nothing to do with age), and I think my head is in a better place now, to do [...]]]></description>
			<content:encoded><![CDATA[<p>Is age a barrier to learning?</p>
<p>I don&#8217;t think so.  I&#8217;m attempting to follow the pragmatic <a href="http://www.pragprog.com/titles/tpp/the-pragmatic-programmer">creed</a> of learning a new programming language a year (well, laziness will probably turn it into every 2 years, but that&#8217;s nothing to do with age), and I think my head is in a better place now, to do so, than it was 10 years ago. Certainly my mother doesn&#8217;t think age is any barrier &#8212; she started learning Spanish in her late 20s (I seem to recall), and began Italian well into her 50s.  </p>
<p>I could probably come up with numerous other examples at a push.</p>
<p>So the fact that the British High Commission in Thailand has just rejected my sister-in-law&#8217;s student visa because of her age (early 30s) smacks of excuse, rather than legitimate reason  (in which case, why didn&#8217;t they tell us the real reason for the rejection?)<br />
Despite the fact we pre-paid for the course, provided evidence of income, accommodation, etc, etc, etc &#8212; all the masses of paperwork you need to provide when sponsoring a visa application &#8212; it appears that ageism is rife within the Home Office.</p>
<p>Disappointing.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.briggs.net.nz/log/2008/08/22/is-age-a-barrier-to-learning/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cloud Camp</title>
		<link>http://www.briggs.net.nz/log/2008/07/17/cloud-camp/</link>
		<comments>http://www.briggs.net.nz/log/2008/07/17/cloud-camp/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 23:00:29 +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=337</guid>
		<description><![CDATA[Cloud Camp London: First talk, good. Last talk, good. Stuff in between&#8230; meh. Highlights of the evening: catching up with Ben. And, after 7 years, finally meeting Alan (the last talk!) in person&#8230; &#8230;even if it was only for a few minutes.]]></description>
			<content:encoded><![CDATA[<p><a href="http://london.cloudcamp.com/">Cloud Camp London</a>:</p>
<p>First talk, good.  Last talk, good.  Stuff in between&#8230; meh.</p>
<p>Highlights of the evening: catching up with <a href="http://hopper.squarespace.com/">Ben</a>.  And, after 7 years, finally meeting <a href="http://alan.blog-city.com/">Alan</a> (the last talk!) in person&#8230;</p>
<p>&#8230;even if it was only for a few minutes.  <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/07/17/cloud-camp/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
