<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://wardyit.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Michael O'Dea-Jones' Blog</title><subtitle type="html">

</subtitle><id>http://wardyit.com/blog/michaelodeajones/atom.aspx</id><link rel="alternate" type="text/html" href="http://wardyit.com/blog/michaelodeajones/default.aspx" /><link rel="self" type="application/atom+xml" href="http://wardyit.com/blog/michaelodeajones/atom.aspx" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2008-09-08T23:05:00Z</updated><entry><title>A relationship is being added or deleted from an AssociationSet ‘x’ EF issue</title><link rel="alternate" type="text/html" href="http://wardyit.com/blog/michaelodeajones/archive/2009/11/08/a-relationship-is-being-added-or-deleted-from-an-associationset-x-ef-issue.aspx" /><id>http://wardyit.com/blog/michaelodeajones/archive/2009/11/08/a-relationship-is-being-added-or-deleted-from-an-associationset-x-ef-issue.aspx</id><published>2009-11-07T23:34:00Z</published><updated>2009-11-07T23:34:00Z</updated><content type="html">&lt;P&gt;I'm still cutting my teeth on the Entity Framework (EF) and have just worked out why I have been receiving this kind of exception: &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY:Courier New;FONT-SIZE:10pt;"&gt;A relationship is being added or deleted from an AssociationSet 'FK_Shift_ShiftStatus'. With cardinality constraints, a corresponding 'Safety_Shift' must also be added or deleted. &lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Here is the code: &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY:Courier New;FONT-SIZE:10pt;"&gt;shift.Status = context.ShiftStatuses.First(x =&amp;gt; x.Id == &lt;SPAN style="COLOR:#2b91af;"&gt;Status&lt;/SPAN&gt;.ShiftStartedId);&lt;/SPAN&gt; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;EF Model: &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Shift * &amp;lt;=&amp;gt; 1 ShiftStatus &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Database: &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Shift.ShiftStatusId has a Foreign Key Relationship with ShiftStatus.Id &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;After searching the Internet, I was none the wiser. I thought that maybe there was something theoretical that I was missing. In fact the only mistake I had made was that I didn't load the Shift Status reference before assigning it: &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY:Courier New;FONT-SIZE:10pt;"&gt;shift.StatusReference.Load(); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY:Courier New;FONT-SIZE:10pt;"&gt;shift.Status = context.ShiftStatuses.First(x =&amp;gt; x.Id == &lt;SPAN style="COLOR:#2b91af;"&gt;Status&lt;/SPAN&gt;.ShiftStartedId);&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY:Courier New;FONT-SIZE:10pt;"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://wardyit.com/aggbug.aspx?PostID=12174" width="1" height="1"&gt;</content><author><name>michael@wardyit.com</name><uri>http://wardyit.com/members/michael%40wardyit.com.aspx</uri></author></entry><entry><title>SyncToy 2.0</title><link rel="alternate" type="text/html" href="http://wardyit.com/blog/michaelodeajones/archive/2009/01/07/synctoy-2-0.aspx" /><id>http://wardyit.com/blog/michaelodeajones/archive/2009/01/07/synctoy-2-0.aspx</id><published>2009-01-07T03:33:46Z</published><updated>2009-01-07T03:33:46Z</updated><content type="html">&lt;p&gt;Over the Christmas period I managed to nail one of my TODO's: "&lt;em&gt;organise outlook, documents, music and pictures on the two home computers&lt;/em&gt;". This TODO has been around for years and I finally nailed it. Like so many TODO's in my life, many get put off and I never seem to get around to doing them because I have to set aside time to think, investigate, try a few options, decide and then actually do it. 
&lt;/p&gt;&lt;p&gt;My biggest fear was that I would lose those precious e-mails, documents, music or photos. My second greatest fear was that I was going to spend eternity comparing files and folders to work out which was the most recent. My third fear was that I would be doomed to repeat this process every year or couple of years and I wanted a permanent solution. I also had a couple more fears but I think I'll stop there &lt;span style="font-family:Wingdings;"&gt;J&lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;The first solution I thought of was to write my own file and folder sync tool but I quickly got over that urge. So, rather than think about it and come up with a plan I just started doing stuff. After manually syncing for a few hours I started to get lazy. The temptations to "throw in the towel" or to "move files and hope for the best" were growing. So I stopped myself and Googled. That's when I discovered &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=C26EFA36-98E0-4EE9-A7C5-98D0592D8C52&amp;amp;displaylang=en"&gt;Microsoft SyncToy&lt;/a&gt;. 
&lt;/p&gt;&lt;p&gt;Originally the Laptop was the definitive source and then I copied all the content onto the Desktop. Now, some years later both systems are out of sync. I have my work and Mobile Phone photos on the Desktop and the Digital Camera photos and Katie's (my wife) documents on the Laptop. SyncToy allowed me to set up folder pairs and sync my documents, music and pictures on the two home computers. SyncToy never deletes anything; it just moves them to the Recycle Bin. SyncToy also lets you to preview it's proposed changes before making them. That way you can see exactly what's going to happen. That was fear No.1 sorted.
&lt;/p&gt;&lt;p&gt;The beauty of SyncToy is that you just click a button and it takes care of the rest. It can even be scheduled by using the command line version of SyncToy! That was fear No.2 sorted. Using SyncToy has provided me with a way to keep the two shared folders in sync so I never have to manually sync files again! That's fear No.3 sorted.  
&lt;/p&gt;&lt;p&gt;I'm a programmer and a lot of this work was system admin work. At times I wished I did more system admin units at Uni. Come to think of it I didn't do any! I think that half the battle was working out how the family's digital information was going to be shared, stored and backed up. I've decided that all I need now is a Networked Storage Device (NAS) that plugs into my router. Then I could store all the documents, music, photos and videos in one place to save disk space and use SyncToy to contribute documents, music and photos from our profiles no matter what computer we are using. I'll just put that on my TODO list!
&lt;/p&gt;&lt;p&gt;Suggestion: Have a look at the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=50FA5932-0685-4FE3-9605-536F39BD6C86&amp;amp;displaylang=en"&gt;SyncToy white paper&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;Humm, all I have to do is put that on the TODO list!&lt;/p&gt;&lt;img src="http://wardyit.com/aggbug.aspx?PostID=10829" width="1" height="1"&gt;</content><author><name>michael@wardyit.com</name><uri>http://wardyit.com/members/michael%40wardyit.com.aspx</uri></author></entry><entry><title>Happy Dreaming!</title><link rel="alternate" type="text/html" href="http://wardyit.com/blog/michaelodeajones/archive/2009/01/07/happy-dreaming.aspx" /><id>http://wardyit.com/blog/michaelodeajones/archive/2009/01/07/happy-dreaming.aspx</id><published>2009-01-07T00:36:57Z</published><updated>2009-01-07T00:36:57Z</updated><content type="html">&lt;p&gt;For those who have &lt;a href="http://en.wikipedia.org/wiki/DreamScene"&gt;DreamScene&lt;/a&gt; and have never tried it I recommend you do. I just did and it's cool! If like me you didn't know how to set it up then check out &lt;a href="http://windowshelp.microsoft.com/Windows/en-US/Help/51a8bdac-cd66-4ae3-afdf-6c6dcf804b991033.mspx"&gt;http://windowshelp.microsoft.com/Windows/en-US/Help/51a8bdac-cd66-4ae3-afdf-6c6dcf804b991033.mspx&lt;/a&gt;. Now I'm going to have to get a bigger monitor, find or make a video or two, and work out a way to organise Visual Studio so that I can see the desktop once in a while! Maybe I just need a second monitor!&lt;/p&gt;&lt;img src="http://wardyit.com/aggbug.aspx?PostID=10826" width="1" height="1"&gt;</content><author><name>michael@wardyit.com</name><uri>http://wardyit.com/members/michael%40wardyit.com.aspx</uri></author></entry><entry><title>Hermes: A Midrange Alternative</title><link rel="alternate" type="text/html" href="http://wardyit.com/blog/michaelodeajones/archive/2009/01/06/hermes-a-midrange-alternative.aspx" /><id>http://wardyit.com/blog/michaelodeajones/archive/2009/01/06/hermes-a-midrange-alternative.aspx</id><published>2009-01-06T06:29:00Z</published><updated>2009-01-06T06:29:00Z</updated><content type="html">&lt;P&gt;One thing that I've learned as a programmer is that nothing is easy. Or to put it another way, there is a lot of hidden work in software development. To explain consider this scenario: a client needs an FTP site checked regularly and content downloaded, validated, transformed and delivered to an internal system. When you break each step down, none of them are "intellectually" difficult to understand. However when you go to design, code, test and push the system into production you can be held up by many hidden gotchas. &lt;/P&gt;
&lt;P&gt;When I was learning how to program at University I totally embraced testing, documentation, reuse, patterns and practices. My Holy Grail was Rapid Application Development (RAD). My entire programming career I have attempted to write bug free, well documented, reusable code according to best practice. I have tried to keep up with the new technologies, programming paradigms, manage teams, clients and projects. I now realise that my search for the Holy Grail has taken a heavy toll on me, my employers, their projects and their bank balance. I'm left feeling somewhat dissatisfied because it generally takes me longer than I expected to get "intellectually" simple programs into production. &lt;/P&gt;
&lt;P&gt;My dissatisfaction, my search for the Holy Grail and a project at Wardy IT has given birth to Hermes (Greek God of Messaging): a pluggable program that hosts .Net classes called Plugins. I've been developing Hermes on and off for the past five months and am amazed at how simple, elegant and powerful it is. Hermes comes with its own suite of Plugins and the beauty of it is that you can write your own Plugins and load them into Hermes – WOW! So what's so amazing? &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Hermes provides a framework for me to work within, removing certain design decisions from me and allowing me to focus on core functionality. &lt;/LI&gt;
&lt;LI&gt;Hermes provides consistent logging and scheduling Interfaces. &lt;/LI&gt;
&lt;LI&gt;Hermes is pluggable. Plugins can be started, stopped and hot swapped or replaced through the Hermes Manager client. &lt;/LI&gt;
&lt;LI&gt;Hermes allows me to expose my programs (as WCF Services) to the enterprise and beyond. &lt;/LI&gt;
&lt;LI&gt;Hermes provides a centralised midrange platform, simplifying maintenance and supporting SOA architecture. &lt;/LI&gt;
&lt;LI&gt;Hermes has built in reports that you can use to analyse, track performance and troubleshoot. &lt;/LI&gt;
&lt;LI&gt;Hermes provides a test harness which makes it easy for programmers to test and debug their Plugins. &lt;/LI&gt;
&lt;LI&gt;Hermes can be hosted in Windows Services, Command Line, Windows and WPF Form applications. &lt;/LI&gt;
&lt;LI&gt;Hermes is built with the latest .Net Framework (3.5). &lt;/LI&gt;
&lt;LI&gt;Hermes Plugins can be written in any .Net Language. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;How many times have you reinvented the wheel? How many times have you duplicated code? How many times have you had to duplicate systems because you can't reuse them? How many times have you sat at your desk, massaging your head weighing up the design considerations? How many programs have you written that don't log? How hard does that make it to debug/troubleshoot? How many times have you thought that your systems are too hard to manage? How many times have you thought that I'm the only one who knows this stuff? How much better could you systems be if you had good performance statistics? &lt;/P&gt;
&lt;P&gt;If you are like me the score card isn't that great but you gave it your best shot. Well imagine if you could go RAD, go SOA, take control. Would you reinvent the wheel? I doubt it! Let's use the FTP scenario above to demonstrate the benefits of using Hermes. Hermes ships with an FTP Watcher which can be scheduled to download files. When the FTP Watcher Plugin detects a new file it downloads it and submits a job to the Scheduler which distributes the job to the appropriate FTP Processing Plugin. Since the file format, validation, transformation and delivery is unique to your business, you write the core logic in the FTP Processing Plugin. You test it in the Test Harness and when satisfied load it into Hermes. With the flick of a switch you activate the FTP Watcher and Processor Plugins and you now have a system running 24x7 processing all FTP deliveries. Any errors can be monitored in real time by MOM or &lt;SPAN style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:MS Shell Dlg 2;"&gt;SCOM or sent to an e-mail address or mobile. All the jobs can be viewed in Hermes Manager and rescheduled if needed. It's all too easy! Didn't I just say nothing is easy?&lt;/SPAN&gt; &lt;/P&gt;&lt;img src="http://wardyit.com/aggbug.aspx?PostID=10819" width="1" height="1"&gt;</content><author><name>michael@wardyit.com</name><uri>http://wardyit.com/members/michael%40wardyit.com.aspx</uri></author></entry><entry><title>Previous Versions of a File/Folder under Vista</title><link rel="alternate" type="text/html" href="http://wardyit.com/blog/michaelodeajones/archive/2008/12/03/previous-versions-of-a-file-folder-under-vista.aspx" /><id>http://wardyit.com/blog/michaelodeajones/archive/2008/12/03/previous-versions-of-a-file-folder-under-vista.aspx</id><published>2008-12-03T01:00:00Z</published><updated>2008-12-03T01:00:00Z</updated><content type="html">&lt;P&gt;Did you know that when enabled, select versions of Microsoft Vista store previous copies of your files and folders? This means that you can get them back if you need them. &lt;/P&gt;
&lt;P&gt;To view the previous versions of a folder open Windows Explorer, navigate to the folder, right click on the folder and select Properties. Then select the Previous Versions tab e.g. &lt;A href="http://www.wardyit.com/michaelodeajones/Blog/PreviousVersionsVista/FolderProperties.png"&gt;Link&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;To view previous versions of a File just right click on the file and select "Restore previous versions".&lt;/P&gt;
&lt;P&gt;Check this video out for an indepth treatment of Previous Versions &lt;a href="http://channel9.msdn.com/posts/Charles/Windows-Vista-quotTime-Warpquot-Understanding-Vistas-Backup-and-Restore-Technologies/"&gt;Link&lt;/a&gt;&lt;/P&gt;&lt;img src="http://wardyit.com/aggbug.aspx?PostID=10699" width="1" height="1"&gt;</content><author><name>michael@wardyit.com</name><uri>http://wardyit.com/members/michael%40wardyit.com.aspx</uri></author></entry><entry><title>What to do when Visual Studio can’t create Private Accessors in your Unit Tests</title><link rel="alternate" type="text/html" href="http://wardyit.com/blog/michaelodeajones/archive/2008/12/03/what-to-do-when-visual-studio-can-t-create-private-accessors-in-your-unit-tests.aspx" /><id>http://wardyit.com/blog/michaelodeajones/archive/2008/12/03/what-to-do-when-visual-studio-can-t-create-private-accessors-in-your-unit-tests.aspx</id><published>2008-12-03T00:47:14Z</published><updated>2008-12-03T00:47:14Z</updated><content type="html">&lt;p&gt;I came across this issue recently when trying to create unit tests with Microsoft Visual Studio 2008 SP1. Test stubs were created for the Public methods of the class but VS2008 could not create a Private Accessor for the Private methods e.g.:
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;
			&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;
			&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;
			&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;A test for TrimTimeOffDate
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;
			&lt;span style="color:gray;"&gt;///&amp;lt;/summary&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;        [TestMethod()]
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;        [DeploymentItem(&lt;span style="color:#a31515;"&gt;"WardyIT.Services.Hermes.Plugins.dll"&lt;/span&gt;)]
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;
			&lt;span style="color:blue;"&gt;public&lt;/span&gt;
			&lt;span style="color:blue;"&gt;void&lt;/span&gt; TrimTimeOffDateTest()
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;        {
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;
			&lt;span style="color:green;"&gt;// Creation of the private accessor for 'Microsoft.VisualStudio.TestTools.TypesAndSymbols.Assembly' failed
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;            Assert.Inconclusive(&lt;span style="color:#a31515;"&gt;"Creation of the private accessor for \'Microsoft.VisualStudio.TestTools.TypesAndSy"&lt;/span&gt; +
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;
			&lt;span style="color:#a31515;"&gt;"mbols.Assembly\' failed"&lt;/span&gt;);
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;        }
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;After Googling I came across a site that talked about running Visual Studio as Administrator on Microsoft Vista. To do this I right clicked on the Visual Studio 2008 menu item and selected "Run as administrator". Once I did this the Private Accessors were successfully created e.g.:
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;
			&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;
			&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;
			&lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;A test for TrimTimeOffDate
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;
			&lt;span style="color:gray;"&gt;///&amp;lt;/summary&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;        [&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;()]
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;        [&lt;span style="color:#2b91af;"&gt;DeploymentItem&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;"WardyIT.Services.Hermes.Plugins.dll"&lt;/span&gt;)]
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;
			&lt;span style="color:blue;"&gt;public&lt;/span&gt;
			&lt;span style="color:blue;"&gt;void&lt;/span&gt; TrimTimeOffDateTest()
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;        {
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;
			&lt;span style="color:#2b91af;"&gt;SchedulingEngine_Accessor&lt;/span&gt; target = &lt;span style="color:blue;"&gt;new&lt;/span&gt;
			&lt;span style="color:#2b91af;"&gt;SchedulingEngine_Accessor&lt;/span&gt;(); &lt;span style="color:green;"&gt;// TODO: Initialize to an appropriate value
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;
			&lt;span style="color:#2b91af;"&gt;DateTime&lt;/span&gt; DateToTrim = &lt;span style="color:blue;"&gt;new&lt;/span&gt;
			&lt;span style="color:#2b91af;"&gt;DateTime&lt;/span&gt;(); &lt;span style="color:green;"&gt;// TODO: Initialize to an appropriate value
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;
			&lt;span style="color:#2b91af;"&gt;DateTime&lt;/span&gt; expected = &lt;span style="color:blue;"&gt;new&lt;/span&gt;
			&lt;span style="color:#2b91af;"&gt;DateTime&lt;/span&gt;(); &lt;span style="color:green;"&gt;// TODO: Initialize to an appropriate value
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;
			&lt;span style="color:#2b91af;"&gt;DateTime&lt;/span&gt; actual;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;            actual = target.TrimTimeOffDate(DateToTrim);
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;
			&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(expected, actual);
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;
			&lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.Inconclusive(&lt;span style="color:#a31515;"&gt;"Verify the correctness of this test method."&lt;/span&gt;);
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;        }
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Other suggestions were:
&lt;/p&gt;&lt;ol style="margin-left:38pt;"&gt;&lt;li&gt;It's bad practice to test Private Methods. &lt;a href="http://www.dzone.com/links/do_not_test_private_methods.html"&gt;Link&lt;/a&gt;
		&lt;/li&gt;&lt;li&gt;It's bad practice to have too many classes because you have split out Private Methods into new classes. &lt;a href="http://www.infoq.com/news/2008/01/private-methods-tdd-design"&gt;Link&lt;/a&gt;
		&lt;/li&gt;&lt;li&gt;To use the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.unittesting.privateobject.aspx"&gt;PrivateObject&lt;/a&gt; Class if you can't use the Private Accessor. &lt;a href="http://infosysblogs.com/microsoft/2008/01/aspnet_unit_testing_issue_on_i.html"&gt;Link&lt;/a&gt;
		&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Other Links:
