<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><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" version="2.0">

<channel>
	<title>post past :: james murty</title>
	
	<link>http://www.jamesmurty.com</link>
	<description>Contemplating the brave new present</description>
	<pubDate>Mon, 01 Dec 2008 22:59:33 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/postpast" type="application/rss+xml" /><item>
		<title>SimpleDB Now Open to the Public, with Improvements</title>
		<link>http://www.jamesmurty.com/2008/12/02/simpledb-open-to-the-public/</link>
		<comments>http://www.jamesmurty.com/2008/12/02/simpledb-open-to-the-public/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 22:16:29 +0000</pubDate>
		<dc:creator>James Murty</dc:creator>
		
		<category><![CDATA[AWS]]></category>

		<guid isPermaLink="false">http://www.jamesmurty.com/?p=99</guid>
		<description><![CDATA[Amazon&#8217;s SimpleDB online data storage and querying service is now in unlimited public beta, which means that you can sign up for the service and have your account activated immediately. Previously, new users had to wait an indeterminate amount of time until they were granted access to the limited beta. 
Amazon has also changed the [...]]]></description>
			<content:encoded><![CDATA[<p>Amazon&#8217;s <a href="http://aws.amazon.com/simpledb/">SimpleDB</a> online data storage and querying service is <a href="http://aws.typepad.com/aws/2008/11/amazon-simpledb-grows-up.html">now in unlimited public beta</a>, which means that you can sign up for the service and have your account activated immediately. Previously, new users had to wait an indeterminate amount of time until they were granted access to the limited beta. </p>
<p>Amazon has also changed the service&#8217;s <a href="http://aws.amazon.com/simpledb/#pricing">pricing</a> to encourage people to try the service and stick with it. Moderate usage of the service will be <strong>free</strong> for at least six months for up to 1GB of data, while the ongoing data storage costs beyond 1GB have been slashed from $1.50 to $0.25 per GB/month.</p>
<p>Finally, a new DomainMetadata API operation will be made available for retrieving statistics about a domain (&#8221;database&#8221; in SimpleDB parlance) such as the total number of items, and the storage consumed by all of your attribute names and values. <del datetime="2008-12-01T22:56:05+00:00">Unfortunately the link to the <a href="http://docs.amazonwebservices.com/AmazonSimpleDB/2007-11-07/DeveloperGuide/SDB_API_DomainMetadata.html">DomainMetadata API documentation</a> link is broken as I write this, but full details are available in the <a href="http://s3.amazonaws.com/awsdocs/SDB/2007-11-07/sdb-dg-2007-11-07.pdf">PDF version of the Developer Guide</a>.</del> The DomainMetadata API documentation is now available in both <a href="http://docs.amazonwebservices.com/AmazonSimpleDB/2007-11-07/DeveloperGuide/SDB_API_DomainMetadata.html">HTML</a> and <a href="http://s3.amazonaws.com/awsdocs/SDB/2007-11-07/sdb-dg-2007-11-07.pdf">PDF</a> versions of the Developer Guide.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/postpast?a=tV1EO"><img src="http://feeds.feedburner.com/~f/postpast?i=tV1EO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/postpast?a=6XoCo"><img src="http://feeds.feedburner.com/~f/postpast?i=6XoCo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/postpast/~4/471804142" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jamesmurty.com/2008/12/02/simpledb-open-to-the-public/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CloudFront: A CDN for Amazon’s Simple Storage Service</title>
		<link>http://www.jamesmurty.com/2008/11/19/cloudfront-a-cdn-for-s3/</link>
		<comments>http://www.jamesmurty.com/2008/11/19/cloudfront-a-cdn-for-s3/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 06:32:26 +0000</pubDate>
		<dc:creator>James Murty</dc:creator>
		
		<category><![CDATA[AWS]]></category>

		<category><![CDATA[Coding]]></category>

		<category><![CDATA[JetS3t]]></category>

		<guid isPermaLink="false">http://www.jamesmurty.com/?p=94</guid>
		<description><![CDATA[Amazon has added a new service to their arsenal. CloudFront is a content delivery service that works closely with S3 to make public objects in your account available through a distribution network with edge locations in the US, Europe and Asia.
CloudFront uses two techniques to deliver your data quickly. It caches S3 objects in the [...]]]></description>
			<content:encoded><![CDATA[<p>Amazon has added a new service to their arsenal. <a href="http://aws.amazon.com/cloudfront/">CloudFront</a> is a content delivery service that works closely with S3 to make public objects in your account available through a distribution network with edge locations in the US, Europe and Asia.</p>
<p>CloudFront uses two techniques to deliver your data quickly. It caches S3 objects in the network&#8217;s edge locations (for a configurable amount of time), and automatically routes incoming requests to the edge location nearest to the requester. If you provide content to people who are distant from an S3 server location, this new service could significantly improve download speeds for your users.</p>
<p>The price for distribution is based on the amount of data transferred and the number of requests, with <a href="http://aws.amazon.com/cloudfront/#pricing">differential pricing</a> depending on the edge location that serves the content. Bear in mind that you will also incur the standard S3 service costs whenever an object is provided to an edge location.</p>
<p>It is straight-forward to create a CloudFront &#8220;distribution&#8221; based on one of your S3 buckets. The AWS <a href="http://aws.typepad.com/aws/2008/11/distribute-your-content-with-amazon-cloudfront.html">blog announcement</a> mentions a number of tools and libraries that include support for the new service. My own <a href="https://jets3t.dev.java.net/">JetS3t</a> Java library has also been updated with basic API support for the new service, though for now you will need to download the latest code from CVS to access this feature. If you are keen to get your hands dirty, go <a href="https://jets3t.dev.java.net/source/browse/jets3t/">get a CVS checkout</a> and review the sample code in <a href="https://jets3t.dev.java.net/source/browse/jets3t/src/org/jets3t/samples/CloudFrontSamples.java?only_with_tag=HEAD&#038;view=markup">org.jets3t.samples.CloudFrontSamples</a>.</p>
<p>Inevitably, there are some drawbacks to the service:</p>
<ul>
<li>Only publicly readable objects can be distributed through CloudFront, so you cannot use access control settings or temporary signed URLs to limit content delivery to specific people.</li>
<li>You cannot manually (or programmatically) expire objects at an edge location once they have been cached. Be careful to use appropriate caching directives if you intend to update or remove distributed objects.</li>
<li>You cannot set a cache expiry time less than 24 hours, so the service is not appropriate for data that is frequently updated.</li>
<li>As with S3, there is no way to display a default index.html page when someone requests the root location of your CloudFront distribution. This makes it difficult to use the service as a complete replacement for a web server.</li>
<li>There is currently no support for request logging, though <a href="http://developer.amazonwebservices.com/connect/thread.jspa?threadID=26444&#038;tstart=0">account and usage</a> reports are available.</li>
<li>There is not yet an edge location close to my Australian home  <img src='http://www.jamesmurty.com/wordpress/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </li>
</ul>
<p>Despite these drawbacks, CloudFront is a very promising new tool for anyone who needs to distribute a lot of content to a broad audience. </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/postpast?a=h4GmN"><img src="http://feeds.feedburner.com/~f/postpast?i=h4GmN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/postpast?a=sxLNn"><img src="http://feeds.feedburner.com/~f/postpast?i=sxLNn" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/postpast/~4/458053058" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jamesmurty.com/2008/11/19/cloudfront-a-cdn-for-s3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>EC2: Out of beta, adds an SLA and Windows!</title>
		<link>http://www.jamesmurty.com/2008/10/24/ec2-out-of-beta-adds-an-sla-and-windows/</link>
		<comments>http://www.jamesmurty.com/2008/10/24/ec2-out-of-beta-adds-an-sla-and-windows/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 00:57:00 +0000</pubDate>
		<dc:creator>James Murty</dc:creator>
		
		<category><![CDATA[AWS]]></category>

		<guid isPermaLink="false">http://www.jamesmurty.com/?p=88</guid>
		<description><![CDATA[Amazon has announced a major update to EC2, its service that provides on-demand computing power. 
The service has graduated from &#8220;beta&#8221; to production level, which means that a Service Level Agreement is now available. If you experience uptime below 99.95% in a given month and you can provide supporting evidence, Amazon will provide a 10% [...]]]></description>
			<content:encoded><![CDATA[<p>Amazon has <a href="http://aws.typepad.com/aws/2008/10/big-day-for-ec2.html">announced a major update</a> to EC2, its service that provides on-demand computing power. </p>
<p>The service has graduated from &#8220;beta&#8221; to production level, which means that a <a href="http://aws.amazon.com/ec2-sla">Service Level Agreement</a> is now available. If you experience uptime below 99.95% in a given month and you can provide supporting evidence, Amazon will provide a 10% service credit for that month&#8217;s bill.</p>
<p>Even more interesting is the news that you can now run Windows Server 2003 and SQL Server on EC2 instances. Amazon&#8217;s <a href="http://aws.amazon.com/windows/">Windows on EC2 documentation</a> lists the prices for running these instances: from 12.5¢ per hour for a small instance with Windows only, and from $1.35 per hour for an instance with Windows, SQL Server, and Authentication Services. See the <a href="http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=209">Windows AMIs</a> listing for more details.</p>
<p>Understandably, Windows instances on EC2 work very differently than the Linux ones. The folks at RightScale have published a <a href="http://blog.rightscale.com/2008/10/23/amazon-ec2-windows-sla/">blog post</a> describing some of the differences and quirks of the Windows instances.</p>
<p>Although I much prefer &#8220;Unixy&#8221; platforms for my own development, I can imagine situations where it would be very handy to have a Windows machine easily available &#8212; such as for running those vital but irritating programs that are only made available for Windows. Australian Tax Office, I&#8217;m <a href="http://www.ato.gov.au/individuals/content.asp?doc=/content/32234.htm&#038;pc=001/002/014/011/001&#038;mnu=&#038;mfp=&#038;st=&#038;cy=1" target="_blank">looking at you&#8230;</a></p>
<p>To take advantage of the new Windows instances, download the latest version of the <a href="http://developer.amazonwebservices.com/connect/entry.jspa?externalID=609">ElasticFox Firefox Extension</a> and be sure to check out the <a href="http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1797">Elasticfox Manual (PDF)</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/postpast?a=alRmM"><img src="http://feeds.feedburner.com/~f/postpast?i=alRmM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/postpast?a=Qdamm"><img src="http://feeds.feedburner.com/~f/postpast?i=Qdamm" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/postpast/~4/430188233" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jamesmurty.com/2008/10/24/ec2-out-of-beta-adds-an-sla-and-windows/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Clean a PostgreSQL database directory</title>
		<link>http://www.jamesmurty.com/2008/09/11/clean-postgres-databas/</link>
		<comments>http://www.jamesmurty.com/2008/09/11/clean-postgres-databas/#comments</comments>
		<pubDate>Thu, 11 Sep 2008 04:52:36 +0000</pubDate>
		<dc:creator>James Murty</dc:creator>
		
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.jamesmurty.com/?p=82</guid>
		<description><![CDATA[After building a database using an ill-judged algorithm, I ended up with junk in the database that consumed 600MB of space in the Postgres data directory. Deleting the bad data did not free this space immediately, and I was too impatient to wait for the auto vacuuming to kick in. 
Here are the steps I [...]]]></description>
			<content:encoded><![CDATA[<p>After building a database using an ill-judged algorithm, I ended up with junk in the database that consumed 600MB of space in the Postgres data directory. Deleting the bad data did not free this space immediately, and I was too impatient to wait for the auto vacuuming to kick in. </p>
<p>Here are the steps I took to clean up the database and data directory &#8212; with extreme prejudice. </p>
<p>In the psql console:<br />
<code><br />
VACUUM FULL VERBOSE;<br />
REINDEX DATABASE mydatabase;<br />
</code><br />
On the command line:<br />
<code><br />
pg_resetxlog /path/to/my/datadir<br />
</code><br />
Running all of these steps is a brutal process. Do not run the <code>pg_resetxlog</code> command if you have important data, because you will probably want to keep your <a target="_blank" href="http://www.postgresql.org/docs/8.1/static/backup-online.html">write ahead log</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/postpast?a=BFo7L"><img src="http://feeds.feedburner.com/~f/postpast?i=BFo7L" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/postpast?a=6aGol"><img src="http://feeds.feedburner.com/~f/postpast?i=6aGol" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/postpast/~4/389329312" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jamesmurty.com/2008/09/11/clean-postgres-databas/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Code samples for new SimpleDB feature: QueryWithAttributes</title>
		<link>http://www.jamesmurty.com/2008/09/07/samples-for-simpledb-querywithattributes/</link>
		<comments>http://www.jamesmurty.com/2008/09/07/samples-for-simpledb-querywithattributes/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 04:54:03 +0000</pubDate>
		<dc:creator>James Murty</dc:creator>
		
		<category><![CDATA[AWS]]></category>

		<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://www.jamesmurty.com/?p=57</guid>
		<description><![CDATA[A couple of weeks ago, a new API operation was added to Amazon&#8217;s SimpleDB service: QueryWithAttributes. This operation makes it possible to retrieve all the attribute data for SimpleDB items that match a query. Previously, to retrieve item attributes it was necessary to perform a Query request, then perform follow-up GetAttributes requests for each result [...]]]></description>
			<content:encoded><![CDATA[<p>A <a href="http://aws.typepad.com/aws/2008/08/amazon-simpledb.html" target="_blank">couple of weeks ago</a>, a new API operation was added to Amazon&#8217;s SimpleDB service: QueryWithAttributes. This operation makes it possible to retrieve <strong>all</strong> the attribute data for SimpleDB items that match a query. Previously, to retrieve item attributes it was necessary to perform a Query request, then perform follow-up GetAttributes requests for each result item returned by the service.</p>
<p>In this post, I will show how to extend the SimpleDB ruby client implementation from my book <a target="_blank" href="http://www.amazon.com/gp/product/0596515812?ie=UTF8&#038;tag=jamesmurty-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0596515812">Programming Amazon Web Services</a> (O&#8217;Reilly 2008) to support this new operation, and give some usage examples.<br />
<span id="more-57"></span><br />
Let&#8217;s start by adding a new method <code>query_with_attributes</code> to the SimpleDB Ruby sample code (available from <a href="http://examples.oreilly.com/9780596515812/" target="_blank">http://examples.oreilly.com/9780596515812/</a>). Edit the file <em>ruby/SimpleDB.rb</em> and add the following method definition after the existing <code>query</code> method. If the code below looks wonky in your browser, you can <a href="http://s3.jamesmurty.com/query_with_attributes.txt" target="_blank">download a file</a> instead</p>
<p><code>
<pre><tt>
def query_with_attributes(domain_name, query_expression=nil,
                          attribute_names=[], options={:fetch_all=>true})
  more_items = true
  next_token = nil
  items = []

  while more_items
    parameters = build_query_params(API_VERSION, SIGNATURE_VERSION,
      {
      'Action' => 'QueryWithAttributes',
      'DomainName' => domain_name,
      'QueryExpression' => query_expression,
      'MaxNumberOfItems' => options[:max_items],
      'NextToken' => next_token
      },{
      'AttributeName' => attribute_names,
      })

    xml_doc = do_sdb_query(parameters)

    xml_doc.elements.each('//Item') do |item_node|
      item = {'name' => item_node.elements['Name'].text}

      attributes = {}
      item_node.elements.each('Attribute') do |attribute_node|
        attr_name = attribute_node.elements['Name'].text
        value = attribute_node.elements['Value'].text

        if respond_to? :decode_attribute_value
          # Automatically decode attribute values if the method
          # decode_attribute_value is available in this class
          value = decode_attribute_value(value)
        end

        # An empty attribute value is an empty string, not nil.
        value = '' if value.nil?

        if attributes.has_key?(attr_name)
          attributes[attr_name] << value
        else
          attributes[attr_name] = [value]
        end
      end

      item['attributes'] = attributes
      items << item
    end

    if xml_doc.elements['//NextToken']
      next_token = xml_doc.elements['//NextToken'].text.gsub("\n","")
      more_items = options[:fetch_all]
    else
      more_items = false
    end
  end

  return items
end
</tt></pre>
<p></code></p>
<p>The <code>QueryWithAttributes</code> operation works almost exactly like the SimpleDB service&#8217;s <code>Query</code> operation, except it includes item attributes in the result. You can optionally specify exactly which attributes to retrieve using the <code>attributes</code> parameter, or leave this empty to retrieve all item attributes.</p>
<p>Continuing on from the stock quote database example in my book, here is the command you would issue to retrieve the records for days on which more than 70 million Apple stocks were traded. Notice that I am taking advantage of the new <a href="http://www.jamesmurty.com/2008/07/30/simpledb-sorting/">sorting</a> capabilities of SimpleDB to retrieve ordered results:</p>
<p><code>
<pre><tt>
irb> query = "['Volume' > '#{sdb.encode_integer(70000000)}'] sort 'Volume'"
irb> sdb = SimpleDB.new
irb> sdb.query_with_attributes('stocks', query)
=> [{"name"=>"AAPL-2007-07-26T00:00:00Z",
  "attributes"=>

   {"Code"=>["AAPL"],
    "High"=>[148.5],
    "Open"=>[145.91],
    "Close"=>[146.0],
    "Date"=>[Thu Jul 26 00:00:00 UTC 2007],
    "Volume"=>[78093900],
    "Low"=>[136.96],
    "Adjusted Close"=>[146.0]}},
    . . .
</tt></pre>
<p></code><br />
If you were only interested in the Open and Close attribute values, you could tell the service to include only these attributes in the results:<br />
<code>
<pre><tt>
irb> sdb.query_with_attributes('stocks', query, attributes=['Open','Close'])
</tt></pre>
<p></code><br />
It is a good idea to retrieve only the attributes you really need, because the SimpleDB service limits each response message to 1 MB and you will get more results in fewer requests if you reduce the amount of data you are asking for.</p>
<p>The <code>QueryWithAttributes</code> operation makes it much easier to use SimpleDB because you no longer need to perform follow-up queries to retrieve attribute data. However, there may be a price to pay for this convenience so be sure to run some tests before converting your applications. It may turn out that, in some circumstances, you can retrieve results more quickly using the Query/GetAttributes approach with multiple request threads on your client, than you can using the QueryWithAttributes operation.</p>
<p>In early <a href="http://developer.amazonwebservices.com/connect/thread.jspa?threadID=24190&#038;tstart=0" target="_blank">forum discussion</a> it looks like the new operation is both the easiest and fastest way to perform queries, but results may vary depending on how you use the service, your dataset, and your network performance.</p>
<p>If you are using SimpleDB with a large data set or complex queries, try the new operation and discuss your experiences on the forum so we can gain a better idea of the strengths and weaknesses (if any) of QueryWithAttributes.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/postpast?a=kHrbL"><img src="http://feeds.feedburner.com/~f/postpast?i=kHrbL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/postpast?a=epFnl"><img src="http://feeds.feedburner.com/~f/postpast?i=epFnl" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/postpast/~4/385536607" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jamesmurty.com/2008/09/07/samples-for-simpledb-querywithattributes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Persistent Storage for EC2 with Elastic Block Store</title>
		<link>http://www.jamesmurty.com/2008/08/24/ec2-elastic-block-store/</link>
		<comments>http://www.jamesmurty.com/2008/08/24/ec2-elastic-block-store/#comments</comments>
		<pubDate>Sun, 24 Aug 2008 06:09:11 +0000</pubDate>
		<dc:creator>James Murty</dc:creator>
		
		<category><![CDATA[AWS]]></category>

		<guid isPermaLink="false">http://www.jamesmurty.com/?p=56</guid>
		<description><![CDATA[Amazon has announced a major new feature for their Elastic Compute Cloud (EC2) service: Elastic Block Store (EBS) persistent storage volumes.
EBS provides for block level storage space that can be attached to your EC2 instances, but which exists separately from these instances and persists even if an instance fails or is shut down. The storage [...]]]></description>
			<content:encoded><![CDATA[<p>Amazon has announced a major new feature for their Elastic Compute Cloud (EC2) service: <a href="http://www.amazon.com/b/ref=sc_fe_c_0_201590011_1?ie=UTF8&#038;node=689343011&#038;no=201590011">Elastic Block Store</a> (EBS) persistent storage volumes.</p>
<p>EBS provides for block level storage space that can be attached to your EC2 instances, but which exists separately from these instances and persists even if an instance fails or is shut down. The storage volumes can be up to 1 TB in size, can be assigned to any one of your instances on-demand, and can be easily backed up as a snapshot to S3.</p>
<p>The EBS mechanism will make it significantly easier to store data reliably on EC2 instances, removing one of the main pain points of using EC2 instead of a standard data centre. </p>
<p>I don&#8217;t yet have much experience with EBS myself but there is a wealth of information available for EC2 users in the posts listed below, and third-party tools and libraries like <a href="http://developer.amazonwebservices.com/connect/entry.jspa?externalID=609">ElasticFox</a>, <a href="http://code.google.com/p/typica/">Typica</a> and <a href="http://boto.googlecode.com/">boto</a> have been updated to support the storage volumes.</p>
<ul>
<li>The announcement: <a href="http://aws.typepad.com/aws/2008/08/amazon-elastic.html">Amazon EBS (Elastic Block Store) - Bring Us Your Data</a></li>
<li>A growing list of tools and libraries that support EBS: <a href="http://aws.typepad.com/aws/2008/08/amazon-ebs---to.html">Amazon EBS - Tool and Library Support</a></li>
<li>Typically excellent, in-depth discussion of the EBS feature from the folks at RightScale: <a href="http://blog.rightscale.com/2008/08/20/amazon-ebs-explained/">Amazon’s Elastic Block Store explained</a> and <a href="http://blog.rightscale.com/2008/08/20/why-amazon-ebs-matters/">Why Amazon’s Elastic Block Store Matters</a></li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/postpast?a=Y5zJ9K"><img src="http://feeds.feedburner.com/~f/postpast?i=Y5zJ9K" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/postpast?a=R8ensk"><img src="http://feeds.feedburner.com/~f/postpast?i=R8ensk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/postpast/~4/373238120" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jamesmurty.com/2008/08/24/ec2-elastic-block-store/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Cheaper Micropayments with FPS</title>
		<link>http://www.jamesmurty.com/2008/08/24/cheaper-micropayments-with-fps/</link>
		<comments>http://www.jamesmurty.com/2008/08/24/cheaper-micropayments-with-fps/#comments</comments>
		<pubDate>Sun, 24 Aug 2008 05:24:27 +0000</pubDate>
		<dc:creator>James Murty</dc:creator>
		
		<category><![CDATA[AWS]]></category>

		<guid isPermaLink="false">http://www.jamesmurty.com/?p=55</guid>
		<description><![CDATA[Earlier this month, Amazon changed the pricing structure for micropayment (aggregate) transactions performed with the Flexible Payments Service (FPS). FPS no longer charges a per-transaction fee for payments made from a prepaid or postpaid instrument. Fees are only changed when money is transferred into an instrument: to fund a prepaid instrument, or to settle a [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier this month, Amazon <a href="http://developer.amazonwebservices.com/connect/thread.jspa?threadID=23558">changed the pricing structure</a> for micropayment (aggregate) transactions performed with the Flexible Payments Service (FPS). FPS no longer charges a per-transaction fee for payments made from a prepaid or postpaid instrument. Fees are only changed when money is transferred into an instrument: to fund a prepaid instrument, or to settle a postpaid instrument.</p>
<p>The new fee structure makes the FPS micropayment instruments much more attractive. Using the prepaid and postpaid instruments, you can aggregate many small payments into a few large transactions to minimise the cost of transaction fees over these payments. Previously, Amazon took a cut of each individual payment as well as imposing transaction fees to fund and settle the instruments, but that extra fee burden has been removed.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/postpast?a=zUUc1K"><img src="http://feeds.feedburner.com/~f/postpast?i=zUUc1K" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/postpast?a=lFEoQk"><img src="http://feeds.feedburner.com/~f/postpast?i=lFEoQk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/postpast/~4/373218143" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jamesmurty.com/2008/08/24/cheaper-micropayments-with-fps/feed/</wfw:commentRss>
		</item>
		<item>
		<title>JetS3t Version 0.6.1 Released</title>
		<link>http://www.jamesmurty.com/2008/08/10/jets3t-version-061-released/</link>
		<comments>http://www.jamesmurty.com/2008/08/10/jets3t-version-061-released/#comments</comments>
		<pubDate>Sun, 10 Aug 2008 10:33:40 +0000</pubDate>
		<dc:creator>James Murty</dc:creator>
		
		<category><![CDATA[AWS]]></category>

		<category><![CDATA[JetS3t]]></category>

		<guid isPermaLink="false">http://www.jamesmurty.com/?p=54</guid>
		<description><![CDATA[I am pleased to announce the release of JetS3t version 0.6.1, the newest version of my open source Java S3 library and application suite.
This release includes bug fixes, application improvements, and support for some of the newest features of Amazon&#8217;s Simple Storage Service (S3). Highlights include:

Support for copying, moving, and renaming S3 objects with the [...]]]></description>
			<content:encoded><![CDATA[<p>I am pleased to announce the release of JetS3t version 0.6.1, the newest version of my open source Java S3 library and application suite.</p>
<p>This release includes bug fixes, application improvements, and support for some of the newest features of Amazon&#8217;s Simple Storage Service (<a href="http://s3.amazonaws.com" target="_blank">S3</a>). Highlights include:</p>
<ul>
<li>Support for copying, moving, and renaming S3 objects with the programming toolkit and Cockpit application</li>
<li>The metadata associated with objects can now be updated without the need to upload an object again</li>
<li>Improved data verification options for ensuring that information is not corrupted in transit</li>
<li>The Synchronize application supports new options to improve performance and decrease memory requirements when synchronizing large numbers of files.</li>
</ul>
<p>You can download version 0.6.1 from the <a href="http://jets3t.s3.amazonaws.com/downloads.html">JetS3t Downloads</a> page. The web site has also been updated with the latest application manuals, code samples, and API documentation.</p>
<p>Enjoy!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/postpast?a=WNxRHK"><img src="http://feeds.feedburner.com/~f/postpast?i=WNxRHK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/postpast?a=eaKi1k"><img src="http://feeds.feedburner.com/~f/postpast?i=eaKi1k" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/postpast/~4/361001331" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jamesmurty.com/2008/08/10/jets3t-version-061-released/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SimpleDB: Finally Supports Sorting</title>
		<link>http://www.jamesmurty.com/2008/07/30/simpledb-sorting/</link>
		<comments>http://www.jamesmurty.com/2008/07/30/simpledb-sorting/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 14:36:29 +0000</pubDate>
		<dc:creator>James Murty</dc:creator>
		
		<category><![CDATA[AWS]]></category>

		<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://www.jamesmurty.com/?p=53</guid>
		<description><![CDATA[The latest version of Amazon&#8217;s SimpleDB service is available, and happily it now allows for sorting of query results. This highly-anticipated feature will make the service much more useful.
Sorting still suffers from some limitations: you can only sort by a single attribute, you cannot perform sorting in queries that contain union or not predicates, and [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1637">latest version</a> of Amazon&#8217;s SimpleDB service is available, and happily it now allows for sorting of query results. This highly-anticipated feature will make the service much more useful.</p>
<p>Sorting still suffers from some <a href="http://docs.amazonwebservices.com/AmazonSimpleDB/2007-11-07/DeveloperGuide/index.html?SortingData.html">limitations</a>: you can only sort by a single attribute, you cannot perform sorting in queries that contain <code>union</code> or <code>not</code> predicates, and the attribute against which you are sorting must be present in a query predicate. However, it is still a massive improvement on sorting query results in your own client code.</p>
<p>For example, given the following SimpleDB query that finds historic stock records for a given time period:<br />
<code>['Code' = 'AAPL'] intersection ['Date' > '2007-12-01']</code></p>
<p>With the new <code>sort</code> operator, you can now instruct the service to return the results in reverse (descending) date order like so:<br />
<code>['Code' = 'AAPL'] intersection ['Date' > '2007-12-01'] sort &#8216;Date&#8217; desc</code></p>
<p>Although you can only sort by an attribute that is also mentioned in a predicate, you can easily work around this restriction by including a <code>starts-with ''</code> predicate for that criteria, which will always evaluate to true. Here is a query to return stock records sorted according to the closing price, from lowest to highest:<br />
<code>['Code' = 'AAPL'] intersection ['Close' starts-with ''] sort &#8216;Close&#8217; asc</code></p>
<p>The SimpleDB update also includes some other new features, such as a new <code>does-not-start-with</code> operator and support for 10 predicates per query instead of 5, but I think it is the sorting that will have the most impact.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/postpast?a=D1gTRJ"><img src="http://feeds.feedburner.com/~f/postpast?i=D1gTRJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/postpast?a=HuZMEj"><img src="http://feeds.feedburner.com/~f/postpast?i=HuZMEj" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/postpast/~4/349509099" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jamesmurty.com/2008/07/30/simpledb-sorting/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Major S3 and SQS outage</title>
		<link>http://www.jamesmurty.com/2008/07/21/major-s3-and-sqs-outage/</link>
		<comments>http://www.jamesmurty.com/2008/07/21/major-s3-and-sqs-outage/#comments</comments>
		<pubDate>Sun, 20 Jul 2008 21:26:28 +0000</pubDate>
		<dc:creator>James Murty</dc:creator>
		
		<category><![CDATA[AWS]]></category>

		<guid isPermaLink="false">http://www.jamesmurty.com/?p=48</guid>
		<description><![CDATA[As I post this, Amazon&#8217;s S3 and SQS services have both been down for hours. The latest updates to the service health dashboard are promising so things will hopefully be resolved soon, but this definitely isn&#8217;t a good sight:

Update
Amazon has posted a full explanation of the recent S3 outage here: Amazon S3 Availability Event: July [...]]]></description>
			<content:encoded><![CDATA[<p>As I post this, Amazon&#8217;s S3 and SQS services have both been down for hours. The latest updates to the <a href="http://status.aws.amazon.com/">service health dashboard</a> are promising so things will hopefully be resolved soon, but this definitely isn&#8217;t a good sight:</p>
<p><a href='http://www.jamesmurty.com/wordpress/wp-content/uploads/2008/07/aws_dashboard_s3_and_sqs_down.gif'><img src="http://www.jamesmurty.com/wordpress/wp-content/uploads/2008/07/aws_dashboard_s3_and_sqs_down-300x139.gif" alt="The AWS Service Health Dashboard showing that the S3 and SQS services are down " title="aws_dashboard_s3_and_sqs_down" width="300" height="139" class="alignnone size-medium wp-image-49" /></a></p>
<h3>Update</h3>
<p>Amazon has posted a full explanation of the recent S3 outage here: <a href="http://status.aws.amazon.com/s3-20080720.html">Amazon S3 Availability Event: July 20, 2008</a>. </p>
<p>This makes for interesting reading, but ultimately the lesson from this most recent outage is that service failures can and will happen. Even to Amazon. </p>
<p>If you are building a cloud-based application you should try to include as many contingency options as much as possible, but few contingencies could have survived that outage. Let&#8217;s hope it isn&#8217;t repeated.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/postpast?a=oRvVmJ"><img src="http://feeds.feedburner.com/~f/postpast?i=oRvVmJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/postpast?a=v0cDbj"><img src="http://feeds.feedburner.com/~f/postpast?i=v0cDbj" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/postpast/~4/340940064" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jamesmurty.com/2008/07/21/major-s3-and-sqs-outage/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
