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

<channel>
	<title>durdle.com &#187; Software</title>
	<atom:link href="http://durdle.com/archives/category/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://durdle.com</link>
	<description></description>
	<lastBuildDate>Thu, 12 Apr 2012 21:13:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>RegExCatchAll Transport Agent for Exchange 2007/2010</title>
		<link>http://durdle.com/archives/2010/05/29/regexcatchall/</link>
		<comments>http://durdle.com/archives/2010/05/29/regexcatchall/#comments</comments>
		<pubDate>Sat, 29 May 2010 15:31:16 +0000</pubDate>
		<dc:creator>Howard</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[catchall]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[dotnet]]></category>
		<category><![CDATA[email suffix]]></category>
		<category><![CDATA[exchange]]></category>
		<category><![CDATA[exchange 2007]]></category>
		<category><![CDATA[exchange 2010]]></category>
		<category><![CDATA[regexp]]></category>
		<category><![CDATA[transport agent]]></category>

		<guid isPermaLink="false">http://blog.durdle.com/?p=777</guid>
		<description><![CDATA[How moving email services to an Exchange Server revealed email suffix matching as a missing feature, and how to implement that feature using a Transport Agent.]]></description>
			<content:encoded><![CDATA[<p>For a number of years now I have been doing two things with email:</p>
<p>1) I run my own <a href="http://www.microsoft.com/exchange/">Exchange Server</a>.  <a href="/wp-content/uploads/Exchange2010Logo.png" rel="lightbox[818]"><img class="alignleft  size-full wp-image-805" title="Exchange 2010 Logo" src="/wp-content/uploads/Exchange2010Logo.png" alt="Exchange 2010 Logo" width="150" height="150" /></a>It provides <a href="http://technet.microsoft.com/en-us/exchange/bb288524.aspx">ActiveSync</a>, <a href="http://www.microsoft.com/exchange/code/OWA/index.html">Outlook Web Access</a>, and <a href="http://office.microsoft.com/en-us/outlook/hp101024441033.aspx">Outlook Anywhere</a> for my company’s email domains and my personal durdle.com domain.</p>
<p>2) I provide email addresses at durdle.com for family members (and a few people who just happen to share the family name).</p>
<p>&nbsp;<br />
&nbsp;</p>
<p>Historically all those family emails have been maintained by <a href="http://www.gradwell.com/">Gradwell</a> without going near my Exchange Server.  The durdle.com <a href="http://en.wikipedia.org/wiki/MX_record">MX records</a> in DNS pointed to Gradwell’s servers for mail delivery and I had a forwarder at Gradwell that would redirect my – and only my – messages to the Exchange Server.  For a number of reasons I needed to change this so that all email is delivered via my Exchange Server.  I made this change yesterday, discovering one problem in the process.</p>
<h5>Email Suffixes</h5>
<p>Gradwell’s mail server supports email suffix matching.  If you have a <a href="http://mail.google.com/">GMail</a> account you may be familiar with the approach.  Say you have an email <a href="mailto:john@gmail.com">john@gmail.com</a>.  Gmail will actually deliver mail to <a href="mailto:john+anything@gmail.com">john+anything@gmail.com</a>; you can add any suffix you like after the + and GMail will still deliver it to your inbox.  Gradwell support this by allowing you to place a period after the local part so you can use <a href="mailto:john.anything@example.com">john.anything@example.com</a>.  You don’t have to create these email addresses anywhere – you can just start using it and the mail server will make sure it gets to you.</p>
<p>This is fantastically useful because it means that when a website asks for your email address you can give out a custom throwaway email just for that site.  So when you sign up at DodgyCo.com, you give them the email <a href="mailto:john.dodgyco@example.com">john.dodgyco@example.com</a>.  If you ever receive spam because DodgyCo sold your email address you’ll know a) who sold you out, and b) which email address to add to your spam filter.</p>
<h5>Exchange Server</h5>
<p>Enter Microsoft Exchange Server.  I’m currently running the 2010 edition, but the problem I’m about to describe (and solve!) exists in every recent version.  Exchange Server doesn’t support email suffixes.  Every recipient has to have an alias created on the server.  If you want to deliver to <a href="mailto:john.suffix@example.com">john.suffix@example.com</a> you’d better remember to create an alias for that user, otherwise the Exchange Recipient Filter will reject the message since – as far as it is concerned – the user does not exist on the server.</p>
<p>Worse, Exchange doesn’t even implement any generic <a href="http://en.wikipedia.org/wiki/Catch-all">CatchAll</a> functionality.  CatchAll would allow the server to redirect messages for non-existing recipients to a specific address. <a href="http://catchallagent.codeplex.com/" target="_blank">Smart people</a> have created solutions to the CatchAll problem but all that does is allow you to define one mailbox for ALL non-deliverable messages to be delivered to.  Since I need to provide suffix matching to multiple users this doesn’t work for me.</p>
<p>Time to extend Exchange’s functionality!</p>
<h5>Transport Agents</h5>
<p><a href="http://technet.microsoft.com/en-us/library/bb125012.aspx" target="_blank">Transport Agents</a> were introduced in Exchange 2007 to replace Exchange 2003’s SMTP Event Sinks and have been retained largely unchanged in Exchange 2010.  Broadly speaking when a message arrives at an Exchange Server it is moved through the transport pipeline as each SMTP event occurs.  Each <a href="http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol">SMTP event</a> (Connect, MAIL FROM, RCPT TO, etc) can trigger an interested Transport Agent to perform some actions on the message.<br />
The complete list of SMTP events and their sequence is described on <a href="http://technet.microsoft.com/en-us/library/bb125012.aspx" target="_blank">this Exchange Server TechCenter page</a>.</p>
<p>Transport Agents are simply DLLs written in managed code that fire on SMTP events.  Back when I contracted for the <a href="http://www.mod.uk/">MOD</a> I wrote a Transport Agent for Exchange 2007 which demonstrated that Exchange was capable of performing Dominance Checking on outgoing emails so I knew that it wouldn&#8217;t take to long to write a Transport Agent to filter incoming messages.  I was able to reuse some of that code and also made use of some of <a href="http://www.codeplex.com/site/users/view/wilbertdg" target="_blank">Wilbert De Graaf</a>’s <a href="http://catchallagent.codeplex.com/" target="_blank">CatchAll Agent</a> code which made the handling of a configuration file very quick to implement.  Thank you Wilbert!</p>
<h5>Requirements</h5>
<p>I had a couple of requirements for my Transport Agent:</p>
<p>1) It should allow redirection of multiple suffixes to different recipients.</p>
<p>2) It should allow me to ban delivery to any previously used suffixes and ensure that the sender receives a non-deliverable report.</p>
<p>I ended up meeting these requirements by using C# to write a Transport Agent that accepts its configuration from an XML file.  The config.xml defines multiple regular expressions to match against along with associated redirect addresses.  It also lists banned email addresses which the Transport Agent should reject.</p>
<p>To mimic the <a href="http://www.gradwell.com/support/howto/article/392">Gradwell behaviour</a> which we were already making use of I needed to match firstname then a dot and then any word before the domain.  This is a fairly simple <a href="http://support.microsoft.com/kb/308252">regular expression in C#</a>, and looks like this:</p>
<div class="wp_syntax">
<div class="code">
<pre class="xml" style="font-family:monospace;">^firstname+\.[a-z]+@example.com$</pre>
</div>
</div>
<p>The config.xml takes the form:</p>
<div class="wp_syntax">
<div class="code">
<pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;config<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;redirect</span> <span style="color: #000066;">pattern</span>=<span style="color: #ff0000;">&quot;^john+\.[a-z]+@domain.com$&quot;</span> <span style="color: #000066;">address</span>=<span style="color: #ff0000;">&quot;john@domain.com&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;redirect</span> <span style="color: #000066;">pattern</span>=<span style="color: #ff0000;">&quot;^jane+\.[a-z]+@domain.com$&quot;</span> <span style="color: #000066;">address</span>=<span style="color: #ff0000;">&quot;jane.doe@gmail.com&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;banned</span> <span style="color: #000066;">address</span>=<span style="color: #ff0000;">&quot;john.spam@domain.com&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;banned</span> <span style="color: #000066;">address</span>=<span style="color: #ff0000;">&quot;jane.newsletter@domain.com&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/config<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre>
</div>
</div>
<p>Here we define two patterns for redirect, one to an internal recipient and one redirect to an external SMTP address.  We also ban two known &#8220;bad&#8221; recipient addresses.</p>
<p>You’ll need to provide at least one redirect entry, but you’re not required to ban any addresses if you don&#8217;t want to.  Also, while redirects specifiy regular expressions to match, banned addresses are just strings which are simply compared.  I leave it as an exercise for the reader to add regular expressions to the banned list!</p>
<h5>The Code</h5>
<p>Whenever the config.xml file is changed, the agent reloads it and parses the XML.  It puts the banned emails into a List and the regular expression patterns and redirect addresses into a Dictionary.  If any of the emails in the config appear invalid the new configuration is rejected and the agent continues to use the running config.</p>
<p>The agent defines a RCPT TO: handler.  This event is fired as soon as the sending MTA starts to transmit the recipient addresses.  rcptArgs contains the argument we need: RecipientAddress, which we store as a lowercase string for comparison.  Although the spec (<a href="http://www.faqs.org/rfcs/rfc2821.html">RFC2821</a>) actually requires email addresses to be case sensitive, I&#8217;ve never met an MTA that adheres to that part of the spec.  So for our purposes email addresses are case insensitive and we can do all comparisons in lowercase.</p>
<div class="wp_syntax">
<div class="code">
<pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">void</span> RcptToHandler<span style="color: #008000;">&#40;</span>ReceiveCommandEventSource source, RcptCommandEventArgs rcptArgs<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
<span style="color: #008080; font-style: italic;">// Get the recipient address as a lowercase string.</span>
<span style="color: #6666cc; font-weight: bold;">string</span> strRecipientAddress <span style="color: #008000;">=</span> rcptArgs<span style="color: #008000;">.</span><span style="color: #0000FF;">RecipientAddress</span><span style="color: #008000;">.</span><span style="color: #0000FF;">ToString</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">ToLower</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></pre>
</div>
</div>
<p>It performs two checks.  First &#8211; is the recipient address in the ban list?</p>
<div class="wp_syntax">
<div class="code">
<pre class="csharp" style="font-family:monospace;"><span style="color: #008080; font-style: italic;">// Search the banned email List for the recipient.</span>
<span style="color: #6666cc; font-weight: bold;">bool</span> exists <span style="color: #008000;">=</span> catchAllConfig<span style="color: #008000;">.</span><span style="color: #0000FF;">Banned</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Exists</span><span style="color: #008000;">&#40;</span>element <span style="color: #008000;">=&gt;</span> element <span style="color: #008000;">==</span> strRecipientAddress<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>exists<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #008080; font-style: italic;">// If found respond to the sending MTA with the reject response.</span>
	source<span style="color: #008000;">.</span><span style="color: #0000FF;">RejectCommand</span><span style="color: #008000;">&#40;</span>CatchAllAgent<span style="color: #008000;">.</span><span style="color: #0000FF;">rejectResponse</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
	<span style="color: #008080; font-style: italic;">// No further processing.</span>
	<span style="color: #0600FF; font-weight: bold;">return</span><span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span></pre>