&lt;/p&gt;&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-au/library/ms379625.aspx"&gt;A Unit Testing Walkthrough with Visual Studio Team Test&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src="http://wardyit.com/aggbug.aspx?PostID=10698" width="1" height="1"&gt;</content><author><name>michael@wardyit.com</name><uri>http://wardyit.com/members/michael%40wardyit.com.aspx</uri></author></entry><entry><title>Want to script Data? The SQL Database Publishing Wizard is your friend!</title><link rel="alternate" type="text/html" href="http://wardyit.com/blog/michaelodeajones/archive/2008/12/02/want-to-script-data-the-sql-database-publishing-wizard-is-your-friend.aspx" /><id>http://wardyit.com/blog/michaelodeajones/archive/2008/12/02/want-to-script-data-the-sql-database-publishing-wizard-is-your-friend.aspx</id><published>2008-12-02T04:45:01Z</published><updated>2008-12-02T04:45:01Z</updated><content type="html">&lt;p&gt;Guess what I discovered today? The SQL Database Wizard for Visual Studio! This solves the age old problem of scripting your database structure so that you can create your database on a remote/hosted server. What's more the SQL Database Wizard also has the capability to script your data as well. Yes, you heard right, script your data as well! 
&lt;/p&gt;&lt;p&gt;Version 1.2 of the SQL Database Publishing Wizard was incorporated into Visual Studio 2008 RTM because it was a very popular add-in for Visual Studio 2005. It has subsequently been upgraded to 1.3 in Visual Studio 2008 Service Pack 1 and you can use it to script databases for SQL 2000, 2005 and 2008 Servers. You can script Data only, Structure only and Data and Structure. Check it out on the &lt;a href="http://blogs.msdn.com/webdevtools/archive/2007/10/15/sql-database-publishing-wizard-is-now-in-visual-studio-orcas.aspx"&gt;Visual Developer Team&lt;/a&gt; or &lt;a href="http://weblogs.asp.net/scottgu/archive/2006/12/22/recipe-deploying-a-sql-database-to-a-remote-hosting-environment-part-1.aspx"&gt;Scot Guthrie's Blogs&lt;/a&gt;. For those in Visual Studio 2005 you can download the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=56E5B1C5-BF17-42E0-A410-371A838E570A&amp;amp;displaylang=en"&gt;Microsoft SQL Server Database Publishing Wizard 1.1&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;The one question I have is "Why didn't someone tell me about this sooner?"&lt;/p&gt;&lt;img src="http://wardyit.com/aggbug.aspx?PostID=10691" width="1" height="1"&gt;</content><author><name>michael@wardyit.com</name><uri>http://wardyit.com/members/michael%40wardyit.com.aspx</uri></author></entry><entry><title>TabPage.Hide() doesn’t Hide the TabPage</title><link rel="alternate" type="text/html" href="http://wardyit.com/blog/michaelodeajones/archive/2008/12/01/tabpage-hide-doesn-t-hide-the-tabpage.aspx" /><id>http://wardyit.com/blog/michaelodeajones/archive/2008/12/01/tabpage-hide-doesn-t-hide-the-tabpage.aspx</id><published>2008-12-01T03:15:05Z</published><updated>2008-12-01T03:15:05Z</updated><content type="html">&lt;p&gt;Here's something that just got me. The TabPage.Hide() method doesn't hide the TabPage. You have to remove the TabPage from the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.tabcontrol.tabpages.aspx"&gt;TabControl&lt;span style="color:#0033cc;"&gt;.&lt;/span&gt;TabPages&lt;/a&gt;&lt;span style="color:black;"&gt; collection:&lt;span style="font-family:Verdana;font-size:8pt;"&gt;
			&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:10pt;"&gt;ProductTabControl.TabPages.Remove(PurchasingTabPage);
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.control.top.aspx"&gt;Top&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.control.height.aspx"&gt;Height&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.control.left.aspx"&gt;Left&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.control.width.aspx"&gt;Width&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.control.show.aspx"&gt;Show&lt;/a&gt; have no effect too. Read more on &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.tabpage.aspx"&gt;MSDN&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://wardyit.com/aggbug.aspx?PostID=10681" width="1" height="1"&gt;</content><author><name>michael@wardyit.com</name><uri>http://wardyit.com/members/michael%40wardyit.com.aspx</uri></author></entry><entry><title>Bankers Rounding. Don’t Bank on it. It’s the Default.</title><link rel="alternate" type="text/html" href="http://wardyit.com/blog/michaelodeajones/archive/2008/11/30/bankers-rounding-don-t-bank-on-it-it-s-the-default.aspx" /><id>http://wardyit.com/blog/michaelodeajones/archive/2008/11/30/bankers-rounding-don-t-bank-on-it-it-s-the-default.aspx</id><published>2008-11-29T23:11:03Z</published><updated>2008-11-29T23:11:03Z</updated><content type="html">&lt;p&gt;They say you learn something new every day. In IT I learn at least a dozen new things every day. Did you know that there are two different rounding methods in .Net? I didn't. Now I've come across them in two different applications in the same week. They are &lt;em&gt;To Even&lt;/em&gt; (Bankers) and &lt;em&gt;Away from Zero&lt;/em&gt;.
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;To Even&lt;/strong&gt;: When a number is halfway between two others, it is rounded toward the nearest even number.&lt;strong&gt;
		&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Away From Zero&lt;/strong&gt;: When a number is halfway between two others, it is rounded toward the nearest number that is away from zero.
