<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>David Mohundro - General</title>
    <link>http://www.mohundro.com/blog/</link>
    <description>From the life of a programmer</description>
    <language>en-us</language>
    <copyright>David Mohundro</copyright>
    <lastBuildDate>Tue, 29 Jun 2010 14:03:05 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>drmohundro@gmail.com</managingEditor>
    <webMaster>drmohundro@gmail.com</webMaster>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=b561f5bd-c38e-4a55-be3f-aee34be61c87</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,b561f5bd-c38e-4a55-be3f-aee34be61c87.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,b561f5bd-c38e-4a55-be3f-aee34be61c87.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=b561f5bd-c38e-4a55-be3f-aee34be61c87</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <strong>NOTE:</strong> You may have seen this post already – I’ve been having issues
with my web host for the past couple of months. This post ended up in memory, but
was never flushed to the file system so it was lost. Apologies for the possible duplicate
post.
</p>
        <p>
 
</p>
        <p>
First off, apologies for not posting anything in 2 (wait, has it been 3?!?) months
– that’s the longest I’ve ever gone without posting anything. Second, apologies for
talking about not posting. That’s a no no. Third, apologies for apologizing for… oh,
right.
</p>
        <p>
So, what have I been up to.
</p>
        <p>
Long story.
</p>
        <p>
Well, my wife and I are now residents in the Memphis area. Obviously a big change.
I had been living and working in Fort Smith, AR for the past 7 years. I’d even been
at the same company that whole period. We had always talked about whether or not we
would stay there or move and all that, but if you had asked me at the beginning of
the year if I thought we’d end up moving, I probably would’ve said no. Well, guess
I would’ve been wrong! 
</p>
        <p>
I took a job with <a href="http://www.serviceu.com/">ServiceU Corporation</a> and
I’m just finishing up my first week with them. Other than the obvious location change,
the job is also quite a bit different from what I’ve been used to. First off, it’s
a much smaller company. Second, technology adoption is pretty serious here. Third
and likely most important for me, it’s a software company. You know, the end product
we provide is <em>software</em>. Well, okay, technically it’s a service. But you know,
that service is fulfilled by software. It’s pretty much summed up by <a href="http://www.codinghorror.com/blog/2007/10/remember-this-stuff-is-supposed-to-be-fun.html">Jeff
Atwood's 2007 article entitled, “remember, this stuff is supposed to be fun.”</a> That’s
the main reason.
</p>
        <p>
So, what will I be doing? Well, for one, I’ll get to work with ASP.NET MVC 2. I’ve
been playing around with it, but I haven’t <em>really</em> worked with web stuff extensively
since classic ASP. I’ve delved into Rails a little on my own, but nothing major. It
will be interesting to compare what I’ve learned with Rails to ASP.NET MVC. I’m really
excited! I’m also planning on getting the rest of my team interested in PowerShell.
So don’t worry, the PowerShell posts will continue!
</p>
        <p>
On the DNUG side of things, I’m obviously no longer the FSDNUG president. Jeremy Sloan
is the new president and he’s got lots of other great guys helping him out. Over here,
I’m planning on getting active with Memphis DNUG. I’m hoping to get to see some of
the FSDNUG guys at <a href="http://devlink.net">DevLink</a>. That was a hint, by the
way.
</p>
        <p>
On the personal side of things, I hate not seeing all of my Fort Smith area friends
as often as we were able to before. Thankfully, Fort Smith and Memphis aren’t <em>that</em> far
away from each other. I imagine we’ll be on I-40 quite a bit more than we have in
the past.
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=b561f5bd-c38e-4a55-be3f-aee34be61c87" />
      </body>
      <title>New stuff</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,b561f5bd-c38e-4a55-be3f-aee34be61c87.aspx</guid>
      <link>http://www.mohundro.com/blog/2010/06/29/NewStuff.aspx</link>
      <pubDate>Tue, 29 Jun 2010 14:03:05 GMT</pubDate>
      <description>&lt;p&gt;
&lt;strong&gt;NOTE:&lt;/strong&gt; You may have seen this post already – I’ve been having issues
with my web host for the past couple of months. This post ended up in memory, but
was never flushed to the file system so it was lost. Apologies for the possible duplicate
post.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
First off, apologies for not posting anything in 2 (wait, has it been 3?!?) months
– that’s the longest I’ve ever gone without posting anything. Second, apologies for
talking about not posting. That’s a no no. Third, apologies for apologizing for… oh,
right.
&lt;/p&gt;
&lt;p&gt;
So, what have I been up to.
&lt;/p&gt;
&lt;p&gt;
Long story.
&lt;/p&gt;
&lt;p&gt;
Well, my wife and I are now residents in the Memphis area. Obviously a big change.
I had been living and working in Fort Smith, AR for the past 7 years. I’d even been
at the same company that whole period. We had always talked about whether or not we
would stay there or move and all that, but if you had asked me at the beginning of
the year if I thought we’d end up moving, I probably would’ve said no. Well, guess
I would’ve been wrong! 
&lt;/p&gt;
&lt;p&gt;
I took a job with &lt;a href="http://www.serviceu.com/"&gt;ServiceU Corporation&lt;/a&gt; and
I’m just finishing up my first week with them. Other than the obvious location change,
the job is also quite a bit different from what I’ve been used to. First off, it’s
a much smaller company. Second, technology adoption is pretty serious here. Third
and likely most important for me, it’s a software company. You know, the end product
we provide is &lt;em&gt;software&lt;/em&gt;. Well, okay, technically it’s a service. But you know,
that service is fulfilled by software. It’s pretty much summed up by &lt;a href="http://www.codinghorror.com/blog/2007/10/remember-this-stuff-is-supposed-to-be-fun.html"&gt;Jeff
Atwood's 2007 article entitled, “remember, this stuff is supposed to be fun.”&lt;/a&gt; That’s
the main reason.
&lt;/p&gt;
&lt;p&gt;
So, what will I be doing? Well, for one, I’ll get to work with ASP.NET MVC 2. I’ve
been playing around with it, but I haven’t &lt;em&gt;really&lt;/em&gt; worked with web stuff extensively
since classic ASP. I’ve delved into Rails a little on my own, but nothing major. It
will be interesting to compare what I’ve learned with Rails to ASP.NET MVC. I’m really
excited! I’m also planning on getting the rest of my team interested in PowerShell.
So don’t worry, the PowerShell posts will continue!
&lt;/p&gt;
&lt;p&gt;
On the DNUG side of things, I’m obviously no longer the FSDNUG president. Jeremy Sloan
is the new president and he’s got lots of other great guys helping him out. Over here,
I’m planning on getting active with Memphis DNUG. I’m hoping to get to see some of
the FSDNUG guys at &lt;a href="http://devlink.net"&gt;DevLink&lt;/a&gt;. That was a hint, by the
way.
&lt;/p&gt;
&lt;p&gt;
On the personal side of things, I hate not seeing all of my Fort Smith area friends
as often as we were able to before. Thankfully, Fort Smith and Memphis aren’t &lt;em&gt;that&lt;/em&gt; far
away from each other. I imagine we’ll be on I-40 quite a bit more than we have in
the past.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=b561f5bd-c38e-4a55-be3f-aee34be61c87" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,b561f5bd-c38e-4a55-be3f-aee34be61c87.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=d957636b-2693-4782-a7f6-f1c769a5a18c</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,d957636b-2693-4782-a7f6-f1c769a5a18c.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,d957636b-2693-4782-a7f6-f1c769a5a18c.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=d957636b-2693-4782-a7f6-f1c769a5a18c</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
It’s 2010. Seriously. Can you believe it? Aren’t we supposed to have <a href="http://www.imdb.com/title/tt0096874/">flying
cars, hoverboards</a>, and have <a href="http://www.imdb.com/title/tt0086837/">space
ships that can reach Jupiter</a>? I mean, really, we’re way beyond <a href="http://en.wikipedia.org/wiki/List_of_Conan_O%27Brien_sketches#In_the_Year_2000.2F3000">the
year 2000</a> now. As a kid, I remember thinking how awesome it will be to actually
get to live in the future. I guess I should be consoled in the fact that TVs are a
lot bigger. That’s a plus.
</p>
        <p>
So, with 2009 as a distant and 5 day old memory, I’d like to share my thoughts on
how the year went.
</p>
        <h4>Professional Life
</h4>
        <p>
          <a href="http://fsdnug.org">FSDNUG</a> has continued to thrive over the past year.
I really look forward to the meetings and getting to hang out with everyone. As I
mentioned in my last post, <a href="http://www.mohundro.com/blog/2009/11/30/BigShoesToFill.aspx">I’m
taking over as president for 2010</a>. The real test for me will be to see what I
will be able to say about the group <em>next</em> year :-)
</p>
        <p>
I continued speaking occasionally at developer events this year, including giving
my PowerShell talk the Shreveport, LA DNUG, the Little Rock, AR DNUG and the Conway,
AR DNUG as well as at the Northwest Arkansas Code Camp. I’m planning on continuing
to practice my speaking skills this year… if I can only pick a topic to talk about!
I also gave an open spaces session on Event Driven Architecture at devLink. With all
of my presentations this year, I received the <a href="http://www.inetachamps.com/Profile/Details/drmohundro">INETA
Community Champion award</a>!
</p>
        <p>
At work, this past year got me pretty excited because, this year more than any prior
year, I get the feeling that more and more people are starting to understand practices
like SOLID as well as the <em>purposes</em> behind TDD. We’re also seeing more of
a mentorship role starting to occur and, though it is still in its infancy, I think
it could really help our developers mature.
</p>
        <p>
Outside of my day job, I got to deploy my first Ruby application, a pretty basic <a href="http://www.sinatrarb.com/">Sinatra</a> application.
It gave me the chance to completely step outside of my .NET comfort zone for a little
while to just get a taste of what’s possible. I haven’t deployed a Rails app yet,
but that’s next on the list. I’m also a huge fan of <a href="http://www.git-scm.com/">git</a> now.
</p>
        <h4>Personal Life
</h4>
        <p>
Away from the computer, my wife and I took charge of coordinating the LTC (Leadership
Training for Christ) activities that our youth group at church works with. To be entirely
honest, that role was more intimidating for me than any of my user group presentations
had ever been. I feel like I know how to talk to developers. I didn’t really know
if I knew how to speak to teenagers. I’m still not sure if I do, but the LTC convention
this year was a lot of fun and we’re already ramping up to start for this year.
</p>
        <h4>Looking forward…
</h4>
        <p>
I’m planning on increasing my Ruby knowledge even more – I realize now that the best
way to do this is to work on something. I’ve already got a project in mind so that’s
in the works. 
</p>
        <p>
I feel like there is so much out there to learn, and not in a bad way. I love learning
something new every day. I just want to do a better job of helping to dispense that
knowledge this year!
</p>
        <p>
And by the way, if you happen to know when we’re going to get those flying cars from
Back to the Future, my internal 10 year old sure would like to ride in one.
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=d957636b-2693-4782-a7f6-f1c769a5a18c" />
      </body>
      <title>Welcome to the Future!!!</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,d957636b-2693-4782-a7f6-f1c769a5a18c.aspx</guid>
      <link>http://www.mohundro.com/blog/2010/01/05/WelcomeToTheFuture.aspx</link>
      <pubDate>Tue, 05 Jan 2010 19:13:19 GMT</pubDate>
      <description>&lt;p&gt;
It’s 2010. Seriously. Can you believe it? Aren’t we supposed to have &lt;a href="http://www.imdb.com/title/tt0096874/"&gt;flying
cars, hoverboards&lt;/a&gt;, and have &lt;a href="http://www.imdb.com/title/tt0086837/"&gt;space
ships that can reach Jupiter&lt;/a&gt;? I mean, really, we’re way beyond &lt;a href="http://en.wikipedia.org/wiki/List_of_Conan_O%27Brien_sketches#In_the_Year_2000.2F3000"&gt;the
year 2000&lt;/a&gt; now. As a kid, I remember thinking how awesome it will be to actually
get to live in the future. I guess I should be consoled in the fact that TVs are a
lot bigger. That’s a plus.
&lt;/p&gt;
&lt;p&gt;
So, with 2009 as a distant and 5 day old memory, I’d like to share my thoughts on
how the year went.
&lt;/p&gt;
&lt;h4&gt;Professional Life
&lt;/h4&gt;
&lt;p&gt;
&lt;a href="http://fsdnug.org"&gt;FSDNUG&lt;/a&gt; has continued to thrive over the past year.
I really look forward to the meetings and getting to hang out with everyone. As I
mentioned in my last post, &lt;a href="http://www.mohundro.com/blog/2009/11/30/BigShoesToFill.aspx"&gt;I’m
taking over as president for 2010&lt;/a&gt;. The real test for me will be to see what I
will be able to say about the group &lt;em&gt;next&lt;/em&gt; year :-)
&lt;/p&gt;
&lt;p&gt;
I continued speaking occasionally at developer events this year, including giving
my PowerShell talk the Shreveport, LA DNUG, the Little Rock, AR DNUG and the Conway,
AR DNUG as well as at the Northwest Arkansas Code Camp. I’m planning on continuing
to practice my speaking skills this year… if I can only pick a topic to talk about!
I also gave an open spaces session on Event Driven Architecture at devLink. With all
of my presentations this year, I received the &lt;a href="http://www.inetachamps.com/Profile/Details/drmohundro"&gt;INETA
Community Champion award&lt;/a&gt;!
&lt;/p&gt;
&lt;p&gt;
At work, this past year got me pretty excited because, this year more than any prior
year, I get the feeling that more and more people are starting to understand practices
like SOLID as well as the &lt;em&gt;purposes&lt;/em&gt; behind TDD. We’re also seeing more of
a mentorship role starting to occur and, though it is still in its infancy, I think
it could really help our developers mature.
&lt;/p&gt;
&lt;p&gt;
Outside of my day job, I got to deploy my first Ruby application, a pretty basic &lt;a href="http://www.sinatrarb.com/"&gt;Sinatra&lt;/a&gt; application.
It gave me the chance to completely step outside of my .NET comfort zone for a little
while to just get a taste of what’s possible. I haven’t deployed a Rails app yet,
but that’s next on the list. I’m also a huge fan of &lt;a href="http://www.git-scm.com/"&gt;git&lt;/a&gt; now.
&lt;/p&gt;
&lt;h4&gt;Personal Life
&lt;/h4&gt;
&lt;p&gt;
Away from the computer, my wife and I took charge of coordinating the LTC (Leadership
Training for Christ) activities that our youth group at church works with. To be entirely
honest, that role was more intimidating for me than any of my user group presentations
had ever been. I feel like I know how to talk to developers. I didn’t really know
if I knew how to speak to teenagers. I’m still not sure if I do, but the LTC convention
this year was a lot of fun and we’re already ramping up to start for this year.
&lt;/p&gt;
&lt;h4&gt;Looking forward…
&lt;/h4&gt;
&lt;p&gt;
I’m planning on increasing my Ruby knowledge even more – I realize now that the best
way to do this is to work on something. I’ve already got a project in mind so that’s
in the works. 
&lt;/p&gt;
&lt;p&gt;
I feel like there is so much out there to learn, and not in a bad way. I love learning
something new every day. I just want to do a better job of helping to dispense that
knowledge this year!
&lt;/p&gt;
&lt;p&gt;
And by the way, if you happen to know when we’re going to get those flying cars from
Back to the Future, my internal 10 year old sure would like to ride in one.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=d957636b-2693-4782-a7f6-f1c769a5a18c" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,d957636b-2693-4782-a7f6-f1c769a5a18c.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=1cfa3c38-e590-4736-b46d-e5ec02babc66</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,1cfa3c38-e590-4736-b46d-e5ec02babc66.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,1cfa3c38-e590-4736-b46d-e5ec02babc66.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=1cfa3c38-e590-4736-b46d-e5ec02babc66</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I couldn’t resist borrowing my title from <a href="http://devlicious.com/blogs/christopher_bennage/default.aspx">Christopher
Bennage’s</a> post entitled <a href="http://devlicious.com/blogs/christopher_bennage/archive/2009/02/04/an-essential-tip-for-working-with-xaml.aspx">“An
Essential Tip for Working with XAML.”</a> My “essential tip” is identical to what
he has already shown for WPF (and <a href="http://weblogs.asp.net/fmarguerie/archive/2009/01/29/life-changer-xaml-tip-for-visual-studio.aspx">Fabrice
originally</a>) – it just applies to Windows Forms instead of WPF :-)
</p>
        <p>
I’ll mix it up some and show with pictures instead of text, though.
</p>
        <p>
Step 1. Right click on a Form, UserControl, or Component and select “Open With…”
</p>
        <p>
          <a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/AnEssentialTipforWorkingwithWindowsForms_9428/image_2.png">
            <img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="245" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/AnEssentialTipforWorkingwithWindowsForms_9428/image_thumb.png" width="273" border="0" />
          </a>
        </p>
        <p>
Step 2. Select “CSharp Editor” and click “Set as Default” - (note that this setting
only applies to C# code, though you can perform the identical setup for VB.NET as
well)
</p>
        <p>
          <a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/AnEssentialTipforWorkingwithWindowsForms_9428/image_4.png">
            <img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="329" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/AnEssentialTipforWorkingwithWindowsForms_9428/image_thumb_1.png" width="490" border="0" />
          </a>
        </p>
        <p>
Step 3. Enjoy your delicious, hot meal of faster Visual Studio!
</p>
        <p>
In case you missed it, the real benefit that you get from this setting is that double
clicking a file in the Solution Explorer will now go directly to the code instead
of defaulting to the designer view. If you want to get to the designer view, just
right click and select “View Designer.”
</p>
        <p>
Thanks again to Christopher and Fabrice who did the real work here!
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=1cfa3c38-e590-4736-b46d-e5ec02babc66" />
      </body>
      <title>An Essential Tip for Working with Windows Forms</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,1cfa3c38-e590-4736-b46d-e5ec02babc66.aspx</guid>
      <link>http://www.mohundro.com/blog/2009/02/25/AnEssentialTipForWorkingWithWindowsForms.aspx</link>
      <pubDate>Wed, 25 Feb 2009 16:32:12 GMT</pubDate>
      <description>&lt;p&gt;
I couldn’t resist borrowing my title from &lt;a href="http://devlicious.com/blogs/christopher_bennage/default.aspx"&gt;Christopher
Bennage’s&lt;/a&gt; post entitled &lt;a href="http://devlicious.com/blogs/christopher_bennage/archive/2009/02/04/an-essential-tip-for-working-with-xaml.aspx"&gt;“An
Essential Tip for Working with XAML.”&lt;/a&gt; My “essential tip” is identical to what
he has already shown for WPF (and &lt;a href="http://weblogs.asp.net/fmarguerie/archive/2009/01/29/life-changer-xaml-tip-for-visual-studio.aspx"&gt;Fabrice
originally&lt;/a&gt;) – it just applies to Windows Forms instead of WPF :-)
&lt;/p&gt;
&lt;p&gt;
I’ll mix it up some and show with pictures instead of text, though.
&lt;/p&gt;
&lt;p&gt;
Step 1. Right click on a Form, UserControl, or Component and select “Open With…”
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/AnEssentialTipforWorkingwithWindowsForms_9428/image_2.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="245" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/AnEssentialTipforWorkingwithWindowsForms_9428/image_thumb.png" width="273" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Step 2. Select “CSharp Editor” and click “Set as Default” - (note that this setting
only applies to C# code, though you can perform the identical setup for VB.NET as
well)
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/AnEssentialTipforWorkingwithWindowsForms_9428/image_4.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="329" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/AnEssentialTipforWorkingwithWindowsForms_9428/image_thumb_1.png" width="490" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Step 3. Enjoy your delicious, hot meal of faster Visual Studio!
&lt;/p&gt;
&lt;p&gt;
In case you missed it, the real benefit that you get from this setting is that double
clicking a file in the Solution Explorer will now go directly to the code instead
of defaulting to the designer view. If you want to get to the designer view, just
right click and select “View Designer.”
&lt;/p&gt;
&lt;p&gt;
Thanks again to Christopher and Fabrice who did the real work here!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=1cfa3c38-e590-4736-b46d-e5ec02babc66" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,1cfa3c38-e590-4736-b46d-e5ec02babc66.aspx</comments>
      <category>.NET</category>
      <category>General</category>
      <category>Visual Studio</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=3a062223-e79a-40b8-a23a-e31a7734b92e</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,3a062223-e79a-40b8-a23a-e31a7734b92e.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,3a062223-e79a-40b8-a23a-e31a7734b92e.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=3a062223-e79a-40b8-a23a-e31a7734b92e</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <strong>WiX Setup</strong>
        </p>
        <p>
I’ve been doing some work with MSIs lately, specifically using the <a href="http://wix.sourceforge.net/">WiX
toolkit</a>, so I thought I’d share a short primer on using WiX to build your own
MSIs, and also to share some links and some tricks to avoid some pitfalls that I ran
into.
</p>
        <p>
First off, WiX stands for Windows Installer XML and, from what I understand, <a href="http://blogs.msdn.com/robmen/archive/2004/04/05/107709.aspx">is
the first Microsoft-supported open source project</a>. Not only that, but it is the
way that Microsoft builds their MSIs, too, so it is pretty significant.
</p>
        <p>
To get started, I wouldn’t even bother with the release version of 2.0. The real fun
is in <a href="http://wix.sourceforge.net/downloadv3.html">version 3.0</a>, which,
even though it is in beta, is plenty stable (IMHO) and supports Visual Studio with
a project template and intellisense support via schema files. It also makes the building
step a lot easier.
</p>
        <p>
          <a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/GettingstartedwithWiXandMajorUpgrades_BFD6/image_2.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/GettingstartedwithWiXandMajorUpgrades_BFD6/image_thumb.png" width="644" height="397" />
          </a>
        </p>
        <p>
          <strong>My First WiX Project</strong>
        </p>
        <p>
Once you start your project, you’re presented with a WXS file pre-filled with a few
initial options that looks like this:
</p>
        <p style="font-size: 1.2em;">
        </p>
        <pre class="brush: xml;">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"&gt;
    &lt;Product Id="de9157d6-2fbf-4c16-9d28-77f790788b28" Name="WixProject1" Language="1033" Version="1.0.0.0" Manufacturer="WixProject1" UpgradeCode="f5614cd8-aa70-4bc4-948b-208b34e16a6d"&gt;
        &lt;Package InstallerVersion="200" Compressed="yes" /&gt;

        &lt;Media Id="1" Cabinet="media1.cab" EmbedCab="yes" /&gt;

        &lt;Directory Id="TARGETDIR" Name="SourceDir"&gt;
            &lt;Directory Id="ProgramFilesFolder"&gt;
                &lt;Directory Id="INSTALLLOCATION" Name="WixProject1"&gt;
                    &lt;!-- TODO: Remove the comments around this Component element and the ComponentRef below in order to add resources to this installer. --&gt;
                    &lt;!-- &lt;Component Id="ProductComponent" Guid="95758d74-281c-4eee-84ce-4fda6ad60557"&gt; --&gt;
                        &lt;!-- TODO: Insert files, registry keys, and other resources here. --&gt;
                    &lt;!-- &lt;/Component&gt; --&gt;
                &lt;/Directory&gt;
            &lt;/Directory&gt;
        &lt;/Directory&gt;

        &lt;Feature Id="ProductFeature" Title="WixProject1" Level="1"&gt;
            &lt;!-- TODO: Remove the comments around this ComponentRef element and the Component above in order to add resources to this installer. --&gt;
            &lt;!-- &lt;ComponentRef Id="ProductComponent" /&gt; --&gt;
        &lt;/Feature&gt;
    &lt;/Product&gt;
&lt;/Wix&gt;</pre>
        <p>
It has most of the things that you’ll be interested in. 
</p>
        <p>
The Product element is likely the most important element as it defines the application
that your MSI will install. You’ll notice that WiX is built around a lot of Guids.
MSIs, or Windows Installer actually, is built around tables. Using the <a href="http://msdn.microsoft.com/en-us/library/aa370557.aspx">orca
tool that ships with the Windows SDK</a>, you can actually see these tables for any
MSI. (FYI, you’ll find your Product Id Guid if you look under <a href="file://\\HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\">\\HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\</a> after
installation.)
</p>
        <p>
          <a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/GettingstartedwithWiXandMajorUpgrades_BFD6/image_4.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/GettingstartedwithWiXandMajorUpgrades_BFD6/image_thumb_1.png" width="644" height="448" />
          </a>
        </p>
        <p>
          <strong>You Can Refactor WiX, Too</strong>
        </p>
        <p>
Before going further with your WiX file, I would strongly recommend refactoring some
of the Guids and common strings out into variables like so:
</p>
        <pre class="brush: xml;">&lt;Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"&gt;
  &lt;?define ProductName = "WixProject1"?&gt;
  &lt;?define ProductCode = "de9157d6-2fbf-4c16-9d28-77f790788b28"?&gt;
  &lt;?define UpgradeCode = "f5614cd8-aa70-4bc4-948b-208b34e16a6d"?&gt;
  &lt;?define ProductVersion = "1.0.0.0"?&gt;
  
  &lt;Product Id="$(var.ProductCode)"
           Name="$(var.ProductName)"
           Language="1033"
           Version="$(var.ProductVersion)"
           Manufacturer="WixProject1"
           UpgradeCode="$(var.UpgradeCode)"&gt;</pre>
        <p>
Doing this can help you greatly later when you’re trying to figure out which Guid
goes where or what the Guid is actually for. The rest of the process of building your
WiX file involves mapping out your dependencies. The project template by default already
creates Directory elements pointing to the ProgramFilesFolder constant (see <a title="http://msdn.microsoft.com/en-us/library/aa370905(VS.85).aspx#system_folder_properties" href="http://msdn.microsoft.com/en-us/library/aa370905(VS.85).aspx#system_folder_properties">http://msdn.microsoft.com/en-us/library/aa370905(VS.85).aspx#system_folder_properties</a> for
the other system folder constants). The Component tag resolves to what I think of
as a separate installable component. Components go together to form a Feature (think
Complete versus Custom installs) so you’ll refer to your Component (by Id) in the
Feature element using a ComponentRef element. The template has this commented out,
but it shows how this would work. I’ll defer to the <a href="http://www.tramontana.co.hu/wix/">WiX
Tutorial</a> for specific examples here.
</p>
        <p>
To build your MSI, you just have to do a Visual Studio build because you followed
my instructions and installed beta 3.0, which comes with Visual Studio integration!
Behind the scenes, though, all the build does is call out to candle.exe passing in
your WXS file which results in a wixobj file. Then it calls out to light.exe passing
in the wixobj file which results in an MSI. (WiX is pronounced like “wicks” – that
should help you get the candle and light jokes… WiX also includes tools like dark,
torch, votive, smoke, melt… :-))
</p>
        <p>
          <strong>Upgrading!</strong>
        </p>
        <p>
Up to this point, I didn’t really run into any problems with building my MSI. The
online resources were fairly good at getting me started. What I wanted was for my
MSI to be able to remove existing versions of my software before installing its version. <a href="http://msdn.microsoft.com/en-us/library/aa370579(VS.85).aspx">MSIs
support three types of upgrades</a>: small update, minor upgrade, and major upgrades.
I’d recommend skipping directly to major upgrade. From what I’ve seen so far, the
other two options require additional command line arguments to msiexec to actually
perform the removal of a prior install of your product.
</p>
        <p>
To get a major upgrade to work, the most important thing you’ll need is your UpgradeCode.
This is an attribute off of your Product element tag. Always store that off, regardless
of whether or not you plan on allowing upgrades. As soon as you decide you don’t need
to upgrade, you’ll want to upgrade. If you don’t have an UpgradeCode, you can’t upgrade.
</p>
        <p>
You’ll use your UpgradeCode in an Upgrade tag like so:
</p>
        <pre class="brush: xml;">&lt;Upgrade Id='$(var.UpgradeCode)'&gt;
  &lt;UpgradeVersion Minimum='$(var.ProductVersion)'
                  IncludeMinimum='no'
                  OnlyDetect='yes'
                  Property='NEWPRODUCTFOUND' /&gt;
  &lt;UpgradeVersion Minimum='$(var.RTMProductVersion)'
                  IncludeMinimum='yes'
                  Maximum='$(var.ProductVersion)'
                  IncludeMaximum='no'
                  Property='UPGRADEFOUND' /&gt;
&lt;/Upgrade&gt;</pre>
        <p>
Notice how I’m using my predefined variables. Makes it easier, eh? I’ve also added
an additional variable defined as RTMProductVersion. This is the version of my installed
application that I am upgrading from. UpgradeVersion tags work like ranges. So, for
the UPGRADEFOUND to match, the installed application has to match inclusive RTMProductVersion
(inclusive because of IncludeMinimum=’yes’) up to exclusive ProductVersion, which
is the new version we’re about to install.
</p>
        <p>
Now, changing the version isn’t enough for a major upgrade to work. You also need
to change your ProductCode. This is what I continued to miss and why I was getting
so frustrated with WiX. Now that I know what it should do (and what to search for),
I’m finding plenty of WiX articles on how to do major upgrades! The reasoning for
this is because major upgrades only work between two completely different products
(think of Visual Studio 2005 and Visual Studio 2008 as having two different ProductCodes).
These two products can run <em>side-by-side</em>, hence the different Guids for their
product code. These applications allow side-by-side execution so they’re not specifying
the removal of the old software, but they certainly could. <a href="http://msdn.microsoft.com/en-us/library/aa370837(VS.85).aspx">MSDN
has a good article on everything that you’ll need to check before getting an MSI ready
for a major upgrade</a>.
</p>
        <p>
Once you have a new version and a new product code, you’ll need to actually tell the
MSI to remove the existing version. To do this, you’ll add a RemoveExistingProducts
element to an InstallExecuteSequence. Like this:
</p>
        <pre class="brush: xml;">&lt;InstallExecuteSequence&gt;
  &lt;Custom Action='PreventDowngrading'
          After='FindRelatedProducts'&gt;NEWPRODUCTFOUND&lt;/Custom&gt;
  &lt;RemoveExistingProducts After='InstallFinalize' /&gt;
&lt;/InstallExecuteSequence&gt;

&lt;InstallUISequence&gt;
  &lt;Custom Action='PreventDowngrading'
          After='FindRelatedProducts'&gt;NEWPRODUCTFOUND&lt;/Custom&gt;
&lt;/InstallUISequence&gt;

&lt;CustomAction Id='PreventDowngrading'
              Error='Newer version already installed' /&gt;</pre>
        <p>
In my example, I’ve told RemoveExistingProducts to run after the ‘InstallFinalize’
action, but <a href="http://msdn.microsoft.com/en-us/library/aa371197(VS.85).aspx">this
is customizable and can have an impact on the efficiency of your installer</a>.
</p>
        <p>
Once I set my WiX project up like this, it worked like a charm.
</p>
        <p>
There are two resources that are <em>essential</em> for getting up to speed with WiX
that I’d like to share. One is the <a href="http://www.tramontana.co.hu/wix/">WiX
Tutorial</a>. I’m probably using about a 10th of the content posted there. Second
is <a href="http://blogs.technet.com/alexshev/pages/from-msi-to-wix.aspx">Alex Shevchuk’s
“From MSI to WiX” articles</a>, particularly <a href="http://blogs.technet.com/alexshev/archive/2008/02/15/from-msi-to-wix-part-8-major-upgrade.aspx">his
post on major upgrades</a>, which was invaluable to me.
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=3a062223-e79a-40b8-a23a-e31a7734b92e" />
      </body>
      <title>Getting started with WiX and Major Upgrades!</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,3a062223-e79a-40b8-a23a-e31a7734b92e.aspx</guid>
      <link>http://www.mohundro.com/blog/2009/02/23/GettingStartedWithWiXAndMajorUpgrades.aspx</link>
      <pubDate>Mon, 23 Feb 2009 19:38:15 GMT</pubDate>
      <description>&lt;p&gt;
