<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>post past :: james murty</title>
	
	<link>http://www.jamesmurty.com</link>
	<description>Contemplating the brave new present</description>
	<lastBuildDate>Tue, 09 Feb 2010 06:53:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/postpast" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="postpast" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>JetS3t: S3 Versioning, Multi-Factor Authentication and BitBucket</title>
		<link>http://www.jamesmurty.com/2010/02/08/jets3t-s3-versioning-and-mfa/</link>
		<comments>http://www.jamesmurty.com/2010/02/08/jets3t-s3-versioning-and-mfa/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 06:53:04 +0000</pubDate>
		<dc:creator>James Murty</dc:creator>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[JetS3t]]></category>

		<guid isPermaLink="false">http://www.jamesmurty.com/?p=474</guid>
		<description><![CDATA[There is a lot of S3 and JetS3t news tonight.
Versioning For All
To begin with, the new S3 beta versioning feature is now available in all regions. This means that you can retain past versions of all your S3 objects regardless of where your bucket is located.
The latest JetS3t code has full support for versioning that [...]]]></description>
			<content:encoded><![CDATA[<p>There is a lot of S3 and JetS3t news tonight.</p>
<h2>Versioning For All</h2>
<p>To begin with, the new S3 <a href="http://www.jamesmurty.com/2010/01/20/jets3t-s3-versioning/">beta versioning</a> feature is <a href="http://aws.typepad.com/aws/2010/02/amazon-s3-enhancement-versioning.html">now available in all regions</a>. This means that you can retain past versions of all your S3 objects regardless of where your bucket is located.</p>
<p>The latest JetS3t code has full support for versioning that makes it very easy to use. You can enable versioning for a bucket like so:</p>
<div class="codecolorer-container java twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">restS3Service.<span style="color: #006633;">enableBucketVersioning</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;bucket-name&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>Then should you ever need to recover some data &#8212; such as after accidentally deleting an object or overwriting data with a corrupted file &#8212; you can find and retrieve the prior versions:</p>
<div class="codecolorer-container java twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">// List an object's prior versions</span><br />
BaseVersionOrDeleteMarker<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> versions <span style="color: #339933;">=</span> restS3Service<br />
&nbsp; &nbsp; .<span style="color: #006633;">getObjectVersions</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;bucket-name&quot;</span>, <span style="color: #0000ff;">&quot;object-name&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #666666; font-style: italic;">// Retrieve the next-to-last version of data</span><br />
<span style="color: #003399;">String</span> versionId <span style="color: #339933;">=</span> versions<span style="color: #009900;">&#91;</span>versions.<span style="color: #006633;">length</span> <span style="color: #339933;">-</span> 2<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">getVersionId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
S3Object priorVersionObject <span style="color: #339933;">=</span> s3Service.<span style="color: #006633;">getVersionedObject</span><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; versionId, <span style="color: #0000ff;">&quot;bucket-name&quot;</span>, <span style="color: #0000ff;">&quot;object-name&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<h2>The Second Factor</h2>
<p>As well as rolling out broader availability of the versioning feature Amazon has (somewhat quietly) added another interesting feature: the first API-level support for multi-factor authentication. Multi-factor authentication (MFA) adds an extra level of security to systems by requiring users to prove ownership of a token or device of some kind in addition to their normal login credentials. This means that even if someone steals or guesses your credentials they will be unable to perform actions on your account because they do not possess the device.</p>
<p>In Amazon&#8217;s case, like PayPal and some banks before them, the additional factor comprises a small electronic device that generates code numbers. Once you have <a href="http://aws.amazon.com/mfa/">purchased one of these devices</a> and enabled it in your AWS account you will be required to provide an extra code number when performing certain tasks.</p>
<p>Previously the additional MFA device code was only required when you logged in to the <a href="http://aws.amazon.com/console/">AWS Console</a> but as of today you can turn on MFA for your S3 buckets in tandem with versioning. When versioning with MFA is enabled not only will the bucket&#8217;s owner be the only user who can permanently delete object versions, but this user will be required to provide a time-limited MFA code to do so.</p>
<p>Again, this is relatively straight-forward to use in JetS3t:</p>
<div class="codecolorer-container java twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">// Require MFA to permanently delete object versions</span><br />
restS3Service.<span style="color: #006633;">enableBucketVersioningWithMFA</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;bucket-name&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #666666; font-style: italic;">// Obtain user's MFA device serial number and time-limited code </span><br />
<span style="color: #003399;">String</span> multiFactorSerialNumber <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;#111222333&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #003399;">String</span> multiFactorAuthCode <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;12345678&quot;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #666666; font-style: italic;">// Delete an MFA-protected object version</span><br />
restS3Service.<span style="color: #006633;">deleteVersionedObjectWithMFA</span><span style="color: #009900;">&#40;</span>versionId,<br />
&nbsp; &nbsp; multiFactorSerialNumber, multiFactorAuthCode,<br />
&nbsp; &nbsp; <span style="color: #0000ff;">&quot;bucket-name&quot;</span>, <span style="color: #0000ff;">&quot;object-name&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>The addition of MFA support at the API level in S3 is particularly interesting because this is the first time Amazon has done so, and because it raises some interesting challenges for developers who are accustomed to building fully-automated systems. To take advantage of the protection the MFA provides a system will need to prompt the user for her MFA code every 30 seconds or so when she wishes to permanently delete data. I am keen to see how &#8212; and if &#8212; developers actually build this feature into their applications.</p>
<h2>Hello BitBucket</h2>
<p>Finally, repeating the news I <a href="http://groups.google.com/group/jets3t-users/browse_thread/thread/63dd1962b77e08f7?hl=en">posted recently</a> on the JetS3t discussion forums, I have decided to move the JetS3t codebase from it&#8217;s old home at java.net over to the BitBucket service: <a href="http://bitbucket.org/jmurty/jets3t/">http://bitbucket.org/jmurty/jets3t/</a></p>
<p>BitBucket has the advantage of being a more modern, easy-to-navigate site, and has seamless support for Mercurial which is my favorite source code management tool. So it&#8217;s farewell to java.net and CVS, you served us well but it&#8217;s time for some new blood.</p>
<p>Try out the latest code and let me know what you think. Head over to the <a href="http://bitbucket.org/jmurty/jets3t/">JetS3t BitBucket</a> repository and grab the latest code via a pull (if you&#8217;re familiar with Mercurial) or simply download it via the &#8220;get source&#8221; link.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/postpast?a=BaZXyA-SRFE:zYSm21o3l0M:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/postpast?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/postpast?a=BaZXyA-SRFE:zYSm21o3l0M:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/postpast?i=BaZXyA-SRFE:zYSm21o3l0M:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/postpast/~4/BaZXyA-SRFE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jamesmurty.com/2010/02/08/jets3t-s3-versioning-and-mfa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JetS3t support for S3 Versioning (Beta)</title>
		<link>http://www.jamesmurty.com/2010/01/20/jets3t-s3-versioning/</link>
		<comments>http://www.jamesmurty.com/2010/01/20/jets3t-s3-versioning/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 08:30:53 +0000</pubDate>
		<dc:creator>James Murty</dc:creator>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[JetS3t]]></category>

		<guid isPermaLink="false">http://www.jamesmurty.com/?p=464</guid>
		<description><![CDATA[Amazon is working on an interesting new feature for the S3 service: Object versioning.
Once you enable versioning for one of your S3 buckets, any time you change an object in that bucket a version of the prior object will be stored in addition to the latest one. You can then perform operations on prior object [...]]]></description>
			<content:encoded><![CDATA[<p>Amazon is working on an interesting new feature for the S3 service: Object versioning.</p>
<p>Once you enable versioning for one of your S3 buckets, any time you change an object in that bucket a version of the prior object will be stored in addition to the latest one. You can then perform operations on prior object versions such as retrieving older data, restoring &#8220;deleted&#8221; objects, and generally maintaining a fail-safe history of everything that happens in the bucket. </p>
<p>This will be a boon to anyone who is worried about their S3 data being accidentally deleted or corrupted by user/computer error.</p>
<p>The feature is currently in early beta form and is available for testing with buckets located in the &#8220;us-west-1&#8243; location. You can read about the current functionality here: <a href="http://doc.s3.amazonaws.com/betadesign/Versioning.html">Versioning Beta Design</a>.</p>
<p>Better still, you can grab the <a href="https://jets3t.dev.java.net/source/browse/jets3t/">latest JetS3t code</a> from CVS and try it out for yourself! The code samples file <a href="https://jets3t.dev.java.net/source/browse/jets3t/src/org/jets3t/samples/CodeSamples.java?rev=1.29&#038;view=markup">CodeSamples.java</a> now includes a section called &#8220;Bucket Versioning (Beta)&#8221; to get you started.</p>
<p>Both the versioning feature itself and JetS3t&#8217;s support for it are in an early stage so watch out for warts.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/postpast?a=MPQZJF3wmmQ:5MzVsrcUzQA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/postpast?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/postpast?a=MPQZJF3wmmQ:5MzVsrcUzQA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/postpast?i=MPQZJF3wmmQ:5MzVsrcUzQA:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/postpast/~4/MPQZJF3wmmQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jamesmurty.com/2010/01/20/jets3t-s3-versioning/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JetS3t 0.7.2</title>
		<link>http://www.jamesmurty.com/2010/01/10/jets3t-versio-0-7-2/</link>
		<comments>http://www.jamesmurty.com/2010/01/10/jets3t-versio-0-7-2/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 08:27:41 +0000</pubDate>
		<dc:creator>James Murty</dc:creator>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[JetS3t]]></category>

		<guid isPermaLink="false">http://www.jamesmurty.com/?p=456</guid>
		<description><![CDATA[As of a couple of weeks ago the latest version of JetS3t 0.7.2 has been available as a public release. In the pre-holiday rush I forgot to post a notification to my own blog.
This release includes some bug fixes, more sophisticated configuration options for the &#8220;filecomparer&#8221; component that manages file synchronizations, and supports the two [...]]]></description>
			<content:encoded><![CDATA[<p>As of a couple of weeks ago the latest version of JetS3t <strong>0.7.2</strong> has been available as a public release. In the pre-holiday rush I forgot to post a notification to my own blog.</p>
<p>This release includes some bug fixes, more sophisticated configuration options for the &#8220;filecomparer&#8221; component that manages file synchronizations, and supports the two major new CloudFront API features: private distributions and streaming distributions.</p>
<p>Visit the <a href="http://jets3t.s3.amazonaws.com/index.html">JetS3t web site</a> to download the latest release and view the latest documentation such as <a href="http://jets3t.s3.amazonaws.com/toolkit/code-samples.html">code samples</a> and the <a href="http://jets3t.s3.amazonaws.com/api/index.html">API Javadoc</a>.</p>
<p>You can read about the complete list of changes in the <a href="http://jets3t.s3.amazonaws.com/RELEASE_NOTES.txt">release notes</a>. And for the Maven-ites among you the <a href="http://repo1.maven.org/maven2/net/java/dev/jets3t/jets3t/">official Maven2 repository</a> has also been updated.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/postpast?a=SixNhCha1gw:mzYYmBxFrzs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/postpast?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/postpast?a=SixNhCha1gw:mzYYmBxFrzs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/postpast?i=SixNhCha1gw:mzYYmBxFrzs:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/postpast/~4/SixNhCha1gw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jamesmurty.com/2010/01/10/jets3t-versio-0-7-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JetS3t supports CloudFront private distributions</title>
		<link>http://www.jamesmurty.com/2009/11/12/jets3t-cloudfront-private-distributions/</link>
		<comments>http://www.jamesmurty.com/2009/11/12/jets3t-cloudfront-private-distributions/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 07:57:53 +0000</pubDate>
		<dc:creator>James Murty</dc:creator>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[JetS3t]]></category>

		<guid isPermaLink="false">http://www.jamesmurty.com/?p=451</guid>
		<description><![CDATA[Amazon has just announced a new private content feature for their CloudFront content distribution service. 
This feature allows you to control access to S3 objects you distribute through CloudFront by making them available only through specific distributions, or by requiring the use of signed URLs that you generate and provide to privileged users.
As of this [...]]]></description>
			<content:encoded><![CDATA[<p>Amazon has just announced a new <a href="http://aws.typepad.com/aws/2009/11/new-amazon-cloudfront-feature-private-content.html">private content</a> feature for their CloudFront content distribution service. </p>
<p>This feature allows you to control access to S3 objects you distribute through CloudFront by making them available only through specific distributions, or by requiring the use of signed URLs that you generate and provide to privileged users.</p>
<p>As of this evening the latest JetS3t codebase (available from the <a href="https://jets3t.dev.java.net/source/browse/jets3t/">CVS repository</a>) has full support for the new features, including the ability to:</p>
<ul>
<li>create and update private distributions</li>
<li>manage Origin Access Identifiers, which are required for private distributions</li>
<li>generate canned and custom-policy signed URLs for private distributions that require request signing.</li>
</ul>
<p>These new features are not yet available in a stable packaged release but I plan to provide the next stable version before the end of November.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/postpast?a=9Brq8RgUz-8:ziQevTS0Oaw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/postpast?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/postpast?a=9Brq8RgUz-8:ziQevTS0Oaw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/postpast?i=9Brq8RgUz-8:ziQevTS0Oaw:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/postpast/~4/9Brq8RgUz-8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jamesmurty.com/2009/11/12/jets3t-cloudfront-private-distributions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rackspace Cloud Servers API</title>
		<link>http://www.jamesmurty.com/2009/07/14/rackspace-cloud-servers-ap/</link>
		<comments>http://www.jamesmurty.com/2009/07/14/rackspace-cloud-servers-ap/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 17:28:32 +0000</pubDate>
		<dc:creator>James Murty</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>

		<guid isPermaLink="false">http://www.jamesmurty.com/?p=442</guid>
		<description><![CDATA[Rackspace has launched a public beta of their Cloud Servers API.
The Cloud Servers product allows you to rent computing resources and is a competitor to Amazon&#8217;s Elastic Compute Cloud (EC2) service. Rackspace has a comparison page that describes, from their perspective, the advantages of their offering over EC2.
Some key differences from EC2 include:

Cloud Servers has [...]]]></description>
			<content:encoded><![CDATA[<p>Rackspace has <a href="http://blog.mosso.com/2009/07/an-interview-with-the-architects-of-the-cloud-servers-api/">launched</a> a public beta of their <a href="http://www.rackspacecloud.com/cloud_hosting_products/servers/api">Cloud Servers API</a>.</p>
<p>The Cloud Servers product allows you to rent computing resources and is a competitor to Amazon&#8217;s Elastic Compute Cloud (EC2) service. Rackspace has a <a href="http://www.rackspacecloud.com/cloud_hosting_products/servers/compare">comparison page</a> that describes, from their perspective, the advantages of their offering over EC2.</p>
<p>Some key differences from EC2 include:</p>
<ul>
<li>Cloud Servers has a wider range of server sizes available at the low end, with a minimum size of 256MB RAM that has a price of only $10.95 per month.</li>
<li>Public IP addresses can be shared among multiple servers.</li>
<li>The service supports dynamic resizing (vertical scaling) of servers to a degree. Unlike EC2, you can increase or decrease the computing power available to a single server without the need to manually start a new instance and redeploy your application to the new instance. However this scaling, while easy, isn&#8217;t instantaneous  &#8212; behind the scenes Rackspace&#8217;s service actually starts a new server and copies everything across for you, so there is likely to be some downtime.</li>
<li>A simpler RESTful API with support for JSON messages in addition to XML.</li>
</ul>
<p>I am not yet familiar enough with Cloud Servers to give a detailed comparison with EC2, but it seems to be a full-featured service that is aiming to address some of the difficulties people face when using Amazon&#8217;s offering. If Rackspace can learn from Amazon&#8217;s missteps they should be able to provide a compelling cloud computing platform.</p>
<p>It has taken some time for a strong, low-level &#8220;Infrastructure as a Service&#8221; competitor to EC2 to arrive, but we may finally have it in Cloud Servers. I hope so, because the more active competition we have in this space the more quickly the products and technology will improve, and the better off we cloud computing users will be.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/postpast?a=oIyKrNMFABM:GS8X4A-OrRo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/postpast?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/postpast?a=oIyKrNMFABM:GS8X4A-OrRo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/postpast?i=oIyKrNMFABM:GS8X4A-OrRo:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/postpast/~4/oIyKrNMFABM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jamesmurty.com/2009/07/14/rackspace-cloud-servers-ap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bye bye Beta</title>
		<link>http://www.jamesmurty.com/2009/07/07/bye-bye-beta/</link>
		<comments>http://www.jamesmurty.com/2009/07/07/bye-bye-beta/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 18:22:55 +0000</pubDate>
		<dc:creator>James Murty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.jamesmurty.com/?p=437</guid>
		<description><![CDATA[Google&#8217;s Gmail and Google Apps are no longer BETA products. 
I guess that means that not only has the designation &#8220;beta&#8221; been stripped of any real meaning on the modern web, but even the decision to leave beta status can be taken on a whim. Perhaps there is a tangible reason &#8212; aside from marketing [...]]]></description>
			<content:encoded><![CDATA[<p>Google&#8217;s Gmail and Google Apps are <a href="http://gmailblog.blogspot.com/2009/07/gmail-leaves-beta-launches-back-to-beta.html">no longer</a> <a href="http://googleblog.blogspot.com/2009/07/google-apps-is-out-of-beta-yes-really.html">BETA</a> products. </p>
<p>I guess that means that not only has the designation &#8220;beta&#8221; been stripped of any real meaning on the modern web, but even the decision to leave beta status can be taken on a whim. Perhaps there is a tangible reason &#8212; aside from marketing towards the big end of town &#8212; that prompted Google to remove the beta status from their products today. Perhaps. But if so, the reason isn&#8217;t explained in these blog posts.</p>
<p>Don&#8217;t get me wrong, I am a long-time user of both of these products and I consider them invaluable tools of very high quality. The tech is great. I just get annoyed when large companies, through carelessness or malice, misuse words and destroy their semantic value.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/postpast?a=1BErTnqo7Mk:VPlqHgx8QwM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/postpast?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/postpast?a=1BErTnqo7Mk:VPlqHgx8QwM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/postpast?i=1BErTnqo7Mk:VPlqHgx8QwM:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/postpast/~4/1BErTnqo7Mk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jamesmurty.com/2009/07/07/bye-bye-beta/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>AWS Management Console: Now with CloudFront</title>
		<link>http://www.jamesmurty.com/2009/06/23/aws-management-console-with-cloudfront/</link>
		<comments>http://www.jamesmurty.com/2009/06/23/aws-management-console-with-cloudfront/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 03:06:22 +0000</pubDate>
		<dc:creator>James Murty</dc:creator>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[Cloud Computing]]></category>

		<guid isPermaLink="false">http://www.jamesmurty.com/?p=434</guid>
		<description><![CDATA[Amazon&#8217;s AWS Management Console now supports the company&#8217;s CloudFront service, a CDN-like extension for the Simple Storage Service (S3).
You can read about this new feature on the AWS Blog and watch an introductory video here.
]]></description>
			<content:encoded><![CDATA[<p>Amazon&#8217;s <a href="http://console.aws.amazon.com/">AWS Management Console</a> now supports the company&#8217;s CloudFront service, a CDN-like extension for the Simple Storage Service (S3).</p>
<p>You can read about this new feature on the <a href="http://aws.typepad.com/aws/2009/06/aws-management-console-support-for-cloudfront.html">AWS Blog</a> and watch an introductory video <a href="http://d36cz9buwru1tt.cloudfront.net/videos/console/cloudfront_console.html">here</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/postpast?a=jyonntJUmS4:HJ7gyLveXpE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/postpast?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/postpast?a=jyonntJUmS4:HJ7gyLveXpE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/postpast?i=jyonntJUmS4:HJ7gyLveXpE:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/postpast/~4/jyonntJUmS4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jamesmurty.com/2009/06/23/aws-management-console-with-cloudfront/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenID Delegation: Why and How</title>
		<link>http://www.jamesmurty.com/2009/06/16/openid-delegation-why-and-how/</link>
		<comments>http://www.jamesmurty.com/2009/06/16/openid-delegation-why-and-how/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 22:00:49 +0000</pubDate>
		<dc:creator>James Murty</dc:creator>
				<category><![CDATA[OpenID]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.jamesmurty.com/?p=407</guid>
		<description><![CDATA[The great promise of the OpenID specification is that it can simplify identity management on the &#8216;net. At its best, OpenID provides three great features:
Unified Identity
A single account (identity) with which you can log in to many sites, removing the need to create and remember a separate username/login for every web site you interact with.
Openness
A [...]]]></description>
			<content:encoded><![CDATA[<p>The great promise of the <a href="http://openid.net/">OpenID</a> specification is that it can simplify identity management on the &#8216;net. At its best, OpenID provides three great features:</p>
<h4>Unified Identity</h4>
<p>A single account (identity) with which you can log in to many sites, removing the need to create and remember a separate username/login for every web site you interact with.</p>
<h4>Openness</h4>
<p>A decentralized authentication system with multiple providers. This means that you can choose a provider (or even a few) from the <a href="http://openid.net/get/">many options available</a> to vouch for your identity, and switch providers if you find a better one. Or you can even be your own provider.</p>
<h4>Delegation</h4>
<p>I think Delegation is the most attractive feature of OpenID because it means your own web site can act as your identity, while delegating the authentication process to one (or more) OpenID providers. </p>
<p>In short, with delegation you can log in to sites using a URL you own like <em>jamesmurty.com</em>, while taking advantage of the strong authentication options offered by providers such as <a href="https://pip.verisignlabs.com/">Verisign&#8217;s PIP</a>. Although my Verisign PIP identity happens to be <em>jmurty.pip.verisignlabs.com</em>, I can use my own web site as an alias for this provider-specific identity.</p>
<p>By decoupling your identity from your OpenID provider you can take advantage of the fact there are many providers and easily switch providers later on without losing your identity, and without having to update your associated OpenID identity on every web site. After all, if you had to do that you might as well have created your own username/password on every site in the first place.</p>
<h4>But&#8230;</h4>
<p>Unfortunately, the complexity of OpenID and the challenge ordinary people can have getting it to work properly is preventing widespread adoption of the system in general, and of the Openness and Delegation features in particular. Although big players like Google and Yahoo are supporting (parts of) the specification, they are understandably encouraging people to adopt their branded OpenID identities rather than extolling the advantages of controlling your own identity. </p>
<p>After all, every web company would love to take on the &#8220;burden&#8221; of managing your unified web identity. It&#8217;s the ultimate in vendor lock-in.</p>
<h4>Setup OpenID delegation for your web site</h4>
<p>If you have your own web site or blog and are able to edit the HTML pages directly, you can set up delegation by adding special</p>
<div class="codecolorer-container text twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">link</div></div>
<p>tags to the</p>
<div class="codecolorer-container text twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">head</div></div>
<p>section of one of your site&#8217;s pages. You will most likely want to do this on the site&#8217;s home page so you can use a short URL like <em>jamesmurty.com</em> instead of <em>jamesmurty.com/my-openid-page.html</em>.</p>
<p>Below are the</p>
<div class="codecolorer-container text twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">link</div></div>
<p>tags I use on my site to delegate to my <em>jmurty</em> Verisign PIP identity. You will need to use your own provider-specific identity URL in your links, and the format could vary quite a lot depending on the OpenID provider you choose so check your provider&#8217;s documentation. Also, I&#8217;m not sure that all OpenID providers actually support delegation, so you should research this before you sign up with a provider.</p>
<div class="codecolorer-container html4strict twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">link</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;openid.server&quot;</span> </span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://pip.verisignlabs.com/server&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">link</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;openid.delegate&quot;</span> &nbsp;</span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://jmurty.pip.verisignlabs.com/&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">link</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;openid2.provider&quot;</span> &nbsp;</span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://pip.verisignlabs.com/server&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">link</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;openid2.local_id&quot;</span> &nbsp;</span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://jmurty.pip.verisignlabs.com/&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span></div></div>
<p>It is important that these</p>
<div class="codecolorer-container text twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">link</div></div>
<p>tags be included inside a valid HTML</p>
<div class="codecolorer-container text twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">head</div></div>
<p>section in your web page, or many web sites will be unable to find your delegate settings.</p>
<h4>More Complexity, aka Taming Blogger.com</h4>
<p>You may have noticed that the OpenID information is provided twice, once for the original OpenID specification (</p>
<div class="codecolorer-container text twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">openid.*</div></div>
<p>tags) and again for version 2 of the spec (</p>
<div class="codecolorer-container text twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">openid2.*</div></div>
<p>tags). </p>
<p>I don&#8217;t know why the second lot of settings is necessary, since presumably the spec is supposed to be backwards-compatible, but I have found that some sites won&#8217;t work properly unless the version 2 settings are provided. </p>
<p>One example of version incompatibility quirks is Google&#8217;s Blogger.com, which allows you to comment on blog posts after logging in with an OpenID. Prior to adding the</p>
<div class="codecolorer-container text twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">openid2.*</div></div>
<p>tags I found that although Blogger would allow me to authenticate and post comments, it would replace my delegating identity <em>jamesmurty.com</em> with the delegated version <em>jmurty.pip.verisignlabs.com</em>.  This meant that the delegation was essentially useless, since anyone clicking on the nickname for my comment would end up at an empty Verisign PIP landing page instead of my own site.</p>
<p>I&#8217;m not sure if this is Google&#8217;s fault, or a fault in the OpenID spec. Either way it was annoying having to track down and fixing this issue. It just serves as yet another example where OpenID is not quite living up to the promise of simplifying identity management.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/postpast?a=NrkBkEgy5K8:XIifiXHS5To:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/postpast?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/postpast?a=NrkBkEgy5K8:XIifiXHS5To:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/postpast?i=NrkBkEgy5K8:XIifiXHS5To:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/postpast/~4/NrkBkEgy5K8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jamesmurty.com/2009/06/16/openid-delegation-why-and-how/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XMLBuilder Version 0.3: XPath, Parsing and Maven Goodies</title>
		<link>http://www.jamesmurty.com/2009/06/11/xmlbuilder-version-03-xpath-parsing-maven/</link>
		<comments>http://www.jamesmurty.com/2009/06/11/xmlbuilder-version-03-xpath-parsing-maven/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 19:22:49 +0000</pubDate>
		<dc:creator>James Murty</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.jamesmurty.com/?p=399</guid>
		<description><![CDATA[I have updated my small java-xmlbuilder project with some nice new features.
First, here&#8217;s a reminder of what this project does:

XML Builder is a utility that creates simple XML documents using relatively sparse Java code.
It is intended to allow for quick and painless creation of XML documents where you might otherwise be tempted to use concatenated [...]]]></description>
			<content:encoded><![CDATA[<p>I have updated my small <a href="http://code.google.com/p/java-xmlbuilder/">java-xmlbuilder</a> project with some nice new features.</p>
<p>First, here&#8217;s a reminder of what this project does:</p>
<blockquote><p>
XML Builder is a utility that creates simple XML documents using relatively sparse Java code.</p>
<p>It is intended to allow for quick and painless creation of XML documents where you might otherwise be tempted to use concatenated strings, and where you would rather not face the tedium and verbosity of coding with JAXP.
</p></blockquote>
<p>The new features include:</p>
<ul>
<li><a href="http://code.google.com/p/java-xmlbuilder/wiki/ExampleUsage#Parse_XML">Parse existing documents</a> into an XMLBuilder object, so you can now easily add nodes to pre-existing documents.</li>
<li><a href="http://code.google.com/p/java-xmlbuilder/wiki/ExampleUsage#Find_Nodes_with_XPath">Use XPath queries</a> to locate a specific element in your document. This is especially useful if you have parsed a document and you need to add new nodes at different locations in the DOM. Type in your XPath query and you can now jump directly to the right place.</li>
<li>The project now has a Maven-friendly structure, complete with a repository from which you can obtain the Jar file &#8212; see the Downloads section on the project page for instructions. This great leap forwards is thanks to Dan Brown&#8217;s instructions for <a href="http://www.jroller.com/mrdon/entry/find_of_the_day_wagon">using Wagon to deploy Maven artifacts to Google&#8217;s SVN</a>.</li>
<li>JUnit tests are now public in the repository, to help keep me honest.</li>
</ul>
<p>People familiar with the project may notice that I have changed the version numbering scheme. The latest version is 0.3, not 3. I think the &#8220;0.&#8221; prefix better indicates the maturity of this tool.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/postpast?a=K4h6kIjIwFA:8WBuCFgWXDM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/postpast?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/postpast?a=K4h6kIjIwFA:8WBuCFgWXDM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/postpast?i=K4h6kIjIwFA:8WBuCFgWXDM:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/postpast/~4/K4h6kIjIwFA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jamesmurty.com/2009/06/11/xmlbuilder-version-03-xpath-parsing-maven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Real-world cloud computing</title>
		<link>http://www.jamesmurty.com/2009/06/08/real-world-cloud-computing/</link>
		<comments>http://www.jamesmurty.com/2009/06/08/real-world-cloud-computing/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 22:46:48 +0000</pubDate>
		<dc:creator>James Murty</dc:creator>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[Cloud Computing]]></category>

		<guid isPermaLink="false">http://www.jamesmurty.com/?p=394</guid>
		<description><![CDATA[An interesting post with some drawbacks of cloud computing and EC2, from those in the trenches: Real-world cloud computing.
There are some real gems here, such as:


[They all] used Amazon services, and most if not all of them seemed to use RightScale to manage them.
Cost: cloud is more expensive than real machines. Cloud is good for [...]]]></description>
			<content:encoded><![CDATA[<p>An interesting post with some drawbacks of cloud computing and EC2, from those in the trenches: <a href="http://nedbatchelder.com/blog/200906/realworld_cloud_computing.html">Real-world cloud computing</a>.</p>
<p>There are some real gems here, such as:</p>
<blockquote>
<ul>
<li>[They all] used Amazon services, and most if not all of them seemed to use RightScale to manage them.</li>
<li>Cost: cloud is more expensive than real machines. Cloud is good for elastic computing, not for high constant demand.</li>
<li>You need monitoring services external to your cloud!</li>
</ul>
</blockquote>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/postpast?a=kehn0jTNFk8:Q8gu_X8YOU8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/postpast?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/postpast?a=kehn0jTNFk8:Q8gu_X8YOU8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/postpast?i=kehn0jTNFk8:Q8gu_X8YOU8:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/postpast/~4/kehn0jTNFk8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jamesmurty.com/2009/06/08/real-world-cloud-computing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss><!-- Dynamic page generated in 1.698 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-02-08 23:53:24 --><!-- Compression = gzip -->
