<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>@ Head</title><link>http://msmvps.com/blogs/bill/default.aspx</link><description>&lt;br /&gt; Bill&amp;#39;s random thoughts...</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Old age +1</title><link>http://msmvps.com/blogs/bill/archive/2009/12/22/old-age-1.aspx</link><pubDate>Tue, 22 Dec 2009 04:52:51 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1747125</guid><dc:creator>bill</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/bill/rsscomments.aspx?PostID=1747125</wfw:commentRss><comments>http://msmvps.com/blogs/bill/archive/2009/12/22/old-age-1.aspx#comments</comments><description>&lt;p&gt;Well the verdict is in, the reason I couldn’t read the bottle of beer label (amongst other things) is due to &lt;a href="http://en.wikipedia.org/wiki/Presbyopia" target="_blank"&gt;presbyopia&lt;/a&gt;… or in other words kind of average for someone in their forties ;)&lt;/p&gt;  &lt;p&gt;The good news is my eyes are only slightly different in strength from each other so looks like I can get by with off the shelf 1.00’s for now. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1747125" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/bill/archive/tags/Life/default.aspx">Life</category></item><item><title>Do I need glasses ?</title><link>http://msmvps.com/blogs/bill/archive/2009/12/21/do-i-need-glasses.aspx</link><pubDate>Mon, 21 Dec 2009 04:07:56 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1746937</guid><dc:creator>bill</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/bill/rsscomments.aspx?PostID=1746937</wfw:commentRss><comments>http://msmvps.com/blogs/bill/archive/2009/12/21/do-i-need-glasses.aspx#comments</comments><description>&lt;p&gt;If I can’t read the small print on a bottle of beer does that mean I need glasses ??????&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1746937" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/bill/archive/tags/Life/default.aspx">Life</category></item><item><title>ElementAtOrDefault</title><link>http://msmvps.com/blogs/bill/archive/2009/12/15/elementatordefault.aspx</link><pubDate>Tue, 15 Dec 2009 01:40:17 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1745625</guid><dc:creator>bill</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/bill/rsscomments.aspx?PostID=1745625</wfw:commentRss><comments>http://msmvps.com/blogs/bill/archive/2009/12/15/elementatordefault.aspx#comments</comments><description>&lt;p&gt;VB 9 or later has a particular &lt;em&gt;feature&lt;/em&gt; that can make life easier in some circumstances: the compiler allows you to access indexed items on non indexed enumerables.&amp;#160;&amp;#160; Let’s say you have code such as:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Dim items as IEnumerable(Of String)     &lt;br /&gt;. . . .      &lt;br /&gt;For i = 0 to items.Count - 1      &lt;br /&gt;&amp;#160;&amp;#160; Debug.Print items(i)      &lt;br /&gt;Next&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;VB will compile that for you. The Count is an extension method that loops through the list to determine the count; luckily VB calls that only once. The real killer though is&lt;strong&gt; items(i)&lt;/strong&gt; is actually compiled as &lt;strong&gt;items.ElementAtOrDefault(i). &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The &lt;strong&gt;ElementAtOrDefault&lt;/strong&gt; extension tries to cast the IEnumerable(Of T) to an IList(Of T); if the IEnumerable isn’t actually an IList, it loops through the collection, returning at the given index. As you can imagine this would get extremely slow for large lists especially inside a loop.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The Good:&lt;/strong&gt;    &lt;br /&gt;&amp;#160;&amp;#160; If your IEnumerable is in fact an IList, such as a List(Of T), then the compiler magically adding this extension call makes life a little easier as you don’t have to cast to IList yourself.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The BAD:     &lt;br /&gt;&lt;/strong&gt;&amp;#160;&amp;#160; You have to be really careful when doing any code maintenance, especially if you change an IEnumerable source to a different collection base that doesn’t implement IList(Of T). You can end up writing really bad, slow code really easily.    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;I got bitten by the bad, but I caught it immediately as I was curious about the collection base I was using.&amp;#160; In my particular case I had swapped an List(Of T) out with a ConcurrentBag(Of T). ConcurrentBag(Of T) basically uses linked lists where each item is stored as a node. Each node has a previous and next node; the list has a head and a tail. I thought it strange that ConcurrentBag would have an indexer given that would force walking through the nodes. I went to change the items(i) to items.Item(i) and BINGO it wouldn’t compile.&lt;/p&gt;  &lt;p&gt;Possible best practices to avoid being bitten by this:&lt;/p&gt;  &lt;p&gt;(1) Use For Each loops, not indexers. Your code will be far more flexible/manageable&lt;/p&gt;  &lt;p&gt;(2) If you only want the first item, make it explicit by using First or FirstOrDefault extensions.&lt;/p&gt;  &lt;p&gt;(3) Try to do the explicit cast to IList(Of T) yourself and work with an IList(Of T) instead of an IEnumerable(Of T)&lt;/p&gt;  &lt;p&gt;(4) Consider explicitly using the Item property , eg: items.Item(0) instead of items(0)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I’m not really comfortable with having to use the Item property: hopefully practices 1 to 3 will alleviate the need for practice 4.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1745625" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/bill/archive/tags/VB/default.aspx">VB</category><category domain="http://msmvps.com/blogs/bill/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://msmvps.com/blogs/bill/archive/tags/DevCenter/default.aspx">DevCenter</category><category domain="http://msmvps.com/blogs/bill/archive/tags/VB10/default.aspx">VB10</category><category domain="http://msmvps.com/blogs/bill/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Saving and transferring customisations</title><link>http://msmvps.com/blogs/bill/archive/2009/11/25/saving-and-transferring-customisations.aspx</link><pubDate>Wed, 25 Nov 2009 03:54:10 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1742064</guid><dc:creator>bill</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/bill/rsscomments.aspx?PostID=1742064</wfw:commentRss><comments>http://msmvps.com/blogs/bill/archive/2009/11/25/saving-and-transferring-customisations.aspx#comments</comments><description>&lt;p&gt;I got an email from a reader last week asking about saving customisations in Visual Studio:&lt;/p&gt;  &lt;blockquote style="color:#7f7f7f;"&gt;   &lt;p&gt;Hi Bill&lt;/p&gt;    &lt;p&gt;I read an excellent article by you&lt;/p&gt;    &lt;p&gt;&lt;a href="http://visualstudiomagazine.com/Articles/2007/12/01/Customize-the-VB-IDE.aspx?Page=1"&gt;http://visualstudiomagazine.com/Articles/2007/12/01/Customize-the-VB-IDE.aspx?Page=1&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Just wondering if you know of a way to export those customisations so I can set up my computer at work restore after HDD fails and share my favorite settings with friends.&lt;/p&gt;    &lt;p&gt;Also would like to do same for my VBIDE customisations&lt;/p&gt;    &lt;p&gt;I have googled to no avail...... :-/ &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Well the good news is this is incredibly easy. On the Tools menu in Visual Studio you should see the “&lt;strong&gt;Import and Export Savings . . &lt;/strong&gt;.” command.&amp;#160; You can choose what groups of settings to import or export.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1742064" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/bill/archive/tags/VB/default.aspx">VB</category><category domain="http://msmvps.com/blogs/bill/archive/tags/VSM/default.aspx">VSM</category><category domain="http://msmvps.com/blogs/bill/archive/tags/DevCenter/default.aspx">DevCenter</category><category domain="http://msmvps.com/blogs/bill/archive/tags/VS2008/default.aspx">VS2008</category><category domain="http://msmvps.com/blogs/bill/archive/tags/CSharp/default.aspx">CSharp</category><category domain="http://msmvps.com/blogs/bill/archive/tags/.NET/default.aspx">.NET</category></item><item><title>IntPtr gets operators !!!</title><link>http://msmvps.com/blogs/bill/archive/2009/11/05/intptr-gets-operators.aspx</link><pubDate>Thu, 05 Nov 2009 01:48:27 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1737714</guid><dc:creator>bill</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/bill/rsscomments.aspx?PostID=1737714</wfw:commentRss><comments>http://msmvps.com/blogs/bill/archive/2009/11/05/intptr-gets-operators.aspx#comments</comments><description>&lt;p&gt;This seems so incredibly long overdue, but at last as of .NET 4, IntPtr has + and – operators added to it !!&lt;/p&gt;  &lt;p&gt;This means you can now easily write code such as :&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; Dim ptr As IntPtr &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; . . . .   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ptr += 4&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;this is great when dealing with offsets etc.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The actual implementation is kind of interesting. Here I’m seeing&amp;#160; the implementation as :&lt;/p&gt;  &lt;p&gt;&lt;font color="#4d6886"&gt;Public Shared &lt;b&gt;Operator&lt;/b&gt; &lt;b&gt;&lt;a href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:4.0.0.0:b77a5c561934e089/System.IntPtr/op_Subtraction(IntPtr,Int32):IntPtr"&gt;-&lt;/a&gt;&lt;/b&gt;(ByVal &lt;b&gt;pointer&lt;/b&gt; As &lt;/font&gt;&lt;a href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:4.0.0.0:b77a5c561934e089/System.IntPtr"&gt;&lt;font color="#4d6886"&gt;IntPtr&lt;/font&gt;&lt;/a&gt;&lt;font color="#4d6886"&gt;, ByVal &lt;b&gt;offset&lt;/b&gt; As &lt;/font&gt;&lt;a href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:4.0.0.0:b77a5c561934e089/System.Int32"&gt;&lt;font color="#4d6886"&gt;Integer&lt;/font&gt;&lt;/a&gt;&lt;font color="#4d6886"&gt;) As &lt;/font&gt;&lt;a href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:4.0.0.0:b77a5c561934e089/System.IntPtr"&gt;&lt;font color="#4d6886"&gt;IntPtr&lt;/font&gt;&lt;/a&gt;&lt;font color="#4d6886"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Return New &lt;/font&gt;&lt;a href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:4.0.0.0:b77a5c561934e089/System.IntPtr/.ctor(Int32)"&gt;&lt;font color="#4d6886"&gt;IntPtr&lt;/font&gt;&lt;/a&gt;&lt;font color="#4d6886"&gt;((&lt;/font&gt;&lt;a&gt;&lt;font color="#4d6886"&gt;pointer&lt;/font&gt;&lt;/a&gt;&lt;font color="#4d6886"&gt;.&lt;/font&gt;&lt;a href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:4.0.0.0:b77a5c561934e089/System.IntPtr/ToInt32():Int32"&gt;&lt;font color="#4d6886"&gt;ToInt32&lt;/font&gt;&lt;/a&gt;&lt;font color="#4d6886"&gt; - &lt;/font&gt;&lt;a&gt;&lt;font color="#4d6886"&gt;offset&lt;/font&gt;&lt;/a&gt;&lt;font color="#4d6886"&gt;))      &lt;br /&gt;End Function&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I guess this is because it is the 32 bit version of the library. Hopefully in the 64 bit version it calls on IntPtr.ToInt64 ;)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1737714" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/bill/archive/tags/VB/default.aspx">VB</category><category domain="http://msmvps.com/blogs/bill/archive/tags/DevCenter/default.aspx">DevCenter</category><category domain="http://msmvps.com/blogs/bill/archive/tags/VB10/default.aspx">VB10</category><category domain="http://msmvps.com/blogs/bill/archive/tags/CSharp/default.aspx">CSharp</category><category domain="http://msmvps.com/blogs/bill/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/bill/archive/tags/VS+10/default.aspx">VS 10</category></item><item><title>Windows Virtual PC now on MSDN</title><link>http://msmvps.com/blogs/bill/archive/2009/10/08/windows-virtual-pc-now-on-msdn.aspx</link><pubDate>Thu, 08 Oct 2009 04:23:01 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1730722</guid><dc:creator>bill</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/bill/rsscomments.aspx?PostID=1730722</wfw:commentRss><comments>http://msmvps.com/blogs/bill/archive/2009/10/08/windows-virtual-pc-now-on-msdn.aspx#comments</comments><description>&lt;p&gt;If you’ve got Windows 7 installed, the Windows Virtual PC for Windows 7 is now on MSDN subscriber downloads !!!&lt;/p&gt;  &lt;p&gt;I had the Release Candidate (RC) installed, so had to uninstall that first and reboot before installing the RTM release. All worked perfectly, and my VPC’s from the RC also are working fine :)&amp;#160; &lt;/p&gt;  &lt;p&gt;If you need to uninstall the RC you’ll find it listed under the “Programs and Features” window from Control Panel. Click on “View installed updates” top left of window, and you’ll find it listed under “Microsoft Windows”&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1730722" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/bill/archive/tags/VB/default.aspx">VB</category><category domain="http://msmvps.com/blogs/bill/archive/tags/DevCenter/default.aspx">DevCenter</category><category domain="http://msmvps.com/blogs/bill/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/bill/archive/tags/VS+10/default.aspx">VS 10</category><category domain="http://msmvps.com/blogs/bill/archive/tags/Windows+7/default.aspx">Windows 7</category></item><item><title>Windows crash recovery</title><link>http://msmvps.com/blogs/bill/archive/2009/09/24/windows-crash-recovery.aspx</link><pubDate>Thu, 24 Sep 2009 03:17:31 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1726113</guid><dc:creator>bill</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/bill/rsscomments.aspx?PostID=1726113</wfw:commentRss><comments>http://msmvps.com/blogs/bill/archive/2009/09/24/windows-crash-recovery.aspx#comments</comments><description>&lt;p&gt;Last night I accidentally pulled out the wrong power plugs, crashing my computer. For some reason this meant it wouldn’t start properly. I don’t quite get why that would mean it wouldn’t start as the hard disc didn’t fail, but none the less it wouldn’t : the computer would seemingly just hang and the keyboard was no longer responsive and its lights went out.&amp;#160;&amp;#160; The good news is that start-up offered a recovery, and that recovery fixed it and life is good again.&amp;#160; The thing to be aware of though is the recovery boot seemed to be hung for a long long time ; I’m talking like 20 minutes or half an hour.&amp;#160; &lt;/p&gt;  &lt;p&gt;If this happens to you, just be patient: it worked for me :)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1726113" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/bill/archive/tags/VB/default.aspx">VB</category><category domain="http://msmvps.com/blogs/bill/archive/tags/Rant/default.aspx">Rant</category><category domain="http://msmvps.com/blogs/bill/archive/tags/DevCenter/default.aspx">DevCenter</category><category domain="http://msmvps.com/blogs/bill/archive/tags/Windows+7/default.aspx">Windows 7</category></item><item><title>Updates on the Snippet Editor</title><link>http://msmvps.com/blogs/bill/archive/2009/09/03/updates-on-the-snippet-editor.aspx</link><pubDate>Thu, 03 Sep 2009 01:03:56 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1720398</guid><dc:creator>bill</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/bill/rsscomments.aspx?PostID=1720398</wfw:commentRss><comments>http://msmvps.com/blogs/bill/archive/2009/09/03/updates-on-the-snippet-editor.aspx#comments</comments><description>&lt;p&gt;First the good news :&lt;/p&gt;  &lt;p&gt;The February release of the &lt;a href="http://billmccarthy.com/Projects/Snippet_Editor/default.html"&gt;Snippet Editor&lt;/a&gt; has now had &lt;strong&gt;10,000&lt;/strong&gt; downloads !&lt;/p&gt;  &lt;p&gt;Now for bug fix news:&lt;/p&gt;  &lt;p&gt;There were a couple of issues with the paths per language.&amp;#160; A problem with Express Editions of Visual Studio occurred due to partial entries in the registry I didn’t for-see. Initial design and testing was done with full versions of Visual Studio, but I want to ensure that it does work with the express versions, that’s why the tool is standalone not an add-in.&amp;#160; So the good news is I have fixed those bugs (I think).&amp;#160; &lt;/p&gt;  &lt;p&gt;If you want those fixes you can use the original source from Feb and just &lt;a href="http://snippeteditor.codeplex.com/SourceControl/changeset/view/36425#391917"&gt;download the updated products.vb&lt;/a&gt; file. I’ll probably look at rolling this up into a new release in the not to distant future.&lt;/p&gt;  &lt;p&gt;Enjoy :)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1720398" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/bill/archive/tags/VB/default.aspx">VB</category><category domain="http://msmvps.com/blogs/bill/archive/tags/Whidbey/default.aspx">Whidbey</category><category domain="http://msmvps.com/blogs/bill/archive/tags/DevCenter/default.aspx">DevCenter</category><category domain="http://msmvps.com/blogs/bill/archive/tags/Snippets/default.aspx">Snippets</category><category domain="http://msmvps.com/blogs/bill/archive/tags/VS2008/default.aspx">VS2008</category><category domain="http://msmvps.com/blogs/bill/archive/tags/CSharp/default.aspx">CSharp</category><category domain="http://msmvps.com/blogs/bill/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/bill/archive/tags/VS+10/default.aspx">VS 10</category><category domain="http://msmvps.com/blogs/bill/archive/tags/XML/default.aspx">XML</category></item><item><title>Is C# unacceptable ?</title><link>http://msmvps.com/blogs/bill/archive/2009/09/03/is-c-unacceptable.aspx</link><pubDate>Thu, 03 Sep 2009 00:50:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1720397</guid><dc:creator>bill</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/bill/rsscomments.aspx?PostID=1720397</wfw:commentRss><comments>http://msmvps.com/blogs/bill/archive/2009/09/03/is-c-unacceptable.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;span style="font-size:small;"&gt;Well if you mark your methods as being &lt;strong&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;void&lt;/span&gt;&lt;/strong&gt; from the outset &amp;hellip;&amp;hellip;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1720397" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/bill/archive/tags/VB/default.aspx">VB</category><category domain="http://msmvps.com/blogs/bill/archive/tags/Rant/default.aspx">Rant</category><category domain="http://msmvps.com/blogs/bill/archive/tags/CSharp/default.aspx">CSharp</category><category domain="http://msmvps.com/blogs/bill/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Wild carrots</title><link>http://msmvps.com/blogs/bill/archive/2009/08/30/wild-carrots.aspx</link><pubDate>Sun, 30 Aug 2009 09:01:19 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1719260</guid><dc:creator>bill</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/bill/rsscomments.aspx?PostID=1719260</wfw:commentRss><comments>http://msmvps.com/blogs/bill/archive/2009/08/30/wild-carrots.aspx#comments</comments><description>&lt;p&gt;I managed to spend an hour in the veggie patch this afternoon. Was pulling a lot of big weeds really easily after the rain, getting the beds ready for spring :) &lt;/p&gt;  &lt;p&gt;And in amongst the weeds I found all these carrots which had self sown from my seed collecting last season:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://picasaweb.google.com.au/lh/photo/ZZOayufg9ik41hxkRehVqA?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_U-g1hUxYCKY/Spo-3bTqldI/AAAAAAAACkY/W2lLOP8K1CQ/s400/carrots%20Aug%202009.JPG" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;And they taste great !!!&amp;#160; :)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1719260" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/bill/archive/tags/Life/default.aspx">Life</category></item><item><title>In the garden: Aug 2009</title><link>http://msmvps.com/blogs/bill/archive/2009/08/19/in-the-garden-aug-2009.aspx</link><pubDate>Tue, 18 Aug 2009 13:35:07 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1716460</guid><dc:creator>bill</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/bill/rsscomments.aspx?PostID=1716460</wfw:commentRss><comments>http://msmvps.com/blogs/bill/archive/2009/08/19/in-the-garden-aug-2009.aspx#comments</comments><description>&lt;p&gt;The first signs of spring have sprung:&lt;/p&gt; &lt;a href="http://picasaweb.google.com.au/lh/photo/uVPbOB9D1R1uRExdQJZebA?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_U-g1hUxYCKY/Soqq1lT-5CI/AAAAAAAACjA/KTWjnBg2evg/s400/Aug%2009%20spring%20buds.JPG" alt="" /&gt;&lt;/a&gt;   &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;With the wild plums currently showing the most early blooms :&lt;/p&gt; &lt;a href="http://picasaweb.google.com.au/lh/photo/FOfh_8ihyATanoURiivAQw?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_U-g1hUxYCKY/Soqq_su8fqI/AAAAAAAACjE/7PlyupTwzLU/s400/Aug%2009%20plum%20blossoms.JPG" alt="" /&gt;&lt;/a&gt;   &lt;p&gt;There’s not a lot happening in the veggie patch, just some carrots and silverbeet mainly. One of the climbers around the garden is also in bloom (you can see some silver beet that was used for seed behind it):&lt;/p&gt; &lt;a href="http://picasaweb.google.com.au/lh/photo/19aehOMW6J2pVr-blG9akw?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_U-g1hUxYCKY/SoqqymsmFoI/AAAAAAAACi8/1m5O6ucn288/s400/Aug%2009%20climber.JPG" alt="" /&gt;&lt;/a&gt;   &lt;p&gt;The wattles are in stunning bloom at present: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://picasaweb.google.com.au/lh/photo/d1NIwMwYAyALGiuALieOxQ?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_U-g1hUxYCKY/SoqrTlLszlI/AAAAAAAACjU/AoP0usTEqeg/s400/Aug%2009%20wattle%203.JPG" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://picasaweb.google.com.au/lh/photo/MqdtXDmnlHUxmqjQsLxk9Q?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_U-g1hUxYCKY/SoqrZ-AfvxI/AAAAAAAACjY/Re1_1j5fLXY/s400/Aug%2009%20wattle%204.JPG" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://picasaweb.google.com.au/lh/photo/bf4lSmQlML-vcbpYpVKBmw?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_U-g1hUxYCKY/SoqrMoqO0GI/AAAAAAAACjQ/r1GKP78zVY4/s400/Aug%2009%20wattle%202.JPG" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://picasaweb.google.com.au/lh/photo/zCRsamSkvy6iL3511FiDTQ?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_U-g1hUxYCKY/SoqrFc766nI/AAAAAAAACjM/Kue0MbRxJMM/s400/Aug%2009%20wattle%201.JPG" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Blackwood beginning to bloom: &lt;/p&gt; &lt;a href="http://picasaweb.google.com.au/lh/photo/VpP-cBZQn2-i_SfeN_ZSXQ?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_U-g1hUxYCKY/SoqqqjD0vjI/AAAAAAAACi4/CEFyLkwEEMc/s400/Aug%2009%20blackwood.JPG" alt="" /&gt;&lt;/a&gt;   &lt;p&gt;&lt;/p&gt;  &lt;p&gt;And of course the proteas are also beginning to add some colour&lt;/p&gt;  &lt;p&gt;pink proteas:&lt;/p&gt; &lt;a href="http://picasaweb.google.com.au/lh/photo/b4TP-tjjC0Q10IUcJ06Z_A?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_U-g1hUxYCKY/Soqrezj4-zI/AAAAAAAACjc/DDNUYTI5zVU/s400/Aug%2009%20pink%20protea.JPG" alt="" /&gt;&lt;/a&gt;   &lt;p&gt;honey proteas&lt;/p&gt; &lt;a href="http://picasaweb.google.com.au/lh/photo/ypTja3Os-0r2MaMZvkGjJw?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_U-g1hUxYCKY/SoqriJnV2QI/AAAAAAAACjg/3k2IOZjTQ3o/s400/Aug%2009%20honey%20protea.JPG" alt="" /&gt;&lt;/a&gt;   &lt;p&gt;young king proteas&lt;/p&gt; &lt;a href="http://picasaweb.google.com.au/lh/photo/xi3bHiiRm-mfVMB0lAiFlA?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_U-g1hUxYCKY/SoqrlCe4L2I/AAAAAAAACjk/5yGnbktostU/s400/Aug%2009%20king%20protea.JPG" alt="" /&gt;&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1716460" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/bill/archive/tags/Life/default.aspx">Life</category></item><item><title>Screen-cast recording tools</title><link>http://msmvps.com/blogs/bill/archive/2009/08/17/screen-cast-recording-tools.aspx</link><pubDate>Sun, 16 Aug 2009 13:56:10 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1716165</guid><dc:creator>bill</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/bill/rsscomments.aspx?PostID=1716165</wfw:commentRss><comments>http://msmvps.com/blogs/bill/archive/2009/08/17/screen-cast-recording-tools.aspx#comments</comments><description>&lt;p&gt;Recently I got this email from Ted:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&lt;font face="Times New Roman"&gt;Hi Bill!&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;&lt;font face="Times New Roman"&gt;Love the snippet tool, it&amp;#39;s great!&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;&lt;font face="Times New Roman"&gt;I&amp;#39;m curious, what tool did you use to produce the screencast for the tool? The quality is awesome!&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;&lt;font face="Times New Roman"&gt;Thanks a lot!&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;&lt;font face="Times New Roman"&gt;Kind regards,&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;&lt;font face="Times New Roman"&gt;Ted&lt;/font&gt;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The answer to that is I used Camtasia Studio 5. It’s really easy to use and lots of options on output formats. And it will even produce the basic html file for you with the embedded video etc.&lt;/p&gt;  &lt;p&gt;Note: I really like Camtasia. I do also get it for free from the nice folks at &lt;a href="http://www.techsmith.com/" target="_blank"&gt;TechSmith&lt;/a&gt; as they value the contribution MVPs make to the community, and that makes it even easier to like :)&lt;/p&gt;  &lt;p&gt;An alternative worth looking at is Expression Encoder 3 Screen Capture which comes with &lt;a href="http://www.microsoft.com/expression/" target="_blank"&gt;Microsoft Expression&lt;/a&gt; 3. I’ve only given it a quick test drive and it seemed pretty good. Picking formats was a little daunting, but I got it to produce some good quality wmv files that were really good for the bandwidth (small file size). I haven’t driven it enough to find how to produce web files that embed the video; my guess is it would be more silverlight orientated. Still if you have a MSDN subscription that includes expression, it’s definitely worth a look at.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1716165" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/bill/archive/tags/VB/default.aspx">VB</category><category domain="http://msmvps.com/blogs/bill/archive/tags/DevCenter/default.aspx">DevCenter</category><category domain="http://msmvps.com/blogs/bill/archive/tags/Snippets/default.aspx">Snippets</category><category domain="http://msmvps.com/blogs/bill/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Colds and Flu</title><link>http://msmvps.com/blogs/bill/archive/2009/08/14/colds-and-flu.aspx</link><pubDate>Fri, 14 Aug 2009 02:21:57 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1715483</guid><dc:creator>bill</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/bill/rsscomments.aspx?PostID=1715483</wfw:commentRss><comments>http://msmvps.com/blogs/bill/archive/2009/08/14/colds-and-flu.aspx#comments</comments><description>&lt;p&gt;The last couple of weeks I’ve had what seems to be both a cold and the flu. In the process I learnt some things about them …&lt;/p&gt;  &lt;p&gt;First off, they spread easily. We had a two weekend fire line leadership course,&amp;#160; running from Friday after work till Sunday midday both weekends.&amp;#160; On the first week there was one person with a cold, and another with what was probably the flu. By the following week another six members of the class of twenty three had signs of a cold or similar.&lt;/p&gt;  &lt;p&gt;Me, I thought I had caught a cold the first week, and had the usual running nose symptoms etc. Then when I got back from the second weekend I got hit hard with a fever. That seemed to knock the cold symptoms away, but what I had left was the flu as characterised by strong fevers, complete lack of energy and muscle aches. In my particular case my thighs and calves were like they were burning really really hot.&amp;#160; I now know first hand the difference between cold and flu ;)&lt;/p&gt;  &lt;p&gt;After the first night of fever I thought I was pretty much right or at least getting better for the next couple of days only to be hit by fever again. Foolishly I though that was it and was out and about again the next day. That night the real fever hit and hit hard. My temp was at 40C for hours (I think that’s 104F in old talk). Probably the scary part of that was I wasn’t really sweating. The next day it was hovering more around 39, and at times some profuse sweating which at least meant things were still working ;)&amp;#160; All up it knocked me out for the best part of three days.&amp;#160; Btu I did learn about safe temperatures.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt; Above 40, it’s hospital time. &lt;/li&gt;    &lt;li&gt; 39 to 40: as long as it is fever it’s okay, just keep up fluids an try to reduce the temp a bit.     &lt;br /&gt; NOTE: if it is heat stroke this temp is too high and must be cooled.&lt;/li&gt;    &lt;li&gt;38 to 39 fever. Normally nothing to worry about&lt;/li&gt;    &lt;li&gt;37 to 38.&amp;#160; slightly warm (above 37.5 is considered mild fever, but is more like flushed IMO)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;So that’s been my fun for the last week or so.&amp;#160; One cool thing was I upgraded my main machine from Vista x64 to Windows 7 x64 whilst I wasn’t doing anything (more on that later).&lt;/p&gt;  &lt;p&gt;I’m still catching up with emails, may take me a day or two more yet.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1715483" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/bill/archive/tags/Life/default.aspx">Life</category></item><item><title>Expression 3 is on MSDN</title><link>http://msmvps.com/blogs/bill/archive/2009/07/27/expression-3-is-on-msdn.aspx</link><pubDate>Mon, 27 Jul 2009 08:01:58 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1710315</guid><dc:creator>bill</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/bill/rsscomments.aspx?PostID=1710315</wfw:commentRss><comments>http://msmvps.com/blogs/bill/archive/2009/07/27/expression-3-is-on-msdn.aspx#comments</comments><description>&lt;p&gt;With all the focus on Windows 7 RTM announcements, the availability of Expression 3 on the MSDN site last Thursday may have sneaked under folks radars.&amp;#160; &lt;a href="http://msdn.microsoft.com/subscriptions/downloads/default.aspx?PV=62:375:DVD:en:x86" target="_blank"&gt;For MSND subscribers, grab your copy of Expression 3.&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1710315" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/bill/archive/tags/VB/default.aspx">VB</category><category domain="http://msmvps.com/blogs/bill/archive/tags/DevCenter/default.aspx">DevCenter</category><category domain="http://msmvps.com/blogs/bill/archive/tags/Design/default.aspx">Design</category><category domain="http://msmvps.com/blogs/bill/archive/tags/VS+10/default.aspx">VS 10</category><category domain="http://msmvps.com/blogs/bill/archive/tags/Windows+7/default.aspx">Windows 7</category></item><item><title>Why Live Maps sucks compared to Google maps</title><link>http://msmvps.com/blogs/bill/archive/2009/04/30/why-live-maps-sucks-compared-to-google-maps.aspx</link><pubDate>Thu, 30 Apr 2009 07:22:52 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1691592</guid><dc:creator>bill</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/bill/rsscomments.aspx?PostID=1691592</wfw:commentRss><comments>http://msmvps.com/blogs/bill/archive/2009/04/30/why-live-maps-sucks-compared-to-google-maps.aspx#comments</comments><description>&lt;p&gt;The user experience of Live Maps completely sucks compared to Google Maps. It’s that bad I really don’t think they even bother testing it.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Live Maps experience:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;go to maps.live.com. Here it redirects to &lt;a title="http://maps.live.com.au/?" href="http://maps.live.com.au/?"&gt;http://maps.live.com.au/?&lt;/a&gt; which seems to fail to properly load every single time. Instead you have to hit refresh.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;the page loads with a script error :     &lt;br /&gt;Message: &amp;#39;dapMgr&amp;#39; is undefined      &lt;br /&gt;Line: 480      &lt;br /&gt;Char: 9      &lt;br /&gt;Code: 0      &lt;br /&gt;URI: &lt;a href="http://network.ninemsn.com.au/share/js/spac_adx.js"&gt;http://network.ninemsn.com.au/share/js/spac_adx.js       &lt;br /&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;as I scroll to zoom, the zoom ignores where my mouse is, meaning I have to often drag the map to centre it before continuing zooming     &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;once I have zoomed in, the map lacks allotment boundary details.     &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;the “aerial” view seems a lot older and a lot less detail compared to google     &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;there’s no context menu !!&amp;#160; I can’t right click and add a pushpin or get directions form or to there, instead I have to type in an address (how utterly lame !!)     &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;when I click on directions so as I can add an address, the map goes back to a view of Australia, meaning I lost all that zooming and scrolling I just did.     &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;If I can’t specify an address I’m rooted (as opposed to being routed &amp;lt;g&amp;gt;).&amp;#160; So I guess nearby addresses but then aren’t able to move them.     &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;I can’t re-route directions, instead I have to try to add stops.     &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;I can’t hide that directions pane&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Google Maps experience:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;No redirection. I get to choose if I use the .au one or not !!     &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Pages load first time without any script errors !! (OMG what were they thinking. How dare they actually test it !!)     &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;As I zoom in, the zoom centres on my mouse and gives me a visual indication it is doing that.&amp;#160; (a responsive UI. What the ???)     &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;the maps show lots of details including allotment boundaries. Aerial view is really good.     &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;I &lt;strong&gt;&lt;em&gt;can&lt;/em&gt;&lt;/strong&gt; right click.&amp;#160; OMG, a “context menu” : this app must have been written in the last 15 years !      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;I &lt;strong&gt;&lt;em&gt;can&lt;/em&gt;&lt;/strong&gt; add pushpins for directions From here and directions To here      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;I &lt;strong&gt;&lt;em&gt;can&lt;/em&gt;&lt;/strong&gt; re-route the journey simply by dragging the route line.&amp;#160; It seems these guys have heard of a mouse !!      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;I &lt;strong&gt;&lt;em&gt;can&lt;/em&gt;&lt;/strong&gt; hide the directions pane      &lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;That’s just a brief synopsis of the very obvious user experience.&amp;#160; I found Live Maps totally useless for planning my afternoon’s bike ride.&amp;#160; Seriously Microsoft if you are going to go to the bother and expense of licensing the maps and aerial images, of setting up servers etc, then you can at least try to compete.&amp;#160; At present it’s just a pathetic waste of money.&amp;#160; Say “yes you &lt;strong&gt;&lt;em&gt;can&lt;/em&gt;&lt;/strong&gt;” or go home.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1691592" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/bill/archive/tags/Life/default.aspx">Life</category><category domain="http://msmvps.com/blogs/bill/archive/tags/Rant/default.aspx">Rant</category></item><item><title>Iterators: a flag for simplification ?</title><link>http://msmvps.com/blogs/bill/archive/2009/04/21/iterators-a-flag-for-simplification.aspx</link><pubDate>Tue, 21 Apr 2009 02:02:16 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1689277</guid><dc:creator>bill</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/bill/rsscomments.aspx?PostID=1689277</wfw:commentRss><comments>http://msmvps.com/blogs/bill/archive/2009/04/21/iterators-a-flag-for-simplification.aspx#comments</comments><description>&lt;p&gt;A couple of months ago &lt;a href="http://msmvps.com/blogs/bill/archive/2009/02/02/iterators-in-vb-10.aspx" target="_blank"&gt;I blogged about iterators in VB&lt;/a&gt; (or the lack there-of), and pointed folks to &lt;a href="http://visualstudiomagazine.com/columns/article.aspx?editorialsid=2972" target="_blank"&gt;an article I wrote for Visual Studio magazine that provides snippets and templates to help with iterators in VB&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;One of the things I talk about in that article is often the use of iterators in C# code that I have seen is superfulous, especially given the LINQ libraries.&amp;#160; Yesterday I read &lt;a href="http://weblogs.asp.net/davidmccollough/archive/2009/04/19/covariant-generic-list.aspx" target="_blank"&gt;another example of this where the developer(s) had written a custom iterator instead of using a LINQ query&lt;/a&gt;. Their code required the defining of a generic class:     &lt;br /&gt;&lt;/p&gt;    &lt;blockquote&gt;     &lt;pre&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; EnumerableGeneric&amp;lt;TClass, TInterface&amp;gt; 
              : IEnumerable&amp;lt;TInterface&amp;gt; where TClass : TInterface
{
   &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; IList&amp;lt;TClass&amp;gt; list;

   &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; EnumerableGeneric(IList&amp;lt;TClass&amp;gt; list)
   {
      &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.list = list;
   }

   &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; IEnumerator&amp;lt;TInterface&amp;gt; GetEnumerator()
   {
      &lt;span style="color:#0000ff;"&gt;foreach&lt;/span&gt; (TClass item &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; list)
      {
         yield &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; item;
      }
   }

   IEnumerator IEnumerable.GetEnumerator()
   {
      &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.GetEnumerator();
   }
}&lt;/pre&gt;
  &lt;/blockquote&gt;