&lt;strong&gt;WiX Setup&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I’ve been doing some work with MSIs lately, specifically using the &lt;a href="http://wix.sourceforge.net/"&gt;WiX
toolkit&lt;/a&gt;, so I thought I’d share a short primer on using WiX to build your own
MSIs, and also to share some links and some tricks to avoid some pitfalls that I ran
into.
&lt;/p&gt;
&lt;p&gt;
First off, WiX stands for Windows Installer XML and, from what I understand, &lt;a href="http://blogs.msdn.com/robmen/archive/2004/04/05/107709.aspx"&gt;is
the first Microsoft-supported open source project&lt;/a&gt;. Not only that, but it is the
way that Microsoft builds their MSIs, too, so it is pretty significant.
&lt;/p&gt;
&lt;p&gt;
To get started, I wouldn’t even bother with the release version of 2.0. The real fun
is in &lt;a href="http://wix.sourceforge.net/downloadv3.html"&gt;version 3.0&lt;/a&gt;, which,
even though it is in beta, is plenty stable (IMHO) and supports Visual Studio with
a project template and intellisense support via schema files. It also makes the building
step a lot easier.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/GettingstartedwithWiXandMajorUpgrades_BFD6/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/GettingstartedwithWiXandMajorUpgrades_BFD6/image_thumb.png" width="644" height="397"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;My First WiX Project&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Once you start your project, you’re presented with a WXS file pre-filled with a few
initial options that looks like this:
&lt;/p&gt;
&lt;p style="font-size: 1.2em;"&gt;
&lt;pre class="brush: xml;"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;
&amp;lt;Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"&amp;gt;
    &amp;lt;Product Id="de9157d6-2fbf-4c16-9d28-77f790788b28" Name="WixProject1" Language="1033" Version="1.0.0.0" Manufacturer="WixProject1" UpgradeCode="f5614cd8-aa70-4bc4-948b-208b34e16a6d"&amp;gt;
        &amp;lt;Package InstallerVersion="200" Compressed="yes" /&amp;gt;

        &amp;lt;Media Id="1" Cabinet="media1.cab" EmbedCab="yes" /&amp;gt;

        &amp;lt;Directory Id="TARGETDIR" Name="SourceDir"&amp;gt;
            &amp;lt;Directory Id="ProgramFilesFolder"&amp;gt;
                &amp;lt;Directory Id="INSTALLLOCATION" Name="WixProject1"&amp;gt;
                    &amp;lt;!-- TODO: Remove the comments around this Component element and the ComponentRef below in order to add resources to this installer. --&amp;gt;
                    &amp;lt;!-- &amp;lt;Component Id="ProductComponent" Guid="95758d74-281c-4eee-84ce-4fda6ad60557"&amp;gt; --&amp;gt;
                        &amp;lt;!-- TODO: Insert files, registry keys, and other resources here. --&amp;gt;
                    &amp;lt;!-- &amp;lt;/Component&amp;gt; --&amp;gt;
                &amp;lt;/Directory&amp;gt;
            &amp;lt;/Directory&amp;gt;
        &amp;lt;/Directory&amp;gt;

        &amp;lt;Feature Id="ProductFeature" Title="WixProject1" Level="1"&amp;gt;
            &amp;lt;!-- TODO: Remove the comments around this ComponentRef element and the Component above in order to add resources to this installer. --&amp;gt;
            &amp;lt;!-- &amp;lt;ComponentRef Id="ProductComponent" /&amp;gt; --&amp;gt;
        &amp;lt;/Feature&amp;gt;
    &amp;lt;/Product&amp;gt;
&amp;lt;/Wix&amp;gt;&lt;/pre&gt;
&gt;
&lt;p&gt;
It has most of the things that you’ll be interested in. 
&lt;/p&gt;
&lt;p&gt;
The Product element is likely the most important element as it defines the application
that your MSI will install. You’ll notice that WiX is built around a lot of Guids.
MSIs, or Windows Installer actually, is built around tables. Using the &lt;a href="http://msdn.microsoft.com/en-us/library/aa370557.aspx"&gt;orca
tool that ships with the Windows SDK&lt;/a&gt;, you can actually see these tables for any
MSI. (FYI, you’ll find your Product Id Guid if you look under &lt;a href="file://\\HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"&gt;\\HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\&lt;/a&gt; after
installation.)
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/GettingstartedwithWiXandMajorUpgrades_BFD6/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/GettingstartedwithWiXandMajorUpgrades_BFD6/image_thumb_1.png" width="644" height="448"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;You Can Refactor WiX, Too&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Before going further with your WiX file, I would strongly recommend refactoring some
of the Guids and common strings out into variables like so:
&lt;/p&gt;
&lt;pre class="brush: xml;"&gt;&amp;lt;Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"&amp;gt;
  &amp;lt;?define ProductName = "WixProject1"?&amp;gt;
  &amp;lt;?define ProductCode = "de9157d6-2fbf-4c16-9d28-77f790788b28"?&amp;gt;
  &amp;lt;?define UpgradeCode = "f5614cd8-aa70-4bc4-948b-208b34e16a6d"?&amp;gt;
  &amp;lt;?define ProductVersion = "1.0.0.0"?&amp;gt;
  
  &amp;lt;Product Id="$(var.ProductCode)"
           Name="$(var.ProductName)"
           Language="1033"
           Version="$(var.ProductVersion)"
           Manufacturer="WixProject1"
           UpgradeCode="$(var.UpgradeCode)"&amp;gt;&lt;/pre&gt;
&lt;p&gt;
Doing this can help you greatly later when you’re trying to figure out which Guid
goes where or what the Guid is actually for. The rest of the process of building your
WiX file involves mapping out your dependencies. The project template by default already
creates Directory elements pointing to the ProgramFilesFolder constant (see &lt;a title="http://msdn.microsoft.com/en-us/library/aa370905(VS.85).aspx#system_folder_properties" href="http://msdn.microsoft.com/en-us/library/aa370905(VS.85).aspx#system_folder_properties"&gt;http://msdn.microsoft.com/en-us/library/aa370905(VS.85).aspx#system_folder_properties&lt;/a&gt; for
the other system folder constants). The Component tag resolves to what I think of
as a separate installable component. Components go together to form a Feature (think
Complete versus Custom installs) so you’ll refer to your Component (by Id) in the
Feature element using a ComponentRef element. The template has this commented out,
but it shows how this would work. I’ll defer to the &lt;a href="http://www.tramontana.co.hu/wix/"&gt;WiX
Tutorial&lt;/a&gt; for specific examples here.
&lt;/p&gt;
&lt;p&gt;
To build your MSI, you just have to do a Visual Studio build because you followed
my instructions and installed beta 3.0, which comes with Visual Studio integration!
Behind the scenes, though, all the build does is call out to candle.exe passing in
your WXS file which results in a wixobj file. Then it calls out to light.exe passing
in the wixobj file which results in an MSI. (WiX is pronounced like “wicks” – that
should help you get the candle and light jokes… WiX also includes tools like dark,
torch, votive, smoke, melt… :-))
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Upgrading!&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Up to this point, I didn’t really run into any problems with building my MSI. The
online resources were fairly good at getting me started. What I wanted was for my
MSI to be able to remove existing versions of my software before installing its version. &lt;a href="http://msdn.microsoft.com/en-us/library/aa370579(VS.85).aspx"&gt;MSIs
support three types of upgrades&lt;/a&gt;: small update, minor upgrade, and major upgrades.
I’d recommend skipping directly to major upgrade. From what I’ve seen so far, the
other two options require additional command line arguments to msiexec to actually
perform the removal of a prior install of your product.
&lt;/p&gt;
&lt;p&gt;
To get a major upgrade to work, the most important thing you’ll need is your UpgradeCode.
This is an attribute off of your Product element tag. Always store that off, regardless
of whether or not you plan on allowing upgrades. As soon as you decide you don’t need
to upgrade, you’ll want to upgrade. If you don’t have an UpgradeCode, you can’t upgrade.
&lt;/p&gt;
&lt;p&gt;
You’ll use your UpgradeCode in an Upgrade tag like so:
&lt;/p&gt;
&lt;pre class="brush: xml;"&gt;&amp;lt;Upgrade Id='$(var.UpgradeCode)'&amp;gt;
  &amp;lt;UpgradeVersion Minimum='$(var.ProductVersion)'
                  IncludeMinimum='no'
                  OnlyDetect='yes'
                  Property='NEWPRODUCTFOUND' /&amp;gt;
  &amp;lt;UpgradeVersion Minimum='$(var.RTMProductVersion)'
                  IncludeMinimum='yes'
                  Maximum='$(var.ProductVersion)'
                  IncludeMaximum='no'
                  Property='UPGRADEFOUND' /&amp;gt;
&amp;lt;/Upgrade&amp;gt;&lt;/pre&gt;
&lt;p&gt;
Notice how I’m using my predefined variables. Makes it easier, eh? I’ve also added
an additional variable defined as RTMProductVersion. This is the version of my installed
application that I am upgrading from. UpgradeVersion tags work like ranges. So, for
the UPGRADEFOUND to match, the installed application has to match inclusive RTMProductVersion
(inclusive because of IncludeMinimum=’yes’) up to exclusive ProductVersion, which
is the new version we’re about to install.
&lt;/p&gt;
&lt;p&gt;
Now, changing the version isn’t enough for a major upgrade to work. You also need
to change your ProductCode. This is what I continued to miss and why I was getting
so frustrated with WiX. Now that I know what it should do (and what to search for),
I’m finding plenty of WiX articles on how to do major upgrades! The reasoning for
this is because major upgrades only work between two completely different products
(think of Visual Studio 2005 and Visual Studio 2008 as having two different ProductCodes).
These two products can run &lt;em&gt;side-by-side&lt;/em&gt;, hence the different Guids for their
product code. These applications allow side-by-side execution so they’re not specifying
the removal of the old software, but they certainly could. &lt;a href="http://msdn.microsoft.com/en-us/library/aa370837(VS.85).aspx"&gt;MSDN
has a good article on everything that you’ll need to check before getting an MSI ready
for a major upgrade&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Once you have a new version and a new product code, you’ll need to actually tell the
MSI to remove the existing version. To do this, you’ll add a RemoveExistingProducts
element to an InstallExecuteSequence. Like this:
&lt;/p&gt;
&lt;pre class="brush: xml;"&gt;&amp;lt;InstallExecuteSequence&amp;gt;
  &amp;lt;Custom Action='PreventDowngrading'
          After='FindRelatedProducts'&amp;gt;NEWPRODUCTFOUND&amp;lt;/Custom&amp;gt;
  &amp;lt;RemoveExistingProducts After='InstallFinalize' /&amp;gt;
&amp;lt;/InstallExecuteSequence&amp;gt;

&amp;lt;InstallUISequence&amp;gt;
  &amp;lt;Custom Action='PreventDowngrading'
          After='FindRelatedProducts'&amp;gt;NEWPRODUCTFOUND&amp;lt;/Custom&amp;gt;
&amp;lt;/InstallUISequence&amp;gt;

&amp;lt;CustomAction Id='PreventDowngrading'
              Error='Newer version already installed' /&amp;gt;&lt;/pre&gt;
&lt;p&gt;
In my example, I’ve told RemoveExistingProducts to run after the ‘InstallFinalize’
action, but &lt;a href="http://msdn.microsoft.com/en-us/library/aa371197(VS.85).aspx"&gt;this
is customizable and can have an impact on the efficiency of your installer&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Once I set my WiX project up like this, it worked like a charm.
&lt;/p&gt;
&lt;p&gt;
There are two resources that are &lt;em&gt;essential&lt;/em&gt; for getting up to speed with WiX
that I’d like to share. One is the &lt;a href="http://www.tramontana.co.hu/wix/"&gt;WiX
Tutorial&lt;/a&gt;. I’m probably using about a 10th of the content posted there. Second
is &lt;a href="http://blogs.technet.com/alexshev/pages/from-msi-to-wix.aspx"&gt;Alex Shevchuk’s
“From MSI to WiX” articles&lt;/a&gt;, particularly &lt;a href="http://blogs.technet.com/alexshev/archive/2008/02/15/from-msi-to-wix-part-8-major-upgrade.aspx"&gt;his
post on major upgrades&lt;/a&gt;, which was invaluable to me.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=3a062223-e79a-40b8-a23a-e31a7734b92e" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,3a062223-e79a-40b8-a23a-e31a7734b92e.aspx</comments>
      <category>General</category>
      <category>Programming</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=58b84948-4d3c-4e9e-bd3f-4a424165ac14</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,58b84948-4d3c-4e9e-bd3f-4a424165ac14.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,58b84948-4d3c-4e9e-bd3f-4a424165ac14.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=58b84948-4d3c-4e9e-bd3f-4a424165ac14</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
So, a year ago to the day, I posted <a href="http://www.mohundro.com/blog/2008/01/01/Welcome20082007InReview.aspx">my
review of 2007 with a look towards 2008</a>. To continue that age old tradition, I
will now review 2008.
</p>
        <p>
          <strong>Learning</strong>
        </p>
        <p>
I started off the month by stating that <a href="http://www.mohundro.com/blog/2008/01/30/LearningTechnologiesOutsideAndInsideOfTheMicrosoftEcosystem.aspx">I
wanted to learn some new languages, primarily Python and Ruby</a>. I’m sad to say
that I haven’t made it past the 5th python challenge yet. I pretty much got distracted,
which is a lame excuse. On the other hand, instead of learning languages, I’ve learned
a ton about editing in VIM and even a little about Emacs (though I have to use viper
or vimpulse to be at all productive in Emacs). I’m even using ViEmu in Visual Studio.
The Vim key-bindings have become muscle memory now and I consider that a positive
thing. I’m still going to try to learn other languages this year, but I’m going to
need a project to work on before I can become proficient.
</p>
        <p>
          <strong>FSDNUG</strong>
        </p>
        <p>
This year, a very exciting thing for me was the formation of <a href="http://www.fsdnug.org">FSDNUG</a>. <a href="http://www.mpaladino.com/">Michael
Paladino</a> pretty much did all of the work, but he lets me call myself a co-leader. <a href="http://www.mohundro.com/blog/2008/03/04/FSDNUGMeetingWithRaymondLewallenOnBehaviorDrivenDesign.aspx">Raymond
Lewallen opened up the FSDNUG meetings by speaking about Behavior Driven Development</a>.
I didn’t really grok BDD at that point, but I’m learning. I most definitely prefer
the context/specification style of naming specs over traditional TDD test names.
</p>
        <p>
          <strong>Conferences</strong>
        </p>
        <p>
I was fortunate enough to attend both <a href="http://www.mohundro.com/blog/2008/07/02/TechEdNdashDay1Review.aspx">Tech
Ed</a> and <a href="http://www.mohundro.com/blog/2008/08/27/devLink2008Recap.aspx">DevLink</a> this
year. I even told people at DevLink that I’d be attending <a href="http://codemash.org/">CodeMash</a>,
but I sadly won’t be able to make it after all. I have no doubts that it will be an
amazing conference, though, and wish I could be there.
</p>
        <p>
          <strong>Presentations</strong>
        </p>
        <p>
I presented on PowerShell three times in 2008. <a href="http://www.mohundro.com/blog/2008/09/09/PowerShellFSDNUGPresentationWithSlidesAndNotes.aspx">Once
to FSDNUG</a>, <a href="http://www.mohundro.com/blog/2008/09/30/SlidesAndNotesFromMNUGTalk.aspx">once
to MNUG</a> and then once to Harding University CS students. My presentations pretty
much took up <a href="http://www.mohundro.com/blog/default,month,2008-09.aspx">all
of September</a>. It was a great experience and I’m looking forward to speaking to
the Shreveport .NET User Group in March!
</p>
        <p>
          <strong>Posts</strong>
        </p>
        <p>
My post on <a href="http://www.mohundro.com/blog/2008/05/23/RealWorldWalkthroughWithWinDbg.aspx">“real
world debugging witn WinDbg” post</a> was featured on the <a href="http://msdn.microsoft.com/en-us/events/teched/cc531163.aspx">Tech
Ed bloggers site</a>, which led to me being selected as a “featured Tech Ed blogger”
for a day. I was also excited to have my <a href="http://www.mohundro.com/blog/2008/10/11/SimplePowerShellScriptToGenerateThumbnails.aspx">PowerShell
thumbnail script</a><a href="http://feeds.feedburner.com/~r/Powerscripting/~3/455545211/index.php">mentioned
on the PowerScripting Podcast</a>.
</p>
        <p>
          <strong>In closing…</strong>
        </p>
        <p>
All in all, a really great year. I noted in 2007, that it had been the year of the
most growth for me as a developer. That was true… at least until 2008. My opinion
right now is that there is no such thing as a good developer, only a better developer.
This saying comes from a discussion I had with a coworker a few months back where
we came to the conclusion that there isn’t such a thing as a good design or architecture,
only a better design or architecture – all because we’ll inevitably have learned a
better way to do things in the future.
</p>
        <p>
I hope everyone has a great 2009!
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=58b84948-4d3c-4e9e-bd3f-4a424165ac14" />
      </body>
      <title>I&amp;rsquo;m thankful that my computer will type &amp;lsquo;2009&amp;rsquo; for me</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,58b84948-4d3c-4e9e-bd3f-4a424165ac14.aspx</guid>
      <link>http://www.mohundro.com/blog/2009/01/01/IrsquomThankfulThatMyComputerWillTypeLsquo2009rsquoForMe.aspx</link>
      <pubDate>Thu, 01 Jan 2009 20:13:41 GMT</pubDate>
      <description>&lt;p&gt;
So, a year ago to the day, I posted &lt;a href="http://www.mohundro.com/blog/2008/01/01/Welcome20082007InReview.aspx"&gt;my
review of 2007 with a look towards 2008&lt;/a&gt;. To continue that age old tradition, I
will now review 2008.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Learning&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I started off the month by stating that &lt;a href="http://www.mohundro.com/blog/2008/01/30/LearningTechnologiesOutsideAndInsideOfTheMicrosoftEcosystem.aspx"&gt;I
wanted to learn some new languages, primarily Python and Ruby&lt;/a&gt;. I’m sad to say
that I haven’t made it past the 5th python challenge yet. I pretty much got distracted,
which is a lame excuse. On the other hand, instead of learning languages, I’ve learned
a ton about editing in VIM and even a little about Emacs (though I have to use viper
or vimpulse to be at all productive in Emacs). I’m even using ViEmu in Visual Studio.
The Vim key-bindings have become muscle memory now and I consider that a positive
thing. I’m still going to try to learn other languages this year, but I’m going to
need a project to work on before I can become proficient.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;FSDNUG&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
This year, a very exciting thing for me was the formation of &lt;a href="http://www.fsdnug.org"&gt;FSDNUG&lt;/a&gt;. &lt;a href="http://www.mpaladino.com/"&gt;Michael
Paladino&lt;/a&gt; pretty much did all of the work, but he lets me call myself a co-leader. &lt;a href="http://www.mohundro.com/blog/2008/03/04/FSDNUGMeetingWithRaymondLewallenOnBehaviorDrivenDesign.aspx"&gt;Raymond
Lewallen opened up the FSDNUG meetings by speaking about Behavior Driven Development&lt;/a&gt;.
I didn’t really grok BDD at that point, but I’m learning. I most definitely prefer
the context/specification style of naming specs over traditional TDD test names.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Conferences&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I was fortunate enough to attend both &lt;a href="http://www.mohundro.com/blog/2008/07/02/TechEdNdashDay1Review.aspx"&gt;Tech
Ed&lt;/a&gt; and &lt;a href="http://www.mohundro.com/blog/2008/08/27/devLink2008Recap.aspx"&gt;DevLink&lt;/a&gt; this
year. I even told people at DevLink that I’d be attending &lt;a href="http://codemash.org/"&gt;CodeMash&lt;/a&gt;,
but I sadly won’t be able to make it after all. I have no doubts that it will be an
amazing conference, though, and wish I could be there.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Presentations&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I presented on PowerShell three times in 2008. &lt;a href="http://www.mohundro.com/blog/2008/09/09/PowerShellFSDNUGPresentationWithSlidesAndNotes.aspx"&gt;Once
to FSDNUG&lt;/a&gt;, &lt;a href="http://www.mohundro.com/blog/2008/09/30/SlidesAndNotesFromMNUGTalk.aspx"&gt;once
to MNUG&lt;/a&gt; and then once to Harding University CS students. My presentations pretty
much took up &lt;a href="http://www.mohundro.com/blog/default,month,2008-09.aspx"&gt;all
of September&lt;/a&gt;. It was a great experience and I’m looking forward to speaking to
the Shreveport .NET User Group in March!
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Posts&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
My post on &lt;a href="http://www.mohundro.com/blog/2008/05/23/RealWorldWalkthroughWithWinDbg.aspx"&gt;“real
world debugging witn WinDbg” post&lt;/a&gt; was featured on the &lt;a href="http://msdn.microsoft.com/en-us/events/teched/cc531163.aspx"&gt;Tech
Ed bloggers site&lt;/a&gt;, which led to me being selected as a “featured Tech Ed blogger”
for a day. I was also excited to have my &lt;a href="http://www.mohundro.com/blog/2008/10/11/SimplePowerShellScriptToGenerateThumbnails.aspx"&gt;PowerShell
thumbnail script&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~r/Powerscripting/~3/455545211/index.php"&gt;mentioned
on the PowerScripting Podcast&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;In closing…&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
All in all, a really great year. I noted in 2007, that it had been the year of the
most growth for me as a developer. That was true… at least until 2008. My opinion
right now is that there is no such thing as a good developer, only a better developer.
This saying comes from a discussion I had with a coworker a few months back where
we came to the conclusion that there isn’t such a thing as a good design or architecture,
only a better design or architecture – all because we’ll inevitably have learned a
better way to do things in the future.
&lt;/p&gt;
&lt;p&gt;
I hope everyone has a great 2009!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=58b84948-4d3c-4e9e-bd3f-4a424165ac14" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,58b84948-4d3c-4e9e-bd3f-4a424165ac14.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=f205cc06-a0da-43a9-adb9-4ba749106451</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,f205cc06-a0da-43a9-adb9-4ba749106451.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,f205cc06-a0da-43a9-adb9-4ba749106451.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=f205cc06-a0da-43a9-adb9-4ba749106451</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
          <a href="http://www.sullivansoftdev.com/blog/">Brian Sullivan</a>
          <a href="http://www.sullivansoftdev.com/blog/post/How-I-Got-Started-in-Programming.aspx">tagged
me with the latest ongoing meme</a>. I’m really sort of excited because I’ve missed
out on all the other memes going around. <a href="http://www.codinghorror.com/blog/">Jeff
Atwood</a> probably wouldn’t even consider me a real geek because of that. (I haven’t
updated a Wikipedia page either! Gasp!)
</p>
        <h4>How old were you when you started programming?
</h4>
        <p>
I didn’t write my first “Hello World” until I was 18 in COMP 170. I created my first
personal website when I was 15 I think, but my primary tools were <a href="http://en.wikipedia.org/wiki/Netscape_Composer">Netscape
Composer</a> and <a href="http://en.wikipedia.org/wiki/Paint_Shop_Pro">Paint Shop
Pro</a>. :-) I think I had figured out by that point some <em>very</em> basic Javascript,
but I really had no idea what I was doing.
</p>
        <h4>How did you get started in programming?
</h4>
        <p>
I remember when my dad got a new PC with Windows 3.1 on it. Prior to that, I knew
how to ‘cd’ between directories and how to run ‘dir’. All of these commands were,
of course, to get to the directory where my games were installed. :-) I never really
stayed in Windows at the time, because all the games were still DOS-based. I didn’t
really have much to do with Windows (except for the <a href="http://www.codinghorror.com/blog/archives/000341.html">Hot
Dog theme</a>), until Windows 95 came out. That’s when I started becoming more of
a computer enthusiast. I remember troubleshooting <a href="http://www.annoyances.org/exec/show/article04-100">Dial
Up Networking</a> so that our 14.4 modem would connect up. I also remember buying
my first piece of hardware, the <a href="http://en.wikipedia.org/wiki/3dfx">3dfx Voodoo
card</a>. 
</p>
        <p>
As I mentioned, I started doing some basic web pages when I was in high school. This
was the time of animated GIFs and tiled backgrounds, if you’re interested. This was
also back when 56K modems first came out and there wasn’t yet a clear standard on
how 56K modems would talk (you could either go with US Robotics or the cheap brands)
and I worked as tech support at a local ISP. It wasn’t hard to do tech support because
I had been troubleshooting my own Dial Up Networking problems for a few years already. 
</p>
        <p>
Coming from a tech support role, I didn’t really have any programming knowledge. I
knew how to build a computer and I even knew about msconfig, but programming??? Nah…
not really. Just WYSIWYG HTML. 
</p>
        <p>
When I graduated high school, I either wanted to be a musician or work with computers.
Seeing as how I didn’t really want to teach high school band, I decided to go to school
to learn about computers. I didn’t really know what Computer Science meant, but hey,
my grades were pretty good so why not? So, I chose a major of Computer Science and
the rest is history. 
</p>
        <h4>What was your first language?
</h4>
        <p>
Unlike the rest of the programming populace, my first language was actually <em>not</em> BASIC,
but C++. I didn’t actually write a line of BASIC until my junior year of college!
I would say that I currently prefer C# over VB.NET, but it has more to do with terseness
than it does with braces. For the same reason, I’m a fan of Ruby as well.
</p>
        <h4>What was the first real program that you wrote?
</h4>
        <p>
Are you saying Hello World doesn’t count? C’mon!
</p>
        <p>
I’m going to define “real program” in this case as something that I could show my
parents. I couldn’t show them “Hello World” or a command line application to create
a binary search tree because they couldn’t relate to it. However, I <em>could</em> show
them a GUI maze application that I wrote in Java. It had four players (one of which
could be human controllable) and then each player raced to get to the exit. I also
wrote a Solitaire program in C++, a networking Tic Tac Toe game in C++, and a Paint
program in C++ (using the Windows API).
</p>
        <p>
My first team application, like Brian’s, was created in the capstone course at <a href="http://www.harding.edu/">Harding</a>.
We wrote a version of Othello that had to be networked with an AI. I wrote the networking
code in C#. It even had threading code, which of course was written completely wrong.
I’m still not entirely convinced that I can write threading code correctly today.
:-)
</p>
        <h4>What languages have you used since you started programming?
</h4>
        <p>
In college, I primarily used C++ and C#, but I also had some exposure to some Assembler,
Java, VB.NET, Perl, and even LISP! My work experience includes a (thankfully short)
period of COBOL and JCL on an IBM mainframe, but primarily has been in VBScript (both
classic ASP as well as scripts), Javascript, PowerShell, C++, C#, and VB.NET.
</p>
        <p>
In my personal projects, I’ve used C#, VB.NET, JavaScript, PowerShell, PHP, Python,
and Ruby. I’m sure I’ve missed something in there.
</p>
        <h4>What was your first professional programming gig?
</h4>
        <p>
I got hired out of college to work at <a href="http://www.data-tronics.com/">Data-Tronics,
Corp</a>. where I still am to this day. My role has changed significantly now, where
I’m trying hard to push out 40 years of IT practices with more modern methodologies
(down Waterfall, down!) and technologies (down Mainframe, down!).
</p>
        <h4>If you knew what you know now, would you have started programming?
</h4>
        <p>
You bet. I’m a geek to the core.
</p>
        <h4>If there was one thing you learned along the way that you would tell new developers,
what would it be?
</h4>
        <p>
I’d have to agree completely with Brian – <em>get involved in the community</em>.
Do <strong><em>not</em></strong> let programming become just the job you perform.
Like <a href="http://blog.jpboodhoo.com/">JP</a>, get passionate about developing.
If you don’t enjoy what you do, there isn’t any point in doing it. Start reading blogs
and going to <a href="http://fsdnug.org/">user groups</a>. You’ll be overwhelmed at
how much you didn’t know, but remember that no one else knows it all either. We’re
all <a href="http://www.mohundro.com/blog/2007/03/15/HowToGetBetterAtWhatYoureDoing.aspx">learning
together</a>.
</p>
        <h4>What's the most fun you've ever had... programming?
</h4>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
I can’t think of any one specific instance, but I think one of the best feelings is,
after having spent literally hours trying to debug some problem and then giving up
and going home, waking up the next day and having the light bulb come on with the
solution to this problem. I love solving problems with software.
</p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <h4>Tag, you’re it!
</h4>
        <p>
          <a href="http://www.colinneller.com/blog/">Colin Neller</a>, come on down! 
<br /><a href="http://mysoftwarestartup.com/blogs/">Randy Walker</a>, you too!
</p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
I’ve got other tags if anyone else is interested. I might even give some out!
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=f205cc06-a0da-43a9-adb9-4ba749106451" />
      </body>
      <title>How I Got Started in Programming</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,f205cc06-a0da-43a9-adb9-4ba749106451.aspx</guid>
      <link>http://www.mohundro.com/blog/2008/07/15/HowIGotStartedInProgramming.aspx</link>
      <pubDate>Tue, 15 Jul 2008 17:36:10 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.sullivansoftdev.com/blog/"&gt;Brian Sullivan&lt;/a&gt; &lt;a href="http://www.sullivansoftdev.com/blog/post/How-I-Got-Started-in-Programming.aspx"&gt;tagged