</div>
</div>
<p>And second, does the recipient address match any of the regular expressions?</p>
<div class="wp_syntax">
<div class="code">
<pre class="csharp" style="font-family:monospace;"><span style="color: #008080; font-style: italic;">// For each pair of regexps to email addresses</span>
<span style="color: #0600FF; font-weight: bold;">foreach</span> <span style="color: #008000;">&#40;</span>var pair <span style="color: #0600FF; font-weight: bold;">in</span> catchAllConfig<span style="color: #008000;">.</span><span style="color: #0000FF;">AddressMap</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #008080; font-style: italic;">// Create the regular expression and the routing address from the dictionary.</span>
	Regex emailPattern <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Regex<span style="color: #008000;">&#40;</span>pair<span style="color: #008000;">.</span><span style="color: #0000FF;">Key</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
	RoutingAddress emailAddress <span style="color: #008000;">=</span> pair<span style="color: #008000;">.</span><span style="color: #0000FF;">Value</span><span style="color: #008000;">;</span>
&nbsp;
	<span style="color: #008080; font-style: italic;">// If the recipient address matches the regular expression.</span>
	<span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>emailPattern<span style="color: #008000;">.</span><span style="color: #0000FF;">IsMatch</span><span style="color: #008000;">&#40;</span>strRecipientAddress<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
	<span style="color: #008000;">&#123;</span>
		<span style="color: #008080; font-style: italic;">// And if the recipient is NOT in the address book.</span>
		<span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span><span style="color: #0600FF; font-weight: bold;">this</span><span style="color: #008000;">.</span><span style="color: #0000FF;">addressBook</span> <span style="color: #008000;">!=</span> <span style="color: #0600FF; font-weight: bold;">null</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&amp;&amp;</span>
			<span style="color: #008000;">&#40;</span><span style="color: #0600FF; font-weight: bold;">this</span><span style="color: #008000;">.</span><span style="color: #0000FF;">addressBook</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Find</span><span style="color: #008000;">&#40;</span>rcptArgs<span style="color: #008000;">.</span><span style="color: #0000FF;">RecipientAddress</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">==</span> <span style="color: #0600FF; font-weight: bold;">null</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
		<span style="color: #008000;">&#123;</span>
			<span style="color: #008080; font-style: italic;">// Redirect the recipient to the other address.</span>
			rcptArgs<span style="color: #008000;">.</span><span style="color: #0000FF;">RecipientAddress</span> <span style="color: #008000;">=</span> emailAddress<span style="color: #008000;">;</span>
