<?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>Jonathan C Dickinson &#187; Software</title>
	<atom:link href="http://jonathan.dickinsons.co.za/blog/category/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://jonathan.dickinsons.co.za/blog</link>
	<description>&#34;Jonathan Chayce Dickinson&#34;.ToString()</description>
	<lastBuildDate>Sun, 06 Jun 2010 11:07:31 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Virtual Machine Installation Checklist</title>
		<link>http://jonathan.dickinsons.co.za/blog/2010/02/virtual-machine-installation-checklist/</link>
		<comments>http://jonathan.dickinsons.co.za/blog/2010/02/virtual-machine-installation-checklist/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 13:39:28 +0000</pubDate>
		<dc:creator>Jonathan Dickinson</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://jonathan.dickinsons.co.za/blog/?p=191</guid>
		<description><![CDATA[Todo list when making new virtual machines.]]></description>
			<content:encoded><![CDATA[<p>A quick checklist. Mostly just for me.</p>
<ol>
<li>Install guest.</li>
<li>Create descriptive wallpaper (root chain).</li>
<li>Install guest tools.</li>
<li>Change WSUS server.</li>
<li>Update Windows.</li>
<li>Bootstrap Internet Explorer.</li>
<li>Install Clamwin.</li>
<li>Update Clamwin.</li>
<li><a href="http://stackoverflow.com/questions/200635/how-to-change-registration-company-name-for-visual-studio-2008" target="_blank">Change registered company to my company.</a> Remember WOW64 node.</li>
<li>Disable netlogon machine password change.
<pre class="brush: plain;">HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\DisablePasswordChange = 1</pre>
</li>
<li>Disable shutdown event tracker.</li>
<li>(Snapshot)</li>
<li>Create descriptive wallpaper (development chain).</li>
<li>Join domain.</li>
<li>Install .Net Framework 3.51.</li>
<li>Install IIS.</li>
<li>Install MSMQ AD Integration.</li>
<li>Install Visual Studio.</li>
<li>Install TFS Client.</li>
<li>Install Visual Studio SP1.</li>
<li>Install SQL Server.</li>
<li>Install SQL Server SP1.</li>
<li><a href="http://social.technet.microsoft.com/Forums/en/operationsmanagerdeployment/thread/53fa9a6b-b9db-473f-8564-2ac4c62c3365" target="_blank">Configure SQL Firewall Ports.</a></li>
<li>Enable SQL Server TCP/IP.</li>
<li>Install GhostDoc.</li>
<li>Install CodeRush.</li>
<li>Install Coco/R.</li>
<li>Install Tytan.</li>
<li>Update Windows.</li>
<li>Bootstrap VS.</li>
<li>Apply VS customizations.
<ol>
<li>Import settings.</li>
<li>Set up TFS working folder.</li>
<li>Set up GhostDoc to use langword.</li>
</ol>
</li>
<li>Bootstrap SMS.</li>
<li>Create link to K2 keygen.</li>
<li>(Snapshot)</li>
<li>Justice.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://jonathan.dickinsons.co.za/blog/2010/02/virtual-machine-installation-checklist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Direct to MSDN Chrome Search Tag</title>
		<link>http://jonathan.dickinsons.co.za/blog/2009/08/direct-to-msdn-chrome-search-tag/</link>
		<comments>http://jonathan.dickinsons.co.za/blog/2009/08/direct-to-msdn-chrome-search-tag/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 09:27:21 +0000</pubDate>
		<dc:creator>Jonathan Dickinson</dc:creator>
				<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Short]]></category>
		<category><![CDATA[Tricks]]></category>

		<guid isPermaLink="false">http://jonathan.dickinsons.co.za/blog/2009/08/direct-to-msdn-chrome-search-tag/</guid>
		<description><![CDATA[lo-band and high-band views easy in chrome.]]></description>
			<content:encoded><![CDATA[<p>If you ever need to get directly to the documentation for a specific type in MSDN (which Bing routinely fails to give me) here is a search provider for Chrome that will do the trick:</p>
<pre class="brush: plain;">http://msdn.microsoft.com/en-us/library/%s.aspx</pre>
<p>You can obviously also do something like:</p>
<pre class="brush: plain;">http://msdn.microsoft.com/en-us/library/%s(loband).aspx</pre>
<p>In case you need a refresher, here is how you add it:</p>
<ol>
<li>Click the wrench (top right).</li>
<li>Options</li>
<li>Basics (top)</li>
<li>Manage (alongside “Default Search”)</li>
<li>Add</li>
<li>Give it a name and keyword (the keyword is important).</li>
<li>Paste in my URL.</li>
</ol>
<p>To use it go to your address bar and type the keyword, tab and then the full type name. So for example (my keyword was msdnd):</p>
<pre class="brush: plain;">msdnd : [TAB] : system.xml.serialization.xmlelementattribute : [RETURN]</pre>
]]></content:encoded>
			<wfw:commentRss>http://jonathan.dickinsons.co.za/blog/2009/08/direct-to-msdn-chrome-search-tag/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>TFS Server 2008 &#8211; Fail</title>
		<link>http://jonathan.dickinsons.co.za/blog/2009/07/tfs-server-2008-fail/</link>
		<comments>http://jonathan.dickinsons.co.za/blog/2009/07/tfs-server-2008-fail/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 06:26:51 +0000</pubDate>
		<dc:creator>Jonathan Dickinson</dc:creator>
				<category><![CDATA[Fail]]></category>
		<category><![CDATA[K2]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[TFS Server]]></category>

		<guid isPermaLink="false">http://jonathan.dickinsons.co.za/blog/?p=139</guid>
		<description><![CDATA[Installing TFS Server 2008 is far more difficult than it should be. What a waste.]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s an amazing server. The installer needs A LOT of work. Here is what happened to me:</p>
<ol>
<li>Followed the pre-setup instructions to the T.</li>
<li>Run the installer; health check fails. SQL Server is the wrong version (2008 RTM); can&#8217;t find analysis services, NOTHING.</li>
<li>Hmm&#8230; must need SQL 2008 SP1. Install it via Windows Update.</li>
<li>Try again; health check fails. Wrong version of SQL Server, again.</li>
<li>Google &#8211; get a <a title="TFS 2008 and SQL 2008 SP1 solution" href="http://support.microsoft.com/kb/969985" target="_blank">solution</a>.</li>
<li>Follow those instructions to the T.</li>
<li>Installer <strong><em>CRASHES</em><span style="font-weight: normal;">. Each time it does this I need to </span><em>reboot</em><span style="font-weight: normal;">.</span></strong></li>
<li>Eventually just delete the SQL Server version check from hcpackages.xml</li>
<li>It looks like it&#8217;s installing now.</li>
</ol>
<p>16 hours later. TFS Server 2005 took me merely 4-5 hours (did it twice). Considering it&#8217;s a test-bed server where I am going to <em>continue</em> working on integrating K2 with TFS Server (we are going to be using K2 to automate our builds) this was just plain ridiculous.</p>
<p>It&#8217;s clever, and that&#8217;s about it, to use Sharepoint. It seems as though TFS might have started off as a Sharepoint extensibility test. Things would be far easier were it not for the whole Sharepoint dependency (and analysis and reporting &#8211; <em>I don&#8217;t need this</em>).</p>
<p>These guys need to take a hint from the ASP.net team.</p>
]]></content:encoded>
			<wfw:commentRss>http://jonathan.dickinsons.co.za/blog/2009/07/tfs-server-2008-fail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VMWare vSphere Client Under Windows 7</title>
		<link>http://jonathan.dickinsons.co.za/blog/2009/07/vmware-vsphere-client-under-windows-7/</link>
		<comments>http://jonathan.dickinsons.co.za/blog/2009/07/vmware-vsphere-client-under-windows-7/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 09:44:47 +0000</pubDate>
		<dc:creator>Jonathan Dickinson</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[VMWare]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://jonathan.dickinsons.co.za/blog/?p=133</guid>
		<description><![CDATA[If you are having problems running VMWare vSphere (EXSi) under Windows 7 this will help you out.]]></description>
			<content:encoded><![CDATA[<p>This is a patch to get the client tools working.</p>
<ol>
<li>Extract it over VMWare folder in Program Files which should be one of:
<ul>
<li>C:\Program Files\VMWare</li>
<li>C:\Program Files (x86)\VMware</li>
</ul>
</li>
<li>Update each shortcut by:
<ol>
<li>Right click the shortcut.</li>
<li>Click properties.</li>
<li>Click Shortcut (at the top).</li>
<li>In the target box change the .exe at the end to .cmd</li>
<li>Click Ok.</li>
</ol>
</li>
</ol>
<p><a href="http://jonathan.dickinsons.co.za/blog/wp-content/uploads/2009/07/VpxPatch.zip">VMWare vSphere Client Patch</a></p>
<p>Clearly, I take no responsibility for any ill effects that this patch may cause &#8211; whatsoever.</p>
]]></content:encoded>
			<wfw:commentRss>http://jonathan.dickinsons.co.za/blog/2009/07/vmware-vsphere-client-under-windows-7/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>It Works on My Virtual Machine</title>
		<link>http://jonathan.dickinsons.co.za/blog/2009/07/it-works-on-my-virtual-machine/</link>
		<comments>http://jonathan.dickinsons.co.za/blog/2009/07/it-works-on-my-virtual-machine/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 07:27:37 +0000</pubDate>
		<dc:creator>Jonathan Dickinson</dc:creator>
				<category><![CDATA[Ideas]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Top Hacks]]></category>

		<guid isPermaLink="false">http://jonathan.dickinsons.co.za/blog/?p=125</guid>
		<description><![CDATA[It Works on My Machine for developers and QA specialists that employ virtual environments.]]></description>
			<content:encoded><![CDATA[<h2> Origin </h2>
<p>After reading <a href="http://jcooney.net/archive/2007/02/01/42999.aspx" target="_new">Joseph Cooney&#8217;s post on &#8220;Works on My Machine&#8221;</a> I was inspired to integrate this prestigious certification program into my company&#8217;s typical workflow.</p>
<h2> Introduction </h2>
<p>The program applies only to developers and QA specialists who use virtual environments (VMWare, VPC, VirtualBox, etc.) for primary development and/or quality assurance. If the application meets the strict requirements stipulated below it may be branded with the &#8220;It Works on My Virtual Machine&#8221; logo.</p>
<div id="attachment_126" class="wp-caption aligncenter" style="width: 310px"><a href="http://jonathan.dickinsons.co.za/blog/wp-content/uploads/2009/07/worksonmyvm_logo.png"><img src="http://jonathan.dickinsons.co.za/blog/wp-content/uploads/2009/07/worksonmyvm_logo-300x136.png" alt="Click for a high-res version." title="It Works on My Virtual Machine" width="300" height="136" class="size-medium wp-image-126" /></a><p class="wp-caption-text">Click for a high-res version.</p></div>
<h2>Compatibility with other Certification Programs</h2>
<p>This certification is compatible with <a href="http://jcooney.net/archive/2007/02/01/42999.aspx">&#8220;It Works on My Machine&#8221;</a>. It will not qualify and application under &#8220;It Works on My Machine&#8221; automatically, nor will &#8220;It Works on My Machine&#8221; automatically qualify an application under &#8220;It Works on My Virtual Machine&#8221;. Each certification program needs to be met independently.</p>
<h2>Technical Certification Requirements</h2>
<ol>
<li>Compile your latest application code with the relevant compiler. This should include changes from other developers.</li>
<li>Launch the application/site that has just been compiled.</li>
<li>Set a breakpoint in the code and reach it. Use any means possible to ensure the path to the breakpoint executes, this may include (but is not limited to):
<ul>
<li>Changing CPU registers (typically the instruction pointer) by manipulating the virtual machine host.</li>
<li>Using the snapshot feature of the virtual machine host to return to a previous snapshot where the code path executed successfully. Depending on your virtual machine software you may have to take a snapshot before navigating to alternates.</li>
<li>Manipulating the operating system and supplementary services (e.g. SQL) to ensure the path executes correctly.</li>
</ul>
</li>
<li>Check the code changes into your version control system.
<ul>
<li>If the snapshot feature was used, ensure you return to the original state before checking the code in.</li>
</ul>
</li>
</ol>
<h2>Notification Requirements</h2>
<p>Customer and partners need not be informed of the branding; however, it is a preferable to place this logo in a clear location to indicate the quality of the software. Typical examples include:</p>
<ul>
<li>Splash screen on rich clients.</li>
<li>Click-through interstitial landing page on websites.</li>
<li>Ascii art in terminals.</li>
<li>Using it to xor-encrypt sensitive data:
<ul>
<li>The character string &#8220;It Works On My Virtual Machine&#8221; (without quotes) repeated for the duration of the plaintext.</li>
<li>The byte stream of the logo image repeated for the duration of the plaintext.</li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://jonathan.dickinsons.co.za/blog/2009/07/it-works-on-my-virtual-machine/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Websites for IDIOTS</title>
		<link>http://jonathan.dickinsons.co.za/blog/2009/07/websites-for-idiots/</link>
		<comments>http://jonathan.dickinsons.co.za/blog/2009/07/websites-for-idiots/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 18:57:05 +0000</pubDate>
		<dc:creator>Jonathan Dickinson</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://jonathan.dickinsons.co.za/blog/2009/07/websites-for-idiots/</guid>
		<description><![CDATA[A website builder that anyone can use.]]></description>
			<content:encoded><![CDATA[<p>People want to make websites – they just don’t know how (honestly, it’s not that hard). The last time anyone made an attempt at website development for the masses was FrontPage. It was a disaster, we had thousands of cookie-cutter websites springing up all over the place. I will bring such calamity to the web again; although it will be more artful cookies this time round.</p>
<p>I like to think I am pretty familiar with website development; and I have used a <em>wide</em> variety of platforms (from ASP.Net to PHP to RoR). That’s what it comes down to – I know what works and what doesn’t.</p>
<h2>Data</h2>
<p>Ah yes, the nuts and bolts of any website (even your Wordpress blog uses it). Unfortunately you qualify as a DBA alone (and nothing else) for a reason – databases are as hard as hell to get right. If you think for one minute that you know <em>exactly </em>what you are doing – <em>you are doing it wrong</em>. How do we present this to users in an easy fashion? Something that they are familiar with? Spreadsheets! Everyone knows (or at least should know) Excel. Instead of confusing users with data relationships and so forth give it to them in the following format (more or less):</p>
<table width="100%">
<caption>Blog Posts</caption>
<thead>
<tr>
<td valign="top">Title</td>
<td valign="top">Date</td>
<td valign="top">Content</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top">My first post</td>
<td valign="top">18 January 2009</td>
<td valign="top">This is my first post, I am really excited about blogging. YOU ALL SUCK!!!1!!ONE</td>
</tr>
<tr>
<td valign="top">Fish</td>
<td valign="top">18 January 2009</td>
<td valign="top">I like fish – do you.</td>
</tr>
</tbody>
</table>
<p>Granted, those are pretty short and are probably a poor example. It would work like an RDBMS (think Excel but more constrained) with the following exceptions:</p>
<ul>
<li>We don’t call them tables, we call them sheets. </li>
<li>Types are more user friendly. For example: short text, long text, formatted text, date, image etc. </li>
<li>Columns can have formulas; but they apply to the entire column (aggregated columns or excel formulas).</li>
<li>Users can willy-nilly alter the schema as they see fit. No constraints like RDBMS (read no-RDBMS). </li>
</ul>
<p>Now that we have given the user data we need to give them a way to shoot themselves in the foot with it.</p>
<h2>Design</h2>
<p>ASP.Net has one of these fantastic features: master pages. That’s a confusing term – Word terminology will save the day ‘Templates’. Essentially you design a web page but leave bits of it as ‘todos’. If you really wanted to use tables it might look a bit like the following:</p>
<table width="100%">
<tbody>
<tr>
<td colspan="2"><strong>My Cool Websites</strong></td>
</tr>
<tr>
<td width="80%">(Body placeholder)</td>
<td>(Repeating widget)</td>
</tr>
</tbody>
</table>
<p>The placeholder is where you would put the body content. For example, the body post out of the ‘Content’ column. These are fully nest-able; so you could define a template for your entire website – and then have child templates for the blog area, the product area, the home page and so forth.</p>
<p>Widgets? ASP.Net controls in a nutshell. The repeating widget would allow you to create something that repeats (the obvious one here would be posts). Everything would be driven by widgets – there would be no HTML (unless within the HTML widget) editing available.</p>
<p>Let me re-iterate that, NO HTML.</p>
<p>Next, any good website would use CSS. The idea here is to kindly steer users toward using (Word again) ‘Styles’. These define how things look (as CSS is supposed to), obviously the true noobies could just ignore them.</p>
<h2></h2>
<h2></h2>
<h2>Wizards</h2>
<p>My friend recently bought himself a printer that could print onto CDs or DVDs. It has one unique feature: down to earth wizards. The main wizard actually has an option called “I’m in a rush – just make me a label.” That’s the kind of stuff I am going to head for.</p>
<ul>
<li>What type of website do you want? [Blog] [Products] [Brochure]</li>
<li>Blog</li>
<li>[Just make me a blog, I will finish it up later] [Answer some questions about how it want it to work]</li>
</ul>
<p>I’m sure you get the idea. After working at K2 for so long I am partially poisoned – wizards will be rife.</p>
<h2>Doing Something with Data</h2>
<p>Once you have a design and data you need to render that. The obvious choice here would be to have special folders, for instance we could allow the user to construct an address by defining a simple format, for example:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:DFDE9937-D816-47f4-A306-7B60D5CE5AC0:b2aa71e7-419f-4d27-a2b3-e960b42b66d0" class="wlWriterEditableSmartContent">
<pre class="brush: plain; gutter: true; first-line: 1; tab-size: 4;  toolbar: true; ">&lt;Date&gt;/&lt;Title&gt;</pre>
<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></div>
<p>Any field used in that would obviously be made ‘web safe’ by the engine. These folders would then have a single webpage that would allow the user to define how to use that data. The obvious thing here would be to drag the content into the <em>Body placeholder</em>.</p>
<h2>Publish It</h2>
<p>Why is every website today ASP/PHP/RoR/etc. based? They don’t need to be, for crying out loud. The publishing wizard will compile the entire website down to static web pages (html) and blast them to the server (or to a folder); no fuss, no expensive hosting.</p>
<h2>Widgets</h2>
<p>Are the most important feature. They will probably take me the longest – I would obviously need a good coverage of them. The obvious thing to do would also allow third parties to author widgets.</p>
<p>Well that about sums it up. Oh yes, it will have all that Office 2007 look goodness.</p>
]]></content:encoded>
			<wfw:commentRss>http://jonathan.dickinsons.co.za/blog/2009/07/websites-for-idiots/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VMWare Headaches</title>
		<link>http://jonathan.dickinsons.co.za/blog/2009/07/vmware-headaches/</link>
		<comments>http://jonathan.dickinsons.co.za/blog/2009/07/vmware-headaches/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 09:09:48 +0000</pubDate>
		<dc:creator>Jonathan Dickinson</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://jonathan.dickinsons.co.za/blog/2009/07/vmware-headaches/</guid>
		<description><![CDATA[Snapshots in VMWare mess up - get your rifle out if you want to bag some flying pigs.]]></description>
			<content:encoded><![CDATA[<p>One of the teams here uses build scripts with hardcoded paths; and while I was on that team I needed to fit in (when you are in Rome be a Roman). In a nutshell I needed a second (D) hard-disk.</p>
<p>That’s long gone now; so today I did some file pruning and deleted the VMDKs I used for that drive; VMWare refused to boot my machine because there was a snapshot with that file somewhere in the hierarchy.</p>
<p>As it turns out the snapshot was a sibling of my current one – which seems odd; logic dictates that the VMDK should only be needed for the descendants of that snapshot. In any case I had to kill nearly every snapshot to be able to boot the VM (Murphy made sure that it was the last snapshot I deleted); on top of that I needed to remove the drive and RAM file locks.</p>
<p>This is the first time I have had a gripe with VMWare. It wasn’t really a train smash but inconvenient at best. My snapshot nesting was getting ridiculous, so I shouldn’t really complain.</p>
]]></content:encoded>
			<wfw:commentRss>http://jonathan.dickinsons.co.za/blog/2009/07/vmware-headaches/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
