<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CEMHRXg-eip7ImA9WhRVGEo.&quot;"><id>tag:blogger.com,1999:blog-5483979277160872058</id><updated>2012-01-18T18:40:34.652+11:00</updated><category term="Personal" /><category term="Resharper" /><category term="Visual Studio" /><category term="Software Development Subversion" /><category term="eXtreme Programming" /><category term="Continuous Integration" /><category term="Revision Control" /><category term="Teamwork" /><category term="Agile" /><category term="IoC" /><category term="iPod" /><category term="Software Development" /><category term="Bushfire" /><category term="Collaboration" /><category term="Software Testing" /><category term="Our Dogs" /><category term="Bushfire Wildfire" /><category term="DockPanel Suite" /><category term="eBay" /><category term="Humorous" /><category term="WPF" /><category term="gmail" /><category term="Silverlight" /><category term="Open Source" /><title>Rob Smyth</title><subtitle type="html">Musings on software development, teams, my dogs, my life, the universe AND EVERYTHING! Hmmm, did I miss anything?</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://robertsmyth.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://robertsmyth.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Rob Smyth</name><uri>http://www.blogger.com/profile/11185396487990038093</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh4.google.com.au/Wobbit42/RsgXtYvecYI/AAAAAAAAAQs/lIhN-Lk7p9o/Rowan%20Violet%20and%20Me.jpg?imgmax=640" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>162</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/RobSmyth" /><feedburner:info uri="robsmyth" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DE4AQ3g7cCp7ImA9WhRWE08.&quot;"><id>tag:blogger.com,1999:blog-5483979277160872058.post-7795054872735537106</id><published>2011-12-28T21:13:00.022+11:00</published><updated>2011-12-31T21:22:22.608+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-31T21:22:22.608+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WPF" /><category scheme="http://www.blogger.com/atom/ns#" term="Software Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight" /><title>Migrating from Silverlight to WPF</title><content type="html">I've just completed migrating a Silverlight application to WPF. All up it took a few days. Not difficult, mostly tedious, but it become evident that some preparation and knowledge helps. So here are my notes.&lt;br /&gt;&lt;br /&gt;The application's vital statistics:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Silverlight 4&lt;/li&gt;&lt;li&gt;Visual Studio 2010 with Resharper 6&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Several VS Silverlight projects with multiple common library assemblies&lt;br /&gt;&lt;/li&gt;&lt;li&gt;MVVM&lt;/li&gt;&lt;li&gt;No Silverlight IoC used&lt;/li&gt;&lt;li&gt;Automated UATs using White (Silverlight) framework&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Telerik RadControls using charting, ribbon bar, data grid views, etc&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Highly interactive UI&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Multiple WCF services&lt;/li&gt;&lt;li&gt;Entity framework &amp;amp; SQL server back end&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Preparation&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Changes and research needed prior to changing references to the WPF framework ...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Do a spike&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;I found a spike run useful. I converted a few base assemblies until I got to one that had a Silverlight control (e.g. a user control or page). This took a few hours and help greatly in planning the real attack. Discard the spike, you will do it better the second time.&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Assembly Dependencies&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Understand your application's Silverlight assembly dependencies, you need to work up from the bottom.&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;WPF reference assemblies&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Do some research into Microsoft's WPF/Winforms reference assemblies. Referencing the wrong library is just too easy and can be time consuming to correct. Both WPF and Winforms have TextBox controls and Resharper is great but not a mind reader (yet). Take care when adding references.&lt;br /&gt;&lt;br /&gt;e.g. PresentationFramework.dll, WindowsBase.dll, PresentationCore.dll&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Clean-up orphaned files&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Sometimes files are removed from an assembly without being deleted or removed from the repository. You need to make sure these 'orphaned' files are removed before migrating. Select each project in turn and click on the show all files button in Visual Studio. Delete the orphans from your disk and the repository.&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Navigation&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Remove all web page navigation before you start the migration proper. This may be the biggest part of the job, the application needs to behave as one application rather than multiple web pages.&lt;br /&gt;&lt;br /&gt;Search your code for 'href', 'Uri', 'MappedUri', and 'NavigationService'. These must go.&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Web specific controls&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;In our case we had a RadControls HtmlPlaceholder which we used to display PDF files. This was removed prior to migrating the code and a PDF reader added post code migration. I could not see a refactoring option here.&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Code Migration&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Getting the code to compile as a WPF application ...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Telerik RadControls&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;Possibly the easiest part. Got the WPF version and it compiled with very few differences. Actually, I do not remember any compile time changes. Nice one Telerik.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Note:&lt;/span&gt; Mitigated the cost of buying new WPF licenses by timing the change close to our Silverlight licenses renewal. Tell the bean counters the new license costs are X but this is offset by dropping the cost of license Y making our cost ....&lt;br /&gt;&lt;br /&gt;However there were a few run-time behaviour differences which were probably base WPF framework differences. I list these later.&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Migrating assemblies&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;The procedure to migrate an assembly, working up the reference hierarchy was:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Add a new dot net assembly (not Silverlight) with the same name as the one being replaced but with a clear suffix like "_X". Important: Tell VS to create it in the same folder as the existing assembly.&lt;/li&gt;&lt;li&gt;Remove the newly created assembly from the solution.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;VS has created a folder for the new project in the existing assemblies folder. Navigate to that folder and move the project file down into the same folder as the existing project.&lt;/li&gt;&lt;li&gt;Add the moved project to the solution. As VS sorts projects alphabetically you will find in just below the one your replacing.&lt;/li&gt;&lt;li&gt;Copy the project's name space from the original project (do not  change it until the entire migration is finished). Set the assembly name  to be the same but with a suffix like the project name.&lt;/li&gt;&lt;li&gt;Add a reference to, as a minimum, PresentationFramework.dll, WindowsBase.dll, PresentationCore.dll.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Select the new project and click on "show all". Select all of the source files and folders and add them to the project until the new project has the same files and folders as the original project.&lt;/li&gt;&lt;li&gt;Try to compile the new project. You will need to change used namespaces. Typically the change will be to half a dozen namespaces in many files. So you will learn to do a search and replace (within the one project). This will break the compile of the original assembly but that does not matter so much.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Keep the old project in the solution until the migration is finished, you may need to navigate to solve errors in the migration, etc.&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Migrating WCF service references&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;I did not find a way to migrate WCF service references. Create new ones in the new Dot Net assembly.&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Run Time (Post code migration)&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;I did find some breaking differences. These were:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Had to change a few Page controls to UserControls. WCF class hierarchy is a bit different. The compile error is clear and it was not difficult to do.&lt;/li&gt;&lt;li&gt;The initialisation sequence is a little different. I need to move some initialisation code to different event handlers. I do not remember the details. This did take a few hours and was hit and miss. On one case I do remember I had to move some initialisation to an OnActivated event and add an "initialised" state. I'm sure that is not the intended way, but it worked.&lt;/li&gt;&lt;li&gt;I had one binding that did need considerable rework. The binding was to an indexer. Looked like a control binding defect, should have worked. This one also took a few hours to resolve.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Conclusion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It proved viable to migrate our Silverlight application to WPF with few problems. Medium complexity job.&lt;br /&gt;&lt;br /&gt;Code conversion took one developer a week. Planning and changes to the application are required before changing references to the WPF framework. Risk is low-moderate provided that your libraries, like Telerik, have a common WPF and Silverlight API.&lt;br /&gt;&lt;br /&gt;However, defects were introduced. Most had very high visibility (ribbon bar blank) so are relatively low risk. A few were changes in control behaviour so rigorous post migration testing is required. So allow the same time for testing and introduced defect fixing as was required for the code conversion (pre-testing) stage. But ... if you have good automated UATs manual testing will still be necessary but there will be few introduced defects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5483979277160872058-7795054872735537106?l=robertsmyth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://robertsmyth.blogspot.com/feeds/7795054872735537106/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5483979277160872058&amp;postID=7795054872735537106" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/7795054872735537106?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/7795054872735537106?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RobSmyth/~3/SyUIrG-Rz2M/migrating-from-silverlight-to-wpf.html" title="Migrating from Silverlight to WPF" /><author><name>Rob Smyth</name><uri>http://www.blogger.com/profile/11185396487990038093</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh4.google.com.au/Wobbit42/RsgXtYvecYI/AAAAAAAAAQs/lIhN-Lk7p9o/Rowan%20Violet%20and%20Me.jpg?imgmax=640" /></author><thr:total>0</thr:total><feedburner:origLink>http://robertsmyth.blogspot.com/2011/12/migrating-from-silverlight-to-wpf.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YDSXs5eSp7ImA9WhdWGEw.&quot;"><id>tag:blogger.com,1999:blog-5483979277160872058.post-1307253026390330716</id><published>2011-09-12T19:15:00.003+10:00</published><updated>2011-09-12T19:19:38.521+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-12T19:19:38.521+10:00</app:edited><title>The Convenience of Conspiracy</title><content type="html">Conspiracy is a respone for the ineffectual to resolve their position in a complex society. &lt;br /&gt;&lt;br /&gt;Isn't being ineffectual somebody else's problem?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5483979277160872058-1307253026390330716?l=robertsmyth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://robertsmyth.blogspot.com/feeds/1307253026390330716/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5483979277160872058&amp;postID=1307253026390330716" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/1307253026390330716?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/1307253026390330716?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RobSmyth/~3/dvtEBVQQSqw/convenience-of-conspiracy.html" title="The Convenience of Conspiracy" /><author><name>Rob Smyth</name><uri>http://www.blogger.com/profile/11185396487990038093</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh4.google.com.au/Wobbit42/RsgXtYvecYI/AAAAAAAAAQs/lIhN-Lk7p9o/Rowan%20Violet%20and%20Me.jpg?imgmax=640" /></author><thr:total>0</thr:total><feedburner:origLink>http://robertsmyth.blogspot.com/2011/09/convenience-of-conspiracy.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMBRXwyeCp7ImA9Wx5XGUo.&quot;"><id>tag:blogger.com,1999:blog-5483979277160872058.post-8128744423043216537</id><published>2010-09-20T19:03:00.003+10:00</published><updated>2010-09-20T19:20:54.290+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-20T19:20:54.290+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Software Development" /><title>Using Log2Console from NLog via MSMQ</title><content type="html">I've been using Log2Console to view real-time logging for a while using the Chainsaw target and UDP. But UDP is not reliable for fast real time logging. I found a simple way to configure NLog to send messages via MSMQ in the Log4JXml format used by Log2Console. It recon this could be used with any NLog target.&lt;br /&gt;&lt;br /&gt;Here is the NLog config:&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;target&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="messageQueue"&lt;/span&gt; &lt;span class="attr"&gt;xsi:type&lt;/span&gt;&lt;span class="kwrd"&gt;="MSMQ"&lt;/span&gt; &lt;span class="attr"&gt;queue&lt;/span&gt;&lt;span class="kwrd"&gt;=".\private$\log"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;layout&lt;/span&gt; &lt;span class="attr"&gt;xsi:type&lt;/span&gt;&lt;span class="kwrd"&gt;="Log4JXmlEventLayout"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;target&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;So simple.&lt;br /&gt;&lt;br /&gt;Rob&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5483979277160872058-8128744423043216537?l=robertsmyth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://robertsmyth.blogspot.com/feeds/8128744423043216537/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5483979277160872058&amp;postID=8128744423043216537" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/8128744423043216537?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/8128744423043216537?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RobSmyth/~3/pgwMYLWCsnM/using-log2console-from-nlog-via-msmq.html" title="Using Log2Console from NLog via MSMQ" /><author><name>Rob Smyth</name><uri>http://www.blogger.com/profile/11185396487990038093</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh4.google.com.au/Wobbit42/RsgXtYvecYI/AAAAAAAAAQs/lIhN-Lk7p9o/Rowan%20Violet%20and%20Me.jpg?imgmax=640" /></author><thr:total>0</thr:total><feedburner:origLink>http://robertsmyth.blogspot.com/2010/09/using-log2console-from-nlog-via-msmq.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0IHR3g9eCp7ImA9Wx5REk0.&quot;"><id>tag:blogger.com,1999:blog-5483979277160872058.post-4294236045619398255</id><published>2010-08-19T19:16:00.002+10:00</published><updated>2010-08-19T19:18:56.660+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-19T19:18:56.660+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Humorous" /><category scheme="http://www.blogger.com/atom/ns#" term="Software Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Agile" /><title>Cube Farm Designs That Cut Out Conversation</title><content type="html">The 2006 Waterfall Conference proves to provide timeless value. Those who know of Alistair will appreciate his input on office layout &lt;a href="http://www.waterfall2006.com/cockburn.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5483979277160872058-4294236045619398255?l=robertsmyth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="related" href="http://www.waterfall2006.com/cockburn.html" title="Cube Farm Designs That Cut Out Conversation" /><link rel="replies" type="application/atom+xml" href="http://robertsmyth.blogspot.com/feeds/4294236045619398255/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5483979277160872058&amp;postID=4294236045619398255" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/4294236045619398255?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/4294236045619398255?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RobSmyth/~3/dnaHpOLPyXs/cube-farm-designs-that-cut-out.html" title="Cube Farm Designs That Cut Out Conversation" /><author><name>Rob Smyth</name><uri>http://www.blogger.com/profile/11185396487990038093</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh4.google.com.au/Wobbit42/RsgXtYvecYI/AAAAAAAAAQs/lIhN-Lk7p9o/Rowan%20Violet%20and%20Me.jpg?imgmax=640" /></author><thr:total>0</thr:total><feedburner:origLink>http://robertsmyth.blogspot.com/2010/08/cube-farm-designs-that-cut-out.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cHQno6fip7ImA9Wx5REk0.&quot;"><id>tag:blogger.com,1999:blog-5483979277160872058.post-4803469425112558334</id><published>2010-08-19T18:51:00.007+10:00</published><updated>2010-08-19T19:10:33.416+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-19T19:10:33.416+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Software Development" /><title>Code Smell Metric - Doco Fluff Metric (DFM)</title><content type="html">Code documentation is one of those things that is so easy to do to without adding anything useful. The problem is that the added lines of code/text appear have no value and reduce code readability. A case of less is more. Documentation can be useful, but nonsense documentation is worse than no documentation at all.&lt;br /&gt;&lt;br /&gt;So a metric that detects nonsense documentation ("fluff"?) is another little helper.&lt;br /&gt;&lt;br /&gt;Here is a real world example:&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// Thread Name.&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; ThreadName;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// Time Stamp.&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; DateTime TimeStamp;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;A trival example but I recon it is less readable than:&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; ThreadName;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; DateTime TimeStamp;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;So the metric is: &lt;span style="font-style:italic;"&gt;If the documentation, with white spaces removed, case insensitive matches the property, method, or type then flag as doco fluff&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5483979277160872058-4803469425112558334?l=robertsmyth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://robertsmyth.blogspot.com/feeds/4803469425112558334/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5483979277160872058&amp;postID=4803469425112558334" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/4803469425112558334?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/4803469425112558334?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RobSmyth/~3/QML8NO2KZXQ/code-smell-metric-doco-fluff-metric.html" title="Code Smell Metric - Doco Fluff Metric (DFM)" /><author><name>Rob Smyth</name><uri>http://www.blogger.com/profile/11185396487990038093</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh4.google.com.au/Wobbit42/RsgXtYvecYI/AAAAAAAAAQs/lIhN-Lk7p9o/Rowan%20Violet%20and%20Me.jpg?imgmax=640" /></author><thr:total>1</thr:total><feedburner:origLink>http://robertsmyth.blogspot.com/2010/08/code-smell-metric-doco-fluff-metric.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QFRnY7eCp7ImA9Wx5TEk8.&quot;"><id>tag:blogger.com,1999:blog-5483979277160872058.post-8006850282734146268</id><published>2010-07-27T19:49:00.004+10:00</published><updated>2010-07-27T20:08:37.800+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-27T20:08:37.800+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Software Testing" /><category scheme="http://www.blogger.com/atom/ns#" term="Agile" /><category scheme="http://www.blogger.com/atom/ns#" term="Software Development Subversion" /><title>Agile Software Testing 101: Stress Testing</title><content type="html">So your a software tester and you have received a new build with a new feature to test. How do you stress test it? Not difficult, you just need to know the pattern of "Stress Testing" to find those weak points. Here is a simple agile "how to".&lt;br /&gt;&lt;br /&gt;Agile principles can be applied to testing. When done they leverage the tester's skills with the developer's skills.&lt;br /&gt;&lt;br /&gt;Steps:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Being agile (as we all are) you let the developer responsible know that you are about to test the new feature.&lt;/li&gt;&lt;li&gt;As agile means collocated, you make sure you are near the developer and he/she can see your screen. Think of this as limited-pair testing perhaps, an agile balance of full pairing and letting the developer get on with his job.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;To enhance your pairing make sure you have a mirror so you can see the developer. Collaboration is critical to stress testing.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Now go to the UI page that uses the feature and sweep your mouse pointer over the page watching the developers. When you see signs of stress ... click.&lt;/li&gt;&lt;/ol&gt;Stress testing saves time and leverages agile principles of, well, whatever your company says is agile today.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5483979277160872058-8006850282734146268?l=robertsmyth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://robertsmyth.blogspot.com/feeds/8006850282734146268/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5483979277160872058&amp;postID=8006850282734146268" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/8006850282734146268?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/8006850282734146268?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RobSmyth/~3/1d0UVs3tioA/software-testing-101-stress-testing.html" title="Agile Software Testing 101: Stress Testing" /><author><name>Rob Smyth</name><uri>http://www.blogger.com/profile/11185396487990038093</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh4.google.com.au/Wobbit42/RsgXtYvecYI/AAAAAAAAAQs/lIhN-Lk7p9o/Rowan%20Violet%20and%20Me.jpg?imgmax=640" /></author><thr:total>0</thr:total><feedburner:origLink>http://robertsmyth.blogspot.com/2010/07/software-testing-101-stress-testing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D04HQnw-eSp7ImA9WxFaF00.&quot;"><id>tag:blogger.com,1999:blog-5483979277160872058.post-5378484108832910766</id><published>2010-07-21T18:55:00.006+10:00</published><updated>2010-07-21T19:52:13.251+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-21T19:52:13.251+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Software Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Agile" /><title>Oath of Non-Allegiance</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_E5PBVFyg_GA/TEa5zBarJXI/AAAAAAAAA6M/mB6MRG089nM/s1600/3037.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 154px; height: 179px;" src="http://4.bp.blogspot.com/_E5PBVFyg_GA/TEa5zBarJXI/AAAAAAAAA6M/mB6MRG089nM/s320/3037.png" alt="" id="BLOGGER_PHOTO_ID_5496284681457050994" border="0" /&gt;&lt;/a&gt;Alistair Cockburn again challenges us. Check out the "&lt;span style="font-style: italic;"&gt;Oath of Non-Allegiance&lt;/span&gt;" &lt;a href="http://alistair.cockburn.us/Oath+of+Non-Allegiance"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I'm sick of hearing 'they are not agile because they use &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;UML&lt;/span&gt;' or 'In agile we stand up and spin clockwise every 42 minutes".&lt;br /&gt;&lt;br /&gt;Now I will go back to making my agile coffee on my agile PC and writing lots and lots of agile modelling diagrams. I wonder if my agile undies have arrived?&lt;br /&gt;&lt;br /&gt;The term 'Agile' has joined the livings dead, its meaning and purpose of the &lt;a href="http://agilemanifesto.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;manefesto&lt;/span&gt;&lt;/a&gt; is long gone. It is now used to mean whatever you want like Scrum, eXtreme Programming, or just anything.&lt;br /&gt;&lt;br /&gt;May tolerance, an understanding that all processes are broken, and the bravery to find 'what works', replace it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5483979277160872058-5378484108832910766?l=robertsmyth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://robertsmyth.blogspot.com/feeds/5378484108832910766/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5483979277160872058&amp;postID=5378484108832910766" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/5378484108832910766?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/5378484108832910766?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RobSmyth/~3/0oEUJvHwPEY/oath-of-non-allegiance.html" title="Oath of Non-Allegiance" /><author><name>Rob Smyth</name><uri>http://www.blogger.com/profile/11185396487990038093</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh4.google.com.au/Wobbit42/RsgXtYvecYI/AAAAAAAAAQs/lIhN-Lk7p9o/Rowan%20Violet%20and%20Me.jpg?imgmax=640" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_E5PBVFyg_GA/TEa5zBarJXI/AAAAAAAAA6M/mB6MRG089nM/s72-c/3037.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://robertsmyth.blogspot.com/2010/07/oath-of-non-allegiance.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0IDSHc_eyp7ImA9WxFbGU8.&quot;"><id>tag:blogger.com,1999:blog-5483979277160872058.post-7286315518691660198</id><published>2010-07-12T19:52:00.003+10:00</published><updated>2010-07-12T20:12:59.943+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-12T20:12:59.943+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Software Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><title>Using Visual Studio 2010 over RDP With Dual Screens</title><content type="html">I often work from home and want to use my work box with dual screens but my home monitors have different resolutions. Normally, with a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;VPN&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;RDP&lt;/span&gt; connection, the windows &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;RDP&lt;/span&gt; software cannot handle dual screens nicely and not at all when they have different resolutions. I like &lt;a href="http://www.splitview.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;SplitView&lt;/span&gt;&lt;/a&gt;, it allows me to do this.&lt;br /&gt;&lt;br /&gt;At home I have laptop and an external monitor. The laptop has a 1680 pixels &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;across&lt;/span&gt; and the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;monitor&lt;/span&gt; has 1920 &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;across&lt;/span&gt;. Needless to say I want to use both with Visual Studio's main editor on the larger monitor and the debug, output, unit tests windows on the smaller laptop monitor. With &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;SplitView&lt;/span&gt; I can connect to my work computer and use both. The nice thing is that I can maximise an application within a monitor without it filling both monitors.&lt;br /&gt;&lt;br /&gt;It is a little tricky (you do need to read the doco) to setup as it does layer over &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;RDP&lt;/span&gt;. With a little fiddling about with the screen sizes it works nicely.&lt;br /&gt;&lt;br /&gt;But the screens are not exactly the same and when I return to the office after working from home I find that the screen layouts have changed. A bit annoying. Move the VS2010 properties window here, output window here, etc. So I saves my "in office" and "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;rdp&lt;/span&gt;" layouts using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;VS's&lt;/span&gt; "Import and Export Settings". First get the layout you want and the export it by selecting "General Settings | Windows Layout" only. Then from home, or in the morning, you can quickly restore world order to your windows. Nice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5483979277160872058-7286315518691660198?l=robertsmyth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://robertsmyth.blogspot.com/feeds/7286315518691660198/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5483979277160872058&amp;postID=7286315518691660198" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/7286315518691660198?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/7286315518691660198?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RobSmyth/~3/eETVh39Fsaw/using-visual-studio-2010-over-rdp-with.html" title="Using Visual Studio 2010 over RDP With Dual Screens" /><author><name>Rob Smyth</name><uri>http://www.blogger.com/profile/11185396487990038093</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh4.google.com.au/Wobbit42/RsgXtYvecYI/AAAAAAAAAQs/lIhN-Lk7p9o/Rowan%20Violet%20and%20Me.jpg?imgmax=640" /></author><thr:total>0</thr:total><feedburner:origLink>http://robertsmyth.blogspot.com/2010/07/using-visual-studio-2010-over-rdp-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08AQXk9cSp7ImA9WxFbFko.&quot;"><id>tag:blogger.com,1999:blog-5483979277160872058.post-6109773260616136347</id><published>2010-07-09T20:19:00.002+10:00</published><updated>2010-07-09T20:37:20.769+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-09T20:37:20.769+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Software Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Agile" /><category scheme="http://www.blogger.com/atom/ns#" term="Continuous Integration" /><title>Continuous Integration can build time dependency</title><content type="html">It seems to me that there is a dependency between Continuous Integration (CI) and build time. Each time I hit a slow build it puts pressure on 'fast' CI. It seems that if the build is slow then CI may be more destructive that &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;beneficial&lt;/span&gt;. I'm thinking it is all a question of ratio.&lt;br /&gt;&lt;br /&gt;CI does not define an integration rate. Some teams see CI as once a week, others see it as every 15 minutes. It is a relative concept.&lt;br /&gt;&lt;br /&gt;If a build box can build and run all tests in, say, 1 second then a team's commit rate of once every 5 minutes would seem achievable. Each developer would have instant feedback and be able to fix, or revert, any problem within a couple of minutes, after a commit, with minimal effect (&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;without&lt;/span&gt; considering a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;pre&lt;/span&gt;-commit test system). But if the build takes, say, 30 minutes and the team's commit rate was once every 15 minutes then by the time a build failure is detected the whole team is affected.&lt;br /&gt;&lt;br /&gt;So it seems to me that there is a relationship between &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;CI's&lt;/span&gt; rate and build time. Just do not know hat it is yet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5483979277160872058-6109773260616136347?l=robertsmyth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://robertsmyth.blogspot.com/feeds/6109773260616136347/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5483979277160872058&amp;postID=6109773260616136347" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/6109773260616136347?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/6109773260616136347?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RobSmyth/~3/M-HqdSETHGw/continuous-integration-can-build-time.html" title="Continuous Integration can build time dependency" /><author><name>Rob Smyth</name><uri>http://www.blogger.com/profile/11185396487990038093</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh4.google.com.au/Wobbit42/RsgXtYvecYI/AAAAAAAAAQs/lIhN-Lk7p9o/Rowan%20Violet%20and%20Me.jpg?imgmax=640" /></author><thr:total>1</thr:total><feedburner:origLink>http://robertsmyth.blogspot.com/2010/07/continuous-integration-can-build-time.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EFQHs9eyp7ImA9WxFbFks.&quot;"><id>tag:blogger.com,1999:blog-5483979277160872058.post-4285083769633261019</id><published>2010-07-09T19:26:00.003+10:00</published><updated>2010-07-09T20:00:11.563+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-09T20:00:11.563+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Software Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><category scheme="http://www.blogger.com/atom/ns#" term="Software Development Subversion" /><category scheme="http://www.blogger.com/atom/ns#" term="Revision Control" /><title>Visual Studio 2010 build speed - kinda Windows 7 really</title><content type="html">When I moved to a new project using Visual Studio 2010 the build time seemed very very slow. But it would seem the problem is more to do with Windows 7. We are using Subversion, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;VisualSVN&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;TortoiseSVN&lt;/span&gt; for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;RCS&lt;/span&gt;. I have been perplexed as to why we no longer get icons in Explorer and today I found the solution &lt;a href="http://blogs.technet.com/b/asiasupp/archive/2006/12/14/windows-vista-tcp-auto-tuning.aspx"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Once I ran the spell:&lt;br /&gt;&lt;blockquote&gt; &lt;em&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;netsh&lt;/span&gt; interface &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;tcp&lt;/span&gt; set global &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;autotuninglevel&lt;/span&gt;=disabled&lt;/em&gt;.&lt;/blockquote&gt;The world order was restored. VS2010 compiled 2 times faster, Explorer icons came out from hiding, and Explorer was happy (much much faster).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5483979277160872058-4285083769633261019?l=robertsmyth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://robertsmyth.blogspot.com/feeds/4285083769633261019/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5483979277160872058&amp;postID=4285083769633261019" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/4285083769633261019?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/4285083769633261019?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RobSmyth/~3/Pbcz-S4ndQE/visual-studio-2010-build-speed-kinda.html" title="Visual Studio 2010 build speed - kinda Windows 7 really" /><author><name>Rob Smyth</name><uri>http://www.blogger.com/profile/11185396487990038093</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh4.google.com.au/Wobbit42/RsgXtYvecYI/AAAAAAAAAQs/lIhN-Lk7p9o/Rowan%20Violet%20and%20Me.jpg?imgmax=640" /></author><thr:total>1</thr:total><feedburner:origLink>http://robertsmyth.blogspot.com/2010/07/visual-studio-2010-build-speed-kinda.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4MR306fSp7ImA9WxFVFU0.&quot;"><id>tag:blogger.com,1999:blog-5483979277160872058.post-31207256747071686</id><published>2010-06-14T19:12:00.003+10:00</published><updated>2010-06-14T19:33:06.315+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-14T19:33:06.315+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Software Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Teamwork" /><category scheme="http://www.blogger.com/atom/ns#" term="Continuous Integration" /><title>Build Management</title><content type="html">Over the last few years I've worked on .Net projects using a few build management sytems. My ratings, best first:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.jetbrains.com/teamcity/"&gt;TeamCity&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.thoughtworks-studios.com/cruise-release-management"&gt;Cruise&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cruisecontrol.sourceforge.net/"&gt;CruiseControl&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Team_Foundation_Server"&gt;TFS&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5483979277160872058-31207256747071686?l=robertsmyth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://robertsmyth.blogspot.com/feeds/31207256747071686/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5483979277160872058&amp;postID=31207256747071686" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/31207256747071686?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/31207256747071686?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RobSmyth/~3/WAny2uwzYUs/build-management.html" title="Build Management" /><author><name>Rob Smyth</name><uri>http://www.blogger.com/profile/11185396487990038093</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh4.google.com.au/Wobbit42/RsgXtYvecYI/AAAAAAAAAQs/lIhN-Lk7p9o/Rowan%20Violet%20and%20Me.jpg?imgmax=640" /></author><thr:total>0</thr:total><feedburner:origLink>http://robertsmyth.blogspot.com/2010/06/build-management.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QDRXsyfSp7ImA9WxFVFUg.&quot;"><id>tag:blogger.com,1999:blog-5483979277160872058.post-3237119642168370035</id><published>2010-06-14T17:57:00.016+10:00</published><updated>2010-06-15T09:49:34.595+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-15T09:49:34.595+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Software Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><category scheme="http://www.blogger.com/atom/ns#" term="Software Development Subversion" /><category scheme="http://www.blogger.com/atom/ns#" term="Revision Control" /><title>TFS 2010 is a still birth</title><content type="html">The last few months I've been on a new project using Visual Studio 2010. Being a green field project we started out going for the very latest suite of Microsoft integrated tools using &lt;a href="http://en.wikipedia.org/wiki/Team_Foundation_Server"&gt;TFS&lt;/a&gt; for project management and &lt;a href="http://en.wikipedia.org/wiki/Revision_Control_System"&gt;revision control&lt;/a&gt;. What we found was that TFS was ... hmmm ... how do put this? ... still born. Try as we did we just could not give it life and after months of painful efforts we ditched it for subversion and &lt;a href="http://www.jetbrains.com/teamcity/"&gt;TeamCity&lt;/a&gt; so we could get on with the project.&lt;br /&gt;&lt;br /&gt;I just could not find anything about TFS that was, in a professional  sense usable.&lt;br /&gt;&lt;br /&gt;My summary of TFS:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Revision_Control_System"&gt;RCS&lt;/a&gt; - it loses code changes. It is also difficult to use, and has a merge-phobia, but the corruption thingy is kinda a slam dunk. Subversion is way ahead and hey ... it keeps your code changes.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Project Management - Notepad is better.&lt;/li&gt;&lt;li&gt;Build system - works but is difficult to manage. &lt;a href="http://www.jetbrains.com/teamcity/"&gt;TeamCity&lt;/a&gt; is much better.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Integration - Best described as 'share the pain'. Other, non-Microsoft, tools integrate as good. e.g. VisualSVN.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Details below. If your going to read further either you find it hard to believe Microsoft could do such a thing (yea, me too), your a Microsoft basher looking for a fix (go away!), or you need know the experience to avoid it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RCS Ability&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Basics&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;My experience with TFS for revision controls was .... well ... it doesn't work. It is that basic. Well actually it is worse, it silently drops changes. Yep, a revision control system (RCS) that actually looses code. Hard to believe, and we were so sure that nobody could release such a bad RCS that we thought that it had to be the way we were using it. But no, check in your changes, then update and guess what? Your changes are gone!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Merging:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That TFS cannot reliable keep code changes is sufficient to just forget it and move on. But I suppose that may be fixed. Trouble is that this dude is just way out of its league. TFS's idea of a merge conflict is that the file changed &lt;sigh&gt;&lt;disbelief&gt;. Its merging is so bad that continuous integration (CI) collaboration is expensive. It sometimes even reports files that it cannot merge files that, it says, are the same.&lt;br /&gt;&lt;br /&gt;TFS is merge-o-phobic.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Working with a build system&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;One real attractive feature with TFS is that it offers the ability to compile and run all tests on a build system before accepting the commit. Nice ... but ....&lt;br /&gt;&lt;br /&gt;It works, most of the time. Trouble is that TFS's merge-o-phobia kinda negates this feature but ignoring that TFS sometimes reverts all of your code when you do one of the commits. Not always mind you, and it does not tell you if it did. Surprise! If it does, and you realise it, well you just have to go make a coffee while the build system decides if your code can go it. That down time is optimistic  :-).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;For Project Management&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;TFS is just fine if your project's always go exactly as planned in a gantt chart. So why do you need a project management tool?&lt;br /&gt;&lt;br /&gt;I'm serious when I say that notepad would be a better tool. Excel would be far better, and VersionOne just awesome.&lt;br /&gt;&lt;br /&gt;For what is called 'agile' style project:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Burn down reporting does not work.&lt;/li&gt;&lt;li&gt;Move a story to a different iteration and the tasks stay behind. Hey try to do iteration planning with that!&lt;/li&gt;&lt;li&gt;Story prerequisites are meaningless. You can put a dependent story in an iteration preceding it prerequisites.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Summary&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In the end we gave up and now use: Subversion with &lt;a href="http://tortoisesvn.net/"&gt;TortoiseSVN&lt;/a&gt; and &lt;a href="http://www.visualsvn.com/"&gt;VisualSVN&lt;/a&gt;, and &lt;a href="http://www.jetbrains.com/teamcity/"&gt;TeamCity&lt;/a&gt;. We can deliver working functionality more often now as we can spend more time coding features and less time working with infrastructure.&lt;br /&gt;&lt;br /&gt;But if subversion ain't for you as you need something real expensive with lots processes to be sure to be sure that you really are going to commit that code then I can say that TFS is even worse than ClearCase. ClearCase does not loose code changes. It may slow them going in but it does not loose them. And ... trump this ... ClearCase is so much more expensive.&lt;/disbelief&gt;&lt;/sigh&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5483979277160872058-3237119642168370035?l=robertsmyth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://robertsmyth.blogspot.com/feeds/3237119642168370035/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5483979277160872058&amp;postID=3237119642168370035" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/3237119642168370035?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/3237119642168370035?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RobSmyth/~3/v5pYIGAArqQ/tfs-2010-is-still-birth.html" title="TFS 2010 is a still birth" /><author><name>Rob Smyth</name><uri>http://www.blogger.com/profile/11185396487990038093</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh4.google.com.au/Wobbit42/RsgXtYvecYI/AAAAAAAAAQs/lIhN-Lk7p9o/Rowan%20Violet%20and%20Me.jpg?imgmax=640" /></author><thr:total>0</thr:total><feedburner:origLink>http://robertsmyth.blogspot.com/2010/06/tfs-2010-is-still-birth.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUAHSX89eSp7ImA9WxFVFE8.&quot;"><id>tag:blogger.com,1999:blog-5483979277160872058.post-424495682862810145</id><published>2010-06-13T19:42:00.007+10:00</published><updated>2010-06-13T20:08:58.161+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-13T20:08:58.161+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Personal" /><title /><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_E5PBVFyg_GA/TBSqZTuG4vI/AAAAAAAAA6A/bWJmLDDLiC8/s1600/mike-rivamonte-1.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; cursor: pointer; width: 320px; height: 242px;" src="http://2.bp.blogspot.com/_E5PBVFyg_GA/TBSqZTuG4vI/AAAAAAAAA6A/bWJmLDDLiC8/s320/mike-rivamonte-1.jpg" alt="" id="BLOGGER_PHOTO_ID_5482193998183850738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;My favorite robot remains &lt;a href="http://drexfiles.wordpress.com/2009/03/25/"&gt;Robbie&lt;/a&gt; from forbidden planet but this &lt;a href="http://www.lipsonrobotics.com"&gt;Lipson &lt;/a&gt;guy is awesome with his assembliage robot (another guy's work pictured above).&lt;br /&gt;&lt;br /&gt;Now these are sculptures I wuv:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.flickr.com/photos/lipsonrobotics/"&gt;Lipson Robotics&lt;/a&gt; (this guys is awesome!)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.flickr.com/photos/tinkerbots/"&gt;Tinkerbots&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://gajitz.com/junkbots-8-artists-creating-lovable-bots-from-trash/"&gt;Junkbots&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The &lt;a href="http://www.flickr.com/photos/lipsonrobotics/3534664427/"&gt;"Rapid 2" Assemblage  Robot Sculpture&lt;/a&gt; is my favorite. My birthday is coming!&lt;br /&gt;&lt;br /&gt;Rob&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5483979277160872058-424495682862810145?l=robertsmyth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://robertsmyth.blogspot.com/feeds/424495682862810145/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5483979277160872058&amp;postID=424495682862810145" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/424495682862810145?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/424495682862810145?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RobSmyth/~3/RowPGKVdX1Y/my-most-favorite-robots-remains-robbie.html" title="" /><author><name>Rob Smyth</name><uri>http://www.blogger.com/profile/11185396487990038093</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh4.google.com.au/Wobbit42/RsgXtYvecYI/AAAAAAAAAQs/lIhN-Lk7p9o/Rowan%20Violet%20and%20Me.jpg?imgmax=640" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_E5PBVFyg_GA/TBSqZTuG4vI/AAAAAAAAA6A/bWJmLDDLiC8/s72-c/mike-rivamonte-1.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://robertsmyth.blogspot.com/2010/06/my-most-favorite-robots-remains-robbie.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ENRXc7eyp7ImA9WxFTEkU.&quot;"><id>tag:blogger.com,1999:blog-5483979277160872058.post-3366988657818903319</id><published>2010-04-03T18:15:00.005+11:00</published><updated>2010-04-03T19:01:34.903+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-03T19:01:34.903+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Software Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Software Testing" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><title>Fault Tolerant Automated Functional Tests Oxymoron</title><content type="html">Microsoft seems to be pushing making coded UI functional tests fault tolerant by using multiple methods of 'finding' controls on a page. If it can't find a control as its text has changed then it tries another approach. I recon it more likely to cause more problems that it would solve. At best it is unnecessary, and  worst it will allow tests to pass when they should fail. Like over use of null reference guards in code that hide defects.&lt;br /&gt;&lt;br /&gt;Microsoft's automation tools generate code that uses multiple  approaches  (fault tolerant) to find controls. I'm also seeing examples of this  approach in VS2010 documentation/tutorials.&lt;br /&gt;&lt;br /&gt;e.g: 4 minutes into: &lt;a href="http://channel9.msdn.com/posts/kmcgrath/Introduction-to-Creating-Coded-UI-Tests-with-Visual-Studio-2010/"&gt;Introduction  to Creating Coded UI Tests with Visual Studio 2010&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I do not understand the need nor the intent. On the 'need' level it implies that there is not a reliable method for finding a control although each control has a name or AutomationId that is independent of location, inner text, colour, visibility. On the intent level, if the control changes so you can not find it ... well ... I would rather the test failed.&lt;br /&gt;&lt;br /&gt;I use test jigs and testers (thanks &lt;a href="http://www.nigelthorne.com/"&gt;Nigel&lt;/a&gt; ... a pattern that should be documented) to access UI controls. Typically a page has a test jig and a property on the test jig provides access to control's tester or test jig. So, I have one place in which I define the control's id (e.g. AutomationId). So if it changes I just change one line.&lt;br /&gt;&lt;br /&gt;Fault tolterant test code is an oxymoron.&lt;br /&gt;&lt;br /&gt;Perhaps the next step is to make tests intermittent failure tolerant by retry on fail.  :-)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/posts/kmcgrath/Introduction-to-Creating-Coded-UI-Tests-with-Visual-Studio-2010/"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5483979277160872058-3366988657818903319?l=robertsmyth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://robertsmyth.blogspot.com/feeds/3366988657818903319/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5483979277160872058&amp;postID=3366988657818903319" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/3366988657818903319?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/3366988657818903319?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RobSmyth/~3/gke-X1BhkqI/fault-tolerant-automated-functional.html" title="Fault Tolerant Automated Functional Tests Oxymoron" /><author><name>Rob Smyth</name><uri>http://www.blogger.com/profile/11185396487990038093</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh4.google.com.au/Wobbit42/RsgXtYvecYI/AAAAAAAAAQs/lIhN-Lk7p9o/Rowan%20Violet%20and%20Me.jpg?imgmax=640" /></author><thr:total>1</thr:total><feedburner:origLink>http://robertsmyth.blogspot.com/2010/04/fault-tolerant-automated-functional.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08DQ3o9fSp7ImA9WxFTEkU.&quot;"><id>tag:blogger.com,1999:blog-5483979277160872058.post-2855116030644375934</id><published>2009-12-05T18:45:00.003+11:00</published><updated>2010-04-03T19:04:32.465+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-03T19:04:32.465+11:00</app:edited><title>OffByZero's Cobalt effort</title><content type="html">Software development is all about automating people's processes. I love it when somebody makes the difficult simple. That has gotta be the holy grail of software development. Gotta respect the work done by &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;OffByZero's&lt;/span&gt; Cobalt release ...&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;OffByZero&lt;/span&gt; Cobalt is a turnkey software licensing solution for .NET.  It integrates with .NET software in a matter of minutes, and provides a powerful and flexible means of licensing the application and individual features within it.&lt;br /&gt;&lt;br /&gt;Cobalt supports a variety of platforms (including &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Citrix&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;VMWare&lt;/span&gt;) and provides for a range of licensing scenarios (including offline licensing, product activation, and dynamic licence configuration).&lt;br /&gt;&lt;br /&gt;There's a great &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;screencast&lt;/span&gt; demonstrating Cobalt integration at &lt;a href="https://cobalt.offbyzero.com/demo" target="_blank"&gt;https://cobalt.offbyzero.com/&lt;wbr&gt;demo&lt;/a&gt; and detailed documentation at &lt;a href="https://cobalt.offbyzero.com/help/documentation" target="_blank"&gt;https://cobalt.offbyzero.com/&lt;wbr&gt;help/documentation&lt;/a&gt;.&lt;br /&gt;&lt;span style="color: rgb(136, 136, 136);"&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5483979277160872058-2855116030644375934?l=robertsmyth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://robertsmyth.blogspot.com/feeds/2855116030644375934/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5483979277160872058&amp;postID=2855116030644375934" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/2855116030644375934?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/2855116030644375934?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RobSmyth/~3/4RXtRLbR_so/software-development-is-all-about.html" title="OffByZero's Cobalt effort" /><author><name>Rob Smyth</name><uri>http://www.blogger.com/profile/11185396487990038093</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh4.google.com.au/Wobbit42/RsgXtYvecYI/AAAAAAAAAQs/lIhN-Lk7p9o/Rowan%20Violet%20and%20Me.jpg?imgmax=640" /></author><thr:total>1</thr:total><feedburner:origLink>http://robertsmyth.blogspot.com/2009/12/software-development-is-all-about.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcGRHo_eSp7ImA9WxNaFEU.&quot;"><id>tag:blogger.com,1999:blog-5483979277160872058.post-181681260481381437</id><published>2009-11-29T19:09:00.003+11:00</published><updated>2009-11-29T19:23:45.441+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-29T19:23:45.441+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Software Development Subversion" /><title>VisualSVN Server</title><content type="html">I respect software that 'just do it'. In this case, I like the way VisualSVN Server, makes installing and managing a Subversion server.&lt;br /&gt;&lt;br /&gt;I've installed subversion servers a few times. Not difficult but not doing it often it does require reading instructions, knowing a few command lines, and configuring a few files. But tonight I'm playing with another little experimental project and I find working without version control ... hmmm .... 'interesting'. The project is experimental so it would premature to create an on-line repository (e.g. GoogleCode, Sourceforge) so I downloaded VisualSVN Server, ran the installer and had a running server is just a couple of minutes.&lt;br /&gt;&lt;br /&gt;The VisualSVN guys made the job easier by:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Making the ignores of: bin, obj, *.suo, etc default. So I did not need to import and then go through the process of ignore and delete.&lt;/li&gt;&lt;li&gt;Prompted for the creation of the conventional (trunk, tag, branches) folders, so I did not have to create them.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Provides a nice simple GUI that showed me up front the subversion URL (no reading documentation for the port number) and I could add myself as a user while I was committing.&lt;/li&gt;&lt;/ul&gt;Nice job guys. Slick. As a software developer my job is to automate other people's processes, I appreciate it when others automate my processes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5483979277160872058-181681260481381437?l=robertsmyth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://robertsmyth.blogspot.com/feeds/181681260481381437/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5483979277160872058&amp;postID=181681260481381437" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/181681260481381437?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/181681260481381437?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RobSmyth/~3/H4KIH4do9HE/visualsvn-server.html" title="VisualSVN Server" /><author><name>Rob Smyth</name><uri>http://www.blogger.com/profile/11185396487990038093</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh4.google.com.au/Wobbit42/RsgXtYvecYI/AAAAAAAAAQs/lIhN-Lk7p9o/Rowan%20Violet%20and%20Me.jpg?imgmax=640" /></author><thr:total>1</thr:total><feedburner:origLink>http://robertsmyth.blogspot.com/2009/11/visualsvn-server.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcDRn07eSp7ImA9WxNaEk4.&quot;"><id>tag:blogger.com,1999:blog-5483979277160872058.post-4772290614273347380</id><published>2009-11-26T19:57:00.006+11:00</published><updated>2009-11-26T21:07:57.301+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-26T21:07:57.301+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Bushfire Wildfire" /><title>Resident Bushfire Gear</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_E5PBVFyg_GA/Sw5RZjoe7mI/AAAAAAAAA0U/P0E0eZbPEXw/s1600/Bushfire+Bandana.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 200px;" src="http://1.bp.blogspot.com/_E5PBVFyg_GA/Sw5RZjoe7mI/AAAAAAAAA0U/P0E0eZbPEXw/s320/Bushfire+Bandana.jpg" alt="" id="BLOGGER_PHOTO_ID_5408349702022164066" border="0" /&gt;&lt;/a&gt;While trying to find a bushfire/wildire balaclava/bandana I thing I'm finding a void between the professional/volunteer firie and residents. I'm finding it surprisingly difficult to find gear suitale for a resident's fire kit.&lt;br /&gt;&lt;br /&gt;In particular I wanted balaclavas for our kits. I want balaclava that can be used "as required" rather than "in standard preparation". A fire fighter will take on protective gear through training and the knowlege of what is possible. But I'm looking for solutions on extrem fire rating days that allow me to deploy as conditions get worse. A progressive solution. I'm not a firies, so I'm not expecting the worse. I found what seem like good balaclavas, but they require clothing in advance. I want one that I can place in a pocket and use, quickly, when needeed.&lt;br /&gt;&lt;br /&gt;Being an (not a firie) resident I do not think I'm going to dress in advance (it will be bloody hot!) and I do expect that conditions will change (worse case) rapidly.&lt;br /&gt;&lt;br /&gt;Great products out there but I want one that has something like a velcro strip so I can slap it on as needed. (I'm a whimp so if hot I probably will not be wearing it until really needed).&lt;br /&gt;&lt;br /&gt;The photo shows the one we got. Seems good, but I would rather one that did not need me to put it on before doning a helmet.&lt;br /&gt;&lt;br /&gt;Balaclavas/Bandanas&lt;span style="font-family:VERDANA, ARIAL, HELVETICA;"&gt;&lt;span class="pageheader"&gt;&lt;/span&gt;&lt;/span&gt; I have found:&lt;br /&gt;&lt;br /&gt;&lt;li&gt;http://www.forestry-suppliers.com/product_pagesView_Catalog_Page.asp?mi=3813&lt;/li&gt;&lt;li&gt;http://www.wfrfire.com/front/index.htm?/FORESTRY/clothing/bandanna.htm&amp;amp;front&lt;/li&gt;&lt;li&gt;http://www.forestry-suppliers.com/product_pages/View_Catalog_Page.asp?mi=3813&lt;/li&gt;&lt;li&gt;http://www.thefirestore.com/store/product.cfm/pid_2053_pgi_carbon_shield_bandana/&lt;/li&gt;&lt;li&gt;http://www.thebigredguide.com/fire-products-specification/xcaper-industries-whiffs-manta-x-20.html&lt;/li&gt;&lt;li&gt;http://www.benmeadows.com/store/Fire_and_Rescue/Wildland_Fire_Fighting_Clothes/Fire_Fighting_Clothing/21900/133536/?CID=9OP001&lt;/li&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5483979277160872058-4772290614273347380?l=robertsmyth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://robertsmyth.blogspot.com/feeds/4772290614273347380/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5483979277160872058&amp;postID=4772290614273347380" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/4772290614273347380?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/4772290614273347380?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RobSmyth/~3/tAXGfk4DPfs/resident-bushfire-gear.html" title="Resident Bushfire Gear" /><author><name>Rob Smyth</name><uri>http://www.blogger.com/profile/11185396487990038093</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh4.google.com.au/Wobbit42/RsgXtYvecYI/AAAAAAAAAQs/lIhN-Lk7p9o/Rowan%20Violet%20and%20Me.jpg?imgmax=640" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_E5PBVFyg_GA/Sw5RZjoe7mI/AAAAAAAAA0U/P0E0eZbPEXw/s72-c/Bushfire+Bandana.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://robertsmyth.blogspot.com/2009/11/resident-bushfire-gear.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQAQnw9fyp7ImA9WxNbF00.&quot;"><id>tag:blogger.com,1999:blog-5483979277160872058.post-1961425164571295384</id><published>2009-11-20T19:32:00.000+11:00</published><updated>2009-11-20T20:12:23.267+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-20T20:12:23.267+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Bushfire" /><category scheme="http://www.blogger.com/atom/ns#" term="Personal" /><title>Bushfirre FDR - Potential Yet To Deliver</title><content type="html">Following the tragic &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;bushfires&lt;/span&gt; (wildfires), and the interim report from the &lt;a href="http://www.royalcommission.vic.gov.au/"&gt;2009 Bushfire Royal Commission&lt;/a&gt; recommendations 5.1 &amp;amp; 5.2, we now have a new Fire Danger Rating (FDR) system which seems good but is, currently, difficult to use.&lt;br /&gt;&lt;br /&gt;We have, following community education, based our fire plans on the new FDR. But I'm finding it difficult to keep informed of the forecast FDR. The media gives great details of the "Total Fire Bans" (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;TFBs&lt;/span&gt;) but not the new FDR.&lt;br /&gt;&lt;br /&gt;I'm wondering if the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;CFA's&lt;/span&gt; community education had been successful but not supported by the media, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;CFA&lt;/span&gt; web site, and the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;BOM's&lt;/span&gt; web site.&lt;br /&gt;&lt;br /&gt;Gotta love the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;CFA&lt;/span&gt;. Great organisation that we owe so much to.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5483979277160872058-1961425164571295384?l=robertsmyth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://robertsmyth.blogspot.com/feeds/1961425164571295384/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5483979277160872058&amp;postID=1961425164571295384" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/1961425164571295384?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/1961425164571295384?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RobSmyth/~3/7ZffAlYmkNo/bushfirre-fdr-potential-yet-to-deliver.html" title="Bushfirre FDR - Potential Yet To Deliver" /><author><name>Rob Smyth</name><uri>http://www.blogger.com/profile/11185396487990038093</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh4.google.com.au/Wobbit42/RsgXtYvecYI/AAAAAAAAAQs/lIhN-Lk7p9o/Rowan%20Violet%20and%20Me.jpg?imgmax=640" /></author><thr:total>0</thr:total><feedburner:origLink>http://robertsmyth.blogspot.com/2009/11/bushfirre-fdr-potential-yet-to-deliver.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkEERXY7fSp7ImA9WxNbEU0.&quot;"><id>tag:blogger.com,1999:blog-5483979277160872058.post-256794734312819529</id><published>2009-11-13T21:36:00.001+11:00</published><updated>2009-11-13T21:36:44.805+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-13T21:36:44.805+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Personal" /><title>iProd Retro Cool</title><content type="html">http://www.peteverrando.com/retrodock&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5483979277160872058-256794734312819529?l=robertsmyth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://robertsmyth.blogspot.com/feeds/256794734312819529/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5483979277160872058&amp;postID=256794734312819529" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/256794734312819529?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/256794734312819529?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RobSmyth/~3/NALPBBBO9zE/iprod-retro-cool.html" title="iProd Retro Cool" /><author><name>Rob Smyth</name><uri>http://www.blogger.com/profile/11185396487990038093</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh4.google.com.au/Wobbit42/RsgXtYvecYI/AAAAAAAAAQs/lIhN-Lk7p9o/Rowan%20Violet%20and%20Me.jpg?imgmax=640" /></author><thr:total>0</thr:total><feedburner:origLink>http://robertsmyth.blogspot.com/2009/11/iprod-retro-cool.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIBSH88eip7ImA9WxNWGUk.&quot;"><id>tag:blogger.com,1999:blog-5483979277160872058.post-6613301301102289309</id><published>2009-10-19T21:34:00.001+11:00</published><updated>2009-10-19T21:35:59.172+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-19T21:35:59.172+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Software Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Software Testing" /><title>NMate - Missing In Action?</title><content type="html">Anybody know were to download NMate? There seems to be plenty of download links but not work. Sounds like a useful NUnit application.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5483979277160872058-6613301301102289309?l=robertsmyth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://robertsmyth.blogspot.com/feeds/6613301301102289309/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5483979277160872058&amp;postID=6613301301102289309" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/6613301301102289309?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/6613301301102289309?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RobSmyth/~3/ZyumPA-hyd4/nmate-missing-in-action.html" title="NMate - Missing In Action?" /><author><name>Rob Smyth</name><uri>http://www.blogger.com/profile/11185396487990038093</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh4.google.com.au/Wobbit42/RsgXtYvecYI/AAAAAAAAAQs/lIhN-Lk7p9o/Rowan%20Violet%20and%20Me.jpg?imgmax=640" /></author><thr:total>2</thr:total><feedburner:origLink>http://robertsmyth.blogspot.com/2009/10/nmate-missing-in-action.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkECQH8-eip7ImA9WxNWEEo.&quot;"><id>tag:blogger.com,1999:blog-5483979277160872058.post-6916949817268198875</id><published>2009-10-09T18:40:00.004+11:00</published><updated>2009-10-09T18:51:01.152+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-09T18:51:01.152+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Software Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><title>Source Code Outliner PowerToy</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_E5PBVFyg_GA/Ss7q1qhCIbI/AAAAAAAAA0I/kpapQQ6QY2U/s1600-h/SourceCodeOutliner.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 262px;" src="http://1.bp.blogspot.com/_E5PBVFyg_GA/Ss7q1qhCIbI/AAAAAAAAA0I/kpapQQ6QY2U/s320/SourceCodeOutliner.png" alt="" id="BLOGGER_PHOTO_ID_5390504011675869618" border="0" /&gt;&lt;/a&gt;Another useful, and free, VS2008 tool &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/bea9ed59-8857-4032-9666-9af1c1a33969"&gt;Source Code Outliner PowerToy&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Why install? Well it is free, painless (negligable learning curve), and it helps.&lt;br /&gt;&lt;br /&gt;Install it and go to the menu View | Other | Source Code Outliner Power Toy’. Then drag the window to dock into your Visual Studio IDE (see picture). Now you can forget about about it .. it adds more convieniant navigation that offered by the standard IDE drop downs.&lt;br /&gt;&lt;br /&gt;Not a killer app, but nice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5483979277160872058-6916949817268198875?l=robertsmyth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://robertsmyth.blogspot.com/feeds/6916949817268198875/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5483979277160872058&amp;postID=6916949817268198875" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/6916949817268198875?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/6916949817268198875?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RobSmyth/~3/JVI-DcorTJ0/source-code-outliner-powertoy.html" title="Source Code Outliner PowerToy" /><author><name>Rob Smyth</name><uri>http://www.blogger.com/profile/11185396487990038093</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh4.google.com.au/Wobbit42/RsgXtYvecYI/AAAAAAAAAQs/lIhN-Lk7p9o/Rowan%20Violet%20and%20Me.jpg?imgmax=640" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_E5PBVFyg_GA/Ss7q1qhCIbI/AAAAAAAAA0I/kpapQQ6QY2U/s72-c/SourceCodeOutliner.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://robertsmyth.blogspot.com/2009/10/source-code-outliner-powertoy.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkADQnszeCp7ImA9WxNXGUU.&quot;"><id>tag:blogger.com,1999:blog-5483979277160872058.post-3998937756440348428</id><published>2009-10-08T18:48:00.003+11:00</published><updated>2009-10-08T18:59:33.580+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-08T18:59:33.580+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Software Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><title>PowerCommands for Visual Studio 2008</title><content type="html">I came accross &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/df3f0c30-3d37-4e06-9ef8-3bff3508be31"&gt;'PowerCommands for Visual Studio 2008'&lt;/a&gt;. It looks to me like one those free tools that you 'just should' have. Not a killer app, but no cost, no learning curve, and it makes life easier. The 'Collapse All' command, which collapses all projects in the solution explorer alone makes it worthwhile. I'm liking it already.&lt;br /&gt;&lt;br /&gt;Edit Project File looks real useful if you have embedded MSBuild community tasks.&lt;br /&gt;&lt;br /&gt;Hmmm ...'Undo Closed' looks interesting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5483979277160872058-3998937756440348428?l=robertsmyth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://robertsmyth.blogspot.com/feeds/3998937756440348428/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5483979277160872058&amp;postID=3998937756440348428" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/3998937756440348428?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/3998937756440348428?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RobSmyth/~3/YIMbpoHiAQA/powercommands-for-visual-studio-2008.html" title="PowerCommands for Visual Studio 2008" /><author><name>Rob Smyth</name><uri>http://www.blogger.com/profile/11185396487990038093</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh4.google.com.au/Wobbit42/RsgXtYvecYI/AAAAAAAAAQs/lIhN-Lk7p9o/Rowan%20Violet%20and%20Me.jpg?imgmax=640" /></author><thr:total>2</thr:total><feedburner:origLink>http://robertsmyth.blogspot.com/2009/10/powercommands-for-visual-studio-2008.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQNQXoyeSp7ImA9WxNXF08.&quot;"><id>tag:blogger.com,1999:blog-5483979277160872058.post-7221599357638929374</id><published>2009-10-05T18:25:00.004+11:00</published><updated>2009-10-05T18:39:50.491+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-05T18:39:50.491+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Humorous" /><category scheme="http://www.blogger.com/atom/ns#" term="Personal" /><title>I'm Too Young For The Internet</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_E5PBVFyg_GA/SsmgM3G-ksI/AAAAAAAAA0A/0PqM3tTsmFM/s1600-h/Not18.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 195px;" src="http://1.bp.blogspot.com/_E5PBVFyg_GA/SsmgM3G-ksI/AAAAAAAAA0A/0PqM3tTsmFM/s320/Not18.jpg" alt="" id="BLOGGER_PHOTO_ID_5389014571937600194" border="0" /&gt;&lt;/a&gt;I'm trying to sign up for an aaNet ADSL account and got the attached error.&lt;br /&gt;&lt;br /&gt;I'm chuffed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"I need my mummy"&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5483979277160872058-7221599357638929374?l=robertsmyth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://robertsmyth.blogspot.com/feeds/7221599357638929374/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5483979277160872058&amp;postID=7221599357638929374" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/7221599357638929374?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/7221599357638929374?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RobSmyth/~3/SvN1HWb4yio/im-too-young-for-internet.html" title="I'm Too Young For The Internet" /><author><name>Rob Smyth</name><uri>http://www.blogger.com/profile/11185396487990038093</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh4.google.com.au/Wobbit42/RsgXtYvecYI/AAAAAAAAAQs/lIhN-Lk7p9o/Rowan%20Violet%20and%20Me.jpg?imgmax=640" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_E5PBVFyg_GA/SsmgM3G-ksI/AAAAAAAAA0A/0PqM3tTsmFM/s72-c/Not18.jpg" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://robertsmyth.blogspot.com/2009/10/im-too-young-for-internet.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUAEQn46eyp7ImA9WxNSGEU.&quot;"><id>tag:blogger.com,1999:blog-5483979277160872058.post-2660386806814811482</id><published>2009-09-02T19:24:00.002+10:00</published><updated>2009-09-02T19:28:23.013+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-02T19:28:23.013+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Software Development" /><title>Gimmie - Mimo Mini USB Monitor</title><content type="html">I want one! USB powered with touch screen. Yum. Check it out &lt;a href="http://www.thinkgeek.com/computing/usb-gadgets/bfa3/?cpg=101H"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;What a great solution for a build box light, or context shortcuts like build and test, deploy, show me the weather radar.&lt;br /&gt;&lt;br /&gt;Just a wonderful solution looking for a problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5483979277160872058-2660386806814811482?l=robertsmyth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://robertsmyth.blogspot.com/feeds/2660386806814811482/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5483979277160872058&amp;postID=2660386806814811482" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/2660386806814811482?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/2660386806814811482?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RobSmyth/~3/DxzAHomzadU/gimmie-mimo-mini-usb-monitor.html" title="Gimmie - Mimo Mini USB Monitor" /><author><name>Rob Smyth</name><uri>http://www.blogger.com/profile/11185396487990038093</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh4.google.com.au/Wobbit42/RsgXtYvecYI/AAAAAAAAAQs/lIhN-Lk7p9o/Rowan%20Violet%20and%20Me.jpg?imgmax=640" /></author><thr:total>1</thr:total><feedburner:origLink>http://robertsmyth.blogspot.com/2009/09/gimmie-mimo-mini-usb-monitor.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMEQHc8fSp7ImA9WxNSF0w.&quot;"><id>tag:blogger.com,1999:blog-5483979277160872058.post-1509515158450307903</id><published>2009-08-31T19:00:00.005+10:00</published><updated>2009-08-31T19:20:01.975+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-31T19:20:01.975+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Software Development" /><title>diagrammr - A Good Example Of Domain Language</title><content type="html">&lt;a href="http://diagrammr.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;diagrammr&lt;/span&gt;&lt;/a&gt; is a great  example of how domain language is so powerful. There are many good drawing packages that can do the same with drag and drop of objects and lines with arrows. Drag and drop seems so self evidently the simplest solution. But then  comes a nice app like &lt;a href="http://diagrammr.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;diagrammr&lt;/span&gt;&lt;/a&gt; that show that the four simple steps can be done in one for a particular application. Kinda a 'flat earth' discussion.&lt;br /&gt;&lt;br /&gt;If we can write code in a language that matches the domain how can we go wrong? I'm thinking using architects/designers to develop a language so that others can implement the application. Now that would be leveraging skills.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;I recently got a link to '&lt;/span&gt;&lt;a style="font-style: italic;" href="http://diagrammr.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;diagrammr&lt;/span&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;' from &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.blogger.com/nitinsknowledgeshare@googlegroups.com"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Nitins&lt;/span&gt; Knowledge Share&lt;/a&gt;&lt;span style="font-style: italic;"&gt; list.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5483979277160872058-1509515158450307903?l=robertsmyth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://robertsmyth.blogspot.com/feeds/1509515158450307903/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5483979277160872058&amp;postID=1509515158450307903" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/1509515158450307903?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5483979277160872058/posts/default/1509515158450307903?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RobSmyth/~3/JNKPwKZqhQE/diagrammr-example-of-power-of-domain.html" title="diagrammr - A Good Example Of Domain Language" /><author><name>Rob Smyth</name><uri>http://www.blogger.com/profile/11185396487990038093</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://lh4.google.com.au/Wobbit42/RsgXtYvecYI/AAAAAAAAAQs/lIhN-Lk7p9o/Rowan%20Violet%20and%20Me.jpg?imgmax=640" /></author><thr:total>0</thr:total><feedburner:origLink>http://robertsmyth.blogspot.com/2009/08/diagrammr-example-of-power-of-domain.html</feedburner:origLink></entry></feed>

