<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Richard Astbury&#039;s Blog</title>
	<atom:link href="http://coderead.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://coderead.wordpress.com</link>
	<description>Azure, .NET and anything else</description>
	<lastBuildDate>Fri, 24 Feb 2012 12:51:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='coderead.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/f97c139614f5874b85baa1219c870063?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Richard Astbury&#039;s Blog</title>
		<link>http://coderead.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://coderead.wordpress.com/osd.xml" title="Richard Astbury&#039;s Blog" />
	<atom:link rel='hub' href='http://coderead.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Simple node.js socket listener</title>
		<link>http://coderead.wordpress.com/2012/02/17/simple-node-js-socket-listener/</link>
		<comments>http://coderead.wordpress.com/2012/02/17/simple-node-js-socket-listener/#comments</comments>
		<pubDate>Fri, 17 Feb 2012 09:35:43 +0000</pubDate>
		<dc:creator>Richard</dc:creator>
				<category><![CDATA[Node.js]]></category>

		<guid isPermaLink="false">http://coderead.wordpress.com/?p=362</guid>
		<description><![CDATA[This simple snippet just writes back everything it receives, but it&#8217;s a useful test: var net = require('net'); net.createServer(function(socket){ socket.on('data', function(data) { socket.write(data); }); }).listen(1337);<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=coderead.wordpress.com&amp;blog=16658899&amp;post=362&amp;subd=coderead&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This simple snippet just writes back everything it receives, but it&#8217;s a useful test:</p>
<pre>var net = require('net');
net.createServer(function(socket){
 socket.on('data', function(data) {
 socket.write(data);
 });
}).listen(1337);</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/coderead.wordpress.com/362/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/coderead.wordpress.com/362/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/coderead.wordpress.com/362/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/coderead.wordpress.com/362/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/coderead.wordpress.com/362/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/coderead.wordpress.com/362/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/coderead.wordpress.com/362/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/coderead.wordpress.com/362/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/coderead.wordpress.com/362/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/coderead.wordpress.com/362/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/coderead.wordpress.com/362/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/coderead.wordpress.com/362/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/coderead.wordpress.com/362/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/coderead.wordpress.com/362/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=coderead.wordpress.com&amp;blog=16658899&amp;post=362&amp;subd=coderead&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://coderead.wordpress.com/2012/02/17/simple-node-js-socket-listener/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5ad2ef0ddff7ba1c4d06981bd8acba47?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">richorama</media:title>
		</media:content>
	</item>
		<item>
		<title>Dynamic Table Storage</title>
		<link>http://coderead.wordpress.com/2012/02/10/dynamic-table-storage/</link>
		<comments>http://coderead.wordpress.com/2012/02/10/dynamic-table-storage/#comments</comments>
		<pubDate>Fri, 10 Feb 2012 10:06:18 +0000</pubDate>
		<dc:creator>Richard</dc:creator>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://coderead.wordpress.com/?p=354</guid>
		<description><![CDATA[I maintain a project called AzureSugar, a library of extensions to the standard Windows Azure C# SDK which contains a number of handy methods for making the Azure Storage API easier to work with. I have just included support for using dynamic objects for table storage. As Table Storage does not enforce a fixed schema, it [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=coderead.wordpress.com&amp;blog=16658899&amp;post=354&amp;subd=coderead&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I maintain a project called <a href="https://github.com/richorama/AzureSugar">AzureSugar</a>, a library of extensions to the standard Windows Azure C# SDK which contains a number of handy methods for making the Azure Storage API easier to work with. I have just included support for using dynamic objects for table storage. As Table Storage does not enforce a fixed schema, it has always seemed a shame to me that the C# SDK forces you to use static types. Perhaps you don&#8217;t know the schema at compile time, perhaps you want to store a dictionary of items instead of a class, maybe you don&#8217;t want so much ceremony to just write a record to a table? The DynamicTableContext solves these problems.</p>
<p>To use it, first, create a context object:</p>
<pre>var context = new DynamicTableContext("TableName", credentials); </pre>
<p>Then inserting a record is easy using a dynamic object for example:</p>
<pre>context.Insert(new { PartitionKey="1", RowKey="1", Value1="Hello", Value2="World" }); </pre>
<p>You can do the same with a dictionary:</p>
<pre>var dictionary = new Dictionary&lt;string, object&gt;();
dictionary["PartitionKey"] = "2";
dictionary["RowKey"] = "2";
dictionary["Value3"] = "FooBar";
context.Insert(dictionary); </pre>
<p>Retrieving an entity is striaght forward, just pass in the values for partition key and row key:</p>
<pre>dynamic entity = content.Get("1", "1"); </pre>
<p>You can also pass in a query:</p>
<pre>foreach (dynamic item in context.Query("Value1 eq 'Hello'"))
{
  Console.WriteLine(item.RowKey);
}</pre>
<p>This is the first version, there are plenty of extra features I would like to add over time, but I hope there is enough here to be useful.</p>
<p><a href="https://github.com/richorama/AzureSugar">https://github.com/richorama/AzureSugar</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/coderead.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/coderead.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/coderead.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/coderead.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/coderead.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/coderead.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/coderead.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/coderead.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/coderead.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/coderead.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/coderead.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/coderead.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/coderead.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/coderead.wordpress.com/354/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=coderead.wordpress.com&amp;blog=16658899&amp;post=354&amp;subd=coderead&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://coderead.wordpress.com/2012/02/10/dynamic-table-storage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5ad2ef0ddff7ba1c4d06981bd8acba47?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">richorama</media:title>
		</media:content>
	</item>
		<item>
		<title>SQL Azure Federations</title>
		<link>http://coderead.wordpress.com/2012/02/06/sql-azure-federations/</link>
		<comments>http://coderead.wordpress.com/2012/02/06/sql-azure-federations/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 15:41:35 +0000</pubDate>
		<dc:creator>Richard</dc:creator>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[SQLAzure]]></category>

		<guid isPermaLink="false">http://coderead.wordpress.com/?p=345</guid>
		<description><![CDATA[SQL Azure Federation is a way of splitting a table (or tables) across a number of SQL Azure databases. The technique is also know as sharding. For more information, see this MSDN article. There are a few use cases for federations: Your table is too big to fit in a single database (i.e. it&#8217;s greater [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=coderead.wordpress.com&amp;blog=16658899&amp;post=345&amp;subd=coderead&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>SQL Azure Federation is a way of splitting a table (or tables) across a number of SQL Azure databases. The technique is also know as sharding. For more information, see <a href="http://msdn.microsoft.com/en-us/library/windowsazure/hh597470.aspx">this MSDN article</a>.</p>
<p>There are a few use cases for federations:</p>
<ol>
<li>Your table is too big to fit in a single database (i.e. it&#8217;s greater than 150GB)</li>
<li>Query performance is a problem, it&#8217;s a way of breaking up the table into smaller pieces, which run on different physical hardware.</li>
<li>In a multi-tenancy scenario, it&#8217;s a way of physically partitioning tenants into separate databases.</li>
</ol>
<h2>Creating a federation</h2>
<p>Federated databases have a &#8216;Federation Root&#8217; database. This is the principal database you connect to. Once connected to this, you can create a Federation with this command:</p>
<pre>CREATE FEDERATION federation_name (distribution_name &lt;data_type&gt; RANGE)</pre>
<p>You need to specify a &#8216;range&#8217;, which is a value you will use to split your data into the separate federations. Typically you would use a bigint. Federations can also be created in the management portal.</p>
<p>When you create a table, you then specify which column to use for the value of the range (i.e. which column to federate on).</p>
<pre>USE FEDERATION federation_name(distribution_name = value) WITH RESET, FILTERING={ON|OFF}
GO
CREATE TABLE
    [ schema_name . ] table_ame
        ( { &lt;column_definition&gt; | &lt;computed_column_definition&gt; }
        [ &lt; table_constraint&gt; ] [ ,...n ] )
FEDERATED ON (distribution_name = column_name)
GO</pre>
<p>Unfortunately you can&#8217;t &#8216;ALTER&#8217; a table for federation, you can only issue the command on CREATE.</p>
<h2>Using federation</h2>
<p>When you connect to the database you need to include an extra command to indicate that we want to work with federations. You also need to supply a value to indicate which of the federations to work with. One of the advantages of Federations, is that we don&#8217;t need to specify the actual federation, just the value for range. SQL Azure will determine which Federation this value falls in, and routes you accordingly.</p>
<pre>USE FEDERATION federation_name (distribution_name = value)
    WITH FILTERING={ON|OFF}, RESET</pre>
<p>The disadvantage is that this command needs to be included in your  application. The command is associated with a connection, so if there is some clever connection pooling going on (i.e. entity framework) you may have some extra work to do. You cannot call this command from within a stored procedure.</p>
<p>With filtering on, only records which match the range value will be retured. With filtering off, all records from the federation can be returned.</p>
<h2>Splitting a federation</h2>
<p>Splitting federations is straight forward, you can either issue a command:</p>
<pre>USE FEDERATION ROOT WITH RESET
GO
ALTER FEDERATION federation_name SPLIT AT (boundery_value)
GO</pre>
<p>&#8230;or use the management portal.</p>
<p style="text-align:center;"><a href="http://coderead.files.wordpress.com/2012/02/untitled.png"><img class="aligncenter size-full wp-image-346" style="border-color:initial;border-style:initial;border-width:0;" title="Untitled" src="http://coderead.files.wordpress.com/2012/02/untitled.png?w=632" alt=""   /></a></p>
<p>In either case, it&#8217;s an atomic operation, requiring no down-time.</p>
<h2>What&#8217;s missing?</h2>
<ul>
<li>Identity columns are not allowed in federated tables. You can either use GUIDs (not a very nice thing to split on) or create some kind of identity issuing table in the federation root.</li>
<li>Timestamp columns are not allowed.</li>
<li>You can&#8217;t join federations back together (unless you write the code yourself!).</li>
<li>Pricing.</li>
</ul>
<h2>Other interesting features</h2>
<ul>
<li>Each federation is just a separate database. You can connect to them and alter the schema yourself if you want (I&#8217;m not sure I advise this!).</li>
<li>There is a <a href="http://sqlazurefedmw.codeplex.com/">tool</a> to help you migrate your data.</li>
</ul>
<h2>Conclusion</h2>
<p>This is the first release of SQL Azure Federations, and whilst this isn&#8217;t a panacea to solve all big data problems (I&#8217;m not sure anyone has a good solution for sharding) it does present some interesting features. Separating the the layout of the federations from the concern of the application is nice, and the splitting operation is good too. It&#8217;s a shame that applications need to be modified, and include the extra &#8216;USE&#8217; command, but perhaps that&#8217;s something that will change?</p>
<p>I see Federations as a compromise between SQL Azure and Table Store. You give away a few features (e.g. identity and timestamps) but you gain scalability.</p>
<p>Another tool in the box.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/coderead.wordpress.com/345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/coderead.wordpress.com/345/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/coderead.wordpress.com/345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/coderead.wordpress.com/345/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/coderead.wordpress.com/345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/coderead.wordpress.com/345/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/coderead.wordpress.com/345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/coderead.wordpress.com/345/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/coderead.wordpress.com/345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/coderead.wordpress.com/345/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/coderead.wordpress.com/345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/coderead.wordpress.com/345/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/coderead.wordpress.com/345/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/coderead.wordpress.com/345/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=coderead.wordpress.com&amp;blog=16658899&amp;post=345&amp;subd=coderead&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://coderead.wordpress.com/2012/02/06/sql-azure-federations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5ad2ef0ddff7ba1c4d06981bd8acba47?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">richorama</media:title>
		</media:content>

		<media:content url="http://coderead.files.wordpress.com/2012/02/untitled.png" medium="image">
			<media:title type="html">Untitled</media:title>
		</media:content>
	</item>
		<item>
		<title>UKGovCamp12</title>
		<link>http://coderead.wordpress.com/2012/01/24/ukgovcamp12/</link>
		<comments>http://coderead.wordpress.com/2012/01/24/ukgovcamp12/#comments</comments>
		<pubDate>Tue, 24 Jan 2012 11:41:28 +0000</pubDate>
		<dc:creator>Richard</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://coderead.wordpress.com/?p=339</guid>
		<description><![CDATA[I went along the Gov Camp 2012 event on Saturday 21st Jan. I didn&#8217;t quite know what to expect, but I was there with my laptop, and an eagerness to roll up my sleeves and bash out some code. The day started with the ~200 delegates introducing themselves in turn. It was clear that there [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=coderead.wordpress.com&amp;blog=16658899&amp;post=339&amp;subd=coderead&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" title="Agenda" src="http://farm6.static.flickr.com/5048/5378285487_092c3cf910.jpg" alt="" width="500" height="332" /></p>
<p>I went along the<a href="http://www.ukgovcamp.com"> Gov Camp 2012</a> event on Saturday 21st Jan. I didn&#8217;t quite know what to expect, but I was there with my laptop, and an eagerness to roll up my sleeves and bash out some code.</p>
<p>The day started with the ~200 delegates introducing themselves in turn. It was clear that there was some real talent in the room. We had an army of developers as well as UX people, PR and media types, and most importantly &#8211; people who understood Government. What could we accomplish? What could we build? The possibilities were endless.</p>
<p>After the intros, people were invited to pitch for workshops or tasks they would like to undertake/run. Lots of ideas were put forward, and a few of them were &#8216;let&#8217;s build this&#8217;, &#8216;let&#8217;s design that&#8217;. I went for one of those workshops.</p>
<p>We had some great discussions, bounced ideas around, and expert opinion and experience was injected in to that. However, we failed to really get anything done. The same for a later session, what was advertised as  &#8217;Design and Build&#8217; was just a talking shop. Don&#8217;t get me wrong, if other people in the session got something out of it, then it was a success, but I didn&#8217;t leave with a sense of achieving anything. I can&#8217;t help but think that if there was a little more focus on creating solutions rather than discussing problems, something real and worthwhile could have been produced.</p>
<p>I did enjoying meeting some interesting people, I took away several business cards of people I intend to contact to continue conversations. I was also inspired to see that Government are taking open source very seriously and embracing technologies like GitHub to collaborate both internally and with the public.</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/coderead.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/coderead.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/coderead.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/coderead.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/coderead.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/coderead.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/coderead.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/coderead.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/coderead.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/coderead.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/coderead.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/coderead.wordpress.com/339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/coderead.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/coderead.wordpress.com/339/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=coderead.wordpress.com&amp;blog=16658899&amp;post=339&amp;subd=coderead&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://coderead.wordpress.com/2012/01/24/ukgovcamp12/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5ad2ef0ddff7ba1c4d06981bd8acba47?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">richorama</media:title>
		</media:content>

		<media:content url="http://farm6.static.flickr.com/5048/5378285487_092c3cf910.jpg" medium="image">
			<media:title type="html">Agenda</media:title>
		</media:content>
	</item>
		<item>
		<title>Improving Blob Upload Speeds</title>
		<link>http://coderead.wordpress.com/2012/01/13/improving-blob-upload-speeds/</link>
		<comments>http://coderead.wordpress.com/2012/01/13/improving-blob-upload-speeds/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 14:04:55 +0000</pubDate>
		<dc:creator>Richard</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://coderead.wordpress.com/?p=315</guid>
		<description><![CDATA[The Challenge: Upload a 144 MB file into Azure Blob Storage as fast as possible. CloudBlob.UploadFile() The CloudBlob.UploadFile() method doesn&#8217;t do a bad job. Behind the scenes it&#8217;s chunking the file into blocks, and using the &#8216;PutBlock&#8216; method with the Parallel Task Library to upload them simultaneously. However, the Parallel Task Library will not upload [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=coderead.wordpress.com&amp;blog=16658899&amp;post=315&amp;subd=coderead&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>The Challenge:</h2>
<p>Upload a 144 MB file into Azure Blob Storage as fast as possible.</p>
<h2>CloudBlob.UploadFile()</h2>
<p>The <a href="http://msdn.microsoft.com/en-us/library/windowsazure/ff687127.aspx">CloudBlob.UploadFile() method</a> doesn&#8217;t do a bad job. Behind the scenes it&#8217;s chunking the file into blocks, and using the &#8216;<a href="http://msdn.microsoft.com/en-us/library/windowsazure/dd135726.aspx">PutBlock</a>&#8216; method with the Parallel Task Library to upload them simultaneously.</p>
<p>However, the Parallel Task Library will not upload all of the blocks at once, instead it uses a thread pool to upload a few at a time. This is good, but we can do better.</p>
<h2>All at once</h2>
<p>After looking through some performance metrics on blob upload, it seems that Azure storage performance gets better when you use 20-40 threads to upload your file.</p>
<p>I modified my code to chunk the 144 Meg file into 36 x 4 Meg chunks, then used 36 threads to upload all the chunks simultaneously.</p>
<p>The result: it&#8217;s faster (most of the time).</p>
<h2>Benchmarks</h2>
<p>My intention is to create a more complete list of benchmarks, but here&#8217;s what I&#8217;ve got at the moment.</p>
<table>
<tbody>
<tr>
<td><strong>Location</strong></td>
<td><strong>CloudBlob.UploadFile()</strong></td>
<td><strong>All at once technique</strong></td>
</tr>
<tr>
<td>Azure Instance<br />
(Extra Large)</td>
<td>6.1 seconds</td>
<td>5.3 seconds</td>
</tr>
<tr>
<td>T1 Connection</td>
<td>21 seconds</td>
<td>14 seconds</td>
</tr>
<tr>
<td>10 Mbps</td>
<td>143 seconds</td>
<td>615 seconds *</td>
</tr>
<tr>
<td>Domestic ADSL Line<br />
(0.36 Mbps upload speed)</td>
<td>Timeout</td>
<td>923 seconds</td>
</tr>
</tbody>
</table>
<p>(*) The network equipment is throttling the number of simultaneous outbound connections.</p>
<h2>Where to go from here?</h2>
<p>More performance gains can be made, but with added complexity. Peer networking could provide one answer. If the file exists in more that one place, perhaps uploading different parts from both locations would help?</p>
<p>Another answer is compression. The particular file I used was already highly compressed. However, a file which could be heavily compressed could be uploaded to Azure compute instances in a GZipped stream, and then inflated and inserted into blob storage by a background process.</p>
<p>I have tested this approach, and significant gains can be made, in direct correlation to the compressibility of the data. Obviously there is a cost implication.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/coderead.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/coderead.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/coderead.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/coderead.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/coderead.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/coderead.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/coderead.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/coderead.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/coderead.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/coderead.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/coderead.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/coderead.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/coderead.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/coderead.wordpress.com/315/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=coderead.wordpress.com&amp;blog=16658899&amp;post=315&amp;subd=coderead&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://coderead.wordpress.com/2012/01/13/improving-blob-upload-speeds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5ad2ef0ddff7ba1c4d06981bd8acba47?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">richorama</media:title>
		</media:content>
	</item>
		<item>
		<title>Getting the samples to work on the Azure Node.js SDK</title>
		<link>http://coderead.wordpress.com/2012/01/03/getting-the-samples-to-work-on-the-azure-node-js-sdk/</link>
		<comments>http://coderead.wordpress.com/2012/01/03/getting-the-samples-to-work-on-the-azure-node-js-sdk/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 13:47:12 +0000</pubDate>
		<dc:creator>Richard</dc:creator>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Node.js]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://coderead.wordpress.com/?p=304</guid>
		<description><![CDATA[(You probably want to do this in linux) Install Node.js &#38; NPM echo 'export PATH=$HOME/local/bin:$PATH' &#62;&#62; ~/.bashrc . ~/.bashrc mkdir ~/local mkdir ~/node-latest-install cd ~/node-latest-install curl http://nodejs.org/dist/node-latest.tar.gz &#124; tar xz --strip-components=1 ./configure --prefix=~/local make install curl http://npmjs.org/install.sh &#124; sh Download the SDK npm install azure Download the dependencies cd azure-sdk-for-node npm install cd examples/blog npm [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=coderead.wordpress.com&amp;blog=16658899&amp;post=304&amp;subd=coderead&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>(You probably want to do this in linux)</p>
<h2>Install Node.js &amp; NPM</h2>
<pre>echo 'export PATH=$HOME/local/bin:$PATH' &gt;&gt; ~/.bashrc
. ~/.bashrc
mkdir ~/local
mkdir ~/node-latest-install
cd ~/node-latest-install
curl <a href="http://nodejs.org/dist/node-latest.tar.gz" rel="nofollow">http://nodejs.org/dist/node-latest.tar.gz</a> | tar xz --strip-components=1
./configure --prefix=~/local
make install
curl <a href="http://npmjs.org/install.sh" rel="nofollow">http://npmjs.org/install.sh</a> | sh</pre>
<h2>Download the SDK</h2>
<pre>npm install azure</pre>
<h2>Download the dependencies</h2>
<pre>cd azure-sdk-for-node
npm install
cd examples/blog
npm install
cd ../tasklist
npm install
cd ../../
</pre>
<h2>Update the storage credentials</h2>
<p>Update the ./lib/services/serviceclient.js with your credentials.</p>
<p>The examples use the dev storage, so just update the dev storage details to be the live endpoint URIs, and your account and access key.</p>
<h2>Run the examples</h2>
<p>Start node with either of the following commands:</p>
<pre>
cd examples/blog
node server
</pre>
<p>or</p>
<pre>
cd examples/tasklist
node server
</pre>
<p>Then browse to <a href="http://localhost:1337/" rel="nofollow">http://localhost:1337/</a> to try the applications.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/coderead.wordpress.com/304/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/coderead.wordpress.com/304/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/coderead.wordpress.com/304/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/coderead.wordpress.com/304/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/coderead.wordpress.com/304/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/coderead.wordpress.com/304/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/coderead.wordpress.com/304/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/coderead.wordpress.com/304/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/coderead.wordpress.com/304/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/coderead.wordpress.com/304/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/coderead.wordpress.com/304/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/coderead.wordpress.com/304/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/coderead.wordpress.com/304/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/coderead.wordpress.com/304/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=coderead.wordpress.com&amp;blog=16658899&amp;post=304&amp;subd=coderead&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://coderead.wordpress.com/2012/01/03/getting-the-samples-to-work-on-the-azure-node-js-sdk/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5ad2ef0ddff7ba1c4d06981bd8acba47?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">richorama</media:title>
		</media:content>
	</item>
		<item>
		<title>WindowsAzure.com</title>
		<link>http://coderead.wordpress.com/2011/12/12/windowsazure-com/</link>
		<comments>http://coderead.wordpress.com/2011/12/12/windowsazure-com/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 11:50:33 +0000</pubDate>
		<dc:creator>Richard</dc:creator>
				<category><![CDATA[Azure]]></category>

		<guid isPermaLink="false">http://coderead.wordpress.com/?p=301</guid>
		<description><![CDATA[It looks like the Windows Azure website is hosted in Azure. C:\Users\richard.astbury&#62;ping http://www.windowsazure.com Pinging wamktg-prod-am-001.cloudapp.net [65.52.128.236] with 32 bytes of data: Has this always been the case?<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=coderead.wordpress.com&amp;blog=16658899&amp;post=301&amp;subd=coderead&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It looks like the Windows Azure website is hosted in Azure.</p>
<pre>C:\Users\richard.astbury&gt;ping <a href="http://www.windowsazure.com" rel="nofollow">http://www.windowsazure.com</a>
Pinging wamktg-prod-am-001.cloudapp.net [65.52.128.236] with 32 bytes of data:</pre>
<p>Has this always been the case?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/coderead.wordpress.com/301/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/coderead.wordpress.com/301/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/coderead.wordpress.com/301/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/coderead.wordpress.com/301/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/coderead.wordpress.com/301/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/coderead.wordpress.com/301/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/coderead.wordpress.com/301/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/coderead.wordpress.com/301/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/coderead.wordpress.com/301/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/coderead.wordpress.com/301/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/coderead.wordpress.com/301/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/coderead.wordpress.com/301/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/coderead.wordpress.com/301/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/coderead.wordpress.com/301/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=coderead.wordpress.com&amp;blog=16658899&amp;post=301&amp;subd=coderead&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://coderead.wordpress.com/2011/12/12/windowsazure-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5ad2ef0ddff7ba1c4d06981bd8acba47?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">richorama</media:title>
		</media:content>
	</item>
		<item>
		<title>Writing trace to Table Storage</title>
		<link>http://coderead.wordpress.com/2011/12/06/writing-trace-to-table-storage/</link>
		<comments>http://coderead.wordpress.com/2011/12/06/writing-trace-to-table-storage/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 16:03:23 +0000</pubDate>
		<dc:creator>Richard</dc:creator>
				<category><![CDATA[Azure]]></category>

		<guid isPermaLink="false">http://coderead.wordpress.com/?p=299</guid>
		<description><![CDATA[This article provides a useful walk through on how to configure the Azure Trace Listener to write to Table Storage. However, this line is very interesting: DiagnosticMonitor.Start("DiagnosticsConnectionString"); The diagnostics monitor actually takes no notice of the setting name you pass in (other than to ensure it&#8217;s value is a correctly formatted connection string with HTTPS enabled). It [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=coderead.wordpress.com&amp;blog=16658899&amp;post=299&amp;subd=coderead&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://msdn.microsoft.com/en-us/magazine/ff714589.aspx">This article</a> provides a useful walk through on how to configure the Azure Trace Listener to write to Table Storage.</p>
<p>However, this line is very interesting:</p>
<pre>DiagnosticMonitor.Start("DiagnosticsConnectionString");</pre>
<p id="ctl00_MTContentSelector1_mainContentContainer_ctl04_code">The diagnostics monitor actually takes no notice of the setting name you pass in (other than to ensure it&#8217;s value is a correctly formatted connection string with HTTPS enabled). It will always use this setting:</p>
<pre>Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString</pre>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/coderead.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/coderead.wordpress.com/299/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/coderead.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/coderead.wordpress.com/299/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/coderead.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/coderead.wordpress.com/299/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/coderead.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/coderead.wordpress.com/299/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/coderead.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/coderead.wordpress.com/299/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/coderead.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/coderead.wordpress.com/299/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/coderead.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/coderead.wordpress.com/299/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=coderead.wordpress.com&amp;blog=16658899&amp;post=299&amp;subd=coderead&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://coderead.wordpress.com/2011/12/06/writing-trace-to-table-storage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5ad2ef0ddff7ba1c4d06981bd8acba47?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">richorama</media:title>
		</media:content>
	</item>
		<item>
		<title>Ports in use on an Azure Worker Role</title>
		<link>http://coderead.wordpress.com/2011/12/01/ports-in-use-on-an-azure-worker-role/</link>
		<comments>http://coderead.wordpress.com/2011/12/01/ports-in-use-on-an-azure-worker-role/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 07:59:21 +0000</pubDate>
		<dc:creator>Richard</dc:creator>
				<category><![CDATA[Azure]]></category>

		<guid isPermaLink="false">http://coderead.wordpress.com/?p=293</guid>
		<description><![CDATA[D:\Users\richard&#62;netstat -a Active Connections   Proto  Local Address          Foreign Address        State   TCP    0.0.0.0:135            RD00155D362B3E:0       LISTENING   TCP    0.0.0.0:445            RD00155D362B3E:0       LISTENING   TCP    0.0.0.0:3389           [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=coderead.wordpress.com&amp;blog=16658899&amp;post=293&amp;subd=coderead&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<pre>D:\Users\richard&gt;netstat -a

Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    0.0.0.0:135            RD00155D362B3E:0       LISTENING
  TCP    0.0.0.0:445            RD00155D362B3E:0       LISTENING
  TCP    0.0.0.0:3389           RD00155D362B3E:0       LISTENING
  TCP    0.0.0.0:16001          RD00155D362B3E:0       LISTENING
  TCP    0.0.0.0:49152          RD00155D362B3E:0       LISTENING
  TCP    0.0.0.0:49153          RD00155D362B3E:0       LISTENING
  TCP    0.0.0.0:49154          RD00155D362B3E:0       LISTENING
  TCP    0.0.0.0:49155          RD00155D362B3E:0       LISTENING
  TCP    10.211.208.81:139      RD00155D362B3E:0       LISTENING
  TCP    10.211.208.81:3389     RD00155D362B3E:49167   ESTABLISHED
  TCP    10.211.208.81:20000    RD00155D362B3E:0       LISTENING
  TCP    10.211.208.81:20000    94.245.124.139:21287   ESTABLISHED
  TCP    10.211.208.81:49156    10.211.209.20:http     ESTABLISHED
  TCP    10.211.208.81:49164    10.211.209.20:http     ESTABLISHED
  TCP    10.211.208.81:49167    RD00155D362B3E:ms-wbt-server  ESTABLISHED
  TCP    10.211.208.81:49174    blob:https             ESTABLISHED
  TCP    [::]:135               RD00155D362B3E:0       LISTENING
  TCP    [::]:445               RD00155D362B3E:0       LISTENING
  TCP    [::]:3389              RD00155D362B3E:0       LISTENING
  TCP    [::]:16001             RD00155D362B3E:0       LISTENING
  TCP    [::]:49152             RD00155D362B3E:0       LISTENING
  TCP    [::]:49153             RD00155D362B3E:0       LISTENING
  TCP    [::]:49154             RD00155D362B3E:0       LISTENING
  TCP    [::]:49155             RD00155D362B3E:0       LISTENING
  UDP    0.0.0.0:123            *:*
  UDP    0.0.0.0:500            *:*
  UDP    0.0.0.0:4500           *:*
  UDP    0.0.0.0:5355           *:*
  UDP    10.211.208.81:137      *:*
  UDP    10.211.208.81:138      *:*
  UDP    [::]:123               *:*
  UDP    [::]:500               *:*
  UDP    [::]:5355              *:*
  UDP    [fe80::988:6019:94b7:912%15]:546  *:*</pre>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/coderead.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/coderead.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/coderead.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/coderead.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/coderead.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/coderead.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/coderead.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/coderead.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/coderead.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/coderead.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/coderead.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/coderead.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/coderead.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/coderead.wordpress.com/293/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=coderead.wordpress.com&amp;blog=16658899&amp;post=293&amp;subd=coderead&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://coderead.wordpress.com/2011/12/01/ports-in-use-on-an-azure-worker-role/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5ad2ef0ddff7ba1c4d06981bd8acba47?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">richorama</media:title>
		</media:content>
	</item>
		<item>
		<title>CPU-Z on an Azure Compute Instance</title>
		<link>http://coderead.wordpress.com/2011/11/29/cpu-z-on-an-azure-compute-instance/</link>
		<comments>http://coderead.wordpress.com/2011/11/29/cpu-z-on-an-azure-compute-instance/#comments</comments>
		<pubDate>Tue, 29 Nov 2011 21:09:42 +0000</pubDate>
		<dc:creator>Richard</dc:creator>
				<category><![CDATA[Azure]]></category>

		<guid isPermaLink="false">http://coderead.wordpress.com/?p=281</guid>
		<description><![CDATA[Taken from a small instance running in the North Europe (Dublin) data centre.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=coderead.wordpress.com&amp;blog=16658899&amp;post=281&amp;subd=coderead&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Taken from a small instance running in the North Europe (Dublin) data centre.</p>
<p style="text-align:center;"><a href="http://coderead.files.wordpress.com/2011/11/12.png"><img class="aligncenter size-full wp-image-284" style="border-color:initial;border-style:initial;border-width:0;" title="1" src="http://coderead.files.wordpress.com/2011/11/12.png?w=632" alt=""   /></a></p>
<p style="text-align:center;"><a href="http://coderead.files.wordpress.com/2011/11/2.png"><img class="aligncenter size-full wp-image-285" style="border-color:initial;border-style:initial;border-width:0;" title="2" src="http://coderead.files.wordpress.com/2011/11/2.png?w=632" alt=""   /></a></p>
<p style="text-align:center;"><a href="http://coderead.files.wordpress.com/2011/11/3.png"><img class="aligncenter size-full wp-image-286" style="border-color:initial;border-style:initial;border-width:0;" title="3" src="http://coderead.files.wordpress.com/2011/11/3.png?w=632" alt=""   /></a></p>
<p style="text-align:center;"><a href="http://coderead.files.wordpress.com/2011/11/memory.png"><img class="aligncenter size-full wp-image-289" style="border-color:initial;border-style:initial;border-width:0;" title="memory" src="http://coderead.files.wordpress.com/2011/11/memory.png?w=632" alt=""   /></a></p>
<p style="text-align:center;"><a href="http://coderead.files.wordpress.com/2011/11/5.png"><img class="aligncenter size-full wp-image-288" style="border-color:initial;border-style:initial;border-width:0;" title="5" src="http://coderead.files.wordpress.com/2011/11/5.png?w=632" alt=""   /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/coderead.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/coderead.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/coderead.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/coderead.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/coderead.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/coderead.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/coderead.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/coderead.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/coderead.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/coderead.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/coderead.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/coderead.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/coderead.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/coderead.wordpress.com/281/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=coderead.wordpress.com&amp;blog=16658899&amp;post=281&amp;subd=coderead&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://coderead.wordpress.com/2011/11/29/cpu-z-on-an-azure-compute-instance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5ad2ef0ddff7ba1c4d06981bd8acba47?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">richorama</media:title>
		</media:content>

		<media:content url="http://coderead.files.wordpress.com/2011/11/12.png" medium="image">
			<media:title type="html">1</media:title>
		</media:content>

		<media:content url="http://coderead.files.wordpress.com/2011/11/2.png" medium="image">
			<media:title type="html">2</media:title>
		</media:content>

		<media:content url="http://coderead.files.wordpress.com/2011/11/3.png" medium="image">
			<media:title type="html">3</media:title>
		</media:content>

		<media:content url="http://coderead.files.wordpress.com/2011/11/memory.png" medium="image">
			<media:title type="html">memory</media:title>
		</media:content>

		<media:content url="http://coderead.files.wordpress.com/2011/11/5.png" medium="image">
			<media:title type="html">5</media:title>
		</media:content>
	</item>
	</channel>
</rss>
