<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>BoxBinary Blog</title>
	
	<link>http://boxbinary.com</link>
	<description>personal blog of Alex Norcliffe</description>
	<lastBuildDate>Fri, 21 Oct 2011 17:18:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/BoxbinaryBlog" /><feedburner:info uri="boxbinaryblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>How to run a unit test in Medium Trust with NUnit–Part three: Umbraco.Framework.Testing</title>
		<link>http://feedproxy.google.com/~r/BoxbinaryBlog/~3/LPUmnyykFxE/</link>
		<comments>http://boxbinary.com/2011/10/how-to-run-a-unit-test-in-medium-trust-with-nunitpart-three-umbraco-framework-testing/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 15:06:34 +0000</pubDate>
		<dc:creator>Alex Norcliffe</dc:creator>
				<category><![CDATA[Coding Tips]]></category>
		<category><![CDATA[Umbraco]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Medium Trust]]></category>
		<category><![CDATA[NUnit]]></category>
		<category><![CDATA[Umbraco 5]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://boxbinary.com/?p=382</guid>
		<description><![CDATA[
	
		Tweet
	
	
			
				
			
		
&#60; Part One: Medium Trust primer
&#60; Part Two: Devising a solution
Welcome to part three! We&#8217;re going to get some work done on unit testing in Medium Trust. If you want a primer, check out the previous posts. If you came here from there, well hello there recursive sentence!
First things first: the code for the below [...]]]></description>
			<content:encoded><![CDATA[
	<div style="float:right; margin-left:10px">
		<a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" data-text="How to run a unit test in Medium Trust with NUnit&ndash;Part three: Umbraco.Framework.Testing - BoxBinary Blog" data-url="http://boxbinary.com/2011/10/how-to-run-a-unit-test-in-medium-trust-with-nunitpart-three-umbraco-framework-testing/"  data-via="alex_norcliffe">Tweet</a>
	</div>
	<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fboxbinary.com%2F2011%2F10%2Fhow-to-run-a-unit-test-in-medium-trust-with-nunitpart-three-umbraco-framework-testing%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fboxbinary.com%2F2011%2F10%2Fhow-to-run-a-unit-test-in-medium-trust-with-nunitpart-three-umbraco-framework-testing%2F&amp;source=alex_norcliffe&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://boxbinary.com/2011/10/unit-testing-medium-trust-using-nunit-umbraco-5-and-a-dose-of-magic-fancypants-part-one/">&lt; Part One: Medium Trust primer</a></p>
<p><a title="How to run a unit test in a “Medium Trust” context – Part two" href="http://boxbinary.com/2011/10/how-to-run-a-unit-test-in-medium-trust-part-two/">&lt; Part Two: Devising a solution</a></p>
<p>Welcome to part three! We&#8217;re going to get some work done on unit testing in Medium Trust. If you want a primer, check out the previous posts. If you came here from there, well hello there recursive sentence!</p>
<p>First things first: the code for the below is all in MIT-licensed <a href="http://umbraco.codeplex.com" target="_blank">Umbraco 5</a>! As you may / may not know, Umbraco 5 will be shipping both a set of Framework assemblies in addition to the core CMS when we release later this year. You can use it all for free, isn&#8217;t that grand?</p>
<p>For today, here’s <a title="Umbraco.Framework.Testing" href="http://dl.dropbox.com/u/4151802/Code/Umbraco.Framework.Testing%20-%20Debug.zip"><strong>a big unmissable link to <span style="background-color: #ffff99;">download a preview zip of Umbraco.Framework.Testing</span></strong></a>. It&#8217;s MIT licensed and you can use this in your tests real easy. I’ve put it on my DropBox for now – I want to get this post out quick and <span style="text-decoration: line-through;">go to the pub!</span> into your hands! In an upcoming release we’ll make Framework &amp; CMS downloads available as individual zips on CodePlex.</p>
<p>A quick note: I only came up with this last week, so (ironically) Umbraco 5 does not yet support Medium Trust as of <a href="http://umbraco.com/follow-us/blog-archive/2011/10/21/umbraco-5-alpha-3-is-out-today.aspx" target="_blank">today&#8217;s Alpha 3</a> – but the point is, we’ll now be able to use this technique to <strong>test</strong> our code in partial trust and <strong>make it happen reliably, and soon</strong>.</p>
<blockquote><p>If you’d like to download all of the Umbraco codebase and see what other goodies are in our Framework and CMS, visit the repository at <a href="http://umbraco.codeplex.com/SourceControl/list/changesets">http://umbraco.codeplex.com/SourceControl/list/changesets</a>.</p>
</blockquote>
<h2>To use this in your NUnit tests</h2>
<p>I’ll walk through the code in another post, but if you want to jump straight into using this, download the zip, add a reference to Umbraco.Framework and Umbraco.Framework.Testing and you’re set.</p>
<blockquote><p>Note: Because your tests will call NUnit’s Assert methods, NUnit itself needs to be able to run in partial trust. The zip contains a rebuild of NUnit.Framework.dll &#8211; <strong>the only change from 2.5.10.11092 </strong>is adding the AllowPartiallTrustedCallersAttribute to their assembly. Don’t believe me? Check out my fork at <a href="https://bitbucket.org/boxbinary/nunit-2.5x">https://bitbucket.org/boxbinary/nunit-2.5x</a></p>
<p>Your test runner does not need to be rebuilt, so this is still compatible with NUnit’s runner, ReSharper’s runner, TeamCity etc.; only your own code referencing the NUnit Framework needs to reference the assembly.</p>
</blockquote>
<p>Once you’ve added the references, let’s make a new fixture called MyCoolFixture. Set the fixture so it inherits from AbstractPartialTrustFixture, like so:</p>
<div id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:65479e78-dca6-4531-b4af-1cb7fce1a3b9" class="wlWriterEditableSmartContent" style="margin: 0px; display: inline; float: none; padding: 0px;">
<div class="le-pavsc-container">
<div style="background: #ddd; max-height: 400px; overflow: auto;">
<ol style="background: #201629; margin: 0 0 0 2.5em; padding: 0 0 0 5px; white-space: nowrap;">
<li><span style="color: #739ad4;">using</span><span style="color: #e0d3cd;"> NUnit.Framework;</span></li>
<li><span style="color: #739ad4;">using</span><span style="color: #e0d3cd;"> Umbraco.Framework.Testing.PartialTrust;</span></li>
<li> </li>
<li><span style="color: #739ad4;">namespace</span><span style="color: #e0d3cd;"> PartialTrustTest</span></li>
<li><span style="color: #e0d3cd;">{</span></li>
<li> <span style="color: #e0d3cd;">[</span><span style="color: #928eb9;">TestFixture</span><span style="color: #e0d3cd;">]</span></li>
<li> <span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">public</span><span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">class</span><span style="color: #e0d3cd;"> </span><span style="color: #928eb9;">MyCoolFixture</span><span style="color: #e0d3cd;"> : </span><span style="color: #928eb9;">AbstractPartialTrustFixture</span><span style="color: #e0d3cd;">&lt;</span><span style="color: #928eb9;">MyCoolFixture</span><span style="color: #e0d3cd;">&gt;</span></li>
<li> <span style="color: #e0d3cd;">{</span></li>
<li> <span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">public</span><span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">override</span><span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">void</span><span style="color: #e0d3cd;"> TestSetup()</span></li>
<li> <span style="color: #e0d3cd;">{</span></li>
<li> <span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">return</span><span style="color: #e0d3cd;">;</span></li>
<li> <span style="color: #e0d3cd;">}</span></li>
<li> </li>
<li> <span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">public</span><span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">override</span><span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">void</span><span style="color: #e0d3cd;"> TestTearDown()</span></li>
<li> <span style="color: #e0d3cd;">{</span></li>
<li> <span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">return</span><span style="color: #e0d3cd;">;</span></li>
<li> <span style="color: #e0d3cd;">}</span></li>
<li> <span style="color: #e0d3cd;">}</span></li>
<li><span style="color: #e0d3cd;">}</span></li>
</ol>
</div>
<p><br class="spacer_" /></p>
</div>
<p><br class="spacer_" /></p>
</div>
<p>Those TestSetup / TestTearDowns are there for you to put relevant code or just return if nothing’s needed.</p>
<p>Next let’s add a test or two:</p>
<div id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:87d297d5-5b41-453f-a8dc-ee96c8347f81" class="wlWriterEditableSmartContent" style="margin: 0px; display: inline; float: none; padding: 0px;">
<div class="le-pavsc-container">
<div style="background: #ddd; max-height: 400px; overflow: auto;">
<ol style="background: #201629; margin: 0 0 0 2.5em; padding: 0 0 0 5px; white-space: nowrap;">
<li><span style="color: #739ad4;">using</span><span style="color: #e0d3cd;"> System;</span></li>
<li><span style="color: #739ad4;">using</span><span style="color: #e0d3cd;"> System.IO;</span></li>
<li><span style="color: #739ad4;">using</span><span style="color: #e0d3cd;"> System.Runtime.Serialization.Formatters.Binary;</span></li>
<li><span style="color: #739ad4;">using</span><span style="color: #e0d3cd;"> NUnit.Framework;</span></li>
<li><span style="color: #739ad4;">using</span><span style="color: #e0d3cd;"> Umbraco.Framework.Testing.PartialTrust;</span></li>
<li> </li>
<li><span style="color: #739ad4;">namespace</span><span style="color: #e0d3cd;"> PartialTrustTest</span></li>
<li><span style="color: #e0d3cd;">{</span></li>
<li> <span style="color: #e0d3cd;">[</span><span style="color: #928eb9;">TestFixture</span><span style="color: #e0d3cd;">]</span></li>
<li> <span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">public</span><span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">class</span><span style="color: #e0d3cd;"> </span><span style="color: #928eb9;">MyCoolFixture</span><span style="color: #e0d3cd;"> : </span><span style="color: #928eb9;">AbstractPartialTrustFixture</span><span style="color: #e0d3cd;">&lt;</span><span style="color: #928eb9;">MyCoolFixture</span><span style="color: #e0d3cd;">&gt;</span></li>
<li> <span style="color: #e0d3cd;">{</span></li>
<li> <span style="color: #e0d3cd;">[</span><span style="color: #928eb9;">Test</span><span style="color: #e0d3cd;">]</span></li>
<li> <span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">public</span><span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">void</span><span style="color: #e0d3cd;"> ThisShouldWork()</span></li>
<li> <span style="color: #e0d3cd;">{</span></li>
<li> <span style="color: #e0d3cd;"> </span><span style="color: #a5806f;">// Arrange, Act</span></li>
<li> <span style="color: #928eb9;">Console</span><span style="color: #e0d3cd;">.WriteLine(</span><span style="color: #73bad4;">&#8220;Hiyaaa&#8221;</span><span style="color: #e0d3cd;">);</span></li>
<li> </li>
<li> <span style="color: #a5806f;">// Assert</span></li>
<li> <span style="color: #928eb9;">Assert</span><span style="color: #e0d3cd;">.Pass(</span><span style="color: #73bad4;">&#8220;Yeah this is a bit pedantic&#8221;</span><span style="color: #e0d3cd;">);</span></li>
<li> <span style="color: #e0d3cd;">}</span></li>
<li> </li>
<li> <span style="color: #e0d3cd;">[</span><span style="color: #928eb9;">Test</span><span style="color: #e0d3cd;">]</span></li>
<li> <span style="color: #739ad4;">public</span><span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">void</span><span style="color: #e0d3cd;"> ThisShouldNotWork()</span></li>
<li> <span style="color: #e0d3cd;">{</span></li>
<li> <span style="color: #a5806f;">// Arrange</span></li>
<li> <span style="color: #739ad4;">var</span><span style="color: #e0d3cd;"> myObject = </span><span style="color: #2b91af;">DateTimeOffset</span><span style="color: #e0d3cd;">.Now;</span></li>
<li> </li>
<li> <span style="color: #a5806f;">// Act</span></li>
<li> <span style="color: #739ad4;">var</span><span style="color: #e0d3cd;"> myClone = Clone(myObject);</span></li>
<li> </li>
<li> <span style="color: #a5806f;">// Assert</span></li>
<li> <span style="color: #928eb9;">Assert</span><span style="color: #e0d3cd;">.Fail(</span><span style="color: #73bad4;">&#8220;Wait, why did we get here?&#8221;</span><span style="color: #e0d3cd;">);</span></li>
<li> <span style="color: #e0d3cd;">}</span></li>
<li> </li>
<li> <span style="color: #928eb9;">///</span><span style="color: #a5806f;"> </span><span style="color: #928eb9;"> </span></li>
<li> <span style="color: #928eb9;">///</span><span style="color: #a5806f;"> Makes a copy from the object.</span></li>
<li> <span style="color: #928eb9;">///</span><span style="color: #a5806f;"> Doesn&#8217;t copy the reference memory, only data.</span></li>
<li> <span style="color: #928eb9;">///</span><span style="color: #a5806f;"> </span><span style="color: #928eb9;"> </span></li>
<li> <span style="color: #928eb9;">///</span><span style="color: #a5806f;"> </span><span style="color: #928eb9;"> </span><span style="color: #a5806f;">Type of the return object.</span><span style="color: #928eb9;"> </span></li>
<li> <span style="color: #928eb9;">///</span><span style="color: #a5806f;"> </span><span style="color: #928eb9;"> </span><span style="color: #a5806f;">Object to be copied.</span><span style="color: #928eb9;"> </span></li>
<li> <span style="color: #928eb9;">///</span><span style="color: #a5806f;"> </span><span style="color: #928eb9;"> </span><span style="color: #a5806f;">Returns the copied object.</span><span style="color: #928eb9;"> </span></li>
<li> <span style="color: #739ad4;">public</span><span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">static</span><span style="color: #e0d3cd;"> T Clone(T item)</span></li>
<li> <span style="color: #e0d3cd;">{</span></li>
<li> <span style="color: #739ad4;">if</span><span style="color: #e0d3cd;"> (item != </span><span style="color: #739ad4;">null</span><span style="color: #e0d3cd;">)</span></li>
<li> <span style="color: #e0d3cd;">{</span></li>
<li> <span style="color: #739ad4;">var</span><span style="color: #e0d3cd;"> formatter = </span><span style="color: #739ad4;">new</span><span style="color: #e0d3cd;"> </span><span style="color: #928eb9;">BinaryFormatter</span><span style="color: #e0d3cd;">();</span></li>
<li> <span style="color: #739ad4;">var</span><span style="color: #e0d3cd;"> stream = </span><span style="color: #739ad4;">new</span><span style="color: #e0d3cd;"> </span><span style="color: #928eb9;">MemoryStream</span><span style="color: #e0d3cd;">();</span></li>
<li> </li>
<li> <span style="color: #e0d3cd;">formatter.Serialize(stream, item);</span></li>
<li> <span style="color: #e0d3cd;">stream.Seek(</span><span style="color: #73c1d4;">0</span><span style="color: #e0d3cd;">, </span><span style="color: #2b91af;">SeekOrigin</span><span style="color: #e0d3cd;">.Begin);</span></li>
<li> </li>
<li> <span style="color: #e0d3cd;">T result = (T)formatter.Deserialize(stream);</span></li>
<li> </li>
<li> <span style="color: #e0d3cd;">stream.Close();</span></li>
<li> </li>
<li> <span style="color: #739ad4;">return</span><span style="color: #e0d3cd;"> result;</span></li>
<li> <span style="color: #e0d3cd;">}</span></li>
<li> <span style="color: #739ad4;">else</span></li>
<li> <span style="color: #739ad4;">return</span><span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">default</span><span style="color: #e0d3cd;">(T);</span></li>
<li> <span style="color: #e0d3cd;">}</span></li>
<li> </li>
<li> <span style="color: #739ad4;">public</span><span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">override</span><span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">void</span><span style="color: #e0d3cd;"> TestSetup()</span></li>
<li> <span style="color: #e0d3cd;">{</span></li>
<li> <span style="color: #739ad4;">return</span><span style="color: #e0d3cd;">;</span></li>
<li> <span style="color: #e0d3cd;">}</span></li>
<li> </li>
<li> <span style="color: #739ad4;">public</span><span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">override</span><span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">void</span><span style="color: #e0d3cd;"> TestTearDown()</span></li>
<li> <span style="color: #e0d3cd;">{</span></li>
<li> <span style="color: #739ad4;">return</span><span style="color: #e0d3cd;">;</span></li>
<li> <span style="color: #e0d3cd;">}</span></li>
<li> <span style="color: #e0d3cd;">}</span></li>
<li><span style="color: #e0d3cd;">}</span></li>
</ol>
</div>
<p><br class="spacer_" /></p>
</div>
<p><br class="spacer_" /></p>
</div>
<p>Nothing crazy, just a simple thing which should work and a simple thing which should not.</p>
<p>What, pray tell, should not? Well, that there Clone method is a really handy, and extremely common extension method that uses binary serialization to give you an exact copy of an object. FluentNHibernate uses it, in fact. But BinaryFormatter tries to set private members, and as we now know you can’t do that in Medium Trust!</p>
<p>So in theory that second test should fail. Let’s run that to see if all my promises are true:</p>
<p><a href="http://boxbinary.com/wp-content/uploads/2011/10/image2.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://boxbinary.com/wp-content/uploads/2011/10/image_thumb2.png" border="0" alt="image" width="550" height="309" /></a></p>
<p>Check .. <strong>that .. OUT!</strong></p>
<blockquote><p>SetUp : Umbraco.Framework.Testing.PartialTrust.PartialTrustTestException : Test ThisShouldNotWork <strong>fails in a partial trust environment</strong>, due to: Request for the permission of type &#8216;System.Security.Permissions.SecurityPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&#8242; failed.       <br />
 &#8212;-&gt; System.Security.SecurityException : Request for the permission of type &#8216;System.Security.Permissions.SecurityPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&#8242; failed.</p>
</blockquote>
<p>So let’s fix the test so <span style="background-color: #ffff00;">TestShouldFail()</span> appropriately asserts that … it should fail:</p>
<div id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:e90a4142-57cf-4c7b-baa9-e0bf19394c24" class="wlWriterEditableSmartContent" style="margin: 0px; display: inline; float: none; padding: 0px;">
<div class="le-pavsc-container">
<div style="background: #ddd; max-height: 400px; overflow: auto;">
<ol style="background: #201629; margin: 0 0 0 2.5em; padding: 0 0 0 5px; white-space: nowrap;">
<li><span style="color: #739ad4;">using</span><span style="color: #e0d3cd;"> System;</span></li>
<li><span style="color: #739ad4;">using</span><span style="color: #e0d3cd;"> System.IO;</span></li>
<li><span style="color: #739ad4;">using</span><span style="color: #e0d3cd;"> System.Runtime.Serialization.Formatters.Binary;</span></li>
<li><span style="color: #739ad4;">using</span><span style="color: #e0d3cd;"> System.Security;</span></li>
<li><span style="color: #739ad4;">using</span><span style="color: #e0d3cd;"> NUnit.Framework;</span></li>
<li><span style="color: #739ad4;">using</span><span style="color: #e0d3cd;"> Umbraco.Framework.Testing.PartialTrust;</span></li>
<li> </li>
<li><span style="color: #739ad4;">namespace</span><span style="color: #e0d3cd;"> PartialTrustTest</span></li>
<li><span style="color: #e0d3cd;">{</span></li>
<li> <span style="color: #e0d3cd;">[</span><span style="color: #928eb9;">TestFixture</span><span style="color: #e0d3cd;">]</span></li>
<li> <span style="color: #739ad4;">public</span><span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">class</span><span style="color: #e0d3cd;"> </span><span style="color: #928eb9;">MyCoolFixture</span><span style="color: #e0d3cd;"> : </span><span style="color: #928eb9;">AbstractPartialTrustFixture</span><span style="color: #e0d3cd;">&lt;</span><span style="color: #928eb9;">MyCoolFixture</span><span style="color: #e0d3cd;">&gt;</span></li>
<li> <span style="color: #e0d3cd;">{</span></li>
<li> <span style="color: #e0d3cd;">[</span><span style="color: #928eb9;">Test</span><span style="color: #e0d3cd;">]</span></li>
<li> <span style="color: #739ad4;">public</span><span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">void</span><span style="color: #e0d3cd;"> ThisShouldWork()</span></li>
<li> <span style="color: #e0d3cd;">{</span></li>
<li> <span style="color: #a5806f;">// Arrange, Act</span></li>
<li> <span style="color: #928eb9;">Console</span><span style="color: #e0d3cd;">.WriteLine(</span><span style="color: #73bad4;">&#8220;Hiyaaa&#8221;</span><span style="color: #e0d3cd;">);</span></li>
<li> </li>
<li> <span style="color: #a5806f;">// Assert</span></li>
<li> <span style="color: #928eb9;">Assert</span><span style="color: #e0d3cd;">.Pass(</span><span style="color: #73bad4;">&#8220;Yeah this is a bit pedantic&#8221;</span><span style="color: #e0d3cd;">);</span></li>
<li> <span style="color: #e0d3cd;">}</span></li>
<li> </li>
<li> <span style="color: #e0d3cd;">[</span><span style="color: #928eb9;">Test</span><span style="color: #e0d3cd;">]</span></li>
<li> <span style="color: #739ad4;">public</span><span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">void</span><span style="color: #e0d3cd;"> ThisShouldNotWork()</span></li>
<li> <span style="color: #e0d3cd;">{</span></li>
<li> <span style="color: #a5806f;">// Arrange</span></li>
<li> <span style="color: #739ad4;">var</span><span style="color: #e0d3cd;"> myObject = </span><span style="color: #2b91af;">DateTimeOffset</span><span style="color: #e0d3cd;">.Now;</span></li>
<li> </li>
<li> <span style="color: #a5806f;">// Act &amp; Assert</span></li>
<li> <span style="color: #928eb9;">Assert</span><span style="color: #e0d3cd;">.Throws&lt;</span><span style="color: #928eb9;">SecurityException</span><span style="color: #e0d3cd;">&gt;(() =&gt; Clone(myObject));</span></li>
<li> <span style="color: #e0d3cd;">}</span></li>
<li> </li>
<li> <span style="color: #928eb9;">///</span><span style="color: #a5806f;"> </span><span style="color: #928eb9;"> </span></li>
<li> <span style="color: #928eb9;">///</span><span style="color: #a5806f;"> Makes a copy from the object.</span></li>
<li> <span style="color: #928eb9;">///</span><span style="color: #a5806f;"> Doesn&#8217;t copy the reference memory, only data.</span></li>
<li> <span style="color: #928eb9;">///</span><span style="color: #a5806f;"> </span><span style="color: #928eb9;"> </span></li>
<li> <span style="color: #928eb9;">///</span><span style="color: #a5806f;"> </span><span style="color: #928eb9;"> </span><span style="color: #a5806f;">Type of the return object.</span><span style="color: #928eb9;"> </span></li>
<li> <span style="color: #928eb9;">///</span><span style="color: #a5806f;"> </span><span style="color: #928eb9;"> </span><span style="color: #a5806f;">Object to be copied.</span><span style="color: #928eb9;"> </span></li>
<li> <span style="color: #928eb9;">///</span><span style="color: #a5806f;"> </span><span style="color: #928eb9;"> </span><span style="color: #a5806f;">Returns the copied object.</span></li>
<li> <span style="color: #739ad4;">public</span><span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">static</span><span style="color: #e0d3cd;"> T Clone(T item)</span></li>
<li> <span style="color: #e0d3cd;">{</span></li>
<li> <span style="color: #739ad4;">if</span><span style="color: #e0d3cd;"> (item != </span><span style="color: #739ad4;">null</span><span style="color: #e0d3cd;">)</span></li>
<li> <span style="color: #e0d3cd;">{</span></li>
<li> <span style="color: #739ad4;">var</span><span style="color: #e0d3cd;"> formatter = </span><span style="color: #739ad4;">new</span><span style="color: #e0d3cd;"> </span><span style="color: #928eb9;">BinaryFormatter</span><span style="color: #e0d3cd;">();</span></li>
<li> <span style="color: #739ad4;">var</span><span style="color: #e0d3cd;"> stream = </span><span style="color: #739ad4;">new</span><span style="color: #e0d3cd;"> </span><span style="color: #928eb9;">MemoryStream</span><span style="color: #e0d3cd;">();</span></li>
<li> </li>
<li> <span style="color: #e0d3cd;">formatter.Serialize(stream, item);</span></li>
<li> <span style="color: #e0d3cd;">stream.Seek(</span><span style="color: #73c1d4;">0</span><span style="color: #e0d3cd;">, </span><span style="color: #2b91af;">SeekOrigin</span><span style="color: #e0d3cd;">.Begin);</span></li>
<li> </li>
<li> <span style="color: #e0d3cd;">T result = (T)formatter.Deserialize(stream);</span></li>
<li> </li>
<li> <span style="color: #e0d3cd;">stream.Close();</span></li>
<li> </li>
<li> <span style="color: #739ad4;">return</span><span style="color: #e0d3cd;"> result;</span></li>
<li> <span style="color: #e0d3cd;">}</span></li>
<li> <span style="color: #739ad4;">else</span></li>
<li> <span style="color: #739ad4;">return</span><span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">default</span><span style="color: #e0d3cd;">(T);</span></li>
<li> <span style="color: #e0d3cd;">}</span></li>
<li> </li>
<li> <span style="color: #739ad4;">public</span><span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">override</span><span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">void</span><span style="color: #e0d3cd;"> TestSetup()</span></li>
<li> <span style="color: #e0d3cd;">{</span></li>
<li> <span style="color: #739ad4;">return</span><span style="color: #e0d3cd;">;</span></li>
<li> <span style="color: #e0d3cd;">}</span></li>
<li> </li>
<li> <span style="color: #739ad4;">public</span><span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">override</span><span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">void</span><span style="color: #e0d3cd;"> TestTearDown()</span></li>
<li> <span style="color: #e0d3cd;">{</span></li>
<li> <span style="color: #739ad4;">return</span><span style="color: #e0d3cd;">;</span></li>
<li> <span style="color: #e0d3cd;">}</span></li>
<li> <span style="color: #e0d3cd;">}</span></li>
<li><span style="color: #e0d3cd;">}</span></li>
</ol>
</div>
<p><br class="spacer_" /></p>
</div>
<p><br class="spacer_" /></p>
</div>
<p>And run it:</p>
<p><a href="http://boxbinary.com/wp-content/uploads/2011/10/image3.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" src="http://boxbinary.com/wp-content/uploads/2011/10/image_thumb3.png" border="0" alt="image" width="550" height="69" /></a></p>
<p>Woo!</p>
<h2>But what if I want some tests to literally only test something in full-trust?</h2>
<p>Well, you can of course have full-trust tests in a separate fixture. OR, you could decorate the test with the [TestOnlyInFullTrust] attribute I’ve added to our library. I’ll change the test again to demonstrate:</p>
<div id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:463e647c-e02b-4aec-8257-c7d14e1db6bb" class="wlWriterEditableSmartContent" style="margin: 0px; display: inline; float: none; padding: 0px;">
<div class="le-pavsc-container">
<div style="background: #ddd; max-height: 400px; overflow: auto;">
<ol style="background: #201629; margin: 0 0 0 2.5em; padding: 0 0 0 5px; white-space: nowrap;">
<li><span style="color: #e0d3cd;">[</span><span style="color: #928eb9;">Test</span><span style="color: #e0d3cd;">]</span></li>
<li><span style="color: #739ad4;">public</span><span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">void</span><span style="color: #e0d3cd;"> ThisShouldNotWorkInFullTrust()</span></li>
<li><span style="color: #e0d3cd;">{</span></li>
<li> <span style="color: #a5806f;">// Arrange</span></li>
<li> <span style="color: #739ad4;">var</span><span style="color: #e0d3cd;"> myObject = </span><span style="color: #2b91af;">DateTimeOffset</span><span style="color: #e0d3cd;">.Now;</span></li>
<li> </li>
<li> <span style="color: #a5806f;">// Act &amp; Assert</span></li>
<li> <span style="color: #928eb9;">Assert</span><span style="color: #e0d3cd;">.Throws&lt;</span><span style="color: #928eb9;">SecurityException</span><span style="color: #e0d3cd;">&gt;(() =&gt; Clone(myObject));</span></li>
<li><span style="color: #e0d3cd;">}</span></li>
<li> </li>
<li><span style="color: #e0d3cd;">[</span><span style="color: #928eb9;">Test</span><span style="color: #e0d3cd;">]</span></li>
<li><span style="color: #e0d3cd;">[</span><span style="color: #928eb9;">TestOnlyInFullTrust</span><span style="color: #e0d3cd;">]</span></li>
<li><span style="color: #739ad4;">public</span><span style="color: #e0d3cd;"> </span><span style="color: #739ad4;">void</span><span style="color: #e0d3cd;"> ThisShouldWorkOnlyInFullTrust()</span></li>
<li><span style="color: #e0d3cd;">{</span></li>
<li> <span style="color: #a5806f;">// Arrange</span></li>
<li> <span style="color: #739ad4;">var</span><span style="color: #e0d3cd;"> myObject = </span><span style="color: #2b91af;">DateTimeOffset</span><span style="color: #e0d3cd;">.Now;</span></li>
<li> </li>
<li> <span style="color: #a5806f;">// Act &amp; impicitly Assert</span></li>
<li> <span style="color: #e0d3cd;">Clone(myObject);</span></li>
<li><span style="color: #e0d3cd;">}</span></li>
</ol>
</div>
<p><br class="spacer_" /></p>
</div>
<p><br class="spacer_" /></p>
</div>
<p>And run:</p>
<p><a href="http://boxbinary.com/wp-content/uploads/2011/10/image4.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://boxbinary.com/wp-content/uploads/2011/10/image_thumb4.png" border="0" alt="image" width="550" height="87" /></a></p>
<p>Sweet!</p>
<p>So, there you have it. <strong>Easy partial-trust testing by inheriting from one base class.</strong></p>
<p>In the next post – which may be next week, at this rate – I’ll walk through the code and explain how it works, for example if you’d like not to inherit from another class and just want to spin up an individual test yourself in a partial trust context individually.</p>
<p>We can also look into making this work with other testing frameworks, if you’re really nice.</p>
<p>Hope this helps you; let me know if so!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=LPUmnyykFxE:vizZfm1RfQQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=LPUmnyykFxE:vizZfm1RfQQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=LPUmnyykFxE:vizZfm1RfQQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=LPUmnyykFxE:vizZfm1RfQQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=LPUmnyykFxE:vizZfm1RfQQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=LPUmnyykFxE:vizZfm1RfQQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=LPUmnyykFxE:vizZfm1RfQQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=LPUmnyykFxE:vizZfm1RfQQ:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BoxbinaryBlog/~4/LPUmnyykFxE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://boxbinary.com/2011/10/how-to-run-a-unit-test-in-medium-trust-with-nunitpart-three-umbraco-framework-testing/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://boxbinary.com/2011/10/how-to-run-a-unit-test-in-medium-trust-with-nunitpart-three-umbraco-framework-testing/</feedburner:origLink></item>
		<item>
		<title>How to run a unit test in a “Medium Trust” context – Part two</title>
		<link>http://feedproxy.google.com/~r/BoxbinaryBlog/~3/LTzQSoGtot8/</link>
		<comments>http://boxbinary.com/2011/10/how-to-run-a-unit-test-in-medium-trust-part-two/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 13:21:29 +0000</pubDate>
		<dc:creator>Alex Norcliffe</dc:creator>
				<category><![CDATA[Coding Tips]]></category>
		<category><![CDATA[Umbraco]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Medium Trust]]></category>
		<category><![CDATA[Umbraco 5]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://boxbinary.com/?p=366</guid>
		<description><![CDATA[
	
		Tweet
	
	
			
				
			
		
&#60; Part One: Medium Trust primer
&#62; Part Three: Download the code
Welcome to Part Two, wherein we will tackle the beast that is Medium Trust in our NUnit tests. If you just want a downloadable zip to get going, you can always jump to part three.
Based on what we learnt in the previous post around how [...]]]></description>
			<content:encoded><![CDATA[
	<div style="float:right; margin-left:10px">
		<a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" data-text="How to run a unit test in a &ldquo;Medium Trust&rdquo; context &ndash; Part two - BoxBinary Blog" data-url="http://boxbinary.com/2011/10/how-to-run-a-unit-test-in-medium-trust-part-two/"  data-via="alex_norcliffe">Tweet</a>
	</div>
	<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fboxbinary.com%2F2011%2F10%2Fhow-to-run-a-unit-test-in-medium-trust-part-two%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fboxbinary.com%2F2011%2F10%2Fhow-to-run-a-unit-test-in-medium-trust-part-two%2F&amp;source=alex_norcliffe&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://boxbinary.com/2011/10/unit-testing-medium-trust-using-nunit-umbraco-5-and-a-dose-of-magic-fancypants-part-one/">&lt; Part One: Medium Trust primer</a></p>
<p><a title="How to run a unit test in Medium Trust with NUnit–Part three: Umbraco.Framework.Testing" href="http://boxbinary.com/2011/10/how-to-run-a-unit-test-in-medium-trust-with-nunitpart-three-umbraco-framework-testing">&gt; Part Three: Download the code</a></p>
<p>Welcome to Part Two, wherein we will tackle the beast that is Medium Trust in our NUnit tests. <a href="http://boxbinary.com/2011/10/how-to-run-a-unit-test-in-medium-trust-with-nunitpart-three-umbraco-framework-testing">If you just want a downloadable zip to get going, you can always jump to part three</a>.</p>
<p>Based on what we learnt in the previous post around how the permissions are stored in configuration, a simple option is open to us. The basic premise is that in our unit test, we’re going to spin up an AppDomain and pass in the same permissions from configuration that the ASP.Net hosting engine uses. We’re then going to run the test method in that partially-trusted AppDomain, rather than in the full-trust AppDomain of the test runner.</p>
<p><strong>Simples! </strong>The end. <strong>Bai!</strong></p>
<p>Well, not quite. First, some gotchas.</p>
<p>Spinning up another AppDomain is called “sandboxing” for a reason: they are totally separate, and any communication between AppDomains has to be done via .NET Remoting using serializable objects, just like using your own Remoting channel, WCF or a good ol’ SOAP web service on another machine. Can you spot the first gotcha yet?</p>
<h5>Gotcha 1: You can’t just use AppDomain.SetData to pass objects by value from your test to a Medium-Trust domain because it doesn’t have permissions to deserialize them fully.</h5>
<p>Makes sense when I put it like that, but it took me an hour of wasted time before I facepalmed and almost quit coding <strong>forever</strong>.</p>
<p>There aren’t ways around this. Passing an object to another AppDomain, whether it’s via the SetData and GetData methods, requires the object to either be serializable (if you want to pass it by value) or inherit from MarshalByRefObject so that you can deal with the object as a regular Remoting proxy to the other AppDomain.</p>
<p><strong>Part of the point</strong> of spinning up the other AppDomain is <em>precisely</em> to prevent certain code from running, you know, like serialization that can get/set private members.</p>
<p>Yeah, I wasn’t proud. A whole hour.</p>
<p>So the next idea was to use the power of MarshalByRefObject to instantiate something in the partially-trusted AppDomain, and control it from the original fully-trusted AppDomain of the test runner. This is pretty much how we’ll solve the problem, but wait:</p>
<h5>Gotcha 2: It’s tempting, but we can’t just make our entire test fixture inherit from MarshalByRefObject.</h5>
<p>Let’s agree that it would be a complete pain in the arse to have to replicate the nice, established features of a test runner. Agreed? OK, with that sorted: we can’t have our test fixture inherit from MarshalByRefObject to solve this problem.</p>
<p>We need the partially-trusted AppDomain to “own” the instance of the test, and run it there. If we’re going to try to use an existing test runner (NUnit’s, ReSharper’s, TeamCity’s, etc.) then our first point of entry into a test is when the fixture is already running.</p>
<h2>The solution workflow</h2>
<p>The concept I’ve arrived at is, as always once you’ve spent ages banging your head against a wall, quite simple in hindsight.</p>
<p>Here’s how the workflow will happen – again, this is just within a standard test runner:</p>
<ul>
<li>During fixture setup:
<ul>
<li>Our fixture will get set up by running code marked with the [FixtureSetUp] attribute </li>
<li>We’ll then create the partially-trusted AppDomain </li>
<li>We’ll tell that AppDomain to create a new instance of a simple marshalling class that can run a method for us when given a MethodInfo class. By calling AppDomain.CreateInstanceAndUnwrap(..), we’ll get back a Remoting proxy to that object so that we can control it from our original test runner. </li>
<li>These will both live as fields on the test fixture that we can access from each test. </li>
</ul>
</li>
<li>Before each test:
<ul>
<li>Out test setup code, still running in the full-trust AppDomain, will get run because it’s marked with the NUnit [SetUp] attribute </li>
<li>At this point, we’ll get the name of the current test from NUnit’s TestContext, and tell our simple marshalling class to do two things over in that partial trust AppDomain:
<ul>
<li>Run a TestSetup method, to make sure if it has “real” setup work to do, that’s still fine </li>
<li>Run the actual method. We get that by using Reflection in our full-trust AppDomain to grab the MethodInfo of the current test name from NUnit’s context. </li>
</ul>
</li>
<li>Our marshaller will then run the exact test method in the partial trust domain. </li>
<li>If the test fails, we can figure out why, and if it’s to do with permissions, <strong>BAM our time has been officially saved</strong> </li>
</ul>
</li>
</ul>
<p>“But wait!” I hear someone wail at the back, “By running the test in the SetUp part, you’re now going to run the test again in Full Trust!”</p>
<p>Well, I thought of that.</p>
<p>NUnit has a funny thing called a SuccessException. It’s how it guarantees that if you call Assert.Pass() in your test, the rest of the test will likely not execute – pretty much what you’d expect.</p>
<p>So, in our “management” set-up code, we’re going to intentionally throw a SuccessException. I took a look at the NUnit codebase to clarify, and sure enough that prevents the test from executing a second time.</p>
<h2>The code, where’s the code?</h2>
<p>Well, I thought I would just give you theory. Kidding! I’m hilarious. <a href="http://boxbinary.com/2011/10/how-to-run-a-unit-test-in-medium-trust-with-nunitpart-three-umbraco-framework-testing/">The downloadable code is on the next post – I really need to make my blog more developer-friendly, so for now it’s a fresh new page for us.</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=LTzQSoGtot8:NKeVqaeVp2Y:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=LTzQSoGtot8:NKeVqaeVp2Y:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=LTzQSoGtot8:NKeVqaeVp2Y:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=LTzQSoGtot8:NKeVqaeVp2Y:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=LTzQSoGtot8:NKeVqaeVp2Y:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=LTzQSoGtot8:NKeVqaeVp2Y:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=LTzQSoGtot8:NKeVqaeVp2Y:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=LTzQSoGtot8:NKeVqaeVp2Y:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BoxbinaryBlog/~4/LTzQSoGtot8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://boxbinary.com/2011/10/how-to-run-a-unit-test-in-medium-trust-part-two/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://boxbinary.com/2011/10/how-to-run-a-unit-test-in-medium-trust-part-two/</feedburner:origLink></item>
		<item>
		<title>Unit Testing under Medium Trust using NUnit and a dose of magic fancypants… Part One</title>
		<link>http://feedproxy.google.com/~r/BoxbinaryBlog/~3/RBMEFW853GM/</link>
		<comments>http://boxbinary.com/2011/10/unit-testing-medium-trust-using-nunit-umbraco-5-and-a-dose-of-magic-fancypants-part-one/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 02:57:28 +0000</pubDate>
		<dc:creator>Alex Norcliffe</dc:creator>
				<category><![CDATA[Coding Tips]]></category>
		<category><![CDATA[Umbraco]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[NUnit]]></category>
		<category><![CDATA[Umbraco 5]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://boxbinary.com/?p=348</guid>
		<description><![CDATA[I’m going to cover a bit of background about Medium Trust, and how to understand what it actually means for your code in terms of permissions.

The second post covers a solution I’ve produced over the past week and in the latest build of Umbraco.Framework.Testing which allows you to easily ensure all your NUnit tests run in partial trust.

The third post has the download and some instructions, so jump there if you want to cut to the chase.]]></description>
			<content:encoded><![CDATA[
	<div style="float:right; margin-left:10px">
		<a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" data-text="Unit Testing under Medium Trust using NUnit and a dose of magic fancypants&hellip; Part One - BoxBinary Blog" data-url="http://boxbinary.com/2011/10/unit-testing-medium-trust-using-nunit-umbraco-5-and-a-dose-of-magic-fancypants-part-one/"  data-via="alex_norcliffe">Tweet</a>
	</div>
	<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fboxbinary.com%2F2011%2F10%2Funit-testing-medium-trust-using-nunit-umbraco-5-and-a-dose-of-magic-fancypants-part-one%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fboxbinary.com%2F2011%2F10%2Funit-testing-medium-trust-using-nunit-umbraco-5-and-a-dose-of-magic-fancypants-part-one%2F&amp;source=alex_norcliffe&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>This post originally started out life as a three-paragraph thing, but then I realised the topic really merits a lot of background, so I thought I’d get with the cool gang and do a multi-part post.</p>
<p>First, I’m going to cover a bit of background about Medium Trust, and how to understand what it actually means for your code in terms of permissions.</p>
<p><a href="http://boxbinary.com/2011/10/how-to-run-a-unit-test-in-medium-trust-part-two/">The second post</a> covers a solution I’ve produced over the past week and in the latest build of Umbraco.Framework.Testing which allows you to easily ensure all your NUnit tests run in partial trust.</p>
<p><a href="http://boxbinary.com/2011/10/how-to-run-a-unit-test-in-medium-trust-with-nunitpart-three-umbraco-framework-testing/">The third post has the download and some instructions, so jump there if you want to cut to the chase.</a></p>
<p>In these posts I’ll be talking about .NET 3.5 and above – just to be clear from the outset.</p>
<h2>Medium Nightmare</h2>
<p><a href="http://boxbinary.com/wp-content/uploads/2011/10/image1.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border-width: 0px;" title="image" src="http://boxbinary.com/wp-content/uploads/2011/10/image_thumb1.png" border="0" alt="image" width="417" height="196" /></a></p>
<p>Medium Trust is probably one of the most infamous parts of an ASP.NET developer’s coding life. If you work on your own applications, hosted in Full Trust environments under the control of you or your team, you’re fine. You may have never even come across an issue. It’s this phenomenon which has created such a painful situation: so many developers write code which they reasonably expect can be deployed anywhere; it passes its tests, and works on their machine.</p>
<p>But if you’ve ever put together a website with some cool fandangled bit of code that runs fine locally, and then you’ve deployed it to your hosting account, only to find your beautiful creation misses you dearly and is just sat there screaming complaints of <span style="font-family: Consolas; color: #ff0000; background-color: #ffff00;">SecurityPermission</span> this, and <span style="font-family: Consolas; color: #ff0000; background-color: #ffff00;">FieldAccessPermission</span> that, you’ll know how tough it can be.</p>
<p>For many it’s the beginning of a very long and arduous process of re-engineering and debugging in what can seem like an infinite loop, and many assumptions about the way the application works (such as lazy-loading proxies in NHibernate) often need to be entirely revisited. Or not, depending on how much luck you have with your Bing search. It’s another large part of the problem: it’s such a minefield, even searching for solutions can be spotty.</p>
<p>It’s not all in your hands either; it’s an easy mistake to make <em>precisely because</em> it’s so difficult to test in a reliable way and it’s so easy to begin developing in the default setting for many ASP.Net project templates, which is: <strong>Full Trust</strong>. Fluent NHibernate, AutoMapper, certain setups of Castle DynamicProxy, of NHibernate – these are Big Name Libraries, and they all have problems. We’ve all been there: Umbraco included up until the past year or so. It’s a long list – and unpicking the problems one by one, rebuilding, and pressing F5 in your browser is a pain in the arse.</p>
<p>I don’t like pains in my arse, and since we’re busy building Umbraco 5 right now, I’d rather we don’t become one in yours either. I figured the other features we’re coding have test coverage, let’s get the Medium Trust issue covered too. And since it’s all open source, everyone can do it. Yeay!</p>
<h2>Security background – what exactly is Medium Trust and its permissions?</h2>
<p>“Medium Trust” is a loose term for a set of Code Access Security policy settings that offer less freedom to bend the server to your every will. It’s complicated by the fact that what constitutes “medium trust” is actually a set of permissions listed in configuration, and some hosting companies tailor the settings, so you don’t <em>quite</em> know what you’re dealing with. But in general the policy means at least the following permissions:</p>
<ul>
<li><a title="AspNetHostingPermission Class" href="http://msdn.microsoft.com/en-us/library/system.web.aspnethostingpermission.aspx" target="_blank"><strong>AspNetHostingPermission</strong></a> of “medium” – For example, a minimum requirement that calls to public types in the System.Web namespace must be coming from code that is granted at least a certain &#8220;minimal” trust level. </li>
<li>A <a title="DnsPermission Class" href="http://msdn.microsoft.com/en-us/library/system.net.dnspermission.aspx" target="_blank"><strong>DnsPermission</strong></a> which is unrestricted. Go mad on those Dns lookups. </li>
<li>An <a title="EnvironmentPermission Class" href="http://msdn.microsoft.com/en-us/library/system.security.permissions.environmentpermission.aspx" target="_blank"><strong>EnvironmentPermission</strong></a> which grants access only to the following system environment variables by default:
<ul>
<li>TEMP; TMP; USERNAME; OS; COMPUTERNAME </li>
</ul>
</li>
<li>A <a title="FileIOPermission Class" href="http://msdn.microsoft.com/en-us/library/system.security.permissions.fileiopermission.aspx" target="_blank"><strong>FileIOPermission</strong></a> that says you may only Read, Write, Append and browse the filesystem that starts with the root of your website and nowhere else. Shocker. </li>
<li>An <a title="IsolatedStorageFilePermission Class" href="http://msdn.microsoft.com/en-us/library/system.security.permissions.isolatedstoragefilepermission.aspx" target="_blank"><strong>IsolatedStorageFilePermission</strong></a> which <a title="AssemblyIsolationByUser flag" href="http://msdn.microsoft.com/en-us/library/system.security.permissions.isolatedstoragecontainment.aspx" target="_blank">permits isolation of storage first by user, and then by code assembly</a>. It allows you a data store for the assembly that is accessible in any domain context. </li>
<li>Bizarrely, a <a title="PrintingPermission Class" href="http://msdn.microsoft.com/en-us/library/system.drawing.printing.printingpermission.aspx" target="_blank"><strong>PrintingPermission</strong></a> which permits programmatic printing to the default printer. </li>
<li>A <a title="SecurityPermission Class" href="http://msdn.microsoft.com/en-us/library/system.security.permissions.securitypermission.aspx" target="_blank"><strong>SecurityPermission</strong></a> which allows the following flags:
<ul>
<li>Execution (to allow managed code to execute – yeay!) </li>
<li>ControlPrincipal (to manipulate the Principal object i.e. set the current logged-on user) </li>
<li>ControlThread (to allow the totally unambiguous <em>“<a href="http://msdn.microsoft.com/en-us/library/system.security.permissions.securitypermissionflag.aspx" target="_blank">certain advanced operations on threads</a>”</em>, thanks MSDN!) </li>
<li>RemotingConfiguration (to configure Remoting types and channels) </li>
</ul>
</li>
<li>An <a title="SmtpPermission Class" href="http://msdn.microsoft.com/en-us/library/system.net.mail.smtppermission.aspx" target="_blank"><strong>SmtpPermission</strong></a> which allows you to <a title="SmtpAccess.Connect" href="http://msdn.microsoft.com/en-us/library/system.net.mail.smtpaccess.aspx" target="_blank">connect only to port 25</a> </li>
<li>An unrestricted <a title="SqlClientPermission Class" href="http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlclientpermission.aspx" target="_blank"><strong>SqlClientPermission</strong></a> </li>
<li>An unrestricted <a title="TypeDescriptorPermission Class" href="http://msdn.microsoft.com/en-us/library/system.security.permissions.typedescriptorpermission.aspx" target="_blank"><strong>TypeDescriptorPermission</strong></a> </li>
<li>An unrestricted <a title="WebPermission Class" href="http://msdn.microsoft.com/en-us/library/system.net.webpermission.aspx" target="_blank"><strong>WebPermission</strong></a> (confused? This actually signifies unrestricted access to make HTTP requests to other services) </li>
<li>And finally the one which crops up most often, a <a title="ReflectionPermission Class" href="http://msdn.microsoft.com/en-us/library/system.security.permissions.reflectionpermission.aspx" target="_blank"><strong>ReflectionPermission</strong></a> with flags of RestrictedMemberAccess. This signifies “partially trusted code can access nonpublic types and members, but only if the grant set of the partially trusted code includes all permissions in the grant set of the assembly that contains the nonpublic types and members being accessed”. Again, <a title="ReflectionPermissionFlag Enumeration" href="http://msdn.microsoft.com/en-us/library/system.security.permissions.reflectionpermissionflag.aspx" target="_blank">thanks MSDN</a>! In practice, this means you can’t access private members of someone else’s assemblies – and this is what brings down most libraries. </li>
</ul>
<p>What’s important about this set of permissions is actually what it doesn’t give you. For example, let’s look at some of the SecurityPermissionFlags you could have won:</p>
<ul>
<li>Calling unmanaged code </li>
<li>Ability to provide serialization services </li>
<li>Ability to create and manipulate AppDomains </li>
</ul>
<p>Or the “MemberAccess” ReflectionPermissionFlag, which would have allowed you to use reflection to operate on all members of a class (even its privates).</p>
<p>Also, no <strong>OleDbClientPermission</strong> or <strong>OdbcClientPermissions</strong> are in there by default – most hosting companies add these to their Medium Trust configurations.</p>
<p>And certainly no <strong>RegistryPermission</strong>.</p>
<h2>How do you know this and where is it configured?</h2>
<p>Well, perhaps the wider point is <strong>I don’t know this by reading one handy straightforward piece of simple documentation</strong>. The top Google result for me is a <a title="How To: Use Medium Trust in ASP.NET 2.0" href="http://msdn.microsoft.com/en-us/library/ff648344.aspx" target="_blank">piece of “retired” MSDN content</a> left there for reference or for anyone who has run out of everything else to read in the world ever. The top Bing result is <a title="MSDN TV: Working with Medium Trust in ASP.NET" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=0A103B07-DA4B-4D05-B7B8-1876B132D6B8&amp;amp;amp;displaylang=e&amp;displaylang=en" target="_blank">an MSDN video from 2005</a>. I’m sure it’s very good, but it’s an exe file download<strong>.</strong> From 2005.</p>
<p>90% of what you need to know about Medium Trust’s permission set is stored in the web_mediumtrust.config file for the .NET version on which your application is running. On my machine, for .NET 4, that’s <span style="font-family: 'Courier New';">C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web_mediumtrust.config</span>.</p>
<h2>Web_MediumTrust.config explained</h2>
<p>The config file has a simple job: declare named sets of permissions. It does this by first declaring a list of SecurityClass elements to predefine the type names of the permissions and give them a key, and then goes on to declare PermissionSet elements which refer back to those types and pass in arguments. Here is the one installed on my dev machine in full:</p>
<div id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:57bfb9dd-a332-4ff9-8a65-186383e8d8b5" class="wlWriterEditableSmartContent" style="margin: 0px; display: inline; float: none; padding: 0px;">
<div class="le-pavsc-container">
<div style="background: #ddd; max-height: 400px; overflow: auto;">
<ol style="background: #201629; margin: 0 0 0 3em; padding: 0 0 0 5px; white-space: nowrap;">
<li><span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">configuration</span><span style="color: #e0d3cd;">&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">mscorlib</span><span style="color: #e0d3cd;">&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">security</span><span style="color: #e0d3cd;">&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">policy</span><span style="color: #e0d3cd;">&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">PolicyLevel</span><span style="color: #e0d3cd;"> version=</span><span style="color: #73bad4;">&#8220;1&#8243;</span><span style="color: #e0d3cd;">&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">SecurityClasses</span><span style="color: #e0d3cd;">&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">SecurityClass</span><span style="color: #e0d3cd;"> Name=</span><span style="color: #73bad4;">&#8220;AllMembershipCondition&#8221;</span><span style="color: #e0d3cd;"> Description=</span><span style="color: #73bad4;">&#8220;System.Security.Policy.AllMembershipCondition, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&#8243;</span><span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">SecurityClass</span><span style="color: #e0d3cd;"> Name=</span><span style="color: #73bad4;">&#8220;AspNetHostingPermission&#8221;</span><span style="color: #e0d3cd;"> Description=</span><span style="color: #73bad4;">&#8220;System.Web.AspNetHostingPermission, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&#8243;</span><span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">SecurityClass</span><span style="color: #e0d3cd;"> Name=</span><span style="color: #73bad4;">&#8220;DnsPermission&#8221;</span><span style="color: #e0d3cd;"> Description=</span><span style="color: #73bad4;">&#8220;System.Net.DnsPermission, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&#8243;</span><span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">SecurityClass</span><span style="color: #e0d3cd;"> Name=</span><span style="color: #73bad4;">&#8220;EnvironmentPermission&#8221;</span><span style="color: #e0d3cd;"> Description=</span><span style="color: #73bad4;">&#8220;System.Security.Permissions.EnvironmentPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&#8243;</span><span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">SecurityClass</span><span style="color: #e0d3cd;"> Name=</span><span style="color: #73bad4;">&#8220;FileIOPermission&#8221;</span><span style="color: #e0d3cd;"> Description=</span><span style="color: #73bad4;">&#8220;System.Security.Permissions.FileIOPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&#8243;</span><span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">SecurityClass</span><span style="color: #e0d3cd;"> Name=</span><span style="color: #73bad4;">&#8220;FirstMatchCodeGroup&#8221;</span><span style="color: #e0d3cd;"> Description=</span><span style="color: #73bad4;">&#8220;System.Security.Policy.FirstMatchCodeGroup, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&#8243;</span><span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">SecurityClass</span><span style="color: #e0d3cd;"> Name=</span><span style="color: #73bad4;">&#8220;IsolatedStorageFilePermission&#8221;</span><span style="color: #e0d3cd;"> Description=</span><span style="color: #73bad4;">&#8220;System.Security.Permissions.IsolatedStorageFilePermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&#8243;</span><span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">SecurityClass</span><span style="color: #e0d3cd;"> Name=</span><span style="color: #73bad4;">&#8220;NamedPermissionSet&#8221;</span><span style="color: #e0d3cd;"> Description=</span><span style="color: #73bad4;">&#8220;System.Security.NamedPermissionSet&#8221;</span><span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">SecurityClass</span><span style="color: #e0d3cd;"> Name=</span><span style="color: #73bad4;">&#8220;PrintingPermission&#8221;</span><span style="color: #e0d3cd;"> Description=</span><span style="color: #73bad4;">&#8220;System.Drawing.Printing.PrintingPermission, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&#8221;</span><span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">SecurityClass</span><span style="color: #e0d3cd;"> Name=</span><span style="color: #73bad4;">&#8220;SecurityPermission&#8221;</span><span style="color: #e0d3cd;"> Description=</span><span style="color: #73bad4;">&#8220;System.Security.Permissions.SecurityPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&#8243;</span><span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">SecurityClass</span><span style="color: #e0d3cd;"> Name=</span><span style="color: #73bad4;">&#8220;SmtpPermission&#8221;</span><span style="color: #e0d3cd;"> Description=</span><span style="color: #73bad4;">&#8220;System.Net.Mail.SmtpPermission, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&#8243;</span><span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">SecurityClass</span><span style="color: #e0d3cd;"> Name=</span><span style="color: #73bad4;">&#8220;SqlClientPermission&#8221;</span><span style="color: #e0d3cd;"> Description=</span><span style="color: #73bad4;">&#8220;System.Data.SqlClient.SqlClientPermission, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&#8243;</span><span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">SecurityClass</span><span style="color: #e0d3cd;"> Name=</span><span style="color: #73bad4;">&#8220;StrongNameMembershipCondition&#8221;</span><span style="color: #e0d3cd;"> Description=</span><span style="color: #73bad4;">&#8220;System.Security.Policy.StrongNameMembershipCondition, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&#8243;</span><span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">SecurityClass</span><span style="color: #e0d3cd;"> Name=</span><span style="color: #73bad4;">&#8220;TypeDescriptorPermission&#8221;</span><span style="color: #e0d3cd;"> Description=</span><span style="color: #73bad4;">&#8220;System.Security.Permissions.TypeDescriptorPermission, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&#8243;</span><span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">SecurityClass</span><span style="color: #e0d3cd;"> Name=</span><span style="color: #73bad4;">&#8220;UIPermission&#8221;</span><span style="color: #e0d3cd;"> Description=</span><span style="color: #73bad4;">&#8220;System.Security.Permissions.UIPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&#8243;</span><span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">SecurityClass</span><span style="color: #e0d3cd;"> Name=</span><span style="color: #73bad4;">&#8220;UnionCodeGroup&#8221;</span><span style="color: #e0d3cd;"> Description=</span><span style="color: #73bad4;">&#8220;System.Security.Policy.UnionCodeGroup, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&#8243;</span><span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">SecurityClass</span><span style="color: #e0d3cd;"> Name=</span><span style="color: #73bad4;">&#8220;UrlMembershipCondition&#8221;</span><span style="color: #e0d3cd;"> Description=</span><span style="color: #73bad4;">&#8220;System.Security.Policy.UrlMembershipCondition, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&#8243;</span><span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">SecurityClass</span><span style="color: #e0d3cd;"> Name=</span><span style="color: #73bad4;">&#8220;WebPermission&#8221;</span><span style="color: #e0d3cd;"> Description=</span><span style="color: #73bad4;">&#8220;System.Net.WebPermission, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&#8243;</span><span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">SecurityClass</span><span style="color: #e0d3cd;"> Name=</span><span style="color: #73bad4;">&#8220;ZoneMembershipCondition&#8221;</span><span style="color: #e0d3cd;"> Description=</span><span style="color: #73bad4;">&#8220;System.Security.Policy.ZoneMembershipCondition, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&#8243;</span><span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">SecurityClass</span><span style="color: #e0d3cd;"> Name=</span><span style="color: #73bad4;">&#8220;ReflectionPermission&#8221;</span><span style="color: #e0d3cd;"> Description=</span><span style="color: #73bad4;">&#8220;System.Security.Permissions.ReflectionPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&#8243;</span><span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;/</span><span style="color: #739ad4;">SecurityClasses</span><span style="color: #e0d3cd;">&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">NamedPermissionSets</span><span style="color: #e0d3cd;">&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">PermissionSet</span></li>
<li> <span style="color: #e0d3cd;">class=</span><span style="color: #73bad4;">&#8220;NamedPermissionSet&#8221;</span></li>
<li> <span style="color: #e0d3cd;">version=</span><span style="color: #73bad4;">&#8220;1&#8243;</span></li>
<li> <span style="color: #e0d3cd;">Unrestricted=</span><span style="color: #73bad4;">&#8220;true&#8221;</span></li>
<li> <span style="color: #e0d3cd;">Name=</span><span style="color: #73bad4;">&#8220;FullTrust&#8221;</span></li>
<li> <span style="color: #e0d3cd;">Description=</span><span style="color: #73bad4;">&#8220;Allows full access to all resources&#8221;</span></li>
<li> <span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">PermissionSet</span></li>
<li> <span style="color: #e0d3cd;">class=</span><span style="color: #73bad4;">&#8220;NamedPermissionSet&#8221;</span></li>
<li> <span style="color: #e0d3cd;">version=</span><span style="color: #73bad4;">&#8220;1&#8243;</span></li>
<li> <span style="color: #e0d3cd;">Name=</span><span style="color: #73bad4;">&#8220;Nothing&#8221;</span></li>
<li> <span style="color: #e0d3cd;">Description=</span><span style="color: #73bad4;">&#8220;Denies all resources, including the right to execute&#8221;</span></li>
<li> <span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">PermissionSet</span></li>
<li> <span style="color: #e0d3cd;">class=</span><span style="color: #73bad4;">&#8220;NamedPermissionSet&#8221;</span></li>
<li> <span style="color: #e0d3cd;">version=</span><span style="color: #73bad4;">&#8220;1&#8243;</span></li>
<li> <span style="color: #e0d3cd;">Name=</span><span style="color: #73bad4;">&#8220;ASP.Net&#8221;</span><span style="color: #e0d3cd;">&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">IPermission</span></li>
<li> <span style="color: #e0d3cd;">class=</span><span style="color: #73bad4;">&#8220;AspNetHostingPermission&#8221;</span></li>
<li> <span style="color: #e0d3cd;">version=</span><span style="color: #73bad4;">&#8220;1&#8243;</span></li>
<li> <span style="color: #e0d3cd;">Level=</span><span style="color: #73bad4;">&#8220;Medium&#8221;</span></li>
<li> <span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">IPermission</span></li>
<li> <span style="color: #e0d3cd;">class=</span><span style="color: #73bad4;">&#8220;DnsPermission&#8221;</span></li>
<li> <span style="color: #e0d3cd;">version=</span><span style="color: #73bad4;">&#8220;1&#8243;</span></li>
<li> <span style="color: #e0d3cd;">Unrestricted=</span><span style="color: #73bad4;">&#8220;true&#8221;</span></li>
<li> <span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">IPermission</span></li>
<li> <span style="color: #e0d3cd;">class=</span><span style="color: #73bad4;">&#8220;EnvironmentPermission&#8221;</span></li>
<li> <span style="color: #e0d3cd;">version=</span><span style="color: #73bad4;">&#8220;1&#8243;</span></li>
<li> <span style="color: #e0d3cd;">Read=</span><span style="color: #73bad4;">&#8220;TEMP;TMP;USERNAME;OS;COMPUTERNAME&#8221;</span></li>
<li> <span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">IPermission</span></li>
<li> <span style="color: #e0d3cd;">class=</span><span style="color: #73bad4;">&#8220;FileIOPermission&#8221;</span></li>
<li> <span style="color: #e0d3cd;">version=</span><span style="color: #73bad4;">&#8220;1&#8243;</span></li>
<li> <span style="color: #e0d3cd;">Read=</span><span style="color: #73bad4;">&#8220;$AppDir$&#8221;</span></li>
<li> <span style="color: #e0d3cd;">Write=</span><span style="color: #73bad4;">&#8220;$AppDir$&#8221;</span></li>
<li> <span style="color: #e0d3cd;">Append=</span><span style="color: #73bad4;">&#8220;$AppDir$&#8221;</span></li>
<li> <span style="color: #e0d3cd;">PathDiscovery=</span><span style="color: #73bad4;">&#8220;$AppDir$&#8221;</span></li>
<li> <span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">IPermission</span></li>
<li> <span style="color: #e0d3cd;">class=</span><span style="color: #73bad4;">&#8220;IsolatedStorageFilePermission&#8221;</span></li>
<li> <span style="color: #e0d3cd;">version=</span><span style="color: #73bad4;">&#8220;1&#8243;</span></li>
<li> <span style="color: #e0d3cd;">Allowed=</span><span style="color: #73bad4;">&#8220;AssemblyIsolationByUser&#8221;</span></li>
<li> <span style="color: #e0d3cd;">UserQuota=</span><span style="color: #73bad4;">&#8220;9223372036854775807&#8243;</span></li>
<li> <span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">IPermission</span></li>
<li> <span style="color: #e0d3cd;">class=</span><span style="color: #73bad4;">&#8220;PrintingPermission&#8221;</span></li>
<li> <span style="color: #e0d3cd;">version=</span><span style="color: #73bad4;">&#8220;1&#8243;</span></li>
<li> <span style="color: #e0d3cd;">Level=</span><span style="color: #73bad4;">&#8220;DefaultPrinting&#8221;</span></li>
<li> <span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">IPermission</span></li>
<li> <span style="color: #e0d3cd;">class=</span><span style="color: #73bad4;">&#8220;SecurityPermission&#8221;</span></li>
<li> <span style="color: #e0d3cd;">version=</span><span style="color: #73bad4;">&#8220;1&#8243;</span></li>
<li> <span style="color: #e0d3cd;">Flags=</span><span style="color: #73bad4;">&#8220;Execution, ControlThread, ControlPrincipal, RemotingConfiguration&#8221;</span></li>
<li> <span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">IPermission</span></li>
<li> <span style="color: #e0d3cd;">class=</span><span style="color: #73bad4;">&#8220;SmtpPermission&#8221;</span></li>
<li> <span style="color: #e0d3cd;">version=</span><span style="color: #73bad4;">&#8220;1&#8243;</span></li>
<li> <span style="color: #e0d3cd;">Access=</span><span style="color: #73bad4;">&#8220;Connect&#8221;</span></li>
<li> <span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">IPermission</span></li>
<li> <span style="color: #e0d3cd;">class=</span><span style="color: #73bad4;">&#8220;SqlClientPermission&#8221;</span></li>
<li> <span style="color: #e0d3cd;">version=</span><span style="color: #73bad4;">&#8220;1&#8243;</span></li>
<li> <span style="color: #e0d3cd;">Unrestricted=</span><span style="color: #73bad4;">&#8220;true&#8221;</span></li>
<li> <span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">IPermission</span></li>
<li> <span style="color: #e0d3cd;">class=</span><span style="color: #73bad4;">&#8220;TypeDescriptorPermission&#8221;</span></li>
<li> <span style="color: #e0d3cd;">version=</span><span style="color: #73bad4;">&#8220;1&#8243;</span></li>
<li> <span style="color: #e0d3cd;">Unrestricted=</span><span style="color: #73bad4;">&#8220;true&#8221;</span></li>
<li> <span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">IPermission</span></li>
<li> <span style="color: #e0d3cd;">class=</span><span style="color: #73bad4;">&#8220;WebPermission&#8221;</span></li>
<li> <span style="color: #e0d3cd;">version=</span><span style="color: #73bad4;">&#8220;1&#8243;</span></li>
<li> <span style="color: #e0d3cd;">Unrestricted=</span><span style="color: #73bad4;">&#8220;true&#8221;</span></li>
<li> <span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">IPermission</span></li>
<li> <span style="color: #e0d3cd;">class=</span><span style="color: #73bad4;">&#8220;ReflectionPermission&#8221;</span></li>
<li> <span style="color: #e0d3cd;">version=</span><span style="color: #73bad4;">&#8220;1&#8243;</span></li>
<li> <span style="color: #e0d3cd;">Flags=</span><span style="color: #73bad4;">&#8220;RestrictedMemberAccess&#8221;</span><span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;/</span><span style="color: #739ad4;">PermissionSet</span><span style="color: #e0d3cd;">&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;/</span><span style="color: #739ad4;">NamedPermissionSets</span><span style="color: #e0d3cd;">&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">CodeGroup</span></li>
<li> <span style="color: #e0d3cd;">class=</span><span style="color: #73bad4;">&#8220;FirstMatchCodeGroup&#8221;</span></li>
<li> <span style="color: #e0d3cd;">version=</span><span style="color: #73bad4;">&#8220;1&#8243;</span></li>
<li> <span style="color: #e0d3cd;">PermissionSetName=</span><span style="color: #73bad4;">&#8220;Nothing&#8221;</span><span style="color: #e0d3cd;">&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">IMembershipCondition</span></li>
<li> <span style="color: #e0d3cd;">class=</span><span style="color: #73bad4;">&#8220;AllMembershipCondition&#8221;</span></li>
<li> <span style="color: #e0d3cd;">version=</span><span style="color: #73bad4;">&#8220;1&#8243;</span></li>
<li> <span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">CodeGroup</span></li>
<li> <span style="color: #e0d3cd;">class=</span><span style="color: #73bad4;">&#8220;UnionCodeGroup&#8221;</span></li>
<li> <span style="color: #e0d3cd;">version=</span><span style="color: #73bad4;">&#8220;1&#8243;</span></li>
<li> <span style="color: #e0d3cd;">PermissionSetName=</span><span style="color: #73bad4;">&#8220;ASP.Net&#8221;</span><span style="color: #e0d3cd;">&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">IMembershipCondition</span></li>
<li> <span style="color: #e0d3cd;">class=</span><span style="color: #73bad4;">&#8220;UrlMembershipCondition&#8221;</span></li>
<li> <span style="color: #e0d3cd;">version=</span><span style="color: #73bad4;">&#8220;1&#8243;</span></li>
<li> <span style="color: #e0d3cd;">Url=</span><span style="color: #73bad4;">&#8220;$AppDirUrl$/*&#8221;</span></li>
<li> <span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;/</span><span style="color: #739ad4;">CodeGroup</span><span style="color: #e0d3cd;">&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">CodeGroup</span></li>
<li> <span style="color: #e0d3cd;">class=</span><span style="color: #73bad4;">&#8220;UnionCodeGroup&#8221;</span></li>
<li> <span style="color: #e0d3cd;">version=</span><span style="color: #73bad4;">&#8220;1&#8243;</span></li>
<li> <span style="color: #e0d3cd;">PermissionSetName=</span><span style="color: #73bad4;">&#8220;ASP.Net&#8221;</span><span style="color: #e0d3cd;">&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;</span><span style="color: #739ad4;">IMembershipCondition</span></li>
<li> <span style="color: #e0d3cd;">class=</span><span style="color: #73bad4;">&#8220;UrlMembershipCondition&#8221;</span></li>
<li> <span style="color: #e0d3cd;">version=</span><span style="color: #73bad4;">&#8220;1&#8243;</span></li>
<li> <span style="color: #e0d3cd;">Url=</span><span style="color: #73bad4;">&#8220;$CodeGen$/*&#8221;</span></li>
<li> <span style="color: #e0d3cd;">/&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;/</span><span style="color: #739ad4;">CodeGroup</span><span style="color: #e0d3cd;">&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;/</span><span style="color: #739ad4;">CodeGroup</span><span style="color: #e0d3cd;">&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;/</span><span style="color: #739ad4;">PolicyLevel</span><span style="color: #e0d3cd;">&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;/</span><span style="color: #739ad4;">policy</span><span style="color: #e0d3cd;">&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;/</span><span style="color: #739ad4;">security</span><span style="color: #e0d3cd;">&gt;</span></li>
<li> <span style="color: #e0d3cd;">&lt;/</span><span style="color: #739ad4;">mscorlib</span><span style="color: #e0d3cd;">&gt;</span></li>
<li><span style="color: #e0d3cd;">&lt;/</span><span style="color: #739ad4;">configuration</span><span style="color: #e0d3cd;">&gt;</span></li>
</ol>
</div>
<p><br class="spacer_" /></p>
</div>
<p><br class="spacer_" /></p>
</div>
<p>When ASP.Net spins up the AppDomain for your website, it checks the &lt;trust&gt; element of your web.config file (which may be inherited from a parent config that the hoster has set), and then goes to the appropriate config file to load the right set of permissions needed for the AppDomain. After that, it’s all down to security which is built-in to the CLR which transparently checks the caller’s permissions vs the callee’s permission demands when running managed code.</p>
<h2>Can you see where I’m going with this?</h2>
<p>Let’s get on to how and why this matters to us. <a href="http://boxbinary.com/2011/10/how-to-run-a-unit-test-in-medium-trust-part-two/">In the next post I’ll outline how we can use this information to restrict tests to a very similar set of permissions.</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=RBMEFW853GM:VBDGq4VT3Ws:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=RBMEFW853GM:VBDGq4VT3Ws:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=RBMEFW853GM:VBDGq4VT3Ws:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=RBMEFW853GM:VBDGq4VT3Ws:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=RBMEFW853GM:VBDGq4VT3Ws:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=RBMEFW853GM:VBDGq4VT3Ws:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=RBMEFW853GM:VBDGq4VT3Ws:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=RBMEFW853GM:VBDGq4VT3Ws:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BoxbinaryBlog/~4/RBMEFW853GM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://boxbinary.com/2011/10/unit-testing-medium-trust-using-nunit-umbraco-5-and-a-dose-of-magic-fancypants-part-one/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://boxbinary.com/2011/10/unit-testing-medium-trust-using-nunit-umbraco-5-and-a-dose-of-magic-fancypants-part-one/</feedburner:origLink></item>
		<item>
		<title>Update on the Mongolia trip: waiting for new vehicle documents</title>
		<link>http://feedproxy.google.com/~r/BoxbinaryBlog/~3/yJc23bKLNUY/</link>
		<comments>http://boxbinary.com/2011/07/update-on-the-mongolia-trip-waiting-for-new-vehicle-documents/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 12:31:29 +0000</pubDate>
		<dc:creator>Alex Norcliffe</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[Ambulances to Mongolia]]></category>

		<guid isPermaLink="false">http://boxbinary.com/?p=339</guid>
		<description><![CDATA[
	
		Tweet
	
	
			
				
			
		
Wow, what a rollercoaster so far. I thought I&#8217;d put up a quick update on here, as although Fed has been updating our team blog, I have limited Azure / Twitter / programming access (more on that in a minute) and I know this will go out via Feedburner automatically to anyone who is interested [...]]]></description>
			<content:encoded><![CDATA[
	<div style="float:right; margin-left:10px">
		<a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" data-text="Update on the Mongolia trip: waiting for new vehicle documents - BoxBinary Blog" data-url="http://boxbinary.com/2011/07/update-on-the-mongolia-trip-waiting-for-new-vehicle-documents/"  data-via="alex_norcliffe">Tweet</a>
	</div>
	<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fboxbinary.com%2F2011%2F07%2Fupdate-on-the-mongolia-trip-waiting-for-new-vehicle-documents%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fboxbinary.com%2F2011%2F07%2Fupdate-on-the-mongolia-trip-waiting-for-new-vehicle-documents%2F&amp;source=alex_norcliffe&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Wow, what a rollercoaster so far. I thought I&#8217;d put up a quick update on here, as although <a href="http://mongoliarally.tumblr.com" target="_blank">Fed has been updating our team blog</a>, I have limited Azure / Twitter / programming access (more on that in a minute) and I know this will go out via Feedburner automatically to anyone who is interested in our progress, so given the current set of news we have to share, this is the place to let you know. Luckily I managed to remember the password!</p>
<p>So, first of all it&#8217;s day 18 and we&#8217;re still not in Russia. This was not really part of the plan; we should have been in Russia a while ago in order to be &#8220;on track&#8221;. But things got hairy pretty soon after we departed England. Our convoy of six ambulances had headed south-east through Europe in order to get to Budapest, at the time a relatively small diversion in order to meet with the GoHelp charity and other teams outside of our convoy, for an annual event to share a few drinks with everyone who embarks on this mission.</p>
<p>Budapest is a lovely, lovely place, but unfortunately as Fed wrote at the time, it stole more than just our hearts: someone forced the back doors of our ambulance overnight and stole my suitcase, my hidden rucksack containing my laptop which I&#8217;d intended to use for blogging (and some Umbraco 5 work) and our camera chargers, Fed&#8217;s Kindle, and perhaps the most devastating thing given the context: our vehicle documentation.</p>
<p>Given that all these things except perhaps the suitcase had been hidden, we didn&#8217;t actually discover the theft until we were about 300 miles away from Budapest near the Ukranian border. At the time, it was a whirlwind of stress. Any theft is always earth-shattering but the full extent didn&#8217;t actually dawn on us until we had attempted a few border crossings: that vehicle documentation, a &#8220;V5C&#8221; in the UK or &#8220;auto-passport&#8221; in local parlance, was the key to us leaving the EU.</p>
<p>As it happened, the entire convoy spent about 2 days bouncing between the EU and Ukranian border in no-man&#8217;s land because the remainder of the convoy had &#8220;temporary V5&#8243; documents whilst our permanent ones were being mailed to catch us up in Volgograd, and we had been given advice that this (and our hastily-obtained printout of a V5C scan we had on file) would not be a problem. But with clarity of hindsight we now know that actually the Ukraine was never going to be easy: it levies a 3000EUR fee per vehicle for crossing with temporary documents. Well, I say a &#8220;fee&#8221;: they claim we would have received a refund when getting to Russia in exchange for proving that we weren&#8217;t going to dump the vehicles in the Ukraine, but we just didn&#8217;t have that kind of cash or trust in chance to continue. Plus, it was probably a lucky break: we now know that our single ambulance would never have made it from the Ukraine into Russia without the original V5C and Fed and I would have been stuck having to turn back.</p>
<p>So the whole convoy chose a new route, after some deliberation between going north or south of the Ukraine to a Turkish ferry. We decided to travel north through Slovakia, Poland, Lithuania and finally into Latvia where there are several border crossings with Russia that avoid Belarus. Here the other five ambulances successfully made it through after a painful 9-hour queue, but Fed and I in ambulance #5 were turned away. It was an incredibly gut-wrenching moment, and everyone was incredibly supportive &#8211; although clearly we were all upset. Since that time, Fed and I have been traveling on our own with determination, to a few of the other Latvian crossings. At one border we even made it to the very last step (luckily after only a 30-minute queue), but still got turned away.</p>
<p>Since Saturday when the others made it through the Russian border and beyond we&#8217;ve tried all sorts, but finally on Monday my mum and dad managed to make a breakthrough with the DVLA in the UK who kindly agreed to get a new V5C sent to our London home first-class, where Fed&#8217;s mum and sister have been staying. Thanks to them all it&#8217;s now with DHL and we expect to receive it before 12pm tomorrow.</p>
<p>Through all of this we&#8217;ve had our ups and downs. Of course, the original robbery has always been at the back of our minds, but perhaps if we&#8217;d had the permanent V5C on us it might have been that which was stolen. But there have been other things, the largest of which is probably that our Russian visas expire on the 12th of August. Looking at the mileage, it&#8217;s still do-able if we enter Russia tomorrow night, but there&#8217;s no doubt that it will be a case of doing a lot of driving in a short amount of time. Which is why it&#8217;s so incredibly kind that one ambulance has stayed to wait for us in Samara. One of their team, Scott, will fly back to Moscow in order to jump in our van and help with the driving to get to Samara as quick as possible, and everything else being well (we are definitely due a lucky break!) we will then continue as a convoy of two vehicles and six people &#8211; a much more reassuring prospect. Together we probably won&#8217;t catch the other four, but the idea that it&#8217;s still at least possible to get all six vehicles there is a glimmer of hope to which we are all clinging right now.</p>
<p>It&#8217;s been our intense desire throughout all of this that we make sure that we get this vehicle to Ulaanbaatar, to deliver it but also to visit the places where the donations to our and the other teams&#8217; fundraising websites will be spent. We&#8217;ve still got other backup options in case DHL lets us down, for example donating the vehicle to a needy beneficiary in the EU and then traveling to Mongolia via train or plane, but of course none of them quite lives up to the visions we&#8217;ve had for the past 18 months. It&#8217;s about the journey as well as the destination, and &#8211; whilst there are still hurdles we must cross &#8211; potentially Team 2 and our parents back in the UK scrabbling to help us out will have made this current hurdle conquerable.</p>
<p>And with that I&#8217;ll bring this post to a close. Since I&#8217;ve been doing all of the driving, and had my laptop stolen, I&#8217;ve not been able to blog or tweet at all. But hopefully the next time I get chance, it&#8217;ll be with good news. Fed has also been doing sterling work taking lots of great pictures for our <a href="http://mongoliarally.tumblr.com" target="_blank">team blog which is here</a>, which she updates from the passenger seat whenever there is a sniff of open Wifi.</p>
<p>Until the next update, all the best and <a href="http://www.justgiving.com/muttley-to-Mongolia" target="_blank">thanks again to everyone who has donated funds</a>, to our amazing convoy-mates and our parents for their help, to all those kind folks we&#8217;ve met along the way, and to my incredibly supportive employer <a href="http://www.umbraco.com/" target="_blank">Umbraco</a> to make this mission so worthwhile.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=yJc23bKLNUY:mm8a3g1yQRg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=yJc23bKLNUY:mm8a3g1yQRg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=yJc23bKLNUY:mm8a3g1yQRg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=yJc23bKLNUY:mm8a3g1yQRg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=yJc23bKLNUY:mm8a3g1yQRg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=yJc23bKLNUY:mm8a3g1yQRg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=yJc23bKLNUY:mm8a3g1yQRg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=yJc23bKLNUY:mm8a3g1yQRg:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BoxbinaryBlog/~4/yJc23bKLNUY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://boxbinary.com/2011/07/update-on-the-mongolia-trip-waiting-for-new-vehicle-documents/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://boxbinary.com/2011/07/update-on-the-mongolia-trip-waiting-for-new-vehicle-documents/</feedburner:origLink></item>
		<item>
		<title>London to Mongolia 2011: we’re donating an ambulance to the community by driving it there!</title>
		<link>http://feedproxy.google.com/~r/BoxbinaryBlog/~3/5xjJ2yMgCqQ/</link>
		<comments>http://boxbinary.com/2011/06/drive-ambulance-london-mongolia-raise-money-go-help-charity/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 10:58:32 +0000</pubDate>
		<dc:creator>Alex Norcliffe</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[Charity]]></category>
		<category><![CDATA[Fundraising]]></category>
		<category><![CDATA[Mongolia Rally]]></category>
		<category><![CDATA[Umbraco]]></category>

		<guid isPermaLink="false">http://boxbinary.com/?p=280</guid>
		<description><![CDATA[
	
		Tweet
	
	
			
				
			
		
This year my girlfriend @federicacocco and I are driving the ambulance pictured below from London to Mongolia for charity, in order to donate the vehicle and any funds we raise to a community in need.
Please spare a few £ / $ / € and help, it&#8217;s really easy at our Team page: justgiving.com/muttley-to-mongolia
Below is the [...]]]></description>
			<content:encoded><![CDATA[
	<div style="float:right; margin-left:10px">
		<a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" data-text="London to Mongolia 2011: we’re donating an ambulance to the community by driving it there! - BoxBinary Blog" data-url="http://boxbinary.com/2011/06/drive-ambulance-london-mongolia-raise-money-go-help-charity/"  data-via="alex_norcliffe">Tweet</a>
	</div>
	<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fboxbinary.com%2F2011%2F06%2Fdrive-ambulance-london-mongolia-raise-money-go-help-charity%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fboxbinary.com%2F2011%2F06%2Fdrive-ambulance-london-mongolia-raise-money-go-help-charity%2F&amp;source=alex_norcliffe&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>This year my girlfriend <a href="http://twitter.com/federicacocco" target="_blank">@federicacocco</a> and I are driving the ambulance pictured below from London to Mongolia for charity, in order to donate the vehicle and any funds we raise to a community in need.</p>
<p style="font-size: large;"><a title="Our donation page" href="http://www.justgiving.com/muttley-to-mongolia" target="_blank"><strong>Please spare a few £ / $ / € and help</strong>, it&#8217;s really easy at our Team page: <strong>justgiving.com/muttley-to-mongolia</strong></a></p>
<p>Below is the ambulance we’ll be donating, setting off on July 9th 2011 and arriving roughly 4-5 weeks later. We’re doing this in partnership with the <strong>London Ambulance Service</strong> and the registered UK charity <a href="http://gohelp.org.uk/" target="_blank"><strong>Go Help</strong></a>.</p>
<div style="float: left; margin-top: 7px; padding-right: 1px;">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="150" height="230" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="align" value="middle" /><param name="flashvars" value="EggId=3417835&amp;IsMS=0" /><param name="data" value="http://www.justgiving.com/widgets/jgwidget.swf" /><param name="allowScriptAccess" value="always" /><param name="allowNetworking" value="all" /><param name="quality" value="high" /><param name="wmode" value="transparent" /><param name="src" value="http://www.justgiving.com/widgets/jgwidget.swf" /><embed type="application/x-shockwave-flash" width="150" height="230" src="http://www.justgiving.com/widgets/jgwidget.swf" wmode="transparent" quality="high" allownetworking="all" allowscriptaccess="always" data="http://www.justgiving.com/widgets/jgwidget.swf" flashvars="EggId=3417835&amp;IsMS=0" align="middle"></embed></object>
</div>
<p><a href="http://boxbinary.com/wp-content/uploads/2011/06/ambulance1.jpg"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border: 0px;" title="ambulance" src="http://boxbinary.com/wp-content/uploads/2011/06/ambulance_thumb1.jpg" border="0" alt="ambulance" width="400" height="298" /></a></p>
<p>Thanks to everyone who has donated so far, including a very generous £250 from my awesome employer, <a href="http://umbraco.com" target="_blank">Umbraco</a>. <a title="Our donations page" href="http://www.justgiving.com/muttley-to-mongolia" target="_blank">We appreciate all donations large or small, so please do give something today – thank you!</a></p>
<p>Our route is below. Not long, eh? <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" src="http://boxbinary.com/wp-content/uploads/2011/06/wlEmoticon-smile1.png" alt="Smile" /> We’ll also be tweeting, blogging and filming along the route. If you’d like your company to sponsor us, <strong>we can accept wire transfers or PayPal Donate transfers too</strong> – please do get in touch as we’ll pretty much bend over backwards to accommodate your sponsorship request. There’s a lot of space on the side of that ambulance for logos etc.!</p>
<p><a href="http://boxbinary.com/wp-content/uploads/2011/06/image10.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://boxbinary.com/wp-content/uploads/2011/06/image_thumb2.png" border="0" alt="image" width="578" height="226" /></a></p>
<h3>We&#8217;ll be liveblogging the journey at this tumblr: <a href="http://mongoliarally.tumblr.com/">http://mongoliarally.tumblr.com/</a></h3>
<p><br class="spacer_" /></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=5xjJ2yMgCqQ:h0HIJ2SR_64:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=5xjJ2yMgCqQ:h0HIJ2SR_64:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=5xjJ2yMgCqQ:h0HIJ2SR_64:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=5xjJ2yMgCqQ:h0HIJ2SR_64:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=5xjJ2yMgCqQ:h0HIJ2SR_64:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=5xjJ2yMgCqQ:h0HIJ2SR_64:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=5xjJ2yMgCqQ:h0HIJ2SR_64:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=5xjJ2yMgCqQ:h0HIJ2SR_64:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BoxbinaryBlog/~4/5xjJ2yMgCqQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://boxbinary.com/2011/06/drive-ambulance-london-mongolia-raise-money-go-help-charity/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://boxbinary.com/2011/06/drive-ambulance-london-mongolia-raise-money-go-help-charity/</feedburner:origLink></item>
		<item>
		<title>One of many nice surprises of 2011: I’m now a Microsoft Regional Director</title>
		<link>http://feedproxy.google.com/~r/BoxbinaryBlog/~3/SL5ujn-v3oM/</link>
		<comments>http://boxbinary.com/2011/06/alex-norcliffe-microsoft-regional-director/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 11:34:00 +0000</pubDate>
		<dc:creator>Alex Norcliffe</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Microsoft Regional Director]]></category>
		<category><![CDATA[RD]]></category>
		<category><![CDATA[Umbraco]]></category>

		<guid isPermaLink="false">http://boxbinary.com/?p=284</guid>
		<description><![CDATA[
	
		Tweet
	
	
			
				
			
		
A little while before the fantastic CodeGarden11, whilst prepping the first Umbraco 5 CTP with the team, I had the humbling surprise to be nominated to become a member of the Microsoft Regional Director programme. 
This was a fantastic compliment and one which definitely came out of left-field. In the coming months I’ll be increasing [...]]]></description>
			<content:encoded><![CDATA[
	<div style="float:right; margin-left:10px">
		<a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" data-text="One of many nice surprises of 2011: I’m now a Microsoft Regional Director - BoxBinary Blog" data-url="http://boxbinary.com/2011/06/alex-norcliffe-microsoft-regional-director/"  data-via="alex_norcliffe">Tweet</a>
	</div>
	<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fboxbinary.com%2F2011%2F06%2Falex-norcliffe-microsoft-regional-director%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fboxbinary.com%2F2011%2F06%2Falex-norcliffe-microsoft-regional-director%2F&amp;source=alex_norcliffe&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>A little while before the fantastic <a title="Umbraco CodeGarden festival / conference 2011" href="http://codegarden11.com" target="_blank">CodeGarden11</a>, whilst prepping the first <a title="Umbraco CMS v5 CTP" href="http://umbraco.codeplex.com/releases/view/68327" target="_blank">Umbraco 5 CTP</a> with the team, I had the humbling surprise to be nominated to become a member of the <a title="Microsoft Regional Director website" href="http://www.microsoftregionaldirectors.com/" target="_blank">Microsoft Regional Director programme</a>. </p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="Microsoft Regional Director logo" border="0" alt="Microsoft Regional Director logo" align="right" src="http://boxbinary.com/wp-content/uploads/2011/06/Microsoft_Regional_Director_Program-logo-DE166020EC-seeklogo.com_1.gif" width="198" height="58" />This was a fantastic compliment and one which definitely came out of left-field. In the coming months I’ll be increasing my blogging output and applying for as many speaker slots as I can at the many fun tech meetups with which our industry is blessed – including spreading the word about Umbraco which is, of course, one of the most popular CMS tools on the ASP.NET stack. *Cough* bias *cough*.</p>
<p>&#160;</p>
<p><a href="http://www.microsoftregionaldirectors.com/" target="_blank"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="The RD website" border="0" alt="The RD website" align="right" src="http://boxbinary.com/wp-content/uploads/2011/06/image.png" width="240" height="176" /></a>A little about the programme: first of all, I don’t work for Microsoft! All RD’s have jobs at, or own, technology-focussed companies using Microsoft tools. I love my job at <a href="http://umbraco.com" target="_blank">Umbraco</a> guiding the architecture of version 5, and feel like the luckiest software guy out there to be spending my days working with such a great team and brilliant community. </p>
<p>The programme is similar to Microsoft’s MVP scheme, with the key difference being that RDs are a smaller group (around 140) and tend to chat with people who are not yet users, and are evaluating the switch to Microsoft technologies, or software based on their stack such as Umbraco.</p>
<p>There’s a large crossover though: both programmes are about evangelising the areas that Microsoft does well, and acting as a conduit for feedback to the MS product teams. Although it’s tempting to believe otherwise, we of course have the freedom to speak out where we believe Microsoft has made mistakes or can do a better job.</p>
<p>I have to say, it’s humbling to be a invited to be amongst such prestigious company. I’m going to have my work cut out keeping pace with their bright minds and speaking talent, but I’m relishing the personal challenge.</p>
<p>As a final side-note, it was really nice to see that within the first 24h of “meeting” everyone on the mailing list, several RD’s replied back saying how they use, and love using, <a title="Umbraco download link on CodePlex" href="http://umbraco.codeplexcom" target="_blank"><strong>Umbraco</strong></a>. Smiles all round!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=SL5ujn-v3oM:W6Aq0dDYuFw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=SL5ujn-v3oM:W6Aq0dDYuFw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=SL5ujn-v3oM:W6Aq0dDYuFw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=SL5ujn-v3oM:W6Aq0dDYuFw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=SL5ujn-v3oM:W6Aq0dDYuFw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=SL5ujn-v3oM:W6Aq0dDYuFw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=SL5ujn-v3oM:W6Aq0dDYuFw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=SL5ujn-v3oM:W6Aq0dDYuFw:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BoxbinaryBlog/~4/SL5ujn-v3oM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://boxbinary.com/2011/06/alex-norcliffe-microsoft-regional-director/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://boxbinary.com/2011/06/alex-norcliffe-microsoft-regional-director/</feedburner:origLink></item>
		<item>
		<title>Umbraco CodeGarden11 wrap-up</title>
		<link>http://feedproxy.google.com/~r/BoxbinaryBlog/~3/oTA8G9S6vEo/</link>
		<comments>http://boxbinary.com/2011/06/umbraco-codegarden-2011-highlights/#comments</comments>
		<pubDate>Mon, 20 Jun 2011 12:29:00 +0000</pubDate>
		<dc:creator>Alex Norcliffe</dc:creator>
				<category><![CDATA[Umbraco News]]></category>
		<category><![CDATA[CG11]]></category>
		<category><![CDATA[codegarden]]></category>
		<category><![CDATA[Courier 2]]></category>
		<category><![CDATA[CTP]]></category>
		<category><![CDATA[Umbraco 5]]></category>
		<category><![CDATA[Umbraco Deli]]></category>

		<guid isPermaLink="false">http://boxbinary.com/?p=293</guid>
		<description><![CDATA[
	
		Tweet
	
	
			
				
			
		
This year’s Umbraco festival, CodeGarden11, was another fantastic success and as ever, brilliant fun. Amongst all of the great sessions and the happiest tech community on the planet, it’s difficult to take just a few highlights, but here’s a couple of things which stood out for me:
The Retreat

Each year the Umbraco HQ flies out the [...]]]></description>
			<content:encoded><![CDATA[
	<div style="float:right; margin-left:10px">
		<a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" data-text="Umbraco CodeGarden11 wrap-up - BoxBinary Blog" data-url="http://boxbinary.com/2011/06/umbraco-codegarden-2011-highlights/"  data-via="alex_norcliffe">Tweet</a>
	</div>
	<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fboxbinary.com%2F2011%2F06%2Fumbraco-codegarden-2011-highlights%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fboxbinary.com%2F2011%2F06%2Fumbraco-codegarden-2011-highlights%2F&amp;source=alex_norcliffe&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>This year’s <a href="http://umbraco.com" target="_blank">Umbraco</a> festival, <a href="http://codegarden11.com" target="_blank">CodeGarden11</a>, was another fantastic success and as ever, brilliant fun. Amongst all of the great sessions and the happiest tech community on the planet, it’s difficult to take just a few highlights, but here’s a couple of things which stood out for me:</p>
<h2>The Retreat</h2>
<p><a href="http://www.flickr.com/photos/percipientstudios/5829112151/in/set-72157626941619874" target="_blank"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border: 0px;" title="Copyright ©2011 Doug Robar / Percipient Studios" src="http://boxbinary.com/wp-content/uploads/2011/06/image3.png" border="0" alt="Copyright ©2011 Doug Robar / Percipient Studios" width="578" height="299" /></a></p>
<p>Each year the Umbraco HQ flies out the Umbraco MVPs who are nominated by the community, together with other active contributors, for a few days of drinking, BBQing and hacking in Denmark prior to the CodeGarden festival. It’s one of our ways of saying “thanks”, and it’s always great to get everyone together from all over the world. We also have a tradition of playing a bit of football, so this year we went the whole hog and got shirts personalised for everyone. I’m the one second from right, sucking in my fat takeaway-induced belly.</p>
<p>We played shortly after this photo was taken. I wish we had a proper “before” and “after” shot, since half of us flagged during the game and the rest were shadows of their former selves, but we did get another kind of team photo done at least:</p>
<p><a href="http://www.flickr.com/photos/percipientstudios/5852575162/sizes/z/in/set-72157626955239614/" target="_blank"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border: 0px;" title="Copyright ©2011 Doug Robar / Percipient Studios" src="http://boxbinary.com/wp-content/uploads/2011/06/cg11_bobble_heads.jpg" border="0" alt="Copyright ©2011 Doug Robar / Percipient Studios" width="578" height="385" /></a></p>
<p>This was one of the bingo prizes <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" src="http://boxbinary.com/wp-content/uploads/2011/06/wlEmoticon-smile.png" alt="Smile" /></p>
<h2>The keynote announcements</h2>
<p>The <a title="Video of the keynote at CodeGarden11" href="http://stream.umbraco.org/video/2087970/codegarden-11-keynote" target="_blank">video for the keynote is up</a> and has some placeholders for you to jump straight to each section.</p>
<h4>Courier 2.0</h4>
<p><a href="http://umbraco.com/products/more-add-ons/courier-2" target="_blank"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; float: right; padding-top: 0px; border: 0px;" title="The Umbraco Courier homepage" src="http://boxbinary.com/wp-content/uploads/2011/06/image5.png" border="0" alt="The Umbraco Courier homepage" width="240" height="155" align="right" /></a>Per from the HQ has been hard at work for many months (in addition to welcoming a new baby girl into the family – the guy is quite prolific) and the resulting Courier 2 deployment tool, released shortly before CodeGarden itself, has already been a runaway success. <a title="Details page for deployment tool Courier 2" href="http://umbraco.com/products/more-add-ons/courier-2" target="_blank">Check out the details page here</a>, and the keynote video above.</p>
<h4>Projects 2.0: The Umbraco Deli</h4>
<p><a href="http://our.umbraco.org/projects" target="_blank"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; float: right; padding-top: 0px; border: 0px;" title="The Umbraco Deli homepage" src="http://boxbinary.com/wp-content/uploads/2011/06/image4.png" border="0" alt="The Umbraco Deli homepage" width="240" height="166" align="right" /></a>Likewise Peter and Paul from the HQ have also been hard at work (although they are lagging behind Per as no new children this year yet). At CodeGarden they launched <a title="The Umbraco Deli, a marketplace for Umbraco plugins and packages" href="http://our.umbraco.org/projects" target="_blank">the new marketplace for commercial Umbraco packages, codenamed the Umbraco Deli</a>. It’s a really straightforward and easy-to-use tool if you want to have your Umbraco plugin sold through a central repository. Umbraco HQ takes a small percentage of proceeds and provides you with all the licensing and admin tools you need, together with great stats.</p>
<h4>Umbraco 5 CTP</h4>
<p><a href="http://umbraco.codeplex.com/releases/view/68327"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; float: right; padding-top: 0px; border: 0px;" title="The Umbraco 5 CTP release page on CodePlex" src="http://boxbinary.com/wp-content/uploads/2011/06/image9.png" border="0" alt="The Umbraco 5 CTP release page on CodePlex" width="240" height="152" align="right" /></a>Finally, not wanting to be out-done on the hard work front, myself, Shan and the rest of the team have been busy building version 5 of Umbraco. We <a title="Umbraco 5 CTP release page on CodePlex" href="http://umbraco.codeplex.com/releases/view/68327" target="_blank">released the first Community Technology Preview during the CodeGarden keynote</a>, and the feedback so far has been humbling!</p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p><a href="http://codegarden11.com/sessions.aspx" target="_blank">You can find session videos on the CodeGarden11 site for all of the above</a>, including the great sessions by our guest speakers too &#8211; and we’re adding more each day.</p>
<h2>The boat-party</h2>
<p><a href="http://www.flickr.com/photos/percipientstudios/5838285259/sizes/z/in/set-72157626955239614/"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border: 0px;" title="Copyright ©2011 Doug Robar / Percipient Studios" src="http://boxbinary.com/wp-content/uploads/2011/06/cg11_boat.jpg" border="0" alt="Copyright ©2011 Doug Robar / Percipient Studios" width="578" height="385" /></a></p>
<p>Ah, the boat party. Always fun to grab a load of drinks and relax after the first day of CodeGarden whilst having a tour around the wonderful city of Copenhagen. This year unofficially sponsored by Tuborg and Lonely Island:</p>
<p><a href="http://www.flickr.com/photos/percipientstudios/5838287365/sizes/z/in/set-72157626955239614/"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border: 0px;" title="Like a boss" src="http://boxbinary.com/wp-content/uploads/2011/06/cg11_niels_likeABoss1.jpg" border="0" alt="Like a boss" width="427" height="640" /></a></p>
<h2>The boat-party, part 2</h2>
<p>I took this picture at 6am after the last day after an awesome night out</p>
<p><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border: 0px;" title="I'm on a boat" src="http://boxbinary.com/wp-content/uploads/2011/06/image8.png" border="0" alt="I'm on a boat" width="578" height="436" /></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=oTA8G9S6vEo:MwA_Y3v306k:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=oTA8G9S6vEo:MwA_Y3v306k:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=oTA8G9S6vEo:MwA_Y3v306k:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=oTA8G9S6vEo:MwA_Y3v306k:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=oTA8G9S6vEo:MwA_Y3v306k:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=oTA8G9S6vEo:MwA_Y3v306k:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=oTA8G9S6vEo:MwA_Y3v306k:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=oTA8G9S6vEo:MwA_Y3v306k:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BoxbinaryBlog/~4/oTA8G9S6vEo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://boxbinary.com/2011/06/umbraco-codegarden-2011-highlights/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://boxbinary.com/2011/06/umbraco-codegarden-2011-highlights/</feedburner:origLink></item>
		<item>
		<title>WikiLeaks – CableGate website moving from Amazon servers back to Bahnhof – was it forced? (Update: yes)</title>
		<link>http://feedproxy.google.com/~r/BoxbinaryBlog/~3/3vloHU05hQc/</link>
		<comments>http://boxbinary.com/2010/12/wikileaks-cablegate-website-moving-from-amazon-servers-back-to-bahnhof/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 19:04:32 +0000</pubDate>
		<dc:creator>Alex Norcliffe</dc:creator>
				<category><![CDATA[Publishing & Media]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[amazon ec2]]></category>
		<category><![CDATA[cablegate]]></category>
		<category><![CDATA[warlogs]]></category>
		<category><![CDATA[wikileaks]]></category>

		<guid isPermaLink="false">http://boxbinary.com/2010/12/wikileaks-cablegate-website-moving-from-amazon-servers-back-to-bahnhof/</guid>
		<description><![CDATA[
	
		Tweet
	
	
			
				
			
		
At the precise time of writing (6.45pm GMT) the cablegate.wikileaks.org site is firmly unresponsive from its recent Amazon home, and a global DNS check shows that changes to its domain are currently propagating round the world – back to Bahnhof (RIPE check here). 
Bahnhof is the Swedish ISP originally heralded in the media as WikiLeaks’ [...]]]></description>
			<content:encoded><![CDATA[
	<div style="float:right; margin-left:10px">
		<a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" data-text="WikiLeaks &ndash; CableGate website moving from Amazon servers back to Bahnhof &ndash; was it forced? (Update: yes) - BoxBinary Blog" data-url="http://boxbinary.com/2010/12/wikileaks-cablegate-website-moving-from-amazon-servers-back-to-bahnhof/"  data-via="alex_norcliffe">Tweet</a>
	</div>
	<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fboxbinary.com%2F2010%2F12%2Fwikileaks-cablegate-website-moving-from-amazon-servers-back-to-bahnhof%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fboxbinary.com%2F2010%2F12%2Fwikileaks-cablegate-website-moving-from-amazon-servers-back-to-bahnhof%2F&amp;source=alex_norcliffe&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>At the precise time of writing (6.45pm GMT) the <a href="http://cablegate.wikileaks.org" target="_blank">cablegate.wikileaks.org</a> site is firmly unresponsive from its recent Amazon home, and a <a href="http://www.whatsmydns.net/#A/cablegate.wikileaks.org" target="_blank">global DNS check</a> shows that changes to its domain are currently propagating round the world – <a href="http://www.db.ripe.net/whois?form_type=simple&amp;full_query_string=&amp;searchtext=46.59.1.2&amp;do_search=Search" target="_blank"><strong>back to Bahnhof</strong> (RIPE check here)</a>. </p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 10px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://boxbinary.com/wp-content/uploads/2010/12/image.png" width="302" height="352" />Bahnhof is the Swedish ISP originally heralded in the media as WikiLeaks’ chosen hosting partner some time ago, thanks in part to its futuristic press shots of nuclear bunkers and movie-set lighting.</p>
<p><a href="http://www.msnbc.msn.com/id/40455720" target="_blank">MSNBC is speculating</a> that it might be because Amazon has taken the decision to force the site off its services. Amazon has certainly had its fair share of press coverage this time round – definitely more than <a href="http://boxbinary.com/2010/10/why-wikileaks-warlogs-site-servers-hosted-in-the-us-amazon-ec2-not-sweden/">the last time it happened with the Warlogs</a>. My blog alone has received quotes and trackbacks from the <a href="http://blogs.wsj.com/digits/2010/11/29/wikileaks-using-amazon-servers-after-attack/" target="_blank">Wall Street Journal</a> (<a href="http://online.wsj.com/article/SB10001424052748704679204575647152417805496.html" target="_blank">twice</a>), <a href="http://www.guardian.co.uk/technology/2010/nov/29/wikileaks-amazon-ec2-ddos" target="_blank">The Guardian</a>, <a href="http://www.theregister.co.uk/2010/11/29/wikileaks_on_us_servers_again/" target="_blank">The Register</a>, <a href="http://blogs.seattleweekly.com/dailyweekly/2010/11/wikileaks_saved_from_hack_atta.php" target="_blank">The Seattle Weekly</a>, and <a href="http://www.foxnews.com/scitech/2010/12/01/wikileaks-relying-amazon-servers/#content" target="_blank">Fox News</a> – and there are countless other outlets covering the issue too. </p>
<p>Whilst it’s not unusual for WikiLeaks to keep moving their services, this is the first time their use of Amazon’s servers have had such a prolonged outage despite <a href="http://twitter.com/#!/wikileaks/statuses/9609091915718656" target="_blank">WikiLeaks’ own claims of a huge DDoS attack</a>. Moving to another host directly as a result of downtime would suggest unresolvable problems at Amazon. </p>
<p>Considering no reports of outages at other Amazon-hosted sites are proliferating, you’d be forgiven for suspecting that this time it might just be personal.</p>
<p><strong>Update</strong>: If <a href="http://twitter.com/#!/SkyNewsBreak/status/10048594778259456" target="_blank">this tweet</a> from @SkyNewsBreak is to be believed, the US Dept of Homeland Security has confirmed that Amazon has agreed to stop hosting the content. The nature of the downtime would suggest that very little notice was given before the action was taken.</p>
<p><strong>Update 2</strong>: <a href="http://twitter.com/#!/wikileaks/status/10058229002272768" target="_blank">WikiLeaks themselves just tweeted effective confirmation</a>. Does this bring the saga to an end…?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=3vloHU05hQc:_ptWdQybXto:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=3vloHU05hQc:_ptWdQybXto:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=3vloHU05hQc:_ptWdQybXto:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=3vloHU05hQc:_ptWdQybXto:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=3vloHU05hQc:_ptWdQybXto:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=3vloHU05hQc:_ptWdQybXto:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=3vloHU05hQc:_ptWdQybXto:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=3vloHU05hQc:_ptWdQybXto:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BoxbinaryBlog/~4/3vloHU05hQc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://boxbinary.com/2010/12/wikileaks-cablegate-website-moving-from-amazon-servers-back-to-bahnhof/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		<feedburner:origLink>http://boxbinary.com/2010/12/wikileaks-cablegate-website-moving-from-amazon-servers-back-to-bahnhof/</feedburner:origLink></item>
		<item>
		<title>WikiLeaks ‘cablegate’ hosted on Amazon EC2 US servers</title>
		<link>http://feedproxy.google.com/~r/BoxbinaryBlog/~3/__6IB0k2seE/</link>
		<comments>http://boxbinary.com/2010/11/wikileaks-hosting-cablegate-on-amazon-ec2-us-servers/#comments</comments>
		<pubDate>Sun, 28 Nov 2010 23:26:33 +0000</pubDate>
		<dc:creator>Alex Norcliffe</dc:creator>
				<category><![CDATA[Publishing & Media]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[amazon ec2]]></category>
		<category><![CDATA[cablegate]]></category>
		<category><![CDATA[warlogs]]></category>
		<category><![CDATA[wikileaks]]></category>

		<guid isPermaLink="false">http://boxbinary.com/2010/11/wikileaks-hosting-cablegate-on-amazon-ec2-us-servers/</guid>
		<description><![CDATA[
	
		Tweet
	
	
			
				
			
		
A month ago WikiLeaks added to their burgeoning notoriety by launching the controversial Iraq war logs. Completely by accident I noticed they were hosted on Amazon servers, in their Ireland and US datacentres, and blogged about it here.
The story got picked up by The Register, The Telegraph and then spread to various other places. Even [...]]]></description>
			<content:encoded><![CDATA[
	<div style="float:right; margin-left:10px">
		<a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" data-text="WikiLeaks &lsquo;cablegate&rsquo; hosted on Amazon EC2 US servers - BoxBinary Blog" data-url="http://boxbinary.com/2010/11/wikileaks-hosting-cablegate-on-amazon-ec2-us-servers/"  data-via="alex_norcliffe">Tweet</a>
	</div>
	<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fboxbinary.com%2F2010%2F11%2Fwikileaks-hosting-cablegate-on-amazon-ec2-us-servers%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fboxbinary.com%2F2010%2F11%2Fwikileaks-hosting-cablegate-on-amazon-ec2-us-servers%2F&amp;source=alex_norcliffe&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>A month ago WikiLeaks added to their burgeoning notoriety by launching the controversial Iraq war logs. Completely by accident I noticed they were hosted on Amazon servers, in their Ireland and US datacentres, and <a href="http://boxbinary.com/2010/10/why-wikileaks-warlogs-site-servers-hosted-in-the-us-amazon-ec2-not-sweden/" target="_blank">blogged about it here</a>.</p>
<p>The story got picked up by <a href="http://www.theregister.co.uk/2010/10/25/wikileaks_hosting_on_amazon_web_services/" target="_blank">The Register</a>, <a href="http://www.telegraph.co.uk/technology/amazon/8087651/Amazon-hosting-WikiLeaks-Warlogs-information.html" target="_blank">The Telegraph</a> and then spread to various other places. Even <a href="http://twitter.com/paulmutton" target="_blank">Paul Mutton</a>, the guy who blogs for NetCraft, <a href="http://news.netcraft.com/archives/2010/10/26/wikileaks-heads-for-the-clouds.html" target="_blank">picked up the trail</a> and has been <a href="http://news.netcraft.com/archives/2010/11/17/iraq-war-logs-no-longer-served-by-amazon-ec2.html" target="_blank">blogging about it since</a> on the NetCraft.com homepage. </p>
<p>I thought it was a Big Deal – to me it seemed so odd, surely a mistake, to put this material not only on servers run by a US company, but physically on US soil – surely making it quite difficult to refute claims of illegality by the US authorities.</p>
<p><a href="http://boxbinary.com/wp-content/uploads/2010/11/image1.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 10px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://boxbinary.com/wp-content/uploads/2010/11/image_thumb.png" width="206" height="242" /></a>And then, tonight, they go and launch the ‘cablegate’ US Embassy logs – and it appears that to WikiLeaks using a US hosting company like Amazon isn’t a source of worry at all. </p>
<p>The new site, <a href="http://cablegate.wikileaks.org" target="_blank">cablegate.wikileaks.org</a>, is hosted on the same Octopuce and Amazon US IP addresses I reported last month. The <a href="http://wikileaks.org" target="_blank">wikileaks.org</a> homepage is currently spread across two Amazon Ireland IP addresses.</p>
<p>I had thought that the slow removal of the Amazon servers over the past few weeks was demonstration of Amazon’s quiet refusal to host the material; I was evidently wrong. So much for the “Swedish bunkers”.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=__6IB0k2seE:msW9MZSgzkk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=__6IB0k2seE:msW9MZSgzkk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=__6IB0k2seE:msW9MZSgzkk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=__6IB0k2seE:msW9MZSgzkk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=__6IB0k2seE:msW9MZSgzkk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=__6IB0k2seE:msW9MZSgzkk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=__6IB0k2seE:msW9MZSgzkk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=__6IB0k2seE:msW9MZSgzkk:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BoxbinaryBlog/~4/__6IB0k2seE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://boxbinary.com/2010/11/wikileaks-hosting-cablegate-on-amazon-ec2-us-servers/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<feedburner:origLink>http://boxbinary.com/2010/11/wikileaks-hosting-cablegate-on-amazon-ec2-us-servers/</feedburner:origLink></item>
		<item>
		<title>Does US’ SIPRNET use MediaWiki? (WikiLeaks)</title>
		<link>http://feedproxy.google.com/~r/BoxbinaryBlog/~3/j-eCI1JYs_Y/</link>
		<comments>http://boxbinary.com/2010/11/does-us-siprnet-use-mediawiki-wikileaks/#comments</comments>
		<pubDate>Sun, 28 Nov 2010 19:14:17 +0000</pubDate>
		<dc:creator>Alex Norcliffe</dc:creator>
				<category><![CDATA[Publishing & Media]]></category>
		<category><![CDATA[cablegate]]></category>
		<category><![CDATA[siprnet]]></category>
		<category><![CDATA[us embassy cables]]></category>
		<category><![CDATA[warlogs]]></category>
		<category><![CDATA[wikileaks]]></category>

		<guid isPermaLink="false">http://boxbinary.com/?p=261</guid>
		<description><![CDATA[
	
		Tweet
	
	
			
				
			
		
I’m not going to prattle on much about WikiLeaks, but I noticed something again about the recent WikiLeaks US Embassy release.
Quick disclaimer: it’s just harmless gossip, I’ve nothing to do with WikiLeaks, and may even be wrong.
So I was scanning through one of the cables on The Guardian’s coverage of WikiLeaks’ latest release, and noticed [...]]]></description>
			<content:encoded><![CDATA[
	<div style="float:right; margin-left:10px">
		<a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" data-text="Does US&rsquo; SIPRNET use MediaWiki? (WikiLeaks) - BoxBinary Blog" data-url="http://boxbinary.com/2010/11/does-us-siprnet-use-mediawiki-wikileaks/"  data-via="alex_norcliffe">Tweet</a>
	</div>
	<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fboxbinary.com%2F2010%2F11%2Fdoes-us-siprnet-use-mediawiki-wikileaks%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fboxbinary.com%2F2010%2F11%2Fdoes-us-siprnet-use-mediawiki-wikileaks%2F&amp;source=alex_norcliffe&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>I’m not going to prattle on much about WikiLeaks, but I noticed something again about the recent WikiLeaks US Embassy release.</p>
<p>Quick disclaimer: it’s just harmless gossip, I’ve nothing to do with WikiLeaks, and may even be wrong.</p>
<p>So I was scanning through <a href="http://www.guardian.co.uk/world/us-embassy-cables-documents/244640" target="_blank">one of the cables on The Guardian’s coverage</a> of WikiLeaks’ latest release, and noticed a hyperlink at the bottom of the cable.</p>
<p><a href="http://www.guardian.co.uk/world/us-embassy-cables-documents/244640" target="_blank"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="left" src="http://boxbinary.com/wp-content/uploads/2010/11/image.png" width="552" height="179" /></a></p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>This hyperlink refers to the “SGOV.GOV” SLD which refers to <a href="http://www.guardian.co.uk/world/2010/nov/28/siprnet-america-stores-secret-cables" target="_blank">SIPRNET, which apparently is the internal network used for diplomatic purposes</a>.</p>
<p>I’m not an expert, but that looks like a <a href="http://www.mediawiki.org/wiki/MediaWiki" target="_blank">MediaWiki</a> address (of Wikipedia fame) to me.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=j-eCI1JYs_Y:nbQ31X4OM3I:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=j-eCI1JYs_Y:nbQ31X4OM3I:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=j-eCI1JYs_Y:nbQ31X4OM3I:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=j-eCI1JYs_Y:nbQ31X4OM3I:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=j-eCI1JYs_Y:nbQ31X4OM3I:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=j-eCI1JYs_Y:nbQ31X4OM3I:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=j-eCI1JYs_Y:nbQ31X4OM3I:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=j-eCI1JYs_Y:nbQ31X4OM3I:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BoxbinaryBlog/~4/j-eCI1JYs_Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://boxbinary.com/2010/11/does-us-siprnet-use-mediawiki-wikileaks/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://boxbinary.com/2010/11/does-us-siprnet-use-mediawiki-wikileaks/</feedburner:origLink></item>
		<item>
		<title>Umbraco 5: May the blogging commence</title>
		<link>http://feedproxy.google.com/~r/BoxbinaryBlog/~3/aTAEFy50gLs/</link>
		<comments>http://boxbinary.com/2010/11/umbraco-5-may-the-blogging-commence/#comments</comments>
		<pubDate>Fri, 26 Nov 2010 16:35:06 +0000</pubDate>
		<dc:creator>Alex Norcliffe</dc:creator>
				<category><![CDATA[Umbraco]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Umbraco 5]]></category>
		<category><![CDATA[Umbraco Community]]></category>

		<guid isPermaLink="false">http://boxbinary.com/?p=258</guid>
		<description><![CDATA[
	
		Tweet
	
	
			
				
			
		
I just kicked off some blogging about Umbraco 5 over on the official Umbraco blog.
First up I’ve done an introduction setting the scene for those who couldn’t attend the festivals this year, and then I’ve posted a Q&#38;A for November (hey, there are still a few days left…)
Next week I’ll be posting some technical details [...]]]></description>
			<content:encoded><![CDATA[
	<div style="float:right; margin-left:10px">
		<a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" data-text="Umbraco 5: May the blogging commence - BoxBinary Blog" data-url="http://boxbinary.com/2010/11/umbraco-5-may-the-blogging-commence/"  data-via="alex_norcliffe">Tweet</a>
	</div>
	<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fboxbinary.com%2F2010%2F11%2Fumbraco-5-may-the-blogging-commence%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fboxbinary.com%2F2010%2F11%2Fumbraco-5-may-the-blogging-commence%2F&amp;source=alex_norcliffe&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>I just kicked off some blogging about Umbraco 5 over on the official Umbraco blog.</p>
<p>First up <a href="http://umbraco.org/follow-us/blog-archive/2010/11/26/umbraco-5-may-the-blogging-commence" target="_blank">I’ve done an introduction setting the scene</a> for those who couldn’t attend the festivals this year, and then <a href="http://umbraco.org/follow-us/blog-archive/2010/11/26/umbraco-5-qa,-november-2010" target="_blank">I’ve posted a Q&amp;A for November</a> (hey, there are still a few days left…)</p>
<p>Next week I’ll be posting some technical details on our data modelling.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=aTAEFy50gLs:3oFieSw_NSA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=aTAEFy50gLs:3oFieSw_NSA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=aTAEFy50gLs:3oFieSw_NSA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=aTAEFy50gLs:3oFieSw_NSA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=aTAEFy50gLs:3oFieSw_NSA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=aTAEFy50gLs:3oFieSw_NSA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=aTAEFy50gLs:3oFieSw_NSA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=aTAEFy50gLs:3oFieSw_NSA:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BoxbinaryBlog/~4/aTAEFy50gLs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://boxbinary.com/2010/11/umbraco-5-may-the-blogging-commence/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://boxbinary.com/2010/11/umbraco-5-may-the-blogging-commence/</feedburner:origLink></item>
		<item>
		<title>WikiLeaks removes part of its US mirror – was it a mistake?</title>
		<link>http://feedproxy.google.com/~r/BoxbinaryBlog/~3/2BjJkbNyDXI/</link>
		<comments>http://boxbinary.com/2010/10/wikileaks-removes-amazon-us-mirror-was-american-hosting-a-mistake/#comments</comments>
		<pubDate>Tue, 26 Oct 2010 16:44:58 +0000</pubDate>
		<dc:creator>Alex Norcliffe</dc:creator>
				<category><![CDATA[Publishing & Media]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[ec2]]></category>
		<category><![CDATA[netcraft]]></category>
		<category><![CDATA[wikileaks]]></category>

		<guid isPermaLink="false">http://boxbinary.com/?p=246</guid>
		<description><![CDATA[
	
		Tweet
	
	
			
				
			
		
In my post last Friday I detailed how I&#8217;d noticed that WikiLeaks was using servers at Amazon in the US and Ireland for its latest release. I noticed completely by chance and had the good fortune to post it within the hour of their launch, and since then a few different sites have picked up on [...]]]></description>
			<content:encoded><![CDATA[
	<div style="float:right; margin-left:10px">
		<a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" data-text="WikiLeaks removes part of its US mirror - was it a mistake? - BoxBinary Blog" data-url="http://boxbinary.com/2010/10/wikileaks-removes-amazon-us-mirror-was-american-hosting-a-mistake/"  data-via="alex_norcliffe">Tweet</a>
	</div>
	<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fboxbinary.com%2F2010%2F10%2Fwikileaks-removes-amazon-us-mirror-was-american-hosting-a-mistake%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fboxbinary.com%2F2010%2F10%2Fwikileaks-removes-amazon-us-mirror-was-american-hosting-a-mistake%2F&amp;source=alex_norcliffe&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>In my post last Friday <a href="http://boxbinary.com/2010/10/why-wikileaks-warlogs-site-servers-hosted-in-the-us-amazon-ec2-not-sweden/" target="_blank">I detailed how I&#8217;d noticed that WikiLeaks was using servers at Amazon in the US and Ireland</a> for its latest release. I noticed completely by chance and had the good fortune to post it within the hour of their launch, and since then a few different sites have picked up on the story.</p>
<p><a href="http://news.netcraft.com/archives/2010/10/26/wikileaks-heads-for-the-clouds.html#" target="_blank">Netcraft since blogged about the find here</a>, as did <a href="http://www.theregister.co.uk/2010/10/25/wikileaks_hosting_on_amazon_web_services/" target="_blank">The Register</a>, and most recently <a href="http://www.telegraph.co.uk/technology/amazon/8087651/Amazon-hosting-WikiLeaks-Warlogs-information.html#" target="_blank">The Daily Telegraph</a>. I also managed to get a <a href="http://twitter.com/#!/frontlineclub/status/28718944948" target="_blank">question asked via Twitter during the Frontline Club press conference</a> with Julian Assange but unfortunately some confusion led to a mixed answer.</p>
<p>With the increased press attention to the matter I&#8217;ve kept an eye on the domains every once in a while. As of today, the Amazon US mirror at 204.236.131.131 <strong>just got removed</strong> from one of the sites <a href="http://warlogs.wikileaks.org" target="_blank">http://warlogs.wikileaks.org</a> leaving only Ireland and France. The Irish IP is still run by Amazon, a US company.</p>
<p>Right now, the Amazon US mirror is still on the main site at <a href="http://wikileaks.org" target="_blank">http://wikileaks.org</a>, but I&#8217;ll update if this changes.</p>
<div id="attachment_248" class="wp-caption alignleft" style="width: 265px"><a href="http://boxbinary.com/wp-content/uploads/2010/10/mstoolbox.png"><img class="size-medium wp-image-248" title="mstoolbox" src="http://boxbinary.com/wp-content/uploads/2010/10/mstoolbox-255x300.png" alt="" width="255" height="300" /></a><p class="wp-caption-text">5:05pm BST</p></div>
<div id="attachment_249" class="wp-caption alignleft" style="width: 170px"><a href="http://boxbinary.com/wp-content/uploads/2010/10/wl.png"><img class="size-medium wp-image-249" title="wl" src="http://boxbinary.com/wp-content/uploads/2010/10/wl-160x300.png" alt="" width="160" height="300" /></a><p class="wp-caption-text">5:20pm BST</p></div>
<div id="attachment_247" class="wp-caption alignleft" style="width: 138px"><a href="http://boxbinary.com/wp-content/uploads/2010/10/main.png"><img class="size-medium wp-image-247" title="main" src="http://boxbinary.com/wp-content/uploads/2010/10/main-128x300.png" alt="" width="128" height="300" /></a><p class="wp-caption-text">5:20pm BST</p></div>
<p><br class="spacer_" /></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=2BjJkbNyDXI:NxKXicoUfkg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=2BjJkbNyDXI:NxKXicoUfkg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=2BjJkbNyDXI:NxKXicoUfkg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=2BjJkbNyDXI:NxKXicoUfkg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=2BjJkbNyDXI:NxKXicoUfkg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=2BjJkbNyDXI:NxKXicoUfkg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=2BjJkbNyDXI:NxKXicoUfkg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=2BjJkbNyDXI:NxKXicoUfkg:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BoxbinaryBlog/~4/2BjJkbNyDXI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://boxbinary.com/2010/10/wikileaks-removes-amazon-us-mirror-was-american-hosting-a-mistake/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://boxbinary.com/2010/10/wikileaks-removes-amazon-us-mirror-was-american-hosting-a-mistake/</feedburner:origLink></item>
		<item>
		<title>Why are some WikiLeaks Warlogs servers in the US? [Updated x7]</title>
		<link>http://feedproxy.google.com/~r/BoxbinaryBlog/~3/nGZbdw7JyOk/</link>
		<comments>http://boxbinary.com/2010/10/why-wikileaks-warlogs-site-servers-hosted-in-the-us-amazon-ec2-not-sweden/#comments</comments>
		<pubDate>Fri, 22 Oct 2010 23:36:14 +0000</pubDate>
		<dc:creator>Alex Norcliffe</dc:creator>
				<category><![CDATA[Publishing & Media]]></category>
		<category><![CDATA[amazon aws]]></category>
		<category><![CDATA[amazon ec2]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[netcraft]]></category>
		<category><![CDATA[pentagon]]></category>
		<category><![CDATA[warlogs]]></category>
		<category><![CDATA[wikileaks]]></category>

		<guid isPermaLink="false">http://boxbinary.com/?p=185</guid>
		<description><![CDATA[
	
		Tweet
	
	
			
				
			
		
[Update 7 - WikiLeaks have removed one of the US mirrors shortly after a Telegraph story went live - see my latest post, you might like to read the below first for context tough]
It&#8217;s been a tough week. My work backlog has grown since I&#8217;ve been ill most of the time, and I&#8217;ve been trying [...]]]></description>
			<content:encoded><![CDATA[
	<div style="float:right; margin-left:10px">
		<a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" data-text="Why are some WikiLeaks Warlogs servers in the US? [Updated x7] - BoxBinary Blog" data-url="http://boxbinary.com/2010/10/why-wikileaks-warlogs-site-servers-hosted-in-the-us-amazon-ec2-not-sweden/"  data-via="alex_norcliffe">Tweet</a>
	</div>
	<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fboxbinary.com%2F2010%2F10%2Fwhy-wikileaks-warlogs-site-servers-hosted-in-the-us-amazon-ec2-not-sweden%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fboxbinary.com%2F2010%2F10%2Fwhy-wikileaks-warlogs-site-servers-hosted-in-the-us-amazon-ec2-not-sweden%2F&amp;source=alex_norcliffe&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><em><small>[Update 7 - <a href="http://boxbinary.com/2010/10/wikileaks-removes-amazon-us-mirror-was-american-hosting-a-mistake/" target="_blank">WikiLeaks have removed one of the US mirrors shortly after a Telegraph story went live - see my latest post</a>, you might like to read the below first for context tough]</small></em></p>
<p>It&#8217;s been a tough week. My work backlog has grown since I&#8217;ve been ill most of the time, and I&#8217;ve been trying to catch up. However, just as I was going to bed tonight, my girlfriend was still at her office in Paris. She&#8217;s been writing some press coverage of the latest WikiLeaks release, and since it all went live tonight, I took a break to check out some of the work.</p>
<p>Techie as I am, eventually I branched off from looking at the press stories to see where the <a href="http://warlogs.wikileaks.org" target="_blank">WikiLeaks Warlogs site</a> servers were hosted &#8211; and since I was expecting it to be Sweden, I was somewhat blown away. It&#8217;s made me question if I&#8217;m still full of Ibuprofen, but I had to put this up to get some feedback.</p>
<p><a href="http://boxbinary.com/wp-content/uploads/2010/10/Capture3.png"><img class="size-medium wp-image-188 alignright" title="NetCraft report" src="http://boxbinary.com/wp-content/uploads/2010/10/Capture3-300x93.png" alt="" width="300" height="93" /></a></p>
<p>First of all I checked <a href="http://toolbar.netcraft.com/site_report?url=http://warlogs.wikileaks.org" target="_blank">Netcraft</a>. This reported it was hosted on Amazon EC2 in Ireland. Ireland? Amazon Web Services? I thought it was wrong.</p>
<p><br class="spacer_" /></p>
<p>So then I checked <a href="http://www.whatsmydns.net/#A/warlogs.wikileaks.org" target="_blank">what IP addresses were being returned globally</a> and this is where it got really strange.</p>
<p><img class="size-medium wp-image-187 alignright" title="DNS" src="http://boxbinary.com/wp-content/uploads/2010/10/Capture2-167x300.png" alt="" width="167" height="300" /></p>
<p>Originally when I wrote this there were four mirrors, but now there are five. The weird bit? Three out of the five are with US-owned company Amazon&#8217;s EC2 hosting service. A US-owned company. <strong>Two of those &#8211; two out of the five current mirrors &#8211; are on US soil in their west-coast datacenter.</strong> The remaining two are with Octopuce in France.</p>
<p>Isn&#8217;t it strange that WikiLeaks would host its latest inflammatory content on <strong>US soil</strong>, or even that some of the mirror servers are owned by a US company? WikiLeaks has taken great pains to ensure hosting of content in Sweden or other &#8220;friendly&#8221; jurisdictions in the past, and in fact <a href="https://donations.datacell.com/" target="_blank">their donation link</a> is reporting itself as in Iceland. The US and Ireland &#8211; and France for that matter &#8211; don&#8217;t seem like the safest &#8220;haven&#8221; for this data to remain online, after all in the past we&#8217;ve been told those &#8220;havens&#8221; are Iceland, or Sweden. What happened to those reputed <a href="http://blogs.forbes.com/andygreenberg/2010/08/30/wikileaks-servers-move-to-underground-nuclear-bunker/" target="_blank">Scandinavian bunkers</a>?</p>
<p>To be clear, this set of IP addresses isn&#8217;t a CDN. WikiLeaks isn&#8217;t giving French IP addresses to French visitors to aid in speed; this is a round-robin DNS spreading traffic crudely across multiple hosts around the world to cope with traffic and DDOS. What&#8217;s weird is that none of the IPs are in Sweden, and all of them are in principalities with relatively straightforward cease-and-desist legislation, and for any of them to be in the US seems absurd.</p>
<p>To caveat this, these are their front-end IPs. These nodes <em>could </em>simply be serving data retrieved from those reported <a href="http://blogs.forbes.com/andygreenberg/2010/08/30/wikileaks-servers-move-to-underground-nuclear-bunker/" target="_blank">bunkers</a>. But it still seems strange to me. Conspiracy theorists might ponder if it&#8217;s just asking for trouble. The US&#8217;s position, reported tonight by the BBC, is that &#8220;WikiLeaks has committed a crime by publishing stolen documents&#8221;. If true, why exacerbate it by doing so on US machines? Hasn&#8217;t that now just brought the issue smack bang into US jurisdiction?</p>
<p>Maybe it&#8217;s the Ibuprofen and I&#8217;m missing something &#8211; but this seems very odd to me.</p>
<div id="attachment_186" class="wp-caption alignnone" style="width: 297px"><a href="http://boxbinary.com/wp-content/uploads/2010/10/Capture.png"><img class="size-medium wp-image-186" title="VisualRoute" src="http://boxbinary.com/wp-content/uploads/2010/10/Capture-287x300.png" alt="" width="287" height="300" /></a><p class="wp-caption-text">Traceroute from Seattle terminating in AWS&#39;s west-cost region</p></div>
<p><strong>[Update 1 - Saturday 23rd] </strong>- WikiLeaks.org itself has now switched to these same servers, meaning the primary public-facing URL is now in part hosted inside the US, and in part by a US company.</p>
<p><strong>[Update 2 - Saturday 23rd]</strong> &#8211; Another mirror has been added in Amazon&#8217;s west-coast US region increasing the amount of traffic being served from inside the US.</p>
<p><strong>[Update 3 - Saturday 23rd]</strong> &#8211; <a href="http://cryptome.org" target="_blank">My post has been picked-up by cryptome.org on their homepage</a></p>
<p><a href="http://boxbinary.com/wp-content/uploads/2010/10/Capture4.png"><img class="alignnone size-medium wp-image-215" title="Cryptome.org homepage" src="http://boxbinary.com/wp-content/uploads/2010/10/Capture4-300x252.png" alt="" width="300" height="252" /></a></p>
<p><strong>[Update 4 - Monday 25th]</strong> &#8211; <a href="http://www.theregister.co.uk/2010/10/25/wikileaks_hosting_on_amazon_web_services/" target="_blank">My post has been picked up and covered by The Register</a></p>
<p><strong>[Update 5 - Tuesday 26th]</strong> &#8211; <a href="http://news.netcraft.com/archives/2010/10/26/wikileaks-heads-for-the-clouds.html" target="_blank">Netcraft has picked up my post and concurred with the location data</a></p>
<p><strong>[Update 6 - Tuesday 26th]</strong> &#8211; <a href="http://www.telegraph.co.uk/technology/amazon/8087651/Amazon-hosting-WikiLeaks-Warlogs-information.html" target="_blank">Telegraph story links here too</a></p>
<p><strong>[Update 7 - Tuesday 26th]</strong> &#8211; <a href="http://boxbinary.com/2010/10/wikileaks-removes-amazon-us-mirror-was-american-hosting-a-mistake/" target="_blank">WikiLeaks have removed one of the US mirrors shortly after the above Telegraph story went live</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=nGZbdw7JyOk:I4o8SCoP3c8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=nGZbdw7JyOk:I4o8SCoP3c8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=nGZbdw7JyOk:I4o8SCoP3c8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=nGZbdw7JyOk:I4o8SCoP3c8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=nGZbdw7JyOk:I4o8SCoP3c8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=nGZbdw7JyOk:I4o8SCoP3c8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=nGZbdw7JyOk:I4o8SCoP3c8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=nGZbdw7JyOk:I4o8SCoP3c8:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BoxbinaryBlog/~4/nGZbdw7JyOk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://boxbinary.com/2010/10/why-wikileaks-warlogs-site-servers-hosted-in-the-us-amazon-ec2-not-sweden/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		<feedburner:origLink>http://boxbinary.com/2010/10/why-wikileaks-warlogs-site-servers-hosted-in-the-us-amazon-ec2-not-sweden/</feedburner:origLink></item>
		<item>
		<title>Talk on Umbraco 5 at the UK Umbraco Festival</title>
		<link>http://feedproxy.google.com/~r/BoxbinaryBlog/~3/RZuY3C5m-z8/</link>
		<comments>http://boxbinary.com/2010/10/talk-on-umbraco-5-at-the-uk-umbraco-festival/#comments</comments>
		<pubDate>Tue, 19 Oct 2010 18:16:22 +0000</pubDate>
		<dc:creator>Alex Norcliffe</dc:creator>
				<category><![CDATA[Umbraco]]></category>
		<category><![CDATA[Umbraco 5]]></category>
		<category><![CDATA[Umbraco Community]]></category>

		<guid isPermaLink="false">http://boxbinary.com/?p=205</guid>
		<description><![CDATA[
	
		Tweet
	
	
			
				
			
		
I spoke last Friday at the UK Umbraco Festival, giving a snapshot of version 5 which is currently in development.
It was a great event and a testament to the powers of Warren Buckley (Xeed) and Adam Shallcross (The CogWorks) &#8211; their Umbraco community skills amaze me.
Here&#8217;s the synopsis of the talk below, here&#8217;s my slidedeck, [...]]]></description>
			<content:encoded><![CDATA[
	<div style="float:right; margin-left:10px">
		<a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" data-text="Talk on Umbraco 5 at the UK Umbraco Festival  - BoxBinary Blog" data-url="http://boxbinary.com/2010/10/talk-on-umbraco-5-at-the-uk-umbraco-festival/"  data-via="alex_norcliffe">Tweet</a>
	</div>
	<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fboxbinary.com%2F2010%2F10%2Ftalk-on-umbraco-5-at-the-uk-umbraco-festival%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fboxbinary.com%2F2010%2F10%2Ftalk-on-umbraco-5-at-the-uk-umbraco-festival%2F&amp;source=alex_norcliffe&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>I spoke last Friday at the <a href="umbraco-uk-festival.co.uk" target="_blank">UK Umbraco Festival</a>, giving a snapshot of version 5 which is currently in development.</p>
<p>It was a great event and a testament to the powers of <a href="http://twitter.com/#!/warrenbuckley" target="_blank">Warren Buckley</a> (<a href="xeed.co.uk" target="_blank">Xeed</a>) and <a href="http://twitter.com/#!/ashallcross01" target="_blank">Adam Shallcross</a> (<a href="http://thecogworks.co.uk/" target="_blank">The CogWorks</a>) &#8211; their Umbraco community skills amaze me.</p>
<p>Here&#8217;s the synopsis of the talk below, <a href="http://umbraco-uk-festival.co.uk/media/800/umbraco5%20-%20umbraco%20uk%20festival.pdf" target="_blank">here&#8217;s my slidedeck</a>, and <a href="http://stream.umbraco.org/video/863486/umbraco-uk-festival-alex" target="_blank">the video of the talk can be seen here at the Umbraco Stream site</a>.</p>
<p style="padding-left: 30px;"><em>&#8220;Umbraco 5 is going to become the Umbraco you know and love on the outside, with a leaner body on the inside. In this reasonably techie talk I&#8217;ll go through some of the architecture choices, and I&#8217;m sure at one or two points there&#8217;ll be Visual Studio and a browser up on screen to show everyone progress so far. It&#8217;s early days so we&#8217;ll be looking at the concepts in progress, but Umbraco 5 will be pluggable to the nth degree, so this talk will give a bit of insight into where things are headed and how we&#8217;re going to get there. For anyone interested in how we maintain a global team I&#8217;ll also give a quick insight into how we organise the project and explain about some of the upcoming milestones for the rest of 2010.&#8221;</em></p>
<p>There were great talks including the <a href="http://stream.umbraco.org/video/859833/umbraco-uk-festival-niels" target="_blank">keynote by Niels</a> in which he shows the upcoming Windows Phone 7 app for Umbraco, and skinning coming in version 4.6. Many of the others are available at <a href="http://stream.umbraco.org" target="_blank">http://stream.umbraco.org</a> &#8211; check it out. Thanks to all who came and made it a really interesting day out!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=RZuY3C5m-z8:_ZXuqON9pUI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=RZuY3C5m-z8:_ZXuqON9pUI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=RZuY3C5m-z8:_ZXuqON9pUI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=RZuY3C5m-z8:_ZXuqON9pUI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=RZuY3C5m-z8:_ZXuqON9pUI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=RZuY3C5m-z8:_ZXuqON9pUI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=RZuY3C5m-z8:_ZXuqON9pUI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=RZuY3C5m-z8:_ZXuqON9pUI:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BoxbinaryBlog/~4/RZuY3C5m-z8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://boxbinary.com/2010/10/talk-on-umbraco-5-at-the-uk-umbraco-festival/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://boxbinary.com/2010/10/talk-on-umbraco-5-at-the-uk-umbraco-festival/</feedburner:origLink></item>
		<item>
		<title>iPhone OS 4.0: Apple just hurt Wired &amp; Condé Nast, not just Adobe and the rest. The ’saviour of media’?</title>
		<link>http://feedproxy.google.com/~r/BoxbinaryBlog/~3/4d7NwuOatKs/</link>
		<comments>http://boxbinary.com/2010/04/apple-iphone-4-blocks-wired-conde-nast-adobe-media/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 21:50:59 +0000</pubDate>
		<dc:creator>Alex Norcliffe</dc:creator>
				<category><![CDATA[Publishing & Media]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[AppStore]]></category>
		<category><![CDATA[Condé Nast]]></category>
		<category><![CDATA[iPhone OS 4.0]]></category>
		<category><![CDATA[Wired]]></category>

		<guid isPermaLink="false">http://boxbinary.com/?p=165</guid>
		<description><![CDATA[As of right now, Twitter in my industry sphere is going mad over not just the iPhone OS 4.0 annoucement, but as part of it Apple's revision to their developer license agreement. Apple now insists that any applications allowed in the AppStore must henceforth be written in coding languages stipulated by Apple, and not be produced in a third-party application which translates other code to those languages.

There are many points around whether or not this harms competition, but I don't want to dwell on that here. My point is a little different: Apple just pulled the rug from under a valuable media partner in Condé Nast.]]></description>
			<content:encoded><![CDATA[
	<div style="float:right; margin-left:10px">
		<a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" data-text="iPhone OS 4.0: Apple just hurt Wired & Condé Nast, not just Adobe and the rest. The 'saviour of media'? - BoxBinary Blog" data-url="http://boxbinary.com/2010/04/apple-iphone-4-blocks-wired-conde-nast-adobe-media/"  data-via="alex_norcliffe">Tweet</a>
	</div>
	<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fboxbinary.com%2F2010%2F04%2Fapple-iphone-4-blocks-wired-conde-nast-adobe-media%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fboxbinary.com%2F2010%2F04%2Fapple-iphone-4-blocks-wired-conde-nast-adobe-media%2F&amp;source=alex_norcliffe&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>As of right now, Twitter in my industry sphere is going mad over not just the <a href="http://www.engadget.com/2010/04/08/iphone-os-4-0-unveiled-shipping-this-summer/" target="_blank">iPhone OS 4.0 annoucement</a>, but as part of it Apple&#8217;s revision to their developer license agreement. <a href="http://www.appleinsider.com/articles/10/04/08/apples_iphone_4_sdk_license_bans_flash_java_mono_apps.html" target="_blank">Apple now insists</a> that any applications allowed in the AppStore must henceforth be written in coding languages stipulated by Apple, and they cannot be produced in a third-party application which translates other code to those languages.</p>
<p>There are many points around whether or not this harms competition, but I don&#8217;t want to dwell on that here. My point is a little different: <strong>Apple just pulled the rug from under a valuable media partner in Condé Nast US.</strong> Why? Because Apple&#8217;s announcement not only scuppers the likes of MonoTouch, but it derails Adobe&#8217;s upcoming release of Flash Pro CS5 too, with its much-vaunted compile-to-iPhone functionality. It&#8217;s this media angle which I think is a particularly repulsive part of their move, because it&#8217;s not just &#8216;pesky Flash developers&#8217; who want easier access to write apps for the iPhone and iPad. It&#8217;s publishers, too.</p>
<p>Nearly two months ago <a href="http://www.wired.com/epicenter/2010/02/the-wired-ipad-app-a-video-demonstration/" target="_blank">Condé Nast US went public with a (rather cringeworthy) video of their iPad plans</a>. The article states &#8220;tablet&#8221;, but make no mistake &#8211; check the URL &#8211; this was iPad through and through. I should know; I used to work there. Despite its clear naivities in effective finger-based navigation as so deftly pointed out in the <a href="http://www.engadget.com/2010/02/17/wireds-tablet-app-goes-on-show-developed-on-air-heading-to-th/" target="_blank">Engadget coverage</a>, and whether or not you agree with the timing, Condé Nast announced that day not only a clear and sensible strategy but a key partnership in their adoption of Steve Jobs&#8217; magic pill: <a href="http://www.huffingtonpost.com/2010/02/17/wireds-ipad-edition-this_n_465392.html" target="_blank">joining with Adobe to write the application in AIR</a>, meaning they could publish to the iPad as well as other formats &#8211; without wasting investment on two identical products for competing devices being made and filled with content every month.</p>
<h4>The saviour of media?</h4>
<p>With typical aplomb, Apple has pitched itself recently as the champion of publishers whose traditions are vested mainly in print. For a long time many of these publishers &#8211; typically now some of the most entrenched and embattled &#8211; have been bourgeois Gentleman&#8217;s clubs accustomed to having their pockets lined by the hard work of <a href="http://www.nytimes.com/2010/04/03/business/03intern.html?partner=rss&amp;emc=rss" target="_blank">unpaid interns</a>, with magazines flying off the shelf and a queue of fresh blood to keep the seats warm if any staff should decide they want a fair salary. But as has been documented well, best in fact by some of the nimbler online publicitions, that position has become threatened in the past five years. Headcounts have had to be frozen; great and under-paid journalists have been made redundant. Largely to protect the salaries of the upper management from dipping below £500k, sure, but it&#8217;s enough for them to have been chilled into some form of reaction.</p>
<p>Earlier this year Steve Jobs went on a crusade to win them over; a mission to convince them that he could show them how they could make up for time and all their missed opportunities. &#8220;Music labels love iTunes, I can do the same for you!&#8221; et cetera, et cetera. The likes of the NYT and Wall Street Journal, even the AP, have clearly seen promise and have welcomed their new partner. He&#8217;s convinced them that he has the iPad-shaped key to save their content business.</p>
<p>After all, content is king, no? Well as this deftly-hidden, unannounced aspect to their latest fanfare shows, actually it&#8217;s Jobs who is King. He may make a few publishers a bit of cash on the side, but in his personal crusade against a lumbering Adobe, he just cost one very important media partner a lot of money in wasted effort.</p>
<p>We can only hope that the attention drawn by the Emperor&#8217;s new clothes doesn&#8217;t convince some of our great institutions to make their swan song an iTunes exclusive.</p>
<p>
<object id="flashObj" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="404" height="436" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="bgcolor" value="#FFFFFF" /><param name="flashVars" value="videoId=66775419001&amp;playerID=1813626064&amp;domain=embed&amp;" /><param name="base" value="http://admin.brightcove.com" /><param name="seamlesstabbing" value="false" /><param name="allowFullScreen" value="true" /><param name="swLiveConnect" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://c.brightcove.com/services/viewer/federated_f9/1813626064?isVid=1&amp;publisherID=1564549380" /><param name="name" value="flashObj" /><param name="flashvars" value="videoId=66775419001&amp;playerID=1813626064&amp;domain=embed&amp;" /><param name="allowfullscreen" value="true" /><embed id="flashObj" type="application/x-shockwave-flash" width="404" height="436" src="http://c.brightcove.com/services/viewer/federated_f9/1813626064?isVid=1&amp;publisherID=1564549380" name="flashObj" allowscriptaccess="always" swliveconnect="true" allowfullscreen="true" seamlesstabbing="false" base="http://admin.brightcove.com" flashvars="videoId=66775419001&amp;playerID=1813626064&amp;domain=embed&amp;" bgcolor="#FFFFFF"></embed></object>
</p>
<p><br class="spacer_" /></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=4d7NwuOatKs:g0yj4zdr9vA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=4d7NwuOatKs:g0yj4zdr9vA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=4d7NwuOatKs:g0yj4zdr9vA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=4d7NwuOatKs:g0yj4zdr9vA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=4d7NwuOatKs:g0yj4zdr9vA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=4d7NwuOatKs:g0yj4zdr9vA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=4d7NwuOatKs:g0yj4zdr9vA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=4d7NwuOatKs:g0yj4zdr9vA:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BoxbinaryBlog/~4/4d7NwuOatKs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://boxbinary.com/2010/04/apple-iphone-4-blocks-wired-conde-nast-adobe-media/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<feedburner:origLink>http://boxbinary.com/2010/04/apple-iphone-4-blocks-wired-conde-nast-adobe-media/</feedburner:origLink></item>
		<item>
		<title>Debugging Silverlight in Visual Studio: Breakpoints not being hit</title>
		<link>http://feedproxy.google.com/~r/BoxbinaryBlog/~3/9az5LCtgJNM/</link>
		<comments>http://boxbinary.com/2010/04/debugging-silverlight-in-visual-studio-breakpoints-not-being-hit/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 13:41:46 +0000</pubDate>
		<dc:creator>Alex Norcliffe</dc:creator>
				<category><![CDATA[Coding Tips]]></category>
		<category><![CDATA[Microsoft DPE + Umbraco project]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://boxbinary.com/?p=136</guid>
		<description><![CDATA[
	
		Tweet
	
	
			
				
			
		

Getting a development machine set up is a fine art of patience and a good memory. I personally recommend Ninite which is frankly awesome, followed by Visual Studio in its various flavours, followed by the Web Platform Installer.
However, with so many tools, frameworks, patches and add-ons to install it can be easy to miss something.
Even more [...]]]></description>
			<content:encoded><![CDATA[
	<div style="float:right; margin-left:10px">
		<a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" data-text="Debugging Silverlight in Visual Studio: Breakpoints not being hit - BoxBinary Blog" data-url="http://boxbinary.com/2010/04/debugging-silverlight-in-visual-studio-breakpoints-not-being-hit/"  data-via="alex_norcliffe">Tweet</a>
	</div>
	<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fboxbinary.com%2F2010%2F04%2Fdebugging-silverlight-in-visual-studio-breakpoints-not-being-hit%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fboxbinary.com%2F2010%2F04%2Fdebugging-silverlight-in-visual-studio-breakpoints-not-being-hit%2F&amp;source=alex_norcliffe&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://boxbinary.com/wp-content/uploads/2010/04/Fullscreen-capture-06042010-0209421.jpg"><img class="alignnone size-full wp-image-151" src="http://boxbinary.com/wp-content/uploads/2010/04/Fullscreen-capture-06042010-0209421.jpg" alt="" width="467" height="128" /></a></p>
<p><a href="http://boxbinary.com/wp-content/uploads/2010/04/Fullscreen-capture-06042010-020942.jpg"></a>Getting a development machine set up is a fine art of patience and a good memory. I personally recommend <a href="http://www.ninite.com" target="_blank">Ninite</a> which is frankly awesome, followed by Visual Studio in its various flavours, followed by the <a href="http://www.microsoft.com/Web/jumpstart/" target="_blank">Web Platform Installer</a>.</p>
<p>However, with so many tools, frameworks, patches and add-ons to install it can be easy to miss something.</p>
<p>Even more frustrating, sometimes it can even be easy to install things in the wrong order.</p>
<h4>Silverlight debugging: Get the right Tools</h4>
<p>Specifically for Silverlight, it can appear as if you have all the necessary pre-requisites to create and debug Silverlight applications in Visual Studio 2008 SP1, but in fact your breakpoints are never hit.</p>
<p>You have the Silverlight project templates installed, you&#8217;re happily mixing and matching Visual Studio and Expression access to your project tree, but when compiling and running your project, Visual Studio either flatly ignores your breakpoints or reports that the symbols haven&#8217;t been loaded and that the breakpoints won&#8217;t be hit.</p>
<h4>Some standard solutions</h4>
<p>A lot of Googling takes you to answers around the following, none of which have actually applied to me recently:</p>
<ul>
<li>Ensure you are running from a http:// address rather than a file:// address
<ul>
<li>In summary, do this by creating a separate Web application in your solution and then adding a link from it to your Silverlight project to ensure VS launches your browser pointing at a web server rather than the filesystem. </li>
<li>Debugging is disabled by default when going to local filesystem-based URLs.</li>
</ul>
</li>
<li>Ensure &#8220;Silverlight&#8221; debugging option in your website project Properties &gt; Web tab is checked
<ul>
<li>Some solutions even point to unchecking, then rechecking the option in order to kick VS into recognising the breakpoints.</li>
</ul>
</li>
<li>Manually attach to the browser process, since VS may have attached to the wrong instance.
<ul>
<li>This especially seems to hit IE8 users where Silverlight apps are reputedly launched in a separate process to the main HTML.</li>
</ul>
</li>
<li>Ensure you have &#8220;Silverlight&#8221; attachment type listed in the &#8220;Attach to process&#8230;&#8221; dialog box and that it is selected.
<ul>
<li>For example, attaching to iexplore.exe but selecting &#8220;T-SQL&#8221; as your attachment type will obviously not let you hit any Silverlight breakpoints.</li>
</ul>
</li>
</ul>
<h4>One other solution: install Silverlight Tools for Visual Studio 2008 SP1 (again)</h4>
<p>For me, the biggest single problem is flatly ensuring you have installed the Silverlight Tools installed <strong>after everything else</strong>.</p>
<p>With all the various installers, it&#8217;s actually possible to end-up with a fully functional Silverlight development environment, including all the GUI clues, but with debugging being an impossibility. How to diagnose it? Check if you have the Silverlight option in the debugging types:</p>
<p><a href="http://boxbinary.com/wp-content/uploads/2010/04/Fullscreen-capture-06042010-025839.bmp-1.jpg"><img class="alignnone size-full wp-image-141" title="&quot;Attach to process...&quot; dialog" src="http://boxbinary.com/wp-content/uploads/2010/04/Fullscreen-capture-06042010-025839.bmp-1.jpg" alt="" width="560" height="388" /></a></p>
<p>Without this type listed in the &#8220;Attach to process&#8230;&#8221; dialog, Visual Studio will give you no other clue that it won&#8217;t be able to hit breakpoints &#8211; even if you have &#8220;Silverlight&#8221; listed as a debugging option in the website properties.</p>
<p><a href="http://boxbinary.com/wp-content/uploads/2010/04/Download-details-Silverlight-3-Tools-Google-Chrome-06042010-021039.jpg"></a>Installing the <a href="http://go.microsoft.com/fwlink/?LinkID=143571" target="_blank">Silverlight Tools for Visual Studio SP1</a> ensures this is in place. Then you can go back through the other items in the checklist <img src='http://boxbinary.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h4>Some useful related links:</h4>
<ul>
<li>Silverlight Tools for Visual Studio SP1 mentioned above (<a href="http://go.microsoft.com/fwlink/?LinkID=143571" target="_blank">http://go.microsoft.com/fwlink/?LinkID=143571</a>)
<ul>
<li>Alternatively you can download the standalone Silverlight SDK from <a href="http://go.microsoft.com/fwlink/?LinkID=157102" target="_blank">http://go.microsoft.com/fwlink/?LinkID=157102</a>.</li>
</ul>
</li>
<li>Silverlight Toolkit (<a href="http://silverlight.codeplex.com/releases/view/36060" target="_blank">http://silverlight.codeplex.com</a>)
<ul>
<li>Not to be confused with the required developer tools, this is an awesome open-source set of examples to get your started with Silverlight.</li>
</ul>
</li>
<li>Silverlight + WCF RIA Services (<a href="http://www.silverlight.net/riaservices/" target="_blank">http://www.silverlight.net/riaservices/</a>)</li>
<li>The &#8220;Getting Started&#8221; page from Microsoft (<a href="http://www.silverlight.net/getstarted/" target="_blank">http://www.silverlight.net/getstarted/</a>)</li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=9az5LCtgJNM:Ly4_4paeX70:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=9az5LCtgJNM:Ly4_4paeX70:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=9az5LCtgJNM:Ly4_4paeX70:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=9az5LCtgJNM:Ly4_4paeX70:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=9az5LCtgJNM:Ly4_4paeX70:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=9az5LCtgJNM:Ly4_4paeX70:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=9az5LCtgJNM:Ly4_4paeX70:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=9az5LCtgJNM:Ly4_4paeX70:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BoxbinaryBlog/~4/9az5LCtgJNM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://boxbinary.com/2010/04/debugging-silverlight-in-visual-studio-breakpoints-not-being-hit/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		<feedburner:origLink>http://boxbinary.com/2010/04/debugging-silverlight-in-visual-studio-breakpoints-not-being-hit/</feedburner:origLink></item>
		<item>
		<title>My first time in Vegas: I’m going to MIX10</title>
		<link>http://feedproxy.google.com/~r/BoxbinaryBlog/~3/w0D8Fqhq75c/</link>
		<comments>http://boxbinary.com/2010/03/vegas-first-time-alex-norcliffe-going-to-mix10-microsoft-umbraco-xeed/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 17:07:33 +0000</pubDate>
		<dc:creator>Alex Norcliffe</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[BecauseMagazine]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Mix10]]></category>
		<category><![CDATA[Umbraco]]></category>
		<category><![CDATA[Xeed]]></category>

		<guid isPermaLink="false">http://boxbinary.com/?p=113</guid>
		<description><![CDATA[
	
		Tweet
	
	
			
				
			
		
Thanks to Microsoft and Xeed, I&#8217;m heading to the MIX10 conference which is running March 15th-17th.
I&#8217;m a little concerned by something though: everyone who I&#8217;ve told I&#8217;m in Las Vegas for a whole week has reacted with horror, sympathy and commiserations. A few days is fine, apparently &#8211; because you come home to recover. A [...]]]></description>
			<content:encoded><![CDATA[
	<div style="float:right; margin-left:10px">
		<a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" data-text="My first time in Vegas: I'm going to MIX10 - BoxBinary Blog" data-url="http://boxbinary.com/2010/03/vegas-first-time-alex-norcliffe-going-to-mix10-microsoft-umbraco-xeed/"  data-via="alex_norcliffe">Tweet</a>
	</div>
	<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fboxbinary.com%2F2010%2F03%2Fvegas-first-time-alex-norcliffe-going-to-mix10-microsoft-umbraco-xeed%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fboxbinary.com%2F2010%2F03%2Fvegas-first-time-alex-norcliffe-going-to-mix10-microsoft-umbraco-xeed%2F&amp;source=alex_norcliffe&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Thanks to Microsoft and <a href="http://xeed.co.uk" target="_blank">Xeed</a>, I&#8217;m heading to the <a href="http://live.visitmix.com/" target="_blank">MIX10</a> conference which is running March 15th-17th.</p>
<p>I&#8217;m a little concerned by something though: everyone who I&#8217;ve told I&#8217;m in Las Vegas for a whole week has reacted with horror, sympathy and commiserations. A few days is fine, apparently &#8211; because you come home to recover. A whole week? Not so much apparently. Great! I&#8217;m there from the 12th till the 20th because actually, thanks to lastminute.com, I got a direct flight and a cheaper package than if I was only going for a few days. Now I&#8217;m starting to wonder if it would have been better to go for less time and pay to come home and sleep&#8230;</p>
<p>Anyways, on to MIX. One reason I&#8217;m looking forward to it (and maybe one reason why Microsoft have invited me) is I&#8217;ve already been working on a Silverlight UI for media services as part of the <a href="http://mimecloud.com" target="_blank">MimeCloud</a> project <a href="http://wishfulcode.blogspot.com" target="_blank">Pete</a> and I have set up. I&#8217;m looking at some exciting ways of getting that into a handy package on a mobile device for reporters and journalists in the field, having made a bet that Silverlight would be on WPS7. I&#8217;ll also be playing a role in giving people an introduction to <a href="http://umbraco.org" target="_blank">Umbraco CMS</a>, at both the <a title="Yes, that's right. A free dinner provided by a free CMS. " href="http://umbraco.org/mix" target="_blank">free pre-party dinner</a> and at almost every other thinkable opportunity.</p>
<p>Here&#8217;s some of the sessions amongst many that grab my attention, give me a shout if you&#8217;re going to be there!</p>
<p><a href="http://live.visitmix.com/MIX10/Sessions/CL60">SILVERLIGHT PERFORMANCE ON WINDOWS PHONE</a></p>
<p><a href="http://live.visitmix.com/MIX10/Sessions/EX38">BUILDING LARGE-SCALE, DATA-CENTRIC APPLICATIONS WITH SILVERLIGHT</a></p>
<p><a href="http://live.visitmix.com/MIX10/Sessions/SVC08">CONNECTING YOUR APPLICATIONS IN THE CLOUD WITH WINDOWS AZURE APPFABRIC</a></p>
<p><a href="http://live.visitmix.com/MIX10/Sessions/FT05">THE HAAHA SHOW: MICROSOFT ASP.NET MVC SECURITY WITH HAACK AND HANSELMAN</a></p>
<p><a href="http://live.visitmix.com/MIX10/Sessions/FT04">WHAT&#8217;S NEW IN MICROSOFT ASP.NET MVC 2</a></p>
<p><a href="http://live.visitmix.com/MIX10/Sessions/SVC09">BUILDING AND DEPLOYING WINDOWS AZURE-BASED APPLICATIONS WITH MICROSOFT VISUAL STUDIO 2010</a></p>
<p><br class="spacer_" /></p>
<p>p.s. I forgot to say &#8211; my good friend, ex colleague and <a href="http://mimecloud.com" target="_blank">MimeCloud</a> partner <a href="http://wishfulcode.blogspot.com" target="_blank">Pete Miller</a> is going too so come find us if you&#8217;re interested in our open-source digital asset manager <img src='http://boxbinary.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=w0D8Fqhq75c:eHdMdNU4ktU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=w0D8Fqhq75c:eHdMdNU4ktU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=w0D8Fqhq75c:eHdMdNU4ktU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=w0D8Fqhq75c:eHdMdNU4ktU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=w0D8Fqhq75c:eHdMdNU4ktU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=w0D8Fqhq75c:eHdMdNU4ktU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=w0D8Fqhq75c:eHdMdNU4ktU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=w0D8Fqhq75c:eHdMdNU4ktU:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BoxbinaryBlog/~4/w0D8Fqhq75c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://boxbinary.com/2010/03/vegas-first-time-alex-norcliffe-going-to-mix10-microsoft-umbraco-xeed/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://boxbinary.com/2010/03/vegas-first-time-alex-norcliffe-going-to-mix10-microsoft-umbraco-xeed/</feedburner:origLink></item>
		<item>
		<title>Working with Microsoft to create free, open-source software</title>
		<link>http://feedproxy.google.com/~r/BoxbinaryBlog/~3/F9kwDOkoC5E/</link>
		<comments>http://boxbinary.com/2010/03/alex-norcliffe-and-microsoft-create-free-open-source-umbraco-software/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 16:41:39 +0000</pubDate>
		<dc:creator>Alex Norcliffe</dc:creator>
				<category><![CDATA[Umbraco]]></category>
		<category><![CDATA[Mark Quirk]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Microsoft DPE + Umbraco project]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Umbraco Community]]></category>
		<category><![CDATA[Will Coleman]]></category>

		<guid isPermaLink="false">http://boxbinary.com/?p=115</guid>
		<description><![CDATA[
	
		Tweet
	
	
			
				
			
		
Doesn&#8217;t sound like the normal kind of Microsoft connection, does it? &#8220;Free and open-source&#8221;. But that&#8217;s exactly what I&#8217;ve been working on recently with them on a project to which I alluded already.
It&#8217;s about time I blogged about it.
I&#8217;m helping out in my spare time (which is thinning out amongst moving house and offices) on a [...]]]></description>
			<content:encoded><![CDATA[
	<div style="float:right; margin-left:10px">
		<a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" data-text="Working with Microsoft to create free, open-source software - BoxBinary Blog" data-url="http://boxbinary.com/2010/03/alex-norcliffe-and-microsoft-create-free-open-source-umbraco-software/"  data-via="alex_norcliffe">Tweet</a>
	</div>
	<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fboxbinary.com%2F2010%2F03%2Falex-norcliffe-and-microsoft-create-free-open-source-umbraco-software%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fboxbinary.com%2F2010%2F03%2Falex-norcliffe-and-microsoft-create-free-open-source-umbraco-software%2F&amp;source=alex_norcliffe&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Doesn&#8217;t sound like the normal kind of Microsoft connection, does it? &#8220;Free and open-source&#8221;. But that&#8217;s exactly what I&#8217;ve been working on recently with them on a project to which <a title="Extending Umbraco: Visual Studio DocType designer add-in" href="http://boxbinary.com/2010/02/umbraco-visual-studio-document-type-editor-add-in/">I alluded already</a>.</p>
<p>It&#8217;s about time I blogged about it.</p>
<p>I&#8217;m helping out in my spare time (which is thinning out amongst moving house and offices) on a collaboration between Microsoft and some great guys who are big in the Umbraco UK community. The project has come about quite by chance, for me anyway. I simply got a Skype IM from <a href="http://twitter.com/warrenbuckley" target="_blank">Warren Buckley</a> asking if I could make a meeting at Microsoft about Umbraco ideas, and that was about it.</p>
<p>So, invite accepted and time having passed, I turned up at the MS offices in London with <a title="Extending Umbraco: Visual Studio DocType designer add-in" href="http://boxbinary.com/2010/02/umbraco-visual-studio-document-type-editor-add-in/">some concepts I&#8217;d thought up on the tube</a>. <a title="The 5th birthday Umbraco meetup, working with Microsoft &amp; the Dictionary Translator" href="http://www.creativewebspecialist.co.uk/2010/03/04/the-5th-birthday-umbraco-meetup-working-with-microsoft--the-dictionary-translator.aspx" target="_blank">Warren explains in his blogpost how the meeting came about</a>, through various fortuitous connections, but I had come late to the party and didn&#8217;t really know much &#8211; other than Microsoft wanted to fund some new Umbraco packages.</p>
<p>I had been expecting this to be a secretive affair, keeping my ideas amongst myself and the Umbraco guys before sharing properly with the Big Corporate Giant &#8211; I mean, this was Microsoft, right? The Redmond behemoth that&#8217;ll sell your gran without asking and then charge you a fee?</p>
<p>Well, as it turned out I was a bit presumptive. Myself, <a href="http://www.creativewebspecialist.co.uk/" target="_blank">Warren</a>, <a href="http://www.darren-ferguson.com/" target="_blank">Darren Ferguson</a>, <a href="http://munkimagik.wordpress.com/" target="_blank">Tim Saunders</a>, and <a href="http://twitter.com/ashallcross01" target="_blank">Adam Shallcross</a> all piled into a very funky meeting room and sat wondering where this would go. <a href="http://twitter.com/will_coleman" target="_blank">Will Coleman</a>, Platform Strategy Advisor, and <a href="http://uk.linkedin.com/in/markquirk" target="_blank">Mark Quirk</a> (UK Head of Technology, Developer &amp; Platform Group), proceeded to win us over in about 5 minutes flat.</p>
<p>As Will described, Microsoft wants to shake off some of its shackles and get lightfooted, and make genuinely friendly connections with the open-source communities. Starting with Wordpress, Drupal and most importantly Umbraco, they want to help by doing some seed funding of plugins and packages. The results and code can be released back into the community and, in a somewhat fair exchange, more people get a chance to see a new side to what the MS toolset can do.</p>
<h4>So what has happened since?</h4>
<p>Well, at that and subsequent meetings we agreed on a core set of ideas and packages on which to focus. Darren has done some great work using Silverlight to make Umbraco&#8217;s media library more accessible, and I&#8217;ve worked on its architecture. I also invited Pete Miller into the fray too so we can both help bring some of the experience from Condé Nast and our MimeCloud project where media is concerned. Tim and <a href="http://ismailmayat.wordpress.com/" target="_blank">Ismail</a> are working on an interesting combination of a key-value table datatype in Umbraco, together with a Silverlight UI for data manipulation. And there are a few other ideas up our sleeves to finish this month.</p>
<p>One aspect of building up awareness around this project is that we&#8217;ll all be blogging regularly and Microsoft will be spreading some link love far and wide. We&#8217;ll also be doing some screencast / video posts in the coming weeks around how we&#8217;ve used the tools.</p>
<p>I think it&#8217;s a nice project for Umbraco. A few new packages will appear on the Our repository, and Umbraco gets another pat on the back from a huge brand.</p>
<p><br class="spacer_" /></p>
<p>One other thing: Will is also likely to come along to CodeGarden10, as part of a Microsoft attendance there, which will be cool. He&#8217;s a nice bloke and I&#8217;m sure will really look forward to everyone at the conference doing what we did incessantly: jibe him about Google Docs and ask him for free copies of Windows&#8230;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=F9kwDOkoC5E:12hdfVjRoCs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=F9kwDOkoC5E:12hdfVjRoCs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=F9kwDOkoC5E:12hdfVjRoCs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=F9kwDOkoC5E:12hdfVjRoCs:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=F9kwDOkoC5E:12hdfVjRoCs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=F9kwDOkoC5E:12hdfVjRoCs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=F9kwDOkoC5E:12hdfVjRoCs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=F9kwDOkoC5E:12hdfVjRoCs:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BoxbinaryBlog/~4/F9kwDOkoC5E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://boxbinary.com/2010/03/alex-norcliffe-and-microsoft-create-free-open-source-umbraco-software/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://boxbinary.com/2010/03/alex-norcliffe-and-microsoft-create-free-open-source-umbraco-software/</feedburner:origLink></item>
		<item>
		<title>Extending Umbraco: Visual Studio DocType designer add-in</title>
		<link>http://feedproxy.google.com/~r/BoxbinaryBlog/~3/-RTOXqor4Rw/</link>
		<comments>http://boxbinary.com/2010/02/umbraco-visual-studio-document-type-editor-add-in/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 14:17:56 +0000</pubDate>
		<dc:creator>Alex Norcliffe</dc:creator>
				<category><![CDATA[Umbraco]]></category>
		<category><![CDATA[Document Type designer]]></category>
		<category><![CDATA[Microsoft DPE + Umbraco project]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://boxbinary.com/?p=86</guid>
		<description><![CDATA[
	
		Tweet
	
	
			
				
			
		

The other week I had an idea on the Underground whilst crammed in during rush hour. I was face-to-face with a stinker of some fella&#8217;s armpit and my brain decided to change the subject.
I started thinking of Umbraco package ideas.
Just to be clear, my inner monologue doesn&#8217;t always go &#8220;Visual Studio! To the bat cave!&#8221; [...]]]></description>
			<content:encoded><![CDATA[
	<div style="float:right; margin-left:10px">
		<a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" data-text="Extending Umbraco: Visual Studio DocType designer add-in - BoxBinary Blog" data-url="http://boxbinary.com/2010/02/umbraco-visual-studio-document-type-editor-add-in/"  data-via="alex_norcliffe">Tweet</a>
	</div>
	<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fboxbinary.com%2F2010%2F02%2Fumbraco-visual-studio-document-type-editor-add-in%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fboxbinary.com%2F2010%2F02%2Fumbraco-visual-studio-document-type-editor-add-in%2F&amp;source=alex_norcliffe&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://boxbinary.com/wp-content/uploads/2010/02/3093534823_5d6e5467d6-e1267070388580.jpg"><img class="size-medium wp-image-102 alignleft" title="Flickr user alaric.uk / Creative Commons" src="http://boxbinary.com/wp-content/uploads/2010/02/3093534823_5d6e5467d6-e1267070388580-222x300.jpg" alt="" width="142" height="192" /></a></p>
<p>The other week I had an idea on the Underground whilst crammed in during rush hour. I was face-to-face with a stinker of some fella&#8217;s armpit and my brain decided to change the subject.</p>
<p>I started thinking of Umbraco package ideas.</p>
<p>Just to be clear, my inner monologue doesn&#8217;t always go &#8220;Visual Studio! To the bat cave!&#8221; when faced with a mass of people &#8211; I have an excuse: I&#8217;m working on a Microsoft project at the moment, and the goal is to help the Umbraco community by working on some specific free packages. Every chance I&#8217;ve had, I&#8217;ve been thinking of exactly what I&#8217;d like to do to extend Umbraco with Microsoft products, especially with the focus of giving some useful tools to developers and end-users.</p>
<p>Not all of these ideas were any good, of course. And one was for Wordpress, so that was out. Awkward. Some of them were also a little out of scope too, focussing on Microsoft products that are already selling just fine for example. But it has definitely been refreshing to take a step back from 4.1 and start thinking around package development and &#8220;products&#8221;.</p>
<p>The thing is, some of those ideas that were out of scope still have legs even if there isn&#8217;t yet a budget. So in my spare time I thought I&#8217;d get stuck into my favourite.</p>
<h4>I&#8217;ve started work on a Visual Studio 2008/2010 add-in which allows developers to configure Umbraco from within the IDE.</h4>
<p>In particular, it will allow for the <strong>creation and editing of the document type structure</strong>, without switching into the browser. It&#8217;s coming on quicker than I thought and I should have something in March to release as a first beta.</p>
<p>With a bit of luck I&#8217;ll be able to get some MS help one way or the other, and I know <a href="http://www.benjaminhowarth.com/" target="_blank">Benjamin</a> is keen on collaborating too as he&#8217;s been thinking along similar lines, so watch this space &#8211; Umbraco could be about to get even quicker from 0 to website.</p>
<p><br class="spacer_" /></p>
<p>I <em>still</em> reckon that Wordpress idea was cool though: &#8220;a plugin to replace all of Wordpress with basically something else&#8221;. Cracker.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=-RTOXqor4Rw:TJEvv0B1nyU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=-RTOXqor4Rw:TJEvv0B1nyU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=-RTOXqor4Rw:TJEvv0B1nyU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=-RTOXqor4Rw:TJEvv0B1nyU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=-RTOXqor4Rw:TJEvv0B1nyU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=-RTOXqor4Rw:TJEvv0B1nyU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=-RTOXqor4Rw:TJEvv0B1nyU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=-RTOXqor4Rw:TJEvv0B1nyU:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BoxbinaryBlog/~4/-RTOXqor4Rw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://boxbinary.com/2010/02/umbraco-visual-studio-document-type-editor-add-in/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://boxbinary.com/2010/02/umbraco-visual-studio-document-type-editor-add-in/</feedburner:origLink></item>
		<item>
		<title>MimeCloud: Scalable .NET Digital Asset &amp; Media Management</title>
		<link>http://feedproxy.google.com/~r/BoxbinaryBlog/~3/fqqFj_4UsPQ/</link>
		<comments>http://boxbinary.com/2010/02/mimecloud-scalable-net-framework-digital-asset-media-image-management/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 02:24:07 +0000</pubDate>
		<dc:creator>Alex Norcliffe</dc:creator>
				<category><![CDATA[MimeCloud]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Astoria]]></category>
		<category><![CDATA[Digital Asset Management]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Umbraco]]></category>

		<guid isPermaLink="false">http://boxbinary.com/?p=55</guid>
		<description><![CDATA[
	
		Tweet
	
	
			
				
			
		
Expected Beta 1: End March 2010
Today Pete and I reached a milestone with a project we&#8217;ve been working on in our spare time for a while. Within the last week we&#8217;ve decided to go public and will be spreading the word far and wide over the next month.
We got the CodePlex project sorted, and first [...]]]></description>
			<content:encoded><![CDATA[
	<div style="float:right; margin-left:10px">
		<a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" data-text="MimeCloud: Scalable .NET Digital Asset & Media Management  - BoxBinary Blog" data-url="http://boxbinary.com/2010/02/mimecloud-scalable-net-framework-digital-asset-media-image-management/"  data-via="alex_norcliffe">Tweet</a>
	</div>
	<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fboxbinary.com%2F2010%2F02%2Fmimecloud-scalable-net-framework-digital-asset-media-image-management%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fboxbinary.com%2F2010%2F02%2Fmimecloud-scalable-net-framework-digital-asset-media-image-management%2F&amp;source=alex_norcliffe&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<h5><em><a rel="attachment wp-att-68" href="http://boxbinary.com/2010/02/mimecloud-scalable-net-framework-digital-asset-media-image-management/screenshot-mimecloud-solutionexplorer-2/"><img class="alignright size-medium wp-image-68" title="Visual Studio early screenshot" src="http://boxbinary.com/wp-content/uploads/2010/02/screenshot-mimecloud-solutionexplorer1-261x300.png" alt="Visual Studio early screenshot" width="261" height="300" /></a>Expected Beta 1: End March 2010</em></h5>
<p>Today Pete and I reached a milestone with a project we&#8217;ve been working on in our spare time for a while. Within the last week we&#8217;ve decided to go public and will be spreading the word far and wide over the next month.</p>
<p>We got the CodePlex project sorted, and first checkin batch done for our open-source digital asset management system called <strong>MimeCloud</strong>.</p>
<p><a href="http://www.mimecloud.com" target="_blank">The link to it on CodePlex is at mimecloud.codeplex.com, the mimecloud.com domains redirect there for now.</a></p>
<p>It&#8217;s not finishet yet; we&#8217;ve a fair few weeks to go until the first Beta, and we&#8217;re just starting to invite collaborators now that the core architecture is formed. But it&#8217;s going to be awesome, and I hope a lot of people will benefit from it. For a start, we&#8217;re going to a build a package so you can use it in <a href="http://umbraco.org" target="_blank">Umbraco CMS</a> <img src='http://boxbinary.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Here are a few snippets from the project homepage:</p>
<h5>What is MimeCloud?</h5>
<ul>
<li>MimeCloud is an open-source media asset library built for lightning speed and scalability</li>
<li>You can use MimeCloud to:
<ul>
<li>Manage the images and video on your blog or website (Wordpress or Umbraco? No problem!)</li>
<li>Replace the image management module of your website&#8217;s CMS with something more powerful, extensible, and easier to use</li>
<li>Manage usage rights information on your digital media archive (publishers? Hello!)</li>
<li>Attach metadata in multiple languages to the same image, video or asset</li>
<li>Quickly upload 1 or 1000 assets in a batch, with resizing and thumbnail generation on the fly</li>
</ul>
</li>
<li>The project was founded by <a href="http://www.boxbinary.com/">Alex Norcliffe</a> and <a href="http://wishfulcode.blogspot.com/">Peter Miller</a></li>
</ul>
<h5>What platform does MimeCloud use?</h5>
<ul>
<li>MimeCloud builds against Microsoft .NET 3.5SP1, and consists of the following pillars:
<ul>
<li>Robust datalayer built on Microsoft SQL Server and Lucene.net</li>
<li>Extensible API in both WCF and RESTful forms exposed using IIS</li>
<li>Several clients including a full-featured Silverlight image manipulation and batch upload tool, and an ASP.NET MVC administration tool for basic upload and library searching</li>
<li>Storage of assets can be via FTP, HTTP upload, Amazon S3, Microsoft Azure &#8211; whatever you prefer</li>
</ul>
</li>
</ul>
<h5>What&#8217;s a Media Library? Is this Digital Asset Management? I just want to upload images to my site</h5>
<ul>
<li>No worries &#8211; just because MimeCloud can cope with millions of images and videos doesn&#8217;t mean it&#8217;s difficult to use, or resource intensive.</li>
<li>You can have MimeCloud installed on a simple blog in minutes, and use it every now and then, and it will still have cost you nothing (<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=FMKZ9VVBLGV5W">unless you want to donate</a>)</li>
</ul>
<h5>Does it only handle images?</h5>
<ul>
<li>Not at all! We called it MimeCloud for a reason &#8211; the entire system is pluggable and supports anything describable by a MIME type. Out of the box we have support for <strong>images</strong>, <strong>videos</strong>, <strong>PDFs</strong>, <strong>Microsoft Office</strong>, and if there is a filetype you need that isn&#8217;t yet supported you can write a provider to tell MimeCloud how to handle it.</li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=fqqFj_4UsPQ:fSsdjMo3acg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=fqqFj_4UsPQ:fSsdjMo3acg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=fqqFj_4UsPQ:fSsdjMo3acg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=fqqFj_4UsPQ:fSsdjMo3acg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=fqqFj_4UsPQ:fSsdjMo3acg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=fqqFj_4UsPQ:fSsdjMo3acg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=fqqFj_4UsPQ:fSsdjMo3acg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=fqqFj_4UsPQ:fSsdjMo3acg:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BoxbinaryBlog/~4/fqqFj_4UsPQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://boxbinary.com/2010/02/mimecloud-scalable-net-framework-digital-asset-media-image-management/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://boxbinary.com/2010/02/mimecloud-scalable-net-framework-digital-asset-media-image-management/</feedburner:origLink></item>
		<item>
		<title>Descriptive CacheManager Framework announced</title>
		<link>http://feedproxy.google.com/~r/BoxbinaryBlog/~3/mFVIWGc89_s/</link>
		<comments>http://boxbinary.com/2010/02/descriptive-asp-net-cache-manager-framework-announced-supports-replication/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 22:00:06 +0000</pubDate>
		<dc:creator>Alex Norcliffe</dc:creator>
				<category><![CDATA[ASP.NET Caching]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Cache replication]]></category>
		<category><![CDATA[Caching]]></category>
		<category><![CDATA[CodePlex]]></category>
		<category><![CDATA[Large-team development]]></category>
		<category><![CDATA[Load balancing]]></category>
		<category><![CDATA[Personal Projects]]></category>
		<category><![CDATA[Scalability]]></category>

		<guid isPermaLink="false">http://www.boxbinary.com/?p=41</guid>
		<description><![CDATA[
	
		Tweet
	
	
			
				
			
		
I finally got my Descriptive CacheManager Framework up on CodePlex.
I devised this in 2007 as part of a personal project, it&#8217;s code that I&#8217;ve maintained since, and it&#8217;s been in use on very high traffic sites of over 40 million pageviews per month in the past three years &#8211; so it&#8217;s pretty battle-hardened.
It&#8217;s 2010 and [...]]]></description>
			<content:encoded><![CDATA[
	<div style="float:right; margin-left:10px">
		<a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" data-text="Descriptive CacheManager Framework announced - BoxBinary Blog" data-url="http://boxbinary.com/2010/02/descriptive-asp-net-cache-manager-framework-announced-supports-replication/"  data-via="alex_norcliffe">Tweet</a>
	</div>
	<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fboxbinary.com%2F2010%2F02%2Fdescriptive-asp-net-cache-manager-framework-announced-supports-replication%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fboxbinary.com%2F2010%2F02%2Fdescriptive-asp-net-cache-manager-framework-announced-supports-replication%2F&amp;source=alex_norcliffe&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>I finally got my Descriptive CacheManager Framework up on CodePlex.</p>
<p>I devised this in 2007 as part of a personal project, it&#8217;s code that I&#8217;ve maintained since, and it&#8217;s been in use on very high traffic sites of over 40 million pageviews per month in the past three years &#8211; so it&#8217;s pretty battle-hardened.</p>
<p>It&#8217;s 2010 and the time has come to share the code with the community!</p>
<p><strong>What&#8217;s it for?</strong></p>
<p>The Descriptive CacheManager Framework allows you to take a simple, different, and more effective method of caching items in ASP.NET. The developer defines descriptive categories to decorate their objects, rather than arbitrary timeout values, which are then used by the framework to determine an overall policy based on its knowledge of all items under its supervision.</p>
<p>It can also:</p>
<ul>
<li>Replicate cache items to other web servers in your load balanced setup (even those outside of the same network)</li>
<li>Allow cache items to survive application restarts</li>
</ul>
<p>All without replacing the famously good underlying ASP.NET cache itself.</p>
<p><a href="http://webcachemanager.codeplex.com/" target="_blank">The CodePlex project for it is here. Check it out and let me know what you think!</a></p>
<p>I&#8217;ll be doing a series of posts here and updates to the CodePlex project with demonstration configuration files in the coming week. Do get in touch if you want to know more information!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=mFVIWGc89_s:BHDr7mIXWhQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=mFVIWGc89_s:BHDr7mIXWhQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=mFVIWGc89_s:BHDr7mIXWhQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=mFVIWGc89_s:BHDr7mIXWhQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=mFVIWGc89_s:BHDr7mIXWhQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=mFVIWGc89_s:BHDr7mIXWhQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=mFVIWGc89_s:BHDr7mIXWhQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=mFVIWGc89_s:BHDr7mIXWhQ:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BoxbinaryBlog/~4/mFVIWGc89_s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://boxbinary.com/2010/02/descriptive-asp-net-cache-manager-framework-announced-supports-replication/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://boxbinary.com/2010/02/descriptive-asp-net-cache-manager-framework-announced-supports-replication/</feedburner:origLink></item>
		<item>
		<title>Umbraco 5th birthday event, London (Updated)</title>
		<link>http://feedproxy.google.com/~r/BoxbinaryBlog/~3/pqV4CjsX8j4/</link>
		<comments>http://boxbinary.com/2010/02/umbraco-5th-birthday-event-london/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 23:30:23 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Umbraco News]]></category>
		<category><![CDATA[Umbraco]]></category>

		<guid isPermaLink="false">http://boxbinary.wordpress.com/?p=3</guid>
		<description><![CDATA[
	
		Tweet
	
	
			
				
			
		
Today was cracking for a number of reasons: I got a bunch of stuff checked-in to the Umbraco 4.1 branch, made it to Umbraco&#8217;s 5th birthday event on the Thames in London, met up with a tonne of interesting people all variously involved in implementing Umbraco solutions around the UK, and did a talk with [...]]]></description>
			<content:encoded><![CDATA[
	<div style="float:right; margin-left:10px">
		<a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" data-text="Umbraco 5th birthday event, London (Updated) - BoxBinary Blog" data-url="http://boxbinary.com/2010/02/umbraco-5th-birthday-event-london/"  data-via="alex_norcliffe">Tweet</a>
	</div>
	<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fboxbinary.com%2F2010%2F02%2Fumbraco-5th-birthday-event-london%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fboxbinary.com%2F2010%2F02%2Fumbraco-5th-birthday-event-london%2F&amp;source=alex_norcliffe&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Today was cracking for a number of reasons: I got a bunch of stuff checked-in to the Umbraco 4.1 branch, made it to Umbraco&#8217;s 5th birthday event on the Thames in London, met up with a tonne of interesting people all variously involved in implementing Umbraco solutions around the UK, and did a talk with Pete Miller on scalability and cloud hosting.</p>
<p>The event itself was, by all accounts, a great success. <a href="http://twitter.com/ashallcross01" target="_blank">Adam Shalcross (Cogworks)</a> and <a href="http://twitter.com/warrenbuckley" target="_blank">Warren Buckley (Xeed)</a> did a great job of organising it all, so much so that the venue had to be changed to fit the amount of people who wanted to go.</p>
<p>Here&#8217;s the video of our talk. The first part of my intro I think I was still recovering from 4 days&#8217; food poisoning on which I&#8217;ll blame my propensity for saying &#8220;erm&#8221;, but I like to think I settled down eventually&#8230;</p>
<p>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="551" height="413" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=9644112&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=ff0179&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="551" height="413" src="http://vimeo.com/moogaloop.swf?clip_id=9644112&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=ff0179&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object>
</p>
<p><a href="http://vimeo.com/9644112">Alex Norcliffe &amp; Peter Miller from CondeNast – Cloud computing &amp; scalability</a> from <a href="http://vimeo.com/orcare">Paul Marden</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=pqV4CjsX8j4:H1g1w3X9xxU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=pqV4CjsX8j4:H1g1w3X9xxU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=pqV4CjsX8j4:H1g1w3X9xxU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=pqV4CjsX8j4:H1g1w3X9xxU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=pqV4CjsX8j4:H1g1w3X9xxU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=pqV4CjsX8j4:H1g1w3X9xxU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BoxbinaryBlog?a=pqV4CjsX8j4:H1g1w3X9xxU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/BoxbinaryBlog?i=pqV4CjsX8j4:H1g1w3X9xxU:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/BoxbinaryBlog/~4/pqV4CjsX8j4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://boxbinary.com/2010/02/umbraco-5th-birthday-event-london/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://boxbinary.com/2010/02/umbraco-5th-birthday-event-london/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 1.774 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-03-01 20:15:49 -->