me with the latest ongoing meme&lt;/a&gt;. I’m really sort of excited because I’ve missed
out on all the other memes going around. &lt;a href="http://www.codinghorror.com/blog/"&gt;Jeff
Atwood&lt;/a&gt; probably wouldn’t even consider me a real geek because of that. (I haven’t
updated a Wikipedia page either! Gasp!)
&lt;/p&gt;
&lt;h4&gt;How old were you when you started programming?
&lt;/h4&gt;
&lt;p&gt;
I didn’t write my first “Hello World” until I was 18 in COMP 170. I created my first
personal website when I was 15 I think, but my primary tools were &lt;a href="http://en.wikipedia.org/wiki/Netscape_Composer"&gt;Netscape
Composer&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Paint_Shop_Pro"&gt;Paint Shop
Pro&lt;/a&gt;. :-) I think I had figured out by that point some &lt;em&gt;very&lt;/em&gt; basic Javascript,
but I really had no idea what I was doing.
&lt;/p&gt;
&lt;h4&gt;How did you get started in programming?
&lt;/h4&gt;
&lt;p&gt;
I remember when my dad got a new PC with Windows 3.1 on it. Prior to that, I knew
how to ‘cd’ between directories and how to run ‘dir’. All of these commands were,
of course, to get to the directory where my games were installed. :-) I never really
stayed in Windows at the time, because all the games were still DOS-based. I didn’t
really have much to do with Windows (except for the &lt;a href="http://www.codinghorror.com/blog/archives/000341.html"&gt;Hot
Dog theme&lt;/a&gt;), until Windows 95 came out. That’s when I started becoming more of
a computer enthusiast. I remember troubleshooting &lt;a href="http://www.annoyances.org/exec/show/article04-100"&gt;Dial
Up Networking&lt;/a&gt; so that our 14.4 modem would connect up. I also remember buying
my first piece of hardware, the &lt;a href="http://en.wikipedia.org/wiki/3dfx"&gt;3dfx Voodoo
card&lt;/a&gt;. 
&lt;p&gt;
As I mentioned, I started doing some basic web pages when I was in high school. This
was the time of animated GIFs and tiled backgrounds, if you’re interested. This was
also back when 56K modems first came out and there wasn’t yet a clear standard on
how 56K modems would talk (you could either go with US Robotics or the cheap brands)
and I worked as tech support at a local ISP. It wasn’t hard to do tech support because
I had been troubleshooting my own Dial Up Networking problems for a few years already. 
&lt;p&gt;
Coming from a tech support role, I didn’t really have any programming knowledge. I
knew how to build a computer and I even knew about msconfig, but programming??? Nah…
not really. Just WYSIWYG HTML. 
&lt;p&gt;
When I graduated high school, I either wanted to be a musician or work with computers.
Seeing as how I didn’t really want to teach high school band, I decided to go to school
to learn about computers. I didn’t really know what Computer Science meant, but hey,
my grades were pretty good so why not? So, I chose a major of Computer Science and
the rest is history. 
&lt;h4&gt;What was your first language?
&lt;/h4&gt;
&lt;p&gt;
Unlike the rest of the programming populace, my first language was actually &lt;em&gt;not&lt;/em&gt; BASIC,
but C++. I didn’t actually write a line of BASIC until my junior year of college!
I would say that I currently prefer C# over VB.NET, but it has more to do with terseness
than it does with braces. For the same reason, I’m a fan of Ruby as well.
&lt;/p&gt;
&lt;h4&gt;What was the first real program that you wrote?
&lt;/h4&gt;
&lt;p&gt;
Are you saying Hello World doesn’t count? C’mon!
&lt;/p&gt;
&lt;p&gt;
I’m going to define “real program” in this case as something that I could show my
parents. I couldn’t show them “Hello World” or a command line application to create
a binary search tree because they couldn’t relate to it. However, I &lt;em&gt;could&lt;/em&gt; show
them a GUI maze application that I wrote in Java. It had four players (one of which
could be human controllable) and then each player raced to get to the exit. I also
wrote a Solitaire program in C++, a networking Tic Tac Toe game in C++, and a Paint
program in C++ (using the Windows API).
&lt;/p&gt;
&lt;p&gt;
My first team application, like Brian’s, was created in the capstone course at &lt;a href="http://www.harding.edu/"&gt;Harding&lt;/a&gt;.
We wrote a version of Othello that had to be networked with an AI. I wrote the networking
code in C#. It even had threading code, which of course was written completely wrong.
I’m still not entirely convinced that I can write threading code correctly today.
:-)
&lt;/p&gt;
&lt;h4&gt;What languages have you used since you started programming?
&lt;/h4&gt;
&lt;p&gt;
In college, I primarily used C++ and C#, but I also had some exposure to some Assembler,
Java, VB.NET, Perl, and even LISP! My work experience includes a (thankfully short)
period of COBOL and JCL on an IBM mainframe, but primarily has been in VBScript (both
classic ASP as well as scripts), Javascript, PowerShell, C++, C#, and VB.NET.
&lt;/p&gt;
&lt;p&gt;
In my personal projects, I’ve used C#, VB.NET, JavaScript, PowerShell, PHP, Python,
and Ruby. I’m sure I’ve missed something in there.
&lt;/p&gt;
&lt;h4&gt;What was your first professional programming gig?
&lt;/h4&gt;
&lt;p&gt;
I got hired out of college to work at &lt;a href="http://www.data-tronics.com/"&gt;Data-Tronics,
Corp&lt;/a&gt;. where I still am to this day. My role has changed significantly now, where
I’m trying hard to push out 40 years of IT practices with more modern methodologies
(down Waterfall, down!) and technologies (down Mainframe, down!).
&lt;/p&gt;
&lt;h4&gt;If you knew what you know now, would you have started programming?
&lt;/h4&gt;
&lt;p&gt;
You bet. I’m a geek to the core.
&lt;/p&gt;
&lt;h4&gt;If there was one thing you learned along the way that you would tell new developers,
what would it be?
&lt;/h4&gt;
&lt;p&gt;
I’d have to agree completely with Brian – &lt;em&gt;get involved in the community&lt;/em&gt;.
Do &lt;strong&gt;&lt;em&gt;not&lt;/em&gt;&lt;/strong&gt; let programming become just the job you perform.
Like &lt;a href="http://blog.jpboodhoo.com/"&gt;JP&lt;/a&gt;, get passionate about developing.
If you don’t enjoy what you do, there isn’t any point in doing it. Start reading blogs
and going to &lt;a href="http://fsdnug.org/"&gt;user groups&lt;/a&gt;. You’ll be overwhelmed at
how much you didn’t know, but remember that no one else knows it all either. We’re
all &lt;a href="http://www.mohundro.com/blog/2007/03/15/HowToGetBetterAtWhatYoureDoing.aspx"&gt;learning
together&lt;/a&gt;.
&lt;/p&gt;
&lt;h4&gt;What's the most fun you've ever had... programming?
&lt;/h4&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;
&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;
&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;
&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;
&lt;p&gt;
I can’t think of any one specific instance, but I think one of the best feelings is,
after having spent literally hours trying to debug some problem and then giving up
and going home, waking up the next day and having the light bulb come on with the
solution to this problem. I love solving problems with software.
&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;
&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;
&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;
&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;
&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;
&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;
&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;
&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;
&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;h4&gt;Tag, you’re it!
&lt;/h4&gt;
&lt;p&gt;
&lt;a href="http://www.colinneller.com/blog/"&gt;Colin Neller&lt;/a&gt;, come on down! 
&lt;br&gt;
&lt;a href="http://mysoftwarestartup.com/blogs/"&gt;Randy Walker&lt;/a&gt;, you too!
&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’ve got other tags if anyone else is interested. I might even give some out!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=f205cc06-a0da-43a9-adb9-4ba749106451" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,f205cc06-a0da-43a9-adb9-4ba749106451.aspx</comments>
      <category>General</category>
      <category>Programming</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=55f85d62-1a90-42c4-9ed4-6517fb1fd32c</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,55f85d62-1a90-42c4-9ed4-6517fb1fd32c.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,55f85d62-1a90-42c4-9ed4-6517fb1fd32c.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=55f85d62-1a90-42c4-9ed4-6517fb1fd32c</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
A couple of weeks ago, I was fortunate enough to attend the Tech Ed 2008 Developer
conference. It was my first Tech Ed conference and I had a great time. (Yes, I still
need to blog about my experiences there overall and I’m still planning on doing that.)
One thing I wanted to bring up if you’ve never been to Tech Ed before is the great
experience that the Hands on Labs (HOLs) provided. Basically, you walked up to the
HOL computer and, in a few short steps, you had a full development virtual machine
ready to go. It was a really nice experience and ensured that you could try out new
features without having to set up your own VM or worse, download and install a lot
of betas on your own development machine.
</p>
        <p>
Apparently, Microsoft is using the same setup <em>over the web</em>. Maybe I’ve been
in the dark for a long time, but I’ve never used a VM in a browser window before.
Check the screenshot out:
</p>
        <p>
          <a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/HaveyouguyseverlookedatMicrosoftVirtualL_70DA/image_4.png">
            <img title="image" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="459" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/HaveyouguyseverlookedatMicrosoftVirtualL_70DA/image_thumb_1.png" width="644" border="0" />
          </a>
        </p>
        <p>
Seriously, look at the browser title – this is in IE. On the right side of the screen,
you’ve got the lab walkthrough, too. If you’ve been unable to look at new technology
like .NET 3.5, LINQ, WPF, WCF, etc, you should check out Microsoft’s Virtual Labs.
The MSDN Virtual Labs are at <a title="http://msdn.microsoft.com/en-us/virtuallabs/default.aspx" href="http://msdn.microsoft.com/en-us/virtuallabs/default.aspx">http://msdn.microsoft.com/en-us/virtuallabs/default.aspx</a>,
but <a href="http://technet.microsoft.com/en-us/bb467605.aspx">TechNet also has labs</a> for
things like Windows Server 2008.
</p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
          <a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/HaveyouguyseverlookedatMicrosoftVirtualL_70DA/image_8.png">
            <img title="image" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="484" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/HaveyouguyseverlookedatMicrosoftVirtualL_70DA/image_thumb_3.png" width="595" border="0" />
          </a>
        </p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=55f85d62-1a90-42c4-9ed4-6517fb1fd32c" />
      </body>
      <title>Have you guys ever looked at Microsoft Virtual Labs?</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,55f85d62-1a90-42c4-9ed4-6517fb1fd32c.aspx</guid>
      <link>http://www.mohundro.com/blog/2008/06/18/HaveYouGuysEverLookedAtMicrosoftVirtualLabs.aspx</link>
      <pubDate>Wed, 18 Jun 2008 13:01:36 GMT</pubDate>
      <description>&lt;p&gt;
A couple of weeks ago, I was fortunate enough to attend the Tech Ed 2008 Developer
conference. It was my first Tech Ed conference and I had a great time. (Yes, I still
need to blog about my experiences there overall and I’m still planning on doing that.)
One thing I wanted to bring up if you’ve never been to Tech Ed before is the great
experience that the Hands on Labs (HOLs) provided. Basically, you walked up to the
HOL computer and, in a few short steps, you had a full development virtual machine
ready to go. It was a really nice experience and ensured that you could try out new
features without having to set up your own VM or worse, download and install a lot
of betas on your own development machine.
&lt;/p&gt;
&lt;p&gt;
Apparently, Microsoft is using the same setup &lt;em&gt;over the web&lt;/em&gt;. Maybe I’ve been
in the dark for a long time, but I’ve never used a VM in a browser window before.
Check the screenshot out:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/HaveyouguyseverlookedatMicrosoftVirtualL_70DA/image_4.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="459" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/HaveyouguyseverlookedatMicrosoftVirtualL_70DA/image_thumb_1.png" width="644" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Seriously, look at the browser title – this is in IE. On the right side of the screen,
you’ve got the lab walkthrough, too. If you’ve been unable to look at new technology
like .NET 3.5, LINQ, WPF, WCF, etc, you should check out Microsoft’s Virtual Labs.
The MSDN Virtual Labs are at &lt;a title="http://msdn.microsoft.com/en-us/virtuallabs/default.aspx" href="http://msdn.microsoft.com/en-us/virtuallabs/default.aspx"&gt;http://msdn.microsoft.com/en-us/virtuallabs/default.aspx&lt;/a&gt;,
but &lt;a href="http://technet.microsoft.com/en-us/bb467605.aspx"&gt;TechNet also has labs&lt;/a&gt; for
things like Windows Server 2008.
&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;
&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;a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/HaveyouguyseverlookedatMicrosoftVirtualL_70DA/image_8.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="484" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/HaveyouguyseverlookedatMicrosoftVirtualL_70DA/image_thumb_3.png" width="595" border="0"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=55f85d62-1a90-42c4-9ed4-6517fb1fd32c" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,55f85d62-1a90-42c4-9ed4-6517fb1fd32c.aspx</comments>
      <category>.NET</category>
      <category>General</category>
      <category>Visual Studio</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=fc4bf46e-1cdd-4337-9b84-5ebfa7e297d2</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,fc4bf46e-1cdd-4337-9b84-5ebfa7e297d2.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,fc4bf46e-1cdd-4337-9b84-5ebfa7e297d2.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=fc4bf46e-1cdd-4337-9b84-5ebfa7e297d2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/GmaildownOhnoes_8004/image_2.png">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="527" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/GmaildownOhnoes_8004/image_thumb.png" width="494" border="0" />
          </a>
        </p>
        <p>
(Sorry for the lack of substance with this blog post - I'm hoping that just posting <em>anything</em> will
spur me on to post something <em>with</em> substance. Wish me luck.)
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=fc4bf46e-1cdd-4337-9b84-5ebfa7e297d2" />
      </body>
      <title>Gmail down?!? Oh noes!</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,fc4bf46e-1cdd-4337-9b84-5ebfa7e297d2.aspx</guid>
      <link>http://www.mohundro.com/blog/2008/04/24/GmailDownOhNoes.aspx</link>
      <pubDate>Thu, 24 Apr 2008 14:06:17 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/GmaildownOhnoes_8004/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="527" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/GmaildownOhnoes_8004/image_thumb.png" width="494" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
(Sorry for the lack of substance with this blog post - I'm hoping that just posting &lt;em&gt;anything&lt;/em&gt; will
spur me on to post something &lt;em&gt;with&lt;/em&gt; substance. Wish me luck.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=fc4bf46e-1cdd-4337-9b84-5ebfa7e297d2" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,fc4bf46e-1cdd-4337-9b84-5ebfa7e297d2.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=61869ce7-3719-4e37-b669-dd0ee6196511</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,61869ce7-3719-4e37-b669-dd0ee6196511.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,61869ce7-3719-4e37-b669-dd0ee6196511.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=61869ce7-3719-4e37-b669-dd0ee6196511</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Just a reminder to anyone in the Fort Smith area - we'll be meeting next Monday night
at 6:00 to hear <a href="http://blogs.msdn.com/chkoenig/">Chris Koenig</a> talk about
Silverlight. Chris is a Microsoft Developer Evangelist located out of Dallas. I got
to meet Chris last year for a grand total of about 5 minutes when I went down for
the .NET Roadshow that was hosted at Microsoft's office in Dallas. Chris got to escort
me and the others between floors on the elevator :-)
</p>
        <p>
Anyway, if you're in the area, swing by. We'd love to see you. For more information,
check out the <a href="http://fsdnug.org/">FSDNUG website</a>.
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=61869ce7-3719-4e37-b669-dd0ee6196511" />
      </body>
      <title>FSDNUG Meeting with Chris Koenig on Silverlight</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,61869ce7-3719-4e37-b669-dd0ee6196511.aspx</guid>
      <link>http://www.mohundro.com/blog/2008/03/28/FSDNUGMeetingWithChrisKoenigOnSilverlight.aspx</link>
      <pubDate>Fri, 28 Mar 2008 21:24:36 GMT</pubDate>
      <description>&lt;p&gt;
Just a reminder to anyone in the Fort Smith area - we'll be meeting next Monday night
at 6:00 to hear &lt;a href="http://blogs.msdn.com/chkoenig/"&gt;Chris Koenig&lt;/a&gt; talk about
Silverlight. Chris is a Microsoft Developer Evangelist located out of Dallas. I got
to meet Chris last year for a grand total of about 5 minutes when I went down for
the .NET Roadshow that was hosted at Microsoft's office in Dallas. Chris got to escort
me and the others between floors on the elevator :-)
&lt;/p&gt;
&lt;p&gt;
Anyway, if you're in the area, swing by. We'd love to see you. For more information,
check out the &lt;a href="http://fsdnug.org/"&gt;FSDNUG website&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=61869ce7-3719-4e37-b669-dd0ee6196511" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,61869ce7-3719-4e37-b669-dd0ee6196511.aspx</comments>
      <category>.NET</category>
      <category>.NET User Group</category>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=c1eccfb3-6085-4469-83e0-01d2c630f4ca</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,c1eccfb3-6085-4469-83e0-01d2c630f4ca.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,c1eccfb3-6085-4469-83e0-01d2c630f4ca.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=c1eccfb3-6085-4469-83e0-01d2c630f4ca</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
If you've been working with the .NET Framework for a while, you're hopefully already
using some form of static analysis to help you catch problems with your code. One
of the most well known is Microsoft's <a href="http://msdn2.microsoft.com/en-us/library/bb429476(VS.80).aspx">FxCop</a>,
which is now integrated as the Code Analysis feature in Visual Studio 2005 <sup>[1]</sup> and
up. If you're not already using this tool, then please start because it can help you
find problem areas like potential NullReferenceExceptions as well as globalization
and security issues.
</p>
        <p>