&lt;/p&gt;&lt;p&gt;The default MidpointRounding method is MidpointRounding.ToEven. The following are equivalent and both return 0D: 
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-size:10pt;"&gt;&lt;span style="color:blue;"&gt;Double&lt;/span&gt; roundedValue = &lt;/span&gt;&lt;span style="font-size:8pt;"&gt;Math.Round(0.5D)&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;Double&lt;/span&gt; roundedValue = &lt;/span&gt;&lt;span style="font-size:8pt;"&gt;Math.Round(0.5D, MidpointRounding.ToEven)&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;
			&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;When MidpointRounding.AwayFromZero is specified then the result is 1D: 
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="font-size:10pt;"&gt;&lt;span style="color:blue;"&gt;Double&lt;/span&gt; roundedValue = &lt;/span&gt;&lt;span style="font-size:8pt;"&gt;Math.Round(0.5D, MidpointRounding.AwayFromZero)&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;
			&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://wardyit.com/aggbug.aspx?PostID=10678" width="1" height="1"&gt;</content><author><name>michael@wardyit.com</name><uri>http://wardyit.com/members/michael%40wardyit.com.aspx</uri></author></entry><entry><title>The Mo Stays. The Hair Goes.</title><link rel="alternate" type="text/html" href="http://wardyit.com/blog/michaelodeajones/archive/2008/11/27/the-mo-stays-the-hair-goes.aspx" /><id>http://wardyit.com/blog/michaelodeajones/archive/2008/11/27/the-mo-stays-the-hair-goes.aspx</id><published>2008-11-27T12:59:00Z</published><updated>2008-11-27T12:59:00Z</updated><content type="html">&lt;p&gt;Just in case you didn't know, I have been growing a moustache as part of &lt;a href="http://au.movember.com/"&gt;Movember&lt;/a&gt;. I would now like to introduce you to my &lt;a href="http://www.wardyit.com/michaelodeajones/Blog/Movember/MODJ_Movember2008.jpg"&gt;Mo&lt;/a&gt;. This is the first moustache I have ever grown and I am quite proud of my effort. Apart from the dribbling, it's a great companion. I have also decided to keep my hair short. Some of the things people have said about my Mo:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;With the orange shirt and no hair, you look totally prisoner, man!
