<?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>Ryan's Obligatory Blog &#187; Development</title>
	<atom:link href="http://blog.ryanwheeler.co.uk/category/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ryanwheeler.co.uk</link>
	<description>Random thoughts, SharePoint and the software business...</description>
	<lastBuildDate>Sun, 03 Oct 2010 13:09:28 +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>VMWare Server woes &#8211; Host Agent Service Terminated</title>
		<link>http://blog.ryanwheeler.co.uk/2010/10/vmware-server-host-agent-service-terminated/</link>
		<comments>http://blog.ryanwheeler.co.uk/2010/10/vmware-server-host-agent-service-terminated/#comments</comments>
		<pubDate>Sun, 03 Oct 2010 13:09:28 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Rant]]></category>

		<guid isPermaLink="false">http://blog.ryanwheeler.co.uk/?p=97</guid>
		<description><![CDATA[Error starting VMWare Server 2.0 - "The VMWare Host Agent service Terminated with service-specifc error"]]></description>
			<content:encoded><![CDATA[<p>So its a Sunday. I worked Saturday. I&#8217;ve got something to finish for Monday. Really not in the mood for any hassles. Which is the perfect time for one of those totally inexplicable and massively irritating PC errors to crop up and spoil any chance of progress. Damn these computer things annoy me &#8211; I mean you would never put up with this sort of behaviour from your TV or fridge, they would be in a skip by now.</p>
<p>Sigh VMWare Server 2.0 won&#8217;t start &#8211; look in event logs and find</p>
<pre><strong>The VMWare Host Agent service Terminated with service-specifc error %%-1</strong></pre>
<p>Helpful. Check the VMWare log files &#8211; where the hell are they hidden now? On Windows 7 (and presumably 2008 R2)  its the hidden directory</p>
<pre>c:\ProgramData\VMWare\VMWare Server</pre>
<p>In the latest hostd-*.log file I see a <span style="color: #ff0000;"><span style="font-size: large;"><em><strong>PANIC!</strong></em></span></span></p>
<p>Yup, no kidding.</p>
<pre>[2010-10-03 11:39:05.562 'App' 5692 <strong>panic</strong>] error: <strong>not well-formed (invalid token)</strong></pre>
<pre>[2010-10-03 11:39:05.562 'App' 5692 <strong>panic</strong>] backtrace:(backtraces not supported)</pre>
<pre>[2010-10-03 11:39:05.562 'App' 5692 info] Win32 service stopped</pre>
<div></div>
<div>Speaking to it calmly and slowly didn&#8217;t help but Google did turn up this post about about <a href="http://www.mcgeown.co.uk/2009/02/18/vmware-server-the-vmware-host-agent-service-terminated-with-service-specific-error-4294967295-0xffffffff/" target="_blank">errors starting up from mangled xml configuration files with VMWare.</a> So opening up each xml config file in turn from</div>
<pre>c:\ProgramData\VMWare\VMWare Server\hostd</pre>
<p>and it turned out that datastores.xml was empty &#8211; wtf?</p>
<p>I deleted it and restarted <strong>VMWare Host Agent</strong> service and it started up ok &#8211; WTF!?</p>
<p>Datastores &#8211; so that will be where VMWare stores the VM&#8217;s so have to reset that again and I discover that Windows 7 (presumably during one of the almost daily forced updates)  has decided to remap my V: drive (Virtual Machines, geddit?) to D:</p>
<p><strong> WTF!?!?! </strong></p>
<p>So between Windows remapping drives and VMWare feaking out if it can&#8217;t find the folder location for saved VM&#8217;s (what about a &#8220;can&#8217;t find file&#8221; dialog VMWare?) that&#8217;s 2 hrs of my Sunday gone.</p>
 <img src="http://blog.ryanwheeler.co.uk/wp-content/plugins/feed-statistics.php?view=1&post_id=97" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.ryanwheeler.co.uk/2010/10/vmware-server-host-agent-service-terminated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setting up a new PC</title>
		<link>http://blog.ryanwheeler.co.uk/2010/05/setting-up-a-new-pc/</link>
		<comments>http://blog.ryanwheeler.co.uk/2010/05/setting-up-a-new-pc/#comments</comments>
		<pubDate>Sat, 29 May 2010 20:33:11 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blog.ryanwheeler.co.uk/?p=71</guid>
		<description><![CDATA[Its that time again &#8211; upgrading OS. This time to Windows 7. I figure its been long enough now for the serious kinks to be worked out and I&#8217;ve been putting it off long enough. Its not the installation itself that is hard &#8211; mostly its a simple as bunging in a DVD, selecting a [...]]]></description>
			<content:encoded><![CDATA[<p>Its that time again &#8211; upgrading OS. This time to Windows 7.</p>
<p>I figure its been long enough now for the serious kinks to be worked out and I&#8217;ve been putting it off long enough. Its not the installation itself that is hard &#8211; mostly its a simple as bunging in a DVD, selecting a few options and waiting 30 mins &#8211; but installing all the pograms I use and tweaking everyting so its just so will take about a day. I know that you can do an &#8216;upgrade&#8217; install but long experience has taught me that anything but a &#8216;clean install&#8217; is a recipie for anger, suffering and hate&#8230;</p>
<p>Anyway &#8211; a list of programs I use, as much as a note for myself for when Window 8 comes around.</p>
<p>A quick tip fist though &#8211; when doing this sort of ting you will invaribably forget to copy off some data that you need or there will be a program that you can&#8217;t get working right or maybe something that you use once per year that you really can&#8217;t be bothered installing again. I use the <a href="http://downloads.vmware.com/d/info/datacenter_downloads/vmware_vcenter_converter_standalone/4_0">free VMWare Converter</a> to convert the physical macine to a virtual machine and store the VHD on a USB drive &#8211; if I ever need to get/run someting from this old machine I just boot it up using the <a href="http://www.vmware.com/products/server/">free VMWare Server</a> &#8211; a nice saftey net.</p>
<h2>General Programs</h2>
<p>Most of these are opensource, free or donationware but do be careul and check the options so you don&#8217;t inadvertantly install crapware like Yahoo toolbar, registry cleaners or that oh so helpful desktop shortcut to eBay (however would you find it otherwise?)</p>
<p><a href="http://www.google.com/chrome">Google Chrome browser</a> &#8211; most day to day browsing, so much faster than IE/Firefox and working with downloaded files that doesn&#8217;t suck (yes Firefox, looking at you!)</p>
<p><a href="https://www.dropbox.com/">Dropbox</a> &#8211; The easiest way to sync files between computers and people, just works.</p>
<p><a href="https://secure.logmein.com/">LogMeIn </a>- Free and easy remote access, just works but they have recently started push the paid upgrades a little harder.</p>
<p><a href="http://www.foxitsoftware.com/pdf/reader/">FoxIt Free PDF reader</a> - because Adobe Acrobat reader is so bad it both sucks and blows.</p>
<p><a href="http://www.getpaint.net/">Paint.NET</a> &#8211; free basic image editing tool.</p>
<p><a href="http://www.techsmith.com/screen-capture.asp">Snagit</a> &#8211; easy screen capture &#8211; yes you can use CTRL+PRINT SCREEN and Paint.NET but this just makes it a little easier.</p>
<p><a href="http://www.videolan.org/vlc/">VLC Media Player</a> &#8211; fast lightweight media player that works with just about everything. No computer I own will ever be subjected to running Quicktime or god forbid Realplayer.</p>
<p><a href="http://www.piriform.com/defraggler">Defraggler</a> &#8211; seems to do a much better job of defragmening that Windows built in tool especally if you work with large and/or hevily framented files (VHD&#8217;s for example)</p>
<p><a href="http://www.izarc.org/">IZArc</a> &#8211; great freeware zipping tool</p>
<p><a href="http://www.realtimesoft.com/ultramon/overview/">UltraMon </a>- If you have a desk that looks like mission control.</p>
<p><a href="http://www.slysoft.com/en/virtual-clonedrive.html">Virtual Clone Drive</a> &#8211; make a virtual drive from an .ISO image so you dont have to muck around burning stuff to DVD just to install it (if you even have a DVD drive in your laptop any more). This really really should be built into Windows.</p>
<p><a href="http://windirstat.info/">WinDirStat</a> &#8211; figure out what the hell is using up that enourmous 500GB hard drive you thought would last forever.</p>
<p><a href="http://sourceforge.net/projects/passwordsafe/">PasswordSafe</a> &#8211; you don&#8217;t use the same password for everything, do you?</p>
<p>And of course your office tools of choice &#8211; for me its Microsoft Office.</p>
<p>Any killer tools i&#8217;ve missed? Next up its developer focused tools.</p>
 <img src="http://blog.ryanwheeler.co.uk/wp-content/plugins/feed-statistics.php?view=1&post_id=71" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.ryanwheeler.co.uk/2010/05/setting-up-a-new-pc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ILMerge /targetplatform:v1.1 and Vista x64</title>
		<link>http://blog.ryanwheeler.co.uk/2009/01/ilmerge-targetplatformv11-and-vista-x64/</link>
		<comments>http://blog.ryanwheeler.co.uk/2009/01/ilmerge-targetplatformv11-and-vista-x64/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 20:11:47 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[ILMerge]]></category>

		<guid isPermaLink="false">http://blog.ryanwheeler.co.uk/?p=34</guid>
		<description><![CDATA[ILMerge is an invaluable tool from Michael Barnett at Microsoft Research that can merge multiple assemblies together into a single assembly. ILMerge can output .NET 2.0 or .NET 1.1 assemblies by using the /targetplatform:v1.1 switch. At the time of writing v2.8.0626 (26th June 08) has a little problem when targeting .NET 1.1 and running on [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.microsoft.com/downloads/details.aspx?familyid=22914587-b4ad-4eae-87cf-b14ae6a939b0&amp;displaylang=en" target="_blank">ILMerge</a> is an invaluable tool from <a href="http://research.microsoft.com/en-us/people/mbarnett/">Michael Barnett</a> at Microsoft Research that can merge multiple assemblies together into a single assembly.</p>
<p>ILMerge can output .NET 2.0 or .NET 1.1 assemblies by using the /targetplatform:v1.1 switch.</p>
<p>At the time of writing v2.8.0626 (26th June 08) has a little problem when targeting .NET 1.1 and running on 64bit Vista.</p>
<p>In the log files you see this when running on x86</p>
<pre>Set platform to 'v1.1', using directory</pre>
<pre>'C:\Windows\Microsoft.NET\Framework\v2.0.50727\..\v1.1.4322' for mscorlib.dll</pre>
<p>But on x64</p>
<pre>Set platform to 'v1.1', using directory</pre>
<pre>'C:\Windows\Microsoft.NET\Framework64\v2.0.50727\..\v1.1.4322'</pre>
<pre>for mscorlib.dll</pre>
<p>But there is no such dir &#8211; .NET 1.1 is only 32bit (though obviously it runs on x64 systems) and the correct dir is</p>
<p>C:\Windows\Microsoft.NET\Framework\v1.1.4322</p>
<p>As a result you will see the following in the log file.</p>
<pre>AssemblyResolver: Assembly 'System.Web' is referencing assembly 'System'.</pre>
<pre>AssemblyResolver: Attempting referencing assembly's directory.</pre>
<pre>AssemblyResolver: Did not find assembly in referencing assembly's directory.</pre>
<pre>AssemblyResolver: Attempting input directory.</pre>
<pre>AssemblyResolver: Did not find assembly in input directory.</pre>
<pre>AssemblyResolver: Attempting user-supplied directories.</pre>
<pre>AssemblyResolver: Did not find assembly in user-supplied directories.</pre>
<pre>....</pre>
<pre>Could not resolve type reference: [mscorlib]System.Enum.</pre>
<pre>Could not resolve type reference: [mscorlib]System.ValueType.</pre>
<pre>Could not resolve type reference: [mscorlib]System.Object.</pre>
<pre>Could not resolve type reference: [mscorlib]System.IDisposable.</pre>
<pre>....</pre>
<pre>(Missed out a few hundred lines referencing all other mscorlib etc namespaces)</pre>
<pre>ILMerge: Done.</pre>
<p>And although it reports done and does not return an error code you will get assembly loading errors.<br />
Workaround</p>
<p>Add a <a href="http://en.wikipedia.org/wiki/NTFS_symbolic_link" target="_blank">symlink</a> (a sort of low level shortcut) directing ILMerge to the correct directory.</p>
<pre>MKLINK /D C:\Windows\Microsoft.NET\Framework64\v1.1.4322</pre>
<pre>C:\Windows\Microsoft.NET\Framework\v1.1.4322</pre>
 <img src="http://blog.ryanwheeler.co.uk/wp-content/plugins/feed-statistics.php?view=1&post_id=34" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.ryanwheeler.co.uk/2009/01/ilmerge-targetplatformv11-and-vista-x64/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Setting up SharePoint with a SQL Server 2008 Instance</title>
		<link>http://blog.ryanwheeler.co.uk/2008/11/setting-up-sharepoint-with-sql-server-2008-instance/</link>
		<comments>http://blog.ryanwheeler.co.uk/2008/11/setting-up-sharepoint-with-sql-server-2008-instance/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 11:08:35 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://blog.ryanwheeler.co.uk/?p=18</guid>
		<description><![CDATA[This seems to come up time and time again and can leave people hairless. I haven&#8217;t found a good, simple walkthrough &#8211; so I thought I would put together a quick post. Disclaimer : This post is written from the perspective of a developer setting up a dev/test system. For production purposes you need to [...]]]></description>
			<content:encoded><![CDATA[<p>This seems to come up time and time again and can leave people hairless. I haven&#8217;t found a good, simple walkthrough &#8211; so I thought I would put together a quick post.</p>
<p><span style="color: #ff6600;"><em>Disclaimer : This post is written from the perspective of a developer setting up a dev/test system. For production purposes you need to thoroughly understand the security implications of all the setting listed below. But you knew that already.</em></span></p>
<p>Back in the good ol days you never had any trouble getting apps connecting to SQL Sever. Username<a title="Voyager Alpha Force worm" href="http://support.microsoft.com/kb/313418" target="_blank"> &#8220;sa&#8221; and a blank password</a> and you were good to go <img src='http://blog.ryanwheeler.co.uk/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Things are a bit more difficult now&#8230;</p>
<p>This particular example walks through installing <a title="Download Windows SharePoint Services" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=D51730B5-48FC-4CA2-B454-8DC2CAF93951&amp;displaylang=en" target="_blank">Windows SharePoint Services</a> on one server (a virtual server, but it makes no difference) connecting to a <a title="SQL Server 2008 Express" href="http://www.microsoft.com/SQL/default.mspx" target="_blank">SQL Server 2008 Express</a> database <strong>Instance </strong>on another server.</p>
<p>Both servers are using the same domain. This <a title="SharePoint and database on different domains" href="http://support.microsoft.com/kb/932376" target="_blank">kb 932376</a> should help if you are running SharePoint and a Database on servers in different domains or no domain at all.</p>
<p>Firstly, install SQL Server on its own instance (lets assume the machine is called <strong>SQL2008EXP </strong>and the instance is called <strong>SharePoint</strong>). There&#8217;s a whole big process here that involves what is possibly the worlds most complex installer that inexplicably leaves you manually hunting for all the pre-requisites (Windows Installer 4.5, NET 3.5 SP1, Powershell &#8211; but that&#8217;s all out of the scope of this post). Seriously Microsofties, you have outdone yourselves with this installer!</p>
<p>Grumbling aside &#8211; setup a Domain Account <strong>(A)</strong> that the SharePoint services will use. As usual for service account make it &#8216;password never expires&#8217; and uncheck &#8216;user must change password on first login&#8217;.</p>
<p>Start <strong>Microsoft SQL Server Management Studio</strong> and go to <strong>Security </strong>&gt; <strong>Logins</strong>, right click and select <strong>New Login</strong>. Enter your DOMAIN\UserName <strong>(A)</strong> that you created above. Select <strong>Server Roles</strong> and check <strong>dbcreator </strong>and <strong>securityadmin</strong>.</p>
<p style="text-align: center;"><a href="http://blog.ryanwheeler.co.uk/wp-content/uploads/2008/11/sql-permissions.gif" target="_blank"><img class="size-medium wp-image-19 aligncenter" title="sql-permissions" src="http://blog.ryanwheeler.co.uk/wp-content/uploads/2008/11/sql-permissions-300x172.gif" alt="" width="300" height="172" /></a><br />
Install <a title="Download Windows SharePoint Services" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=D51730B5-48FC-4CA2-B454-8DC2CAF93951&amp;displaylang=en" target="_blank">WSSv3 (SP1 or above)</a> &#8211; select <strong>Advanced </strong>and then <strong>&#8220;Web Front End&#8221;</strong> as we want to use SQL Server not MSDE.</p>
<p style="text-align: center;"><a href="http://blog.ryanwheeler.co.uk/wp-content/uploads/2008/11/install-advanced.gif" target="_blank"><img class="alignnone size-medium wp-image-20" title="install-advanced" src="http://blog.ryanwheeler.co.uk/wp-content/uploads/2008/11/install-advanced-300x167.gif" alt="SharePoint - select Advanced Install" width="300" height="167" /></a> <a href="http://blog.ryanwheeler.co.uk/wp-content/uploads/2008/11/install-webfrontend.gif" target="_blank"><img class="alignnone size-medium wp-image-21" title="install-webfrontend" src="http://blog.ryanwheeler.co.uk/wp-content/uploads/2008/11/install-webfrontend-300x108.gif" alt="SharePoint - select Web Farm Front End" width="300" height="108" /></a></p>
<p>The <strong>SharePoint Products and Technologies Configuration Wizard</strong> should start automatically</p>
<p>Select <strong>&#8220;No, I want to create a new server farm&#8221;</strong></p>
<p style="text-align: center;"><a href="http://blog.ryanwheeler.co.uk/wp-content/uploads/2008/11/config-new-farm.gif" target="_blank"><img class="aligncenter size-medium wp-image-23" title="config-new-farm" src="http://blog.ryanwheeler.co.uk/wp-content/uploads/2008/11/config-new-farm-300x99.gif" alt="Create a new server farm" width="300" height="99" /></a></p>
<p>Fill in the account details that you setup earlier (A)</p>
<p style="text-align: center;"><a href="http://blog.ryanwheeler.co.uk/wp-content/uploads/2008/11/install-database-settings.gif" target="_blank"><img class="aligncenter size-medium wp-image-24" title="install-database-settings" src="http://blog.ryanwheeler.co.uk/wp-content/uploads/2008/11/install-database-settings-300x255.gif" alt="Configuration Database Settings" width="300" height="255" /></a></p>
<p>Get the follwoing error</p>
<p><a href="http://blog.ryanwheeler.co.uk/wp-content/uploads/2008/11/install-error.gif"><img class="aligncenter size-medium wp-image-25" title="install-error" src="http://blog.ryanwheeler.co.uk/wp-content/uploads/2008/11/install-error-300x76.gif" alt="" width="300" height="76" /></a></p>
<address style="text-align: center;">Failed to connect to the database server or the database name does not exist. </address>
<address style="text-align: center;">Ensure the database server exists, is a Sql server, and that you have the appropriate permissions to access the database server.</address>
<p>Now its time to waste 2 hours of your life pinging servers, checking names, passwords, permissions and event logs. Or feel free to skip this step and carry on below :-</p>
<h2>SQL 2008 installs in a state that will stop you connecting from a remote server.</h2>
<p>This is not done out of badness, but for security.</p>
<p>Start <strong>SQL Server Configuration Manager</strong></p>
<p>Expand the <strong>SQL Server Network Configuration</strong> node and find the <strong>Protocols </strong>for your Instance</p>
<p>Right click on <strong>TCP/IP</strong> and click <strong>Enabled </strong>- do the same with <strong>Named Pipes</strong></p>
<p style="text-align: center;"><a href="http://blog.ryanwheeler.co.uk/wp-content/uploads/2008/11/config-manager.gif" target="_blank"><img class="size-medium wp-image-26 aligncenter" title="config-manager" src="http://blog.ryanwheeler.co.uk/wp-content/uploads/2008/11/config-manager-300x115.gif" alt="Enable TCP/IP and Named Pipes" width="300" height="115" /></a></p>
<p>Right click on <strong>TCP/IP </strong>and click <strong>Properties</strong>. Select the <strong>IP Address</strong> tab and make a note <strong>(B)</strong> of the <strong>TCP Dynamic Port</strong></p>
<p><a href="http://blog.ryanwheeler.co.uk/wp-content/uploads/2008/11/tcpip-properties.gif"><img class="aligncenter size-medium wp-image-27" title="tcpip-properties" src="http://blog.ryanwheeler.co.uk/wp-content/uploads/2008/11/tcpip-properties-272x300.gif" alt="" width="272" height="300" /></a></p>
<p>Restart the SQL server service</p>
<p>When you connect to a SQL Server <em>instance</em> via TCP/IP the connection attempt will query the SQL Server Browser service (on port 1434) and find out which port a specific instance is set to listen on. However by default the <strong>SQL Server Browser service</strong> is disabled. You can now either start it or use the Port number <strong>(B)</strong> you found earlier to connect directly.</p>
<p>Confusingly the syntax is different to what you may expect &#8211; no semi-colons here, <strong>use a comma</strong></p>
<pre>ServerName\InstanceName<span style="color: #ff0000;">,</span>PORT</pre>
<p><em>(If you are using a default instance then the connection will happen on port 1433 by default and you won&#8217;t have to enter the port number or worry about the SQL Browser service)</em></p>
<p>If you have a firewall running you will also have to open up this port number for incoming TCP connections. See <a title="Configuring Windows Firewall" href="http://technet.microsoft.com/en-us/library/cc737845.aspx" target="_blank">Windows Firewall</a> or the <a title="Firewall guide for SQL Server 2005" href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;914277" target="_blank">Firewall guide for SQL Server 2005</a></p>
<p>Further reading <a href="http://blogs.msdn.com/sql_protocols/archive/2006/09/30/SQL-Server-2005-Remote-Connectivity-Issue-TroubleShooting.aspx" target="_blank">SQL Server 2005 Remove Connectivity Issue Troubleshooting</a> (most steps applicable to 2008)</p>
 <img src="http://blog.ryanwheeler.co.uk/wp-content/plugins/feed-statistics.php?view=1&post_id=18" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.ryanwheeler.co.uk/2008/11/setting-up-sharepoint-with-sql-server-2008-instance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Essential Tools &#8211; SmartInspect Logging</title>
		<link>http://blog.ryanwheeler.co.uk/2008/11/essential-tools-smartinspect-logging/</link>
		<comments>http://blog.ryanwheeler.co.uk/2008/11/essential-tools-smartinspect-logging/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 22:14:04 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Logging]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://blog.ryanwheeler.co.uk/?p=15</guid>
		<description><![CDATA[For many applications (especially server based applications) its essential to provide some sort of logging for support and troubleshooting. While logging to Windows Event logs is a good idea if you need to get an administrators attention its not really suitable for detailed logging, and if you have a problem you need to have already [...]]]></description>
			<content:encoded><![CDATA[<p>For many applications (especially server based applications) its essential to provide some sort of logging for support and troubleshooting.</p>
<p>While logging to Windows Event logs is a good idea if you need to get an administrators attention its not really suitable for detailed logging, and if you have a problem you need to have already been collecting details &#8230; lots of them.</p>
<p>There has to be as many different logging schemes as there are programmers. A quick search gives you <a href="http://msdn.microsoft.com/en-us/library/cc309506.aspx" target="_blank">Microsoft&#8217;s Logging Application Block</a>, <a href="http://logging.apache.org/log4net/" target="_blank">Apache Log4Net</a>, <a href="http://www.nlog-project.org/" target="_blank">NLog</a> and <a href="http://code.google.com/appengine/articles/logging.html" target="_blank">Google App Engine Logging</a> &#8211; and that&#8217;s just for starters. You may even think it would be trivial to roll your own? (You would be wrong of course, developers always underestimate things like this).</p>
<p>But all of these options are lacking in one vital part &#8211; <strong>what do you do with your logs when you have them?</strong> Most require you to fire up your text editor and start jumping around a 10MB text file! Give me a break, my sanity is hanging by a thread as it is <img src='http://blog.ryanwheeler.co.uk/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>I use <a href="http://www.gurock.com/" target="_blank">Gurock Software&#8217;s SmartInspect</a> in some of my software (<a href="http://www.pentalogic.net/sharepoint-reminder.aspx" target="_blank">Email reminders and alerts for SharePoint)</a>.</p>
<p>The logging library is very good &#8211; fast, feature rich, lots of transport options, easy to use and extremely well documented. <strong> But where it stands head and shoulders above everything else is the log viewer.</strong><a href="http://www.gurock.com/products/smartinspect/"><img class="alignright size-full wp-image-16" title="SmartInspect Console" src="http://blog.ryanwheeler.co.uk/wp-content/uploads/2008/11/smartinspectconsolescreenshot-small.gif" alt="" width="200" height="152" /></a></p>
<p>It&#8217;s blindingly fast, easy to use, clear and has all manner of time saving features &#8211; easy navigation, graphs, filters, colours and much more. Yes the software is a few hundred dollars but<strong> will more than pay for itself in time savings the very first time you use it in anger.</strong></p>
<p><a href="http://www.gurock.com/products/smartinspect/tour/1/" target="_blank">Take a look</a> &#8211; no connection other than a satisfied customer.</p>
<p><em>P.S. If you are in the software business and want to know how your product can compete with <a href="http://en.wikipedia.org/wiki/Free_and_open_source_software" target="_blank">FOSS</a> alternatives then I think Gurock make an excellent case study.<br />
</em></p>
 <img src="http://blog.ryanwheeler.co.uk/wp-content/plugins/feed-statistics.php?view=1&post_id=15" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.ryanwheeler.co.uk/2008/11/essential-tools-smartinspect-logging/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