However, while FxCop is great at catching small problems and details, it isn't the
best tool to see the big picture regarding your software. Enter <a href="http://www.ndepend.com/">NDepend</a> by <a href="http://codebetter.com/blogs/patricksmacchia/">Patrick
Smacchia</a>. Chances are, you've already read <a href="http://www.hanselman.com/blog/">Scott
Hanselman</a>'s <a href="http://www.hanselman.com/blog/ExitingTheZoneOfPainStaticAnalysisWithNDepend.aspx">great
review of NDepend</a> a while back (or heard <a href="http://www.hanselman.com/blog/HanselminutesPodcast51StaticCodeAnalysisWithNDepend.aspx">his
podcast on static analysis with NDepend</a>). If you haven't read it, go ahead and
check it out. Scott uses NDepend to analyze <a href="http://dasblog.info/">dasBlog</a> (which
I'm running), so you can get the general feel for working with NDepend and what the
reports look like.
</p>
        <p>
I'd like to run through a few of the features of NDepend using <a href="http://www.ayende.com/projects/rhino-mocks/downloads.aspx">Rhino
Mocks</a> as the target of my static analysis. Rhino Mocks is a neat example because
it is only one assembly, but it is the result of an ILMerge of quite a few different
libraries, so we get to see how NDepend handles this. Here is NDepend's class browser
showing Rhino Mocks:
</p>
        <p>
          <a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/NDependStaticanalysisonsteroids_E81A/image_6.png">
            <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="484" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/NDependStaticanalysisonsteroids_E81A/image_thumb_2.png" width="407" border="0" />
          </a>
        </p>
        <p>
As you can see, it handles Rhino Mocks accurately. In fact, it almost feels like the
class browser in Reflector, so that is already a plus. In fact, as you can see, the
context menu supports jumping to Reflector for the selected type.
</p>
        <p>
The "Who is directly using me?" option is also pretty cool and highlights the extensive
use of CQL in NDepend:
</p>
        <p>
          <a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/NDependStaticanalysisonsteroids_E81A/image_8.png">
            <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="130" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/NDependStaticanalysisonsteroids_E81A/image_thumb_3.png" width="644" border="0" />
          </a>
        </p>
        <p>
CQL, or <a href="http://www.ndepend.com/CQL.htm">Code Query Language</a>, is the centerpiece
of NDepend and is how all of the analysis happens. You can think of it as SQL against
IL. The massive benefit that NDepend has over FxCop <acronym title="in my humble opinion">IMHO</acronym> is
that you can create your own analysis rules in CQL instead of having to write and
compile a DLL to extend FxCop (for an example of this, check out <a href="http://www.binarycoder.net/fxcop/html/ar01s22.html">this
FxCop rule that ensures that ArrayLists are List&lt;T&gt;s instead</a>). Even better,
NDepend provides a complete editor <em>with intellisense</em> that allows you to test
your queries out against your assemblies.
</p>
        <p>
          <a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/NDependStaticanalysisonsteroids_E81A/image_14.png">
            <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="484" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/NDependStaticanalysisonsteroids_E81A/image_thumb_6.png" width="621" border="0" />
          </a>
        </p>
        <p>
Take a look at this screenshot. You can see the intellisense at the bottom right hand
of the screen. At the top left is the CQL Query Results. The top right is all of the
types in the assemblies, but the highlighted ones in blue are those that were returned
by the query. This all happened <em>as I typed the query in</em>. Actually, I got
red when I typed it in the first time, because my query had some mistakes in it, but
NDepend was very helpful in showing me how to correct my query.
</p>
        <p>
The query editor also has different types of intellisense depending on the value.
</p>
        <p>
          <a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/NDependStaticanalysisonsteroids_E81A/image_16.png">
            <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="90" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/NDependStaticanalysisonsteroids_E81A/image_thumb_7.png" width="479" border="0" />
          </a>
        </p>
        <p>
I'll admit that it might seem weird to have a slider when you're just typing a number
in, but the cool part is when you change the value, the query results automatically
change to reflect the new value. In this case, you can watch the results of the query
to get a feel for which types have the most methods.
</p>
        <p>
From an agile coding perspective, NDepend ties in well with <a href="http://www.altnetpedia.com/ContinuousIntegration.ashx">Continuous
Integration</a>. It ships with both a <a href="http://nant.sourceforge.net/">NANT</a> and
an <a href="http://msdn2.microsoft.com/en-us/library/0k6kkbsd.aspx">MSBuild</a> task
to run the NDepend console against an NDepend project file (which is just XML). The
report that it provides is <em>insanely</em> detailed. I'd say this where the value
of application-specific CQL queries would come in handy, because you can come up with
some detailed queries that are run on every CI build to ensure that the code still
matches whatever design criteria was decided upon when the queries were written.
</p>
        <p>
 <a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/NDependStaticanalysisonsteroids_E81A/image_18.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="130" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/NDependStaticanalysisonsteroids_E81A/image_thumb_8.png" width="644" border="0" /></a></p>
        <p>
For future versions of the tool, I'd think it would be neat to have a lightweight
version of the CQL tool that you could ad hoc queries against assemblies, like as
a Reflector addin or something. That'd be cool. Or maybe a Powershell cmdlet/PSDrive
provider so that you could do something like this:
</p>
        <pre>
          <font color="#2b91af">Get-ChildItem</font> -Include *.dll -Recurse | <span style="color: #2b91af">Select</span>-Cql
-Top <span style="color: maroon">10</span> -Methods -<span style="color: blue">Where</span> MethodCa
-ge <span style="color: maroon">5</span></pre>
        <p>
Or maybe:
</p>
        <pre>
          <font color="#2b91af">Get-ChildItem</font> -Include *.dll -Recurse | <span style="color: #2b91af">Select</span>-Cql
-Top <span style="color: maroon">10</span> -Methods | <span style="color: blue">Where</span> {
$_.MethodCa -ge <span style="color: maroon">5</span> }</pre>
        <p>
I'm not sure exactly how the syntax might look, but it would be really cool :-)
</p>
        <p>
Hopefully, I've given you a good picture of the some of the features of NDepend. If
your interest is at all piqued, there is a "Trial / Open Source / Academic Edition"
that you can download for free. Its feature set isn't quite as broad as the Professional
edition, but I've used it before and it still provides a lot of functionality. Check
it out!
</p>
        <p>
 
</p>
        <p>
          <strong>Full Disclosure</strong> - I used a review copy of NDepend for this post.
My company is not (yet) using this tool, but I think that there is interest. I wasn't
paid to do this. <strong>&lt;kidding&gt;</strong>If you, dear reader, would like to
pay me, please contact me.<strong>&lt;/kidding&gt;</strong></p>
        <p>
 
</p>
        <p>
          <sup>[1]</sup> I don't believe that all of the SKUs of Visual Studio have the Code
Analysis feature.
</p>
        <div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:5734396d-c404-44ee-841f-4af9f8e621a1" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati
Tags: <a href="http://technorati.com/tags/NDepend" rel="tag">NDepend</a>,<a href="http://technorati.com/tags/Static%20Analysis" rel="tag">Static
Analysis</a></div>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=c1eccfb3-6085-4469-83e0-01d2c630f4ca" />
      </body>
      <title>NDepend - Static analysis on steroids</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,c1eccfb3-6085-4469-83e0-01d2c630f4ca.aspx</guid>
      <link>http://www.mohundro.com/blog/2008/03/26/NDependStaticAnalysisOnSteroids.aspx</link>
      <pubDate>Wed, 26 Mar 2008 12:58:49 GMT</pubDate>
      <description>&lt;p&gt;
If you've been working with the .NET Framework for a while, you're hopefully already
using some form of static analysis to help you catch problems with your code. One
of the most well known is Microsoft's &lt;a href="http://msdn2.microsoft.com/en-us/library/bb429476(VS.80).aspx"&gt;FxCop&lt;/a&gt;,
which is now integrated as the Code Analysis feature in Visual Studio 2005 &lt;sup&gt;[1]&lt;/sup&gt; and
up. If you're not already using this tool, then please start because it can help you
find problem areas like potential NullReferenceExceptions as well as globalization
and security issues.
&lt;/p&gt;
&lt;p&gt;
However, while FxCop is great at catching small problems and details, it isn't the
best tool to see the big picture regarding your software. Enter &lt;a href="http://www.ndepend.com/"&gt;NDepend&lt;/a&gt; by &lt;a href="http://codebetter.com/blogs/patricksmacchia/"&gt;Patrick
Smacchia&lt;/a&gt;. Chances are, you've already read &lt;a href="http://www.hanselman.com/blog/"&gt;Scott
Hanselman&lt;/a&gt;'s &lt;a href="http://www.hanselman.com/blog/ExitingTheZoneOfPainStaticAnalysisWithNDepend.aspx"&gt;great
review of NDepend&lt;/a&gt; a while back (or heard &lt;a href="http://www.hanselman.com/blog/HanselminutesPodcast51StaticCodeAnalysisWithNDepend.aspx"&gt;his
podcast on static analysis with NDepend&lt;/a&gt;). If you haven't read it, go ahead and
check it out. Scott uses NDepend to analyze &lt;a href="http://dasblog.info/"&gt;dasBlog&lt;/a&gt; (which
I'm running), so you can get the general feel for working with NDepend and what the
reports look like.
&lt;/p&gt;
&lt;p&gt;
I'd like to run through a few of the features of NDepend using &lt;a href="http://www.ayende.com/projects/rhino-mocks/downloads.aspx"&gt;Rhino
Mocks&lt;/a&gt; as the target of my static analysis. Rhino Mocks is a neat example because
it is only one assembly, but it is the result of an ILMerge of quite a few different
libraries, so we get to see how NDepend handles this. Here is NDepend's class browser
showing Rhino Mocks:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/NDependStaticanalysisonsteroids_E81A/image_6.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="484" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/NDependStaticanalysisonsteroids_E81A/image_thumb_2.png" width="407" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
As you can see, it handles Rhino Mocks accurately. In fact, it almost feels like the
class browser in Reflector, so that is already a plus. In fact, as you can see, the
context menu supports jumping to Reflector for the selected type.
&lt;/p&gt;
&lt;p&gt;
The "Who is directly using me?" option is also pretty cool and highlights the extensive
use of CQL in NDepend:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/NDependStaticanalysisonsteroids_E81A/image_8.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="130" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/NDependStaticanalysisonsteroids_E81A/image_thumb_3.png" width="644" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
CQL, or &lt;a href="http://www.ndepend.com/CQL.htm"&gt;Code Query Language&lt;/a&gt;, is the centerpiece
of NDepend and is how all of the analysis happens. You can think of it as SQL against
IL. The massive benefit that NDepend has over FxCop &lt;acronym title="in my humble opinion"&gt;IMHO&lt;/acronym&gt; is
that you can create your own analysis rules in CQL instead of having to write and
compile a DLL to extend FxCop (for an example of this, check out &lt;a href="http://www.binarycoder.net/fxcop/html/ar01s22.html"&gt;this
FxCop rule that ensures that ArrayLists are List&amp;lt;T&amp;gt;s instead&lt;/a&gt;). Even better,
NDepend provides a complete editor &lt;em&gt;with intellisense&lt;/em&gt; that allows you to test
your queries out against your assemblies.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/NDependStaticanalysisonsteroids_E81A/image_14.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="484" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/NDependStaticanalysisonsteroids_E81A/image_thumb_6.png" width="621" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Take a look at this screenshot. You can see the intellisense at the bottom right hand
of the screen. At the top left is the CQL Query Results. The top right is all of the
types in the assemblies, but the highlighted ones in blue are those that were returned
by the query. This all happened &lt;em&gt;as I typed the query in&lt;/em&gt;. Actually, I got
red when I typed it in the first time, because my query had some mistakes in it, but
NDepend was very helpful in showing me how to correct my query.
&lt;/p&gt;
&lt;p&gt;
The query editor also has different types of intellisense depending on the value.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/NDependStaticanalysisonsteroids_E81A/image_16.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="90" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/NDependStaticanalysisonsteroids_E81A/image_thumb_7.png" width="479" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
I'll admit that it might seem weird to have a slider when you're just typing a number
in, but the cool part is when you change the value, the query results automatically
change to reflect the new value. In this case, you can watch the results of the query
to get a feel for which types have the most methods.
&lt;/p&gt;
&lt;p&gt;
From an agile coding perspective, NDepend ties in well with &lt;a href="http://www.altnetpedia.com/ContinuousIntegration.ashx"&gt;Continuous
Integration&lt;/a&gt;. It ships with both a &lt;a href="http://nant.sourceforge.net/"&gt;NANT&lt;/a&gt; and
an &lt;a href="http://msdn2.microsoft.com/en-us/library/0k6kkbsd.aspx"&gt;MSBuild&lt;/a&gt; task
to run the NDepend console against an NDepend project file (which is just XML). The
report that it provides is &lt;em&gt;insanely&lt;/em&gt; detailed. I'd say this where the value
of application-specific CQL queries would come in handy, because you can come up with
some detailed queries that are run on every CI build to ensure that the code still
matches whatever design criteria was decided upon when the queries were written.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&lt;a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/NDependStaticanalysisonsteroids_E81A/image_18.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="130" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/NDependStaticanalysisonsteroids_E81A/image_thumb_8.png" width="644" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
For future versions of the tool, I'd think it would be neat to have a lightweight
version of the CQL tool that you could ad hoc queries against assemblies, like as
a Reflector addin or something. That'd be cool. Or maybe a Powershell cmdlet/PSDrive
provider so that you could do something like this:
&lt;/p&gt;
&lt;pre&gt;&lt;font color="#2b91af"&gt;Get-ChildItem&lt;/font&gt; -Include *.dll -Recurse | &lt;span style="color: #2b91af"&gt;Select&lt;/span&gt;-Cql
-Top &lt;span style="color: maroon"&gt;10&lt;/span&gt; -Methods -&lt;span style="color: blue"&gt;Where&lt;/span&gt; MethodCa
-ge &lt;span style="color: maroon"&gt;5&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
Or maybe:
&lt;/p&gt;
&lt;pre&gt;&lt;font color="#2b91af"&gt;Get-ChildItem&lt;/font&gt; -Include *.dll -Recurse | &lt;span style="color: #2b91af"&gt;Select&lt;/span&gt;-Cql
-Top &lt;span style="color: maroon"&gt;10&lt;/span&gt; -Methods | &lt;span style="color: blue"&gt;Where&lt;/span&gt; {
$_.MethodCa -ge &lt;span style="color: maroon"&gt;5&lt;/span&gt; }&lt;/pre&gt;
&lt;p&gt;
I'm not sure exactly how the syntax might look, but it would be really cool :-)
&lt;/p&gt;
&lt;p&gt;
Hopefully, I've given you a good picture of the some of the features of NDepend. If
your interest is at all piqued, there is a "Trial / Open Source / Academic Edition"
that you can download for free. Its feature set isn't quite as broad as the Professional
edition, but I've used it before and it still provides a lot of functionality. Check
it out!
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Full Disclosure&lt;/strong&gt; - I used a review copy of NDepend for this post.
My company is not (yet) using this tool, but I think that there is interest. I wasn't
paid to do this. &lt;strong&gt;&amp;lt;kidding&amp;gt;&lt;/strong&gt;If you, dear reader, would like to
pay me, please contact me.&lt;strong&gt;&amp;lt;/kidding&amp;gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;sup&gt;[1]&lt;/sup&gt; I don't believe that all of the SKUs of Visual Studio have the Code
Analysis feature.
&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:5734396d-c404-44ee-841f-4af9f8e621a1" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati
Tags: &lt;a href="http://technorati.com/tags/NDepend" rel="tag"&gt;NDepend&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Static%20Analysis" rel="tag"&gt;Static
Analysis&lt;/a&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=c1eccfb3-6085-4469-83e0-01d2c630f4ca" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,c1eccfb3-6085-4469-83e0-01d2c630f4ca.aspx</comments>
      <category>.NET</category>
      <category>General</category>
      <category>Utilities</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=58e07d5b-ffb3-4d55-81e2-8f0a3797ca1a</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,58e07d5b-ffb3-4d55-81e2-8f0a3797ca1a.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,58e07d5b-ffb3-4d55-81e2-8f0a3797ca1a.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=58e07d5b-ffb3-4d55-81e2-8f0a3797ca1a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/MyActivityCloud_7C54/image_4.png">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="708" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/MyActivityCloud_7C54/image_thumb_1.png" width="650" border="0" />
          </a>
        </p>
        <p>
Anyone else find this funny? I know I do! I told you I was a beta junkie.
</p>
        <div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:70621ddf-720f-46ba-8cea-b7e524183ec6" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati
Tags: <a href="http://technorati.com/tags/TimeSnapper" rel="tag">TimeSnapper</a></div>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=58e07d5b-ffb3-4d55-81e2-8f0a3797ca1a" />
      </body>
      <title>My Activity Cloud</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,58e07d5b-ffb3-4d55-81e2-8f0a3797ca1a.aspx</guid>
      <link>http://www.mohundro.com/blog/2008/03/20/MyActivityCloud.aspx</link>
      <pubDate>Thu, 20 Mar 2008 13:50:31 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/MyActivityCloud_7C54/image_4.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="708" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/MyActivityCloud_7C54/image_thumb_1.png" width="650" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Anyone else find this funny? I know I do! I told you I was a beta junkie.
&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:70621ddf-720f-46ba-8cea-b7e524183ec6" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati
Tags: &lt;a href="http://technorati.com/tags/TimeSnapper" rel="tag"&gt;TimeSnapper&lt;/a&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=58e07d5b-ffb3-4d55-81e2-8f0a3797ca1a" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,58e07d5b-ffb3-4d55-81e2-8f0a3797ca1a.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=5a4ecf98-ff71-49b1-a8e4-bf57828756d4</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,5a4ecf98-ff71-49b1-a8e4-bf57828756d4.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,5a4ecf98-ff71-49b1-a8e4-bf57828756d4.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=5a4ecf98-ff71-49b1-a8e4-bf57828756d4</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I was just setting at a command prompt in Vista on my laptop and I typed 'cd /' out
of habit and, to my surprise, it worked! Not only that, but tab completion still behaved
as expected!
</p>
        <p>
I actually have been using the '/' character in PowerShell because it is easier to
type than '\' (not as far to reach) and it is the default in *NIX systems as well
(i.e. my Ubuntu installation).
</p>
        <p>
Now granted, I probably shouldn't get used to this in the event that I inadvertently
code a '/' character in one of my programs, but then again, I should technically be
using the <a href="http://msdn2.microsoft.com/en-us/library/system.io.path.pathseparator.aspx">System.IO.Path.PathSeparator</a> anyway.
</p>
        <p>
I get excited about the little things.
</p>
        <p>
NOTE - this might be the result of Service Pack 1 on Vista also...
</p>
        <p>
          <strong>UPDATE</strong> - I lied. You can type 'cd /' and get to the root, but tab
completion still completes only for the current directory. In other words, if you're
current directory is c:\windows\ and you type 'cd /[tab]', you'll get directories
that are in c:\windows. Sorry. My excitement just dropped a little.
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=5a4ecf98-ff71-49b1-a8e4-bf57828756d4" />
      </body>
      <title>Vista lets you use forward slash at the command prompt!</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,5a4ecf98-ff71-49b1-a8e4-bf57828756d4.aspx</guid>
      <link>http://www.mohundro.com/blog/2008/02/19/VistaLetsYouUseForwardSlashAtTheCommandPrompt.aspx</link>
      <pubDate>Tue, 19 Feb 2008 23:30:08 GMT</pubDate>
      <description>&lt;p&gt;
I was just setting at a command prompt in Vista on my laptop and I typed 'cd /' out
of habit and, to my surprise, it worked! Not only that, but tab completion still behaved
as expected!
&lt;/p&gt;
&lt;p&gt;
I actually have been using the '/' character in PowerShell because it is easier to
type than '\' (not as far to reach) and it is the default in *NIX systems as well
(i.e. my Ubuntu installation).
&lt;/p&gt;
&lt;p&gt;
Now granted, I probably shouldn't get used to this in the event that I inadvertently
code a '/' character in one of my programs, but then again, I should technically be
using the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.io.path.pathseparator.aspx"&gt;System.IO.Path.PathSeparator&lt;/a&gt; anyway.
&lt;/p&gt;
&lt;p&gt;
I get excited about the little things.
&lt;/p&gt;
&lt;p&gt;
NOTE - this might be the result of Service Pack 1 on Vista also...
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;UPDATE&lt;/strong&gt; - I lied. You can type 'cd /' and get to the root, but tab
completion still completes only for the current directory. In other words, if you're
current directory is c:\windows\ and you type 'cd /[tab]', you'll get directories
that are in c:\windows. Sorry. My excitement just dropped a little.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=5a4ecf98-ff71-49b1-a8e4-bf57828756d4" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,5a4ecf98-ff71-49b1-a8e4-bf57828756d4.aspx</comments>
      <category>General</category>
      <category>Windows Vista</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=09115abc-f079-431a-8b79-6763bcdbbfad</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,09115abc-f079-431a-8b79-6763bcdbbfad.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,09115abc-f079-431a-8b79-6763bcdbbfad.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=09115abc-f079-431a-8b79-6763bcdbbfad</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Last week, a small group of us traveled up to hear <a href="http://codebetter.com/blogs/jean-paul_boodhoo/">Jean-Paul
Boodhoo</a> present to the <a href="http://nwadnug.org/">Northwest Arkansas .NET User
Group</a>. JP presented on advanced uses of generics in .NET (i.e. more than just
strongly typed collections) though we also had a great look at Test Driven Development
as well as some of the new features in C# 3.0.
</p>
        <p>
The presentation was great and it got me really excited about user groups in general,
which is why I'm also excited to announce that Fort Smith will be getting its own
user group! Many thanks to <a href="http://www.mpaladino.com/">Michael Paladino</a> for
doing a lot of the work in getting this started. <a href="http://fsdnug.org/">FSDNUG</a> went
live last week. I'm hoping to add a feed to the site at some point so that news can
easily be pushed out without continually checking the site, but for now, it is just
static HTML.
</p>
        <p>
          <a href="http://codebetter.com/blogs/raymond.lewallen/">Raymond Lewallen</a> will
be kicking off the group with a presentation on <a href="http://en.wikipedia.org/wiki/Behavior_driven_development">Behavior
Driven Development</a>. I've read about BDD and am attempting to practice TDD, so
I'm excited to hear Raymond's talk. If you live in the area, be sure to come out for
the meeting!
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=09115abc-f079-431a-8b79-6763bcdbbfad" />
      </body>
      <title>My first .NET User Group meeting and FSDNUG</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,09115abc-f079-431a-8b79-6763bcdbbfad.aspx</guid>
      <link>http://www.mohundro.com/blog/2008/02/11/MyFirstNETUserGroupMeetingAndFSDNUG.aspx</link>
      <pubDate>Mon, 11 Feb 2008 18:43:38 GMT</pubDate>
      <description>&lt;p&gt;
Last week, a small group of us traveled up to hear &lt;a href="http://codebetter.com/blogs/jean-paul_boodhoo/"&gt;Jean-Paul
Boodhoo&lt;/a&gt; present to the &lt;a href="http://nwadnug.org/"&gt;Northwest Arkansas .NET User
Group&lt;/a&gt;. JP presented on advanced uses of generics in .NET (i.e. more than just
strongly typed collections) though we also had a great look at Test Driven Development
as well as some of the new features in C# 3.0.
&lt;/p&gt;
&lt;p&gt;
The presentation was great and it got me really excited about user groups in general,
which is why I'm also excited to announce that Fort Smith will be getting its own
user group! Many thanks to &lt;a href="http://www.mpaladino.com/"&gt;Michael Paladino&lt;/a&gt; for
doing a lot of the work in getting this started. &lt;a href="http://fsdnug.org/"&gt;FSDNUG&lt;/a&gt; went
live last week. I'm hoping to add a feed to the site at some point so that news can
easily be pushed out without continually checking the site, but for now, it is just
static HTML.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://codebetter.com/blogs/raymond.lewallen/"&gt;Raymond Lewallen&lt;/a&gt; will
be kicking off the group with a presentation on &lt;a href="http://en.wikipedia.org/wiki/Behavior_driven_development"&gt;Behavior
Driven Development&lt;/a&gt;. I've read about BDD and am attempting to practice TDD, so
I'm excited to hear Raymond's talk. If you live in the area, be sure to come out for
the meeting!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=09115abc-f079-431a-8b79-6763bcdbbfad" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,09115abc-f079-431a-8b79-6763bcdbbfad.aspx</comments>
      <category>.NET</category>
      <category>.NET User Group</category>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=92fb58a4-802f-4208-be89-ce931e53089a</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,92fb58a4-802f-4208-be89-ce931e53089a.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,92fb58a4-802f-4208-be89-ce931e53089a.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=92fb58a4-802f-4208-be89-ce931e53089a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
It's hard to believe that it is already 2008... 2007 completely flew by. I spent most
of this Christmas holiday telling my family I had seen them just a few months ago
when, in fact, I hadn't seen them since... last... Christmas.
</p>
        <h4>So, 2008 in review.
</h4>
        <p>
Except for my first couple of years in college (I had never written a program until
'Hello World' in C my freshman year), 2007 has got to be the year of the most growth
for me as a developer. I never really grasped unit testing/test driven development
(I can't put behavior driven development in this just yet) until this year. Does that
make me a master at it? Certainly not - but I do understand the need and the drive
behind it now. Along with this gradual understanding of the role of tests/specifications,
I have come to better appreciate concepts such as dependency injection, inversion
of control and separation of concerns. I understand that they may sound like buzz
words, but seriously, these practices can completely change the way you architect
systems. I can't believe how far behind I've been and, even more so, how far I have
to go.
</p>
        <p>
In my quest to become a better developer, I'd like to share some of the blogs/feeds
that I've started subscribing to in 2007 that really have helped me become stronger
in my craft. <a href="http://codebetter.com/blogs/jean-paul_boodhoo/default.aspx">J.P.
Boodhoo</a>, <a href="http://codebetter.com/blogs/jeremy.miller/default.aspx">Jeremy
Miller</a>, <a href="http://codebetter.com/blogs/david_laribee/default.aspx">Dave
Laribee</a>, <a href="http://ayende.com/Blog/Default.aspx">Oren Eini</a>, the <a href="http://programming.reddit.com/">reddit
programming feed</a>, and <a href="http://weblog.raganwald.com/welcome.html">Reginald
Braithwaite</a>. Certainly some are missing (lifetime achievement awards to <a href="http://www.hanselman.com/blog/">Scott
Hanselman</a> and <a href="http://www.codinghorror.com/blog/">Jeff Atwood</a> anyone?),
but I still wanted to share a few. I don't think it is a coincidence that a lot of
these are heavily involved with ALT.NET.
</p>
        <h4>Looking forward to 2008.
</h4>
        <p>
I'm hoping to gain experience and learning from communities outside of the Microsoft
ecosystem (i.e. Ruby, Rails, Python, etc.) if for no other reason than to see what
it is like. Honestly, the majority of the practices that ALT.NET is pushing have been
and are huge parts of these communities. I'd also like to get more involved with one
or more open source projects. Lately, I've found myself pulling more and more repositories
down to my machine just to study the code and I'd like to give back.
</p>
        <p>
 
</p>
        <div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:9d8699c4-1e7a-4af7-b0cc-a42294e309c5" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati
Tags: <a href="http://technorati.com/tags/ALT.NET" rel="tag">ALT.NET</a></div>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=92fb58a4-802f-4208-be89-ce931e53089a" />
      </body>
      <title>Welcome 2008, 2007 in review</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,92fb58a4-802f-4208-be89-ce931e53089a.aspx</guid>
      <link>http://www.mohundro.com/blog/2008/01/01/Welcome20082007InReview.aspx</link>
      <pubDate>Tue, 01 Jan 2008 13:55:07 GMT</pubDate>
      <description>&lt;p&gt;
It's hard to believe that it is already 2008... 2007 completely flew by. I spent most
of this Christmas holiday telling my family I had seen them just a few months ago
when, in fact, I hadn't seen them since... last... Christmas.
&lt;/p&gt;
&lt;h4&gt;So, 2008 in review.
&lt;/h4&gt;
&lt;p&gt;
Except for my first couple of years in college (I had never written a program until
'Hello World' in C my freshman year), 2007 has got to be the year of the most growth
for me as a developer. I never really grasped unit testing/test driven development
(I can't put behavior driven development in this just yet) until this year. Does that
make me a master at it? Certainly not - but I do understand the need and the drive
behind it now. Along with this gradual understanding of the role of tests/specifications,
I have come to better appreciate concepts such as dependency injection, inversion
of control and separation of concerns. I understand that they may sound like buzz
words, but seriously, these practices can completely change the way you architect
systems. I can't believe how far behind I've been and, even more so, how far I have
to go.
&lt;/p&gt;
&lt;p&gt;
In my quest to become a better developer, I'd like to share some of the blogs/feeds
that I've started subscribing to in 2007 that really have helped me become stronger
in my craft. &lt;a href="http://codebetter.com/blogs/jean-paul_boodhoo/default.aspx"&gt;J.P.
Boodhoo&lt;/a&gt;, &lt;a href="http://codebetter.com/blogs/jeremy.miller/default.aspx"&gt;Jeremy
Miller&lt;/a&gt;, &lt;a href="http://codebetter.com/blogs/david_laribee/default.aspx"&gt;Dave
Laribee&lt;/a&gt;, &lt;a href="http://ayende.com/Blog/Default.aspx"&gt;Oren Eini&lt;/a&gt;, the &lt;a href="http://programming.reddit.com/"&gt;reddit
programming feed&lt;/a&gt;, and &lt;a href="http://weblog.raganwald.com/welcome.html"&gt;Reginald
Braithwaite&lt;/a&gt;. Certainly some are missing (lifetime achievement awards to &lt;a href="http://www.hanselman.com/blog/"&gt;Scott
Hanselman&lt;/a&gt; and &lt;a href="http://www.codinghorror.com/blog/"&gt;Jeff Atwood&lt;/a&gt; anyone?),
but I still wanted to share a few. I don't think it is a coincidence that a lot of
these are heavily involved with ALT.NET.
&lt;/p&gt;
&lt;h4&gt;Looking forward to 2008.
&lt;/h4&gt;
&lt;p&gt;
I'm hoping to gain experience and learning from communities outside of the Microsoft
ecosystem (i.e. Ruby, Rails, Python, etc.) if for no other reason than to see what
it is like. Honestly, the majority of the practices that ALT.NET is pushing have been
and are huge parts of these communities. I'd also like to get more involved with one
or more open source projects. Lately, I've found myself pulling more and more repositories
down to my machine just to study the code and I'd like to give back.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:9d8699c4-1e7a-4af7-b0cc-a42294e309c5" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati
Tags: &lt;a href="http://technorati.com/tags/ALT.NET" rel="tag"&gt;ALT.NET&lt;/a&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=92fb58a4-802f-4208-be89-ce931e53089a" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,92fb58a4-802f-4208-be89-ce931e53089a.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=e00fd0c0-b3e7-4e97-8673-433916a36933</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,e00fd0c0-b3e7-4e97-8673-433916a36933.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,e00fd0c0-b3e7-4e97-8673-433916a36933.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=e00fd0c0-b3e7-4e97-8673-433916a36933</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This morning, I had my annual eye appointment and I completely forgot that they might
dilate my eyes. Of course, my appointment was also scheduled first thing in the morning
- essentially before work. Now, I'm sitting in front of my computer and literally <em>everything</em> is
completely blurry. I can't read anything on the screen. It doesn't matter if I get
close to the screen or far away, it is all blurry.
</p>
        <p>
Enter <a href="http://technet.microsoft.com/en-us/sysinternals/bb897434.aspx">ZoomIt</a>!
I initially heard about this tool from <a href="http://www.hanselman.com/blog/">Scott
Hanselman</a>. It is another wonderful tool from <a href="http://www.sysinternals.com/">Sysinternals</a> (i.e.
the guys that make <a href="http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx">Process
Explorer</a>, <a href="http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx">Process
Monitor</a>, etc.) so you know it is pure gold. The tool's primary use is to aide
in presentations, so that you can easily zoom in to a portion of the screen so that
people can see it better.
</p>
        <p>
Today, I'm using it to just help me read the screen at all. I'm basically touch typing
and periodically checking what I've written by zooming in to see if everything looks
good. It is actually working pretty well, too.
</p>
        <p>
Thankfully, the blurriness isn't lasting too long. As I'm writing this post, it has
already cleared up considerably. Still, ZoomIt has come to the rescue for me this
morning.
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=e00fd0c0-b3e7-4e97-8673-433916a36933" />
      </body>
      <title>ZoomIt - Great for presentations as well as when your eyes are dilated!</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,e00fd0c0-b3e7-4e97-8673-433916a36933.aspx</guid>
      <link>http://www.mohundro.com/blog/2007/12/19/ZoomItGreatForPresentationsAsWellAsWhenYourEyesAreDilated.aspx</link>
      <pubDate>Wed, 19 Dec 2007 15:22:05 GMT</pubDate>
      <description>&lt;p&gt;
This morning, I had my annual eye appointment and I completely forgot that they might
dilate my eyes. Of course, my appointment was also scheduled first thing in the morning
- essentially before work. Now, I'm sitting in front of my computer and literally &lt;em&gt;everything&lt;/em&gt; is
completely blurry. I can't read anything on the screen. It doesn't matter if I get
close to the screen or far away, it is all blurry.
&lt;/p&gt;
&lt;p&gt;
Enter &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb897434.aspx"&gt;ZoomIt&lt;/a&gt;!
I initially heard about this tool from &lt;a href="http://www.hanselman.com/blog/"&gt;Scott
Hanselman&lt;/a&gt;. It is another wonderful tool from &lt;a href="http://www.sysinternals.com/"&gt;Sysinternals&lt;/a&gt; (i.e.
the guys that make &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx"&gt;Process
Explorer&lt;/a&gt;, &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx"&gt;Process
Monitor&lt;/a&gt;, etc.) so you know it is pure gold. The tool's primary use is to aide
in presentations, so that you can easily zoom in to a portion of the screen so that
people can see it better.
&lt;/p&gt;
&lt;p&gt;
Today, I'm using it to just help me read the screen at all. I'm basically touch typing
and periodically checking what I've written by zooming in to see if everything looks
good. It is actually working pretty well, too.
&lt;/p&gt;
&lt;p&gt;
Thankfully, the blurriness isn't lasting too long. As I'm writing this post, it has
already cleared up considerably. Still, ZoomIt has come to the rescue for me this
morning.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=e00fd0c0-b3e7-4e97-8673-433916a36933" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,e00fd0c0-b3e7-4e97-8673-433916a36933.aspx</comments>
      <category>General</category>
      <category>Utilities</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=7cfbc784-6e93-4402-be61-4020ec330617</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,7cfbc784-6e93-4402-be61-4020ec330617.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,7cfbc784-6e93-4402-be61-4020ec330617.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=7cfbc784-6e93-4402-be61-4020ec330617</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I'm finding myself wondering if I'm a beta junkie or a CTP junkie.
</p>
        <p>
Why?
</p>
        <p>
Because Jeffrey Snover announced that there will be a <a href="http://blogs.msdn.com/powershell/archive/2007/11/02/ctp-ctp-beta.aspx">CTP
release of PowerShell 2.0 next week</a>. I'm not waiting for the beta either - I'm
downloading the CTP bits as soon as the post announcing its release gets to Google
Reader. Maybe I should change my "beta junkie" title to "pre-release junkie" or "I
just like to install things junkie."<strong>*</strong></p>
        <p>
PowerShell 1.0 single handedly turned me into a console user. I do 90+% of my file
operations from PowerShell instead of Windows Explorer. I also do a large portion
of my pseudo coding at the command prompt to see whether a basic algorithm will work
the way I expect it to. I'm very excited to see what the team has come up with.
</p>
        <p>
          <strong>Update</strong> (per post from Jeffrey Snover):
</p>
        <blockquote>
          <p>
The PowerShell V2 CTP is not for everyone. You should read this PowerShell Team blog
entry ( <a href="http://blogs.msdn.com/powershell/archive/2007/11/02/ctp-watch-this-space.aspx">http://blogs.msdn.com/powershell/archive/2007/11/02/ctp-watch-this-space.aspx</a> )
to find out what it is and what it isn't and then make an informed decision before
installing the CTP.
</p>
        </blockquote>
        <p>
I may be an "I just like to install things junkie" but that doesn't mean that you
should be to. Be responsible with pre-release software. If you've got production code
that relies on PowerShell behavior, etc. you should consider holding off on installing
it on your development machine.
</p>
        <p>
 
</p>
        <p>
          <em>
            <strong>*</strong> With all these installs I do, I actually do see UAC prompts
a lot. And no, I haven't turned off the prompt.</em>
        </p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=7cfbc784-6e93-4402-be61-4020ec330617" />
      </body>
      <title>Am I a CTP junkie or a Beta junkie?</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,7cfbc784-6e93-4402-be61-4020ec330617.aspx</guid>
      <link>http://www.mohundro.com/blog/2007/11/02/AmIACTPJunkieOrABetaJunkie.aspx</link>
      <pubDate>Fri, 02 Nov 2007 16:26:11 GMT</pubDate>
      <description>&lt;p&gt;
I'm finding myself wondering if I'm a beta junkie or a CTP junkie.
&lt;/p&gt;
&lt;p&gt;
Why?
&lt;/p&gt;
&lt;p&gt;
Because Jeffrey Snover announced that there will be a &lt;a href="http://blogs.msdn.com/powershell/archive/2007/11/02/ctp-ctp-beta.aspx"&gt;CTP
release of PowerShell 2.0 next week&lt;/a&gt;. I'm not waiting for the beta either - I'm
downloading the CTP bits as soon as the post announcing its release gets to Google
Reader. Maybe I should change my "beta junkie" title to "pre-release junkie" or "I
just like to install things junkie."&lt;strong&gt;*&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
PowerShell 1.0 single handedly turned me into a console user. I do 90+% of my file
operations from PowerShell instead of Windows Explorer. I also do a large portion
of my pseudo coding at the command prompt to see whether a basic algorithm will work
the way I expect it to. I'm very excited to see what the team has come up with.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update&lt;/strong&gt; (per post from Jeffrey Snover):
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
The PowerShell V2 CTP is not for everyone. You should read this PowerShell Team blog
entry ( &lt;a href="http://blogs.msdn.com/powershell/archive/2007/11/02/ctp-watch-this-space.aspx"&gt;http://blogs.msdn.com/powershell/archive/2007/11/02/ctp-watch-this-space.aspx&lt;/a&gt; )
to find out what it is and what it isn't and then make an informed decision before
installing the CTP.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
I may be an "I just like to install things junkie" but that doesn't mean that you
should be to. Be responsible with pre-release software. If you've got production code
that relies on PowerShell behavior, etc. you should&amp;nbsp;consider holding off on installing
it on your development machine.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;strong&gt;*&lt;/strong&gt; With all these installs I do, I actually do see UAC prompts
a lot. And no, I haven't turned off the prompt.&lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=7cfbc784-6e93-4402-be61-4020ec330617" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,7cfbc784-6e93-4402-be61-4020ec330617.aspx</comments>
      <category>General</category>
      <category>PowerShell</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=768de5a1-79fb-4fe1-9431-fd4e1cef7fe6</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,768de5a1-79fb-4fe1-9431-fd4e1cef7fe6.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,768de5a1-79fb-4fe1-9431-fd4e1cef7fe6.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=768de5a1-79fb-4fe1-9431-fd4e1cef7fe6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I was reading through my feeds this morning and came across this gem of a paragraph:
</p>
        <blockquote>
          <p>
Manual testing is immoral. Not only is it high stress, tedious, and error prone; it’s
just wrong to turn humans into machines. If you can write a script for a test procedure,
then you can write a program to execute that procedure. That program will be cheaper,
faster, and more accurate than a human, and will free the human to do what humans
to best: <em>create!</em></p>
        </blockquote>
        <p>
The paragraph is actually an aside to the rest of the post, too! Go read the <a href="http://blog.objectmentor.com/articles/2007/10/17/tdd-with-acceptance-tests-and-unit-tests">entire
TDD post in context</a> at the <a href="http://blog.objectmentor.com/">ObjectMentor
blogs</a>.
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=768de5a1-79fb-4fe1-9431-fd4e1cef7fe6" />
      </body>
      <title>&amp;quot;Manual testing is immoral&amp;quot;</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,768de5a1-79fb-4fe1-9431-fd4e1cef7fe6.aspx</guid>
      <link>http://www.mohundro.com/blog/2007/10/18/quotManualTestingIsImmoralquot.aspx</link>
      <pubDate>Thu, 18 Oct 2007 13:15:18 GMT</pubDate>
      <description>&lt;p&gt;
I was reading through my feeds this morning and came across this gem of a paragraph:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
Manual testing is immoral. Not only is it high stress, tedious, and error prone; it’s
just wrong to turn humans into machines. If you can write a script for a test procedure,
then you can write a program to execute that procedure. That program will be cheaper,
faster, and more accurate than a human, and will free the human to do what humans
to best: &lt;em&gt;create!&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
The paragraph is actually an aside to the rest of the post, too! Go read the &lt;a href="http://blog.objectmentor.com/articles/2007/10/17/tdd-with-acceptance-tests-and-unit-tests"&gt;entire
TDD post in context&lt;/a&gt; at&amp;nbsp;the &lt;a href="http://blog.objectmentor.com/"&gt;ObjectMentor
blogs&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=768de5a1-79fb-4fe1-9431-fd4e1cef7fe6" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,768de5a1-79fb-4fe1-9431-fd4e1cef7fe6.aspx</comments>
      <category>General</category>
      <category>Programming</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=9f440177-72f8-4dbd-827d-6acb9b0b4d3a</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,9f440177-72f8-4dbd-827d-6acb9b0b4d3a.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,9f440177-72f8-4dbd-827d-6acb9b0b4d3a.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=9f440177-72f8-4dbd-827d-6acb9b0b4d3a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/Bluescreensonvirtualmachines_88F8/image.png" atomicselection="true">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="552" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/Bluescreensonvirtualmachines_88F8/image_thumb.png" width="652" border="0" />
          </a>
        </p>
        <p>
*sigh*
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=9f440177-72f8-4dbd-827d-6acb9b0b4d3a" />
      </body>
      <title>Blue screens on virtual machines</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,9f440177-72f8-4dbd-827d-6acb9b0b4d3a.aspx</guid>
      <link>http://www.mohundro.com/blog/2007/10/03/BlueScreensOnVirtualMachines.aspx</link>
      <pubDate>Wed, 03 Oct 2007 14:44:23 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/Bluescreensonvirtualmachines_88F8/image.png" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="552" alt="image" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/Bluescreensonvirtualmachines_88F8/image_thumb.png" width="652" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
*sigh*
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=9f440177-72f8-4dbd-827d-6acb9b0b4d3a" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,9f440177-72f8-4dbd-827d-6acb9b0b4d3a.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=d37fc23f-16f8-49e8-9f29-49237a8b001f</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,d37fc23f-16f8-49e8-9f29-49237a8b001f.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,d37fc23f-16f8-49e8-9f29-49237a8b001f.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=d37fc23f-16f8-49e8-9f29-49237a8b001f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
When I was in high school, my first job was preparing food at a local Taco Mayo. I
didn't last long there. Soon afterwards, I began working at a local ISP doing tech
support. I still remember all of the problems that brand new 56K modems had, because
the v92 standard hadn't really been standardized yet.
</p>
        <p>
Anyway, all that to say my first <em>real</em> job was tech support at an ISP. Tonight,
I was practicing my troubleshooting skills on my internet connection. I got home from
work and couldn't connect to anything except my router.
</p>
        <p>
Here are the steps I took:
</p>
        <p>
1) Opened Outlook and IE and tried to go somewhere. Nothing happened.
</p>
        <p>
2) Recognized there was a problem.
</p>
        <p>
3) Pulled up a command prompt and tried to ping <a href="http://www.google.com">www.google.com</a> and
then my ISPs website. No dice.
</p>
        <p>
4) I rebooted.
</p>
        <p>
5) I pulled up an admin command prompt (UAC) and tried pinging again with no success.
</p>
        <p>
6) I released my IP address and then renewed it (ipconfig /release and then ipconfig
/renew - this is why I needed an elevated prompt).
</p>
        <p>
7) I tried pinging again without success.
</p>
        <p>
8) I unplugged my cable modem, waited for 15 seconds, plugged it back up and then
tried again... without success.
</p>
        <p>
9) I navigated to my router's page in my browser which came up great.
</p>
        <p>
10) I released and renewed my IP address from the router. Then I tried pinging...
once again without success.
</p>
        <p>
11) I bypassed my router and connected my ethernet cable directly to my cable modem.
</p>
        <p>
12) I unplugged and then plugged back in my cable modem and tried pinging without
success.
</p>
        <p>
13) I got frustrated and tried <em>most</em> of the above things in random order to
try to get it to work.
</p>
        <p>
14) I called tech support.
</p>
        <p>
15) I got more frustrated dealing with the automated answering system.
</p>
        <p>
16) I got <em>FAR </em>more frustrated dealing with the automated tech support - that
had me do everything I had already tried.
</p>
        <p>
17) The automated tech support finally asked if I'd like to speak with a real person
- I said yes.
</p>
        <p>
18) The real tech support picked up quickly (thankfully) and had me power off my modem
and bypass my router (already done) and then try pinging which didn't work.
</p>
        <p>
19) Then he asked me to reboot.
</p>
        <p>
20) Knowing that this was my second reboot, I was skeptical but I went ahead with
it for the real tech support guy's benefit.
</p>
        <p>
...
</p>
        <p>
21) It starts working.
</p>
        <p>
22) I look and feel like an idiot.
</p>
        <p>
Moral of the story - rebooting always fixes the problem. Just try it over and over
and over again. Until it starts working.
</p>
        <p>
*sigh*
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=d37fc23f-16f8-49e8-9f29-49237a8b001f" />
      </body>
      <title>Previous jobs can come back to haunt you in strange ways</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,d37fc23f-16f8-49e8-9f29-49237a8b001f.aspx</guid>
      <link>http://www.mohundro.com/blog/2007/09/06/PreviousJobsCanComeBackToHauntYouInStrangeWays.aspx</link>
      <pubDate>Thu, 06 Sep 2007 03:28:34 GMT</pubDate>
      <description>&lt;p&gt;