&nbsp;
			<span style="color: #008080; font-style: italic;">// No further processing.</span>
			<span style="color: #0600FF; font-weight: bold;">return</span><span style="color: #008000;">;</span>
		<span style="color: #008000;">&#125;</span>
	<span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span></pre>
</div>
</div>
<p>Note that in both cases as soon as we&#8217;ve got a positive result we stop further processing.  If an address is in the ban list we immediately reject it, and if we find a matching regular expression we use its paired address to redirect the message and stop looking for further matches.</p>
<p>I&#8217;ve given enough information here that a C# developer with some spare time could create this Transport Agent themselves.  However I know that it is really useful to have a package you can just download and install without having to worry about compiling it yourself.  So I&#8217;ve packaged the DLL together with installation scripts and the <a href="/regexcatchall/installation/">install and configuration guide</a>.  </p>
<p>Please visit the <a href="/regexcatchall/">product page</a> for more information and to purchase the Transport Agent.  Payment is via PayPal, you will receive the download link within minutes of payment.</p>
]]></content:encoded>
			<wfw:commentRss>http://durdle.com/archives/2010/05/29/regexcatchall/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Remote Desktop Connection won&#039;t connect.</title>
		<link>http://durdle.com/archives/2008/09/22/remote-desktop-connection-wont-connect/</link>
		<comments>http://durdle.com/archives/2008/09/22/remote-desktop-connection-wont-connect/#comments</comments>
		<pubDate>Mon, 22 Sep 2008 18:47:13 +0000</pubDate>
		<dc:creator>Howard</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.durdle.com/?p=423</guid>
		<description><![CDATA[I rebuilt my main desktop a few days ago and ever since I&#8217;ve not been able to connect to it with Remote Desktop.  I click connect from the other machine and the buttons grey out for a moment before they reset.  No error message is displayed.  Checking the event log shows a number of Application...]]></description>
			<content:encoded><![CDATA[<p>I rebuilt my main desktop a few days ago and ever since I&#8217;ve not been able to connect to it with Remote Desktop.  I click connect from the other machine and the buttons grey out for a moment before they reset.  No error message is displayed.  Checking the event log shows a number of Application Popup errors relating to RDPDD.DLL.</p>
<p>It turns out that this is caused by the latest NVidia drivers &#8211; which of course I downloaded and installed on rebuilding the machine, the only fix at the moment is to add this to the registry:</p>
<pre><code>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
"SessionImageSize"=dword:00000020</code></pre>
<p>Hopefully NVidia will fix this in a future driver.</p>
]]></content:encoded>
			<wfw:commentRss>http://durdle.com/archives/2008/09/22/remote-desktop-connection-wont-connect/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>My 1080p HTPC: Movie and TV management</title>
		<link>http://durdle.com/archives/2008/07/14/my-1080p-htpc-movie-and-tv-management/</link>
		<comments>http://durdle.com/archives/2008/07/14/my-1080p-htpc-movie-and-tv-management/#comments</comments>
		<pubDate>Mon, 14 Jul 2008 07:16:12 +0000</pubDate>
		<dc:creator>Howard</dc:creator>
				<category><![CDATA[HDTV]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.durdle.com/?p=311</guid>
		<description><![CDATA[What do we buy the birthday boy who has a no-media policy? That&#8217;s what Phil asked me before my birthday last month.  He was referring to the fact that I have no CDs, no DVDs no optical media of any description cluttering my living room.  All our TV and movies are stored on a variety...]]></description>
			<content:encoded><![CDATA[<blockquote><p>What do we buy the birthday boy who has a no-media policy?</p></blockquote>
<p>That&#8217;s what Phil asked me before my birthday last month.  He was referring to the fact that I have no CDs, no DVDs no optical media of any description cluttering my living room.  All our TV and movies are stored on a variety of redundant storage and accessed over the network.  Be it full VOB rips of DVDs to Xvid or x264 encodes of movies and TV it can all now be played back by the new HTPC.  Of course with as much digital content as we have, we need a decent system to manage and search it.  Read on for the best solutions I&#8217;ve found&#8230;</p>
<h4><span id="more-311"></span>MyMovies</h4>
<p><a href="/wp-content/uploads/mymovies.jpg" rel="lightbox[311]"><img class="alignleft size-thumbnail wp-image-312" style="margin: 2px; float: left;" title="MyMovies" src="/wp-content/uploads/mymovies-150x150.jpg" alt="" width="150" height="150" /></a>This <a href="http://www.mymovies.dk/home.aspx">plugin</a> provides a full management suite for keeping details of your movies.  What I particularly like is the standalone Collection Management tool that allows you to add and edit details from any machine on your network.  Once installed you can create categories and filters that, for example, limit the list on screen to just your HD movies.  The onscreen interface seems to be some kind of HTML variant rather than the &#8220;native&#8221; media centre applications, this is the only criticism I have of it.</p>
<p>Imagine having a version of IMDB tailored specifically to your movie collection.  That&#8217;s effectively what you end up with onscreen.  Just enjoyed a film and want to see another by the same director?  Click his name in the interface and you&#8217;ll find not only a biography but a list of all his other films that you have already got.  The same goes for the actors in the films.  You also get full cover art (front and back of the DVDs), audio track information and a brief synopsis of the film.</p>
<h4>MyTV</h4>
<p><a href="/wp-content/uploads/mytv.jpg" rel="lightbox[311]"><img class="alignleft size-thumbnail wp-image-313" style="margin: 2px; float: left;" title="MyTV" src="/wp-content/uploads/mytv-150x150.jpg" alt="" width="150" height="150" /></a>The <a href="http://mytv.senseitweb.com/">MyTV plugin</a> reminds me of the Library functionality that I could never quite get to work in <a href="http://xbmc.org/">XBMC</a>, only this time it works.  It queries <a href="http://thetvdb.com/">thetvdb.com</a> to find the titles, graphics, synopses and a myriad of other details for every episode of nearly every TV series you might have on your server.  Even if it can&#8217;t find them you can, in true collaborative style, add them to thetvdb yourself (as I have done for several shows).</p>
<p>Once it&#8217;s found the show, it relies on you having named the episodes correctly; for most TV downloaders the format will look familiar: <em>Battlestar.Galactica.s01e01</em> would cause myTV to populate the database with the data from <a href="http://thetvdb.com/?tab=episode&amp;seriesid=73545&amp;seasonid=5951&amp;id=117849&amp;lid=7">here</a>.  Outstanding.</p>
<p>Both of these plugins work immediately out of the box and require relatively little faffing about.  They also both have very healthy communities built up around them offering support.  MyMovies has a contribution feature whereby if you find data missing in their database, you can upload if yourself earning points in the process.  You can also <a href="http://c.mymovies.name/hdurdle">show off your entire collection</a> via a free website should you want the world to see.</p>
]]></content:encoded>
			<wfw:commentRss>http://durdle.com/archives/2008/07/14/my-1080p-htpc-movie-and-tv-management/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My 1080p HTPC: Freesat with Vista</title>
		<link>http://durdle.com/archives/2008/07/13/my-1080p-htpc-freesat-with-vista/</link>
		<comments>http://durdle.com/archives/2008/07/13/my-1080p-htpc-freesat-with-vista/#comments</comments>
		<pubDate>Sun, 13 Jul 2008 12:32:48 +0000</pubDate>
		<dc:creator>Howard</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[HDTV]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.durdle.com/?p=308</guid>
		<description><![CDATA[Having ditched Freeview for signal quality reasons, it&#8217;s time to talk about getting the satellite cards to work under Vista Media Centre &#8211; something that until MS release the &#8220;Fuji&#8221; update is not as trivial as you&#8217;d think!  Vista&#8217;s tuning architecture doesn&#8217;t understand DVB-S (or -S2), so can&#8217;t natively tune satellite cards, so we need...]]></description>
			<content:encoded><![CDATA[<p><a href="/wp-content/uploads/hauppage_hd-thumb.jpg" rel="lightbox[308]"><img class="alignleft size-full wp-image-309" style="margin: 2px; float: left;" title="Hauppauge WinTV-NOVA-HD-S2" src="/wp-content/uploads/hauppage_hd-thumb.jpg" alt="" width="151" height="160" /></a>Having ditched Freeview for signal quality reasons, it&#8217;s time to talk about getting the satellite cards to work under Vista Media Centre &#8211; something that until MS release the &#8220;Fuji&#8221; update is not as trivial as you&#8217;d think!  Vista&#8217;s tuning architecture doesn&#8217;t understand DVB-S (or -S2), so can&#8217;t natively tune satellite cards, so we need to &#8220;trick&#8221; Vista into believing that the satellite card is actually just a standard DVB-T (Freeview) card, albeit with many more channels.<span id="more-308"></span></p>
<p>Hauppauge&#8217;s <a href="http://www.hauppauge.co.uk/site/products/data_novahds2.html">WinTV-NOVA-HD-S2</a> card is a Freesat compatible, HDTV capable satellite card. Hauppauge themselves <a href="http://www.hauppauge.co.uk/board/showthread.php?t=14887">provide</a> (<a href="http://blog.durdle.com/wp-content/uploads/2008/07/dvb-s-mce-patch.exe">local mirror</a>) a modification to the Windows driver that fools Vista into seeing a DVB-T card instead of DVB-S.  It&#8217;s a simple install: run the application and choose the satellite you intend to view &#8211; in our case Astra 2 at 28.2 degrees for the Freesat transponders &#8211; and it imports some settings into the registry to enable the device as a fake DVB-T card, and remaps the satellite transponders to appears as DVB-T channel muxes.</p>
<p>After a reboot you can start Vista Media Centre and perform a channel scan on your new tuner using the Sky headend (usually at the end of the list of available sources).  By default this will result in over 200 channels, most of which you can&#8217;t view because they&#8217;re protected by Sky&#8217;s encryption technology.</p>
<p>It&#8217;s worth editing the registry to remove transponders that you know you won&#8217;t need such as the multiple regional BBC and ITV channels, all the encrypted channels, and the myriad shopping TV channels.  Each transponder is stored as a key in the registry under:</p>
<pre>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HCW88bda\DVBS_as_DVBT</pre>
<p>In my case, I used the <a href="http://www.lyngsat.com/astra2d.html">LyngSat information</a> on the Astra 2D satellite to compare the frequency and channel list.  The dvbs_freq value in the registry represents the frequency listed in the leftmost column on the LyngSat page. For example removing the registry entry with the value of 10788000 will get rid of a load of Midlands and Yorkshire BBC channels.  Just delete the entire key that contains the value and when Vista scans for channels it will skip over that transponder.</p>
<pre>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HCW88bda\DVBS_as_DVBT\474000] ; #14
"dvbs_freq"=dword:A3B628 ; 10729000
"dvbs_polarity"=dword:2 ; 2
"dvbs_srate"=dword:55F0 ; 22000
"nit_onid"=dword:2 ; 2
"nit_tsid"=dword:7FA ; 2042
"nit_nid"=dword:0 ; 0
"DiSEqC_Port"=dword:1 ; 1</pre>
<p>The only transponders I&#8217;ve left in are:</p>
<pre>10729 (for E4, More4, Film4, Channel4)
10758 (for ITV2, CITV, ITV4, Men &amp; Motors)
10773 (for CBBC, BBC3, BBC4, CBeebies, BBC2)
10818 (for BBC1 South)
10847 (for BBC HD)
10891 (for ITV1 South)</pre>
<p>Until their contract expires with Sky, none of the Five network channels appear free to air.</p>
<p>Once you&#8217;ve scanned for channels you will end up with a somewhat unorthodox channel list.  You will need to rename some, and reorder and add channel listings to the rest.  You can do this via Settings-&gt;TV-&gt;Guide where you&#8217;ll find Change Channel Order, Edit Channels and Add Listings to Channel.  For example, by default Channel 4 appears as a channel named 5830.  You&#8217;ll need to rename this to Channel 4 and then add the guide listings for the appropriate channel.  Ordering channels is a real pain since you can&#8217;t just define channel numbers; you must labouriously move the channels up and down in the list.  Let&#8217;s hope that the Fuji update addresses this too.</p>
<p>Next post: the must have Vista Media Centre plugins for Movies and TV.</p>
]]></content:encoded>
			<wfw:commentRss>http://durdle.com/archives/2008/07/13/my-1080p-htpc-freesat-with-vista/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>My 1080p HTPC: Multiple Freeview Tuners</title>
		<link>http://durdle.com/archives/2008/07/12/my-1080p-htpc-multiple-freeview-tuners/</link>
		<comments>http://durdle.com/archives/2008/07/12/my-1080p-htpc-multiple-freeview-tuners/#comments</comments>
		<pubDate>Sat, 12 Jul 2008 09:09:24 +0000</pubDate>
		<dc:creator>Howard</dc:creator>
				<category><![CDATA[Cinema]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[HDTV]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.durdle.com/?p=305</guid>
		<description><![CDATA[When I originally built my HTPC, I used 2 Freeview cards.  Each Hauppauge WinTV-NOVA-T500 has two Freeview tuners in one PCI card.  By installing two of these (and with some registry tweaking) it is possible to build a device that can record/watch 4 Freeview channels at once. Out of the box the Vista Media Centre...]]></description>
			<content:encoded><![CDATA[<p><a href="/wp-content/uploads/1010207853.jpg" rel="lightbox[305]"><img class="alignleft size-full wp-image-307" style="margin: 2px; float: left;" title="Hauppauge WinTV-NOVA-T-500" src="/wp-content/uploads/1010207853.jpg" alt="" width="150" height="150" /></a>When I originally built my <a href="http://blog.durdle.com/archives/2008/06/21/my-1080p-htpc/">HTPC</a>, I used 2 Freeview cards.  Each Hauppauge <a href="http://www.hauppauge.co.uk/site/products/data_novat500.html">WinTV-NOVA-T500</a> has two Freeview tuners in one PCI card.  By installing two of these (and with some registry tweaking) it is possible to build a device that can record/watch 4 Freeview channels at once.</p>
<p>Out of the box the Vista Media Centre GUI is only capable of setting up 2 tuners at any one time.  This is odd since the underlying tuner architecture is actually quite capable of using as many tuners as you can fit in the machine.  Your limiting factor, really, is the speed you can push the data to your hard drive.<span id="more-305"></span></p>
<p>So, how to enable the extra tuners?  Here&#8217;s the process I followed to make it work:</p>
<ol>
<li>Start Media Centre by pressing the Green Button.</li>
<li>Go to Setting -&gt; TV -&gt; Set Up TV Signal.</li>
<li>Follow the process for configuring the tuners, in the first run through you will configure the first 2 tuners.</li>
<li>Close the Media Centre interface.</li>
<li>Stop the Media Centre Receiver service.
<pre>net stop ehrecvr</pre>
</li>
<li>Open the Registry Editor, and navigate to this key:
<pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
\Media Center\Service\Video\Tuners\{71985F48-1CA1-11D3-9CC8-00C04F7971E0}</pre>
<p>That GUID on the end is the one for the DVB-T tuning space.</li>
<li>Under the GUID key there will be one key per tuner device &#8211; you need to find the two keys that were just configured by the Media Centre interface.</li>
<li>You can locate them by looking for the <strong>EnabledForMCE</strong> value under the <strong>UserSettings </strong>key.  If the value is set to <strong>0xffffffff</strong> it has been configured, if not it&#8217;ll be <strong>0&#215;00000000</strong>.</li>
<li>Export those two keys to .reg files by right-clicking on the GUID key and choosing Export [Selected Branch Only].  Name each one separately (Tuner1.reg, Tuner2.reg, etc).</li>
<li>Repeat steps 1 to 9 for each set of two tuners you have, in my case I just had to do the process twice, once for tuners 1 and 2, then again for 3 and 4.</li>
<li>Once you&#8217;ve exported all the registry keys, and ensuring the ehrecvr service is still stopped, double-click all the keys to import them into the registry.</li>
<li>Close Registry Editor.</li>
<li>Start the Media Centre interface.</li>
</ol>
<p>You can test that this has worked by entering the guide and starting recordings on 4 channels at once.  You should be able to go into Recorded TV and watch the streams of any of the channels as they are being recorded.</p>
<p>Sounds great, right?  So why am I using satellite cards instead of Freeview?  Two reasons: signal quality, and HD support.  We&#8217;re in a bit of a fringe signal area, and our aerial is fed via a series of boosters and distribution devices through multiple apartments.  I happen to have a Sky Minidish with a quad LNB anyway from when I used to subscribe to SkyHD.  I can&#8217;t put a new Freeview aerial on the roof, and loft-based aerials don&#8217;t offer the signal quality necessary.  So I turned to the <a href="http://www.hauppauge.co.uk/site/products/data_novahds2.html">satellite cards</a>, which offer the benefit of HD content too.  More on them, and why using Satellite under Vista is a pain in the proverbial in the next post.</p>
]]></content:encoded>
			<wfw:commentRss>http://durdle.com/archives/2008/07/12/my-1080p-htpc-multiple-freeview-tuners/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Disable Windows Desktop Search Explorer Integration</title>
		<link>http://durdle.com/archives/2008/07/10/disable-windows-desktop-search-explorer-integration/</link>
		<comments>http://durdle.com/archives/2008/07/10/disable-windows-desktop-search-explorer-integration/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 11:44:49 +0000</pubDate>
		<dc:creator>Howard</dc:creator>
				<category><![CDATA[Future Howard]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.durdle.com/?p=301</guid>
		<description><![CDATA[Another post from the &#8220;helping future Howard&#8221; category.  I use Outlook 2007, which is great, but in order to be able to search your email with decent performance you must install Windows Desktop Search.  Unfortunately when you do this it integrates with Explorer without asking permission to do so.  This means that should you hit...]]></description>
			<content:encoded><![CDATA[<p><a href="/wp-content/uploads/windows_search.jpg" rel="lightbox[301]"><img class="alignleft size-full wp-image-302" style="border: 0pt none; margin: 1px; float: left;" title="Windows Search" src="/wp-content/uploads/windows_search.jpg" alt="" width="127" height="402" /></a>Another post from the &#8220;helping future Howard&#8221; category.  I use Outlook 2007, which is great, but in order to be able to search your email with decent performance you must install Windows Desktop Search.  Unfortunately when you do this it integrates with Explorer without asking permission to do so.  This means that should you hit F3 to search inside an Explorer folder you&#8217;ll be presented with the monstrosity on the left; an entirely useless dialogue box unless you happen to be indexing the contents of your entire machine and network.  I&#8217;m not: I only index my Outlook content.</p>
<p>So, to disable this you must open regedit and find:</p>
<pre>HKEY_CURRENT_USER\Software\Microsoft\Windows Desktop Search\DS</pre>
<p>and set the <strong>ShowStartSearchBand </strong>value to <strong>0</strong>.  That&#8217;ll give you back the default behaviour.</p>
<p>I find it quite irritating that the interface chooses to admonish me that I&#8217;m not indexing the content instead of just presenting me with the search functionality that is able to search the content for me.</p>
]]></content:encoded>
			<wfw:commentRss>http://durdle.com/archives/2008/07/10/disable-windows-desktop-search-explorer-integration/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>My 1080p HTPC: The Software</title>
		<link>http://durdle.com/archives/2008/06/26/my-1080p-htpc-the-software/</link>
		<comments>http://durdle.com/archives/2008/06/26/my-1080p-htpc-the-software/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 03:26:12 +0000</pubDate>
		<dc:creator>Howard</dc:creator>
				<category><![CDATA[Cinema]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[HDTV]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[TV]]></category>

		<guid isPermaLink="false">http://blog.durdle.com/?p=294</guid>
		<description><![CDATA[As I mentioned in the last post, I&#8217;m running the Media Center (yes, that&#8217;s how they spell it) interface from Vista Ultimate to drive my HTPC. Out of the box Vista Media Center (VMC) is capable of playing DVDs and MPEG2 broadcast content &#8211; such as the output of a Hauppauge DVB-T or DVB-S TV...]]></description>
			<content:encoded><![CDATA[<p><a href="/wp-content/uploads/full-hd-1080.jpg" rel="lightbox[294]"><img class="alignleft size-full wp-image-295" style="border: 0pt none; margin: 1px; float: left;" title="Full HD 1080" src="/wp-content/uploads/full-hd-1080.jpg" alt="Full HD 1080" width="168" height="133" /></a>As I mentioned in the <a href="http://blog.durdle.com/archives/2008/06/21/my-1080p-htpc/" target="_blank">last post</a>, I&#8217;m running the Media Center (yes, that&#8217;s how they spell it) interface from Vista Ultimate to drive my HTPC.  Out of the box Vista Media Center (VMC) is capable of playing DVDs and MPEG2 broadcast content &#8211; such as the output of a Hauppauge <a href="http://www.hauppauge.co.uk/site/products/data_novat500.html" target="_blank">DVB-T</a> or <a href="http://www.hauppauge.co.uk/site/products/data_novasplus.html" target="_blank">DVB-S</a> TV card.  What it can&#8217;t do is play the more esoteric formats such as DivX, XVid and hidef containers such as the <a title="Matroska" href="http://en.wikipedia.org/wiki/Matroska" target="_blank">Matroska</a> (MKV) files.<span id="more-294"></span></p>
<p>In order to play these files in VMC I had to install a few extra codecs and applications:</p>
<p><a href="http://haali.cs.msu.ru/mkv/" target="_blank">Haali Media Splitter</a></p>
<p>This is the standard app for any system trying to play video stored in the Matroska container format.  It &#8220;splits&#8221; the file, piping the video, audio and &#8211; if present &#8211; subtitles to separate codecs for further processing.  It does not do any decoding itself, merely allows other decoding apparatus to see the streams.  It also allows the system to see into the containers to create thumbnails &#8211; which makes things in VMC much prettier.</p>
<p><a href="http://ffdshow-tryout.sourceforge.net/" target="_blank">ffdshow tryout</a></p>
<p>This does nearly every other codec you can imagine.  During installation on the mixer settings screen I turned the mixer off.  After installation I ran the audio and video configurations to make a few more changes: <strong>AC3 </strong>and <strong>DTS </strong>audio were set to <strong>spdif</strong>: this allows ffdshow to direct the audio stream directly to the optical out for my A/V Receiver to process.</p>
<p>Also, in the Video Configuration I set <strong>x264 </strong>decoding to <strong>disabled</strong>, because instead of using ffdshow, I used:</p>
<p><a href="http://www.coreavc.com/" target="_blank">CoreAVC</a></p>
<p>CoreAVC (which actually includes Haali as part of its setup) is a multi-core aware AVC video decoder.  With a fast enough processor it is capable of decoding 1080p MKV files while ffdshow pushes DTS audio to my receiver.  It&#8217;s not free &#8211; setting you back a measly 15$ &#8211; but is well worth the price.  Rumour has it that ffdshow will soon be multi-core aware, if so it would mean you could do without CoreAVC.  At the time of my build however, this seemed the best solution.</p>
<p>In the CoreCodec Settings, make sure that Explorer Integration is set to Yes &#8211; this enables thumbnailing.</p>
<p>In order for VMC to recognise .mkv files as video, I had to add these settings to the registry:</p>
<div class="wp_syntax">
<div class="code">
<pre class="reg" style="font-family:monospace;"><span style="color: #0000FF;">Windows Registry Editor Version 5.00</span>
<span style="color: #000000;">&#91;</span><span style="color: #800000;">HKEY_CLASSES_ROOT</span>\.mkv<span style="color: #000000;">&#93;</span>
<span style="">@</span><span style="color: #000000;">=</span><span style="">&quot;CoreMedia.MKV&quot;</span>
<span style="color: #0000FF;">&quot;PerceivedType&quot;</span><span style="color: #000000;">=</span><span style="">&quot;video&quot;</span>
&nbsp;
<span style="color: #000000;">&#91;</span><span style="color: #800000;">HKEY_CLASSES_ROOT</span>\.ts<span style="color: #000000;">&#93;</span>
<span style="">@</span><span style="color: #000000;">=</span><span style="">&quot;MatroskaVideo&quot;</span>
<span style="color: #0000FF;">&quot;PerceivedType&quot;</span><span style="color: #000000;">=</span><span style="">&quot;video&quot;</span>
<span style="color: #0000FF;">&quot;Content Type&quot;</span><span style="color: #000000;">=</span><span style="">&quot;video/x-matroska&quot;</span></pre>
</div>
</div>
<p>Save that as &#8220;mkv.reg&#8221; and double-click to add it to the registry.</p>
<p>With those applications installed and with those few changes made your system (assuming decent processor) will be able to play 1080p x264 mkv files, complete with 5.1 DTS audio.  You may congratulate yourself with a cup of tea.  Come back soon for why I&#8217;m using satellite TV cards rather than Freeview (and why doing so is a pain in the proverbial in the current version of VMC) also: the must have VMC plugins to manage your movie collection and TV episodes.</p>
]]></content:encoded>
			<wfw:commentRss>http://durdle.com/archives/2008/06/26/my-1080p-htpc-the-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Remove Windows Media Player context menu entries</title>
		<link>http://durdle.com/archives/2007/12/19/remove-windows-media-player-context-menu-entries/</link>
		<comments>http://durdle.com/archives/2007/12/19/remove-windows-media-player-context-menu-entries/#comments</comments>
		<pubDate>Wed, 19 Dec 2007 09:01:36 +0000</pubDate>
		<dc:creator>Howard</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[context menu]]></category>
		<category><![CDATA[shell extensions]]></category>
		<category><![CDATA[windows media player]]></category>

		<guid isPermaLink="false">http://blog.durdle.com/archives/2007/12/19/remove-windows-media-player-context-menu-entries/</guid>
		<description><![CDATA[I use Winamp to play mp3s.  I always have done &#8211; it&#8217;s lightweight, I like the interface and it has the few plugins I need.  I don&#8217;t need the bloat of iTunes or Windows Media Player.  However, I seem to have Windows Media Player installed &#8211; I don&#8217;t remember installing it, and I probably wouldn&#8217;t...]]></description>
			<content:encoded><![CDATA[<p>I use <a href="http://www.winamp.com/player" title="Winamp" target="_blank">Winamp </a>to play mp3s.  I always have done &#8211; it&#8217;s lightweight, I like the interface and it has the few plugins I need.  I don&#8217;t need the bloat of iTunes or Windows Media Player.  However, I seem to have Windows Media Player installed &#8211; I don&#8217;t remember installing it, and I probably wouldn&#8217;t have noticed it was there were it not for the plethora of context menu items it installs.</p>
<p>All I wanted to do was right-click a selection of mp3s and then queue them in the Winamp playlist.  That&#8217;s when I noticed a load of entries like &#8220;sync to device&#8221;, &#8220;burn&#8221;, &#8220;add to library&#8221;.  Turns out Media Player had hooked into the shell.  Thankfully, there is a way to get rid of this integration (which added a delay of several seconds to my right-click!).</p>
<p>Here&#8217;s the fix, click Start, Run and type:</p>
<blockquote><p>regsvr32 /u wmpshell.dll</p></blockquote>
<p>Horrah &#8211; a much cleaner context menu.  I wonder if there is any software to allow you to remove specific entries from that list?</p>
]]></content:encoded>
			<wfw:commentRss>http://durdle.com/archives/2007/12/19/remove-windows-media-player-context-menu-entries/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Traffic Graphing</title>
		<link>http://durdle.com/archives/2007/12/03/traffic-graphing/</link>
		<comments>http://durdle.com/archives/2007/12/03/traffic-graphing/#comments</comments>
		<pubDate>Mon, 03 Dec 2007 13:11:37 +0000</pubDate>
		<dc:creator>Howard</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.durdle.com/archives/2007/12/03/traffic-graphing/</guid>
		<description><![CDATA[The image on the left is just one of the graphs generated automatically for tracking the data usage on my home network. That particular graph shows the usage of my ADSL connection over time; green is downloaded data, while the blue line shows my uploads. It is generated by Tobi Oetiker&#8217;s outstanding MRTG &#8211; The...]]></description>
			<content:encoded><![CDATA[<p><img src="/wp-content/uploads/trafficgraphing.png" style="border-width: 0px" alt="image" align="left" border="0" height="69" width="244" />The image on the left is just one of the graphs generated automatically for tracking the data usage on my home network.</p>
<p>That particular graph shows the usage of my ADSL connection over time; green is downloaded data, while the blue line shows my uploads.  It is generated by Tobi Oetiker&#8217;s outstanding MRTG &#8211; <a href="http://oss.oetiker.ch/mrtg/">The Multi Router Traffic Grapher</a>.  MRTG is a free Perl script that connects to any device capable of talking SNMP and pulls interesting data from it.</p>
<p>I currently log DSL, Wireless and LAN use (Bytes per second), along with line noise and Noise Margin of the DSL connection.  I could also log what the switch in my network is doing, and even what my various servers are up to.  As you can see from the graphs you get a nice indication of traffic patterns over time &#8211; it&#8217;s very easy to spot peaks when BitTorrent kicks in and out, or when someone in a different time zone is playing on my Counter Strike server!</p>
<p>It gives me an &#8220;at a glance&#8221; overview of what most of my networked devices are doing &#8211; which was enough to make me notice the other day that despite having all my wireless devices switched off, something was still polling the Access Point.  Turns out I&#8217;d left one of the laptops disassociated &#8211; but on &#8211; and it was sending a little chatter to the AP every few hours.</p>
]]></content:encoded>
			<wfw:commentRss>http://durdle.com/archives/2007/12/03/traffic-graphing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing Leopard from a Disk Image</title>
		<link>http://durdle.com/archives/2007/11/29/installing-leopard-from-a-disk-image/</link>
		<comments>http://durdle.com/archives/2007/11/29/installing-leopard-from-a-disk-image/#comments</comments>
		<pubDate>Thu, 29 Nov 2007 12:04:40 +0000</pubDate>
		<dc:creator>Howard</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.durdle.com/archives/2007/11/29/installing-leopard-from-a-disk-image/</guid>
		<description><![CDATA[My first generation MacBook Pro steadfastly refuses to read the dual-layer DVD that Leopard comes on. All my Windows machines can read it (or at least the BootCamp partition) and my G5 can read the disk too, but the MacBook Pro won&#8217;t boot off it. However, I do have plenty of external drives kicking about...]]></description>
			<content:encoded><![CDATA[<p><img align="left" alt="Apple OS X Leopard" id="image266" title="Apple OS X Leopard" src="/wp-content/uploads/base_media.jpg" />My first generation MacBook Pro steadfastly refuses to read the dual-layer DVD that Leopard comes on.  All my Windows machines can read it (or at least the BootCamp partition) and my G5 can read the disk too, but the MacBook Pro won&#8217;t boot off it.  However, I do have plenty of external drives kicking about so thought I ought to be able to boot off one of those.  And yes, I&#8217;m only really doing this to get continued <a target="_blank" title="Boot Camp" href="http://www.apple.com/macosx/features/bootcamp.html">Boot Camp</a> support for the Windows XP install I use more than anything else on the MBP.  Here&#8217;s what I did:</p>
<ul>
<li>Use Disk Utility (on the G5) to create a DMG file.</li>
<li>Connect the MacBook Pro and G5 to my gigabit network, and boot the MacBook Pro into Tiger.</li>
<li>Connect the USB drive (a self powered 100Gb 2.5&#8243; drive in this case) to the MacBook Pro (I used the right USB port &#8211; not sure if it matters which).</li>
<li>I erased the (NTFS) partition on the external disk, and created a GUID Apple partition.</li>
<li>Select the Restore tab on Disk Utility and drag the DMG file to the source field.</li>
<li>Drag the USB partition (the one I just created) to the destination field.</li>
<li>Click Restore.</li>
<li>After it&#8217;s finished, you should be able to open System Preferences and find the USB disk in the Startup Disk pane.</li>
<li>Select it and press restart &#8211; the MacBook Pro reboots and boots off the external disk.</li>
<li>From here on it&#8217;s as if you were using the DVD!</li>
</ul>
<p>The install was pretty swift &#8211; without the extra printer drivers, fonts or X11 it took about 10 minutes to install.  Since  installing Leopard has killed <a target="_blank" title="rEFIt" href="http://refit.sourceforge.net/">rEFIt </a>the next step is to reinstall Windows and add the Boot Camp 2.0 drivers.</p>
<p>Oh, and the <a target="_blank" title="Leopard intro movie on YouTube" href="http://www.youtube.com/watch?v=BbOLGs855gQ">Leopard intro movie</a> is quite pretty, but has really silly music.</p>
]]></content:encoded>
			<wfw:commentRss>http://durdle.com/archives/2007/11/29/installing-leopard-from-a-disk-image/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

