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

<channel>
	<title>Even the wrong words seem to rhyme &#187; Uncategorized</title>
	<atom:link href="http://www.kevinblake.co.uk/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kevinblake.co.uk</link>
	<description>a blog-life by Kevin Blake</description>
	<lastBuildDate>Sat, 04 Feb 2012 19:58:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Running PowerShell to change MSBuild scripts with NuGet</title>
		<link>http://www.kevinblake.co.uk/running-powershell-to-change-msbuild-scripts-with-nuget/892/</link>
		<comments>http://www.kevinblake.co.uk/running-powershell-to-change-msbuild-scripts-with-nuget/892/#comments</comments>
		<pubDate>Sat, 04 Feb 2012 19:58:55 +0000</pubDate>
		<dc:creator>Kevin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[msbuild]]></category>
		<category><![CDATA[nuget]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://www.kevinblake.co.uk/?p=892</guid>
		<description><![CDATA[One of the things I&#8217;ve missed from creating a number of NuGet packages, is not being able to add msbuild tasks to the .csproj file.  From running web.config transforms, versioning assemblies, to running unit tests, code analysis, or deployments &#8211; msbuild can add quite a lot of cherries to your builds.  In a web agency, [...]]]></description>
			<content:encoded><![CDATA[<p>One of the things I&#8217;ve missed from creating a number of NuGet packages, is not being able to add msbuild tasks to the .csproj file.  From running web.config transforms, versioning assemblies, to running unit tests, code analysis, or deployments &#8211; msbuild can add quite a lot of cherries to your builds.  In a web agency, I work with a lot of projects for fairly short periods of time, and even copying and pasting all those useful scripts means they often get missed / take too much time, or just plain break because I&#8217;ve forgotten something.</p>
<p>Re-using code still can take hours out of my project which I&#8217;d much rather be using to create something new.  Combine that with a larger team of people doing the same thing, and we need a better solution.</p>
<p>NuGet makes it very easy to install binaries or content/src files, and the <a href="http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package" target="_blank">nuspec syntax</a> is beautifully simplistic.  In it&#8217;s absolute barest form, it looks a little like this:</p>
<div id="wpshdo_1" class="wp-synhighlighter-outer"><div id="wpshdt_1" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_1"></a><a id="wpshat_1" class="wp-synhighlighter-title" href="#codesyntax_1"  onClick="javascript:wpsh_toggleBlock(1)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_1" onClick="javascript:wpsh_code(1)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_1" onClick="javascript:wpsh_print(1)" title="Print code"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_1" class="wp-synhighlighter-inner" style="display: block;"><pre class="xml" style="font-family:monospace;"><span class="sc3"><span class="re1">&lt;package</span> <span class="re0">xmlns</span>=<span class="st0">&quot;http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd&quot;</span><span class="re2">&gt;</span></span>
  <span class="sc3"><span class="re1">&lt;metadata<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;id<span class="re2">&gt;</span></span></span>VersionAssembly.Mvc<span class="sc3"><span class="re1">&lt;/id<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;version<span class="re2">&gt;</span></span></span>1.6<span class="sc3"><span class="re1">&lt;/version<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;authors<span class="re2">&gt;</span></span></span>Kevin Blake<span class="sc3"><span class="re1">&lt;/authors<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;description<span class="re2">&gt;</span></span></span>Version Assembly<span class="sc3"><span class="re1">&lt;/description<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;/metadata<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;files<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;file</span> <span class="re0">src</span>=<span class="st0">&quot;VersionController.cs.pp&quot;</span> <span class="re0">target</span>=<span class="st0">&quot;content\Controllers&quot;</span> <span class="re2">/&gt;</span></span>
  <span class="sc3"><span class="re1">&lt;/files<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;/package<span class="re2">&gt;</span></span></span></pre></div></div>
<p>That doesn&#8217;t look like very much, but when we create a NuGet package (nuget.exe pack .), we&#8217;re going to get a package that will install a new controller, and the .pp file extensions means that file will be processed to include the correct namespace for our project.  In this case, the controller just outputs the assembly version number &#8211; but that&#8217;s not important.</p>
<p>We can also add dll&#8217;s to this, with target=&#8221;lib&#8221;, for all those libraries you&#8217;ve got hanging around on your server.  More excitingly, you can run PowerShell scripts along with your NuGet install, by using target=&#8221;tools\install.pl1&#8243;.  PowerShell is a very powerful scripting language from Microsoft (yep, another one), which among many other things, can give your NuGet packages all the extra power to do what you like&#8230;</p>
<p>Let&#8217;s start off with a really basic script that&#8217;ll run while installing your package by adding to your &lt;files&gt; node within your nuspec.</p>
<div id="wpshdo_2" class="wp-synhighlighter-outer"><div id="wpshdt_2" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_2"></a><a id="wpshat_2" class="wp-synhighlighter-title" href="#codesyntax_2"  onClick="javascript:wpsh_toggleBlock(2)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_2" onClick="javascript:wpsh_code(2)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_2" onClick="javascript:wpsh_print(2)" title="Print code"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_2" class="wp-synhighlighter-inner" style="display: block;"><pre class="xml" style="font-family:monospace;"><span class="sc3"><span class="re1">&lt;file</span> <span class="re0">src</span>=<span class="st0">&quot;install.ps1&quot;</span> <span class="re0">target</span>=<span class="st0">&quot;tools\install.ps1&quot;</span> <span class="re2">/&gt;</span></span></pre></div></div>
<p>Note that you can <strong><em>only</em></strong> have an install script if you&#8217;ve already got a content or lib file in there as well.  So go and add one (even a <em>package</em>_readme.txt) if you haven&#8217;t already.  You <em>can</em> also use init.ps1 instead, but that&#8217;s going to run every time your project loads.  For our sake, the controller we already have does the job just fine.</p>
<p>Now you&#8217;re going to need a PowerShell script, so let&#8217;s start out small with Hello World.</p>
<div id="wpshdo_3" class="wp-synhighlighter-outer"><div id="wpshdt_3" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_3"></a><a id="wpshat_3" class="wp-synhighlighter-title" href="#codesyntax_3"  onClick="javascript:wpsh_toggleBlock(3)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_3" onClick="javascript:wpsh_code(3)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_3" onClick="javascript:wpsh_print(3)" title="Print code"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_3" class="wp-synhighlighter-inner" style="display: block;"><pre class="c" style="font-family:monospace;">Write<span class="sy0">-</span>Host <span class="st0">&quot;Hello World&quot;</span></pre></div></div>
<p>You can probably guess that this won&#8217;t do very much, but you should be able to see that output when you install you NuGet package.  You also have at your command, your simplest form of echo/print debugging tool, for PowerShell beginners like me.</p>
<p>With that working, you can move onto something a little more useful&#8230; The following script will add a Version task to your .csproj file, which updates the Properties\AssemblyInfo.cs with the version number that (in our case) comes from CruiseControl.Net.  Most of the work for this task comes with the <a href="http://msbuildtasks.tigris.org/" target="_blank">MSBuild Community Tasks</a>, so you will need that installed if you&#8217;re going to try this out word-for-word.</p>
<div id="wpshdo_4" class="wp-synhighlighter-outer"><div id="wpshdt_4" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_4"></a><a id="wpshat_4" class="wp-synhighlighter-title" href="#codesyntax_4"  onClick="javascript:wpsh_toggleBlock(4)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_4" onClick="javascript:wpsh_code(4)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_4" onClick="javascript:wpsh_print(4)" title="Print code"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_4" class="wp-synhighlighter-inner" style="display: block;"><pre class="c" style="font-family:monospace;">param<span class="br0">&#40;</span>$installPath<span class="sy0">,</span> $toolsPath<span class="sy0">,</span> $package<span class="sy0">,</span> $project<span class="br0">&#41;</span>
&nbsp;
$buildProject <span class="sy0">=</span> Get<span class="sy0">-</span>MSBuildProject
$import <span class="sy0">=</span> $buildProject.<span class="me1">Xml</span>.<span class="me1">AddImport</span><span class="br0">&#40;</span><span class="st0">&quot;`$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets&quot;</span><span class="br0">&#41;</span>
$target <span class="sy0">=</span> $buildProject.<span class="me1">Xml</span>.<span class="me1">AddTarget</span><span class="br0">&#40;</span><span class="st0">&quot;Version&quot;</span><span class="br0">&#41;</span>
&nbsp;
$target.<span class="me1">BeforeTargets</span> <span class="sy0">=</span> <span class="st0">&quot;BeforeBuild&quot;</span>
$target.<span class="me1">Condition</span> <span class="sy0">=</span> <span class="st0">&quot;'`$(Configuration)' == 'Release'&quot;</span>
$task <span class="sy0">=</span> $target.<span class="me1">AddTask</span><span class="br0">&#40;</span><span class="st0">&quot;AssemblyInfo&quot;</span><span class="br0">&#41;</span>
$task.<span class="me1">Condition</span> <span class="sy0">=</span> <span class="st0">&quot;'`$(CCNetLabel)' != ''&quot;</span>
$task.<span class="me1">SetParameter</span><span class="br0">&#40;</span><span class="st0">&quot;CodeLanguage&quot;</span><span class="sy0">,</span> <span class="st0">&quot;CS&quot;</span><span class="br0">&#41;</span>
$task.<span class="me1">SetParameter</span><span class="br0">&#40;</span><span class="st0">&quot;OutputFile&quot;</span><span class="sy0">,</span> <span class="st0">&quot;properties<span class="es1">\A</span>ssemblyInfo.cs&quot;</span><span class="br0">&#41;</span>
$task.<span class="me1">SetParameter</span><span class="br0">&#40;</span><span class="st0">&quot;AssemblyVersion&quot;</span><span class="sy0">,</span> <span class="st0">&quot;`$(CCNetLabel)&quot;</span><span class="br0">&#41;</span>
$task.<span class="me1">SetParameter</span><span class="br0">&#40;</span><span class="st0">&quot;AssemblyFileVersion&quot;</span><span class="sy0">,</span> <span class="st0">&quot;`$(CCNetLabel)&quot;</span><span class="br0">&#41;</span>
&nbsp;
$buildProject.<span class="me1">Save</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
$project.<span class="me1">Save</span><span class="br0">&#40;</span><span class="br0">&#41;</span></pre></div></div>
<p>That Get-MSBuildProject statement is actually supplied by another NuGet package, so we&#8217;ll have to change our NuSpec file to include that as a dependency by adding to the metadata block.</p>
<div id="wpshdo_5" class="wp-synhighlighter-outer"><div id="wpshdt_5" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_5"></a><a id="wpshat_5" class="wp-synhighlighter-title" href="#codesyntax_5"  onClick="javascript:wpsh_toggleBlock(5)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_5" onClick="javascript:wpsh_code(5)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_5" onClick="javascript:wpsh_print(5)" title="Print code"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_5" class="wp-synhighlighter-inner" style="display: block;"><pre class="xml" style="font-family:monospace;"><span class="sc3"><span class="re1">&lt;dependencies<span class="re2">&gt;</span></span></span>
      <span class="sc3"><span class="re1">&lt;dependency</span> <span class="re0">id</span>=<span class="st0">&quot;NuGetPowerTools&quot;</span> <span class="re0">version</span>=<span class="st0">&quot;0.26&quot;</span> <span class="re2">/&gt;</span></span>
    <span class="sc3"><span class="re1">&lt;/dependencies<span class="re2">&gt;</span></span></span></pre></div></div>
<p>It&#8217;s also a good idea to add an uninstall.ps1 script that will undo all of those changes if someone later decides not to use your package.  I&#8217;m not going to cover that here because it&#8217;s not something I&#8217;ve completed, and these packages will not be publicly posted (by all means, share your examples in the comments, if you have).</p>
<p>Your complete NuSpec file should now look a little bit like this</p>
<div id="wpshdo_6" class="wp-synhighlighter-outer"><div id="wpshdt_6" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_6"></a><a id="wpshat_6" class="wp-synhighlighter-title" href="#codesyntax_6"  onClick="javascript:wpsh_toggleBlock(6)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_6" onClick="javascript:wpsh_code(6)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_6" onClick="javascript:wpsh_print(6)" title="Print code"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_6" class="wp-synhighlighter-inner" style="display: block;"><pre class="xml" style="font-family:monospace;"><span class="sc3"><span class="re1">&lt;package</span> <span class="re0">xmlns</span>=<span class="st0">&quot;http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd&quot;</span><span class="re2">&gt;</span></span>
  <span class="sc3"><span class="re1">&lt;metadata<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;id<span class="re2">&gt;</span></span></span>VersionAssembly.Mvc<span class="sc3"><span class="re1">&lt;/id<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;version<span class="re2">&gt;</span></span></span>1.6<span class="sc3"><span class="re1">&lt;/version<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;authors<span class="re2">&gt;</span></span></span>Kevin Blake<span class="sc3"><span class="re1">&lt;/authors<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;description<span class="re2">&gt;</span></span></span>Version assemblies<span class="sc3"><span class="re1">&lt;/description<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;dependencies<span class="re2">&gt;</span></span></span>
      <span class="sc3"><span class="re1">&lt;dependency</span> <span class="re0">id</span>=<span class="st0">&quot;NuGetPowerTools&quot;</span> <span class="re0">version</span>=<span class="st0">&quot;0.26&quot;</span> <span class="re2">/&gt;</span></span>
    <span class="sc3"><span class="re1">&lt;/dependencies<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;/metadata<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;files<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;file</span> <span class="re0">src</span>=<span class="st0">&quot;VersionController.cs.pp&quot;</span> <span class="re0">target</span>=<span class="st0">&quot;content\Controllers&quot;</span> <span class="re2">/&gt;</span></span>
    <span class="sc3"><span class="re1">&lt;file</span> <span class="re0">src</span>=<span class="st0">&quot;tools\install.ps1&quot;</span> <span class="re0">target</span>=<span class="st0">&quot;tools\install.ps1&quot;</span> <span class="re2">/&gt;</span></span>
<span class="sc3"><span class="re1">&lt;/files<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;/package<span class="re2">&gt;</span></span></span></pre></div></div></pre>
<p>It&#8217;s a very simple example, I know &#8211; but these basic steps give almost limitless possibilities to your NuGet packages&#8230; Personally, I will be creating a lot more of these to include build scripts we would otherwise have had to include in a rather large bloated project template.  NuGet+PowerShell gives the flexibility to choose just what we need from the dessert cart, and that can only be a good thing.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kevinblake.co.uk/running-powershell-to-change-msbuild-scripts-with-nuget/892/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Umbraco with Web Application projects, CI, across teams</title>
		<link>http://www.kevinblake.co.uk/using-umbraco-with-web-application-projects-ci-across-teams/877/</link>
		<comments>http://www.kevinblake.co.uk/using-umbraco-with-web-application-projects-ci-across-teams/877/#comments</comments>
		<pubDate>Sat, 28 Jan 2012 13:14:11 +0000</pubDate>
		<dc:creator>Kevin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[msbuild]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[umbraco]]></category>

		<guid isPermaLink="false">http://www.kevinblake.co.uk/?p=877</guid>
		<description><![CDATA[Can I use just a Web Site project? Yes &#8211; of course. I don&#8217;t really want to get into the debate about Web Site projects, vs. Web Application projects.  But I do want to start off by saying I dislike Web Site projects, and we&#8217;d never think about using them anywhere else. One thing they offer [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Can I use just a Web Site project?</strong></p>
<p>Yes &#8211; of course.</p>
<p>I don&#8217;t really want to get into the debate about Web Site projects, vs. Web Application projects.  But I do want to start off by saying I dislike <a href="http://msdn.microsoft.com/en-us/library/ie/dd547590.aspx" target="_blank">Web Site projects</a>, and we&#8217;d never <em>think</em> about using them anywhere else.</p>
<p>One thing they offer though, is all of the files you drop into the directory become part of your Visual Studio solution.  This is really useful for applications such as Umbraco where developers are uploading media items, adding scripts, or creating templates via the Umbraco back-end.  It&#8217;s a pain to have to switch back to Visual Studio and add those generated files to your project, just to ensure they get published with the rest of your site.</p>
<p>We use a CI server, we want repeatable deployments, we&#8217;re working in teams, we want everything that&#8217;s anything to be in source control, we want the moon on a bloody stick &#8211; and Web Site projects just don&#8217;t cut it.  But I don&#8217;t really want to even mess around with everyone having to <strong>only</strong> work in Visual Studio either, so PostBuild events on separate projects that copy in razor scripts / templates etc is also &#8211; no good.  The beautiful thing with Umbraco is it&#8217;s completely flexible, there&#8217;s no right or wrong way to use it.  So here&#8217;s how we&#8217;re (currently) managing Umbraco (v4) builds.</p>
<p><strong>Getting started with your web application</strong></p>
<p>Firstly, create a new Empty Web application project in Visual Studio.</p>
<p style="text-align: center;"><a href="http://www.kevinblake.co.uk/wp-content/uploads/2012/01/new-project.jpg" rel="lightbox"><img class="size-full wp-image-882 aligncenter" title="new-project" src="http://www.kevinblake.co.uk/wp-content/uploads/2012/01/new-project.jpg" alt="" width="434" height="107" /></a></p>
<p>Download and copy all of the files from the latest Umbraco release into your project.</p>
<div id="attachment_883" class="wp-caption alignright" style="width: 129px"><a href="http://www.kevinblake.co.uk/wp-content/uploads/2012/01/include-all-files.jpg" rel="lightbox"><img class="size-full wp-image-883" title="show all files" src="http://www.kevinblake.co.uk/wp-content/uploads/2012/01/include-all-files.jpg" alt="" width="119" height="41" /></a><p class="wp-caption-text">Don&#39;t forget the show all files button, to see everything in your directory</p></div>
<p>Now in Visual Studio, you want to add all the directories / files to your solution that you aren&#8217;t going to let people manage through Umbraco as well.  For our purposes, that&#8217;s config, data, App_Data, App_Browsers, data, umbraco, umbraco_client, default.aspx, and web.config.  If it&#8217;s still useful to have some of those other files/directories in your project later, don&#8217;t worry &#8211; you can add them (and have Umbraco/msbuild manage the rest).</p>
<p>You can add the bin folder as well, if you want &#8211; but we don&#8217;t like all binary files checked into sourcecontrol, so this is one folder we usually exclude by default.</p>
<p>If you want the same, copy all of the files out of the bin folder to a directory outside of your csproj (call it Resources, Libraries, whatever you like).  Then in Visual Studio, Right-click on your references folder, Add reference, and include all those dlls.  You&#8217;ll need that Resources / Libraries folder included in sourcecontrol as well.</p>
<p><a href="http://www.kevinblake.co.uk/wp-content/uploads/2012/01/project-tree.jpg" rel="lightbox"><img class="aligncenter size-full wp-image-885" title="project-tree" src="http://www.kevinblake.co.uk/wp-content/uploads/2012/01/project-tree.jpg" alt="" width="181" height="377" /></a></p>
<p>You now have a solution that will build and work locally.  But you still don&#8217;t have the ease of including new Umbraco-managed items in your builds (try and right-click to publish your project to the file system, and notice how you&#8217;re still missing all of your media items and masterpages).  That&#8217;s no good for our Continuous Integration server, and a Web Site project would include all those items by default (you&#8217;d need to create one of those Web Deployment project as well though).</p>
<p><strong>Modify MsBuild scripts&#8230; Include everything the wrong way</strong></p>
<p>Msbuild to the rescue.  Open your .csproj file in your favourite editor (unload the project in Visual Studio if you want to use that).</p>
<p>You&#8217;ll see a whole bunch of xml nodes like &lt;Content Include=&#8221;default.aspx&#8221;&gt;.  These tell msbuild to include these files as Content items, and copy them to the Output directory on every build.</p>
<p>You can use wildcards, so you could just add a new item such as &lt;Content Include=&#8221;masterpages\**\*.master&#8221; /&gt; and you&#8217;d think that would include everything.  And you&#8217;d be right &#8211; reload your solution in Visual Studio,  and all of those masterpages will be included.  However &#8211; exclude one file, re-add it, and save your project.  If you inspect your .csproj file again &#8211; look how helpful Visual Studio has been&#8230; It&#8217;s replaced your wildcard map with a list of individual files again.  Bad Visual Studio.</p>
<p><strong>Modify MsBuild scripts&#8230; Include everything the right way</strong></p>
<p>Since that&#8217;s clearly going to go wrong somewhere down the line, one of your developers is going to do exactly that and unknowingly bring your entire build solution crumbling to its knees &#8211; this clearly won&#8217;t do.  There is always another way.</p>
<p>We can modify the BeforeBuild event (that&#8217;s currently commented out near the bottom of your csproj file, so uncomment it and replace it with this.<div id="wpshdo_7" class="wp-synhighlighter-outer"><div id="wpshdt_7" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_7"></a><a id="wpshat_7" class="wp-synhighlighter-title" href="#codesyntax_7"  onClick="javascript:wpsh_toggleBlock(7)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_7" onClick="javascript:wpsh_code(7)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_7" onClick="javascript:wpsh_print(7)" title="Print code"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_7" class="wp-synhighlighter-inner" style="display: block;"><pre class="csharp" style="font-family:monospace;"><span class="sy0">&lt;</span>Target Name<span class="sy0">=</span><span class="st0">&quot;BeforeBuild&quot;</span><span class="sy0">&gt;</span>
<span class="sy0">&lt;</span>CreateItem Include<span class="sy0">=</span><span class="st0">&quot;macroScripts<span class="es0">\*</span>*<span class="es0">\*</span>.cshtml&quot;</span><span class="sy0">&gt;</span>
<span class="sy0">&lt;</span>Output ItemName<span class="sy0">=</span><span class="st0">&quot;Content&quot;</span> TaskParameter<span class="sy0">=</span><span class="st0">&quot;Include&quot;</span> <span class="sy0">/&gt;</span>
<span class="sy0">&lt;/</span>CreateItem<span class="sy0">&gt;</span>
<span class="sy0">&lt;</span>CreateItem Include<span class="sy0">=</span><span class="st0">&quot;xslt<span class="es0">\*</span>*<span class="es0">\*</span>.xslt&quot;</span><span class="sy0">&gt;</span>
<span class="sy0">&lt;</span>Output ItemName<span class="sy0">=</span><span class="st0">&quot;Content&quot;</span> TaskParameter<span class="sy0">=</span><span class="st0">&quot;Include&quot;</span> <span class="sy0">/&gt;</span>
<span class="sy0">&lt;/</span>CreateItem<span class="sy0">&gt;</span>
<span class="sy0">&lt;</span>CreateItem Include<span class="sy0">=</span><span class="st0">&quot;masterpages<span class="es0">\*</span>*<span class="es0">\*</span>.master&quot;</span><span class="sy0">&gt;</span>
<span class="sy0">&lt;</span>Output ItemName<span class="sy0">=</span><span class="st0">&quot;Content&quot;</span> TaskParameter<span class="sy0">=</span><span class="st0">&quot;Include&quot;</span> <span class="sy0">/&gt;</span>
<span class="sy0">&lt;/</span>CreateItem<span class="sy0">&gt;</span>
<span class="sy0">&lt;</span>CreateItem Include<span class="sy0">=</span><span class="st0">&quot;media<span class="es0">\*</span>*<span class="es0">\*</span>.*&quot;</span><span class="sy0">&gt;</span>
<span class="sy0">&lt;</span>Output ItemName<span class="sy0">=</span><span class="st0">&quot;Content&quot;</span> TaskParameter<span class="sy0">=</span><span class="st0">&quot;Include&quot;</span> <span class="sy0">/&gt;</span>
<span class="sy0">&lt;/</span>CreateItem<span class="sy0">&gt;</span>
<span class="sy0">&lt;</span>CreateItem Include<span class="sy0">=</span><span class="st0">&quot;usercontrols<span class="es0">\*</span>*<span class="es0">\*</span>.*&quot;</span><span class="sy0">&gt;</span>
<span class="sy0">&lt;</span>Output ItemName<span class="sy0">=</span><span class="st0">&quot;Content&quot;</span> TaskParameter<span class="sy0">=</span><span class="st0">&quot;Include&quot;</span> <span class="sy0">/&gt;</span>
<span class="sy0">&lt;/</span>CreateItem<span class="sy0">&gt;</span>
<span class="sy0">&lt;</span>CreateItem Include<span class="sy0">=</span><span class="st0">&quot;css<span class="es0">\*</span>*<span class="es0">\*</span>.*&quot;</span><span class="sy0">&gt;</span>
<span class="sy0">&lt;</span>Output ItemName<span class="sy0">=</span><span class="st0">&quot;Content&quot;</span> TaskParameter<span class="sy0">=</span><span class="st0">&quot;Include&quot;</span> <span class="sy0">/&gt;</span>
<span class="sy0">&lt;/</span>CreateItem<span class="sy0">&gt;</span>
<span class="sy0">&lt;/</span>Target<span class="sy0">&gt;</span></pre></div></div></pre>
<p>What we&#8217;re doing is adding to the Content array that msbuild&#8217;s defined with all those Content nodes.  We&#8217;re including all files from those directories in the publish, and we&#8217;re making the Web Application project work the way that Umbraco, and we want.  You can include as many of the folders as you&#8217;re comfortable with, and you can continue to work in Visual Studio for as much or as little of the sln as you want.</p>
<p><strong>Avoid doing this next time</strong></p>
<p>Having putting in this small amount of work up-front, you can now export your entire project as a project template, and use it to start off all your projects in the future.  You probably have more of a white label sln you can add to this and make your subsequent builds even easier.  I won&#8217;t get into the details of that in this post (but it&#8217;s essentially just File-Export Template within Visual Studio).</p>
<p>Like I said, Umbraco is completely flexible in the way you approach your builds, this is one solution that works for us &#8211; and there is always another way.  I&#8217;d be keen to hear your feedback / improvements / alternatives &#8211; we haven&#8217;t etched it in stone by any means.</p>
<p><strong>Similar posts that have inspired, and Another Way:</strong></p>
<ul>
<li><a href="http://blog.mattbrailsford.com/2010/11/13/automating-umbraco-package-creation-using-msbuild/" target="_blank">Creating packages with msbuild</a></li>
<li><a href="http://cjgiddings.wordpress.com/2009/04/30/setting-up-umbraco-correctly-with-msbuild/" target="_blank">Setting up Umbraco correctly with MSBuild</a></li>
<li><a href="http://our.umbraco.org/wiki/codegarden-2009/open-space-minutes/working-in-visual-studio-when-developing-umbraco-solutions" target="_blank">Using xcopy / postbuild events</a></li>
</ul>
<p>(Send me more, and I&#8217;ll add to this list)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kevinblake.co.uk/using-umbraco-with-web-application-projects-ci-across-teams/877/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<georss:point>0.0000000 0.0000000</georss:point>	</item>
		<item>
		<title>git out of memory errors &#8211; git repack</title>
		<link>http://www.kevinblake.co.uk/git-repack/867/</link>
		<comments>http://www.kevinblake.co.uk/git-repack/867/#comments</comments>
		<pubDate>Sat, 07 Jan 2012 14:53:25 +0000</pubDate>
		<dc:creator>Kevin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://www.kevinblake.co.uk/?p=867</guid>
		<description><![CDATA[Occasionally when using git (particularly with large repositories) you might come across an error that looks a little bit like this: It means the remote server has run out of memory while packing objects on the server ready to send down the wire, and has aborted the pull request mid-way.  If you know you&#8217;ve got [...]]]></description>
			<content:encoded><![CDATA[<p>Occasionally when using git (particularly with large repositories) you might come across an error that looks a little bit like this:</p>
<div id="wpshdo_8" class="wp-synhighlighter-outer"><div id="wpshdt_8" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_8"></a><a id="wpshat_8" class="wp-synhighlighter-title" href="#codesyntax_8"  onClick="javascript:wpsh_toggleBlock(8)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_8" onClick="javascript:wpsh_code(8)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_8" onClick="javascript:wpsh_print(8)" title="Print code"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_8" class="wp-synhighlighter-inner" style="display: block;">remote: Counting objects: <span class="nu0">506</span>, done.<br />
remote: fatal: Out of memory, malloc failed <span class="br0">&#40;</span>tried to allocate <span class="nu0">342222798</span> bytes<span class="br0">&#41;</span><br />
remote: aborting due to possible repository corruption on the remote side.<br />
fatal: protocol error: bad pack header</div></div>
<p>It means the remote server has run out of memory while packing objects on the server ready to send down the wire, and has aborted the pull request mid-way.  If you know you&#8217;ve got some particularly massive files in your repository that you didn&#8217;t really need there, you could <a href="http://book.git-scm.com/4_interactive_rebasing.html" target="_blank">rewrite history</a> and get rid of them, but chances are you just need to do a little maintenance on your remote repository.</p>
<p>Connect to your remote server, and find the repo in question, then just run the following:</p>
<div id="wpshdo_9" class="wp-synhighlighter-outer"><div id="wpshdt_9" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_9"></a><a id="wpshat_9" class="wp-synhighlighter-title" href="#codesyntax_9"  onClick="javascript:wpsh_toggleBlock(9)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_9" onClick="javascript:wpsh_code(9)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_9" onClick="javascript:wpsh_print(9)" title="Print code"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_9" class="wp-synhighlighter-inner" style="display: block;">git repack <span class="re5">-a</span> <span class="re5">-f</span> <span class="re5">-d</span></div></div>
<p>Now you should be able to pull your repo again, with everything already packed on the server.</p>
<p>Obviously, you can find more about those options with:</p>
<div id="wpshdo_10" class="wp-synhighlighter-outer"><div id="wpshdt_10" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_10"></a><a id="wpshat_10" class="wp-synhighlighter-title" href="#codesyntax_10"  onClick="javascript:wpsh_toggleBlock(10)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_10" onClick="javascript:wpsh_code(10)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_10" onClick="javascript:wpsh_print(10)" title="Print code"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.kevinblake.co.uk/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_10" class="wp-synhighlighter-inner" style="display: block;"><span class="kw2">man</span> git-repack</div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.kevinblake.co.uk/git-repack/867/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>//TODO: Feature Release for v2012</title>
		<link>http://www.kevinblake.co.uk/todo-feature-release-for-v2012/855/</link>
		<comments>http://www.kevinblake.co.uk/todo-feature-release-for-v2012/855/#comments</comments>
		<pubDate>Sun, 01 Jan 2012 14:49:57 +0000</pubDate>
		<dc:creator>Kevin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dotnet]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[todo]]></category>

		<guid isPermaLink="false">http://www.kevinblake.co.uk/?p=855</guid>
		<description><![CDATA[I did one of these back in 2009 and after 2 years, I can successfully say I&#8217;ve accomplished&#8230; some of them.  It&#8217;s the sort of list I&#8217;d make an annual review if they didn&#8217;t have to follow fluffy company ideals and goals.  Not a new years resolution as such &#8211; but technologies and platforms I [...]]]></description>
			<content:encoded><![CDATA[<p>I did one of these <a title="//TODO: Learn, play, discuss." href="http://www.kevinblake.co.uk/todo/594/">back in 2009</a> and after 2 years, I can successfully say I&#8217;ve accomplished&#8230; some of them.  It&#8217;s the sort of list I&#8217;d make an annual review if they didn&#8217;t have to follow fluffy company ideals and goals.  Not a new years resolution as such &#8211; but technologies and platforms I want to be looking at in the near future.</p>
<ul>
<li>Umbraco
<ul>
<li>v5, in general</li>
<li>Custom v5 Hive Providers</li>
<li>Courier extensions</li>
<li>Contour extensions</li>
</ul>
</li>
<li>ASP.NET MVC 4
<ul>
<li>Mobile Views</li>
</ul>
</li>
<li>Entity Framework Code First</li>
<li>.NET 4.5
<ul>
<li>New async features</li>
<li>WebSockets</li>
<li>Contract-First WCF</li>
</ul>
</li>
<li>T4 Templating</li>
<li>Resharper 6.1 Shared Settings</li>
<li>NuGet &#8211; more of it.  NuGet the f**k out of everything.</li>
<li>KnockoutJS</li>
<li>Gallery2/3
<ul>
<li>Sort out that set of <a href="http://www.kevinblake.co.uk/automatically-geotagging-your-gallery/344/" target="_blank">godawful auto-geolocation hacks I wrote back in 2008</a></li>
<li>Last Updated Albums module</li>
</ul>
</li>
<li>Amazon MWS.</li>
<li>Zencart, Magento, or whatever is passing as a popular choice of shopping cart nowadays</li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kevinblake.co.uk/todo-feature-release-for-v2012/855/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Farewell 2011, Long Live 2012</title>
		<link>http://www.kevinblake.co.uk/farewell-2011-long-live-2012/844/</link>
		<comments>http://www.kevinblake.co.uk/farewell-2011-long-live-2012/844/#comments</comments>
		<pubDate>Sun, 01 Jan 2012 13:38:38 +0000</pubDate>
		<dc:creator>Kevin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.kevinblake.co.uk/?p=844</guid>
		<description><![CDATA[I&#8217;ve seen tons of 2011 retrospective blog posts over the past month. Not having one is making me feel inadequate, so gathered from various stats on my machine, and social networks &#8211; last year, I: Read 18 novels. Listened to 17,650 tracks. Drank 102 beers (88 unique) since August&#8230; That I checked into. Wrote 3 blog [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve seen tons of 2011 retrospective blog posts over the past month. Not having one is making me feel inadequate, so gathered from various stats on my machine, and social networks &#8211; last year, I:</p>
<div id="attachment_846" class="wp-caption alignright" style="width: 160px"><a href="http://www.kevinblake.co.uk/wp-content/uploads/2012/01/music-2011.png" target="_blank" rel="lightbox"><img class="size-thumbnail wp-image-846" src="http://www.kevinblake.co.uk/wp-content/uploads/2012/01/music-2011-150x150.png" alt="" width="150" height="150" /></a><p class="wp-caption-text">My most-listened to artists from 2011</p></div>
<ul>
<li>Read <a href="http://www.goodreads.com/review/list/5595060-kevin-blake?read_at=2011">18 novels</a>.</li>
<li>Listened to <a href="http://www.last.fm/user/puzzlebox" target="_blank">17,650 tracks</a>.</li>
<li>Drank <a href="http://untappd.com/user/kevinblake">102 beers</a> (88 unique) since August&#8230; That I checked into.</li>
<li>Wrote <a href="http://www.kevinblake.co.uk/date/2011/">3 blog posts</a> (must try harder next year &#8211; already a third of the way there).</li>
<li>Visited 3 new countries &#8211; grand total distance between the capitals and London of approx. 26,658km.</li>
<li>Took approx. 7,597 photos.</li>
<li>Uploaded <a href="http://www.blakepics.com" target="_blank">1,249 photos</a> to Blakepics.</li>
<li>Recorded 667 TV shows with MythTV, totalling 20 days, 21 hours of viewing.</li>
<li>Pinned <a href="http://pinterest.com/kevinblake/pins/">94 pictures</a> on Pinterest.</li>
<li>Tweeted <a href="http://www.twitter.com/kevinblake">553 times</a>.</li>
<li>Played <a href="https://live.xbox.com/en-GB/Profile?gamertag=kevinblake" target="_blank">28 xbox games</a></li>
<li>Shared far too much information with social networks, and online services.</li>
</ul>
<p>What have I missed?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kevinblake.co.uk/farewell-2011-long-live-2012/844/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<georss:point>0.0000000 0.0000000</georss:point>	</item>
		<item>
		<title>Bulgaria Photo Story</title>
		<link>http://www.kevinblake.co.uk/bulgaria-photo-story/840/</link>
		<comments>http://www.kevinblake.co.uk/bulgaria-photo-story/840/#comments</comments>
		<pubDate>Sun, 23 Oct 2011 11:48:38 +0000</pubDate>
		<dc:creator>Kevin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.kevinblake.co.uk/?p=840</guid>
		<description><![CDATA[I&#8217;ve just been back out to The Balkans again, this time to Bulgaria&#8230; After heading out to SE Asia a few times in the last year or two, it&#8217;s really nice to return my travelling to my favourite part of Europe. This area offers a real melting pot of culture, history, people, and beautiful landscapes, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just been back out to The Balkans again, this time to Bulgaria&#8230; After heading out to SE Asia a few times in the last year or two, it&#8217;s really nice to return my travelling to my favourite part of Europe.  This area offers a real melting pot of culture, history, people, and beautiful landscapes, without the bustle of more well-worn destinations elsewhere in the world &#8211; and Bulgaria is no exception.  But don&#8217;t go there &#8211; I like things the way they are <img src='http://www.kevinblake.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="flvPlayer">
<video controls width="384" height="288" controls="controls" poster="/assets/video/bulgaria.jpg" onclick="this.play();"><source src="/assets/video/bulgaria.ogg" type="video/ogg" /><source src="/assets/video/bulgaria.mp4" type="video/mp4" /><source src="/assets/video/bulgaria.webm" type="video/webm" /><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="384" height="308"><param name="movie" value="http://www.kevinblake.co.uk/wp-content/plugins/wp-flv/flvplayer.swf?file=/assets/video/bulgaria.flv&amp;autoStart=false;" /><param name="quality" value="high" /><param name="allowfullscreen" value="true" /><param name="wmode" value="transparent" /><embed src="http://www.kevinblake.co.uk/wp-content/plugins/wp-flv/flvplayer.swf?file=/assets/video/bulgaria.flv&amp;autoStart=false;" allowfullscreen="true" quality="high" wmode="transparent" width="384" height="308" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /><br /> <br />
				</object></video>
</div>
<p>The music is <em>&#8220;More&#8221;</em> by Tyrone Wells.</p>
<p>You can also find these photos elsewhere online</p>
<ul>
<li> <a href="http://pinterest.com/kevinblake/bulgaria/" target="_blank">Pinterest</a></li>
<li><a href="http://www.blakepics.com/bulgaria/" target="_blank">Blakepics</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.kevinblake.co.uk/bulgaria-photo-story/840/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Romania Photo Story</title>
		<link>http://www.kevinblake.co.uk/romania-photo-story/835/</link>
		<comments>http://www.kevinblake.co.uk/romania-photo-story/835/#comments</comments>
		<pubDate>Sun, 25 Sep 2011 12:42:53 +0000</pubDate>
		<dc:creator>Kevin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[photo story]]></category>
		<category><![CDATA[photography]]></category>
		<category><![CDATA[romania]]></category>
		<category><![CDATA[travel]]></category>

		<guid isPermaLink="false">http://www.kevinblake.co.uk/?p=835</guid>
		<description><![CDATA[Just over a week in Romania, from mid-August (bit slow uploading this time). Most of the time around Bucharest and Transylvania. The music is &#8220;Your Song&#8221; by Ellie Goulding (originally Elton John, of course). You can also find these photos elsewhere online Pinterest Blakepics]]></description>
			<content:encoded><![CDATA[<p>Just over a week in Romania, from mid-August (bit slow uploading this time).  Most of the time around Bucharest and Transylvania.</p>
<div class="flvPlayer">
<video controls width="384" height="288" controls="controls" poster="/assets/video/romania.jpg" onclick="this.play();"><source src="/assets/video/romania.ogg" type="video/ogg" /><source src="/assets/video/romania.mp4" type="video/mp4" /><source src="/assets/video/romania.webm" type="video/webm" /><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="384" height="308"><param name="movie" value="http://www.kevinblake.co.uk/wp-content/plugins/wp-flv/flvplayer.swf?file=/assets/video/romania.flv&amp;autoStart=false;" /><param name="quality" value="high" /><param name="allowfullscreen" value="true" /><param name="wmode" value="transparent" /><embed src="http://www.kevinblake.co.uk/wp-content/plugins/wp-flv/flvplayer.swf?file=/assets/video/romania.flv&amp;autoStart=false;" allowfullscreen="true" quality="high" wmode="transparent" width="384" height="308" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /><br /> <br />
				</object></video>
</div>
<p>The music is <em>&#8220;Your Song&#8221;</em> by Ellie Goulding (originally Elton John, of course).</p>
<p>You can also find these photos elsewhere online</p>
<ul>
<li> <a href="http://pinterest.com/kevinblake/romania/" target="_blank">Pinterest</a></li>
<li><a href="http://www.blakepics.com/romania/" target="_blank">Blakepics</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.kevinblake.co.uk/romania-photo-story/835/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>China Photo Story</title>
		<link>http://www.kevinblake.co.uk/china-photo-story/816/</link>
		<comments>http://www.kevinblake.co.uk/china-photo-story/816/#comments</comments>
		<pubDate>Sun, 15 May 2011 10:44:02 +0000</pubDate>
		<dc:creator>Kevin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[china]]></category>
		<category><![CDATA[photo story]]></category>
		<category><![CDATA[photography]]></category>
		<category><![CDATA[travel]]></category>

		<guid isPermaLink="false">http://www.kevinblake.co.uk/?p=816</guid>
		<description><![CDATA[Two and a half weeks of travelling around China from Shanghai, Beijing, Xi&#8217;an and back to Shanghai, here&#8217;s the usual photo story: The music is &#8220;Honey, let me sing you a song&#8221; by Matt Hires. You can also find these photos elsewhere online Pinterest Blakepics]]></description>
			<content:encoded><![CDATA[<p>Two and a half weeks of travelling around China from Shanghai, Beijing, Xi&#8217;an and back to Shanghai, here&#8217;s the usual photo story:</p>
<div class="flvPlayer">
<video controls width="384" height="288" controls="controls" poster="/assets/video/china.jpg" onclick="this.play();"><source src="/assets/video/china.ogg" type="video/ogg" /><source src="/assets/video/china.mp4" type="video/mp4" /><source src="/assets/video/china.webm" type="video/webm" /><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="384" height="308"><param name="movie" value="http://www.kevinblake.co.uk/wp-content/plugins/wp-flv/flvplayer.swf?file=/assets/video/china.flv&amp;autoStart=false;" /><param name="quality" value="high" /><param name="allowfullscreen" value="true" /><param name="wmode" value="transparent" /><embed src="http://www.kevinblake.co.uk/wp-content/plugins/wp-flv/flvplayer.swf?file=/assets/video/china.flv&amp;autoStart=false;" allowfullscreen="true" quality="high" wmode="transparent" width="384" height="308" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /><br /> <br />
				</object></video>
</div>
<p>The music is <em>&#8220;Honey, let me sing you a song&#8221;</em> by Matt Hires.</p>
<p>You can also find these photos elsewhere online</p>
<ul>
<li> <a href="http://pinterest.com/kevinblake/china/" target="_blank">Pinterest</a></li>
<li><a href="http://www.blakepics.com/china/" target="_blank">Blakepics</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.kevinblake.co.uk/china-photo-story/816/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Malaysia and Singapore Photo Story</title>
		<link>http://www.kevinblake.co.uk/malaysia-and-singapore-photo-story/792/</link>
		<comments>http://www.kevinblake.co.uk/malaysia-and-singapore-photo-story/792/#comments</comments>
		<pubDate>Sun, 28 Nov 2010 13:10:31 +0000</pubDate>
		<dc:creator>Kevin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Malaysia]]></category>
		<category><![CDATA[photo story]]></category>
		<category><![CDATA[travel]]></category>

		<guid isPermaLink="false">http://www.kevinblake.co.uk/?p=792</guid>
		<description><![CDATA[I have over a thousand photos from Malaysia / Singapore spanning some 16GB, which has added considerably to my growing collection of unsorted photos sitting on my hard drive. I still have a huge set from Denmark and Sweden to get through, as well as a weekend away in Norfolk inclusive of a wedding. But [...]]]></description>
			<content:encoded><![CDATA[<p>I have over a thousand photos from Malaysia / Singapore spanning some 16GB, which has added considerably to my growing collection of unsorted photos sitting on my hard drive.  I still have a huge set from Denmark and Sweden to get through, as well as a weekend away in Norfolk inclusive of a wedding.  But putting the best onto a video always takes priority over filling the Blakepics disks, so here we go &#8211; you lucky people.</p>
<div class="flvPlayer">
<video controls width="384" height="288" controls="controls" poster="/assets/video/malaysia.jpg" onclick="this.play();"><source src="/assets/video/malaysia.ogg" type="video/ogg" /><source src="/assets/video/malaysia.mp4" /><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="384" height="308"><param name="movie" value="http://www.kevinblake.co.uk/wp-content/plugins/wp-flv/flvplayer.swf?file=/assets/swf/malaysia.flv&amp;autoStart=false;" /><param name="quality" value="high" /><param name="allowfullscreen" value="true" /><param name="wmode" value="transparent" /><embed src="http://www.kevinblake.co.uk/wp-content/plugins/wp-flv/flvplayer.swf?file=/assets/swf/malaysia.flv&amp;autoStart=false;" allowfullscreen="true" quality="high" wmode="transparent" width="384" height="308" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /><br /> <br />
				</object></video>
</div>
<p>The music is <em>&#8220;Bright Lights&#8221;</em> by Tom McRae.</p>
<p>Let me know if you&#8217;re having any trouble viewing the video.  This is the first time using an HTML5 compatible video format, which for the most of you should spark feelings of &#8220;I don&#8217;t care&#8221;, but hopefully the video should be a little higher quality than usual as well as supporting future standards, etc.  If you&#8217;re not yet using a compliant browser, shame on you &#8211; but you should just get the flash version like usual.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kevinblake.co.uk/malaysia-and-singapore-photo-story/792/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Strawberry Fields Forever</title>
		<link>http://www.kevinblake.co.uk/strawberry-fields-forever/785/</link>
		<comments>http://www.kevinblake.co.uk/strawberry-fields-forever/785/#comments</comments>
		<pubDate>Thu, 18 Nov 2010 09:45:37 +0000</pubDate>
		<dc:creator>Kevin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[holiday]]></category>
		<category><![CDATA[Malaysia]]></category>
		<category><![CDATA[strawberries]]></category>
		<category><![CDATA[travel]]></category>

		<guid isPermaLink="false">http://www.kevinblake.co.uk/?p=785</guid>
		<description><![CDATA[I&#8217;m in Malaysia at the moment, on the current random tour of a random country chosen minutes before I left. This one didn&#8217;t start where this post does, but that&#8217;s my prerogative. Call it bloggers licence. Get over it. I arrived into the Cameron Highlands late at night, after escaping the intense heat of KL [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m in Malaysia at the moment, on the current random tour of a random country chosen minutes before I left.  This one didn&#8217;t start where this post does, but that&#8217;s my prerogative.  Call it bloggers licence.  Get over it.</p>
<p>I arrived into the Cameron Highlands late at night, after escaping the intense heat of KL by train, then a long bus ride that appeared questionable whether it would reach the top of the first hill.  The Cameron Highlands are a huge expanse of green hills, tea plantations and forests, which remains the coolest part of Malaysia, and visited as a popular holiday destination by locals and us foreign travellers alike.</p>
<p>Strawberries are also rather popular here.</p>
<p>A little obsessively so.</p>
<p>I had not really thought of Malaysia as being known for its strawberries, but around here, they seem to revel in the prospect.  Cushions, t-shirts, dresses, door mats, hats (I feel terribly sorry for the poor Malaysian baby that was forced to wear one, I&#8217;m sorry &#8211; you may have been only 1yr old, but you looked ridiculous), jelly, jam, cheese cake, juice, chocolate coated, honey coated, strawberry on a stick&#8230; You name it, we got it.  I&#8217;m quite certain I&#8217;ll be spotting that all out of season strawberries in the UK come right from these very hills, but until now I hadn&#8217;t given it much thought.  Most Malaysians I speak to tell me, rather bitterly at times, that everything (tea, fruits, vegetables) is exported to Singapore.  Maybe they sell it all on at higher prices.  Why would they want that many strawberries, after all.</p>
<p>I escaped from all of this.  Running towards the nearest jungle trail (aptly named Jungle Trail number 9) where I bumped into a couple from Haslemere, Surrey (that&#8217;s 20 minutes from home, to you and me) and promptly hijacked their guide.  I&#8217;d chosen the easiest trail around anyway &#8211; large parts of it were paved, and only a small part of the trail required any significant root climbing.  Far better than the trip to Turkey where the instructions &#8220;just climb that wall&#8221; were given.  Though Jungle Trail does sound far more adventurous, even if it is number 9.</p>
<p>Anyway, moments after kidnapping their guide, Surrey Guy asked him about the strawberries.  His face clouded over.  &#8220;I hate strawberries&#8221; the guide muttered under his breath.  Too much of a good thing, perhaps?  This was before I had tried one of the must-have dishes off the menu in a nearby cafe.  &#8220;Strawberries and cheese on toast&#8221;.  Yes, it was as bad as it sounds, and if you think for a minute that the cheese was melted over strawberry jam (slightly better than the alternative), I have pictures to demonstrate the cheese melting strawberry goodness .  I guess if all you have had is strawberries for life, you probably would go a little stir crazy.  &#8220;Can you believe they&#8217;re making strawberry pillows, now!&#8221; continued the guide.  Concerned as I was that he was going to start turning his pockets out and throw strawberries at the lot of us, I made my excuses and returned the guide to his rightful owners.  They had paid, after all.</p>
<p>I&#8217;m hoping that now I&#8217;ve sampled the strawberry delights, famous in this region, I will still be able to leave.  My fear is that the strawberries are the cause of the madness I see on every market stall.  This whole area may be one big Hotel California, or Stepford &#8211; with one bite of a strawberry having sealed my fate to open a market stall and sell strawberry shaped cushions in the middle of nowhere for the rest of my days.  Maybe I&#8217;m just being paranoid.</p>
<p>Or maybe the strawberries are making me paranoid.</p>
<p>Send help.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kevinblake.co.uk/strawberry-fields-forever/785/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