When I was in high school, my first job was preparing food at a local Taco Mayo. I
didn't last long there. Soon afterwards, I began working at a local ISP doing tech
support. I still remember all of the problems that brand new 56K modems had, because
the v92 standard hadn't really been standardized yet.
&lt;/p&gt;
&lt;p&gt;
Anyway, all that to say my first &lt;em&gt;real&lt;/em&gt; job was tech support at an ISP. Tonight,
I was practicing my troubleshooting skills on my internet connection. I got home from
work and couldn't connect to anything except my router.
&lt;/p&gt;
&lt;p&gt;
Here are the steps I took:
&lt;/p&gt;
&lt;p&gt;
1) Opened Outlook and IE and tried to go somewhere. Nothing happened.
&lt;/p&gt;
&lt;p&gt;
2) Recognized there was a problem.
&lt;/p&gt;
&lt;p&gt;
3) Pulled up a command prompt and tried to ping &lt;a href="http://www.google.com"&gt;www.google.com&lt;/a&gt; and
then my ISPs website. No dice.
&lt;/p&gt;
&lt;p&gt;
4) I rebooted.
&lt;/p&gt;
&lt;p&gt;
5) I pulled up an admin command prompt (UAC) and tried pinging again with no success.
&lt;/p&gt;
&lt;p&gt;
6) I released my IP address and then renewed it (ipconfig /release and then ipconfig
/renew - this is why I needed an elevated prompt).
&lt;/p&gt;
&lt;p&gt;
7) I tried pinging again without success.
&lt;/p&gt;
&lt;p&gt;
8) I unplugged my cable modem, waited for 15 seconds, plugged it back up and then
tried again... without success.
&lt;/p&gt;
&lt;p&gt;
9) I navigated to my router's page in my browser which came up great.
&lt;/p&gt;
&lt;p&gt;
10) I released and renewed my IP address from the router. Then I tried pinging...
once again without success.
&lt;/p&gt;
&lt;p&gt;
11) I bypassed my router and connected my ethernet cable directly to my cable modem.
&lt;/p&gt;
&lt;p&gt;
12) I unplugged and then plugged back in my cable modem and tried pinging without
success.
&lt;/p&gt;
&lt;p&gt;
13) I got frustrated and tried &lt;em&gt;most&lt;/em&gt; of the above things in random order to
try to get it to work.
&lt;/p&gt;
&lt;p&gt;
14) I called tech support.
&lt;/p&gt;
&lt;p&gt;
15) I got more frustrated dealing with the automated answering system.
&lt;/p&gt;
&lt;p&gt;
16) I got &lt;em&gt;FAR &lt;/em&gt;more frustrated dealing with the automated tech support - that
had me do everything I had already tried.
&lt;/p&gt;
&lt;p&gt;
17) The automated tech support finally asked if I'd like to speak with a real person
- I said yes.
&lt;/p&gt;
&lt;p&gt;
18) The real tech support picked up quickly (thankfully) and had me power off my modem
and bypass my router (already done) and then try pinging which didn't work.
&lt;/p&gt;
&lt;p&gt;
19) Then he asked me to reboot.
&lt;/p&gt;
&lt;p&gt;
20) Knowing that this was my second reboot, I was skeptical but I went ahead with
it for the real tech support guy's benefit.
&lt;/p&gt;
&lt;p&gt;
...
&lt;/p&gt;
&lt;p&gt;
21) It starts working.
&lt;/p&gt;
&lt;p&gt;
22) I look and feel like an idiot.
&lt;/p&gt;
&lt;p&gt;
Moral of the story - rebooting always fixes the problem. Just try it over and over
and over again. Until it starts working.
&lt;/p&gt;
&lt;p&gt;
*sigh*
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=d37fc23f-16f8-49e8-9f29-49237a8b001f" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,d37fc23f-16f8-49e8-9f29-49237a8b001f.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=7fb172a5-b1cd-46ce-88a7-8cf589176eae</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,7fb172a5-b1cd-46ce-88a7-8cf589176eae.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,7fb172a5-b1cd-46ce-88a7-8cf589176eae.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=7fb172a5-b1cd-46ce-88a7-8cf589176eae</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
For your enjoyment, here is some great dialogue from the movie <a href="http://www.imdb.com/title/tt0080339/">Airplane</a>.
Why am I providing this? Because it is funny and because I wanted to.
</p>
        <p>
          <strong>Roger Murdock:</strong> We have clearance, Clarence. 
<br /><strong>Capt. Clarence Oveur:</strong> Roger, Roger. What's our vector, Victor? 
<br /><strong>Tower:</strong> Tower Radio, clearance, over. 
<br /><strong>Oveur: </strong>That's 'Clarence Oveur', over. 
<br /><strong>Tower: </strong>Roger. 
<br /><strong>Roger Murdock: </strong>Huh? 
<br /><strong>Tower: </strong>Roger, over. 
<br /><strong>Roger Murdock: </strong>What? 
<br /><strong>Capt. Oveur: </strong>Huh? 
</p>
        <p>
Many thanks to Kaelin for providing this.
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=7fb172a5-b1cd-46ce-88a7-8cf589176eae" />
      </body>
      <title>Dialogue from Airplane</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,7fb172a5-b1cd-46ce-88a7-8cf589176eae.aspx</guid>
      <link>http://www.mohundro.com/blog/2007/08/10/DialogueFromAirplane.aspx</link>
      <pubDate>Fri, 10 Aug 2007 13:15:34 GMT</pubDate>
      <description>&lt;p&gt;
For your enjoyment, here is&amp;nbsp;some great dialogue from the movie &lt;a href="http://www.imdb.com/title/tt0080339/"&gt;Airplane&lt;/a&gt;.
Why am I providing this? Because it is funny and because I wanted to.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Roger Murdock:&lt;/strong&gt; We have clearance, Clarence. 
&lt;br&gt;
&lt;strong&gt;Capt. Clarence Oveur:&lt;/strong&gt; Roger, Roger. What's our vector, Victor? 
&lt;br&gt;
&lt;strong&gt;Tower:&lt;/strong&gt; Tower Radio, clearance, over. 
&lt;br&gt;
&lt;strong&gt;Oveur: &lt;/strong&gt;That's 'Clarence Oveur', over. 
&lt;br&gt;
&lt;strong&gt;Tower: &lt;/strong&gt;Roger. 
&lt;br&gt;
&lt;strong&gt;Roger Murdock: &lt;/strong&gt;Huh? 
&lt;br&gt;
&lt;strong&gt;Tower: &lt;/strong&gt;Roger, over. 
&lt;br&gt;
&lt;strong&gt;Roger Murdock: &lt;/strong&gt;What? 
&lt;br&gt;
&lt;strong&gt;Capt. Oveur: &lt;/strong&gt;Huh? 
&lt;/p&gt;
&lt;p&gt;
Many thanks to Kaelin for providing this.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=7fb172a5-b1cd-46ce-88a7-8cf589176eae" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,7fb172a5-b1cd-46ce-88a7-8cf589176eae.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=52f481f5-ba7e-4186-8d09-6c955be0889d</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,52f481f5-ba7e-4186-8d09-6c955be0889d.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,52f481f5-ba7e-4186-8d09-6c955be0889d.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=52f481f5-ba7e-4186-8d09-6c955be0889d</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I was digging around my old posts and bookmarks and stumbled across <a href="http://www.mohundro.com/blog/2006/05/10/SharingOPMLBandwagon.aspx">my
post on the Share Your OPML website</a> from over a year ago. Whatever happened
with that site? It quite literally hasn't changed since the service started as far
as I can tell. I really like the idea and I wouldn't mind at all if the site added
a few services or something. I went ahead and updated my OPML (which has literally
doubled) and you can <a href="http://share.opml.org/viewsharedfeeds/?user_id=2576">check
it out here</a>. If you've got an account with them, go ahead and update your list
and then comment with a link to it.
</p>
        <p>
Off-topic, but I wish that Google Reader would start adding some more features. I
figure it would be easy to provide a way to subscribe to another users' shared
OPML list (as opposed to just items that they mark as shared). Maybe no one else wants
that feature, but I think it'd be cool. I already subscribe to a few del.icio.us
bookmark feeds and shared feed items. Why not provide a feed that lets me know when
someone adds a new feed to their list?
</p>
        <p>
          <strong>UPDATE:</strong>
        </p>
        <p>
One small thing to add - Matt brought up the point that there isn't an easy way to
get an external link to your own shared OPML list. I've only found two ways to do
this so far: 1) Use the "Who Subscribes To..." feature and look for a feed you subscribe
to. 2) Google your name and optionally specify the site (site:share.opml.org).
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=52f481f5-ba7e-4186-8d09-6c955be0889d" />
      </body>
      <title>Whatever happened with Share Your OPML???</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,52f481f5-ba7e-4186-8d09-6c955be0889d.aspx</guid>
      <link>http://www.mohundro.com/blog/2007/07/17/WhateverHappenedWithShareYourOPML.aspx</link>
      <pubDate>Tue, 17 Jul 2007 00:26:15 GMT</pubDate>
      <description>&lt;p&gt;
I was digging around my old posts and&amp;nbsp;bookmarks and stumbled across &lt;a href="http://www.mohundro.com/blog/2006/05/10/SharingOPMLBandwagon.aspx"&gt;my
post on the Share Your OPML website&lt;/a&gt;&amp;nbsp;from over a year ago. Whatever happened
with that site? It quite literally hasn't changed since the service started as far
as I can tell. I really like the idea and I wouldn't mind at all if the site added
a few services or something. I went ahead and updated my OPML (which has literally
doubled) and you can &lt;a href="http://share.opml.org/viewsharedfeeds/?user_id=2576"&gt;check
it out here&lt;/a&gt;. If you've got an account with them, go ahead and update your list
and then&amp;nbsp;comment with a link to it.
&lt;/p&gt;
&lt;p&gt;
Off-topic, but I wish that Google Reader would start adding some more features. I
figure it would be easy to&amp;nbsp;provide a way to subscribe to another users' shared
OPML list (as opposed to just items that they mark as shared). Maybe no one else&amp;nbsp;wants
that feature, but I think it'd be cool. I already subscribe to a few&amp;nbsp;del.icio.us
bookmark feeds and shared feed items. Why not provide a feed that lets me know when
someone adds a new feed to their list?
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;UPDATE:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
One small thing to add - Matt brought up the point that there isn't an easy way to
get an external link to your own shared OPML list. I've only found two ways to do
this so far: 1) Use the "Who Subscribes To..." feature and look for a feed you subscribe
to. 2) Google your name and optionally specify the site (site:share.opml.org).
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=52f481f5-ba7e-4186-8d09-6c955be0889d" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,52f481f5-ba7e-4186-8d09-6c955be0889d.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=f1ac5437-d907-457e-a098-5da2184d340e</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,f1ac5437-d907-457e-a098-5da2184d340e.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,f1ac5437-d907-457e-a098-5da2184d340e.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=f1ac5437-d907-457e-a098-5da2184d340e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In case you haven't heard, Apple has released a <a href="http://www.apple.com/safari/">public
beta of Safari</a>, which is their web browser.
</p>
        <p>
The surprising news is that it supports Windows.
</p>
        <p>
          <a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/NeverthoughtIdactuallyberunningSafari_D1AF/David%20Mohundro.png" atomicselection="true">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="468" alt="David Mohundro" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/NeverthoughtIdactuallyberunningSafari_D1AF/David%20Mohundro_thumb.png" width="674" border="0" />
          </a>
        </p>
        <p>
I have to admit that this is a really good move for Apple. Their software has been
intriguing me quite a bit lately, and watching <a href="http://sessions.visitmix.com/default.asp?event=1011&amp;session=2012&amp;pid=DEV02&amp;disc=&amp;id=1511&amp;year=2007&amp;search=DEV02">John
Lam demo Silverlight on a Mac</a> certainly doesn't make me <em>not</em> want to try
it out for myself. My only experience with Mac OS X is via tech support while I was
in college. We had an iMac desktop in the office for the rare occasion when a Mac
user would call in asking for help getting their LAN connection set up (note, the
rarity had more to do with the lack of Macs on the network than the lack of problems).
The system ran quite slowly because it didn't have enough RAM and it didn't have any
software on it. The dock was pretty cool, but it didn't seem to add much value
at the time.
</p>
        <p>
Things seem to have changed, though. I would really, really, REALLY like to try out <a href="http://quicksilver.blacktree.com/">Quicksilver</a>.
The Parallels software looks really cool, too. I like Windows too much to switch,
but the capability to run both Windows and OS X side by side is very attractive. Everybody
seems to like <a href="http://macromates.com/">TextMate</a> a lot, too. I do wonder
sometimes if I just want Windows ports of these programs or if it really is OS X that
seems so nice.
</p>
        <p>
For the time being, I'll probably still stick with Windows Vista. I just like using
custom hardware too much to lock myself into Apple hardware right now (that, and I
hate not being able to resize windows from the top). If they ever come out with a
virtualization option to run OS X on Windows, I would probably give that a try. I
would encourage you to check out <a href="http://enthusiast.hardocp.com/article.html?art=MTM0OCwxLCxoZW50aHVzaWFzd">HardOCP's
30 Days with Mac OS X article</a> if you've been curious what running OS X might be
like.
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=f1ac5437-d907-457e-a098-5da2184d340e" />
      </body>
      <title>Never thought I'd actually be running Safari...</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,f1ac5437-d907-457e-a098-5da2184d340e.aspx</guid>
      <link>http://www.mohundro.com/blog/2007/06/11/NeverThoughtIdActuallyBeRunningSafari.aspx</link>
      <pubDate>Mon, 11 Jun 2007 19:55:00 GMT</pubDate>
      <description>&lt;p&gt;
In case you haven't heard, Apple has released a &lt;a href="http://www.apple.com/safari/"&gt;public
beta of Safari&lt;/a&gt;, which is their web browser.
&lt;/p&gt;
&lt;p&gt;
The surprising news is that it supports Windows.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/NeverthoughtIdactuallyberunningSafari_D1AF/David%20Mohundro.png" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="468" alt="David Mohundro" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/NeverthoughtIdactuallyberunningSafari_D1AF/David%20Mohundro_thumb.png" width="674" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
I have to admit that this is a really good move for Apple. Their software has been
intriguing me quite a bit lately, and watching &lt;a href="http://sessions.visitmix.com/default.asp?event=1011&amp;amp;session=2012&amp;amp;pid=DEV02&amp;amp;disc=&amp;amp;id=1511&amp;amp;year=2007&amp;amp;search=DEV02"&gt;John
Lam demo Silverlight on a Mac&lt;/a&gt; certainly doesn't make me &lt;em&gt;not&lt;/em&gt; want to try
it out for myself. My only experience with Mac OS X is via tech support while I was
in college. We had an iMac desktop in the office for the rare occasion when a Mac
user would call in asking for help getting their LAN connection set up (note, the
rarity had more to do with the lack of Macs on the network than the lack of problems).
The system ran quite slowly because it didn't have enough RAM and it didn't have any
software&amp;nbsp;on it. The dock was pretty cool, but it didn't seem to add much value
at the time.
&lt;/p&gt;
&lt;p&gt;
Things seem to have changed, though. I would really, really, REALLY like to try out &lt;a href="http://quicksilver.blacktree.com/"&gt;Quicksilver&lt;/a&gt;.
The Parallels software looks really cool, too. I like Windows too much to&amp;nbsp;switch,
but the capability to run both Windows and OS X side by side is very attractive. Everybody
seems to like &lt;a href="http://macromates.com/"&gt;TextMate&lt;/a&gt; a lot, too. I do wonder
sometimes if I just want Windows ports of these programs or if it really is OS X that
seems so nice.
&lt;/p&gt;
&lt;p&gt;
For the time being, I'll probably still stick with Windows Vista. I just like using
custom hardware too much to lock myself into Apple hardware right now (that, and I
hate not being able to resize windows from the top). If they ever come out with a
virtualization option to run OS X on Windows, I would probably give that a try. I
would encourage you to check out &lt;a href="http://enthusiast.hardocp.com/article.html?art=MTM0OCwxLCxoZW50aHVzaWFzd"&gt;HardOCP's
30 Days with Mac OS X article&lt;/a&gt; if you've been curious what running OS X might be
like.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=f1ac5437-d907-457e-a098-5da2184d340e" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,f1ac5437-d907-457e-a098-5da2184d340e.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=4fb5c7fe-479e-447d-a29c-1466669b0ff0</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,4fb5c7fe-479e-447d-a29c-1466669b0ff0.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,4fb5c7fe-479e-447d-a29c-1466669b0ff0.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=4fb5c7fe-479e-447d-a29c-1466669b0ff0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
For the past month or so, my internet connection at home has been dropping constantly.
There hasn't really seemed to be any rhyme or reason to it either. What's interesting
is that one of my neighbors with a similar network setup was experiencing similar
behavior.
</p>
        <p>
I decided to take this as an opportunity try out some new firmware for my router (a
Linksys WRT54G). I first decided to check for updated official firmware. Luckily enough,
there was some updated firmware, though it wasn't what I would call current (i.e.
2005). 
</p>
        <p>
Taking a failure to update as a bad sign, I instead took Scott Hanselman's
advice and decided to <a href="http://www.hanselman.com/blog/MoreOnAlternateLinksysFirmware.aspx">try
some alternate firmware</a>. So far, it is working with flying colors and my router
suddenly has all sorts of new functionality. It is a little frustrating that the hardware
could support this out of the box, but the firmware wouldn't allow it.
</p>
        <p>
Here's what the web administration tool looks like with the DD-WRT firmware installed:
</p>
        <p>
          <a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/UpgradingmyroutersfirmwaretoDDWRT_1327A/DD-WRT%20-%20Setup%20-%20Mozilla%20Firefox.png" atomicselection="true">
            <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="480" alt="DD-WRT - Setup - Mozilla Firefox" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/UpgradingmyroutersfirmwaretoDDWRT_1327A/DD-WRT%20-%20Setup%20-%20Mozilla%20Firefox_thumb.png" width="623" border="0" />
          </a>
        </p>
        <p>
Much snazzier than the "official" firmware.
</p>
        <p>
If you're interested in trying out DD-WRT, look no further than <a title="http://www.dd-wrt.com/" href="http://www.dd-wrt.com/">http://www.dd-wrt.com/</a>.
I was able to find plenty of resources online for getting DD-WRT working, too. Hopefully,
this will fix some of the connection issues I've been having.
</p>
        <p>
UPDATE - Interestingly enough, <a href="http://lifehacker.com/photogallery/Lifehacker-Top-10%7C-Network-utilities/1993226">Lifehacker
named DD-WRT their number two network utility</a> of their <a href="http://lifehacker.com/photogallery/lifehacker-top-10%7C-network-utilities/">top
10 network utilities</a>.
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=4fb5c7fe-479e-447d-a29c-1466669b0ff0" />
      </body>
      <title>Upgrading my router's firmware to DD-WRT</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,4fb5c7fe-479e-447d-a29c-1466669b0ff0.aspx</guid>
      <link>http://www.mohundro.com/blog/2007/06/07/UpgradingMyRoutersFirmwareToDDWRT.aspx</link>
      <pubDate>Thu, 07 Jun 2007 02:48:04 GMT</pubDate>
      <description>&lt;p&gt;
For the past month or so, my internet connection at home has been dropping constantly.
There hasn't really seemed to be any rhyme or reason to it either. What's interesting
is that one of my neighbors with a similar network setup was experiencing similar
behavior.
&lt;/p&gt;
&lt;p&gt;
I decided to take this as an opportunity try out some new firmware for my router (a
Linksys WRT54G). I first decided to check for updated official firmware. Luckily enough,
there was some updated firmware, though it wasn't what I would call current (i.e.
2005). 
&lt;/p&gt;
&lt;p&gt;
Taking&amp;nbsp;a failure to update as a&amp;nbsp;bad sign, I instead took Scott Hanselman's
advice and decided to &lt;a href="http://www.hanselman.com/blog/MoreOnAlternateLinksysFirmware.aspx"&gt;try
some alternate firmware&lt;/a&gt;. So far, it is working with flying colors and my router
suddenly has all sorts of new functionality. It is a little frustrating that the hardware
could support this out of the box, but the firmware wouldn't allow it.
&lt;/p&gt;
&lt;p&gt;
Here's what the web administration tool looks like with the DD-WRT firmware installed:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/UpgradingmyroutersfirmwaretoDDWRT_1327A/DD-WRT%20-%20Setup%20-%20Mozilla%20Firefox.png" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="480" alt="DD-WRT - Setup - Mozilla Firefox" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/UpgradingmyroutersfirmwaretoDDWRT_1327A/DD-WRT%20-%20Setup%20-%20Mozilla%20Firefox_thumb.png" width="623" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Much snazzier than the "official" firmware.
&lt;/p&gt;
&lt;p&gt;
If you're interested in trying out DD-WRT, look no further than &lt;a title="http://www.dd-wrt.com/" href="http://www.dd-wrt.com/"&gt;http://www.dd-wrt.com/&lt;/a&gt;.
I was able to find plenty of resources online for getting DD-WRT working, too. Hopefully,
this will fix some of the connection issues I've been having.
&lt;/p&gt;
&lt;p&gt;
UPDATE - Interestingly enough, &lt;a href="http://lifehacker.com/photogallery/Lifehacker-Top-10%7C-Network-utilities/1993226"&gt;Lifehacker
named DD-WRT their number two network utility&lt;/a&gt;&amp;nbsp;of their &lt;a href="http://lifehacker.com/photogallery/lifehacker-top-10%7C-network-utilities/"&gt;top
10 network utilities&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=4fb5c7fe-479e-447d-a29c-1466669b0ff0" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,4fb5c7fe-479e-447d-a29c-1466669b0ff0.aspx</comments>
      <category>General</category>
      <category>Hardware</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=1b812046-e417-4fd7-8a8e-01f089f87266</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,1b812046-e417-4fd7-8a8e-01f089f87266.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,1b812046-e417-4fd7-8a8e-01f089f87266.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=1b812046-e417-4fd7-8a8e-01f089f87266</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Here's the link: <a title="http://worsethanfailure.com/Articles/Film-At-1100.aspx" href="http://worsethanfailure.com/Articles/Film-At-1100.aspx">http://worsethanfailure.com/Articles/Film-At-1100.aspx</a></p>
        <p>
Wow. We're famous.
</p>
        <p>
My cubicle neighbor pointed it out to me.
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=1b812046-e417-4fd7-8a8e-01f089f87266" />
      </body>
      <title>Should I be worried when the local news channel is featured on WorseThanFailure?</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,1b812046-e417-4fd7-8a8e-01f089f87266.aspx</guid>
      <link>http://www.mohundro.com/blog/2007/05/24/ShouldIBeWorriedWhenTheLocalNewsChannelIsFeaturedOnWorseThanFailure.aspx</link>
      <pubDate>Thu, 24 May 2007 19:58:52 GMT</pubDate>
      <description>&lt;p&gt;
Here's the link: &lt;a title="http://worsethanfailure.com/Articles/Film-At-1100.aspx" href="http://worsethanfailure.com/Articles/Film-At-1100.aspx"&gt;http://worsethanfailure.com/Articles/Film-At-1100.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Wow. We're famous.
&lt;/p&gt;
&lt;p&gt;
My cubicle neighbor pointed it out to me.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=1b812046-e417-4fd7-8a8e-01f089f87266" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,1b812046-e417-4fd7-8a8e-01f089f87266.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=c687ba06-5a9d-4666-ae66-4f286b3453d6</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,c687ba06-5a9d-4666-ae66-4f286b3453d6.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,c687ba06-5a9d-4666-ae66-4f286b3453d6.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=c687ba06-5a9d-4666-ae66-4f286b3453d6</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.nerdtests.com/nq_ref.html">
            <img alt="I am nerdier than 74% of all people. Are you a nerd? Click here to find out!" src="http://www.nerdtests.com/images/badge/f8273a30a7e467bc.gif" />
          </a>
        </p>
        <p>
Don't worry, I did this over my lunch break. Because I'm a nerd.
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=c687ba06-5a9d-4666-ae66-4f286b3453d6" />
      </body>
      <title>My Nerd Score</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,c687ba06-5a9d-4666-ae66-4f286b3453d6.aspx</guid>
      <link>http://www.mohundro.com/blog/2007/05/22/MyNerdScore.aspx</link>
      <pubDate>Tue, 22 May 2007 17:52:57 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.nerdtests.com/nq_ref.html"&gt;&lt;img alt="I am nerdier than 74% of all people. Are you a nerd? Click here to find out!" src="http://www.nerdtests.com/images/badge/f8273a30a7e467bc.gif"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Don't worry, I did this over my lunch break. Because I'm a nerd.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=c687ba06-5a9d-4666-ae66-4f286b3453d6" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,c687ba06-5a9d-4666-ae66-4f286b3453d6.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=eb773fc6-d837-4527-bf2e-8a40eff60c90</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,eb773fc6-d837-4527-bf2e-8a40eff60c90.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,eb773fc6-d837-4527-bf2e-8a40eff60c90.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=eb773fc6-d837-4527-bf2e-8a40eff60c90</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
A few weeks ago, I posted on the <a href="http://www.mohundro.com/blog/2007/04/24/NiceCtrlTabExtensionForFirefox.aspx">Stack
Style Tabs extension for Firefox</a>. I used it for a little while and I realized
that it wasn't exactly what I was looking for... I think it was because I couldn't
use my keyboard arrow keys in addition to ALT-TABing around. What I really wanted
was a keyboard-centric way to quickly navigate through my tabs.
</p>
        <p>
Today, I was going through my feeds and noticed <a href="http://lifehacker.com/software/google/navigate-google-search-results-via-keyboard-shortcuts-261157.php">a
post from Lifehacker on a new experimental feature</a> that Google was working on
to allow you to navigate through search results using j/k and a few other keyboard
shortcuts. My first thought was that this would be great, because I use the provided
keyboard shortcuts to navigate through my feeds in Google Reader all the time. Unfortunately,
it was a little rough around the edges still.
</p>
        <p>
Then I saw a <a href="http://lifehacker.com/software/google/navigate-google-search-results-via-keyboard-shortcuts-261157.php#c1482889">comment
to the Lifehacker post on vimperator</a>. I had seen posts on <a href="http://vimperator.mozdev.net/">vimperator</a> before
and had even tried it, but it was a little too weird for me at the time. I mean, I
still use my mouse occassionally; however, the comment mentioned that you could type
:set guioptions=mTs and get your menu and toolbars back.
</p>
        <p>
So I thought, eh, why not. I'll give it a shot again.
</p>
        <p>
So far, I'm liking it.
</p>
        <p>
First off, I'll recommend turning your menu and toolbars back on using the guioptions
setting. It makes the transition to vimperator a little easier. Once you've done that,
just start browsing.
</p>
        <p>
Here are a couple of my favorite features so far:
</p>
        <ol>
          <li>
If you press f, you'll get Hit-a-Hint like labels pop up on all of the anchor tags
which will be numbered. If you press the number in the label, it will navigate to
that link. No mouse!</li>
          <li>
If you press b (comes from the vim idea of buffers instead of tabs), you'll get a
list of your tabs! Just press the number and it will open that tab up! Awesome! THIS
is what I wanted for a Firefox extension.</li>
        </ol>
        <p>
Here's a screenshot of it in action:
</p>
        <p>
          <a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/VimperatorreallyisagreatFirefoxextension_1299D/vimperator%5B2%5D.png" atomicselection="true">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="571" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/VimperatorreallyisagreatFirefoxextension_1299D/vimperator_thumb.png" width="720" border="0" />
          </a>
        </p>
        <p>
There are a lot of other options that are probably great, but I still need to spend
more time learning them. I encourage you to give it a try, too. Don't worry if
it seems a little overwhelming. You can always turn to vimperator's help, which
is excellent.
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=eb773fc6-d837-4527-bf2e-8a40eff60c90" />
      </body>
      <title>Vimperator really is a great Firefox extension!</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,eb773fc6-d837-4527-bf2e-8a40eff60c90.aspx</guid>
      <link>http://www.mohundro.com/blog/2007/05/18/VimperatorReallyIsAGreatFirefoxExtension.aspx</link>
      <pubDate>Fri, 18 May 2007 02:09:49 GMT</pubDate>
      <description>&lt;p&gt;
A few weeks ago, I posted on the &lt;a href="http://www.mohundro.com/blog/2007/04/24/NiceCtrlTabExtensionForFirefox.aspx"&gt;Stack
Style Tabs extension for Firefox&lt;/a&gt;. I used it for a little while and I realized
that it wasn't exactly what I was looking for... I think it was because I couldn't
use my keyboard arrow keys in addition to ALT-TABing around. What I really wanted
was a keyboard-centric way to quickly navigate through my tabs.
&lt;/p&gt;
&lt;p&gt;
Today, I was going through my feeds and noticed &lt;a href="http://lifehacker.com/software/google/navigate-google-search-results-via-keyboard-shortcuts-261157.php"&gt;a
post from Lifehacker on a new experimental feature&lt;/a&gt; that Google was working on
to allow you to navigate through search results using j/k and a few other keyboard
shortcuts. My first thought was that this would be great, because I use&amp;nbsp;the provided
keyboard shortcuts to navigate through my feeds in Google Reader all the time. Unfortunately,
it was a little rough around the edges still.
&lt;/p&gt;
&lt;p&gt;
Then I saw a &lt;a href="http://lifehacker.com/software/google/navigate-google-search-results-via-keyboard-shortcuts-261157.php#c1482889"&gt;comment
to the Lifehacker post on vimperator&lt;/a&gt;. I had seen posts on &lt;a href="http://vimperator.mozdev.net/"&gt;vimperator&lt;/a&gt; before
and had even tried it, but it was a little too weird for me at the time. I mean, I
still use my mouse occassionally; however, the comment mentioned that you could type
:set guioptions=mTs and get your menu and toolbars back.
&lt;/p&gt;
&lt;p&gt;
So I thought, eh, why not. I'll give it a shot again.
&lt;/p&gt;
&lt;p&gt;
So far, I'm liking it.
&lt;/p&gt;
&lt;p&gt;
First off, I'll recommend turning your menu and toolbars back on using the guioptions
setting. It makes the transition to vimperator a little easier. Once you've done that,
just start browsing.
&lt;/p&gt;
&lt;p&gt;
Here are a couple of my favorite features so far:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
If you press f, you'll get Hit-a-Hint like labels pop up on all of the anchor tags
which will be numbered. If you press the number in the label, it will navigate to
that link. No mouse!&lt;/li&gt;
&lt;li&gt;
If you press b (comes from the vim idea of buffers instead of tabs), you'll get a
list of your tabs! Just press the number and it will open that tab up! Awesome! THIS
is what I wanted for a Firefox extension.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Here's a screenshot of it in action:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/VimperatorreallyisagreatFirefoxextension_1299D/vimperator%5B2%5D.png" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="571" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/VimperatorreallyisagreatFirefoxextension_1299D/vimperator_thumb.png" width="720" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
There are a lot of other options that are probably great, but I still need to spend
more time learning them. I encourage you to give it a try, too.&amp;nbsp;Don't worry if
it seems a little overwhelming.&amp;nbsp;You can always turn to vimperator's help, which
is excellent.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=eb773fc6-d837-4527-bf2e-8a40eff60c90" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,eb773fc6-d837-4527-bf2e-8a40eff60c90.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=40bc92cc-21a2-4b29-99ad-c7ca6c0c045a</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,40bc92cc-21a2-4b29-99ad-c7ca6c0c045a.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,40bc92cc-21a2-4b29-99ad-c7ca6c0c045a.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=40bc92cc-21a2-4b29-99ad-c7ca6c0c045a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This post has absolutely nothing to do with anything. Just some ramblings from my
brain this morning.
</p>
        <p>
