<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4359790563640175284</id><updated>2012-01-27T17:27:39.594-05:00</updated><title type='text'>Sharp Code</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>31</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-2731720557588975877</id><published>2009-10-23T14:45:00.001-04:00</published><updated>2009-10-23T14:45:02.563-04:00</updated><title type='text'>A bit of creepiness for Halloween</title><content type='html'>&lt;p&gt;I’ve got a new laptop with Windows 7.&amp;#160; Overall I’m pretty happy but it does seem to have some trouble staying connected to my home wireless network.&amp;#160; I went over to the Verizon website to see if there were any firmware upgrades for my modem/router and saw the following:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_r3LI-HiKtMI/SuH5o4xr_3I/AAAAAAAAAF8/cgxAtCdAgPI/s1600-h/agent1%5B2%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="agent1" border="0" alt="agent1" src="http://lh6.ggpht.com/_r3LI-HiKtMI/SuH5pPIQ2QI/AAAAAAAAAGA/iwzYzyQHMOg/agent1_thumb.png?imgmax=800" width="244" height="72" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This is just creepy because it alternates between the above and this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_r3LI-HiKtMI/SuH5p_ynIAI/AAAAAAAAAGE/36ZRJym2c3U/s1600-h/agent2%5B2%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="agent2" border="0" alt="agent2" src="http://lh5.ggpht.com/_r3LI-HiKtMI/SuH5qSVmRZI/AAAAAAAAAGI/WJY-qLtIC8Q/agent2_thumb.png?imgmax=800" width="244" height="86" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;and then it blinks:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_r3LI-HiKtMI/SuH5q7L4TlI/AAAAAAAAAGM/RYd-tuZp4co/s1600-h/agent3%5B2%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="agent3" border="0" alt="agent3" src="http://lh6.ggpht.com/_r3LI-HiKtMI/SuH5rdg_jqI/AAAAAAAAAGQ/Gfd2AI3iCzo/agent3_thumb.png?imgmax=800" width="244" height="87" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Creepy…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-2731720557588975877?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/2731720557588975877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=2731720557588975877' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/2731720557588975877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/2731720557588975877'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2009/10/bit-of-creepiness-for-halloween.html' title='A bit of creepiness for Halloween'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_r3LI-HiKtMI/SuH5pPIQ2QI/AAAAAAAAAGA/iwzYzyQHMOg/s72-c/agent1_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-3319619770380733074</id><published>2009-06-25T11:34:00.001-04:00</published><updated>2009-06-25T11:34:18.987-04:00</updated><title type='text'>Programmatically Changing Z-Order of DSL Shapes</title><content type='html'>&lt;p&gt;If you want to programmatically change the Z-Order of a shape in a Visual Studio based DSL, don’t even bother trying to change the ZOrder property.&amp;#160; Rather, get the shape’s parent and change the order of the items in the NestedChildShapes collection.&lt;/p&gt;  &lt;p&gt;This isn’t very well documented and a Google &lt;a href="http://www.google.com/search?hl=en&amp;amp;q=zorder+dsl+change&amp;amp;aq=f&amp;amp;oq=&amp;amp;aqi=" target="_blank"&gt;search&lt;/a&gt; using “zorder dsl change” doesn’t really pull up much useful information.&amp;#160; However (somewhat to my surprise) a Bing &lt;a href="http://www.bing.com/search?q=zorder+dsl+change&amp;amp;form=QBLH" target="_blank"&gt;search&lt;/a&gt; using the same term turns up the &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/0f671b88-ae34-4eb5-a96f-d9455594c07c/" target="_blank"&gt;answer&lt;/a&gt; as the first result.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-3319619770380733074?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/3319619770380733074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=3319619770380733074' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/3319619770380733074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/3319619770380733074'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2009/06/programmatically-changing-z-order-of.html' title='Programmatically Changing Z-Order of DSL Shapes'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-3811799919381952762</id><published>2009-06-10T14:03:00.000-04:00</published><updated>2009-06-10T14:36:01.392-04:00</updated><title type='text'>How to Dynamically Customize the Property Window</title><content type='html'>&lt;p&gt;The on-line help for the Microsoft Visual Studio Domain-Specific Language (DSL) tools &lt;a href="http://msdn.microsoft.com/library/cc512860.aspx" target="_blank"&gt;explains&lt;/a&gt; how to prevent domain properties from appearing in the properties window:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;You can prevent domain properties from appearing in the Properties window by setting the Is Browsable property to &lt;b&gt;False&lt;/b&gt;. The Is Property Browsable property is available on domain roles.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;However, this is a compile-time configuration.&amp;#160; This does not work if you need to optionally display a property based on some runtime state information.&lt;/p&gt;  &lt;p&gt;Fortunately, a bit of digging with the most excellent &lt;a href="http://www.red-gate.com/products/reflector/" target="_blank"&gt;Reflector&lt;/a&gt; tool shows that the Microsoft.VisualStudio.Modeling.Design.ElementTypeDescriptor has a virtual method, ShouldCreatePropertyDescriptor, that can be overridden.&lt;/p&gt;  &lt;p&gt;Suppose you have a domain class Person with the properties IsMarried and WeddingDate.&amp;#160; You want the WeddingDate property to show in the property window only if the IsMarried property is true.&lt;/p&gt;  &lt;p&gt;First, create a ElementTypeDescriptionProvider for the Person domain class:&lt;/p&gt;  &lt;p&gt;&lt;span style="color: blue"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;PersonTypeDescriptorProvider&lt;/span&gt; :&amp;#160; &lt;span style="color: #2b91af"&gt;ElementTypeDescriptorProvider&lt;/span&gt;&amp;#160;&amp;#160;&amp;#160; { }&lt;/p&gt;  &lt;p&gt;Now, override the CreateTypeDescriptor() method to create a custom type descriptor named PersonTypeDescriptor:&lt;/p&gt;  &lt;div style="font-family: consolas; background: white; color: black; font-size: 10pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;PersonTypeDescriptorProvider&lt;/span&gt; : &lt;span style="color: #2b91af"&gt;ElementTypeDescriptionProvider&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;&amp;#160;&amp;#160; &lt;/span&gt;{&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;protected&lt;/span&gt; &lt;span style="color: blue"&gt;override&lt;/span&gt; &lt;span style="color: #2b91af"&gt;ElementTypeDescriptor&lt;/span&gt; &lt;span style="color: #140014"&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #140014"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CreateTypeDescriptor&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;ICustomTypeDescriptor&lt;/span&gt; p&lt;span style="color: #140014"&gt;arent&lt;/span&gt;, &lt;span style="color: #2b91af"&gt;ModelElement&lt;/span&gt; &lt;span style="color: #140014"&gt;element&lt;/span&gt;)&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&amp;#160; {&lt;span style="color: blue"&gt;return&lt;/span&gt; &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;PersonTypeDescriptor&lt;/span&gt;(&lt;span style="color: #140014"&gt;parent&lt;/span&gt;, &lt;span style="color: #140014"&gt;element&lt;/span&gt;);}&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;&amp;#160;&amp;#160; &lt;/span&gt;}&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Using the designer, select the Person domain class and a custom attribute of the type TypeDescriptionProvider passing the PersonTypeDescriptorProvider type to its constructor.&lt;/p&gt;  &lt;p&gt;Now create the PersonTypeDescriptor class:&lt;/p&gt;  &lt;p&gt;&lt;span style="color: blue"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;PersonTypeDescriptor&lt;/span&gt; : &lt;span style="color: #2b91af"&gt;ElementTypeDescriptor&lt;/span&gt;&lt;/p&gt;  &lt;div style="font-family: consolas; background: white; color: black; font-size: 10pt"&gt;   &lt;p style="margin: 0px"&gt;{&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: #140014"&gt;PersonTypeDescriptor&lt;/span&gt;(&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #2b91af"&gt;ICustomTypeDescriptor&lt;/span&gt; &lt;span style="color: #140014"&gt;parent&lt;/span&gt;, &lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #2b91af"&gt;ModelElement&lt;/span&gt; &lt;span style="color: #140014"&gt;element&lt;/span&gt;) :&lt;span style="color: blue"&gt;base&lt;/span&gt;(&lt;span style="color: #140014"&gt;parent&lt;/span&gt;, &lt;span style="color: #140014"&gt;element&lt;/span&gt;)&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin: 0px"&gt;}&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Finally, override ShouldCreatePropertyDescriptor method:&lt;/p&gt;  &lt;p&gt;&lt;span style="color: blue"&gt;protected&lt;/span&gt; &lt;span style="color: blue"&gt;override&lt;/span&gt; &lt;span style="color: blue"&gt;bool&lt;/span&gt; &lt;span style="color: #140014"&gt;ShouldCreatePropertyDescriptor&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;ModelElement&lt;/span&gt; &lt;span style="color: #140014"&gt;requestor&lt;/span&gt;, &lt;span style="color: #2b91af"&gt;DomainPropertyInfo&lt;/span&gt; &lt;span style="color: #140014"&gt;domainProperty&lt;/span&gt;)&lt;/p&gt;  &lt;div style="font-family: consolas; background: white; color: black; font-size: 10pt"&gt;   &lt;p style="margin: 0px"&gt;{&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;if&lt;/span&gt; (&lt;span style="color: #140014"&gt;domainProperty&lt;/span&gt;.&lt;span style="color: #140014"&gt;Name&lt;/span&gt; == &lt;span style="color: #a31515"&gt;&amp;quot;WeddingDate&amp;quot;&lt;/span&gt;)&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;return&lt;/span&gt; ((&lt;span style="color: #2b91af"&gt;Person&lt;/span&gt;)&lt;span style="color: #140014"&gt;requestor&lt;/span&gt;).&lt;span style="color: #140014"&gt;IsMarried&lt;/span&gt;;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;return&lt;/span&gt; &lt;span style="color: blue"&gt;base&lt;/span&gt;.&lt;span style="color: #140014"&gt;ShouldCreatePropertyDescriptor&lt;/span&gt;(&lt;span style="color: #140014"&gt;requestor&lt;/span&gt;, &lt;span style="color: #140014"&gt;domainProperty&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;}&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;It’s as simple as that.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-3811799919381952762?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/3811799919381952762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=3811799919381952762' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/3811799919381952762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/3811799919381952762'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2009/06/how-to-dynamically-customize-property.html' title='How to Dynamically Customize the Property Window'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-1698562157112871988</id><published>2009-05-06T11:13:00.001-04:00</published><updated>2009-05-06T11:13:52.982-04:00</updated><title type='text'>A Remote Desktop Feature Request</title><content type='html'>&lt;p&gt;Typically, I have several remote desktop sessions going at the same time on my desktop.&amp;#160; Within these remote sessions I might be running different applications or monitoring something.&amp;#160; I’d really like it if Remote Desktop supported a feature similar to VMWare’s Unity mode.&amp;#160;&amp;#160; It would be really cool if I could point to an application window on a remote desktop and “unify” it with my main desktop.&lt;/p&gt;  &lt;p&gt;Does anyone know of a 3rd party utility that makes this possible?&amp;#160; If so, answer &lt;a href="http://stackoverflow.com/questions/830101/unity-mode-for-remote-desktop" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-1698562157112871988?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/1698562157112871988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=1698562157112871988' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/1698562157112871988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/1698562157112871988'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2009/05/remote-desktop-feature-request.html' title='A Remote Desktop Feature Request'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-2073887219171295007</id><published>2008-12-17T11:46:00.001-05:00</published><updated>2008-12-17T11:46:52.504-05:00</updated><title type='text'>The Great Ice Storm of 2008</title><content type='html'>&lt;p&gt;This is probably one of thousands of blogs noting that without the modern convenience of electricity life is a bit unusual.&lt;/p&gt;  &lt;p&gt;We lost power last Thursday night and won't see it again until this coming Saturday &lt;em&gt;at the earliest&lt;/em&gt;.&amp;#160; So far, it's five days without power and counting...&lt;/p&gt;  &lt;p&gt;It's cold and snowy with major snow storms forecast for this coming Friday and Sunday.&amp;#160;&amp;#160; This seems likely to add major delays to the power company estimates of when repairs will be complete.&lt;/p&gt;  &lt;p&gt;However, I count my blessings for friends and neighbors willing to lend a hand.&amp;#160; We've had someplace warm to sleep every night, a borrowed wood stove to keep the pipes in the house from freezing and with any luck we'll have a generator up and running this evening.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-2073887219171295007?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/2073887219171295007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=2073887219171295007' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/2073887219171295007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/2073887219171295007'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2008/12/great-ice-storm-of-2008.html' title='The Great Ice Storm of 2008'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-7597306785338344470</id><published>2008-10-17T09:01:00.001-04:00</published><updated>2008-10-17T09:01:53.339-04:00</updated><title type='text'>Enabling disabled performance counters</title><content type='html'>&lt;p&gt;Recently I wanted to use Performance Monitor to monitor the memory usage of a program while it was under stress.&amp;#160;&amp;#160; However, when I opened up perfmon and attempted to add performance counters this is what I encountered:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/Jeff.Stong/SPiMv36E-5I/AAAAAAAAAFM/hZZOtvLLKVg/s1600-h/snap%5B9%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="393" alt="snap" src="http://lh3.ggpht.com/Jeff.Stong/SPiMwInKrYI/AAAAAAAAAFQ/3hGdYD7hVbk/snap_thumb%5B5%5D.jpg?imgmax=800" width="390" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;It appears that there are no performance counters available.&lt;/p&gt;  &lt;p&gt;After a bit of searching I came up with this solution:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Run regedit&lt;/li&gt;    &lt;li&gt;Go to this key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib &lt;/li&gt;    &lt;li&gt;Set the &amp;quot;Disable Performance Counters&amp;quot; REG_DWORD value to zero.&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/4359790563640175284-7597306785338344470?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/7597306785338344470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=7597306785338344470' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/7597306785338344470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/7597306785338344470'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2008/10/enabling-disabled-performance-counters.html' title='Enabling disabled performance counters'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/Jeff.Stong/SPiMwInKrYI/AAAAAAAAAFQ/3hGdYD7hVbk/s72-c/snap_thumb%5B5%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-6811400338161995438</id><published>2008-09-25T08:27:00.001-04:00</published><updated>2008-09-25T08:27:45.031-04:00</updated><title type='text'>Shrink the size of the VMWare guest desktop icons</title><content type='html'>&lt;p&gt;I use VMWare on a daily basis to debug basis.&amp;#160;&amp;#160; While my host OS is run with two monitors set at their highest resolution, I typically run the guest OS at 800x600.&amp;#160; This way, the guest OS only occupies part of one of the host monitors making it easy to drag and drop files from the host onto the guest desktop.&lt;/p&gt;  &lt;p&gt;As a result of all this dragging and dropping from the host, the desktop of my guest OS is typically littered with icons for test applications, utilities etc.&amp;#160; Unfortunately, with a Windows Vista guest the icons can be rather large and rapidly fill the available area.&lt;/p&gt;  &lt;p&gt;Recently, there was a post on &lt;a href="http://blogs.msdn.com/oldnewthing" target="_blank"&gt;The Old New Thing&lt;/a&gt; blog that provided a solution to my problem.&amp;#160;&amp;#160;&amp;#160; The &lt;a href="http://blogs.msdn.com/oldnewthing/archive/2008/09/24/8963230.aspx" target="_blank"&gt;post&lt;/a&gt; describes two ways to change the size of the desktop icons on Windows Vista:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Click on the desktop, then hold the Control key while rotating the mouse wheel. &lt;/li&gt;    &lt;li&gt;Right-click on the desktop and choose an icon size from the View menu. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;For Windows Vista guests, at least, I can just scroll down the size of the icons to a size appropriate to an 800x600 desktop.&amp;#160; Problem solved!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-6811400338161995438?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/6811400338161995438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=6811400338161995438' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/6811400338161995438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/6811400338161995438'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2008/09/shrink-size-of-vmware-guest-desktop.html' title='Shrink the size of the VMWare guest desktop icons'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-2742124140804177722</id><published>2008-09-17T19:20:00.001-04:00</published><updated>2008-09-17T19:20:19.235-04:00</updated><title type='text'>VMWare Shared Folders and Sysinternals FileMon</title><content type='html'>&lt;p&gt;I use VMWare on a daily basis to develop, test and debug.&amp;#160; I also use tools from the &lt;a href="http://technet.microsoft.com/en-us/sysinternals/0e18b180-9b7a-4c49-8120-c47c5a693683.aspx" target="_blank"&gt;Sysinterals suite&lt;/a&gt; on nearly a daily basis.&amp;#160; Today, I ran into a gotcha with respect to VMWare &lt;a href="http://www.vmware.com/support/ws5/doc/ws_running_shared_folders.html" target="_blank"&gt;shared folders&lt;/a&gt; and Sysinternals &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb896642.aspx" target="_blank"&gt;Filemon&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;If you open a file using the shared folders UNC path (as describe &lt;a href="http://www.vmware.com/support/ws5/doc/ws_running_sharedfolder_viewing.html" target="_blank"&gt;here&lt;/a&gt;) FileMon won't see the file operations.&amp;#160; Fortunately, the more recently updated Sysinternals &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx" target="_blank"&gt;Process Monitor&lt;/a&gt; behaves as expected.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-2742124140804177722?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/2742124140804177722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=2742124140804177722' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/2742124140804177722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/2742124140804177722'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2008/09/vmware-shared-folders-and-sysinternals.html' title='VMWare Shared Folders and Sysinternals FileMon'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-2893214149350536515</id><published>2008-09-16T10:43:00.001-04:00</published><updated>2008-09-16T10:43:05.496-04:00</updated><title type='text'>Sysinternals Live is Live</title><content type='html'>&lt;p&gt;I have no idea how long this has been available but today when I was updating my &lt;a href="http://technet.microsoft.com/sysinternals/default.aspx" target="_blank"&gt;Sysinternals&lt;/a&gt; suite on my development system I noticed the following on the Sysinternals home page:&lt;/p&gt;  &lt;blockquote&gt;   &lt;h5&gt;Sysinternals Live&lt;/h5&gt;    &lt;p&gt;Sysinternals Live is a service that enables you to execute Sysinternals tools directly from the Web without hunting for and manually downloading them. Simply enter a tool&amp;#8217;s Sysinternals Live path into Windows Explorer or a command prompt as http://live.sysinternals.com/&amp;lt;toolname&amp;gt; or&amp;#160; \\live.sysinternals.com\tools\&amp;lt;toolname&amp;gt;. &lt;/p&gt;    &lt;p&gt;You can view the entire Sysinternals Live tools directory in a browser at &lt;a href="http://live.sysinternals.com"&gt;http://live.sysinternals.com&lt;/a&gt;.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This certainly wouldn't be the way one would choose to run ProcMon on a daily basis but in a pinch if you're debugging an issue on a test machine it's certainly useful.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-2893214149350536515?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/2893214149350536515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=2893214149350536515' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/2893214149350536515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/2893214149350536515'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2008/09/sysinternals-live-is-live.html' title='Sysinternals Live is Live'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-3842248072485268641</id><published>2008-09-12T15:22:00.001-04:00</published><updated>2008-09-12T15:22:32.071-04:00</updated><title type='text'>Debugging a Service on Vista with VMWare Virtual Debugger</title><content type='html'>&lt;p&gt;Note to self about using the VMWare Visual Studio Integrated Virtual Debugger to attach to a service running on a VMWare Vista guest OS --&lt;/p&gt;  &lt;p&gt;If you get the message similar to &amp;quot;Failed to attach to process&amp;quot; as below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/Jeff.Stong/SMrBY_oljBI/AAAAAAAAAFE/5gTZdatymgw/s1600-h/FailedToAttach%5B10%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="174" alt="FailedToAttach" src="http://lh3.ggpht.com/Jeff.Stong/SMrBdPPQ6GI/AAAAAAAAAFI/JJBSRXULCbw/FailedToAttach_thumb%5B6%5D.jpg?imgmax=800" width="381" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Don't forget to do the following in the Vista guest OS:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Turn off firewall&lt;/li&gt;    &lt;li&gt;Add logged in user to Administrators group&lt;/li&gt;    &lt;li&gt;Disable User Account Control (UAC) by clicking &amp;quot;User Accounts&amp;quot; on the Control Panel, typing &amp;quot;user&amp;quot; in the search box and then clicking &amp;quot;Turn User&amp;#160; Account Control (UAC) on or off&amp;quot;.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Fool me once shame on you Vista, fool me twice&amp;#160; shame on me -- I should have written this down the first time!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-3842248072485268641?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/3842248072485268641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=3842248072485268641' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/3842248072485268641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/3842248072485268641'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2008/09/debugging-service-on-vista-with-vmware.html' title='Debugging a Service on Vista with VMWare Virtual Debugger'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/Jeff.Stong/SMrBdPPQ6GI/AAAAAAAAAFI/JJBSRXULCbw/s72-c/FailedToAttach_thumb%5B6%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-7408308042507646248</id><published>2008-09-11T11:44:00.001-04:00</published><updated>2008-09-11T11:44:38.102-04:00</updated><title type='text'>Taxonomy of Exceptions</title><content type='html'>&lt;p&gt;&lt;a href="http://blogs.msdn.com/ericlippert/default.aspx" target="_blank"&gt;Eric Lippert&lt;/a&gt; offers an interesting &lt;a href="http://blogs.msdn.com/ericlippert/archive/2008/09/10/vexing-exceptions.aspx" target="_blank"&gt;taxonomy&lt;/a&gt; of exceptions:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Fatal&lt;/strong&gt; exceptions are &lt;em&gt;not your fault&lt;/em&gt;, you &lt;em&gt;cannot prevent them&lt;/em&gt;, and you &lt;em&gt;cannot sensibly clean up from them&lt;/em&gt;.&amp;#160; [...] &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Boneheaded&lt;/strong&gt; exceptions are &lt;em&gt;your own darn fault&lt;/em&gt;, you &lt;em&gt;could have prevented them&lt;/em&gt; and therefore &lt;em&gt;they are bugs in your code&lt;/em&gt;. [...] &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Vexing&lt;/strong&gt; exceptions are the result of &lt;em&gt;unfortunate design decisions&lt;/em&gt;.&amp;#160; [...] &lt;/p&gt;    &lt;p&gt;And finally, &lt;strong&gt;exogenous&lt;/strong&gt; exceptions [...] are the result of untidy external realities impinging upon your beautiful, crisp program logic.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;When I worked on &lt;a href="http://akamai.infoworld.com/Compuware_DevPartner_Fault_Simulator/product_57552.html?view=1&amp;amp;curNodeId=0&amp;amp;index=0" target="_blank"&gt;DevPartner Fault Simulator&lt;/a&gt; (now unfortunately discontinued) we dealt with understanding these kinds of exceptions both in code Fault Simulator analyzed and in our own code.&lt;/p&gt;  &lt;p&gt;As Eric points out,&amp;#160; writing good error handling code is hard in any language, whether you have exception handling or not.&amp;#160; I see far to much code that either simply ignores return values or overly aggressively catches exceptions.&amp;#160; Eric's taxonomy is a useful way to think about how your code should handle (or not) error conditions. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-7408308042507646248?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/7408308042507646248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=7408308042507646248' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/7408308042507646248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/7408308042507646248'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2008/09/taxonomy-of-exceptions.html' title='Taxonomy of Exceptions'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-4272181215937610557</id><published>2008-09-10T12:06:00.001-04:00</published><updated>2008-09-10T12:06:03.282-04:00</updated><title type='text'>Go Large Hadron Collider, Go!</title><content type='html'>&lt;p&gt;I've got to say, I think today's Google homepage image is awesome!&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.google.com/logos/lhc.gif" /&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-4272181215937610557?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/4272181215937610557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=4272181215937610557' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/4272181215937610557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/4272181215937610557'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2008/09/go-large-hadron-collider-go.html' title='Go Large Hadron Collider, Go!'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-8649848246150673920</id><published>2008-06-10T08:27:00.001-04:00</published><updated>2008-06-10T08:27:33.794-04:00</updated><title type='text'>Help Firefox set a Guinness World Record</title><content type='html'>&lt;p&gt;&lt;a href="http://www.spreadfirefox.com/en-US/worldrecord"&gt;&lt;img title="Download Day 2008" alt="Download Day 2008" src="http://www.spreadfirefox.com/sites/all/themes/spreadfirefox_RCS/images/download-day/buttons/en-US/180x150_02.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-8649848246150673920?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/8649848246150673920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=8649848246150673920' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/8649848246150673920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/8649848246150673920'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2008/06/help-firefox-set-guinness-world-record.html' title='Help Firefox set a Guinness World Record'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-7375588286582023987</id><published>2008-03-21T09:01:00.001-04:00</published><updated>2008-03-21T09:01:01.866-04:00</updated><title type='text'>The First Rule of Programming : It's Always Your Fault -- A Corollary</title><content type='html'>&lt;p&gt;Jeff Atwood, on the &lt;a href="http://www.codinghorror.com" target="_blank"&gt;CodingHorror&lt;/a&gt; blog, recently &lt;a href="http://www.codinghorror.com/blog/archives/001079.html" target="_blank"&gt;posted&lt;/a&gt; about taking ownership of your code by way of always assuming a problem is your fault:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;No matter what the problem is with your software-- maybe it's not even your code in the first place-- &lt;b&gt;always assume the problem is in your code&lt;/b&gt; and act accordingly. If you're going to subject the world to your software, take full responsibility for its failures. Even if, technically speaking, you don't have to.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I'll add just one more bit of advice:&lt;/p&gt;  &lt;p&gt;Assume that &lt;strong&gt;it's the last thing you changed&lt;/strong&gt; that caused the problem.&lt;/p&gt;  &lt;p&gt;(Source control systems make it relatively easy to find the breaking change by allowing you to progressively fetch earlier versions of the source code.&amp;#160; I usually employ a &lt;a href="http://en.wikipedia.org/wiki/Binary_search" target="_blank"&gt;binary search&lt;/a&gt; technique that lets me close in on the breaking change pretty quickly.)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-7375588286582023987?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/7375588286582023987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=7375588286582023987' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/7375588286582023987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/7375588286582023987'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2008/03/first-rule-of-programming-it-always.html' title='The First Rule of Programming : It&amp;#39;s Always Your Fault -- A Corollary'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-8759988885999127070</id><published>2008-02-22T16:59:00.001-05:00</published><updated>2008-02-22T16:59:47.749-05:00</updated><title type='text'>MIDL error: 'annotation'</title><content type='html'>&lt;p&gt;Recently, after upgrading Visual Studio 2005 Professional to Visual Studio 2005 Team Suite (1) I received these errors when building:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font size="1"&gt;unknwn.idl(108) : error MIDL2025 : syntax error : expecting ] or , near &amp;quot;annotation&amp;quot;        &lt;br /&gt;unknwn.idl(108) : error MIDL2026 : cannot recover from earlier syntax errors; aborting compilation &lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This &lt;a href="http://blogs.msdn.com/mikewasson/archive/2006/10/02/MIDL-error_3A00_-_2700_annotation_2700_.aspx" target="_blank"&gt;post&lt;/a&gt; has some advice that I suppose would have worked.&amp;#160; However, I found that opening the SDK command prompt and running 'vcintegrate' worked just as well.&lt;/p&gt;  &lt;p&gt;Follow these steps:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Start-&amp;gt;All Programs-&amp;gt;Windows SDK-&amp;gt;CMD Shell &lt;/li&gt;    &lt;li&gt;cd setup &lt;/li&gt;    &lt;li&gt;vcintegrate -i &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;-----------------------------------------&lt;/p&gt;  &lt;p&gt;(1) I just installed the latter over the former.&amp;#160; Perhaps I should have uninstalled Visual&amp;#160; Studio 2005 Professional first.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-8759988885999127070?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/8759988885999127070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=8759988885999127070' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/8759988885999127070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/8759988885999127070'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2008/02/midl-error.html' title='MIDL error: &amp;#39;annotation&amp;#39;'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-6874384327749730830</id><published>2008-02-21T12:33:00.002-05:00</published><updated>2008-02-21T12:35:40.154-05:00</updated><title type='text'>Programming Language Cheat Sheets</title><content type='html'>Here's a really useful &lt;a href="http://www.scottklarr.com/tag/cheat-sheets/"&gt;thing&lt;/a&gt; -- a list of cheat sheets for various programming languages like C++, C#, Ruby, etc.  I only which there was a cheat sheet for &lt;a href="http://research.microsoft.com/fsharp/fsharp.aspx"&gt;F#&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-6874384327749730830?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/6874384327749730830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=6874384327749730830' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/6874384327749730830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/6874384327749730830'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2008/02/programming-language-cheat-sheets.html' title='Programming Language Cheat Sheets'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-9008300554410846860</id><published>2008-01-17T08:40:00.001-05:00</published><updated>2008-01-17T08:40:33.768-05:00</updated><title type='text'>"The Invention of Hugo Cabret" Wins 2008 Caldecott Award</title><content type='html'>&lt;p&gt;I just saw &lt;a href="http://feeds.feedburner.com/~r/boingboing/iBag/~3/218101406/kids-book-awards-top.html" target="_blank"&gt;this&lt;/a&gt;:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.google.com/Jeff.Stong/R49azDENRiI/AAAAAAAAAEk/caKou-eI12o/hugocabretsmall%5B2%5D"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="244" alt="hugocabretsmall" src="http://lh6.google.com/Jeff.Stong/R49azTENRjI/AAAAAAAAAEs/3VerAeC_3b8/hugocabretsmall_thumb" width="155" border="0" /&gt;&lt;/a&gt;&lt;a href="http://lh3.google.com/Jeff.Stong/R49azjENRkI/AAAAAAAAAE0/LImkTXmCKfU/Caldecott_Honor_Seal%5B9%5D"&gt;&lt;img height="149" alt="Caldecott_Honor_Seal" src="http://lh5.google.com/Jeff.Stong/R49a0DENRlI/AAAAAAAAAE8/zxouXqhuLQ0/Caldecott_Honor_Seal_thumb%5B7%5D" width="149" border="0" /&gt;&lt;/a&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;This is an excellent book and certainly deserves this award.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-9008300554410846860?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/9008300554410846860/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=9008300554410846860' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/9008300554410846860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/9008300554410846860'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2008/01/invention-of-hugo-cabret-wins-2008.html' title='&amp;quot;The Invention of Hugo Cabret&amp;quot; Wins 2008 Caldecott Award'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-666292779119729735</id><published>2008-01-17T07:58:00.000-05:00</published><updated>2008-01-17T08:07:40.255-05:00</updated><title type='text'>.NET Framework Library Source Code Available</title><content type='html'>&lt;a href="http://www.hanselman.com/blog/NETFrameworkLibrarySourceCodeAvailableForViewing.aspx"&gt;This&lt;/a&gt;, of course is &lt;a href="http://blogs.msdn.com/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code.aspx"&gt;all &lt;/a&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2008/01/16/net-framework-library-source-code-now-available.aspx"&gt;over &lt;/a&gt;the Microsoft blogs.  One tidbit that's buried in Shawne's &lt;a href="http://blogs.msdn.com/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code.aspx"&gt;post&lt;/a&gt; that you should pay attention to and was a "gotcha" for me:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;I also use Microsoft Symbol Server to download symbols.  What's the difference? Can these two programs co-exist?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Microsoft Symbol Server provides symbols without any source information in them.  That information has been removed (sometimes referred to as "stripped") before publishing.  The symbols provided on the Reference Source Server are full symbols with debugging information.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;The key to using both is to have your Reference Source path above the Symbol Server Path so that those symbols are searched/found first.  As described in the ADVANCED USERS section above, you'll likely want to launch your debugger once with this configuration to get all the symbols downloaded, then uncheck both of these paths to avoid debugging launch slowdowns in the future.  Also note that this may conflict in the future as more DLLs are added to the Reference Source Project.  Meaning, if you've already downloaded the Symbol Server symbol, you'll need to delete that or change your cache path to get the Reference Source one (Visual Studio has no way of knowing which is which).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;See the remaining FAQ/TROUBLESHOOTING section for more useful tidbits.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-666292779119729735?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/666292779119729735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=666292779119729735' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/666292779119729735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/666292779119729735'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2008/01/net-framework-library-source-code.html' title='.NET Framework Library Source Code Available'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-4548853834116486704</id><published>2007-12-21T11:19:00.000-05:00</published><updated>2007-12-21T11:23:43.367-05:00</updated><title type='text'>Installing Vista Language Packs Take a Long Time</title><content type='html'>I've been doing some locale testing on Vista and needed to install a language or two.  Rather than just install the languages I needed for the test, I decided to choose all the language packes available from Windows Update.  Big mistake as it turns out.  Unfortunately, I didn't run across &lt;a href="http://blogs.msdn.com/michkap/archive/2007/11/20/6424929.aspx"&gt;this&lt;/a&gt; until I'd let the system run overnight (and still not finish).&lt;br /&gt;&lt;br /&gt;From now on, I'll take the advice -- install one language at a time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-4548853834116486704?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/4548853834116486704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=4548853834116486704' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/4548853834116486704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/4548853834116486704'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2007/12/installing-vista-language-packs-take.html' title='Installing Vista Language Packs Take a Long Time'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-4628892820860484705</id><published>2007-12-06T15:10:00.000-05:00</published><updated>2008-12-10T00:48:59.204-05:00</updated><title type='text'>Deleting VMWare workstation snapshot faster</title><content type='html'>&lt;a href="http://www.vmware.com/products/ws/"&gt;VWMare workstation&lt;/a&gt; is a product I use everyday in my development activities. I use it to create isolated debugging and testing environments. I tend take many snapshots so that I can easily rollback any changes I've made to the environment. As a result I often end up with a snapshot manager that often looks something like this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_r3LI-HiKtMI/R1haktt7zKI/AAAAAAAAADs/-KFAaveJZE4/s1600-h/snapman1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5140958561437469858" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_r3LI-HiKtMI/R1haktt7zKI/AAAAAAAAADs/-KFAaveJZE4/s400/snapman1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_r3LI-HiKtMI/R1haSdt7zII/AAAAAAAAADc/izQfIAPh7uo/s1600-h/snapman1.jpg"&gt;&lt;/a&gt;I find that when deleting a snapshot and it's children VMWare often spends a great deal of time "cleaning up deleted files".  Recently, however, I noticed that if I "Go to" a snapshot that isn't included in the set of snapshots that I want to delete things go much faster.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;So in the example above, if I wanted to delete "snap 3" and its children (that is, "snap 4" and "snap 6", it will be faster to first go to "Snap 1", "Snap 2" or "Snap 5" before the delete.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-4628892820860484705?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/4628892820860484705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=4628892820860484705' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/4628892820860484705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/4628892820860484705'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2007/12/deleting-vmware-workstation-snapshot.html' title='Deleting VMWare workstation snapshot faster'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_r3LI-HiKtMI/R1haktt7zKI/AAAAAAAAADs/-KFAaveJZE4/s72-c/snapman1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-7046524558545907587</id><published>2007-10-24T19:05:00.000-04:00</published><updated>2007-10-24T19:19:26.587-04:00</updated><title type='text'>Vista and the "Windows cannot connect to the printer" error message</title><content type='html'>Several months ago I purchased a new PC with Windows Vista Home Premium.  I purchased it mostly to be able to make use of the parental control features of Vista and I'm pretty happy with it from that point of view.&lt;br /&gt;&lt;br /&gt;There has been one nagging sticking point however.   I couldn't get the Vista system to connect to a printer shared from another computer running Windows XP.  From the Printer control panel I selected "Add Printer", clicked on "Add a Network Computer" and then choose the shared printer from the list.  This resulted in a "Windows cannot connect to the printer. Access is denied" error message.  In printing emergencies I was able to save the documents to the XP systems "Shared Documents" folders and then print it from the XP system but that is less than an ideal solution.&lt;br /&gt;&lt;br /&gt;Fortunately, I've found a solution.  Rather than choosing "Add a Network Computer", select "Add a local computer".  Then click on "Create a new port" and click "Next".  In the dialog box that appears enter &lt;a href="file://computername/PrinterName"&gt;\\ComputerName\PrinterName&lt;/a&gt; where computer name is the name of the computer sharing the printer and printer name is the shared name of the printer. (I found these instructions &lt;a href="http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=1192680&amp;amp;SiteID=17"&gt;here&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Note however this won't work if you've already browsed the computer in Explorer to find out the printer name.  Apparently, Vista will already create a port with that name and so the steps above will fail.  So, be sure to shared the printer from the remote computer and then remember the name so you can type it in.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-7046524558545907587?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/7046524558545907587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=7046524558545907587' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/7046524558545907587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/7046524558545907587'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2007/10/vista-and-windows-cannot-connect-to.html' title='Vista and the &quot;Windows cannot connect to the printer&quot; error message'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-2792852098097663328</id><published>2007-10-24T08:53:00.000-04:00</published><updated>2007-10-24T09:02:07.308-04:00</updated><title type='text'>How to Debug with SOS in Visual Studio</title><content type='html'>Want to make use of the power of &lt;a href="http://msdn2.microsoft.com/library/bb190764%28VS.80%29.aspx"&gt;SOS&lt;/a&gt; (Son of  Strike)?  Are you a regular Visual Studio user intimidated by the relatively user unfriendly &lt;a href="http://www.microsoft.com/whdc/devtools/debugging/default.mspx"&gt;WinDbg&lt;/a&gt;?  &lt;a href="http://blogs.msdn.com/tess"&gt;Tess &lt;/a&gt;has a post &lt;a href="http://blogs.msdn.com/tess/archive/2007/10/19/net-finalizer-memory-leak-debugging-with-sos-dll-in-visual-studio.aspx"&gt;here&lt;/a&gt; to get you started using SOS with Visual Studio.  There are also excellent references &lt;a href="http://msdn2.microsoft.com/library/yy6d2sxs.aspx"&gt;here &lt;/a&gt;and &lt;a href="http://blogs.msdn.com/vancem/archive/2006/09/05/742062.aspx"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-2792852098097663328?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/2792852098097663328/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=2792852098097663328' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/2792852098097663328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/2792852098097663328'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2007/10/how-to-debug-with-sos-in-visual-studio.html' title='How to Debug with SOS in Visual Studio'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-7067621887013644546</id><published>2007-10-17T19:25:00.000-04:00</published><updated>2007-10-17T19:51:45.936-04:00</updated><title type='text'>How to declare out and ref parameters with managed C++</title><content type='html'>Lately, I've been using managed C++ quite a bit.  Managed C++ would not be my choice for a project of any size but it's really convenient when you need to create a managed wrapper for C++ classes that you have in-hand.&lt;br /&gt;&lt;br /&gt;The replacement syntax available with Visual Studio 2005 is much improved over Visual Studio 2003 (which was the last time I attempted to use managed C++ and so certainly isn’t news).   However, I did struggle a bit trying to figure out how to declare what would be out and ref parameters in C# using managed C++.&lt;br /&gt;&lt;br /&gt;Normally, I might use the most excellent &lt;a href="http://www.aisto.com/roeder/dotnet"&gt;Reflector&lt;/a&gt; in these cases.  I just code up the construct in C#, load the assembly into Reflector and then choose the target language in the dissembler window.  Unfortunately, Reflector only support the &lt;a href="http://msdn2.microsoft.com/library/k8d11d4s(vs.80).aspx"&gt;/clr:oldSyntax&lt;/a&gt; managed C++ syntax.  Various Google searches proved unhelpful as well.&lt;br /&gt;&lt;br /&gt;Finally, I stumbled upon the syntax for the tracking reference.  Combine that with the &lt;a href="http://msdn2.microsoft.com/library/system.runtime.interopservices.outattribute.outattribute.aspx"&gt;System::Runtime::InteropServices::OutAttribute&lt;/a&gt; and it’s easy:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  public ref class ExampleClass&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  { &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;    public:  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;      void OutParameter([System::Runtime::InteropServices::Out]&lt;/span&gt; &lt;span style="font-family:courier new;font-size:85%;"&gt;String^% v);  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;      void ByRefParameter(String^% v); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  };&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Simple (and unforgettable) once you know!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-7067621887013644546?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/7067621887013644546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=7067621887013644546' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/7067621887013644546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/7067621887013644546'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2007/10/how-to-declare-out-and-ref-parameters.html' title='How to declare out and ref parameters with managed C++'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-7741039507219208461</id><published>2007-10-16T11:15:00.000-04:00</published><updated>2007-10-16T11:18:43.161-04:00</updated><title type='text'>How to Read Performance Counters Without Administrator Privileges</title><content type='html'>This is mostly as a reminder to myself.  Adding the user to the "Performance Monitor Users" groups, logging out and logging back resolve the unauthorized access exception with the  PerformanceMonitor class when running on Vista.  The BCL team blog has the source post &lt;a href="http://blogs.msdn.com/bclteam/archive/2006/09/08/746900.aspx"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-7741039507219208461?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/7741039507219208461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=7741039507219208461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/7741039507219208461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/7741039507219208461'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2007/10/how-to-read-performance-counters.html' title='How to Read Performance Counters Without Administrator Privileges'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-5926197978795640805</id><published>2007-08-08T08:38:00.000-04:00</published><updated>2007-08-08T08:47:26.835-04:00</updated><title type='text'>I'm Feeling Lucky</title><content type='html'>&lt;a href="http://www.codinghorror.com"&gt;Jeff Atwood&lt;/a&gt; recently blogged about the Google "I'm Feeling Lucky" &lt;a href="http://www.codinghorror.com/blog/archives/000920.html"&gt;button&lt;/a&gt;.  As a number of other comments to the post pointed out, the button is not terribly useful for general searches.  However, it's serves as a great bookmark.  I use it most frequently to find &lt;a href="http://www.aisto.com/Roeder/"&gt;Lutz Roeder's&lt;/a&gt; most excellent &lt;a href="http://www.aisto.com/roeder/dotnet/"&gt;Reflector&lt;/a&gt; tool.  Just type "reflector", click the "I'm Feeling Lucky" button and I'm there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-5926197978795640805?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/5926197978795640805/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=5926197978795640805' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/5926197978795640805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/5926197978795640805'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2007/08/im-feeling-lucky.html' title='I&apos;m Feeling Lucky'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-5951084061636816706</id><published>2007-07-22T14:57:00.000-04:00</published><updated>2008-12-10T00:48:59.575-05:00</updated><title type='text'>I don't think I'll be buying this</title><content type='html'>Does this program ("Hibernate while saving space v1.0") really do what I think it does?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_r3LI-HiKtMI/RqOr-Me9vKI/AAAAAAAAAAM/a0vtQPMPG7Y/s1600-h/shot.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_r3LI-HiKtMI/RqOr-Me9vKI/AAAAAAAAAAM/a0vtQPMPG7Y/s400/shot.JPG" alt="" id="BLOGGER_PHOTO_ID_5090101088850132130" border="0" /&gt;&lt;/a&gt;I'm not going to even link to it since I don't want to raise its &lt;a href="http://en.wikipedia.org/wiki/PageRank"&gt;PageRank &lt;/a&gt;by even the tiniest bit.  If you must, you can use &lt;a href="http://www.google.com/search?q=Hibernate+while+saving+space"&gt;this&lt;/a&gt; link to find it.  I'm afraid to even download the software to see what it really does for fear it will infect my system with &lt;a href="http://en.wikipedia.org/wiki/Spyware"&gt;spyware&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If I understand the (nonexistent) documentation correctly, this application merely toggles off the "Enable Hibernation" check box on the "Hibernate" tab of the "Power Options Properties" in the Windows "Control Panel":&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_r3LI-HiKtMI/RqOuDMe9vLI/AAAAAAAAAAU/xVLTxFaLsjY/s1600-h/shot.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_r3LI-HiKtMI/RqOuDMe9vLI/AAAAAAAAAAU/xVLTxFaLsjY/s400/shot.JPG" alt="" id="BLOGGER_PHOTO_ID_5090103373772733618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;If someone knows what this program really does (rather than just what it appears to do), please drop me a comment, below.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-5951084061636816706?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/5951084061636816706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=5951084061636816706' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/5951084061636816706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/5951084061636816706'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2007/07/i-dont-think-ill-be-buying-this.html' title='I don&apos;t think I&apos;ll be buying this'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_r3LI-HiKtMI/RqOr-Me9vKI/AAAAAAAAAAM/a0vtQPMPG7Y/s72-c/shot.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-1983461682321237632</id><published>2007-07-17T20:04:00.000-04:00</published><updated>2007-07-17T20:25:11.560-04:00</updated><title type='text'>Job Search Over (or How Not to Attract a Candidate)</title><content type='html'>After a couple of intensive weeks of phone interviews and on-site interviews, the &lt;a href="ttp://jeffstong.blogspot.com/2007/07/too-much-time-on-my-hands.html"&gt;job hunt&lt;/a&gt; is over.  As expected, most phone and on-site interviews included a technical component.  Questions ranged from simple by-the-book questions (i.e., "what's a virtual destructor for") to more challenging questions (i.e. "implement a function that does such-and-such").&lt;br /&gt;&lt;br /&gt;Generally, most of my interview experiences were good.  There was one exception however.  I had an interviewer who didn't bother to read my resume and spent a good deal of the interview trashing technical decisions that had been made by the development team.&lt;br /&gt;&lt;br /&gt;Interviewing is a two-way street.  The company is deciding if I'll bring a skill set that will benefit the company and I'm looking at the company to determine if it's a good place to work.  That particular interviewer's technique provided me with useful information, but probably not in the way the company intended.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-1983461682321237632?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/1983461682321237632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=1983461682321237632' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/1983461682321237632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/1983461682321237632'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2007/07/job-search-over-or-how-not-to-attract.html' title='Job Search Over (or How Not to Attract a Candidate)'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-7793593035413739247</id><published>2007-07-11T17:41:00.000-04:00</published><updated>2007-07-11T18:01:19.182-04:00</updated><title type='text'>Mapquest Confused and Google Maps "Gee Whiz" Feature</title><content type='html'>The &lt;a href="http://jeffstong.blogspot.com/2007/07/too-much-time-on-my-hands.html"&gt;job hunt&lt;/a&gt; has had me using &lt;a href="http://maps.google.com/"&gt;Google Maps&lt;/a&gt; or &lt;a href="http://www.mapquest.com/"&gt;Mapquest&lt;/a&gt; more than  usual to get driving directions and times to potential employers or interview.&lt;br /&gt;&lt;br /&gt;Most of my use of these driving direction web sites is for the "terminal phase" of the trip.  That is, I generally know how to get from my house to the town in question so I just use these tools to figure out the last few turns.  In the past Mapquest has been pretty good (picking the major roads I would have), but lately I've noticed that it picked rather odd routes.   In any  case, this prompted me to begin using Google Maps.&lt;br /&gt;&lt;br /&gt;I've used Google Maps in the past, but recently I noticed a new feature with the driving directions (I have no idea when this feature first appeared).  If you hover your mouse over a portion of your route, you'll get a "drag to change route" box.  Dragging the box easily lets you make small tweaks to  your route (for example, around construction or a closed road).  The drag behavior is fast -- a testimony to the efficiency of the underlying route-finding algorithm.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-7793593035413739247?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/7793593035413739247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=7793593035413739247' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/7793593035413739247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/7793593035413739247'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2007/07/mapquest-confused-and-google-maps-gee.html' title='Mapquest Confused and Google Maps &quot;Gee Whiz&quot; Feature'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-6831164534229626554</id><published>2007-07-05T21:02:00.000-04:00</published><updated>2007-07-05T21:08:01.876-04:00</updated><title type='text'>Rainy day activity</title><content type='html'>Rainy day and nothing for the kids to do?&lt;br /&gt;&lt;br /&gt;Head on over to &lt;a href="http://www.thetoymaker.com/"&gt;The ToyMaker&lt;/a&gt;.  Click on the &lt;a href="http://www.thetoymaker.com/2Toys.html"&gt;"Free Toys"&lt;/a&gt; link, download one of the many PDF files and print them out.  Get out your scissors, tape and glue and start building.  These are easy paper craft projects, many of which even younger kids can do.  (Hint:  Buy some cardstock weight paper for the printer first.  Some of the projects turn out better with heavy paper).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-6831164534229626554?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/6831164534229626554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=6831164534229626554' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/6831164534229626554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/6831164534229626554'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2007/07/rainy-day-activity.html' title='Rainy day activity'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-7520750347706185833</id><published>2007-07-02T17:05:00.000-04:00</published><updated>2007-07-02T17:18:17.371-04:00</updated><title type='text'>Too much time on my hands?</title><content type='html'>&lt;span style="font-family:arial;"&gt;Not really and I agree with &lt;/span&gt;&lt;a href="http://blog.iangoodsell.com/2007/06/reflections-on-job-hunt.html"&gt;&lt;span style="font-family:arial;"&gt;Ian&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Searching for a job is way more work than an actual job.  However, when I reflect back to what is was like to search for my first job (or even my last job, just about 9 years ago), I am truly thankful for today's technology. M first job hunt consisted of looking in newspapers, taking resumes to be copied, typing cover letters and mailing with a stamp.  Then there were weeks of waiting for the responses.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;With web-sites (such as &lt;a href="http://www.linkedin.com/"&gt;LinkedIn&lt;/a&gt;, see my profile &lt;a href="http://www.linkedin.com/in/jeffstong"&gt;here&lt;/a&gt;), email and cell phones the feedback loop is much quicker.  I was out of town for the first two weeks of my job hunt but still managed to conduct a number of phone interviews as well as keep up on email so that I had interviews in-the-pipeline when I got back.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-7520750347706185833?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/7520750347706185833/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=7520750347706185833' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/7520750347706185833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/7520750347706185833'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2007/07/too-much-time-on-my-hands.html' title='Too much time on my hands?'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4359790563640175284.post-8677868832512700314</id><published>2007-06-15T13:50:00.000-04:00</published><updated>2007-06-29T10:52:03.549-04:00</updated><title type='text'>Goodbye and Hello</title><content type='html'>&lt;span style="font-family:arial;"&gt;Thunk! Splat! Swish! Plunk! That's the sound of me setting out the Welcome mat at my new blogging home. Previously, I maintained a Compuware-sponsored developer blog at &lt;a href="http://blogs.compuware.com/cs/blogs/jstong"&gt;http://blogs.compuware.com/cs/blogs/jstong&lt;/a&gt; (&lt;a href="http://blogs.compuware.com/"&gt;http://blogs.compuware.com/&lt;/a&gt; is no longer on-line).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;As you &lt;a href="http://www.unionleader.com/article.aspx?headline=Cumpuware+lays+off+84+Merrimack+workers&amp;amp;articleId=be1c27b3-3efc-4fd5-8019-99a603f0abd9"&gt;may&lt;/a&gt; &lt;a href="http://blog.iangoodsell.com/2007/06/adios-numega.html"&gt;or&lt;/a&gt; &lt;a href="http://www.compuware.com/pressroom/news/2007/6641_ENG_HTML.htm"&gt;may not&lt;/a&gt; &lt;a href="http://blogs.msdn.com/matt_pietrek/archive/2007/06/11/r-i-p-numega-lab.aspx"&gt;have&lt;/a&gt; &lt;a href="http://codeverity.com/blogs/timweaver/archive/2007/06/11/compuware-numega-lab-is-no-more.aspx"&gt;heard&lt;/a&gt;, the Compuware\NuMega lab is no more. As a result, I find myself in need of a job and a new blogging home. &lt;/span&gt;&lt;span style="font-family:Arial;"&gt;So, thanks for stopping by and I hope to see you again soon.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4359790563640175284-8677868832512700314?l=jeffstong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffstong.blogspot.com/feeds/8677868832512700314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4359790563640175284&amp;postID=8677868832512700314' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/8677868832512700314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4359790563640175284/posts/default/8677868832512700314'/><link rel='alternate' type='text/html' href='http://jeffstong.blogspot.com/2007/06/goodbye-and-hello.html' title='Goodbye and Hello'/><author><name>Jeff Stong</name><uri>http://www.blogger.com/profile/01590735831326050767</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