&lt;/li&gt;&lt;li&gt;It suites you.
&lt;/li&gt;&lt;li&gt;You look artistic.
&lt;/li&gt;&lt;li&gt;You remind me of &lt;a href="http://en.wikipedia.org/wiki/Fu_Manchu_moustache"&gt;Fu Manchu&lt;/a&gt;. And you laugh like him too!
&lt;/li&gt;&lt;li&gt;You just scared the hell out of me!!!!!!! WOW. Like the Mo but I have to ask where is your hair?
&lt;/li&gt;&lt;li&gt;Does your hair grow at different rates on various parts of your head?
&lt;/li&gt;&lt;li&gt;I'm thinking you've just transplanted it from your scalp to your upper lip!
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;So far I have raised enough money that they sent me a shaving kit! I had fun. No one got hurt. Money was raised. Now I'm scary on the outside too!
&lt;/p&gt;&lt;p&gt;To donate to my Mo you can either:
&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Click this link:&amp;nbsp; &lt;a href="https://www.movember.com/au/donate/donate-details.php?action=sponsorlink&amp;amp;rego=1851911&amp;amp;country=au" target="_blank"&gt;https://www.movember.com/au/donate/donate-details.php?action=sponsorlink&amp;amp;rego=1851911&amp;amp;country=au&lt;/a&gt; and donate online using your credit card or PayPal account, or
&lt;/li&gt;&lt;li&gt;Write a cheque payable to 'Movember Foundation', referencing my Registration Number 1851911 and mailing it to:
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;                                            Movember Foundation &lt;br&gt;                                            PO Box 292&lt;br&gt;                                            Prahran VIC 3181
&lt;/p&gt;&lt;p&gt;Remember, all donations over $2 are tax deductible.&lt;br&gt;&lt;br&gt;The money raised by Movember is used to raise awareness of men's health issues and donated to the Prostate Cancer Foundation of Australia and &lt;i&gt;beyondblue - the national depression initiative. &lt;/i&gt;The PCFA and &lt;i&gt;beyondblue&lt;/i&gt; will use the funds to fund research and increase support networks for those men who suffer from prostate cancer and depression.
&lt;/p&gt;&lt;p&gt;Did you know:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Depression affects 1 in 6 men....most don't seek help. Untreated depression is a leading risk factor for suicide. 
&lt;/li&gt;&lt;li&gt;Last year in Australia 18,700 men were diagnosed with prostate cancer and more than 2,900 died of prostate cancer - equivalent to the number of women who will die from *** cancer annually.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;i&gt;Movember is proudly grown by Holden and Schick.&lt;/i&gt;
	&lt;/p&gt;&lt;p&gt;&lt;i&gt;Movember is proud partners with the Prostate Cancer Foundation of Australia and beyondblue - the national depression initiative.&lt;/i&gt;
	&lt;/p&gt;&lt;img src="http://wardyit.com/aggbug.aspx?PostID=10663" width="1" height="1"&gt;</content><author><name>michael@wardyit.com</name><uri>http://wardyit.com/members/michael%40wardyit.com.aspx</uri></author></entry><entry><title>Rule “Restart Computer” Failed</title><link rel="alternate" type="text/html" href="http://wardyit.com/blog/michaelodeajones/archive/2008/11/27/rule-restart-computer-failed.aspx" /><id>http://wardyit.com/blog/michaelodeajones/archive/2008/11/27/rule-restart-computer-failed.aspx</id><published>2008-11-26T23:49:13Z</published><updated>2008-11-26T23:49:13Z</updated><content type="html">&lt;p&gt;Something hinky went wrong when I installed SQL Server 2008 on my Development machine and the "Restart Computer" rule kept failing no matter how many times I rebooted. After some Googling I found &lt;a href="http://forums.microsoft.com/msdn/showpost.aspx?postid=3656807&amp;amp;siteid=1&amp;amp;sb=0&amp;amp;d=1&amp;amp;at=7&amp;amp;ft=11&amp;amp;tf=0&amp;amp;pageid=1"&gt;this&lt;/a&gt; page which suggested clearing the &lt;strong&gt;HKEY_LOCAL_MACHINE&lt;/strong&gt;\&lt;strong&gt;SYSTEM&lt;/strong&gt;\&lt;strong&gt;CurrentControlSet&lt;/strong&gt;\&lt;strong&gt;Control&lt;/strong&gt;\&lt;strong&gt;Session Manager&lt;/strong&gt;\&lt;strong&gt;PendingFileRenameOperations &lt;/strong&gt;Registry key. I cleared the key and I now the Restart Computer rule passed. Yeah!&lt;/p&gt;&lt;img src="http://wardyit.com/aggbug.aspx?PostID=10662" width="1" height="1"&gt;</content><author><name>michael@wardyit.com</name><uri>http://wardyit.com/members/michael%40wardyit.com.aspx</uri></author></entry><entry><title>How to work out how long a SQL Instance has been running</title><link rel="alternate" type="text/html" href="http://wardyit.com/blog/michaelodeajones/archive/2008/11/24/how-to-work-out-how-long-a-sql-instance-has-been-running.aspx" /><id>http://wardyit.com/blog/michaelodeajones/archive/2008/11/24/how-to-work-out-how-long-a-sql-instance-has-been-running.aspx</id><published>2008-11-24T01:42:00Z</published><updated>2008-11-24T01:42:00Z</updated><content type="html">&lt;P&gt;Recently I had to come up with a way of determining how long a SQL Instance had been running. It turns out that there are a few ways to do it and here is my preferred way: &lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;SELECT&lt;/SPAN&gt; crdate &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Courier New;"&gt;&lt;SPAN style="COLOR:blue;"&gt;FROM&lt;/SPAN&gt; sysdatabases &lt;BR&gt;&lt;SPAN style="COLOR:blue;"&gt;WHERE&lt;/SPAN&gt; [name] &lt;SPAN style="COLOR:gray;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="COLOR:red;"&gt;'tempdb'&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;This works because the tempdb database is recreated every time the SQL Service is started. As an alternative you could get the date from the first entry in the current SQL Log: &lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.wardyit.com/michaelodeajones/Blog/How%20to%20work%20out%20how%20long%20a%20SQL%20Instance%20has%20been%20running/SQLLog.png"&gt;SQL Log&lt;/A&gt; &lt;/P&gt;&lt;img src="http://wardyit.com/aggbug.aspx?PostID=10639" width="1" height="1"&gt;</content><author><name>michael@wardyit.com</name><uri>http://wardyit.com/members/michael%40wardyit.com.aspx</uri></author></entry><entry><title>Liberation Day, Cloud Computing and Steve Balmer</title><link rel="alternate" type="text/html" href="http://wardyit.com/blog/michaelodeajones/archive/2008/11/24/liberation-day-cloud-computing-and-steve-balmer.aspx" /><id>http://wardyit.com/blog/michaelodeajones/archive/2008/11/24/liberation-day-cloud-computing-and-steve-balmer.aspx</id><published>2008-11-24T00:47:00Z</published><updated>2008-11-24T00:47:00Z</updated><content type="html">&lt;P&gt;On the 6&lt;SUP&gt;th&lt;/SUP&gt; of November I joined other local developers at the Microsoft Offices in Brisbane and around the world to listen to Steve Balmer talk to developers&lt;SUP&gt;1&lt;/SUP&gt;. He was excited and so was I. Steve confirmed one of my truths which is that "the really cool stuff that goes on the IT industry is done by developers". Wow! I love developing software. I'm passionate about it. I'm fascinated by computers, how they work and I really enjoy solving problems with software. &lt;/P&gt;