I got to work a few minutes ago and the first thing I do every morning is go pour
myself a cup of coffee. The coffee doesn't bother me too much - at least after I pour
some sugar and cream in it and it looks more like milk than coffee. However, others
at work despise the stuff. It's the typical coffee you might find at any other corporate
office... except maybe Starbucks.
</p>
        <p>
That's when the ironic thought hit me.
</p>
        <p>
What if the coffee that Starbucks has for their employees is the same coffee sludge
that every other corporate office has? Wouldn't that be hilarious? Wouldn't it be... <em>ironic</em>?
</p>
        <p>
It must be too early in the morning to form coherent thoughts.
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=40bc92cc-21a2-4b29-99ad-c7ca6c0c045a" />
      </body>
      <title>Randomness - I love irony</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,40bc92cc-21a2-4b29-99ad-c7ca6c0c045a.aspx</guid>
      <link>http://www.mohundro.com/blog/2007/05/16/RandomnessILoveIrony.aspx</link>
      <pubDate>Wed, 16 May 2007 12:11:43 GMT</pubDate>
      <description>&lt;p&gt;
This post has absolutely nothing to do with anything. Just some ramblings from my
brain this morning.
&lt;/p&gt;
&lt;p&gt;
I got to work a few minutes ago and the first thing I do every morning is go pour
myself a cup of coffee. The coffee doesn't bother me too much - at least after I pour
some sugar and cream in it and it looks more like milk than coffee. However, others
at work despise the stuff. It's the typical coffee you might find at any other corporate
office... except maybe Starbucks.
&lt;/p&gt;
&lt;p&gt;
That's when the ironic thought hit me.
&lt;/p&gt;
&lt;p&gt;
What if the coffee that Starbucks has for their employees is the same coffee sludge
that every other corporate office has? Wouldn't that be hilarious? Wouldn't it be... &lt;em&gt;ironic&lt;/em&gt;?
&lt;/p&gt;
&lt;p&gt;
It must be too early in the morning to form coherent thoughts.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=40bc92cc-21a2-4b29-99ad-c7ca6c0c045a" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,40bc92cc-21a2-4b29-99ad-c7ca6c0c045a.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=64ca7032-2fa9-4b78-afe2-69fc8edc03ae</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,64ca7032-2fa9-4b78-afe2-69fc8edc03ae.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,64ca7032-2fa9-4b78-afe2-69fc8edc03ae.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=64ca7032-2fa9-4b78-afe2-69fc8edc03ae</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I've already shared with you about how <a href="http://www.mohundro.com/blog/2006/08/27/NoisyWorkingConditions.aspx">cubicles
really can be annoying when you sit next to the loudest two individuals in the world</a>. 
</p>
        <p>
Now, I'd like to point you to a video that Long Zheng posted (from <a href="http://www.istartedsomething.com/">istartedsomething</a>)
from when <a href="http://www.istartedsomething.com/20070506/conan-intel-video/">Conan
O'Brien visited Intel headquarters</a>. 
</p>
        <p>
Here are some similarities between Intel and where I work:
</p>
        <ol>
          <li>
Cubicles really are like parking garages, except that you have assigned spots.</li>
          <li>
Cubicles really don't have much color or individuality (I do have a National Geographic
map on my cubicle wall, though - yay!).</li>
          <li>
People really are picky about their chairs. Seriously picky.</li>
        </ol>
        <p>
Here are some differences between Intel and where I work:
</p>
        <ol>
          <li>
No cafeteria.</li>
          <li>
No "ultra-clean" factory.</li>
          <li>
Hairnets only come into play on Halloween.</li>
          <li>
I haven't ever seen kids on a field trip, though we do have kids come around our cubes
to sell cookies sometimes (and on Halloween).</li>
        </ol>
        <p>
One other thing - I think I've met <a href="http://www.imdb.com/title/tt0151804/">Bill
Lumbergh's</a> clone in our cubicle farm. I'm guessing any and all work environments
that make use of cubes have their Bill Lumberghs.
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=64ca7032-2fa9-4b78-afe2-69fc8edc03ae" />
      </body>
      <title>Life in a cubicle</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,64ca7032-2fa9-4b78-afe2-69fc8edc03ae.aspx</guid>
      <link>http://www.mohundro.com/blog/2007/05/07/LifeInACubicle.aspx</link>
      <pubDate>Mon, 07 May 2007 02:42:23 GMT</pubDate>
      <description>&lt;p&gt;
I've already shared with you about how &lt;a href="http://www.mohundro.com/blog/2006/08/27/NoisyWorkingConditions.aspx"&gt;cubicles
really can be annoying when you sit next to the loudest two individuals in the world&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
Now, I'd like to point you to a video that Long Zheng posted (from &lt;a href="http://www.istartedsomething.com/"&gt;istartedsomething&lt;/a&gt;)
from when &lt;a href="http://www.istartedsomething.com/20070506/conan-intel-video/"&gt;Conan
O'Brien visited Intel headquarters&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
Here are some similarities between Intel and where I work:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Cubicles really are like parking garages, except that you have assigned spots.&lt;/li&gt;
&lt;li&gt;
Cubicles really don't have much color or individuality (I do have a National Geographic
map on my cubicle wall, though - yay!).&lt;/li&gt;
&lt;li&gt;
People really are picky about their chairs. Seriously picky.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Here are some differences between Intel and where I work:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
No cafeteria.&lt;/li&gt;
&lt;li&gt;
No "ultra-clean" factory.&lt;/li&gt;
&lt;li&gt;
Hairnets only come into play on Halloween.&lt;/li&gt;
&lt;li&gt;
I haven't ever seen kids on a field trip, though we do have kids come around our cubes
to sell cookies sometimes (and on Halloween).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
One other thing&amp;nbsp;- I think I've met &lt;a href="http://www.imdb.com/title/tt0151804/"&gt;Bill
Lumbergh's&lt;/a&gt; clone in our cubicle farm. I'm guessing any and all work environments
that make use of cubes have&amp;nbsp;their Bill Lumberghs.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=64ca7032-2fa9-4b78-afe2-69fc8edc03ae" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,64ca7032-2fa9-4b78-afe2-69fc8edc03ae.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=524875e7-da1e-4559-ae8d-ba585de25ef2</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,524875e7-da1e-4559-ae8d-ba585de25ef2.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,524875e7-da1e-4559-ae8d-ba585de25ef2.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=524875e7-da1e-4559-ae8d-ba585de25ef2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I'm sure you've seen this page before:
</p>
        <p>
          <a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/DuhoftheDayTurnoffIEsShowfriendlyHTTPerr_937B/sshot2%5B2%5D.png" atomicselection="true">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="213" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/DuhoftheDayTurnoffIEsShowfriendlyHTTPerr_937B/sshot2%5B1%5D.png" width="240" border="0" />
          </a>
        </p>
        <p>
I've seen a million posts on it, too. Jeff Atwood posted about this problem when he
was talking about <a href="http://www.codinghorror.com/blog/archives/000819.html">user-friendly
404 pages</a>. Internet Explorer tries to hide ugly error pages from you unless the
page displayed is greater than 512 bytes in size.
</p>
        <p>
I used to have this setting turned off, but my employers recently pushed out Internet
Explorer 7 to the corporate masses. I already had it installed, but it apparently
went over my previous installation, which means that I lost my previously customized
settings. Anyway, I spent about an hour trying to figure out why my IIS installation
had CustomErrors turned on for everybody before I realized that it was actually Internet
Explorer helping me out.
</p>
        <p>
To turn the setting off, go here:
</p>
        <p>
          <a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/DuhoftheDayTurnoffIEsShowfriendlyHTTPerr_937B/sshot1%5B2%5D.png" atomicselection="true">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="240" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/DuhoftheDayTurnoffIEsShowfriendlyHTTPerr_937B/sshot1%5B1%5D.png" width="187" border="0" />
          </a>
        </p>
        <p>
As Jeff points out, the best solution is to make sure that your error pages are bigger
than 512 bytes. Most of the time, ASP.NET error pages are far larger than 512 bytes,
too. HOWEVER, error messages from HTTP Remoting<strong>*</strong> are NOT always greater
than 512 bytes and I'm not sure if you can customize those or not. So I like to just
save myself the headache and turn this off.
</p>
        <p>
          <strong>*</strong> As a note, a useful tip for debugging HTTP remoting applications
is to browse to your registered channel (i.e. <a href="http://localhost/remotingEndPoint.rem">http://localhost/remotingEndPoint.rem</a>)
with a browser. If there are any problems with your remoting configuration or with
your assemblies being loaded, you'll get the friendly ASP.NET error message displayed
to you. If you don't get an ASP.NET error, you'll usually get a message
that looks like this:
</p>
        <pre>System.Runtime.Remoting.RemotingException: Requested Service not found
</pre>
        <p>
It basically means that you're configured correctly and that the server didn't find
a service based on your HTTP GET. I prefer checking remoting servers this way
because it is easier to read messages in your browser than trying to interpret
a binary serialization exception while in your remoting client.
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=524875e7-da1e-4559-ae8d-ba585de25ef2" />
      </body>
      <title>Duh of the Day - Turn off IE's &amp;quot;Show friendly HTTP error messages&amp;quot;</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,524875e7-da1e-4559-ae8d-ba585de25ef2.aspx</guid>
      <link>http://www.mohundro.com/blog/2007/04/06/DuhOfTheDayTurnOffIEsQuotShowFriendlyHTTPErrorMessagesquot.aspx</link>
      <pubDate>Fri, 06 Apr 2007 15:31:23 GMT</pubDate>
      <description>&lt;p&gt;
I'm sure you've seen this page before:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/DuhoftheDayTurnoffIEsShowfriendlyHTTPerr_937B/sshot2%5B2%5D.png" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="213" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/DuhoftheDayTurnoffIEsShowfriendlyHTTPerr_937B/sshot2%5B1%5D.png" width="240" border="0"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
I've seen a million posts on it, too. Jeff Atwood posted about this problem when he
was talking about &lt;a href="http://www.codinghorror.com/blog/archives/000819.html"&gt;user-friendly
404 pages&lt;/a&gt;. Internet Explorer tries to hide ugly error pages from you unless the
page displayed is greater than 512 bytes in size.
&lt;/p&gt;
&lt;p&gt;
I used to have this setting turned off, but my employers recently pushed out Internet
Explorer 7 to the corporate masses. I already had it installed, but it apparently
went over my previous installation, which means that I lost my previously customized
settings. Anyway, I spent about an hour trying to figure out why my IIS installation
had CustomErrors turned on for everybody before I realized that it was actually Internet
Explorer helping me out.
&lt;/p&gt;
&lt;p&gt;
To turn the setting off, go here:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/DuhoftheDayTurnoffIEsShowfriendlyHTTPerr_937B/sshot1%5B2%5D.png" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="240" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/DuhoftheDayTurnoffIEsShowfriendlyHTTPerr_937B/sshot1%5B1%5D.png" width="187" border="0"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
As Jeff points out, the best solution is to make sure that your error pages are bigger
than 512 bytes. Most of the time, ASP.NET error pages are far larger than 512 bytes,
too. HOWEVER, error messages from HTTP Remoting&lt;strong&gt;*&lt;/strong&gt; are NOT always greater
than 512 bytes and I'm not sure if you can customize those or not. So I like to just
save myself the headache and turn this off.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;*&lt;/strong&gt; As a note, a useful tip for debugging HTTP remoting applications
is to browse to your registered channel (i.e. &lt;a href="http://localhost/remotingEndPoint.rem"&gt;http://localhost/remotingEndPoint.rem&lt;/a&gt;)
with a browser. If there are any problems with your remoting configuration or with
your assemblies being loaded, you'll get the friendly ASP.NET error message displayed
to you.&amp;nbsp;If you don't get an ASP.NET error, you'll usually get&amp;nbsp;a message
that&amp;nbsp;looks like this:
&lt;/p&gt;
&lt;pre&gt;System.Runtime.Remoting.RemotingException: Requested Service not found
&lt;/pre&gt;
&lt;p&gt;
It basically means that you're configured correctly and that the server didn't find
a service based on your HTTP GET.&amp;nbsp;I prefer checking remoting servers this way
because it is easier to read messages in your browser&amp;nbsp;than trying to interpret
a binary serialization exception while in your remoting client.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=524875e7-da1e-4559-ae8d-ba585de25ef2" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,524875e7-da1e-4559-ae8d-ba585de25ef2.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=a62ae862-43cc-46ff-bf79-cbba9e43e7ca</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,a62ae862-43cc-46ff-bf79-cbba9e43e7ca.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,a62ae862-43cc-46ff-bf79-cbba9e43e7ca.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=a62ae862-43cc-46ff-bf79-cbba9e43e7ca</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
If you're not already subscribed to <a href="http://codebetter.com/blogs/jeremy.miller/default.aspx">Jeremy
Miller's blog</a>, do so now. I'll wait for you to come back.
</p>
        <p>
Okay, now that you've done that, read his latest post on <a href="http://codebetter.com/blogs/jeremy.miller/archive/2007/03/28/Dispassionately-Disregard-Sunk-Costs-while-Making-Architectural-Decisions.aspx">sunk
costs and architectural decisions</a>. I'll keep waiting.
</p>
        <p>
Done? Good.
</p>
        <p>
As I was reading his post, I found myself nodding my head in agreement over and over
again because I've been dealing with the exact same issues at work for the past few
months. Sunk costs are something that every business deals with. A sunk cost is when
you've already spent money on something and you later wish that you hadn't spent that
money. The <a href="http://en.wikipedia.org/wiki/Sunk_cost">Wikipedia example</a> that
Jeremy cites of going to see a bad movie is the classic example of sunk costs.
</p>
        <p>
One of the biggest problems with sunk costs isn't the actual cost involved but the
fact that as soon as you admit you're dealing with a sunk cost, you're also admitting
that a bad decision was made somewhere. This can lead to hurt feelings, hurt pride,
etc. Jeremy points out that there can be political implications of this as well.
Management will not be happy to find out that this awesome tool that was supposed
to bring world peace, cure cancer, and solve the energy crisis actually is too
slow for the masses to effectively use. They're likely going to question more than
just the tool afterwards.
</p>
        <p>
However, I submit that these same sunk costs can provide an incredible benefit to
developers. One of the quickest and most efficient ways to learn is to make mistakes.
If you get burned badly enough, you're not going to touch the hot stove again, because
you now know that it is hot. If you're the one who is responsible for the bug that
cost your company thousands or millions of dollars, will you make that same mistake
again? Of course not!
</p>
        <p>
Learn from your mistakes! I've been fortunate to be a part of a similar process and
the results so far have been very positive. Our team has really come together and
pushed out some really good code that our users are very happy with. Prior to starting
the rework, we had all been dreading continuing to deal with the prior version of
the product, because we knew we would be spending our time hunting down obscure
bugs and hearing complaints from users. The question we continually heard from users
was, "why is this better than before?" We hated the question because we didn't like
the system either! Now, we can tell them with confidence that our work is without
a doubt better and that we're behind it 100%.
</p>
        <p>
From the management side, I submit that managers who give their teams a chance to
fix mistakes and start over can gain a great deal of respect from their team. Our
manager had ties to the prior system, but he also knew there were problems with it.
The system had gone through three different groups before we had ever been given responsibility
over it! No one even knew the system anymore! Not only did we come together as a team
more, we also became more familiar with the code and were able to really take ownership
of it. A positive response to problems or mistakes reflects a real maturity in leadership.
</p>
        <p>
You can treat sunk costs as a straight loss and accept defeat. The better
alternative is to treat them as a training expense. The benefits from training are
not tangible, but most companies still spend money on their employees because
they can become more efficient. Similarly, when we respond to sunk costs positively,
they can provide the same kind of intangible benefits as training. Mistakes
were made, but mistakes are an opportunity for growth. <a href="http://worsethanfailure.com/Articles/Guest_Article_0x3a__Our_Dirty_Little_Secret.aspx">We
all write bad code</a>. Just be sure you learn from it and become a better developer!
</p>
        <p>
          <strong>UPDATE: </strong>Some clarification on sunk costs - a reader pointed
out that a sunk cost isn't necessarily a bad decision or mistake, just an <a href="http://economics.about.com/od/economicsglossary/g/sunkcosts.htm">unrecoverable
past expenditure</a>. I'm no economist, but it seems that the term typically carries
negative connotations.
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=a62ae862-43cc-46ff-bf79-cbba9e43e7ca" />
      </body>
      <title>Mistakes are training expenses</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,a62ae862-43cc-46ff-bf79-cbba9e43e7ca.aspx</guid>
      <link>http://www.mohundro.com/blog/2007/03/29/MistakesAreTrainingExpenses.aspx</link>
      <pubDate>Thu, 29 Mar 2007 13:39:07 GMT</pubDate>
      <description>&lt;p&gt;
If you're not already subscribed to &lt;a href="http://codebetter.com/blogs/jeremy.miller/default.aspx"&gt;Jeremy
Miller's blog&lt;/a&gt;, do so now. I'll wait for you to come back.
&lt;/p&gt;
&lt;p&gt;
Okay, now that you've done that, read his latest post on &lt;a href="http://codebetter.com/blogs/jeremy.miller/archive/2007/03/28/Dispassionately-Disregard-Sunk-Costs-while-Making-Architectural-Decisions.aspx"&gt;sunk
costs and architectural decisions&lt;/a&gt;. I'll keep waiting.
&lt;/p&gt;
&lt;p&gt;
Done? Good.
&lt;/p&gt;
&lt;p&gt;
As I was reading his post, I found myself nodding my head in agreement over and over
again because I've been dealing with the exact same issues at work for the past few
months. Sunk costs are something that every business deals with. A sunk cost is when
you've already spent money on something and you later wish that you hadn't spent that
money. The &lt;a href="http://en.wikipedia.org/wiki/Sunk_cost"&gt;Wikipedia example&lt;/a&gt; that
Jeremy cites of&amp;nbsp;going to see a bad movie is the classic example of sunk costs.
&lt;/p&gt;
&lt;p&gt;
One of the biggest problems with sunk costs isn't the actual cost involved but the
fact that&amp;nbsp;as soon as you admit you're dealing with a sunk cost, you're also admitting
that a bad decision was made somewhere. This can lead to hurt feelings, hurt pride,
etc. Jeremy points out that there&amp;nbsp;can be political implications of this as well.
Management will not be happy to find out that this awesome tool that was supposed
to bring world peace, cure cancer, and solve the energy crisis actually is&amp;nbsp;too
slow for the masses to effectively use. They're likely going to question more than
just the tool afterwards.
&lt;/p&gt;
&lt;p&gt;
However, I submit that these same sunk costs can provide an incredible benefit to
developers. One of the quickest and most efficient ways to learn is to make mistakes.
If you get burned badly enough, you're not going to touch the hot stove again, because
you now know that it is hot. If you're the one who is responsible for the bug that
cost your company thousands or millions of dollars, will you make that same mistake
again? Of course not!
&lt;/p&gt;
&lt;p&gt;
Learn from your mistakes! I've been fortunate to be a part of a similar process and
the results so far have been very positive. Our team has really come together and
pushed out some really good code that our users are very happy with. Prior to starting
the rework, we had all been dreading continuing to deal with the prior version of
the product, because we knew we would&amp;nbsp;be spending our time hunting down obscure
bugs and hearing complaints from users. The question we continually heard from users
was, "why is this better than before?" We hated the question because we didn't like
the system either! Now, we can tell them with confidence that our work is without
a doubt better and that we're behind it 100%.
&lt;/p&gt;
&lt;p&gt;
From the management side, I submit that managers who give their teams a chance to
fix mistakes and start over can gain a great deal of respect from their team. Our
manager had ties to the prior system, but he also knew there were problems with it.
The system had gone through three different groups before we had ever been given responsibility
over it! No one even knew the system anymore! Not only did we come together as a team
more, we also became more familiar with the code and were able to really take ownership
of it. A positive response to problems or mistakes reflects a real maturity in leadership.
&lt;/p&gt;
&lt;p&gt;
You can treat sunk costs as a&amp;nbsp;straight loss and accept defeat.&amp;nbsp;The better
alternative is to treat them as a training expense. The benefits from training are
not tangible, but most companies still spend money on their&amp;nbsp;employees&amp;nbsp;because
they can become more efficient. Similarly, when we respond to sunk costs positively,
they can provide&amp;nbsp;the same kind of intangible benefits&amp;nbsp;as training.&amp;nbsp;Mistakes
were made, but mistakes are an opportunity for growth. &lt;a href="http://worsethanfailure.com/Articles/Guest_Article_0x3a__Our_Dirty_Little_Secret.aspx"&gt;We
all write bad code&lt;/a&gt;. Just be sure you learn from it and become a better developer!
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;UPDATE: &lt;/strong&gt;Some clarification on sunk costs&amp;nbsp;-&amp;nbsp;a reader pointed
out that a sunk cost isn't necessarily a bad decision or mistake, just an &lt;a href="http://economics.about.com/od/economicsglossary/g/sunkcosts.htm"&gt;unrecoverable
past expenditure&lt;/a&gt;. I'm no economist, but it seems that the term typically carries
negative connotations.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=a62ae862-43cc-46ff-bf79-cbba9e43e7ca" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,a62ae862-43cc-46ff-bf79-cbba9e43e7ca.aspx</comments>
      <category>General</category>
      <category>Programming</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=5dc57115-c554-49d0-9d06-7e8bd47b046c</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,5dc57115-c554-49d0-9d06-7e8bd47b046c.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,5dc57115-c554-49d0-9d06-7e8bd47b046c.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=5dc57115-c554-49d0-9d06-7e8bd47b046c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This is completely off-topic, but I thought it was pretty funny.
</p>
        <p>
I had this past Monday off from work and when I got into the office today, I noticed
that I had a voicemail. As a programmer, that usually isn't a good sign, because many
times it means a user has tried to call to let you know about a problem. When I noticed
the message was left on Saturday morning, that made it seem even worse.
</p>
        <p>
Then I actually listened to the message.
</p>
        <p>
"If you would like to accept this call, please press 3... now."
</p>
        <p>
I won't give you the rest of the message. Needless to say, hearing that prerecorded
voice telling me my options for a collect call that I wasn't able to accept made me
feel much better about my day.
</p>
        <p>
I hope a user wasn't trying to call me collect.
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=5dc57115-c554-49d0-9d06-7e8bd47b046c" />
      </body>
      <title>Would you like to accept this call?</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,5dc57115-c554-49d0-9d06-7e8bd47b046c.aspx</guid>
      <link>http://www.mohundro.com/blog/2007/03/20/WouldYouLikeToAcceptThisCall.aspx</link>
      <pubDate>Tue, 20 Mar 2007 12:09:34 GMT</pubDate>
      <description>&lt;p&gt;
This is completely off-topic, but I thought it was pretty funny.
&lt;/p&gt;
&lt;p&gt;
I had this past Monday off from work and when I got into the office today, I noticed
that I had a voicemail. As a programmer, that usually isn't a good sign, because many
times it means a user has tried to call to let you know about a problem. When I noticed
the message was left on Saturday morning, that made it seem even worse.
&lt;/p&gt;
&lt;p&gt;
Then I actually listened to the message.
&lt;/p&gt;
&lt;p&gt;
"If you would like to accept this call, please press 3... now."
&lt;/p&gt;
&lt;p&gt;
I won't give you the rest of the message. Needless to say, hearing that prerecorded
voice telling me my options for a collect call that I wasn't able to accept made me
feel much better about my day.
&lt;/p&gt;
&lt;p&gt;
I hope a user wasn't trying to call me collect.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=5dc57115-c554-49d0-9d06-7e8bd47b046c" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,5dc57115-c554-49d0-9d06-7e8bd47b046c.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=ae9eaac3-7635-473f-a2be-22f95c015470</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,ae9eaac3-7635-473f-a2be-22f95c015470.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,ae9eaac3-7635-473f-a2be-22f95c015470.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=ae9eaac3-7635-473f-a2be-22f95c015470</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
So, want to improve at what you're doing?
</p>
        <p>
In a phrase, don't stop learning.
</p>
        <p>
In my profession (software development), this is even more important, because the
field sure isn't going to wait for you. Jeremy Miller posted about how <a href="http://codebetter.com/blogs/jeremy.miller/archive/2007/03/15/More-from-the-MVP-Summit_3A00_--Go-forth-and-see-the-world_2100_.aspx">developers
need to get out and "see the world."</a> He was specifically talking about
checking out other technologies like Ruby because it can help to see how things can
be done differently, but he makes one statement that I liked in particular:
</p>
        <blockquote>
          <p>
Software development is still a young profession that's in a state of constant flux
and it's just not smart to put your head in the sand.
</p>
          <p>
...
</p>
          <p>
Yeah, I know, we all want work to end at 5 pm.  But development is the profession
we chose, and <strong><em>if constant learning doesn't suit you, it's time to move
onto something else</em></strong>.
</p>
        </blockquote>
        <p>
This reminds me of a phrase that Scott Hanselman used in his recent <a href="http://www.hanselminutes.com/default.aspx?showID=69">podcast
on "Hiring and Interviewing Engineers."</a> Here's the relevant snippet from the podcast:
</p>
        <blockquote>
          <p>
            <strong>Scott Hanselman:</strong> ... I also ask<br />
people about what blogs they read, what books<br />
they read, how do they become <strong><em>lifelong<br />
learners</em></strong>...<br /><br /><strong>Carl Franklin:</strong> Yeah, very important.<br /><br /><strong>Scott Hanselman:</strong> ...because it is not that you<br />
want them to be people who are necessarily<br />
working on Open Source projects at night, but<br />
they should be enthused; they should be stoked<br />
about whatever they are working on.
</p>
        </blockquote>
        <p>
I actually typically use my lunch hour to catch up on feeds, which are an excellent
source of continuing learning. As far as books... well, I've got like 5 or 6 at home
that I need to read. I still need to work on that.
</p>
        <p>
What are your tips on continual learning?
</p>
        <p>
(man, this post reads a lot like those cheesy "the more you know" commercials from
TV... sorry...)
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=ae9eaac3-7635-473f-a2be-22f95c015470" />
      </body>
      <title>How to get better at what you're doing</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,ae9eaac3-7635-473f-a2be-22f95c015470.aspx</guid>
      <link>http://www.mohundro.com/blog/2007/03/15/HowToGetBetterAtWhatYoureDoing.aspx</link>
      <pubDate>Thu, 15 Mar 2007 18:36:50 GMT</pubDate>
      <description>&lt;p&gt;
So, want to improve at what you're doing?
&lt;/p&gt;
&lt;p&gt;
In&amp;nbsp;a phrase, don't stop learning.
&lt;/p&gt;
&lt;p&gt;
In my profession (software development), this is even more important, because the
field sure isn't going to wait for you. Jeremy Miller posted about how &lt;a href="http://codebetter.com/blogs/jeremy.miller/archive/2007/03/15/More-from-the-MVP-Summit_3A00_--Go-forth-and-see-the-world_2100_.aspx"&gt;developers
need to get out and "see the world."&lt;/a&gt;&amp;nbsp;He was&amp;nbsp;specifically talking about
checking out other technologies like Ruby because it can help to see how things can
be done differently, but he makes one statement that I liked in particular:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
Software development is still a young profession that's in a state of constant flux
and it's just not smart to put your head in the sand.
&lt;/p&gt;
&lt;p&gt;
...
&lt;/p&gt;
&lt;p&gt;
Yeah, I know, we all want work to end at 5 pm.&amp;nbsp; But development is the profession
we chose, and &lt;strong&gt;&lt;em&gt;if constant learning doesn't suit you, it's time to move
onto something else&lt;/em&gt;&lt;/strong&gt;.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
This reminds me of a phrase that Scott Hanselman used in&amp;nbsp;his&amp;nbsp;recent &lt;a href="http://www.hanselminutes.com/default.aspx?showID=69"&gt;podcast
on "Hiring and Interviewing Engineers."&lt;/a&gt; Here's the relevant snippet from the podcast:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;Scott Hanselman:&lt;/strong&gt; ... I also ask&lt;br&gt;
people about what blogs they read, what books&lt;br&gt;
they read, how do they become &lt;strong&gt;&lt;em&gt;lifelong&lt;br&gt;
learners&lt;/em&gt;&lt;/strong&gt;...&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;Carl Franklin:&lt;/strong&gt; Yeah, very important.&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;Scott Hanselman:&lt;/strong&gt; ...because it is not that you&lt;br&gt;
want them to be people who are necessarily&lt;br&gt;
working on Open Source projects at night, but&lt;br&gt;
they should be enthused; they should be stoked&lt;br&gt;
about whatever they are working on.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
I actually typically use my lunch hour to catch up on feeds, which are an excellent
source of continuing learning. As far as books... well, I've got like 5 or 6 at home
that I need to read. I still need to work on that.
&lt;/p&gt;
&lt;p&gt;
What are your tips on continual learning?
&lt;/p&gt;
&lt;p&gt;
(man, this post reads a lot like those cheesy "the more you know" commercials from
TV... sorry...)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=ae9eaac3-7635-473f-a2be-22f95c015470" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,ae9eaac3-7635-473f-a2be-22f95c015470.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=5855fa06-d4de-4d4b-b39b-f98c74fed16c</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,5855fa06-d4de-4d4b-b39b-f98c74fed16c.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,5855fa06-d4de-4d4b-b39b-f98c74fed16c.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=5855fa06-d4de-4d4b-b39b-f98c74fed16c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I'm sure I'm the only one that has ever messed up like this, but anyway...
</p>
        <p>
My TV is one of the 30" HDTV monitors. It was cheaper at the time and the box didn't
mention anything about it not being a true "HD" TV. In other words, it doesn't support
HD without a tuner. Regardless, though, it was cheap and it has a great picture. 
</p>
        <p>
Unfortunately, it doesn't have HDMI input, so when I upgraded from the old HD package
from Dish Network to their HD/DVR service, the upgraded receiver I got only had component
output and HDMI output. 
</p>
        <p>
Big deal, right? Surely I can deal with component.
</p>
        <p>
Except that my Xbox 360 takes up one of my component inputs and my Wii SHOULD take
up the other component input. I'm out of component inputs.
</p>
        <p>
I did what any other self-respecting geek would do and headed over to <a href="http://www.monoprice.com">monoprice.com</a>,
which is by far the best place to get cables or adapters... period. I ordered an HDMI
to DVI converter a few days after ordering my Wii component cables. The Wii cables
came first, so my 360 was unhooked for a few days while I could enjoy some 480p Wii
goodness (it does look better than the 480i with the prepackaged composite cables by
the way).
</p>
        <p>
Today, my HDMI to DVI converter came.
</p>
        <p>
And I goofed up.
</p>
        <p>
I ordered the DVI (male) to HDMI (female) converter.
</p>
        <p>
Not the DVI (female) to HDMI (male) converter.
</p>
        <p>
The plugs don't work that way.
</p>
        <p>
*sigh*
</p>
        <p>
What's even better is I didn't realize this until I had already pulled the TV out,
unhooked the satellite receiver from the component and rehooked the 360 component
back in.
</p>
        <p>
Moral of the story: double check your cables before you buy new cables.
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=5855fa06-d4de-4d4b-b39b-f98c74fed16c" />
      </body>
      <title>Reminder: Check your cables before buying more cables...</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,5855fa06-d4de-4d4b-b39b-f98c74fed16c.aspx</guid>
      <link>http://www.mohundro.com/blog/2007/03/09/ReminderCheckYourCablesBeforeBuyingMoreCables.aspx</link>
      <pubDate>Fri, 09 Mar 2007 00:37:08 GMT</pubDate>
      <description>&lt;p&gt;
I'm sure I'm the only one that has ever messed up like this, but anyway...
&lt;/p&gt;
&lt;p&gt;
My TV is one of the 30" HDTV monitors. It was cheaper at the time and the box didn't
mention anything about it not being a true "HD" TV. In other words, it doesn't support
HD without a tuner. Regardless, though, it was cheap and it has a great picture. 
&lt;/p&gt;
&lt;p&gt;
Unfortunately, it doesn't have HDMI input, so when I upgraded from the old HD package
from Dish Network to their HD/DVR service, the upgraded receiver I got only had component
output and HDMI output. 
&lt;/p&gt;
&lt;p&gt;
Big deal, right? Surely I can deal with component.
&lt;/p&gt;
&lt;p&gt;
Except that my Xbox 360 takes up one of my component inputs and my Wii SHOULD take
up the other component input. I'm out of component inputs.
&lt;/p&gt;
&lt;p&gt;
I did what any other self-respecting geek would do and headed over to &lt;a href="http://www.monoprice.com"&gt;monoprice.com&lt;/a&gt;,
which is by far the best place to get cables or adapters... period. I ordered an HDMI
to DVI converter a few days after ordering my Wii component cables. The Wii cables
came first, so my 360 was unhooked for a few days while I could enjoy some 480p Wii
goodness (it does look better than the 480i with the prepackaged&amp;nbsp;composite cables&amp;nbsp;by
the way).
&lt;/p&gt;
&lt;p&gt;
Today, my HDMI to DVI converter came.
&lt;/p&gt;
&lt;p&gt;
And I goofed up.
&lt;/p&gt;
&lt;p&gt;
I ordered the DVI (male) to HDMI (female) converter.
&lt;/p&gt;
&lt;p&gt;
Not the DVI (female) to HDMI (male) converter.
&lt;/p&gt;
&lt;p&gt;
The plugs don't work that way.
&lt;/p&gt;
&lt;p&gt;
*sigh*
&lt;/p&gt;
&lt;p&gt;
What's even better is I didn't realize this until I had already pulled the TV out,
unhooked the satellite receiver from the component and rehooked the 360 component
back in.
&lt;/p&gt;
&lt;p&gt;
Moral of the story: double check your cables before you buy new cables.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=5855fa06-d4de-4d4b-b39b-f98c74fed16c" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,5855fa06-d4de-4d4b-b39b-f98c74fed16c.aspx</comments>
      <category>General</category>
      <category>Hardware</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=660dc78f-9e13-4bf7-a3d0-174def97cba1</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,660dc78f-9e13-4bf7-a3d0-174def97cba1.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,660dc78f-9e13-4bf7-a3d0-174def97cba1.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=660dc78f-9e13-4bf7-a3d0-174def97cba1</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <blockquote>
          <p>
Your programmer personality type is:<br /><b>DHSC</b></p>
          <p>
            <b>You're a Doer.</b>
            <br />
You are very quick at getting tasks done. You believe the outcome is the most important
part of a task and the faster you can reach that outcome the better. After all, time
is money.<br /><b>You like coding at a High level.</b><br />
The world is made up of objects and components, you should create your programs in
the same way.<br /><b>You work best in a Solo situation.</b><br />
The best way to program is by yourself. There's no communication problems, you know
every part of the code allowing you to write the best programs possible.<br /><b>You are a Conservative programmer.</b><br />
The less code you write, the less chance there is of it containing a bug. You write
short and to the point code that gets the job done efficiently.
</p>
        </blockquote>
        <p>
Find out your score at <a title="http://www.doolwind.com/index.php?page=11" href="http://www.doolwind.com/index.php?page=11">http://www.doolwind.com/index.php?page=11</a>.
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=660dc78f-9e13-4bf7-a3d0-174def97cba1" />
      </body>
      <title>My programmer personality type...</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,660dc78f-9e13-4bf7-a3d0-174def97cba1.aspx</guid>
      <link>http://www.mohundro.com/blog/2007/03/02/MyProgrammerPersonalityType.aspx</link>
      <pubDate>Fri, 02 Mar 2007 13:36:27 GMT</pubDate>
      <description>&lt;blockquote&gt; 
&lt;p&gt;
Your programmer personality type is:&lt;br&gt;
&lt;b&gt;DHSC&lt;/b&gt; 
&lt;p&gt;
&lt;b&gt;You're a Doer.&lt;/b&gt;
&lt;br&gt;
You are very quick at getting tasks done. You believe the outcome is the most important
part of a task and the faster you can reach that outcome the better. After all, time
is money.&lt;br&gt;
&lt;b&gt;You like coding at a High level.&lt;/b&gt;
&lt;br&gt;
The world is made up of objects and components, you should create your programs in
the same way.&lt;br&gt;
&lt;b&gt;You work best in a Solo situation.&lt;/b&gt;
&lt;br&gt;
The best way to program is by yourself. There's no communication problems, you know
every part of the code allowing you to write the best programs possible.&lt;br&gt;
&lt;b&gt;You are a Conservative programmer.&lt;/b&gt;
&lt;br&gt;
The less code you write, the less chance there is of it containing a bug. You write
short and to the point code that gets the job done efficiently.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Find out your score at &lt;a title="http://www.doolwind.com/index.php?page=11" href="http://www.doolwind.com/index.php?page=11"&gt;http://www.doolwind.com/index.php?page=11&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=660dc78f-9e13-4bf7-a3d0-174def97cba1" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,660dc78f-9e13-4bf7-a3d0-174def97cba1.aspx</comments>
      <category>General</category>
      <category>Programming</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=136486b4-870a-4ef1-b737-acd789369501</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,136486b4-870a-4ef1-b737-acd789369501.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,136486b4-870a-4ef1-b737-acd789369501.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=136486b4-870a-4ef1-b737-acd789369501</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
You know about <a href="http://www.ntwind.com/">NTWind</a> even if you don't think
you do... NTWind is where you can get such awesome tools as <a href="http://www.ntwind.com/software/winsnap.html">WinSnap</a> and <a href="http://www.ntwind.com/software/taskswitchxp.html">TaskSwitchXP</a>.
The site has had a blog link on the side for a while, but it had been "under
construction" for a few months... 
</p>
        <p>
Until now!
</p>
        <p>
So go add the <a href="http://www.ntwind.com/rss.xml">NTWind feed</a> to your reader
so that you'll always know when there is an update for one of the NTWind
tools!
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=136486b4-870a-4ef1-b737-acd789369501" />
      </body>
      <title>TODO: Add NTWind Feed to your Feed Reader!</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,136486b4-870a-4ef1-b737-acd789369501.aspx</guid>
      <link>http://www.mohundro.com/blog/2007/03/01/TODOAddNTWindFeedToYourFeedReader.aspx</link>
      <pubDate>Thu, 01 Mar 2007 14:09:45 GMT</pubDate>
      <description>&lt;p&gt;
You know about &lt;a href="http://www.ntwind.com/"&gt;NTWind&lt;/a&gt; even if you don't think
you do... NTWind is where you can get such awesome tools as &lt;a href="http://www.ntwind.com/software/winsnap.html"&gt;WinSnap&lt;/a&gt; and &lt;a href="http://www.ntwind.com/software/taskswitchxp.html"&gt;TaskSwitchXP&lt;/a&gt;.
The site has had a blog link on the side for a while, but it had been&amp;nbsp;"under
construction" for a few months... 
&lt;/p&gt;
&lt;p&gt;
Until now!
&lt;/p&gt;
&lt;p&gt;
So go add the &lt;a href="http://www.ntwind.com/rss.xml"&gt;NTWind feed&lt;/a&gt; to your reader
so that you'll always know when&amp;nbsp;there is an&amp;nbsp;update for one of the NTWind
tools!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=136486b4-870a-4ef1-b737-acd789369501" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,136486b4-870a-4ef1-b737-acd789369501.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=0be21ea5-418e-43c7-afdd-b45cd9663277</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,0be21ea5-418e-43c7-afdd-b45cd9663277.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,0be21ea5-418e-43c7-afdd-b45cd9663277.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=0be21ea5-418e-43c7-afdd-b45cd9663277</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Jeff Atwood posted a <a href="http://www.codinghorror.com/blog/archives/000781.html">great
article talking about programmers that can't actually program</a>. 
</p>
        <p>
I've been thinking about this a lot lately. Actually, lately is probably the wrong
word, because I really started thinking about this way back when Joel Spolsky posted
his <a href="http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html">infamous
article on why he believes that colleges should teach C instead of Java</a>. When
that article came out, I had only been out of college for about a couple of years,
but during that time, I had already seen my share of examples of programmers who couldn't
program. Joel's article couldn't solve this problem for me, though, because these
programmers would have had just as much trouble developing in Java as in C. 
</p>
        <p>
For many (non-)programmers, there seems to be a fundamental misunderstanding
about programming in general, particularly with the ability to formulate basic
algorithms to solve simple tasks. One example involved a programmer that had trouble
with anything beyond placing formatted data to an HTML form. This programmer was tasked
with moving through a DOM table to highlight cells that had certain values in them.
In programming terms, he basically had to traverse an array checking for conditions
- a very simple algorithm. However, he froze when he got to that part of his
project, because he hadn't been trained in thinking about problems and how to solve
them.
</p>
        <p>
The examples that Jeff notes are just as much or more appalling and also show
that these aren't isolated incidents.
</p>
        <p>
What do we do about this problem?
</p>
        <p>
At the end of his post, Jeff notes Steve McConnell's book on the profession of
software development. It is an interesting concept and reminds me of a conversation
I had with a pharmacist I met in my MBA program. He noted that some professions, such
as pharmacy, have certifications to let the rest of us know that an individual actually
knows what he or she is talking about regarding their profession while
there are other professions that don't provide any sort of guarantee as to the actual
knowledge someone possesses. I'm reminded of my wife in this case, because she has
certifications for speech and language pathology. One of the requirements for her to keep
her certifications is that she must have X number of hours of continuing
education each year.
</p>
        <p>
Could something like this work with software development?
</p>
        <p>
There are obviously already many different certifications that exist (Microsoft certifications,
Sun certifications, Oracle certifications, the list goes on), but that really brings
out one of the problems with certifications in software development. I don't want
to be a good developer with just Microsoft tools - I want to be a good developer
period. If a software development certification existed that could ensure that someone
was a competent developer and had a good knowledge of programming in general, it might
work, but then again, the field changes constantly.
</p>
        <p>
"OOP all the way!"
</p>
        <p>
"No! TDD all the way!"
</p>
        <p>
"Oh yeah, well, what about functional programming?"
</p>
        <p>
"But... you can have functional and TDD at the same time!"
</p>
        <p>
"You guys are all morons, QUANTUM programming is the way to go!"
</p>
        <p>
It would be nigh impossible to have a certification that would be relevant and, more
importantly, STAY relevant.
</p>
        <p>
I'm sure I'm not adding anything new to this subject, but it has been on my mind for
a while. I think I like the idea of a certification that requires continuing education
- that almost seems like a must with software development. I primarily work with .NET
2.0 right now but it almost feels like what I'm working on isn't even relevant because
of all the talk about .NET 3.0 (I know, just an extension of .NET 2.0) and LINQ, DLINQ,
etc (actually coming from the upcoming new version of the framework....
3.5?). 
</p>
        <p>
How would continuing education be defined in software development? Is it conferences?
Reading blogs or books? Working on a variety of different projects so that you gain
experience with different technologies?
</p>
        <p>
Can the problem of programmers who can't program even be solved?
</p>
        <p>
(By the way, before someone starts griping, I'm not advocating certifications... at
least I don't think I am. I just want to see this problem fixed. Isn't that what all
programmers want to do? Solve problems?)
</p>
        <p>
...
</p>
        <p>
I think this might be one of the longest posts I've ever written.
</p>
        <p>
          <strong>NOTE</strong>: This post was NOT inspired by anyone in particular... don't
worry. Don't go thinking you're an awful programmer and I hate you.  :-)
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=0be21ea5-418e-43c7-afdd-b45cd9663277" />
      </body>
      <title>How do we solve this problem? (not a programming problem!)</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,0be21ea5-418e-43c7-afdd-b45cd9663277.aspx</guid>
      <link>http://www.mohundro.com/blog/2007/02/27/HowDoWeSolveThisProblemNotAProgrammingProblem.aspx</link>
      <pubDate>Tue, 27 Feb 2007 18:53:07 GMT</pubDate>
      <description>&lt;p&gt;
Jeff Atwood posted a &lt;a href="http://www.codinghorror.com/blog/archives/000781.html"&gt;great
article talking about programmers that can't actually program&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
I've been thinking about this a lot lately. Actually, lately is probably the wrong
word, because I really started thinking about this way back when Joel Spolsky posted
his &lt;a href="http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html"&gt;infamous
article on why he believes that colleges should teach C instead of Java&lt;/a&gt;. When
that article came out, I had only been out of college for about a couple of years,
but during that time, I had already seen my share of examples of programmers who couldn't
program. Joel's article couldn't solve this problem for me, though, because these
programmers would have had just as much trouble developing in Java as in C. 
&lt;/p&gt;
&lt;p&gt;
For many (non-)programmers, there&amp;nbsp;seems to be&amp;nbsp;a fundamental misunderstanding
about programming in general, particularly&amp;nbsp;with the ability to formulate basic
algorithms to solve simple tasks. One example involved a programmer that had trouble
with anything beyond placing formatted data to an HTML form. This programmer was tasked
with moving through a DOM table to highlight cells that had certain values in them.
In programming terms, he basically had to traverse an array checking for conditions
- a very simple algorithm. However, he&amp;nbsp;froze when he got to that part of his
project, because he hadn't been trained in thinking about problems and how to solve
them.
&lt;/p&gt;
&lt;p&gt;
The examples that Jeff notes are just as much or more&amp;nbsp;appalling and also show
that these aren't isolated incidents.
&lt;/p&gt;
&lt;p&gt;
What do we do about this problem?
&lt;/p&gt;
&lt;p&gt;
At the end of his post, Jeff notes Steve McConnell's book on the profession&amp;nbsp;of
software development. It is an interesting concept and reminds me of a conversation
I had with a pharmacist I met in my MBA program. He noted that some professions, such
as pharmacy, have certifications to let the rest of us know that an individual actually
knows what&amp;nbsp;he or she&amp;nbsp;is&amp;nbsp;talking about regarding their profession while
there are other professions that don't provide any sort of guarantee as to the actual
knowledge someone possesses. I'm reminded of my wife in this case, because she has
certifications for speech and language pathology. One of the requirements for her&amp;nbsp;to&amp;nbsp;keep
her certifications&amp;nbsp;is that&amp;nbsp;she must have X number of hours of continuing
education each year.
&lt;/p&gt;
&lt;p&gt;
Could something like this work with software development?
&lt;/p&gt;
&lt;p&gt;
There are obviously already many different certifications that exist (Microsoft certifications,
Sun certifications, Oracle certifications, the list goes on), but that really brings
out one of the problems with certifications in software development. I don't want
to be a good developer with just Microsoft tools&amp;nbsp;- I want to be a good developer
period. If a software development certification existed that could ensure that someone
was a competent developer and had a good knowledge of programming in general, it might
work, but then again, the field changes constantly.
&lt;/p&gt;
&lt;p&gt;
"OOP all the way!"
&lt;/p&gt;
&lt;p&gt;
"No! TDD all the way!"
&lt;/p&gt;
&lt;p&gt;
"Oh yeah, well, what about functional programming?"
&lt;/p&gt;
&lt;p&gt;
"But... you can have functional and TDD at the same time!"
&lt;/p&gt;
&lt;p&gt;
"You guys are all morons, QUANTUM programming is the way to go!"
&lt;/p&gt;
&lt;p&gt;
It would be nigh impossible to have a certification that would be relevant and, more
importantly, STAY relevant.
&lt;/p&gt;
&lt;p&gt;
I'm sure I'm not adding anything new to this subject, but it has been on my mind for
a while. I think I like the idea of a certification that requires continuing education
- that almost seems like a must with software development. I primarily work with .NET
2.0 right now but it almost feels like what I'm working on isn't even relevant because
of all the talk about .NET 3.0 (I know, just an extension of .NET 2.0) and LINQ, DLINQ,
etc&amp;nbsp;(actually coming from the&amp;nbsp;upcoming new version of the framework....
3.5?). 
&lt;/p&gt;
&lt;p&gt;
How would continuing education be defined in software development? Is it conferences?
Reading blogs or books? Working on a variety of different projects so that you gain
experience with different technologies?
&lt;/p&gt;
&lt;p&gt;
Can the problem of programmers who can't program even be solved?
&lt;/p&gt;
&lt;p&gt;
(By the way, before someone starts griping, I'm not advocating certifications... at
least I don't think I am. I just want to see this problem fixed. Isn't that what all
programmers want to do? Solve problems?)
&lt;/p&gt;
&lt;p&gt;
...
&lt;/p&gt;
&lt;p&gt;
I think this might be one of the longest posts I've ever written.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;NOTE&lt;/strong&gt;: This post was NOT inspired by anyone in particular... don't
worry. Don't go thinking you're an awful programmer and I hate you.&amp;nbsp; :-)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=0be21ea5-418e-43c7-afdd-b45cd9663277" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,0be21ea5-418e-43c7-afdd-b45cd9663277.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=58522b38-b795-41d4-96c9-bfb0cc635dd1</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,58522b38-b795-41d4-96c9-bfb0cc635dd1.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,58522b38-b795-41d4-96c9-bfb0cc635dd1.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=58522b38-b795-41d4-96c9-bfb0cc635dd1</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I guess <strong></strong><a href="http://worsethanfailure.com/Articles/Announcement_0x3a__Website_0x2e_RenameTo(_0x201c_Worse_Than_Failure_0x201d_).aspx">Worse
Than Failure</a> fits a little better than what I had resorted to calling it on my
own: "<strong>W</strong>here's <strong>t</strong>he <strong>F</strong>unction?" 
</p>
        <p>
