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

<channel>
	<title>domgreen.com</title>
	<atom:link href="http://domgreen.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://domgreen.com</link>
	<description>The geek will inherit the Earth</description>
	<lastBuildDate>Mon, 07 Jun 2010 08:42:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Azure dev Portal, OS Settings</title>
		<link>http://domgreen.com/2010/06/07/azure-dev-portal-os-settings/</link>
		<comments>http://domgreen.com/2010/06/07/azure-dev-portal-os-settings/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 08:42:44 +0000</pubDate>
		<dc:creator>domgreen</dc:creator>
				<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Deployment]]></category>
		<category><![CDATA[dev portal]]></category>

		<guid isPermaLink="false">http://domgreen.com/2010/06/07/azure-dev-portal-os-settings/</guid>
		<description><![CDATA[Microsoft have made a small update to the Windows Azure Dev Portal and added the ability to configure the operating system that are running on your nodes and how they are updated.
As you can see in the below image the new magic “OS Settings…” button is now available.
 
Clicking on the “OS Settings…” button takes [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft have made a small update to the Windows Azure Dev Portal and added the ability to configure the operating system that are running on your nodes and how they are updated.</p>
<p>As you can see in the below image the new magic “OS Settings…” button is now available.</p>
<p><a href="http://domgreen.com/wp-content/uploads/2010/06/image.png"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://domgreen.com/wp-content/uploads/2010/06/image_thumb.png" width="625" height="250" /></a> </p>
<p>Clicking on the “OS Settings…” button takes you to the following screen to configure your operating system options and how it is updated:</p>
<p><a href="http://domgreen.com/wp-content/uploads/2010/06/image1.png"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://domgreen.com/wp-content/uploads/2010/06/image_thumb1.png" width="643" height="209" /></a> Hopefully, more updates will start rolling out to the dev portal over the coming months.</p>
]]></content:encoded>
			<wfw:commentRss>http://domgreen.com/2010/06/07/azure-dev-portal-os-settings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>deploying to the cloud as part of your daily build &#8211; update</title>
		<link>http://domgreen.com/2010/06/01/deploying-to-the-cloud-as-part-of-your-daily-build-update/</link>
		<comments>http://domgreen.com/2010/06/01/deploying-to-the-cloud-as-part-of-your-daily-build-update/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 23:02:41 +0000</pubDate>
		<dc:creator>domgreen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://domgreen.com/2010/06/01/deploying-to-the-cloud-as-part-of-your-daily-build-update/</guid>
		<description><![CDATA[Nearly a year ago I made a post about how to deploy your Windows Azure applications to the cloud as part of your daily build.
Well, times have changed and our tools for Windows Azure have got a little shinier, making cloud deployments much easier.
This update was something that I had been itching to do for [...]]]></description>
			<content:encoded><![CDATA[<p>Nearly a year ago I made a post about how to <a href="http://domgreen.com/2009/09/29/deploying-to-the-cloud-as-part-of-your-daily-build/">deploy your Windows Azure applications</a> to the cloud as part of your daily build.</p>
<p>Well, times have changed and our tools for Windows Azure have got a little shinier, making cloud deployments much easier.</p>
<p>This update was something that I had been itching to do for a while but have been busy plotting <strike>world</strike>&#160; cloud domination with my current project. </p>
<h1>Drum roll please… </h1>
<p>However, <a href="http://scottdensmore.typepad.com/blog/">Scott Densmore</a> over at Microsoft’s P&amp;P group has pipped me to the post (literally) with a two part blog series on how to do your daily deployments to Azure using the Windows Azure Service Management CmdLets and MSBuild (<a href="http://scottdensmore.typepad.com/blog/2010/03/azure-deployment-for-your-build-server.html">part1</a> &amp; <a href="http://scottdensmore.typepad.com/blog/2010/04/windows-azure-deployment-for-your-build-server-part-2-deploy-certs.html">part2</a>). Scott has even added in the ability to upload your certs for SSL during the deployment.</p>
<p>The addition of the Power Shell CmdLets makes this a much concise set of build tasks, even updating your config to point to the correct storage and account using a custom Task, I still prefer using the <a href="http://www.msbuildextensionpack.com/">MSBuild Extension Pack</a> however.</p>
<h1>Additions</h1>
<p>One thing that I will be adding to my own set of build scripts will be uploading the package and config to Azure storage before I run the deploy tasks so that I can keep them in dated blob containers so that I can roll back to prior releases at a moments notice.</p>
<h1>Guidance</h1>
<p>There&#8217;s some great Azure guidance coming from Scott and Eugenio in the Patterns and Practice team so keep a watch on their <a href="http://wag.codeplex.com/">site</a> for all manner of Azure related goodness.</p>
]]></content:encoded>
			<wfw:commentRss>http://domgreen.com/2010/06/01/deploying-to-the-cloud-as-part-of-your-daily-build-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cloud Coffee at #dddscot</title>
		<link>http://domgreen.com/2010/05/09/cloud-coffee-at-dddscot/</link>
		<comments>http://domgreen.com/2010/05/09/cloud-coffee-at-dddscot/#comments</comments>
		<pubDate>Sun, 09 May 2010 22:25:56 +0000</pubDate>
		<dc:creator>domgreen</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[DDDScot]]></category>

		<guid isPermaLink="false">http://domgreen.com/2010/05/09/cloud-coffee-at-dddscot/</guid>
		<description><![CDATA[DDD Scotland has been a great weekend of lots of geek-ery, fun and fire. It was also my first experience of speaking at a large conference and gave me the opportunity to talk about some of the things I had learned whilst developing on the Windows Azure platform over the past year, working with the [...]]]></description>
			<content:encoded><![CDATA[<p>DDD Scotland has been a great weekend of lots of geek-ery, fun and fire. It was also my first experience of speaking at a large conference and gave me the opportunity to talk about some of the things I had learned whilst developing on the Windows Azure platform over the past year, working with the European Environmental Agency and RiskMetrics.</p>
<div align="center">
<div style="width: 425px" id="__ss_4029570"><strong style="margin: 12px 0px 4px; display: block"><a title="CloudCoffee" href="http://www.slideshare.net/domgreen/cloudcoffee">CloudCoffee</a></strong><object id="__sse4029570" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=domgreendddscotland-copy-100509161838-phpapp02&amp;stripped_title=cloudcoffee" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed name="__sse4029570" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=domgreendddscotland-copy-100509161838-phpapp02&amp;stripped_title=cloudcoffee" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="padding-bottom: 12px; padding-left: 0px; padding-right: 0px; padding-top: 5px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/domgreen">domgreen</a>.</div>
</p></div>
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://domgreen.com/2010/05/09/cloud-coffee-at-dddscot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RiskMetrics &#8211; UK Azure Community presentation</title>
		<link>http://domgreen.com/2010/04/27/riskmetrics-uk-azure-community-presentation/</link>
		<comments>http://domgreen.com/2010/04/27/riskmetrics-uk-azure-community-presentation/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 13:22:44 +0000</pubDate>
		<dc:creator>domgreen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://domgreen.com/2010/04/27/riskmetrics-uk-azure-community-presentation/</guid>
		<description><![CDATA[
RiskMetrics is on of the leading providers of financial risk analysis and I have had the pleasure to be working with them over the past couple of months to deliver their RiskBurst platform.
The RiskMetrics guys, Rob Fraser (Head of Cloud Computing) and Rich Bower (Dev Lead) and myself will be delivering a presentation on the [...]]]></description>
			<content:encoded><![CDATA[<p><img style="display: block; float: none; margin-left: auto; margin-right: auto" vspace="5" src="http://www.riskmetrics.com/sites/default/files/homepage/RMG_logo_tagline.gif" width="212" height="149" /></p>
<p><a href="http://www.riskmetrics.com/">RiskMetrics</a> is on of the leading providers of financial risk analysis and I have had the pleasure to be working with them over the past couple of months to deliver their <strong>RiskBurst</strong> platform.</p>
<p>The RiskMetrics guys, <strong>Rob Fraser</strong> (Head of Cloud Computing) and <strong>Rich Bower</strong> (Dev Lead) and myself will be delivering a presentation on the platform, our lessons learned and how this integrates with the current data centre RiskMetrics have. </p>
<p>The session will be taking place on <strong>May 27th</strong> from the Microsoft London office and is sure to be one not to miss, as these guys are doing some great stuff with Windows Azure and really pushing the platform.</p>
<p>Here is an outline of our session:</p>
<blockquote><h3>High Performance Computing across the Data Centre and the Azure Cloud</h3>
<p>RiskMetrics, the leading provider of financial risk analytics, is engaged in building RiskBurst, an elastic high performance computing capability that spans the data centre and the Azure cloud. The talk will describe the design and implementation of the solution, experiences and lessons learnt from working on Azure, and the operational issues associated with running a production capability using a public “cloud bursting” architecture.</p>
</blockquote>
<p>Sign up for the event here: <a href="http://ukazurenet-powerofthree.eventbrite.com">http://ukazurenet-powerofthree.eventbrite.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://domgreen.com/2010/04/27/riskmetrics-uk-azure-community-presentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Infrastructure Access Layer</title>
		<link>http://domgreen.com/2010/04/25/infrastructure-access-layer/</link>
		<comments>http://domgreen.com/2010/04/25/infrastructure-access-layer/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 16:06:44 +0000</pubDate>
		<dc:creator>domgreen</dc:creator>
				<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Cloud Ready]]></category>
		<category><![CDATA[IAL]]></category>

		<guid isPermaLink="false">http://domgreen.com/2010/04/25/infrastructure-access-layer/</guid>
		<description><![CDATA[The Infrastructure Access Layer, or IAL for short is a simple concept, nothing new, in-fact you have all been using something similar for years when programming against your databases. I have just expanded the concept to the cloud (and the ability to create “cloud ready” applications).
Infrastructure Access Layer (IAL)
&#160;

The Infrastructure Access Layer is simply a [...]]]></description>
			<content:encoded><![CDATA[<p>The <strong>Infrastructure Access Layer</strong>, or <strong>IAL </strong>for short is a simple concept, nothing new, in-fact you have all been using something similar for years when programming against your databases. I have just expanded the concept to the cloud (and the ability to create “cloud ready” applications).</p>
<h2>Infrastructure Access Layer (IAL)</h2>
<p>&#160;</p>
<p><a href="http://domgreen.com/wp-content/uploads/2010/04/image4.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://domgreen.com/wp-content/uploads/2010/04/image_thumb4.png" width="480" height="366" /></a></p>
<p>The Infrastructure Access Layer is simply a way to abstract away your underlying infrastructure from your business logic or processing. This means that I can easily change how my applications interact with the infrastructure just by changing a method within the IAL and the business logic would be none the wiser.</p>
<p>Lets take a simple example, I may be developing an applications that takes work items and processes them. I create a method in the IAL called <strong>GetWorkItem</strong> which will return to my business logic the work item to be processed. This method can then call out to Azure Queues to get a work item, or maybe in the future you will want to switch out where we are getting the work item from, maybe we want to use a web service to call another location, use blob storage to store large work items or listen for a work item to be passed onto a service bus. This can all be dealt with in a single place.</p>
<p><a href="http://domgreen.com/wp-content/uploads/2010/04/image5.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://domgreen.com/wp-content/uploads/2010/04/image_thumb5.png" width="400" height="125" /></a></p>
<p>All the business logic knows and cares about is that it is going to call the <strong>GetWorkItem </strong>method and get a work item back, not where it came from or how it received it it.</p>
<h2>Cloud Ready…</h2>
<p>Even with more and more people are moving toward the cloud, there are still companies that aren&#8217;t quite ready to make the jump, but realise that in the near future may have to and want to know how to create applications that will be able to transition easily to the cloud when they are ready.</p>
<p>By programming against the Infrastructure Access Layer companies will be able to make this move a lot smoother, by just replacing the needed classes so that they interact with the cloud rather than the old infrastructure.</p>
<p>A great example of this would be using a messaging system such as MSMQ as part of your on premise application, and then being able to easily switch this out for Windows Azure Queues or the App Fabric Service Bus when moving into the cloud. Having to make minimal if any changes to your business logic.</p>
<h2>Keeping the cloud contained</h2>
<p>As I talked about in my <a href="http://domgreen.com/2010/04/24/learnings-from-the-ash-cloud/">last post</a> the cloud can end up getting everywhere and you can soon end up breaking the principle of DRY (Don’t&#160; Repeat Yourself).</p>
<p>With the IAL you can easily keep the cloud contained, letting a minimal number of project have access to the cloud, making SDK upgrades and maintenance easier.</p>
<h2>Is that it?</h2>
<p>It is indeed. As I said at the start, the IAL is a simple concept that allows you to abstract away your underlying infrastructure from your business logic and also help create cloud ready applications for when people are ready to make that push to the cloud.</p>
]]></content:encoded>
			<wfw:commentRss>http://domgreen.com/2010/04/25/infrastructure-access-layer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learning&#8217;s From The Ash Cloud</title>
		<link>http://domgreen.com/2010/04/24/learnings-from-the-ash-cloud/</link>
		<comments>http://domgreen.com/2010/04/24/learnings-from-the-ash-cloud/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 14:17:56 +0000</pubDate>
		<dc:creator>domgreen</dc:creator>
				<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[Ash Cloud]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Cloud Computing]]></category>

		<guid isPermaLink="false">http://domgreen.com/2010/04/24/learnings-from-the-ash-cloud/</guid>
		<description><![CDATA[I&#8217;m sure everyone is aware of the recent volcanic eruption in Iceland and the cloud of ash that has been spewed out and more importantly the knock on effects this ash cloud has had on not just Europe but the whole world.
 
Clouds can Spread …
The ash cloud started out in Iceland where it eventually [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m sure everyone is aware of the recent volcanic eruption in Iceland and the cloud of ash that has been spewed out and more importantly the knock on effects this ash cloud has had on not just Europe but the whole world.</p>
<h2><a href="http://domgreen.com/wp-content/uploads/2010/04/image2.png"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://domgreen.com/wp-content/uploads/2010/04/image_thumb2.png" width="526" height="386" /></a> </h2>
<h2>Clouds can Spread …</h2>
<p>The ash cloud started out in Iceland where it eventually moved and spread out to cover the UK and Europe, even some reports say that it got as far as Canada. Grounding planes and crippling transport for a number of weeks.</p>
<p>This got me thinking, not all clouds are nice white clouds, some are evil volcanic clouds that actually do more harm than good especially when not contained to where we want them to be.&#160; (the ash cloud would have been fine if it had not strayed into European airspace).</p>
<p>The same is true in your applications, when developing for the cloud you can find that the cloud can end up spreading throughout your applications and if your not careful touching every section of code you write.</p>
<p>This can then be a real problem when the underlying SDK to interact with the cloud changes and you have to go through all of your application looking where to refractor and make changes.</p>
<h2>Contain Your Cloud</h2>
<p>To combat this I contain any code that will access the cloud within few specialised “cloud” projects within my application.</p>
<p><a href="http://domgreen.com/wp-content/uploads/2010/04/image3.png"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://domgreen.com/wp-content/uploads/2010/04/image_thumb3.png" width="263" height="189" /></a> </p>
<p>This means that throughout the application if I want to access the Azure message queue, I call a single method from one of my cloud project that will return me a message, meaning that no other part of you application needs to know how to deal with the cloud.</p>
<h2>Added Benefits</h2>
<p>Containing your cloud not only allows you to keep to the DRY principles and code re-use it, makes maintenance of your application easier and can reduce code smells. One of the biggest benefits is that it also allows you to easier test your applications without having to rely on the cloud or developer fabric, as you can create your cloud methods in a mock-able way.</p>
]]></content:encoded>
			<wfw:commentRss>http://domgreen.com/2010/04/24/learnings-from-the-ash-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extreme Retrospective</title>
		<link>http://domgreen.com/2010/04/11/extreme-retrospective/</link>
		<comments>http://domgreen.com/2010/04/11/extreme-retrospective/#comments</comments>
		<pubDate>Sun, 11 Apr 2010 13:19:13 +0000</pubDate>
		<dc:creator>domgreen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Extreme Retrosectve]]></category>
		<category><![CDATA[Feedback]]></category>

		<guid isPermaLink="false">http://domgreen.com/2010/04/11/extreme-retrospective/</guid>
		<description><![CDATA[
 On one of my previous projects we had heard management talking about getting the team to give open and honest feedback to each other, what everyone was doing well, where people needed improvement this was both in a technical and social context.
After hearing this our dev lead on the project Simon Middlemiss decided to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://domgreen.com/wp-content/uploads/2010/04/image1.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://domgreen.com/wp-content/uploads/2010/04/image_thumb1.png" width="444" height="257" /></a></p>
<p> On one of my previous projects we had heard management talking about getting the team to give open and honest feedback to each other, what everyone was doing well, where people needed improvement this was both in a technical and social context.</p>
<p>After hearing this our dev lead on the project <a href="http://blogs.msdn.com/psiman/">Simon Middlemiss</a> decided to implement this with the project team and created a the “<strong>Extreme Retrospective</strong>”.</p>
<h2>What it is…</h2>
<p>The Extreme Retrospective is a combination of the agile retrospectives at the end of a sprint, that discuss what worked well as part of the Sprint and what could be improved and the rapid meeting turnarounds of the daily scrums, along with the personal improvement aspects from personal coaching or mentoring.</p>
<h2>How it works</h2>
<p>Performing Extreme Retrospectives are pretty straight forward (after the fear of giving feedback are gone) here’s how we did it:</p>
<h3></h3>
<blockquote><h3>Get a room</h3>
<p>Find a room where you wont be disturbed (this means phones / laptops off too)</p>
</blockquote>
<blockquote><h3>Lead by example</h3>
<p>Dev Lead starts as way of example – can move when everyone is comfortable with giving feedback.</p>
</blockquote>
<blockquote><h3>Only speak when its your turn</h3>
<p>Only one person speaks at once – you cannot try to defend yourself or give justification</p>
</blockquote>
<blockquote><h3>Be Self Critical</h3>
<p>Person that is receiving feedback should take note and either act upon it or not</p>
</blockquote>
<blockquote><h3>Feedback Sandwiches?</h3>
<p>Each person when giving feedback should give a “<strong>Feedback sandwich</strong>” where by you have&#160; a piece of good feedback followed by feedback on where an individual needs to improve finishing up with a piece of good feedback again. </p>
</blockquote>
<blockquote><h3>Everyone has a turn</h3>
<p>One the speaker has given feedback to each person in the room, the privilege to speak is passed to the person on your right. </p>
</blockquote>
<blockquote><h3>Repeat</h3>
<p>This is repeated until everyone in the room has received feedback and given feedback to everyone in the room.</p>
</blockquote>
<h2>Why it works</h2>
<p>The main benefit that I got from these sessions was that it really opens the team up, getting everyone comfortable giving and receiving feedback especially when the feedback isn&#8217;t what the person was wanting to hear.</p>
<p>This meant that once the first extreme retrospective session had been complete the barriers were dropped on we could instantly feedback to others in the group when they were either doing something good and especially when they were doing something bad (hiding under the umbrella of feedback). Once peoples issues / strengths had been identified it was easier to view and take on board the good qualities of other peoples actions both because you knew where you needed to improve yourself and who on the team was doing something really well that you could try.</p>
<p>It also allowed us to keep members of the team on track and focused, as everyone could see if a team member was showing a bad point such as being easily distracted and the rest of the team could help out by letting the person know they had fallen back into old habits.</p>
<p>One of my major issues that I had with giving feedback and was highlighted in our first extreme retrospective was giving feedback and disagreeing with more senior members of the team / organisation when I thought it was needed. The first retrospective we did forced me to do this giving feedback in where I thought my dev lead / test lead could improve what they were doing. Once I had done this for the first time I felt more confident giving feedback not only to senior members of our team but in general around the wider organisation.</p>
<h2>Want to know more?</h2>
<p>You can read Simons original post on the <a href="http://blogs.msdn.com/mcsuksoldev/archive/2010/04/01/9988680.aspx">Extreme Retrospective</a> on our <a href="http://blogs.msdn.com/mcsuksoldev/default.aspx">MCS UK Solution Development blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://domgreen.com/2010/04/11/extreme-retrospective/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pumping Iron &#8211; Ruby &amp; .NET testing</title>
		<link>http://domgreen.com/2010/02/07/pumping-iron-ruby-net-testing/</link>
		<comments>http://domgreen.com/2010/02/07/pumping-iron-ruby-net-testing/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 23:03:11 +0000</pubDate>
		<dc:creator>domgreen</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[IronRuby]]></category>
		<category><![CDATA[RubyMine]]></category>
		<category><![CDATA[Test]]></category>

		<guid isPermaLink="false">http://domgreen.com/2010/02/07/pumping-iron-ruby-net-testing/</guid>
		<description><![CDATA[After being inspired by Ben Hall’s “Testing C# and ASP.NET using Ruby” session at DDD8, I decided to give Ruby testing a go. 
This article shows the basics of how to get started, for the added cool-ness of BDD and Cucumber check out Bens slides from the talk.
What do I need?
IronRuby
IronRuby is Ruby for the [...]]]></description>
			<content:encoded><![CDATA[<p>After being inspired by <a href="http://blog.benhall.me.uk/" target="_blank">Ben Hall’s</a> “Testing C# and ASP.NET using Ruby” <a href="http://www.developerdeveloperdeveloper.com/ddd8/ViewSession.aspx?SessionID=439" target="_blank">session</a> at <a href="http://www.developerdeveloperdeveloper.com/ddd8/" target="_blank">DDD8</a>, I decided to give Ruby testing a go. </p>
<p>This article shows the basics of how to get started, for the added cool-ness of BDD and Cucumber check out Bens <a href="http://blog.benhall.me.uk/2010/02/ddd8-albacore-and-testing-aspnet-web.html" target="_blank">slides from the talk</a>.</p>
<h2>What do I need?</h2>
<h3>IronRuby</h3>
<p><a href="http://www.ironruby.net/" target="_blank">IronRuby</a> is Ruby for the .NET platform build on the DLR which allows you to use the Ruby language to interact with your existing .NET code.</p>
<h3>RubyMine</h3>
<p><a href="http://www.jetbrains.com/ruby/index.html" target="_blank">RubyMine</a> is a very cool IDE for developing Ruby applications that Ben used in his DDD demo, there are many other Ruby IDEs available including <a href="http://macromates.com/" target="_blank">TextMate</a> for the Mac and <a href="http://www.radrails.org/" target="_blank">RadRails</a> for Eclipse.</p>
<p>Now that we have all the none .NET pre-reqs downloaded and installed we can get to business.</p>
<h2>Create Application Under Test</h2>
<p>First things first, lets set up a skeleton application in Visual Studio that we will test. Here I just created a blank class library called IronRubyMine with the Person class within it. Build this code so that we have a dll in the bin/Debug directory.</p>
<pre class="brush: c-sharp" name="code">namespace IronRubyMine
{
    public class Person
    {
    }
}</pre>
<h2>Setting up RubyMine for IronRuby</h2>
<p>Within RubyMine I have then created a project in the same directory as my sln file for C# application, this will generate all your Ruby classes in the same location as your .NET app.</p>
<p>Once we have the Ruby solution we need to do a few tweaks to get it to work smoothly with .NET. Start off by adding the <a href="http://www.ironruby.net/Download" target="_blank">IronRuby SDK</a> for use with the project (File – Settings – Ruby SDK – Add SDK…) and browse to the location of your IronRuby install and the ir.exe file.</p>
<p><a href="http://domgreen.com/wp-content/uploads/2010/02/image1.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="IronRubyMine - Dom Green" border="0" alt="IronRubyMine - Dom Green" src="http://domgreen.com/wp-content/uploads/2010/02/image_thumb2.png" width="608" height="365" /></a> </p>
<p>Now RubyMine is using the IronRuby SDK we need to make another minor tweak to the Run/Debug configuration the files in the project. You will need to alter the Ruby Arguments to:</p>
<p><strong>-e STDOUT.sync=true;STDERR.sync=true;load($0)</strong></p>
<p><a href="http://domgreen.com/wp-content/uploads/2010/02/image2.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="IronRuby Configuration - Dom Green" border="0" alt="IronRuby Configuration - Dom Green" src="http://domgreen.com/wp-content/uploads/2010/02/image_thumb3.png" width="511" height="424" /></a> </p>
<p>There are a number of <a href="http://www.jetbrains.net/devnet/thread/281493" target="_blank">discussions</a> on the RubyMine forums how to best do this, but I have found that this alteration is the easiest and most straight forward way to get it all working. </p>
<h2>Red – Create Failing Test</h2>
<p>With our environments set up we create a simple test that fails before we write the code that we want and make the test pass.</p>
<pre class="brush: ruby" name="code">require &quot;test/unit&quot;
require &quot;IronRubyMine/bin/Debug/IronRubyMine.dll&quot;

class PersonTest &lt; Test::Unit::TestCase

  include IronRubyMine

  def test_create_person_called_dominic
    dominic = Person.new(&quot;Dominic&quot;)
    assert_not_nil(dominic)
  end
end</pre>
<p>The second line pulls in the .NET dll that we created in our app allowing IronRuby to call any classes and methods that we create in our C# code. This is then used further down to create a Person object.</p>
<p>On running this test we will get a red light as we haven&#8217;t yet implemented the C# code to go alongside the test.</p>
<p><a href="http://domgreen.com/wp-content/uploads/2010/02/image3.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="PersonFailedTest - Dom Green" border="0" alt="PersonFailedTest - Dom Green" src="http://domgreen.com/wp-content/uploads/2010/02/image_thumb4.png" width="392" height="186" /></a>&#160;</p>
<h2>Green – Make Tests Pass</h2>
<p>Now we can go back to Visual Studio and create a Person constructor that will take in a name, hopefully making our tests go green.</p>
<p><a href="http://domgreen.com/wp-content/uploads/2010/02/image4.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="PersonDotNetCode - Dom Green" border="0" alt="PersonDotNetCode - Dom Green" src="http://domgreen.com/wp-content/uploads/2010/02/image_thumb5.png" width="411" height="418" /></a> </p>
<p>Once we have the code in place, build the application to ensure that the dll is updated and our IronRuby code is using the latest implementation.</p>
<p>Now jump back into RubyMine and re-run the tests.</p>
<p><a href="http://domgreen.com/wp-content/uploads/2010/02/image5.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="PersonTestPass - Dom Green" border="0" alt="PersonTestPass - Dom Green" src="http://domgreen.com/wp-content/uploads/2010/02/image_thumb6.png" width="384" height="192" /></a>&#160;</p>
<h2>Refactor…</h2>
<p>You get the picture, with all our tests now passing we can do any refactoring needed and then go on to create more tests.</p>
<p>With this simple implementation in place we can build on this to implement more advanced techniques described in Bens presentation.</p>
]]></content:encoded>
			<wfw:commentRss>http://domgreen.com/2010/02/07/pumping-iron-ruby-net-testing/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Eye On Earth hits BBC News</title>
		<link>http://domgreen.com/2010/02/05/eye-on-earth-hits-bbc-news/</link>
		<comments>http://domgreen.com/2010/02/05/eye-on-earth-hits-bbc-news/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 19:20:57 +0000</pubDate>
		<dc:creator>domgreen</dc:creator>
				<category><![CDATA[EyeOnEarth]]></category>
		<category><![CDATA[EE]]></category>
		<category><![CDATA[Eye On Earth]]></category>
		<category><![CDATA[MCS UK]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://domgreen.com/2010/02/05/eye-on-earth-hits-bbc-news/</guid>
		<description><![CDATA[I am proud to say that a project I recently worked on has just been featured on the BBC News website.

Eye On Earth is a stunning Silverlight application build on Windows Azure, developed by Microsoft MCS UK and the European Environmental Agency.
Check out the full article here.
Find out more about Eye on Earth here.
]]></description>
			<content:encoded><![CDATA[<p>I am proud to say that a project I recently worked on has just been featured on the <a href="http://news.bbc.co.uk/1/hi/technology/8499059.stm" target="_blank">BBC News website</a>.</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://domgreen.com/wp-content/uploads/2010/02/image_thumb1.png" width="583" height="454" /></p>
<p><a href="http://eyeonearth.cloudapp.net/" target="_blank">Eye On Earth</a> is a stunning Silverlight application build on Windows Azure, developed by <a href="http://blogs.msdn.com/mcsuksoldev/default.aspx" target="_blank">Microsoft MCS UK</a> and the European Environmental Agency.</p>
<p>Check out the full article <a href="http://news.bbc.co.uk/1/hi/technology/8499059.stm" target="_blank">here</a>.</p>
<p>Find out more about Eye on Earth <a href="http://domgreen.com/2009/11/23/keeping-an-eye-on-the-earth/" target="_blank">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://domgreen.com/2010/02/05/eye-on-earth-hits-bbc-news/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DDDScotland &#8211; Vote for my session</title>
		<link>http://domgreen.com/2010/02/04/dddscotland-vote-for-my-session/</link>
		<comments>http://domgreen.com/2010/02/04/dddscotland-vote-for-my-session/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 10:28:36 +0000</pubDate>
		<dc:creator>domgreen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://domgreen.com/2010/02/04/dddscotland-vote-for-my-session/</guid>
		<description><![CDATA[ 

Vote for my session
Voting for sessions at DDD Scotland is open and this is a plea that you all go and vote for my session at the event (doesn’t even matter if your attending – just vote for me).
I will be doing a session on what I have learned about Azure and cloud computing [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://domgreen.com/wp-content/uploads/2010/02/image.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="DDDCloud - Dom Green" border="0" alt="DDDCloud - Dominic Green" src="http://domgreen.com/wp-content/uploads/2010/02/image_thumb.png" width="617" height="157" /></a> </p>
<h2></h2>
<h2>Vote for my session</h2>
<p>Voting for sessions at <a href="http://www.developerdeveloperdeveloper.com/scotland2010/Default.aspx" target="_blank">DDD Scotland</a> is open and this is a plea that you all go and <a href="http://www.developerdeveloperdeveloper.com/scotland2010/Users/VoteForSessions.aspx" target="_blank">vote for my session</a> at the event (doesn’t even matter if your attending – just vote for me).</p>
<p>I will be doing a session on what I have learned about Azure and cloud computing over the past year I have been developing on the platform. This knowledge is expanding daily so I have a lot to share, including best practice, deployment and some nifty “cloud patterns”.</p>
<h2></h2>
<h3></h3>
</p>
<h2>Cloud Coffee – A Year Developing on Windows Azure</h2>
<p>&#160;</p>
<p><a href="http://domgreen.com/wp-content/uploads/2010/02/small4.jpg"><img style="border-right-width: 0px; margin: 0px 15px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DG - Dom Green" border="0" alt="DG - Dominic Green" align="left" src="http://domgreen.com/wp-content/uploads/2010/02/small4_thumb.jpg" width="124" height="133" /></a>Cloud Coffee is the latest in a wide range of coffee shops on the high-street. What makes Cloud Coffee different is that they use latest “cloud” principles, keeping costs low by using utility based staffing, maintaining a decoupled working environment and ensuring good scalability to meet customer demand. Cloud Coffee has very quickly risen to high street fame. </p>
<p>This analogy will help you understand how things work in the cloud, specifically Windows Azure. During this talk Dominic will elaborate and expand upon on the concept of ‘Cloud Coffee’, sharing some of the lessons he learned, best practices and patterns that have emerged whilst developing one of the first production applications for the Windows Azure Platform.</p>
</p>
</p>
</p>
<p>Why are you still on this page?! <a href="http://www.developerdeveloperdeveloper.com/scotland2010/Users/VoteForSessions.aspx" target="_blank">Go vote</a>. <img src='http://domgreen.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://domgreen.com/2010/02/04/dddscotland-vote-for-my-session/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