&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;And the example of using this required the calling code to instantiate an instance of this class:&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;pre&gt;MyMethod(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; EnumerableGeneric&amp;lt;ClassA, IClassInterface&amp;gt;(caInstance));&lt;/pre&gt;
  &lt;/blockquote&gt;


&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;A simpler alternative is to actually use LINQ, eg:&lt;/p&gt;

&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MyMethod(caInstance.Cast&amp;lt;IClassInterface&amp;gt;());&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;In VB talk I think it’s even more natural flowing: 
  &lt;br /&gt;

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; MyMethod(caInstance.Cast(Of IClassInterface))&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;It is in places like that I like the (Of T) syntax of VB a lot better, but some folks prefer a Cup&amp;lt;T&amp;gt; to a Cup(Of T)&amp;#160; .&amp;#160; The key point here is the use of “yield return” in C# is a good indicator that the code can often be replaced with far simpler LINQ constructs that reduce your LOC’s, and hence reduce your debugging and maintenance loads.&amp;#160; There will of course be times where there isn’t a simple LINQ replacement, but if you do ever come across custom iterators, do take pause to think about using LINQ.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1689277" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/bill/archive/tags/VB/default.aspx">VB</category><category domain="http://msmvps.com/blogs/bill/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://msmvps.com/blogs/bill/archive/tags/VB10/default.aspx">VB10</category><category domain="http://msmvps.com/blogs/bill/archive/tags/CSharp/default.aspx">CSharp</category><category domain="http://msmvps.com/blogs/bill/archive/tags/.NET/default.aspx">.NET</category></item><item><title>In the garden: Mid April 2009</title><link>http://msmvps.com/blogs/bill/archive/2009/04/18/in-the-garden-mid-april-2009.aspx</link><pubDate>Sat, 18 Apr 2009 03:43:22 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1688553</guid><dc:creator>bill</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/bill/rsscomments.aspx?PostID=1688553</wfw:commentRss><comments>http://msmvps.com/blogs/bill/archive/2009/04/18/in-the-garden-mid-april-2009.aspx#comments</comments><description>&lt;p&gt;Just a quick update. Lots of tomatoes at present. Picking a tray full every 3 days or so.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://picasaweb.google.com.au/lh/photo/K7XwTR2gbuCiJiR1pAwgNA?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_U-g1hUxYCKY/SelLs9VTujI/AAAAAAAACL4/gIu1vosdMpw/s400/Harvest%20Mid%20April%202009.JPG" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://picasaweb.google.com.au/lh/photo/51SRh4z5wtVEaRmxvZk8xA?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_U-g1hUxYCKY/SelLoMc20RI/AAAAAAAACLw/cN18PJAsjCo/s400/Tomatoes%20April%202009.JPG" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1688553" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/bill/archive/tags/Life/default.aspx">Life</category></item><item><title>The floppy: It’s back …….</title><link>http://msmvps.com/blogs/bill/archive/2009/04/01/the-floppy-it-s-back.aspx</link><pubDate>Wed, 01 Apr 2009 00:56:33 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1683589</guid><dc:creator>bill</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/bill/rsscomments.aspx?PostID=1683589</wfw:commentRss><comments>http://msmvps.com/blogs/bill/archive/2009/04/01/the-floppy-it-s-back.aspx#comments</comments><description>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://upload.wikimedia.org/wikipedia/en/thumb/7/7e/Floppy_disk_300_dpi.jpg/114px-Floppy_disk_300_dpi.jpg" alt="" /&gt; &lt;/p&gt;  &lt;p&gt;In breaking news today Microsoft announced it will be releasing Windows 7 and Office 2010 on floppy disk !&amp;#160; &lt;/p&gt;  &lt;p&gt;Microsoft said it heard complaints from customers that their old floppy drives were made obsolete because Microsoft didn’t release software on floppy disks.&amp;#160; They also heard complaints that people felt detached from the software installation process.&amp;#160; An alledged Microsoft spokesperson was said to have said “Bringing back the floppy disk means people will feel more involved, getting to change the disks as quick as the data can be read”.&lt;/p&gt;  &lt;p&gt;A leak form their product survey test data showed that one set of customers loved the 150 disk set for Windows 7. They loved that getting something substantially huge and heavy for their money.&amp;#160; Interestingly enough many of these people owned SUV’s or Hummers.&amp;#160; Another spokesperson said they hope to capture the excessive consumption market.&lt;/p&gt;  &lt;p&gt;A secret pilot program was run which had customers install an early beta of windows 7 using 142 floppy disks. Results were mixed with some people not being able to install due to a bad image format or read failure on the second last disk.&amp;#160; Microsoft said this was a problem with their quality control as they only tested the first 3 disks and the last disk in each set. Microsoft has apparently already fixed this problem and in the future they will also test the second last disk.&lt;/p&gt;  &lt;p&gt;Rumour has it Apple plans to go one better and bring out a retro model, which has not one floppy disc drive but two !&amp;#160; An unnamed apple fanatic said the plan is to give you that same interaction with the installation, but make it quicker by allowing you to have the next floppy in the other drive.&amp;#160; Plans also include making the disks all white, not just on the outside but as a bold fashion statement also on the inside. A leaked prototype showed some rounded corners as well, but currently only works with apple’s own drives.&lt;/p&gt;  &lt;p&gt;Microsoft is already planning to launch an advertising campaign showing how the Mac double floppy drive system costs more then twice as much. At the same time Microsoft is working with other hardware vendors to develop the auto floppy disk changer.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1683589" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/bill/archive/tags/Rant/default.aspx">Rant</category></item><item><title>In the garden: March 2009</title><link>http://msmvps.com/blogs/bill/archive/2009/03/30/in-the-garden-march-2009.aspx</link><pubDate>Mon, 30 Mar 2009 04:43:22 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1682835</guid><dc:creator>bill</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/bill/rsscomments.aspx?PostID=1682835</wfw:commentRss><comments>http://msmvps.com/blogs/bill/archive/2009/03/30/in-the-garden-march-2009.aspx#comments</comments><description>&lt;p&gt;It’s been a very strange season this year. A cold start, then some massive heat waves. autumn is shaping up to feel normal, and also lovely weather.&lt;/p&gt;  &lt;p&gt;The hot spells brought some veggies season to an early end: in particular beans and peas. But the good news is I got plenty of seed from them:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://picasaweb.google.com.au/lh/photo/8jpGamWqzVSU1rdx2dd2tw?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_U-g1hUxYCKY/SdBJxQxjvmI/AAAAAAAACKU/AjB-idkZsD0/s400/seeds%20March%202009.JPG" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;That’s beetroot seed, garlic cloves, broad beans, carrot seed, bush beans and mixed snow pea seeds.&amp;#160; I need not worry about the seed viability as many of them have self sown with nice crops of beans, broad beans, slenderette beans and carrots on the way.&amp;#160; This adds to the wild lots of potatoes, silver beet, lettuce, beetroot and parsley.&lt;/p&gt;  &lt;p&gt;The garden is remaining very self productive :)&lt;/p&gt;  &lt;p&gt;Tomatoes are in main season now:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://picasaweb.google.com.au/lh/photo/1mcg77IUIL7Ju6wNe742gw?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_U-g1hUxYCKY/SdBJ2ksWWwI/AAAAAAAACKg/WFVj_YJ13w4/s400/tomatoes%20March%202009.JPG" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;as well as the cherry tomatoes:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://picasaweb.google.com.au/lh/photo/BJt2egPx6n5amEP6OYrTAg?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_U-g1hUxYCKY/SdBJ7TbclmI/AAAAAAAACKo/p474lJxLUSM/s400/tomato%20cherry%20March%202009.JPG" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;and Tom Thumb tomatoes:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://picasaweb.google.com.au/lh/photo/VbdTwJKF9DNqY2dbpwXGsg?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_U-g1hUxYCKY/SdBJ_fz13CI/AAAAAAAACKw/KUaJKyKyOks/s400/tomato%20tom%20thumbs%20March%202009.JPG" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;And what would tomatoes bee without lots of basil :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://picasaweb.google.com.au/lh/photo/BCfmC0hCyPMDHAKyRgZrxA?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_U-g1hUxYCKY/SdBJtWwMK6I/AAAAAAAACKM/7_E3Xp5LNFg/s400/Basil%20March%202009.JPG" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;I’m leaving a lot of the basil to go to seed this year as well. The bees are busy pollinating them at present. (see how many bees you can see in this photo :) )&lt;/p&gt;  &lt;p&gt;And there’s cucumbers (almost finished for the year) and lots of sweet corn.&amp;#160; I kept the early crop for seed as it was an older open pollinated variety with a rich flavour (like corn use to have) instead of these sweeter hybrids that are common these days.&amp;#160; The zucchini as slowing down. The capsicums are just starting… only had three or four so far.&lt;/p&gt;  &lt;p&gt;The pumpkins have gone crazy and are not only taking over half the veggie patch they are also climbing the fence and escaped onto the lawn. I grew some heirloom varieties this year along with the queesland blue that sprouted in the compost.&amp;#160; I’m not sure what the name of this one is, but despite the strange outer appearance it’s a nice eating pumpkin:   &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://picasaweb.google.com.au/lh/photo/ECeY0tzj-4D1TbLflLz-jQ?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_U-g1hUxYCKY/SdBKEzhKR9I/AAAAAAAACK4/cmEroqbaIXE/s400/pumpkin%20warty%20March%202009.JPG" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Elsewhere in the orchard it’s the end of the apples and the beginning of the pears. Chestnuts still a month or more away.&amp;#160; The apples and pears make lovely desert :)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1682835" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/bill/archive/tags/Life/default.aspx">Life</category></item><item><title>Microsoft: make VB like C#</title><link>http://msmvps.com/blogs/bill/archive/2009/03/19/microsoft-make-vb-like-c.aspx</link><pubDate>Thu, 19 Mar 2009 11:48:24 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1679464</guid><dc:creator>bill</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/bill/rsscomments.aspx?PostID=1679464</wfw:commentRss><comments>http://msmvps.com/blogs/bill/archive/2009/03/19/microsoft-make-vb-like-c.aspx#comments</comments><description>&lt;p&gt;I was reading yet another VB versus C# rant: I don’t want to get sucked into wading into that, but I will say that anyone who thinks folks that use VB can’t use C# has really got things back the front.&amp;#160; Most people who use VB can read and write C# quite well; they &lt;strong&gt;choose&lt;/strong&gt; VB knowing both.&amp;#160; Whereas so many C# developers I’ve met have absolutely no idea about VB or concepts such as declarative event handling etc, etc.&amp;#160; For them they don’t have the basis of choice.&amp;#160; &lt;/p&gt;  &lt;p&gt;The reason VB folk have to read and write in C# is because a lot of SDK’s etc are all in C# originally.&amp;#160; Even things like the enterprise library provide source code only in C#; this even after Soma promised to do better in regard to that.&amp;#160; So for VB folks there is a real need to learn C#.&lt;/p&gt;  &lt;p&gt;The big problem though is if you want to use C# source code in your VB project: you often have to re-write it or separate into different assemblies.&amp;#160; That’s not productive.&amp;#160; What I want is for VB to like C# and vice versa.&amp;#160; I don’t mean make them the same, I mean for them to &lt;strong&gt;like&lt;/strong&gt; each other; to get along well inside the same project.&amp;#160; I’d like to be able to add a C# class to my VB project and happily compile it.&amp;#160; And I bet some C# folk would love to have some concurrent basic or XML literals in their C# projects without all the current barriers.&lt;/p&gt;  &lt;p&gt;Maybe the talk of compilers as a service type thing will give us that true cross language project, where VB and C# like each other so much that they then are free to diverge again :)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1679464" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/bill/archive/tags/VB/default.aspx">VB</category><category domain="http://msmvps.com/blogs/bill/archive/tags/Rant/default.aspx">Rant</category><category domain="http://msmvps.com/blogs/bill/archive/tags/VB10/default.aspx">VB10</category><category domain="http://msmvps.com/blogs/bill/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/bill/archive/tags/VS+10/default.aspx">VS 10</category></item></channel></rss>