It didn't communicate the same feeling of horror and disbelief as the actual, intended
acronym, but it was cleaner and easier to speak openly about among the cubicle farm
:-)
</p>
        <p>
Now to get used to the new name.
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=58522b38-b795-41d4-96c9-bfb0cc635dd1" />
      </body>
      <title>Worse than failure...</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,58522b38-b795-41d4-96c9-bfb0cc635dd1.aspx</guid>
      <link>http://www.mohundro.com/blog/2007/02/26/WorseThanFailure.aspx</link>
      <pubDate>Mon, 26 Feb 2007 13:18:23 GMT</pubDate>
      <description>&lt;p&gt;
I guess&amp;nbsp;&lt;strong&gt;&lt;/strong&gt;&lt;a href="http://worsethanfailure.com/Articles/Announcement_0x3a__Website_0x2e_RenameTo(_0x201c_Worse_Than_Failure_0x201d_).aspx"&gt;Worse
Than Failure&lt;/a&gt; fits a little better than what I had resorted to calling it on my
own:&amp;nbsp;"&lt;strong&gt;W&lt;/strong&gt;here's &lt;strong&gt;t&lt;/strong&gt;he &lt;strong&gt;F&lt;/strong&gt;unction?" 
&lt;/p&gt;
&lt;p&gt;
It didn't communicate the same feeling of horror and disbelief as the actual, intended
acronym, but it was cleaner and easier to speak openly about among the cubicle farm
:-)
&lt;/p&gt;
&lt;p&gt;
Now to get used to the new name.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=58522b38-b795-41d4-96c9-bfb0cc635dd1" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,58522b38-b795-41d4-96c9-bfb0cc635dd1.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=896cefd9-2a90-4f9d-ba45-26106329226a</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,896cefd9-2a90-4f9d-ba45-26106329226a.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,896cefd9-2a90-4f9d-ba45-26106329226a.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=896cefd9-2a90-4f9d-ba45-26106329226a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I probably should have just submitted this one to <a href="http://www.overheardintheoffice.com/">Overheard
at the Office</a>, but I'd rather post it here.
</p>
        <p>
"It's not that I'm lazy, it's just that I want to be thorough."
</p>
        <p>
This was from one of my coworkers who was speaking to a user upstairs.
</p>
        <p>
I found it hilarious.
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=896cefd9-2a90-4f9d-ba45-26106329226a" />
      </body>
      <title>Quote of the Day?</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,896cefd9-2a90-4f9d-ba45-26106329226a.aspx</guid>
      <link>http://www.mohundro.com/blog/2007/01/18/QuoteOfTheDay.aspx</link>
      <pubDate>Thu, 18 Jan 2007 19:20:52 GMT</pubDate>
      <description>&lt;p&gt;
I probably should have just submitted this one to &lt;a href="http://www.overheardintheoffice.com/"&gt;Overheard
at the Office&lt;/a&gt;, but I'd rather post it here.
&lt;/p&gt;
&lt;p&gt;
"It's not that I'm lazy, it's just that I want to be thorough."
&lt;/p&gt;
&lt;p&gt;
This was from one of my coworkers who was speaking to a user upstairs.
&lt;/p&gt;
&lt;p&gt;
I found it hilarious.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=896cefd9-2a90-4f9d-ba45-26106329226a" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,896cefd9-2a90-4f9d-ba45-26106329226a.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=0123fded-9dcc-44b6-aa11-87a76fde36ee</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,0123fded-9dcc-44b6-aa11-87a76fde36ee.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,0123fded-9dcc-44b6-aa11-87a76fde36ee.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=0123fded-9dcc-44b6-aa11-87a76fde36ee</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
A recent post by Lee Holmes on <a href="http://www.leeholmes.com/blog/BreakYourWritersBlock.aspx">breaking
your writer's (blogger's?) block</a> is prompting this post. I recently finished reading
Steve McConnell's book, <a href="http://cc2e.com/Default.aspx">Code Complete</a>*,
over the Christmas holidays and the book was amazing. As I read it, I began taking
lists of things I wanted to post on that were excellent advice... and ran into a block
because there was just so much I wanted to say about. I still plan on writing more
detailed posts on the issue but, as Lee suggests, I need to just get out here and
post more.
</p>
        <p>
So anyway.
</p>
        <p>
Recently, I posted an <a href="http://www.mohundro.com/blog/PermaLink,guid,b3e7081f-8249-4e37-a777-9afdfd0d9b3d.aspx">entry
on calculating file hashes with PowerShell</a> and promptly had to put an update because
the <a href="http://www.mohundro.com/blog/ct.ashx?id=b3e7081f-8249-4e37-a777-9afdfd0d9b3d&amp;url=http%3a%2f%2fwww.codeplex.com%2fWiki%2fView.aspx%3fProjectName%3dPowerShellCX">PowerShell
Community Extensions</a> (PsCx) had provided a better file hash function. The
good thing about PsCx is that it really provides a good example of PowerShell code
and has a lot of cmdlets that drive home automating PowerShell for your needs.
</p>
        <p>
One of my favorite functions is incredibly simple but it highlights how you can save
just a few keystrokes for more productivity. The Edit-File function uses a predefined
variable that points to an EXE path and runs the EXE with the specified parameter.
There is also an alias for it (e) so you can type something like "e somefile.txt"
and it will open. I like this method a little better than actually renaming notepad.exe
to n.exe (*cough* <a href="http://www.hanselman.com/blog/Nexe.aspx">Scott Hanselman</a> *cough*
:-) ). It actually prompted me to create multiple, similar functions so that I can
open files in different editors (I use Ultra-Edit, Notepad2, Notepad++, or who knows
what else) without having to respecify the editor variable. Now I type "u somefile.txt"
to open a file in Ultra-Edit.
</p>
        <p>
This also prompted me to set up the winmerge function below:
</p>
        <pre style="font-family: consolas">function winmerge ([string]$path1, [string]$path2) {

    $winmergePath = "c:\program files\winmerge\winmerge.exe"
    . $winmergePath $path1 $path2
}</pre>
        <p>
It allows me to quickly see the comparisons between two different files without having
to preselect them with the mouse. It is simple, but quite convenient. And I also don't
have to go adding all sorts of random directories to my PATH just so I can get to
them more quickly.
</p>
        <p>
So there you go: my PowerShell automation.
</p>
        <p>
I also promised some unrelated updates. On Monday, January 8, I had LASIK surgery
on both of my eyes to correct my extreme nearsightedness. The whole operation took
15 minutes and the only discomfort I had was a headache and some stinging eyes on the
day of the operation. Since that time, my left eye can already see with
20/15 vision. My right eye is still a little fuzzy, but that is supposed to clear
up in another day or so - it took the laser twice as long to correct my right eye
as it did my left eye!
</p>
        <p>
If anyone is interested in more details on my experiences with LASIK, I'd be happy
to provide a follow-up post on it.
</p>
        <p>
* - <a href="http://www.codinghorror.com/blog">Jeff Atwood</a> really should get some
sort of referral rewards for recommending Code Complete... I mean seriously...
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=0123fded-9dcc-44b6-aa11-87a76fde36ee" />
      </body>
      <title>More PowerShell automation and unrelated updates</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,0123fded-9dcc-44b6-aa11-87a76fde36ee.aspx</guid>
      <link>http://www.mohundro.com/blog/2007/01/11/MorePowerShellAutomationAndUnrelatedUpdates.aspx</link>
      <pubDate>Thu, 11 Jan 2007 03:38:44 GMT</pubDate>
      <description>&lt;p&gt;
A recent post by Lee Holmes on &lt;a href="http://www.leeholmes.com/blog/BreakYourWritersBlock.aspx"&gt;breaking
your writer's (blogger's?) block&lt;/a&gt; is prompting this post. I recently finished reading
Steve McConnell's book, &lt;a href="http://cc2e.com/Default.aspx"&gt;Code Complete&lt;/a&gt;*,
over the Christmas holidays and the book was amazing. As I read it, I began taking
lists of things I wanted to post on that were excellent advice... and ran into a block
because there was just so much I wanted to say about. I still plan on writing more
detailed posts on the issue but, as Lee suggests, I need to just get out here and
post more.
&lt;/p&gt;
&lt;p&gt;
So anyway.
&lt;/p&gt;
&lt;p&gt;
Recently, I posted an &lt;a href="http://www.mohundro.com/blog/PermaLink,guid,b3e7081f-8249-4e37-a777-9afdfd0d9b3d.aspx"&gt;entry
on calculating file hashes with PowerShell&lt;/a&gt; and promptly had to put an update because
the &lt;a href="http://www.mohundro.com/blog/ct.ashx?id=b3e7081f-8249-4e37-a777-9afdfd0d9b3d&amp;amp;url=http%3a%2f%2fwww.codeplex.com%2fWiki%2fView.aspx%3fProjectName%3dPowerShellCX"&gt;PowerShell
Community Extensions&lt;/a&gt; (PsCx) had provided&amp;nbsp;a better file hash function. The
good thing about PsCx is that it really provides a good example of PowerShell code
and has a lot of cmdlets that drive home automating PowerShell for your needs.
&lt;/p&gt;
&lt;p&gt;
One of my favorite functions is incredibly simple but it highlights how you can save
just a few keystrokes for more productivity. The Edit-File function uses&amp;nbsp;a predefined
variable that points to an EXE path and runs the EXE with the specified parameter.
There is also an alias for it (e) so you can type something like "e somefile.txt"
and it will open. I like this method a little better than actually renaming notepad.exe
to n.exe (*cough* &lt;a href="http://www.hanselman.com/blog/Nexe.aspx"&gt;Scott Hanselman&lt;/a&gt; *cough*
:-) ). It actually prompted me to create multiple, similar functions so that I can
open files in different editors (I use Ultra-Edit, Notepad2, Notepad++, or who knows
what else) without having to respecify the editor variable. Now I type "u somefile.txt"
to open a file in Ultra-Edit.
&lt;/p&gt;
&lt;p&gt;
This also prompted me to set up the winmerge function below:
&lt;/p&gt;
&lt;pre style="font-family: consolas"&gt;function winmerge ([string]$path1, [string]$path2) {

    $winmergePath = "c:\program files\winmerge\winmerge.exe"
    . $winmergePath $path1 $path2
}&lt;/pre&gt;
&lt;p&gt;
It allows me to quickly see the comparisons between two different files without having
to preselect them with the mouse. It is simple, but quite convenient. And I also don't
have to go adding all sorts of random directories to my PATH just so I can get to
them more quickly.
&lt;/p&gt;
&lt;p&gt;
So there you go: my PowerShell automation.
&lt;/p&gt;
&lt;p&gt;
I also promised some unrelated updates. On Monday, January 8, I had LASIK&amp;nbsp;surgery
on both of my eyes to correct my extreme nearsightedness. The whole operation took
15 minutes and the only discomfort I had was a headache and some stinging eyes on&amp;nbsp;the
day of the operation.&amp;nbsp;Since that&amp;nbsp;time, my left eye can already see with
20/15 vision. My right eye is still a little fuzzy, but that is supposed to clear
up in another day or so - it took the laser twice as long to correct my right eye
as it did my left eye!
&lt;/p&gt;
&lt;p&gt;
If anyone is interested in more details on my experiences with LASIK, I'd be happy
to provide a follow-up post on it.
&lt;/p&gt;
&lt;p&gt;
* - &lt;a href="http://www.codinghorror.com/blog"&gt;Jeff Atwood&lt;/a&gt; really should get some
sort of referral rewards for recommending Code Complete... I mean seriously...
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=0123fded-9dcc-44b6-aa11-87a76fde36ee" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,0123fded-9dcc-44b6-aa11-87a76fde36ee.aspx</comments>
      <category>General</category>
      <category>PowerShell</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=c9227840-ddcd-43f3-a3f7-828f794ef98d</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,c9227840-ddcd-43f3-a3f7-828f794ef98d.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,c9227840-ddcd-43f3-a3f7-828f794ef98d.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=c9227840-ddcd-43f3-a3f7-828f794ef98d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Colin <a href="http://www.colinneller.com/blog/TabsTabs.aspx">has</a><a href="http://www.colinneller.com/blog/TaskbarMeetsTheMiddleClick.aspx">raved</a> about
the joys of middle clicking for a while now, but I was never able to enjoy it
because clicking my mouse's middle button never seemed to do all of the cool things
that his did. Mine brought up a really weird multi-directional arrow thing that was
supposed to let me scroll in any direction I wanted - except that it rarely worked
the way I wanted it to.
</p>
        <p>
Well, I finally decided it was time to fix it once and for all so that I could enjoy
middle clicking like the rest of the world.
</p>
        <p>
The mouse in question that I'm using is the <a href="http://froogle.google.com/froogle?q=mx700">Logitech
MX700</a> <strong>*</strong>.
</p>
        <p>
Here's what my mouse settings dialog looked like when it didn't work:
</p>
        <p>
          <a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/Middleclickingreallyisawesome_B9C3/image%7B0%7D%5B4%5D.png" atomicselection="true">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="497" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/Middleclickingreallyisawesome_B9C3/image%7B0%7D_thumb.png" width="440" border="0" />
          </a>
        </p>
        <p>