&lt;P&gt;Steve's talk reminded me of when Bob Atkinson (the Queensland Police Commissioner) said that the Charge Prep Project (that I was working on) was the most significant project we would ever work on in our professional careers. This was because it was going to reshape the charging process: how charges were delivered to the Department of Justice (electronically), improve the quality of the charges being produced, speed up the charging process and deliver much needed reporting capabilities. I was touched. The thought that your work would be used by thousands every day, all over Queensland, for years touched me. I really do like working on those ground breaking systems that take people and organisations into a whole new space. &lt;/P&gt;
&lt;P&gt;When I was deciding on a career I followed the old axiom to "choose a job that allows you to do the thing you love." I had three choices Priesthood, Secondary Teaching and Programming. I chose Programming and haven't looked back. Here is a quote from The Pragmatic Programmer that sums up my programming experience: &lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Programming is a craft. At its simplest, it comes down to getting a computer to do what you want it to do (or what your user wants it to do). As a programmer you are part listener, part advisor, part interpreter, and part dictator. You try to capture elusive requirements and find a way of expressing them so that a mere machine can do them justice. You try to document your work so that others can understand it, and you try to engineer your work so that others can build on it. What's more, you try to do all this against the relentless ticking of the project clock. You work small miracles every day.&lt;SUP&gt;2 &lt;/SUP&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;What Steve Balmer said resonated with me and I am truly excited about Cloud Computing. I can see so many applications for it. At Wardy IT we are in the process of packaging some products we've been working on to sell online. One of them called Hermes (light weight messaging and middleware framework) could be deployed to the Cloud giving customers virtually unlimited scalability. The way I think about Cloud Computing is similar to the way I experienced the Internet. It's a new technology, a platform, a paradigm that promises great power and new possibilities. I say "bring it on!" &lt;/P&gt;
&lt;P&gt;1 &lt;A href="http://www.microsoft.com/australia/powertodevelopers/"&gt;Liberation Day&lt;/A&gt;&lt;BR&gt;2 &lt;A href="http://www.pragprog.com/the-pragmatic-programmer"&gt;The Pragmatic Programmer&lt;/A&gt; Preface xvii.&lt;/P&gt;&lt;img src="http://wardyit.com/aggbug.aspx?PostID=10638" width="1" height="1"&gt;</content><author><name>michael@wardyit.com</name><uri>http://wardyit.com/members/michael%40wardyit.com.aspx</uri></author></entry><entry><title>Bridge to Brisbane – Mouth Wide Shut!</title><link rel="alternate" type="text/html" href="http://wardyit.com/blog/michaelodeajones/archive/2008/09/08/bridge-to-brisbane-mouth-wide-shut.aspx" /><id>http://wardyit.com/blog/michaelodeajones/archive/2008/09/08/bridge-to-brisbane-mouth-wide-shut.aspx</id><published>2008-09-08T13:51:00Z</published><updated>2008-09-08T13:51:00Z</updated><content type="html">&lt;P&gt;It's 6:45 AM on a Sunday morning. I am running up the Gateway Bridge with thousands of other runners. There are so many I have to go slow and watch my every step. All I can hear is the sound of shoes hitting the bitumen. The sky is blue, there is no wind. What a wonderful way to start Fathers day! I completed the Bridge to Brisbane 10 Km fun run in 60 minutes. That's 10 Km per hour and I did it breathing only through my nose! Not bad seeing as this was my first 10 Km run. I normally only run 4 Km's. &lt;/P&gt;
&lt;P&gt;Today "I can't feel my legs!"&lt;/P&gt;
&lt;P&gt;&lt;A href="http://wardyit.com/michaelodeajones/blog/b2b08/BridgeToBrisbane2008.blogsize.jpg"&gt;Wardy IT Bridge To Brisbane Team Photo&lt;/A&gt;&lt;/P&gt;&lt;img src="http://wardyit.com/aggbug.aspx?PostID=10127" width="1" height="1"&gt;</content><author><name>michael@wardyit.com</name><uri>http://wardyit.com/members/michael%40wardyit.com.aspx</uri></author></entry><entry><title>My SEAF Down Under Experience</title><link rel="alternate" type="text/html" href="http://wardyit.com/blog/michaelodeajones/archive/2008/09/08/my-seaf-down-under-experience.aspx" /><id>http://wardyit.com/blog/michaelodeajones/archive/2008/09/08/my-seaf-down-under-experience.aspx</id><published>2008-09-08T13:05:00Z</published><updated>2008-09-08T13:05:00Z</updated><content type="html">&lt;P&gt;Have you ever swum in a creek or water hole that's dark and murky? Have you ever let yourself sink down into the water and watched as the sun's rays disappear through the green algae and dirt? Have you ever held your breath while the fear rises in you, the darkness surrounds you and the chill of the unknown depths creeps up your legs? I have, and to this day I still wonder how deep the water hole really was and if there was some prehistoric predator at the bottom licking its lips. Till last week designing and managing databases evoked in me similar feelings. The wonderful rush of adrenalin flowing from living on the edge mixed with the fear that something could have gone wrong. &lt;/P&gt;
&lt;P&gt;Last week (1&lt;SUP&gt;st&lt;/SUP&gt; and 2&lt;SUP&gt;nd&lt;/SUP&gt; of Sept) I attended the SQL Enterprise Architects Forum (SEAF) at the Sydney Convention and Exhibition Centre. I found it very enlightening. Finally I was getting reliable information from the experts of the SQL Server Customer Advisory Team (CAT) - part of Microsoft's SQL development team based in Redmond, California. It felt good. It was like scuba diving in the water hole with oxygen, powerful torches and diving buddies. Clustering, Log Shipping, Replication and Mirroring lost their mystery when explained in context. There were no scary monsters. I'm no guru and I was able to follow most of what was said. I felt a little like Sir Edmund Hillary who described his feelings as ones of "quiet satisfaction, almost a little bit of surprise" when he climbed Mt Everest. In my case the satisfaction and surprise came from the realisation that many of my thoughts were validated.&lt;/P&gt;&lt;img src="http://wardyit.com/aggbug.aspx?PostID=10126" width="1" height="1"&gt;</content><author><name>michael@wardyit.com</name><uri>http://wardyit.com/members/michael%40wardyit.com.aspx</uri></author></entry></feed>