Now that it does work, it looks like this:
</p>
        <p>
          <a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/Middleclickingreallyisawesome_B9C3/image%7B0%7D%5B5%5D.png" atomicselection="true">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="497" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/Middleclickingreallyisawesome_B9C3/image%7B0%7D_thumb%5B1%5D.png" width="440" border="0" />
          </a>
        </p>
        <p>
The difference is subtle, but all I did was change the functionality for the middle
button from "Universal Scroll" to "Middle Button." That was way too easy for me to
have missed it for this long, but I'm glad I finally found it. If you're having a
similar problem getting your MX700 (or other similar Logitech mouse) doing middle
clicks the way you want, check out what your setting is.
</p>
        <p>
          <strong>*</strong> - The Logitech MX700 is a great mouse that has a recharging
dock so you don't have to buy batteries all of time... I've been using mine for almost
3 years without any new batteries. I can also highly recommend the Logitech MX1000,
which I use at home. I plan on sticking with Logitech mice unless Microsoft ever releases
a wireless mouse with a rechargeable dock. That rechargeable dock makes all of the
difference.
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=c9227840-ddcd-43f3-a3f7-828f794ef98d" />
      </body>
      <title>Middle clicking really is awesome!</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,c9227840-ddcd-43f3-a3f7-828f794ef98d.aspx</guid>
      <link>http://www.mohundro.com/blog/2006/10/31/MiddleClickingReallyIsAwesome.aspx</link>
      <pubDate>Tue, 31 Oct 2006 19:13:17 GMT</pubDate>
      <description>&lt;p&gt;
Colin &lt;a href="http://www.colinneller.com/blog/TabsTabs.aspx"&gt;has&lt;/a&gt; &lt;a href="http://www.colinneller.com/blog/TaskbarMeetsTheMiddleClick.aspx"&gt;raved&lt;/a&gt; about
the joys of middle clicking for a while now, but I was never&amp;nbsp;able to enjoy it
because clicking my mouse's middle button never seemed to do all of the cool things
that his did. Mine brought up a really weird multi-directional arrow thing that was
supposed to let me scroll in any direction I wanted - except that it rarely worked
the way I wanted it to.
&lt;/p&gt;
&lt;p&gt;
Well, I finally decided it was time to fix it once and for all so that I could enjoy
middle clicking like the rest of the world.
&lt;/p&gt;
&lt;p&gt;
The mouse in question that I'm using is the &lt;a href="http://froogle.google.com/froogle?q=mx700"&gt;Logitech
MX700&lt;/a&gt;&amp;nbsp;&lt;strong&gt;*&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
Here's what my mouse settings dialog looked like when it didn't work:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/Middleclickingreallyisawesome_B9C3/image%7B0%7D%5B4%5D.png" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="497" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/Middleclickingreallyisawesome_B9C3/image%7B0%7D_thumb.png" width="440" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Now that it does work, it looks like this:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/Middleclickingreallyisawesome_B9C3/image%7B0%7D%5B5%5D.png" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="497" src="http://www.mohundro.com/blog/content/binary/WindowsLiveWriter/Middleclickingreallyisawesome_B9C3/image%7B0%7D_thumb%5B1%5D.png" width="440" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
The difference is subtle, but all I did was change the functionality for the middle
button from "Universal Scroll" to "Middle Button." That was way too easy for me to
have missed it for this long, but I'm glad I finally found it. If you're having a
similar problem getting your MX700 (or other similar Logitech mouse) doing middle
clicks the way you want, check out what your setting is.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;*&lt;/strong&gt; - The Logitech MX700&amp;nbsp;is a great mouse that has a recharging
dock so you don't have to buy batteries all of time... I've been using mine for almost
3 years without any new batteries. I can also highly recommend the Logitech MX1000,
which I use at home. I plan on sticking with Logitech mice unless Microsoft ever releases
a wireless mouse with a rechargeable dock. That rechargeable dock makes all of the
difference.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=c9227840-ddcd-43f3-a3f7-828f794ef98d" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,c9227840-ddcd-43f3-a3f7-828f794ef98d.aspx</comments>
      <category>General</category>
      <category>Hardware</category>
      <category>Utilities</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=fbc41bf4-057c-45a6-bf83-bfdddca15370</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,fbc41bf4-057c-45a6-bf83-bfdddca15370.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,fbc41bf4-057c-45a6-bf83-bfdddca15370.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=fbc41bf4-057c-45a6-bf83-bfdddca15370</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I'm having my first 9 minutes of fame... ever!
</p>
        <p>
Check it out <a href="http://9minutesoffame.com/">here</a>!
</p>
        <p>
(from <a href="http://weblogs.asp.net/jgalloway/archive/2006/10/28/_5B00_link_5D00_-9MinutesOfFame.aspx">Jon
Galloway</a>)
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=fbc41bf4-057c-45a6-bf83-bfdddca15370" />
      </body>
      <title>9 Minutes of Fame?</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,fbc41bf4-057c-45a6-bf83-bfdddca15370.aspx</guid>
      <link>http://www.mohundro.com/blog/2006/10/30/9MinutesOfFame.aspx</link>
      <pubDate>Mon, 30 Oct 2006 18:58:00 GMT</pubDate>
      <description>&lt;p&gt;
I'm having my first 9 minutes of fame... ever!
&lt;/p&gt;
&lt;p&gt;
Check it out &lt;a href="http://9minutesoffame.com/"&gt;here&lt;/a&gt;!
&lt;/p&gt;
&lt;p&gt;
(from &lt;a href="http://weblogs.asp.net/jgalloway/archive/2006/10/28/_5B00_link_5D00_-9MinutesOfFame.aspx"&gt;Jon
Galloway&lt;/a&gt;)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=fbc41bf4-057c-45a6-bf83-bfdddca15370" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,fbc41bf4-057c-45a6-bf83-bfdddca15370.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=0a2dafb1-eb10-499c-98a9-1819fad00905</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,0a2dafb1-eb10-499c-98a9-1819fad00905.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,0a2dafb1-eb10-499c-98a9-1819fad00905.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=0a2dafb1-eb10-499c-98a9-1819fad00905</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
For those of you who don't subscribe to digg, <a href="http://fredericiana.com/2006/10/24/from-redmond-with-love/">check
this out</a>.
</p>
        <p>
From the website:
</p>
        <p>
"The <strong><a href="http://blogs.msdn.com/ie/">Microsoft Internet Explorer Team</a></strong> sent
us a <strong>cake</strong> for the 
</p>
        <del datetime="2006-10-24T23:18:54+00:00">
upcoming</del>
release of Firefox 2!"
<p>
(<a href="http://digg.com/software/Microsoft_sends_congratulation_cake_to_Mozilla">via
digg</a>)
</p><img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=0a2dafb1-eb10-499c-98a9-1819fad00905" /></body>
      <title>Internet Explorer, Firefox, and Cake</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,0a2dafb1-eb10-499c-98a9-1819fad00905.aspx</guid>
      <link>http://www.mohundro.com/blog/2006/10/25/InternetExplorerFirefoxAndCake.aspx</link>
      <pubDate>Wed, 25 Oct 2006 00:30:04 GMT</pubDate>
      <description>&lt;p&gt;
For those of you who don't subscribe to digg, &lt;a href="http://fredericiana.com/2006/10/24/from-redmond-with-love/"&gt;check
this out&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
From the website:
&lt;/p&gt;
&lt;p&gt;
"The &lt;strong&gt;&lt;a href="http://blogs.msdn.com/ie/"&gt;Microsoft Internet Explorer Team&lt;/a&gt;&lt;/strong&gt; sent
us a &lt;strong&gt;cake&lt;/strong&gt; for the 
&lt;del datetime="2006-10-24T23:18:54+00:00"&gt;
upcoming&lt;/del&gt;
release of Firefox 2!"&gt;
&lt;p&gt;
(&lt;a href="http://digg.com/software/Microsoft_sends_congratulation_cake_to_Mozilla"&gt;via
digg&lt;/a&gt;)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=0a2dafb1-eb10-499c-98a9-1819fad00905" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,0a2dafb1-eb10-499c-98a9-1819fad00905.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=913978e7-8566-453e-941f-89d2fd37e9ae</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,913978e7-8566-453e-941f-89d2fd37e9ae.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,913978e7-8566-453e-941f-89d2fd37e9ae.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=913978e7-8566-453e-941f-89d2fd37e9ae</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Earlier this week, I <a href="http://www.mohundro.com/blog/PermaLink,guid,10eb4b00-b733-47c4-996d-662d88663681.aspx">posted</a> on
some major problems I was having with trackback spam. By way of a comment, Tim Rayburn
pointed me to his <a href="http://www.mohundro.com/blog/ct.ashx?id=10eb4b00-b733-47c4-996d-662d88663681&amp;url=http%3a%2f%2fwww.timrayburn.net%2f2006%2f10%2f17%2fUpgrading%2bTo%2bDasBlog%2b196288.aspx">post</a> on
Akismet support that the nightly builds of dasBlog now included.
</p>
        <p>
As a result, last night, I downloaded the latest build of dasBlog and uploaded the
new binaries to my blog. Shortly thereafter, I was able to log onto my blog and see
the section for Akismet. Sweet! I went ahead and signed up for a Wordpress account
(by doing so, you can get a free Akismet API code). Things were looking great so I
thought I'd let it go and check it the next day.
</p>
        <p>
Today is the next day and I just finished deleting about 250 spam trackbacks on various
posts. Needless to say, I've disabled Trackback support on my blog again.
</p>
        <p>
My problem is that I'm not sure if I messed up on my upgrade or if there is a problem
with the Akismet support... OR maybe it is because of the possibility that my web
host doesn't allow web requests (see <a href="http://haacked.com/archive/2006/10/17/Why_Oh_Why_Couldnt_WebPermission_Be_Part_Of_Medium_Trust.aspx">Phil's
post</a> on WebPermission and Akismet in SubText). I'm not in control of the
web server my blog runs on, so I wouldn't be at all surprised to find that my blog
doesn't have WebPermission. I guess my problem is that I'm not really sure if that's
the problem or if it is something else entirely. I'm blogging this from work over
my lunch break, so I don't have time to dig through logs right now.
</p>
        <p>
I guess I'm just blogging because I'm a little down because Trackback spam won today.
</p>
        <p>
Spam is stupid.
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=913978e7-8566-453e-941f-89d2fd37e9ae" />
      </body>
      <title>More on Trackback Spam...</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,913978e7-8566-453e-941f-89d2fd37e9ae.aspx</guid>
      <link>http://www.mohundro.com/blog/2006/10/18/MoreOnTrackbackSpam.aspx</link>
      <pubDate>Wed, 18 Oct 2006 18:07:51 GMT</pubDate>
      <description>&lt;p&gt;
Earlier this week, I &lt;a href="http://www.mohundro.com/blog/PermaLink,guid,10eb4b00-b733-47c4-996d-662d88663681.aspx"&gt;posted&lt;/a&gt; on
some major problems I was having with trackback spam. By way of a comment, Tim Rayburn
pointed me to his &lt;a href="http://www.mohundro.com/blog/ct.ashx?id=10eb4b00-b733-47c4-996d-662d88663681&amp;amp;url=http%3a%2f%2fwww.timrayburn.net%2f2006%2f10%2f17%2fUpgrading%2bTo%2bDasBlog%2b196288.aspx"&gt;post&lt;/a&gt; on
Akismet support that the nightly builds of dasBlog now included.
&lt;/p&gt;
&lt;p&gt;
As a result, last night, I downloaded the latest build of dasBlog and uploaded the
new binaries to my blog. Shortly thereafter, I was able to log onto my blog and see
the section for Akismet. Sweet! I went ahead and signed up for a Wordpress account
(by doing so, you can get a free Akismet API code). Things were looking great so I
thought I'd let it go and check it the next day.
&lt;/p&gt;
&lt;p&gt;
Today is the next day and I just finished deleting about 250 spam trackbacks on various
posts. Needless to say, I've disabled Trackback support on my blog again.
&lt;/p&gt;
&lt;p&gt;
My problem is that I'm not sure if I messed up on my upgrade or if there is a problem
with the Akismet support... OR maybe it is because of the possibility that my web
host doesn't allow web requests (see &lt;a href="http://haacked.com/archive/2006/10/17/Why_Oh_Why_Couldnt_WebPermission_Be_Part_Of_Medium_Trust.aspx"&gt;Phil's
post&lt;/a&gt;&amp;nbsp;on WebPermission and Akismet in SubText). I'm not in control of the
web server my blog runs on, so I wouldn't be at all surprised to find that my blog
doesn't have WebPermission. I guess my problem is that I'm not really sure if that's
the problem or if it is something else entirely. I'm blogging this from work over
my lunch break, so I don't have time to dig through logs right now.
&lt;/p&gt;
&lt;p&gt;
I guess I'm just blogging because I'm a little down because Trackback spam won today.
&lt;/p&gt;
&lt;p&gt;
Spam is stupid.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=913978e7-8566-453e-941f-89d2fd37e9ae" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,913978e7-8566-453e-941f-89d2fd37e9ae.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=10eb4b00-b733-47c4-996d-662d88663681</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,10eb4b00-b733-47c4-996d-662d88663681.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,10eb4b00-b733-47c4-996d-662d88663681.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=10eb4b00-b733-47c4-996d-662d88663681</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">I finally had to disable trackbacks on
my blog. Even with some of the antispam features of dasBlog, I was still getting hit
like crazy. Just today, I got about 150 spam trackbacks to 3 or 4 of my posts. And
I'm even running version 1.9.6264.0! I did notice <a href="http://briandela.com/blog/archive/2005/06/29/652.aspx">this
post</a> about an HttpModule that will block trackbacks based on regular expression
patterns. I was curious if anyone else had used this or another method to effectively
fight (or even prevent) trackback spam. Or maybe I'm just missing an updated blacklist
for my configuration.<br /><br />
Help anyone?<br /><br /><b>UPDATE:</b> Thanks to a <a href="http://www.timrayburn.net/2006/10/17/Upgrading+To+DasBlog+196288.aspx">post</a> from <a href="http://www.timrayburn.net/default.aspx">Tim
Rayburn</a> (and a comment directing me there!), it looks like the newest nightly
build of dasBlog supports Akismet -- and Akismet apparently also supports better Trackback
spam blocking! Looks like I might be dogfooding the latest build of dasBlog soon!<br /><p></p><img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=10eb4b00-b733-47c4-996d-662d88663681" /></body>
      <title>Trackback Spam Deluge!</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,10eb4b00-b733-47c4-996d-662d88663681.aspx</guid>
      <link>http://www.mohundro.com/blog/2006/10/16/TrackbackSpamDeluge.aspx</link>
      <pubDate>Mon, 16 Oct 2006 22:07:39 GMT</pubDate>
      <description>I finally had to disable trackbacks on my blog. Even with some of the antispam features of dasBlog, I was still getting hit like crazy. Just today, I got about 150 spam trackbacks to 3 or 4 of my posts. And I'm even running version 1.9.6264.0! I did notice &lt;a href="http://briandela.com/blog/archive/2005/06/29/652.aspx"&gt;this
post&lt;/a&gt; about an HttpModule that will block trackbacks based on regular expression
patterns. I was curious if anyone else had used this or another method to effectively
fight (or even prevent) trackback spam. Or maybe I'm just missing an updated blacklist
for my configuration.&lt;br&gt;
&lt;br&gt;
Help anyone?&lt;br&gt;
&lt;br&gt;
&lt;b&gt;UPDATE:&lt;/b&gt; Thanks to a &lt;a href="http://www.timrayburn.net/2006/10/17/Upgrading+To+DasBlog+196288.aspx"&gt;post&lt;/a&gt; from &lt;a href="http://www.timrayburn.net/default.aspx"&gt;Tim
Rayburn&lt;/a&gt; (and a comment directing me there!), it looks like the newest nightly
build of dasBlog supports Akismet -- and Akismet apparently also supports better Trackback
spam blocking! Looks like I might be dogfooding the latest build of dasBlog soon!&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=10eb4b00-b733-47c4-996d-662d88663681" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,10eb4b00-b733-47c4-996d-662d88663681.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=cbdec793-4a7c-4892-adb4-964832702e86</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,cbdec793-4a7c-4892-adb4-964832702e86.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,cbdec793-4a7c-4892-adb4-964832702e86.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=cbdec793-4a7c-4892-adb4-964832702e86</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Great news!
</p>
        <p>
Google Reader has been updated and it is usable now!
</p>
        <p>
Find out more <a href="http://www.google.com/help/reader/transition.html">here</a>!
</p>
        <p>
(<a href="http://digg.com/software/New_Layout_for_Google_Reader/blog">Thank you Digg!!!</a>)
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=cbdec793-4a7c-4892-adb4-964832702e86" />
      </body>
      <title>New Google Reader!</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,cbdec793-4a7c-4892-adb4-964832702e86.aspx</guid>
      <link>http://www.mohundro.com/blog/2006/09/29/NewGoogleReader.aspx</link>
      <pubDate>Fri, 29 Sep 2006 02:25:37 GMT</pubDate>
      <description>&lt;p&gt;
Great news!
&lt;/p&gt;
&lt;p&gt;
Google Reader has been updated and it is usable now!
&lt;/p&gt;
&lt;p&gt;
Find out more &lt;a href="http://www.google.com/help/reader/transition.html"&gt;here&lt;/a&gt;!
&lt;/p&gt;
&lt;p&gt;
(&lt;a href="http://digg.com/software/New_Layout_for_Google_Reader/blog"&gt;Thank you Digg!!!&lt;/a&gt;)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=cbdec793-4a7c-4892-adb4-964832702e86" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,cbdec793-4a7c-4892-adb4-964832702e86.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=4f2ef161-638c-4959-ade1-098594ea9cb6</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,4f2ef161-638c-4959-ade1-098594ea9cb6.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,4f2ef161-638c-4959-ade1-098594ea9cb6.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=4f2ef161-638c-4959-ade1-098594ea9cb6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I recently upgraded Firefox to the 2.0 beta version. It has some nice features built
in and it seems a lot more stable than the previous beta version. One complaint I
had with it was the lack of support for extensions, though <a href="http://www.larkware.com">Mike
Gunderloy</a> pointed out the Nightly Tester Tools that will attempt to make extensions
compatible - and for me, 99% of the time, the Nightly Tester Tools works. In fact,
it worked for 100% of my extensions, but Tab Mix Plus didn't pull all its functionality
along with it to 2.0. The extension shows as working correctly, but it doesn't actually
work correctly and really, it only states compatability with 1.6+ so I shouldn't be
surprised. However, as <a href="http://feeds.feedburner.com/~r/ColinNeller/~3/21191376/TabMixPlusGetItNow.aspx">Colin
pointed out</a>, Tab Mix Plus has some really great functionality, and I was missing
it in Firefox 2.0, like the ability to keep sessions for the next load of Firefox.
</p>
        <p>
I recently discovered that Firefox 2.0 has this ability built in, but it isn't the
most intuitive to find yet, at least for me. Here's a screenshot of what the
options dialog looks like on my PC:
</p>
        <p>
          <img alt="Firefox Options" src="http://www.mohundro.com/blog/content/binary/2006-09-13-firefox.png" />
        </p>
        <p>
What's funny is that this option is right on the Main tab! I guess I should have looked
more closely, but I had spent most of the time looking in the tab options. If you're
wondering where to find this new functionality, look no further.
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=4f2ef161-638c-4959-ade1-098594ea9cb6" />
      </body>
      <title>Keep Firefox 2.0 Beta Tabs</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,4f2ef161-638c-4959-ade1-098594ea9cb6.aspx</guid>
      <link>http://www.mohundro.com/blog/2006/09/13/KeepFirefox20BetaTabs.aspx</link>
      <pubDate>Wed, 13 Sep 2006 12:21:01 GMT</pubDate>
      <description>&lt;p&gt;
I recently upgraded Firefox to the 2.0 beta version. It has some nice features built
in and it seems a lot more stable than the previous beta version. One complaint I
had with it was the lack of support for extensions, though &lt;a href="http://www.larkware.com"&gt;Mike
Gunderloy&lt;/a&gt; pointed out the Nightly Tester Tools that will attempt to make extensions
compatible - and for me, 99% of the time, the Nightly Tester Tools works. In fact,
it worked for 100% of my extensions, but Tab Mix Plus didn't pull all its functionality
along with it to 2.0. The extension shows as working correctly, but it doesn't actually
work correctly and really, it only states compatability with 1.6+ so I shouldn't be
surprised. However, as &lt;a href="http://feeds.feedburner.com/~r/ColinNeller/~3/21191376/TabMixPlusGetItNow.aspx"&gt;Colin
pointed out&lt;/a&gt;, Tab Mix Plus has some really great functionality, and I was missing
it in Firefox 2.0, like the ability to keep sessions for the next load of Firefox.
&lt;/p&gt;
&lt;p&gt;
I recently discovered that Firefox 2.0 has this ability built in, but it isn't the
most intuitive to find yet, at least for me. Here's a screenshot of what&amp;nbsp;the
options dialog&amp;nbsp;looks like on my PC:
&lt;/p&gt;
&lt;p&gt;
&lt;img alt="Firefox Options" src="http://www.mohundro.com/blog/content/binary/2006-09-13-firefox.png"&gt;
&lt;/p&gt;
&lt;p&gt;
What's funny is that this option is right on the Main tab! I guess I should have looked
more closely, but I had spent most of the time looking in the tab options. If you're
wondering where to find this new functionality, look no further.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=4f2ef161-638c-4959-ade1-098594ea9cb6" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,4f2ef161-638c-4959-ade1-098594ea9cb6.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=657ca226-0a81-431c-b17d-e79f69be439e</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,657ca226-0a81-431c-b17d-e79f69be439e.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,657ca226-0a81-431c-b17d-e79f69be439e.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=657ca226-0a81-431c-b17d-e79f69be439e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Windows One Care doesn't work in RC1, but they've still included it in the "Offers
from Microsoft" section of Vista's welcome center. That's sort of annoying, because
I've already signed up for Windows One Care, but now I can't use it in the system
that actually is trying to get me to use it! 
</p>
        <p>
          <strong>UPDATE:</strong>
          <a href="http://www.mohundro.com/blog/PermaLink,guid,641bb72a-17ad-4c37-bd31-a8deff912cae.aspx">Now
it does</a>!
</p>
        <img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=657ca226-0a81-431c-b17d-e79f69be439e" />
      </body>
      <title>Windows One Care doesn't work in Vista RC1...</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,657ca226-0a81-431c-b17d-e79f69be439e.aspx</guid>
      <link>http://www.mohundro.com/blog/2006/09/08/WindowsOneCareDoesntWorkInVistaRC1.aspx</link>
      <pubDate>Fri, 08 Sep 2006 22:28:19 GMT</pubDate>
      <description>&lt;p&gt;
Windows One Care doesn't work in RC1, but they've still included it in the "Offers
from Microsoft" section of Vista's welcome center. That's sort of annoying, because
I've already signed up for Windows One Care, but now I can't use it in the system
that actually is trying to get me to use it! 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;UPDATE:&lt;/strong&gt; &lt;a href="http://www.mohundro.com/blog/PermaLink,guid,641bb72a-17ad-4c37-bd31-a8deff912cae.aspx"&gt;Now
it does&lt;/a&gt;!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=657ca226-0a81-431c-b17d-e79f69be439e" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,657ca226-0a81-431c-b17d-e79f69be439e.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=ccae13a7-807e-48e5-b9fc-0d6c60b8f145</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,ccae13a7-807e-48e5-b9fc-0d6c60b8f145.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,ccae13a7-807e-48e5-b9fc-0d6c60b8f145.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=ccae13a7-807e-48e5-b9fc-0d6c60b8f145</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://www.codinghorror.com/blog/">Jeff
Atwood</a> just posted an excellent <a href="http://www.codinghorror.com/blog/archives/000666.html">Programmer's
Bill of Rights</a>, which suggests things such as providing at least two monitors
for every programmer, providing a fast PC, etc. One thing in particular that he
mentioned is that all programmers should have quiet working conditions, and I couldn't
agree more, because I sit near some of loudest people at work. Of course, we're
all in cubes, too, so it isn't like I can shut the door. I hear more about someone's
daughter than I do about work, too. I ended up taking Jeff's advice and dropping some
money on some nice headphones that drown out <em>some</em> of the noise, but I think
I would end up blowing my ear drums out before I'd drown out all of the noise. I recently
moved cubes over to this new, loud area, but it wasn't much better before - I used
to sit next to the break room, so you can imagine what it was like there, too.<img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=ccae13a7-807e-48e5-b9fc-0d6c60b8f145" /></body>
      <title>Noisy working conditions</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,ccae13a7-807e-48e5-b9fc-0d6c60b8f145.aspx</guid>
      <link>http://www.mohundro.com/blog/2006/08/27/NoisyWorkingConditions.aspx</link>
      <pubDate>Sun, 27 Aug 2006 02:33:57 GMT</pubDate>
      <description>&lt;a href="http://www.codinghorror.com/blog/"&gt;Jeff Atwood&lt;/a&gt; just posted an excellent &lt;a href="http://www.codinghorror.com/blog/archives/000666.html"&gt;Programmer's
Bill of Rights&lt;/a&gt;, which suggests things such as providing at least two monitors
for every programmer, providing a fast PC, etc. One thing in particular that&amp;nbsp;he
mentioned is that all programmers should have quiet working conditions, and I couldn't
agree more, because I sit near&amp;nbsp;some of loudest people at work. Of course, we're
all in cubes, too, so it isn't like I can shut the door. I hear more about someone's
daughter than I do about work, too. I ended up taking Jeff's advice and dropping some
money on some nice headphones that drown out &lt;em&gt;some&lt;/em&gt; of the noise, but I think
I would end up blowing my ear drums out before I'd drown out all of the noise. I recently
moved cubes over to this new, loud area, but it wasn't much better before - I used
to sit next to the break room, so you can imagine what it was like there, too.&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=ccae13a7-807e-48e5-b9fc-0d6c60b8f145" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,ccae13a7-807e-48e5-b9fc-0d6c60b8f145.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=1f0182ac-41bf-414b-8b4d-3e3be1bc7bf1</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,1f0182ac-41bf-414b-8b4d-3e3be1bc7bf1.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,1f0182ac-41bf-414b-8b4d-3e3be1bc7bf1.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=1f0182ac-41bf-414b-8b4d-3e3be1bc7bf1</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">wikiality (<i>wi-ki-al-i-ty</i>) - the
process of creating "reality" (see <a href="http://dictionary.reference.com/browse/reality">reality</a>)
by making something up on <a href="http://wikipedia.org/">Wikipedia</a> enough that
more and more people agree with you.<br /><br />
It looks like Stephen Colbert from the Colbert Report on Comedy Central had some fun
with Wikipedia recently. <a href="http://spring.newsvine.com/_news/2006/08/01/307864-stephen-colbert-causes-chaos-on-wikipedia-gets-blocked-from-site">Check
it out</a>.<br /><img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=1f0182ac-41bf-414b-8b4d-3e3be1bc7bf1" /></body>
      <title>Wikiality</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,1f0182ac-41bf-414b-8b4d-3e3be1bc7bf1.aspx</guid>
      <link>http://www.mohundro.com/blog/2006/08/02/Wikiality.aspx</link>
      <pubDate>Wed, 02 Aug 2006 18:37:32 GMT</pubDate>
      <description>wikiality (&lt;i&gt;wi-ki-al-i-ty&lt;/i&gt;) - the process of creating "reality" (see &lt;a href="http://dictionary.reference.com/browse/reality"&gt;reality&lt;/a&gt;)
by making something up on &lt;a href="http://wikipedia.org/"&gt;Wikipedia&lt;/a&gt; enough that
more and more people agree with you.&lt;br /&gt;
&lt;br /&gt;
It looks like Stephen Colbert from the Colbert Report on Comedy Central had some fun
with Wikipedia recently. &lt;a href="http://spring.newsvine.com/_news/2006/08/01/307864-stephen-colbert-causes-chaos-on-wikipedia-gets-blocked-from-site"&gt;Check
it out&lt;/a&gt;.&lt;br /&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=1f0182ac-41bf-414b-8b4d-3e3be1bc7bf1" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,1f0182ac-41bf-414b-8b4d-3e3be1bc7bf1.aspx</comments>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.mohundro.com/blog/Trackback.aspx?guid=eb2b8eb3-cb88-4437-bf8e-b53f7a2ed844</trackback:ping>
      <pingback:server>http://www.mohundro.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.mohundro.com/blog/PermaLink,guid,eb2b8eb3-cb88-4437-bf8e-b53f7a2ed844.aspx</pingback:target>
      <dc:creator>David Mohundro</dc:creator>
      <wfw:comment>http://www.mohundro.com/blog/CommentView,guid,eb2b8eb3-cb88-4437-bf8e-b53f7a2ed844.aspx</wfw:comment>
      <wfw:commentRss>http://www.mohundro.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=eb2b8eb3-cb88-4437-bf8e-b53f7a2ed844</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Earlier today, <a href="http://www.sysinternals.com/blog/2006/07/on-my-way-to-microsoft.html">Mark
Russinovich announced that Microsoft had acquired Winternals and Sysinternals</a>.
In other words, some of the best administration tools available will be moving to
Microsoft. Not only that, but by having Mark on board at Microsoft, they will have
a great developer working with them. I think that this is a great move as far as bringing
Mark on board. As far as acquiring Winternals and Sysinternals, I'm excited about
that as well, so long as the products continue to be supported by Microsoft. I'm quite
confident they will, too, because I know that Microsoft uses a lot of their tools
as well (i.e. Process Explorer, RegMon, FileMon, etc). 
<br /><br />
Congratulations and I look forward to hearing more!<br /><img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=eb2b8eb3-cb88-4437-bf8e-b53f7a2ed844" /></body>
      <title>Sysinternals is going to Microsoft!</title>
      <guid isPermaLink="false">http://www.mohundro.com/blog/PermaLink,guid,eb2b8eb3-cb88-4437-bf8e-b53f7a2ed844.aspx</guid>
      <link>http://www.mohundro.com/blog/2006/07/18/SysinternalsIsGoingToMicrosoft.aspx</link>
      <pubDate>Tue, 18 Jul 2006 17:11:58 GMT</pubDate>
      <description>Earlier today, &lt;a href="http://www.sysinternals.com/blog/2006/07/on-my-way-to-microsoft.html"&gt;Mark
Russinovich announced that Microsoft had acquired Winternals and Sysinternals&lt;/a&gt;.
In other words, some of the best administration tools available will be moving to
Microsoft. Not only that, but by having Mark on board at Microsoft, they will have
a great developer working with them. I think that this is a great move as far as bringing
Mark on board. As far as acquiring Winternals and Sysinternals, I'm excited about
that as well, so long as the products continue to be supported by Microsoft. I'm quite
confident they will, too, because I know that Microsoft uses a lot of their tools
as well (i.e. Process Explorer, RegMon, FileMon, etc). 
&lt;br&gt;
&lt;br&gt;
Congratulations and I look forward to hearing more!&lt;br&gt;
&lt;img width="0" height="0" src="http://www.mohundro.com/blog/aggbug.ashx?id=eb2b8eb3-cb88-4437-bf8e-b53f7a2ed844" /&gt;</description>
      <comments>http://www.mohundro.com/blog/CommentView,guid,eb2b8eb3-cb88-4437-bf8e-b53f7a2ed844.aspx</comments>
      <category>General</category>
    </item>
  </channel>
</rss>