<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.michaeleatonconsulting.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" 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:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
    <channel>
        <title>michael eaton</title>
        <link>http://mjeaton.net/blog/Default.aspx</link>
        <description>"should be playing guitar in a heavy metal rock band" - The Elder</description>
        <language>en-US</language>
        <copyright>Michael Eaton</copyright>
        <managingEditor>mjeaton@gmail.com</managingEditor>
        <generator>Subtext Version 1.9.5.176</generator>
        <image>
            <title>michael eaton</title>
            <url>http://mjeaton.net/blog/images/RSS2Image.gif</url>
            <link>http://mjeaton.net/blog/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.michaeleatonconsulting.com/mjeaton" type="application/rss+xml" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><item>
            <title>2nd Annual Michigan Give Camp in Ann Arbor &amp;ndash; July 17-19, 2009</title>
            <category>.NET</category>
            <category>Consulting Stuff</category>
            <category>Databases</category>
            <category>Experience Counts</category>
            <category>Games</category>
            <category>Hardware</category>
            <category>Life</category>
            <category>Politics</category>
            <category>Software in general</category>
            <link>http://mjeaton.net/blog/archive/2009/07/06/2nd-annual-michigan-give-camp-in-ann-arbor-ndash-july.aspx</link>
            <description>&lt;p&gt;In less than 2 weeks, the 2nd Annual Michigan Give Camp in Ann Arbor will be upon us.  It’s hard to believe that almost a year has passed since the &lt;a href="http://mjeaton.net/blog/archive/2008/07/14/ann-arbor-give-camp---wrap-up.aspx"&gt;first Give Camp in Ann Arbor&lt;/a&gt;!  When I talk to people about Give Camp, here is what I normally tell them:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;“In the 15 years that I’ve been a software developer, the first Ann Arbor Give Camp was the most physically and emotionally exhausting weekend of my life, but absolutely the most satisfying thing I’ve ever done related to software development.”&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;If you’re a developer of any level, a designer, DBA or PM and want to help out some great charities, head over to the &lt;a href="http://michigangivecamp.eventbrite.com"&gt;registration site&lt;/a&gt; and sign up.  If you’re involved with a non-profit organization in the state of Michigan and want to send us a proposal, there’s still time to submit.  Check out this &lt;a href="http://michigangivecamp.org/cms/annarbor/2009/2nd-annual-michigan-give-camp-in-ann-arbor-looking-for-charities-non-profits/"&gt;post&lt;/a&gt; on the &lt;a href="http://michigangivecamp.org/cms/"&gt;Michigan Give Camp website&lt;/a&gt; for more information.  You can also follow us on &lt;a href="http://twitter.com/michgivecamp"&gt;twitter&lt;/a&gt;.  If you have any questions at all about participating in the Give Camp (either as a developer or a nonprofit), email &lt;a href="mailto:info@MichiganGivecamp.org"&gt;info@MichiganGivecamp.org&lt;/a&gt;.  If you’re interested in sponsoring the Michigan Give Camp, contact &lt;a href="mailto:sponsors@MichiganGiveCamp.org"&gt;sponsors@MichiganGiveCamp.org&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;If you’re in Ohio, a Give Camp is planned for the same weekend in Columbus.  Head over to their &lt;a href="http://www.columbusgivecamp.org/GiveCamp"&gt;site&lt;/a&gt; and &lt;a href="http://www.columbusgivecamp.org/GiveCamp/Volunteer"&gt;sign up&lt;/a&gt;.  If you’re interested in sponsoring the Columbus Give Camp, check out their &lt;a href="http://www.columbusgivecamp.org/GiveCamp/Home/Sponsor"&gt;Sponsors page&lt;/a&gt;.  If you’re in Knoxville, TN, several developers have already committed to holding a satellite Give Camp.  Contact &lt;a href="http://twitter.com/nathanblevins"&gt;Nate Blevins&lt;/a&gt; if you’re interested.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:58b3c453-0b88-45d7-ac50-283ce5c275ab" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/give+camp" rel="tag"&gt;give camp&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ann+arbor" rel="tag"&gt;ann arbor&lt;/a&gt;,&lt;a href="http://technorati.com/tags/columbus" rel="tag"&gt;columbus&lt;/a&gt;,&lt;a href="http://technorati.com/tags/knoxville" rel="tag"&gt;knoxville&lt;/a&gt;,&lt;a href="http://technorati.com/tags/michigan" rel="tag"&gt;michigan&lt;/a&gt;&lt;/div&gt;&lt;img src="http://mjeaton.net/blog/aggbug/3388.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.michaeleatonconsulting.com/~ff/mjeaton?a=wvCPiQHyFFA:lMt2C26QHTM:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mjeaton?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~ff/mjeaton?a=wvCPiQHyFFA:lMt2C26QHTM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mjeaton?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~ff/mjeaton?a=wvCPiQHyFFA:lMt2C26QHTM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mjeaton?i=wvCPiQHyFFA:lMt2C26QHTM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            <dc:creator>Michael Eaton</dc:creator>
            <guid>http://mjeaton.net/blog/archive/2009/07/06/2nd-annual-michigan-give-camp-in-ann-arbor-ndash-july.aspx</guid>
            <pubDate>Mon, 06 Jul 2009 12:44:37 GMT</pubDate>
            <wfw:comment>http://mjeaton.net/blog/comments/3388.aspx</wfw:comment>
            <comments>http://mjeaton.net/blog/archive/2009/07/06/2nd-annual-michigan-give-camp-in-ann-arbor-ndash-july.aspx#feedback</comments>
            <wfw:commentRss>http://mjeaton.net/blog/comments/commentRss/3388.aspx</wfw:commentRss>
            <trackback:ping>http://mjeaton.net/blog/services/trackbacks/3388.aspx</trackback:ping>
        </item>
        <item>
            <title>Microsoft MVP</title>
            <link>http://mjeaton.net/blog/archive/2009/07/06/microsoft-mvp.aspx</link>
            <description>&lt;p&gt;On July 1st around 11:30, I received an email with the subject of “Congratulations 2009 &lt;a href="http://mvp.support.microsoft.com/gp/mvpawardintro"&gt;Microsoft MVP&lt;/a&gt;!”  To say I was stunned would be putting it lightly. :-)  Over the past few days, a number of my friends have announced that they were not being renewed as MVPs, so honestly the closer it got to July 1st, the more I convinced myself that I wouldn’t be one of those receiving the award this quarter.  &lt;/p&gt;  &lt;p&gt;For my friends that don’t know about the MVP Program, here’s a snippet from the email I received:&lt;/p&gt;  &lt;p&gt;“This award is given to exceptional technical community leaders who actively share their high quality, real world expertise with others.”&lt;/p&gt;  &lt;p&gt;As I said, I was pretty shocked when that email arrived in my inbox.  What’s really cool is that around the same time, my friend &lt;a href="http://kohari.org"&gt;Nate&lt;/a&gt; received the same email. :-)  I was also pleased to find out my friend &lt;a href="http://riathoughts.com/blog/silverlight/silverlight-mvp/"&gt;John Stockton&lt;/a&gt; (no, not the basketball player) also received the award.&lt;/p&gt;  &lt;p&gt;I gotta thank a few people because as cheesy as it sounds, I couldn’t have done it alone. &lt;/p&gt;  &lt;p&gt;The first person I need to thank is &lt;a href="http://diditwith.net/"&gt;Dustin Campbell&lt;/a&gt;.  After I complained on a mailing list about how I was too far from user groups to attend / speak, Dustin approached me at &lt;a href="http://codemash.org/"&gt;Codemash&lt;/a&gt; 2008 and said (his exact words), “Dude, don’t be a p****.  Get out there and speak.”  Keep in mind that at the time, Dustin was kind of a big deal around Heartland, so who was I to argue. ;-)  Anyway, Dustin, thanks for motivating me to get off my ass and into the community.&lt;/p&gt;  &lt;p&gt;Over the past couple of years, &lt;a href="http://joshholmes.com/blog/"&gt;Josh Holmes&lt;/a&gt; has gone from being “that guy from Microsoft” to a close friend and mentor.  He has been a guiding force in my development in the community since my first user group talk in Toledo in February 2008.  Josh, thanks for being there.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://frazzleddad.blogspot.com/"&gt;Jim Holmes&lt;/a&gt; and &lt;a href="http://mvwood.com/"&gt;Mike Wood&lt;/a&gt; have both been inspirations and without leaders like them in the community, I probably would have stopped being so involved a long time ago.&lt;/p&gt;  &lt;p&gt;Nate, &lt;a href="http://infozerk.com/"&gt;James&lt;/a&gt;, &lt;a href="http://ndepth.net/"&gt;Jayme&lt;/a&gt;, &lt;a href="http://www.lostechies.com/blogs/sean_chambers/default.aspx"&gt;Sean&lt;/a&gt; and &lt;a href="http://arcware.net/"&gt;Dave&lt;/a&gt; have helped keep me grounded during my speaking “tours” and making me realize how important it is to “do something”, not just talk.&lt;/p&gt;  &lt;p&gt;Thanks to the Microsoft evangelists (&lt;a href="http://jeffblankenburg.com/default.aspx"&gt;Jeff&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/jennifer/"&gt;Jennifer&lt;/a&gt; and &lt;a href="http://www.brianhprince.com/"&gt;Brian&lt;/a&gt;) in my region for being such great supporters of our dev community.&lt;/p&gt;  &lt;p&gt;Big thanks to my family for being so supportive while I traveled all over to attend / speak at some really cool events. :-)&lt;/p&gt;  &lt;p&gt;There are so many others, but I know I’ll forget someone, so we’ll leave it at this: thanks everyone. ;-)&lt;/p&gt;&lt;img src="http://mjeaton.net/blog/aggbug/3387.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.michaeleatonconsulting.com/~ff/mjeaton?a=4h3Px3fSEfY:u0GZyAbIQyw:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mjeaton?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~ff/mjeaton?a=4h3Px3fSEfY:u0GZyAbIQyw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mjeaton?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~ff/mjeaton?a=4h3Px3fSEfY:u0GZyAbIQyw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mjeaton?i=4h3Px3fSEfY:u0GZyAbIQyw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            <dc:creator>Michael Eaton</dc:creator>
            <guid>http://mjeaton.net/blog/archive/2009/07/06/microsoft-mvp.aspx</guid>
            <pubDate>Mon, 06 Jul 2009 12:43:24 GMT</pubDate>
            <wfw:comment>http://mjeaton.net/blog/comments/3387.aspx</wfw:comment>
            <comments>http://mjeaton.net/blog/archive/2009/07/06/microsoft-mvp.aspx#feedback</comments>
            <wfw:commentRss>http://mjeaton.net/blog/comments/commentRss/3387.aspx</wfw:commentRss>
            <trackback:ping>http://mjeaton.net/blog/services/trackbacks/3387.aspx</trackback:ping>
        </item>
        <item>
            <title>Chicago Code Camp &amp;ndash; May 30, 2009</title>
            <category>.NET</category>
            <category>Consulting Stuff</category>
            <category>Databases</category>
            <category>Experience Counts</category>
            <category>Games</category>
            <category>Hardware</category>
            <category>Life</category>
            <category>Politics</category>
            <category>Software in general</category>
            <link>http://mjeaton.net/blog/archive/2009/05/25/chicago-code-camp-ndash-may-30-2009.aspx</link>
            <description>&lt;p&gt;This coming Saturday, I’ll be at the &lt;a href="http://chicagocodecamp.com/"&gt;Chicago Code Camp&lt;/a&gt; in Grayslake, IL.  I’ll be presenting two sessions:&lt;/p&gt;  &lt;p&gt;- Developing Solid WPF Applications (ugh.  Fingers crossed this talk goes as expected this time)    &lt;br /&gt;- An Introduction to Castle ActiveRecord, or How to stop writing CRUD&lt;/p&gt;  &lt;p&gt;I’ve given the WPF talk a couple of times this year and both were plagued with issues.  I’m really hoping to nail it this time.  As for the ActiveRecord talk, I gave it about a dozen times last year, so I foresee no problems at all and am looking forward to giving it again.&lt;/p&gt;  &lt;p&gt;While I love all of our cool &lt;a href="http://www.microsoft.com/about/companyinformation/usaoffices/Heartland/default.mspx"&gt;Heartland&lt;/a&gt; events, one of my big motivations for going to the Chicago Code Camp this year is to meet and hang out with new people. :-)&lt;/p&gt;  &lt;p&gt;If you don’t have any other plans for the 30th and are somewhat close to Chicago, there is still time to &lt;a href="http://chicagocodecamp-web.eventbrite.com/"&gt;sign up&lt;/a&gt;!&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:e76e881e-c9d0-4484-b6cb-dab7f0a6c80a" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/speaking" rel="tag"&gt;speaking&lt;/a&gt;,&lt;a href="http://technorati.com/tags/chicago" rel="tag"&gt;chicago&lt;/a&gt;,&lt;a href="http://technorati.com/tags/code+camp" rel="tag"&gt;code camp&lt;/a&gt;&lt;/div&gt;&lt;img src="http://mjeaton.net/blog/aggbug/3386.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.michaeleatonconsulting.com/~ff/mjeaton?a=BxN0AdOfHtE:aea5IgYyllA:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mjeaton?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~ff/mjeaton?a=BxN0AdOfHtE:aea5IgYyllA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mjeaton?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~ff/mjeaton?a=BxN0AdOfHtE:aea5IgYyllA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mjeaton?i=BxN0AdOfHtE:aea5IgYyllA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            <dc:creator>Michael Eaton</dc:creator>
            <guid>http://mjeaton.net/blog/archive/2009/05/25/chicago-code-camp-ndash-may-30-2009.aspx</guid>
            <pubDate>Mon, 25 May 2009 14:08:48 GMT</pubDate>
            <wfw:comment>http://mjeaton.net/blog/comments/3386.aspx</wfw:comment>
            <comments>http://mjeaton.net/blog/archive/2009/05/25/chicago-code-camp-ndash-may-30-2009.aspx#feedback</comments>
            <wfw:commentRss>http://mjeaton.net/blog/comments/commentRss/3386.aspx</wfw:commentRss>
            <trackback:ping>http://mjeaton.net/blog/services/trackbacks/3386.aspx</trackback:ping>
        </item>
        <item>
            <title>Speaking tip: Rehearse!</title>
            <category>.NET</category>
            <category>Consulting Stuff</category>
            <category>Databases</category>
            <category>Experience Counts</category>
            <category>Games</category>
            <category>Hardware</category>
            <category>Life</category>
            <category>Politics</category>
            <category>Software in general</category>
            <link>http://mjeaton.net/blog/archive/2009/05/18/speaking-tip-rehearse.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://www.codethinked.com/post/2009/05/18/A-Technical-Presenters-Journey-Part-1-Know-Your-Audience.aspx"&gt;Justin has started a series of posts on tips for giving technical presentations&lt;/a&gt;, so I want to throw my hat in the ring and give a tip that will help all of us do better in our presentations.&lt;/p&gt;  &lt;h2&gt;The Past&lt;/h2&gt;  &lt;p&gt;I’m terrible at not fully preparing for talks and it has definitely shown.  I’m not proud of my WPF talks at the recent &lt;a href="http://cinnug.org/cododn/"&gt;Central Ohio Day of .NET&lt;/a&gt;, &lt;a href="http://stirtrek.com/"&gt;Stir Trek&lt;/a&gt; and the &lt;a href="http://indycodecamp.com/"&gt;Indy Code Camp&lt;/a&gt;.  I struggled with content at Central Ohio and with other problems coming up during the talks at the other events.  I never gave any thought to what would happen if hardware failed or if I forgot some important piece of code.  The &lt;a href="http://speakerrate.com/mjeaton"&gt;ratings&lt;/a&gt; for those talks were justifiably low because I *did* run into hardware problems and I did forget important code.  I was NOT prepared.  Ugh.&lt;/p&gt;  &lt;p&gt;At Central Ohio, I made a change to my WPF talk the night before the session, but never ran through it before actually giving it in front of an audience.  HUGE mistake.  At Stir Trek, I spent more time worrying about how to get the damn HP TouchSmart to display on the projector than I did on what I was actually going to say.  HUGE MISTAKE.  At the Indy Code Camp, I discovered DURING the presentation that I copied the WRONG virtual machines to my laptop so I didn’t have the correct code.   HUGE MISTAKE.  I ended up having to remote into my home development VM and demo from that.  Ugh.  &lt;/p&gt;  &lt;h2&gt;A Revelation&lt;/h2&gt;  &lt;p&gt;I gave two talks at the Indy Code Camp.  One was very successful, one was a failure.  During the day, I spent some time talking to &lt;a href="http://mvwood.com/blog/"&gt;Mike Wood&lt;/a&gt;.  Mike is not only a friend, but a fantastic speaker, so I opened up to him on how poorly my WPF talk went versus how my Software Estimation talk went.  &lt;/p&gt;  &lt;p&gt;Because my Software Estimation talk was new, I spent a lot of time over the past couple of weeks on it.  In fact, I did something I have NEVER done with one of my talks before: I rehearsed it.  Let’s be clear on what I’m talking about – I stood in my office, alone, and gave the Software Estimation talk to an empty room.  I didn’t stop.  If I ran into a slide with no notes (I was using Presentation View), I forced myself to say something.  This was a HUGE WIN because I realized BEFORE the live presentation that I only had 45 minutes of material for a 75 minute session!  It was also a HUGE WIN because once I was in front of the audience I *knew* what I was going to say!&lt;/p&gt;  &lt;p&gt;During my conversation with Mike, he said he does that for every one of his talks!  You know what?  It shows.  It shows when he’s in front of an audience and it shows in his speaker evaluations.  I will admit though that standing up in my office felt strange.  It felt strange talking to no one.  It also felt very satisfying!&lt;/p&gt;  &lt;h2&gt;A Promise&lt;/h2&gt;  &lt;p&gt;I will NEVER do another presentation without first running through it out loud in the comfort of my home/office.  I will do this multiple times if possible.  &lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6328dd5a-d23c-407f-b705-b00a2427f683" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/speaking" rel="tag"&gt;speaking&lt;/a&gt;,&lt;a href="http://technorati.com/tags/tips" rel="tag"&gt;tips&lt;/a&gt;&lt;/div&gt;&lt;img src="http://mjeaton.net/blog/aggbug/3385.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.michaeleatonconsulting.com/~ff/mjeaton?a=gpSUIqqSy4s:FqmvGiEi0Rs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mjeaton?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~ff/mjeaton?a=gpSUIqqSy4s:FqmvGiEi0Rs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mjeaton?i=gpSUIqqSy4s:FqmvGiEi0Rs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            <dc:creator>Michael Eaton</dc:creator>
            <guid>http://mjeaton.net/blog/archive/2009/05/18/speaking-tip-rehearse.aspx</guid>
            <pubDate>Mon, 18 May 2009 15:23:27 GMT</pubDate>
            <wfw:comment>http://mjeaton.net/blog/comments/3385.aspx</wfw:comment>
            <comments>http://mjeaton.net/blog/archive/2009/05/18/speaking-tip-rehearse.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://mjeaton.net/blog/comments/commentRss/3385.aspx</wfw:commentRss>
            <trackback:ping>http://mjeaton.net/blog/services/trackbacks/3385.aspx</trackback:ping>
        </item>
        <item>
            <title>The Kalamazoo X Conference - Event Wrap-up</title>
            <category>.NET</category>
            <category>Consulting Stuff</category>
            <category>Databases</category>
            <category>Experience Counts</category>
            <category>Games</category>
            <category>Hardware</category>
            <category>Life</category>
            <category>Politics</category>
            <category>Software in general</category>
            <link>http://mjeaton.net/blog/archive/2009/04/29/the-kalamazoo-x-conference---event-wrap-up.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://www.flickr.com/photos/sadukie/tags/kalx/"&gt;Sarah’s Pictures&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://cid-67d16e3143fa2957.skydrive.live.com/browse.aspx/KalamazooX%20|5April%2025,%202009|6"&gt;Alan’s Pictures&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.flickr.com/photos/29942169@N08/sets/72157617367244318/"&gt;Dave’s Pictures&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;On Saturday, April 25, the first &lt;a href="http://kalamazooX.org"&gt;Kalamazoo X Conference&lt;/a&gt; was held at the Anna Whitten Hall in downtown Kalamazoo, Michigan.  I can only describe the day as a huge success.  It exceeded my expectations in every way.  I can’t think of a better way to spend a Saturday than watching 13 of my friends give some of the best talks I’ve ever seen.  The speakers KICKED ASS!  I have come away from this event energized and ready to tackle anything.  &lt;/p&gt;  &lt;p&gt;The energy of the day was incredible.  As the MC of the event, I had the chance to do something I’ve been looking forward to since &lt;img style="display: inline; margin: 5px 0px 0px 5px" height="180" src="http://farm4.static.flickr.com/3401/3476584304_1d33f4de85.jpg?v=0" width="240" align="right" /&gt;   we changed the format to a single track: introduce the speakers – my friends – to the audience.  I actually didn’t prepare any of the introductions ahead of time, instead coming up with stuff on the fly.  Whether that was the best decision is another story. ;-)  &lt;/p&gt;  &lt;p&gt;While I enjoyed every talk, there were some definite standouts.&lt;/p&gt;  &lt;h3&gt;Soft Skills in 25 Minutes&lt;/h3&gt;  &lt;p&gt;&lt;img style="display: inline; margin: 0px 5px 0px 0px" height="240" src="http://farm4.static.flickr.com/3653/3478562188_ffa2ec1f36.jpg?v=0" width="220" align="left" /&gt; It was very cool to see &lt;a href="http://www.brianhprince.com/"&gt;Brian&lt;/a&gt; boil his 2+ hour “Soft Skills” talk down to 20 minutes.  When I first created the schedule for the single-track event, I gave Brian 2 back-to-back slots because I knew this particular talk could go long.  Brian told me he really wanted to stick with the short format like everyone else, so I cut him back to the single slot.  I was very surprised when he ended a couple minutes early!  &lt;/p&gt;  &lt;h3&gt;I am Ammal!&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://www.davidgiard.com/"&gt;Dave’s&lt;/a&gt; “Effective Communication” talk was good if for no other reason than I am/was “Ammal”. :-)  What really sucked is that because of the sun, most of Dave’s slides were washed out and you couldn’t really see the pictures.&lt;/p&gt;  &lt;h3&gt;A Scary Black Man&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://toicreative.blogspot.com/"&gt;Clovis&lt;/a&gt; did an outstanding job with his “Branding 101” talk.  There were some technical difficulties at the last minute, so he did his entire talk without slides.  He actively engaged the audience and held a very &lt;img style="display: inline; margin: 5px 0px 0px 5px" height="180" src="http://ilpcaq.blu.livefilestore.com/y1p14TDaXue_mmKEyu77LYj5NMYnY_ngmUF4VhQpWaVCWfpSQ6ltz4h9mfQCa-NHGOdaTn4uVxH3VDpHoY2O-ANWg/IMG_0605.jpg" width="240" align="right" /&gt; entertaining conversation.  At one point, he jokingly described himself as the “scary black man”.  Good stuff.  It was one of the few talks I wish could have gone on for another hour.&lt;/p&gt;  &lt;h3&gt;Simplicity, simplicity, simplicity!&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://joshholmes.com/"&gt;Josh’s&lt;/a&gt; “&lt;a href="http://www.joshholmes.com/blog/2009/04/29/TheLostArtOfSimplicity.aspx"&gt;Lost Art of Simplicity&lt;/a&gt;” was a bit more polished than when he did it at the Central Ohio Day of .NET.  His pacing was dead-on and the graphics he used in his presentation were very, very cool. &lt;/p&gt;  &lt;h3&gt;Stepping up&lt;/h3&gt;  &lt;p&gt;I have to point out that about halfway through &lt;a href="http://twitter.com/visualhero"&gt;Andy Van Solkema’s&lt;/a&gt; talk, I realized that I wasn’t sure if Brian knew he was supposed to do the “What is an Architect” talk. :-)  He and I had talked about it early on in the X Conference planning, but somehow it fell off the radar.  Immediately after Andy’s talk, I mentioned it to him.  He said he was wondering who was going to do it, but luckily he jumped at the chance to get back in front of the audience.  Instead of doing “What is an architect”, he decided to do his “5 Ways to be more Agile” talk.  It was a great decision!&lt;/p&gt;  &lt;h3&gt;Without change, there would be no butterflies&lt;/h3&gt;  &lt;p&gt;&lt;img style="display: inline; margin: 0px 5px 0px 0px" height="216" src="http://farm4.static.flickr.com/3354/3478607494_0903e0fd3b.jpg?v=0" width="240" align="left" /&gt; I have to say, the standout session for me was &lt;a href="http://fallenrogue.com/"&gt;Leon’s&lt;/a&gt; “Change”.  This talk was EXACTLY why I wanted Leon at the conference.  It was a very powerful, personal talk given in Leon’s engaging, comedic style.  He ended his talk with an amazing quote by Deming: “It is not necessary to change.  Survival is not mandatory”.  Wow.&lt;/p&gt;  &lt;h3&gt;A Community Leader on Leadership&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://frazzleddad.blogspot.com/"&gt;Jim’s&lt;/a&gt; “Leadership 101” talk started out in a very intense way as he described how soldiers in World War I went “over the top” of the trenches into almost certain death.  He talked about why they did what they did and then transitioned into a short, but amazing talk about leadership.  When I first asked Jim to speak and he pitched this particular talk, I jumped at it.  In my opinion, there is NO ONE in the development community I’d rather have talk about &lt;img style="display: inline; margin: 5px 0px 0px 5px" height="180" src="http://farm4.static.flickr.com/3633/3476614442_6505d69f40.jpg?v=0" width="240" align="right" /&gt; leadership. &lt;/p&gt;  &lt;h3&gt;Community&lt;/h3&gt;  &lt;p&gt;A few weeks before the event, I asked Mike to do a talk on Community knowing he’d kick ass.  The talk that capped off the day almost had me in tears because it was THE PERFECT ending for the day.  &lt;a href="http://mvwood.com/blog/"&gt;Mike Wood&lt;/a&gt; did an awesome job explaining what community meant to him.  His final slide (which stayed up during our short group conversation) asked the very simple question, “What does community mean to you?”  Good stuff. :-)&lt;/p&gt;  &lt;h3&gt;Thanks&lt;/h3&gt;  &lt;p&gt;&lt;img style="display: inline; margin: 0px 5px 0px 0px" height="167" src="http://farm4.static.flickr.com/3359/3477841045_de755d1f2e.jpg?v=0" width="240" align="left" /&gt; I have to thank all of the speakers for making this such a great event.  Without their willingness to travel (some drove several hundred miles) to this small first time conference, seemingly out in the sticks, we would have not been able to pull this off.&lt;/p&gt;  &lt;p&gt;Thanks to all our great sponsors for providing monetary support and giving us all sorts of great stuff to give away.  Thanks to the others on the planning team who helped make this event the success it was.  &lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Will there be a Kalamazoo X Conference in 2010?  Based on the feedback we’ve gotten, it’s almost certainly YES. :-)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;* Pictures by Dave Giard, Sarah Dutkiewicz and Alan Barber used with permission.&lt;/font&gt;&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:c8f64b2a-cd1a-470c-99db-930d6cadfa1e" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/kalamazooX" rel="tag"&gt;kalamazooX&lt;/a&gt;,&lt;a href="http://technorati.com/tags/kalx" rel="tag"&gt;kalx&lt;/a&gt;&lt;/div&gt;&lt;img src="http://mjeaton.net/blog/aggbug/3384.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.michaeleatonconsulting.com/~ff/mjeaton?a=vz5JT8yNSA0:T6eF6bSIu7Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mjeaton?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~ff/mjeaton?a=vz5JT8yNSA0:T6eF6bSIu7Q:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mjeaton?i=vz5JT8yNSA0:T6eF6bSIu7Q:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            <dc:creator>Michael Eaton</dc:creator>
            <guid>http://mjeaton.net/blog/archive/2009/04/29/the-kalamazoo-x-conference---event-wrap-up.aspx</guid>
            <pubDate>Wed, 29 Apr 2009 13:47:54 GMT</pubDate>
            <wfw:comment>http://mjeaton.net/blog/comments/3384.aspx</wfw:comment>
            <comments>http://mjeaton.net/blog/archive/2009/04/29/the-kalamazoo-x-conference---event-wrap-up.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://mjeaton.net/blog/comments/commentRss/3384.aspx</wfw:commentRss>
            <trackback:ping>http://mjeaton.net/blog/services/trackbacks/3384.aspx</trackback:ping>
        </item>
        <item>
            <title>My CODODN Presentation: Small changes can have a big (negative) impact</title>
            <category>.NET</category>
            <category>Consulting Stuff</category>
            <category>Databases</category>
            <category>Games</category>
            <category>Experience Counts</category>
            <category>Hardware</category>
            <category>Life</category>
            <category>Politics</category>
            <category>Software in general</category>
            <link>http://mjeaton.net/blog/archive/2009/04/19/my-cododn-presentation-small-changes-can-have-a-big-negative.aspx</link>
            <description>&lt;p&gt;To those that attended my talk at the &lt;a href="http://cinnug.org/cododn/"&gt;Central Ohio Day of .NET&lt;/a&gt; on the 18th: I apologize.  It was not meant to be a “tool” talk.  At the last minute, I decided to change the order of my slides hoping a *short* discussion of tools would help when I got to the “meat” of the talk.  BIG MISTAKE.  It really changed the whole tone and direction of my talk, especially since I got a late start due to projector issues. &lt;/p&gt;  &lt;p&gt;I am re-working the talk for the Indy Code Camp so it is what I intended it to be: a session heavy on architectural guidance.&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:133295e2-da7b-42d7-aceb-b629696dd69e" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/cododn" rel="tag"&gt;cododn&lt;/a&gt;,&lt;a href="http://technorati.com/tags/speaking" rel="tag"&gt;speaking&lt;/a&gt;&lt;/div&gt;&lt;img src="http://mjeaton.net/blog/aggbug/3383.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.michaeleatonconsulting.com/~ff/mjeaton?a=ajHQFh7jLtQ:8QtxAYL2LvY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mjeaton?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~ff/mjeaton?a=ajHQFh7jLtQ:8QtxAYL2LvY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mjeaton?i=ajHQFh7jLtQ:8QtxAYL2LvY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            <dc:creator>Michael Eaton</dc:creator>
            <guid>http://mjeaton.net/blog/archive/2009/04/19/my-cododn-presentation-small-changes-can-have-a-big-negative.aspx</guid>
            <pubDate>Sun, 19 Apr 2009 16:20:23 GMT</pubDate>
            <wfw:comment>http://mjeaton.net/blog/comments/3383.aspx</wfw:comment>
            <comments>http://mjeaton.net/blog/archive/2009/04/19/my-cododn-presentation-small-changes-can-have-a-big-negative.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://mjeaton.net/blog/comments/commentRss/3383.aspx</wfw:commentRss>
            <trackback:ping>http://mjeaton.net/blog/services/trackbacks/3383.aspx</trackback:ping>
        </item>
        <item>
            <title>Upcoming events &amp;ndash; April and May</title>
            <category>.NET</category>
            <category>Consulting Stuff</category>
            <category>Databases</category>
            <category>Experience Counts</category>
            <category>Hardware</category>
            <category>Games</category>
            <category>Life</category>
            <category>Politics</category>
            <category>Software in general</category>
            <link>http://mjeaton.net/blog/archive/2009/04/16/upcoming-events-ndash-april-and-may.aspx</link>
            <description>&lt;p&gt;This coming Friday I’ll be heading down to Wilmington, Ohio for the &lt;a href="http://cinnug.org/cododn/"&gt;Central Ohio Day of .NET&lt;/a&gt; on Saturday.  This was one of the first events in the region when it started out as the Dayton-Cinci Code Camp a few years ago.  I always look forward to it and this year is no different.  The &lt;a href="http://cinnug.org/cododn/sessions.aspx"&gt;session&lt;/a&gt; lineup looks pretty damn good, even with mine included. :-)  Yes, I will be presenting at this years event on “Developing Solid WPF Applications”.&lt;/p&gt;  &lt;p&gt;I’ve been on the planning team for the &lt;a href="http://kalamazoox.org"&gt;Kalamazoo X Conference&lt;/a&gt; (&lt;a href="http://kalamazoox.eventbrite.com/"&gt;register here&lt;/a&gt;) since late last year, so when I head to Kalamazoo on April 25th, I’ll be looking forward to listening to all the amazing speakers we have lined up.  Since we changed the format of the event to a single track, attendees and staff will be able to see every session!  Good stuff.&lt;/p&gt;  &lt;p&gt;May is a busy month for me, both personally and professionally.  Between my anniversary (12th), my wife’s birthday and Mother’s Day, the month would be busy enough, but on top of that, I’ll be heading to Columbus on Friday, May 8th to present on “What’s New in WPF 4.0” at &lt;a href="http://stirtrek.com/"&gt;Stir Trek&lt;/a&gt;.  This will be a very cool event, especially if you’re a Star Trek fan because there will be a private screening of the new Star Trek movie at 4PM for all attendees.  To be perfectly honest, I’ll probably be leaving at 4 because I haven’t been able to sit through a Star Trek movie since &lt;a href="http://www.imdb.com/title/tt0084726/"&gt;Wrath of Khan&lt;/a&gt; (the best of the movies). :-)&lt;/p&gt;  &lt;p&gt;On May 16th, I’ll be at the &lt;a href="http://indycodecamp.com"&gt;Indy Code Camp&lt;/a&gt; in Indianapolis.  For the second year running, I’ll be presenting two sessions: “Writing Solid WPF Applications” and “Improving our Craft: A Discussion on Software Estimation”.&lt;/p&gt;  &lt;p&gt;On May 30th, I hope to be at the &lt;a href="http://chicagocodecamp.com/"&gt;Chicago Code Camp&lt;/a&gt; whether I’m speaking or not.  I did submit some abstracts, but haven’t heard back yet.&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:1fadf854-3664-4a0b-ac80-9b26d423faca" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/speaking" rel="tag"&gt;speaking&lt;/a&gt;,&lt;a href="http://technorati.com/tags/dodn" rel="tag"&gt;dodn&lt;/a&gt;,&lt;a href="http://technorati.com/tags/code+camp" rel="tag"&gt;code camp&lt;/a&gt;,&lt;a href="http://technorati.com/tags/central+ohio" rel="tag"&gt;central ohio&lt;/a&gt;,&lt;a href="http://technorati.com/tags/indy" rel="tag"&gt;indy&lt;/a&gt;,&lt;a href="http://technorati.com/tags/indianapolis" rel="tag"&gt;indianapolis&lt;/a&gt;,&lt;a href="http://technorati.com/tags/kalamazoo" rel="tag"&gt;kalamazoo&lt;/a&gt;&lt;/div&gt;&lt;img src="http://mjeaton.net/blog/aggbug/3382.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.michaeleatonconsulting.com/~ff/mjeaton?a=teQUEbiejMY:M6ZRyh_hQLo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mjeaton?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~ff/mjeaton?a=teQUEbiejMY:M6ZRyh_hQLo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mjeaton?i=teQUEbiejMY:M6ZRyh_hQLo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            <dc:creator>Michael Eaton</dc:creator>
            <guid>http://mjeaton.net/blog/archive/2009/04/16/upcoming-events-ndash-april-and-may.aspx</guid>
            <pubDate>Thu, 16 Apr 2009 18:18:52 GMT</pubDate>
            <wfw:comment>http://mjeaton.net/blog/comments/3382.aspx</wfw:comment>
            <comments>http://mjeaton.net/blog/archive/2009/04/16/upcoming-events-ndash-april-and-may.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://mjeaton.net/blog/comments/commentRss/3382.aspx</wfw:commentRss>
            <trackback:ping>http://mjeaton.net/blog/services/trackbacks/3382.aspx</trackback:ping>
        </item>
        <item>
            <title>The Kalamazoo X Conference &amp;ndash; Major Announcement</title>
            <category>.NET</category>
            <category>Consulting Stuff</category>
            <category>Experience Counts</category>
            <category>Databases</category>
            <category>Games</category>
            <category>Hardware</category>
            <category>Life</category>
            <category>Politics</category>
            <category>Software in general</category>
            <link>http://mjeaton.net/blog/archive/2009/04/06/the-kalamazoo-x-conference-ndash-major-announcement.aspx</link>
            <description>&lt;p&gt;When we first started talking about having an event in &lt;a href="http://www.kalamazoomi.com/"&gt;Kalamazoo&lt;/a&gt; in October of 2008, we wanted to do something different.  This region has plenty of Day of .NET events, so our idea of “different” was to focus on soft skills and stay clear of hardcore technical topics.  In the past month or so, we have lined up an extraordinary group of speakers who are bringing over a dozen amazing sessions to the &lt;a href="http://kalamazoox.org/"&gt;Kalamazoo X Conference&lt;/a&gt; (&lt;a href="http://kalamazoox.org/pages/register.php"&gt;register here&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;As the person responsible for putting together the schedule, I immediately realized how difficult that particular job is.  All these great speakers (almost all of them good friends) and all the great topics made the task almost impossible.  I did my best to put together a 4-track event with each session coming in at about 70 minutes.  As I began updating the website with the session information, something didn’t feel right.&lt;/p&gt;  &lt;p&gt;A couple weeks ago, the planning team (me, &lt;a href="http://www.aviewofthemarsh.us/"&gt;John&lt;/a&gt;, &lt;a href="http://markegilbert.wordpress.com/"&gt;Mark&lt;/a&gt; and &lt;a href="http://www.michaelmarkel.com/blog.html"&gt;Michael&lt;/a&gt;) had lunch in Kalamazoo (&lt;a href="http://kalamazoo.ibegin.com/restaurants/fat-tonys-grille--sports-bar"&gt;Fat Tony’s Grille &amp;amp; Sports Bar&lt;/a&gt; is really good BTW) and started talking about the schedule.  Everyone at the table voiced the same opinion: multi-track conferences suck because you always end up having to make decisions and end up missing out on sessions you want to see.  We began discussing how we could alleviate this problem.  The most obvious idea was to change the format of the event.  &lt;/p&gt;  &lt;p&gt;One of my concerns with this idea is that almost all of the speakers are good friends, many from Ohio, and I hated the idea of screwing with the format with only 3-4 weeks until the event.  I mean, if we changed it too much, maybe some of them wouldn’t want to make the 4+ hour drive to Kalamazoo.  In the end though, we had two choices: do nothing and force attendees (including ourselves) to choose between some amazing sessions OR we could make a drastic change and hope the speakers would go for it. :-)  &lt;/p&gt;  &lt;p&gt;After a lot of deliberation, the X Conference planning team  has decided to make a major change to the format of the event:  &lt;u&gt;We are now a single-track conference!&lt;/u&gt; &lt;/p&gt;  &lt;p&gt;Instead of 4 tracks with 5 sessions each, we have asked all the speakers to adjust their talks to fit within a 20-30 minute session.  This means everyone will get to see all of the sessions and all the speakers will be able to present in front of the entire crowd.  While I’m still waiting to hear back from all the speakers, the ones that have responded have done so in a very positive way.  One of the speakers responded with this:&lt;/p&gt;  &lt;p&gt;“On a personal note, Mike, I'm really looking forward to this event now that you've changed the format. It's different, fast, exciting, I'm VERY interested to see how this format shapes the conversations of the day. I simply can't wait to be there.” &lt;/p&gt;  &lt;p&gt;I’m really excited about this change too and hope, if you’re within a few hours of Kalamazoo, that you’ll be there!  I will be posting updated speaker / session information to the website over the next couple of days.   &lt;/p&gt;  &lt;p&gt;&lt;a href="http://kalamazoox.org/pages/register.php"&gt;Register here&lt;/a&gt;&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:739bac64-67ae-4676-8024-2e332c6cd6b4" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/kalamazoox" rel="tag"&gt;kalamazoox&lt;/a&gt;,&lt;a href="http://technorati.com/tags/soft+skills" rel="tag"&gt;soft skills&lt;/a&gt;,&lt;a href="http://technorati.com/tags/kalamazoo" rel="tag"&gt;kalamazoo&lt;/a&gt;&lt;/div&gt;&lt;img src="http://mjeaton.net/blog/aggbug/3381.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.michaeleatonconsulting.com/~ff/mjeaton?a=S9GkkG3uBJE:0D3efwZftx0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mjeaton?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~ff/mjeaton?a=S9GkkG3uBJE:0D3efwZftx0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mjeaton?i=S9GkkG3uBJE:0D3efwZftx0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            <dc:creator>Michael Eaton</dc:creator>
            <guid>http://mjeaton.net/blog/archive/2009/04/06/the-kalamazoo-x-conference-ndash-major-announcement.aspx</guid>
            <pubDate>Mon, 06 Apr 2009 12:16:56 GMT</pubDate>
            <wfw:comment>http://mjeaton.net/blog/comments/3381.aspx</wfw:comment>
            <comments>http://mjeaton.net/blog/archive/2009/04/06/the-kalamazoo-x-conference-ndash-major-announcement.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://mjeaton.net/blog/comments/commentRss/3381.aspx</wfw:commentRss>
            <trackback:ping>http://mjeaton.net/blog/services/trackbacks/3381.aspx</trackback:ping>
        </item>
        <item>
            <title>The Kalamazoo X Conference</title>
            <category>.NET</category>
            <category>Consulting Stuff</category>
            <category>Databases</category>
            <category>Experience Counts</category>
            <category>Games</category>
            <category>Hardware</category>
            <category>Life</category>
            <category>Politics</category>
            <category>Software in general</category>
            <link>http://mjeaton.net/blog/archive/2009/03/16/the-kalamazoo-x-conference.aspx</link>
            <description>&lt;p&gt;On April 25th, the Microsoft Developer’s of Southwest Michigan (MDSM) will be hosting &lt;a href="http://kalamazoox.org/"&gt;The Kalamazoo X Conference&lt;/a&gt;.  While a relatively new member to the group, I have been working very closely with &lt;a href="http://markegilbert.wordpress.com/"&gt;Mark Gilbert&lt;/a&gt;, &lt;a href="http://www.aviewofthemarsh.us/"&gt;John Burns&lt;/a&gt; and &lt;a href="http://www.mcmdevelopment.com/index.html"&gt;Michael Merkel&lt;/a&gt; (and a few others) to make this a kick-ass event. :-)&lt;/p&gt;  &lt;p&gt; &lt;a href="http://kalamazoox.org/"&gt;&lt;img title="The Kalamazoo X Conference" style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" height="65" alt="The Kalamazoo X Conference" src="http://mjeaton.net/blog/images/mjeaton_net/blog/WindowsLiveWriter/TheKalamazooXConference_BC46/logo_3.png" width="240" border="0" /&gt;&lt;/a&gt;     &lt;br /&gt;    &lt;br /&gt;The Kalamazoo X Conference is a one-day software development conference hosted in beautiful Southwest Michigan. While there are many great technical conferences in the region, their focus tends toward new technologies and programming languages. The Kalamazoo X Conference intends to uniquely complement those conferences by enabling attendees to boost their process, design, and communication skills in the following areas:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Human interaction, including social, personal, and career development.&lt;/li&gt;    &lt;li&gt;Interface and graphic design&lt;/li&gt;    &lt;li&gt;Development processes and best practices&lt;/li&gt;    &lt;li&gt;Requirements analysis, architecture, design, and modeling &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;This one day, one of a kind conference is being held April 25, 2009 from 8AM to 6PM in beautiful downtown &lt;a href="http://www.kalamazoomi.com/"&gt;Kalamazoo&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Check out our &lt;a href="http://KalamazooX.org"&gt;website&lt;/a&gt;, &lt;a href="http://www.kalamazoox.org/pages/register.php"&gt;register&lt;/a&gt; and follow us on &lt;a href="http://twitter.com/KalamazooX"&gt;twitter&lt;/a&gt;!&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:79e3191c-885e-438e-8e2d-87c675f53ee7" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/KalamazooX" rel="tag"&gt;KalamazooX&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Kalamazoo" rel="tag"&gt;Kalamazoo&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Tech" rel="tag"&gt;Tech&lt;/a&gt;,&lt;a href="http://technorati.com/tags/MDSM" rel="tag"&gt;MDSM&lt;/a&gt;&lt;/div&gt;&lt;img src="http://mjeaton.net/blog/aggbug/3380.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.michaeleatonconsulting.com/~ff/mjeaton?a=8tl0m7pY5o8:IxbKyonfe2A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mjeaton?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~ff/mjeaton?a=8tl0m7pY5o8:IxbKyonfe2A:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mjeaton?i=8tl0m7pY5o8:IxbKyonfe2A:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            <dc:creator>Michael Eaton</dc:creator>
            <guid>http://mjeaton.net/blog/archive/2009/03/16/the-kalamazoo-x-conference.aspx</guid>
            <pubDate>Mon, 16 Mar 2009 11:09:31 GMT</pubDate>
            <wfw:comment>http://mjeaton.net/blog/comments/3380.aspx</wfw:comment>
            <comments>http://mjeaton.net/blog/archive/2009/03/16/the-kalamazoo-x-conference.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://mjeaton.net/blog/comments/commentRss/3380.aspx</wfw:commentRss>
            <trackback:ping>http://mjeaton.net/blog/services/trackbacks/3380.aspx</trackback:ping>
        </item>
        <item>
            <title>Microsoft Developer Conference &amp;ndash; Detroit</title>
            <category>.NET</category>
            <category>Consulting Stuff</category>
            <category>Databases</category>
            <category>Games</category>
            <category>Experience Counts</category>
            <category>Hardware</category>
            <category>Life</category>
            <category>Politics</category>
            <category>Software in general</category>
            <link>http://mjeaton.net/blog/archive/2009/01/28/microsoft-developer-conference-ndash-detroit.aspx</link>
            <description>&lt;p&gt;On January 22nd, I attended the &lt;a href="http://www.msdndevcon.com/Pages/start.aspx"&gt;MDC&lt;/a&gt; in Detroit.  Since I didn’t feel like braving the Detroit-area traffic Thursday morning, and since I made plans to room with &lt;a href="http://netcave.org/"&gt;Alan&lt;/a&gt;, I drove up the night before.  After picking Alan up at the airport at 6, we headed for the &lt;a href="http://www.gmrencen.com/"&gt;RenCen&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;While Alan was off doing “speaker” things, I caught up with &lt;a href="http://coreyhaines.com/"&gt;Corey&lt;/a&gt; and then recorded almost an hour of video for his &lt;a href="http://geekstorycorp.blogspot.com/2009/01/michael-eaton.html"&gt;“How did you get started in programming”&lt;/a&gt; &lt;a href="http://geekstorycorp.blogspot.com/"&gt;video series&lt;/a&gt;. :-)  I love how my simple blog post inspired Corey to take it one step further.  I definitely expanded on my story in that 45+ minute interview.  I had a great time doing it, so hopefully I don’t bore everyone to tears. ;-)&lt;/p&gt;  &lt;p&gt;After the interview with Corey, we caught back up with a bunch of the speakers and talked for a while about a wide range of subjects.  By the time we were done talking, it was almost midnight, so Alan and I headed up to our room and crashed.  &lt;/p&gt;  &lt;p&gt;Before I knew it, it was 6am and my alarm was going off.  Since Alan had some pre-event stuff to do, he was up, showered and dressed pretty damn quick.  I on the other hand, managed to snag another 30 minutes of sleep.&lt;/p&gt;  &lt;p&gt;Thankfully, I left my laptop in the room because with no wi-fi at the event, there was no point in hauling it around.  I registered pretty quickly, then caught up with &lt;a href="http://JoshHolmes.com"&gt;Josh&lt;/a&gt; and some other friends.  I originally planned on skipping the keynote because, well, because most keynotes suck. :-)  I’m not sure why, but I decided to stick this one out.  I think 90 minutes is a long time for a keynote, but &lt;a href="http://blogs.msdn.com/rjacobs/default.aspx"&gt;Ron Jacobs&lt;/a&gt; did a good job of giving us the 50k foot view of all the technologies the day would cover.&lt;/p&gt;  &lt;p&gt;I ended up hanging out a lot of the day, catching up with friends that came in from Ohio and western Michigan.  The sessions I did try to catch were packed.  I’m not sure what was up with the tiny-ass break-out rooms, but there was standing room only in the sessions I checked out.  Alan was leading the Community Courtyard, so I sat in a few great conversations, almost exclusively focused on the technologies being presented in the breakout sessions.&lt;/p&gt;  &lt;p&gt;After the event, a bunch of us went out for &lt;a href="http://www.pizzapapalis.com/"&gt;pizza&lt;/a&gt; (thanks Microsoft for picking up the tab!), hung out and talked (well, tried to talk since it was pretty freakin’ loud).  After pizza, a few brave souls headed to a casino, while the rest of us walked back to the hotel.  My plan was leave around 9 so I’d be home before midnight.  Yea, right.  I ended up getting caught up in a great conversation with &lt;a href="http://www.brianhprince.com/"&gt;Brian&lt;/a&gt;, &lt;a href="http://jamescbender.com/bendersblog/Default.aspx"&gt;Bender&lt;/a&gt; and &lt;a href="http://www.christopherroland.com/"&gt;Chris&lt;/a&gt; and didn’t leave until around 10:15.  &lt;/p&gt;  &lt;p&gt;While Chris and I drove separately, we were heading in the same direction so we decided to stick close on the drive back.  Of course, it took about 30 minutes for Chris to find his car in the parking garage and then we made a wrong turn based on bad directions given to us by a parking attendant.  We finally got on the road around 11pm.  We decided to take US-12 since it was the most direct route home.  The heavy fog we ran into during the first part of our trip was unexpected, but overall, the trip back wasn’t bad.&lt;/p&gt;  &lt;p&gt;When all was said and done, I came away from this event pretty fired up about &lt;a href="http://www.microsoft.com/windows/windows-7/"&gt;Windows 7&lt;/a&gt; and &lt;a href="http://code.msdn.microsoft.com/mef"&gt;MEF&lt;/a&gt;.  I actually tried installing Windows 7 on my laptop, but due to some driver-related issues, I bailed and reinstalled Vista.  The features I was really anxious to use were mounting VHDs as drives, booting to VHDs and the decreased resource usage / increased performance.  Hopefully when Windows 7 is fully-baked, I won’t have as many issues.&lt;/p&gt;  &lt;p&gt;As for MEF, I’m not sure I’m as fired up today as I was leaving the event.  Again, it comes down to it being an “in-progress, almost-there, kinda sorta” offering that I’m not comfortable using in a production application.  Maybe I’ll re-visit it when .NET 4.0 comes out, but for now, as with Windows 7, I’ll survive without it.&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:de6c231a-d35f-4534-8f44-90ad4678e50e" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/MDC" rel="tag"&gt;MDC&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Win7" rel="tag"&gt;Win7&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Corey+Haines" rel="tag"&gt;Corey Haines&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Detroit" rel="tag"&gt;Detroit&lt;/a&gt;&lt;/div&gt;&lt;img src="http://mjeaton.net/blog/aggbug/3379.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=TIku0ocC"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=61MFWHwW"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?i=61MFWHwW" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            <dc:creator>Michael Eaton</dc:creator>
            <guid>http://mjeaton.net/blog/archive/2009/01/28/microsoft-developer-conference-ndash-detroit.aspx</guid>
            <pubDate>Wed, 28 Jan 2009 14:26:24 GMT</pubDate>
            <wfw:comment>http://mjeaton.net/blog/comments/3379.aspx</wfw:comment>
            <comments>http://mjeaton.net/blog/archive/2009/01/28/microsoft-developer-conference-ndash-detroit.aspx#feedback</comments>
            <wfw:commentRss>http://mjeaton.net/blog/comments/commentRss/3379.aspx</wfw:commentRss>
            <trackback:ping>http://mjeaton.net/blog/services/trackbacks/3379.aspx</trackback:ping>
        </item>
        <item>
            <title>Goals for 2009</title>
            <category>.NET</category>
            <category>Consulting Stuff</category>
            <category>Databases</category>
            <category>Experience Counts</category>
            <category>Games</category>
            <category>Hardware</category>
            <category>Life</category>
            <category>Politics</category>
            <category>Software in general</category>
            <link>http://mjeaton.net/blog/archive/2009/01/19/goals-for-2009.aspx</link>
            <description>&lt;p&gt;On January 5th, &lt;a href="http://jeffblankenburg.com/"&gt;Jeff&lt;/a&gt; called me out in his "&lt;a href="http://jeffblankenburg.com/2009/01/goals-for-2009.aspx"&gt;Goals for 2009&lt;/a&gt;" post. &lt;/p&gt;  &lt;p&gt;My goals for 2009 are pretty simple:&lt;/p&gt;  &lt;p&gt;1. Keep the work coming in.&lt;/p&gt;  &lt;p&gt;The first six months of 2008 were tough.  While waiting for some contracts to come through last year, I had a really tough time finding work to fill the gaps.  The last six months of 2008 were amazing and I hope to continue that success through all of 2009 and into 2010 (and further). :-)  This means focusing on the business side of things and making sure I'm keeping the pipeline full *without* burning myself out. &lt;/p&gt;  &lt;p&gt;2. Write more.&lt;/p&gt;  &lt;p&gt;Jeff talked about posting 100 times to his blog and I think that's a great goal.  I posted 69 times to my blog in 2008.  I think an additional 31 posts is doable. :-)&lt;/p&gt;  &lt;p&gt;3. Waste less energy on stuff that doesn't matter.&lt;/p&gt;  &lt;p&gt;Basically, I'm going to try and not sweat the small stuff this year.  Too many people get worked up over things that, in the end, really don't matter. &lt;/p&gt;  &lt;p&gt;4. Continue my community involvement&lt;/p&gt;  &lt;p&gt;This includes putting on the upcoming Ann Arbor Give Camp, supporting my "local" (within an hour) user groups by attending / speaking, attending regional technical events and more fundraising for worthy charities. :-)&lt;/p&gt;  &lt;p&gt;5. Be healthier&lt;/p&gt;  &lt;p&gt;This really means doing more to get off my ass during the day instead of sitting behind my computer for 12+.  &lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:c7697df9-2f57-4fff-a82f-d455edf9af6e" 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/goals" rel="tag"&gt;goals&lt;/a&gt;,&lt;a href="http://technorati.com/tags/2009" rel="tag"&gt;2009&lt;/a&gt;&lt;/div&gt;&lt;img src="http://mjeaton.net/blog/aggbug/3378.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=34t8qMzN"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=GoxXNPCh"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?i=GoxXNPCh" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            <dc:creator>Michael Eaton</dc:creator>
            <guid>http://mjeaton.net/blog/archive/2009/01/19/goals-for-2009.aspx</guid>
            <pubDate>Mon, 19 Jan 2009 13:48:15 GMT</pubDate>
            <wfw:comment>http://mjeaton.net/blog/comments/3378.aspx</wfw:comment>
            <comments>http://mjeaton.net/blog/archive/2009/01/19/goals-for-2009.aspx#feedback</comments>
            <wfw:commentRss>http://mjeaton.net/blog/comments/commentRss/3378.aspx</wfw:commentRss>
            <trackback:ping>http://mjeaton.net/blog/services/trackbacks/3378.aspx</trackback:ping>
        </item>
        <item>
            <title>Codemash 2009 wrap-up</title>
            <category>.NET</category>
            <category>Consulting Stuff</category>
            <category>Databases</category>
            <category>Experience Counts</category>
            <category>Games</category>
            <category>Hardware</category>
            <category>Life</category>
            <category>Politics</category>
            <category>Software in general</category>
            <link>http://mjeaton.net/blog/archive/2009/01/14/codemash-2009-wrap-up.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://www.flickr.com/photos/sadukie/tags/codemash2009/"&gt;Sarah's pictures&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.flickr.com/photos/29942169@N08/sets/72157612393831992/"&gt;Dave's pictures&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.flickr.com/photos/29955965@N06/tags/codemash2009/"&gt;Jeff's pictures&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://picasaweb.google.com/alanstevens/CodeMash2009#"&gt;Alan's pictures&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://codemash.org"&gt;Codemash&lt;/a&gt; 2009 marked my 1-year anniversary of really being out in the community.  Last March, I wrote a post titled "&lt;a href="http://mjeaton.net/blog/archive/2008/03/31/see-what-happens-when-geeks-socialize.aspx"&gt;See what happens when geeks socialize?&lt;/a&gt;" that described my evolution in the community.  I have come so much farther and made so many new friends and connections since that post that Codemash 2009 was more of a family reunion for me than anything else.&lt;/p&gt;  &lt;p&gt;On Tuesday the 6th, exactly a week after &lt;a href="http://mjeaton.net/blog/archive/2009/01/03/goodbye-2008-welcome-2009.aspx"&gt;my surgery&lt;/a&gt;, I hopped in a car with &lt;a href="http://www.jfarrell.net/"&gt;Jason Farrell&lt;/a&gt; and &lt;a href="http://twitter.com/ChrisRoland"&gt;Chris Roland&lt;/a&gt; to make the 2 1/2 hour drive to The Kalahari.  My plan was to get there in time for a 7pm meeting with the heartland evangelists (&lt;a href="http://www.brianhprince.com/"&gt;Brian&lt;/a&gt;, &lt;a href="http://jeffblankenburg.com/default.aspx"&gt;Jeff&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/jennifer/"&gt;Jennifer&lt;/a&gt;) &lt;a title="DSC_0025" href="http://www.flickr.com/photos/29955965@N06/3191194925/"&gt;&lt;img style="margin: 5px 5px 5px 0px" alt="DSC_0025" src="http://static.flickr.com/3302/3191194925_fe5634551e_m.jpg" align="left" border="0" /&gt;&lt;/a&gt;and then hang out with my friends before the Precompiler event on Wednesday.  Since I'm helping to plan a couple major events in the region this year, the influencer meeting was informative, and it was great to see and talk to everyone.  We did have a scare when we found out that the car &lt;a href="http://fallenrogue.appspot.com/"&gt;Leon&lt;/a&gt; was driving (passengers were &lt;a href="http://arcware.net/"&gt;DaveD&lt;/a&gt; and &lt;a href="http://danhounshell.com/blogs/dan/"&gt;Dan&lt;/a&gt;) went off the road.  After a few hours in the hospital making sure everyone was ok, they finally arrived at the hotel around midnight.&lt;/p&gt;  &lt;p&gt;Chris roomed with me Tuesday night, so after all the festivities, we ended up talking until after 3am.  Good stuff.&lt;/p&gt;  &lt;p&gt;Wednesday's Precompiler event was really cool.  I started out in &lt;a href="http://twitter.com/objo"&gt;Joe O'Brien&lt;/a&gt; and &lt;a href="http://onestepback.org/"&gt;Jim Weirich's&lt;/a&gt; &lt;a href="http://www.ruby-lang.org/en/"&gt;Ruby&lt;/a&gt; session.  I absolutely loved the approach they took.  Essentially, we were given a set of failing unit tests and had to fix them.  After getting through a few of the exercises, I bailed so I could wander around and see what else was going on.  After lunch, I &lt;a title="In the Ruby Precompiler session" href="http://www.flickr.com/photos/49034219@N00/3178468382/"&gt;&lt;img style="margin: 5px 0px 0px 5px" alt="In the Ruby Precompiler session" src="http://static.flickr.com/3332/3178468382_b271d852dd_m.jpg" align="right" border="0" /&gt;&lt;/a&gt;ended up bouncing between the "codejam" session and Leon's TDD session. :-)  During the TDD session, I ended up working a bit with &lt;a href="http://mvwood.com/blog/"&gt;Mike Wood&lt;/a&gt;.  I also jumped into a conversation &lt;a title="IMG_1705.jpg" href="http://www.flickr.com/photos/29942169@N08/3187257038/"&gt;&lt;img style="margin: 5px 5px 0px 0px" alt="IMG_1705.jpg" src="http://static.flickr.com/3441/3187257038_a5f7eb1137_m.jpg" align="left" border="0" /&gt;&lt;/a&gt;Leon was having with a couple "students" and the next thing I know, it was just me and the 2 attendees.  Leon later said that he could see I had things under control and he was more than happy to move on and help others.&lt;/p&gt;  &lt;p&gt;At one point, a few of us (&lt;a href="http://infozerk.com/averyblog/"&gt;James&lt;/a&gt;, &lt;a href="http://kohari.org/"&gt;Nate&lt;/a&gt;, &lt;a href="http://blog.prokrams.com/"&gt;Mike&lt;/a&gt;, Corey and &lt;a href="http://jrwren.wrenfam.com/blog/"&gt;Jay&lt;/a&gt;) from ##twittertribe sat down for some hacking on a project.  I'm not sure where the project will go, or if anyone will continue to work on it, but it was cool to sit down and talk through things with those guys.  We hung out later in the bar and talked about all sorts of stuff....basically an extension of what we talk about every day in IRC. :-)&lt;/p&gt;  &lt;p&gt;Wednesday night was a bit crazy.  Not only did a lot of my friends show up, but my family also arrived.  While my family got settled in and hit the water park, a bunch of started...umm....consuming adult beverages.  After a few hours hanging out with &lt;a href="http://netcave.org/"&gt;Alan&lt;/a&gt; and  some other friends in Alan's room, I hit the SRT party and then headed back to Alan's room to chill out before finally making it back to my suite around 3am.  It was great talking to everyone, including the guy that I credit for starting it all: &lt;a href="http://diditwith.net/"&gt;Dustin&lt;/a&gt;. :-)&lt;/p&gt;  &lt;p&gt;Thursday saw the start of the event as well as the opening circle for the open spaces event.  I spent most of my time hanging out and talking to friends.  For some reason, I wasn't as excited about the open spaces as I hoped.  Right after the opening circle, I had breakfast with Alan, &lt;a href="http://www.mcwherter.net/blog/"&gt;Jeff&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/saraford/"&gt;Sara Ford&lt;/a&gt; (name drop!).  Overall, Thursday was about talking to friends and reconnecting.&lt;/p&gt;  &lt;p&gt;Thursday night was spent "adult beverage free" at the vendor party and then back in Alan's room for some excellent conversation and music.  I love listening to both Alan and &lt;a href="http://www.coreyhaines.com/coreysramblings/"&gt;Corey&lt;/a&gt; sing and both did their share. :-)&lt;/p&gt;  &lt;p&gt;Friday I sat in a great open space about community.  I was surprised by how many people consider the community to be "user groups".  I called BS on this pretty quickly and tried to steer the discussion to things other than user groups.  We talked a bit about Give Camps and impromtu discussions via skype/irc and IM.  Skype and IRC have become my lifelines over the past few months.  &lt;a title="DSC_0074" href="http://www.flickr.com/photos/29955965@N06/3191294523/"&gt;&lt;img style="margin: 5px 5px 5px 0px" alt="DSC_0074" src="http://static.flickr.com/3133/3191294523_7dced4f05e_m.jpg" align="left" border="0" /&gt;&lt;/a&gt;After that, I attended a lunch with the evangelists, a bunch of community members (my friends) and the head of DP&amp;amp;E in the US (Mark Hindsbo - does he seriously not have a blog?).  It ended up being, IMO, a pretty interesting and productive discussion.&lt;/p&gt;  &lt;p&gt;The closing circle for open spaces was....well.....different.  Alan structured things a bit different from DevLink so in order to talk, &lt;a title="My Code Monkey" href="http://www.flickr.com/photos/49034219@N00/3186262738/"&gt;&lt;img style="margin: 5px 0px 0px 5px" alt="My Code Monkey" src="http://static.flickr.com/3478/3186262738_266f05df26_m.jpg" align="right" border="0" /&gt;&lt;/a&gt;you had to have the "talking stick"...well, in our case, it was Sarah's code monkey, but still, you get the point.  The giveaways were cool, but I didn't win anything, so not much to say about it. :-)&lt;/p&gt;  &lt;p&gt;Friday night was once again spent with friends, hanging out and talking about a variety of topics.  I met &lt;a href="http://blogs.msdn.com/chrsmith/"&gt;Chris Smith&lt;/a&gt; and had a cool discussion about F# before Corey started playing Neil Young. :-)  At that point, all conversations are done for me.&lt;/p&gt;  &lt;p&gt;We finally got home around 3pm on Saturday.&lt;/p&gt;  &lt;p&gt;I had a hell of a good time and want to thank all the organizers and sponsors of the event.  Codemash continues to get better with each passing year.  I've already got the dates for Codemash 2010 on my calendar!&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:4421a37f-0560-47f3-ba8a-a9e864c31278" 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/codemash" rel="tag"&gt;codemash&lt;/a&gt;&lt;/div&gt;&lt;img src="http://mjeaton.net/blog/aggbug/3377.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=xcgQkTaW"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=H1C5mrLq"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?i=H1C5mrLq" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            <dc:creator>Michael Eaton</dc:creator>
            <guid>http://mjeaton.net/blog/archive/2009/01/14/codemash-2009-wrap-up.aspx</guid>
            <pubDate>Thu, 15 Jan 2009 03:21:16 GMT</pubDate>
            <wfw:comment>http://mjeaton.net/blog/comments/3377.aspx</wfw:comment>
            <comments>http://mjeaton.net/blog/archive/2009/01/14/codemash-2009-wrap-up.aspx#feedback</comments>
            <wfw:commentRss>http://mjeaton.net/blog/comments/commentRss/3377.aspx</wfw:commentRss>
            <trackback:ping>http://mjeaton.net/blog/services/trackbacks/3377.aspx</trackback:ping>
        </item>
        <item>
            <title>Top 10 Reasons Why I Hate the Internet</title>
            <category>.NET</category>
            <category>Consulting Stuff</category>
            <category>Databases</category>
            <category>Experience Counts</category>
            <category>Games</category>
            <category>Hardware</category>
            <category>Life</category>
            <category>Politics</category>
            <category>Software in general</category>
            <link>http://mjeaton.net/blog/archive/2009/01/14/top-10-reasons-why-i-hate-the-internet.aspx</link>
            <description>&lt;p&gt;1. Top N lists.   &lt;br /&gt;2. Stupid people.    &lt;br /&gt;3. Expert Sex Change    &lt;br /&gt;4. Everyone is an expert    &lt;br /&gt;5. Spam    &lt;br /&gt;6. Stupid people    &lt;br /&gt;7. Repetition    &lt;br /&gt;8. Not enough free porn    &lt;br /&gt;9. People that get pissed off over silly stuff&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:8efe0e01-d2e8-4355-9b00-c87b7351c41d" 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/top%2010%20list" rel="tag"&gt;top 10 list&lt;/a&gt;&lt;/div&gt;&lt;img src="http://mjeaton.net/blog/aggbug/3375.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=QGOCnFYx"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=QSOjzE17"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?i=QSOjzE17" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            <dc:creator>Michael Eaton</dc:creator>
            <guid>http://mjeaton.net/blog/archive/2009/01/14/top-10-reasons-why-i-hate-the-internet.aspx</guid>
            <pubDate>Wed, 14 Jan 2009 14:57:15 GMT</pubDate>
            <wfw:comment>http://mjeaton.net/blog/comments/3375.aspx</wfw:comment>
            <comments>http://mjeaton.net/blog/archive/2009/01/14/top-10-reasons-why-i-hate-the-internet.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://mjeaton.net/blog/comments/commentRss/3375.aspx</wfw:commentRss>
            <trackback:ping>http://mjeaton.net/blog/services/trackbacks/3375.aspx</trackback:ping>
        </item>
        <item>
            <title>Goodbye 2008, welcome 2009!</title>
            <category>.NET</category>
            <category>Consulting Stuff</category>
            <category>Databases</category>
            <category>Experience Counts</category>
            <category>Games</category>
            <category>Hardware</category>
            <category>Life</category>
            <category>Politics</category>
            <category>Software in general</category>
            <link>http://mjeaton.net/blog/archive/2009/01/03/goodbye-2008-welcome-2009.aspx</link>
            <description>&lt;p&gt;I was going to write my standard end of the year wrap-up post, but given some recent events, I want to look forward rather than back.  Of course, after saying that, I do want to briefly talk about the last few days of 2008. :-)&lt;/p&gt;  &lt;p&gt;If you follow me on twitter, you saw this &lt;a href="http://twitter.com/mjeaton/status/1082655964"&gt;tweet&lt;/a&gt; on Sunday:&lt;/p&gt;  &lt;p&gt;"Been at the hospital since 2:30am (ER). Was admitted around 6:30am and will be here for the next 2 days because of this http://is.gd/dRbM"&lt;/p&gt;  &lt;p&gt;On Tuesday morning around 9:15, my gallbladder was removed by an excellent surgical team and then I spent the next 24 hours recovering.  During this time, I was taken care of by a great nursing staff, including someone I graduated high school with. :-)  I was discharged on Wednesday morning and then I spent New Year's Eve with my wife, kids and some friends playing games.  It's been a crazy few days, but thankfully things are finally getting back to normal.  &lt;/p&gt;  &lt;p&gt;I'm really looking forward to 2009.  In the short term, I'm looking forward to attending Codemash next week and seeing all my friends again.  In the longer term, the latter half of 2008 has kept me extremely busy and I hope to be just as busy all of 2009. I have an upcoming announcement regarding business, but it'll probably wait until next week.  I had a great time speaking last year and definitely plan to develop new topics and continue presenting at user groups and events throughout the year.&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:9e70cf9d-bdf7-4b64-a334-af9784c127d9" 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/health" rel="tag"&gt;health&lt;/a&gt;,&lt;a href="http://technorati.com/tags/new%20year" rel="tag"&gt;new year&lt;/a&gt;,&lt;a href="http://technorati.com/tags/2009" rel="tag"&gt;2009&lt;/a&gt;&lt;/div&gt;&lt;img src="http://mjeaton.net/blog/aggbug/3374.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=Y9uQcjHh"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=XiyXPFkK"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?i=XiyXPFkK" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            <dc:creator>Michael Eaton</dc:creator>
            <guid>http://mjeaton.net/blog/archive/2009/01/03/goodbye-2008-welcome-2009.aspx</guid>
            <pubDate>Sat, 03 Jan 2009 17:26:41 GMT</pubDate>
            <wfw:comment>http://mjeaton.net/blog/comments/3374.aspx</wfw:comment>
            <comments>http://mjeaton.net/blog/archive/2009/01/03/goodbye-2008-welcome-2009.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://mjeaton.net/blog/comments/commentRss/3374.aspx</wfw:commentRss>
            <trackback:ping>http://mjeaton.net/blog/services/trackbacks/3374.aspx</trackback:ping>
        </item>
        <item>
            <title>Blog changes</title>
            <category>.NET</category>
            <category>Politics</category>
            <category>Life</category>
            <category>Software in general</category>
            <category>Consulting Stuff</category>
            <category>Hardware</category>
            <category>Games</category>
            <category>Databases</category>
            <category>Experience Counts</category>
            <link>http://mjeaton.net/blog/archive/2008/12/14/blog-changes.aspx</link>
            <description>&lt;p&gt;Due to a screwup at a domain registrar (not godaddy -- more in another post), I decided to move my blog to a new domain: &lt;a href="http://mjeaton.net"&gt;http://mjeaton.net&lt;/a&gt;!  Please let me know if you find any issues.&lt;/p&gt;
&lt;p&gt;&lt;strike&gt;The old feed is hosed, but will hopefully come back when the registrar pulls their head out of their ass. :-\&lt;/strike&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://feeds.feedburner.com/mjeaton"&gt;new feed&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Update: 12/14/2008 @ 8:01 pm (Eastern): Old feed is up.&lt;/p&gt;&lt;img src="http://mjeaton.net/blog/aggbug/3373.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=7x26Vs9g"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=4ewDelTa"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?i=4ewDelTa" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            <dc:creator>Michael Eaton</dc:creator>
            <guid>http://mjeaton.net/blog/archive/2008/12/14/blog-changes.aspx</guid>
            <pubDate>Sun, 14 Dec 2008 23:41:36 GMT</pubDate>
            <wfw:comment>http://mjeaton.net/blog/comments/3373.aspx</wfw:comment>
            <comments>http://mjeaton.net/blog/archive/2008/12/14/blog-changes.aspx#feedback</comments>
            <wfw:commentRss>http://mjeaton.net/blog/comments/commentRss/3373.aspx</wfw:commentRss>
            <trackback:ping>http://mjeaton.net/blog/services/trackbacks/3373.aspx</trackback:ping>
        </item>
        <item>
            <title>Twittering build status from cc.net</title>
            <category>.NET</category>
            <category>Consulting Stuff</category>
            <category>Databases</category>
            <category>Experience Counts</category>
            <category>Life</category>
            <category>Software in general</category>
            <link>http://mjeaton.net/blog/archive/2008/12/10/twittering-build-status-from-cc.net.aspx</link>
            <description>&lt;p&gt;A few weeks ago, for no other reason than I had a few minutes to spare, I decided to setup a new twitter account that would be used to report build status on one of my projects.  I initially wanted to post the build status to my primary twitter account, but after mentioning it in a &lt;a href="http://twitter.com/mjeaton/statuses/981616768"&gt;tweet&lt;/a&gt; (and receiving some negative feedback), I decided a separate account would be better.  After a quick search, I found &lt;a href="http://thomasfreudenberg.com/blog/archive/2007/06/17/twitter-publisher-for-cruisecontrol-net.aspx"&gt;this post&lt;/a&gt; by &lt;a href="http://thomasfreudenberg.com/blog/"&gt;Thomas Freudenberg&lt;/a&gt; which described exactly what I needed: a twitter build publisher for CruiseControl.NET.  I did find a couple others in my search, but none as simple as 'ccnet.TwitterPublisher.plugin'.&lt;/p&gt;  &lt;p&gt;After downloading the source, building it, copying the required assembly to my ccnet folder and adding the relevant section to my ccnet.config file, I was up and running.  I realized pretty quickly that I'd need to make some changes because out of the box, the tweet contains the project name and a link back to the ccnet dashboard.  Since this is tied to a client project I'm working on, all I really wanted to display was "build was successful" or "build failed".  If this was for a more public project, I'd definitely leave those other pieces of information in place.  I would like to add more information to the tweet, but I haven't quite figured out how to get the information I want.  For example, I'd love for the tweet to include # tests run / # tests passed.&lt;/p&gt;  &lt;p&gt;Changing the code was actually really simple and if people care, I can post my changes. :-)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/mjeatonBuild"&gt;My build status twitter account&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Anyway, I've found that I'm definitely more careful before commit's because the last thing I want is to see "build failed" come across on twitter. :-)&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:4c57830e-f111-4dff-b24e-4bf5fbc81501" 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/twitter" rel="tag"&gt;twitter&lt;/a&gt;,&lt;a href="http://technorati.com/tags/cruisecontrol.net" rel="tag"&gt;cruisecontrol.net&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ci" rel="tag"&gt;ci&lt;/a&gt;,&lt;a href="http://technorati.com/tags/continuous%20integration" rel="tag"&gt;continuous integration&lt;/a&gt;,&lt;a href="http://technorati.com/tags/build" rel="tag"&gt;build&lt;/a&gt;&lt;/div&gt;&lt;img src="http://mjeaton.net/blog/aggbug/3372.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=yGa9TSd9"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=HQ6Tp64n"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?i=HQ6Tp64n" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            <dc:creator>Michael Eaton</dc:creator>
            <guid>http://mjeaton.net/blog/archive/2008/12/10/twittering-build-status-from-cc.net.aspx</guid>
            <pubDate>Thu, 11 Dec 2008 02:40:36 GMT</pubDate>
            <wfw:comment>http://mjeaton.net/blog/comments/3372.aspx</wfw:comment>
            <comments>http://mjeaton.net/blog/archive/2008/12/10/twittering-build-status-from-cc.net.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://mjeaton.net/blog/comments/commentRss/3372.aspx</wfw:commentRss>
            <trackback:ping>http://mjeaton.net/blog/services/trackbacks/3372.aspx</trackback:ping>
        </item>
        <item>
            <title>Balsamiq rocks!</title>
            <category>.NET</category>
            <category>Consulting Stuff</category>
            <category>Experience Counts</category>
            <category>Software in general</category>
            <link>http://mjeaton.net/blog/archive/2008/12/03/balsamiq-rocks.aspx</link>
            <description>&lt;p&gt;I've heard about &lt;a href="http://www.balsamiq.com/products/mockups"&gt;Balsamiq Mockups&lt;/a&gt;, but after seeing this &lt;a href="http://twitter.com/RossCode/status/1034506287"&gt;tweet&lt;/a&gt; ("&lt;em&gt;FYI, Balsamiq rocks for UI mock ups. Thanks @&lt;/em&gt;&lt;a href="http://twitter.com/joeybeninghove"&gt;&lt;em&gt;joeybeninghove&lt;/em&gt;&lt;/a&gt;&lt;em&gt; for showing it to me!&lt;/em&gt;") by &lt;a href="http://rosscode.com/blog/index.php"&gt;Joel&lt;/a&gt;, I had to take a look.&lt;/p&gt;  &lt;p&gt;I spent about 15 minutes using it and love it!  I was in analysis paralysis last night and needed to break out of it.  Basically, I created a screen that sucks - it's fugly and not intuitive at all and I needed to fix it.  Instead of hacking around in Visual Studio trying to figure out what I wanted to do, I hit the Balsamiq site and very quickly laid out what I think I want the screen to be.  The cool thing is that the output looks like I sketched it in pencil. :-)&lt;/p&gt;  &lt;p&gt;I've always been a big fan of pencil and paper for initial screen design because it helps me focus.  My problem with that method is that if I want to show anyone, I need to scan the paper and then email it -- this was no big deal up until my scanner died about a month ago. :-)  With Balsamiq, I can quickly and easily save the design to an image file.&lt;/p&gt;  &lt;p&gt;I plan on using over the next couple of weeks to produce some prototypes for another client.&lt;/p&gt;  &lt;p&gt;Check it out if you get some time!&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:3b1ddeba-3a12-44dc-96de-7b4cd29f68f3" 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/prototype" rel="tag"&gt;prototype&lt;/a&gt;,&lt;a href="http://technorati.com/tags/design" rel="tag"&gt;design&lt;/a&gt;,&lt;a href="http://technorati.com/tags/balsamiq" rel="tag"&gt;balsamiq&lt;/a&gt;,&lt;a href="http://technorati.com/tags/twitter" rel="tag"&gt;twitter&lt;/a&gt;&lt;/div&gt;&lt;img src="http://mjeaton.net/blog/aggbug/3371.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=VTNgrxPk"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=CawLwRIf"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?i=CawLwRIf" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            <dc:creator>Michael Eaton</dc:creator>
            <guid>http://mjeaton.net/blog/archive/2008/12/03/balsamiq-rocks.aspx</guid>
            <pubDate>Wed, 03 Dec 2008 13:49:54 GMT</pubDate>
            <wfw:comment>http://mjeaton.net/blog/comments/3371.aspx</wfw:comment>
            <comments>http://mjeaton.net/blog/archive/2008/12/03/balsamiq-rocks.aspx#feedback</comments>
            <wfw:commentRss>http://mjeaton.net/blog/comments/commentRss/3371.aspx</wfw:commentRss>
            <trackback:ping>http://mjeaton.net/blog/services/trackbacks/3371.aspx</trackback:ping>
        </item>
        <item>
            <title>Raleigh Code Camp - wrap-up</title>
            <category>.NET</category>
            <category>Consulting Stuff</category>
            <category>Databases</category>
            <category>Experience Counts</category>
            <category>Life</category>
            <category>Software in general</category>
            <link>http://mjeaton.net/blog/archive/2008/12/01/raleigh-code-camp---wrap-up.aspx</link>
            <description>&lt;p&gt;On Friday, November 14th, my family and I made the crazy 720 mile drive to Raleigh, North Carolina for the Code Camp.  We left around 5:30am and finally arrived at our hotel around 7pm.  The drive itself wasn't too bad until we hit some major fog somewhere in the southern part &lt;a title="100_1041" href="http://www.flickr.com/photos/26282292@N00/3056240602/"&gt;&lt;img style="margin: 0px 0px 0px 5px" height="180" alt="100_1041" src="http://static.flickr.com/3011/3056240602_a6ef37c3ce.jpg" width="240" align="right" border="0" /&gt;&lt;/a&gt;of West Virginia/northern part of North Carolina. &lt;/p&gt;  &lt;p&gt;After getting settled into our hotel, I headed to the speakers dinner where I hung out for a few hours with &lt;a href="http://infozerk.com/averyBlog"&gt;James&lt;/a&gt;, &lt;a href="http://www.codethinked.com/"&gt;Justin&lt;/a&gt;, &lt;a href="http://www.gotnet.biz/Blog/Default.aspx"&gt;Kevin&lt;/a&gt;, &lt;a href="http://telligenti.com/jaymedavis/"&gt;Jayme&lt;/a&gt;, &lt;a href="http://arcware.net/"&gt;Dave&lt;/a&gt;, &lt;a href="http://kohari.org/"&gt;Nate&lt;/a&gt;, &lt;a href="http://devlicio.us/blogs/derik_whittaker/"&gt;Derik&lt;/a&gt;, &lt;a href="http://www.dugaldwilson.com/"&gt;Dugald&lt;/a&gt; and many more super-smart developers.&lt;/p&gt;  &lt;p&gt;Nate picked me up Saturday morning for the short ride to the venue.  I skipped the keynote to check out the open spaces area and catch up with friends I haven't seen for awhile (&lt;a href="http://www.vinull.com/"&gt;Mike Neel&lt;/a&gt; and &lt;a href="http://www.coreyhaines.com/coreysramblings/"&gt;Corey&lt;/a&gt; come to mind).  Since I was in the 2nd time slot of the day and &lt;a href="http://twitter.com/alanstevens"&gt;Alan&lt;/a&gt; was giving his talking in the same room during the 1st time slot, I decided to hang out and see what he had to say about the DLR.  Due to &lt;a title="100_1046" href="http://www.flickr.com/photos/26282292@N00/3055407519/"&gt;&lt;img style="margin: 5px 5px 5px 0px" alt="100_1046" src="http://static.flickr.com/3222/3055407519_d352712bcf_m.jpg" align="left" border="0" /&gt;&lt;/a&gt;some hardware issues, he ended up giving his talk on someone else's system, so some of the demos weren't quite ready, but overall, it was an outstanding talk.  I still don't "get" what dynamic languages buy me, but I'm sure I'll figure it out at some point.&lt;/p&gt;  &lt;p&gt;My "Introduction to Castle ActiveRecord" talk went extremely well.  I had some excellent questions and it appears I inspired at least a few people to take a deeper look at Castle ActiveRecord.  Since that was the final event of the year for me, I'm going to find the time to screencast the session and post it.&lt;a title="100_1049" href="http://www.flickr.com/photos/26282292@N00/3055409185/"&gt;&lt;img style="margin: 0px 0px 5px 5px" alt="100_1049" src="http://static.flickr.com/3288/3055409185_f225ea06c8_m.jpg" align="right" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The open spaces turned out really well.  The venue itself kinda sucked and the open spaces room required some reconfiguration, but the topics were solid and the conversations were top-notch.  I was a bit bummed to see the event come to an end because we were involved in a very passionate discussion about software estimation.  After the give-aways, a group of us ended up at a small irish pub for dinner and drinks.  It was here that the mother of all "name drop" &lt;a title="100_1050" href="http://www.flickr.com/photos/26282292@N00/3056246048/"&gt;&lt;img style="margin: 5px 5px 5px 0px" alt="100_1050" src="http://static.flickr.com/3161/3056246048_1e61e3d89e_m.jpg" align="left" border="0" /&gt;&lt;/a&gt;events took place. ;-)  Between Alan and &lt;a href="http://rachelappel.com/"&gt;Rachel&lt;/a&gt;, I think I heard more names dropped than at all other events combined.  ;-)&lt;/p&gt;  &lt;p&gt;Around 9pm, a group of us headed over to Jayme's house where we talked, played some Xbox and hung out.  Good times and I really want to thank Jayme and his wife for allowing everyone to come over.  Since I knew I had a long drive the next day, Nate and I bailed around midnight.&lt;/p&gt;  &lt;p&gt;We left for home around 9:30 Sunday morning and arrived home around midnight.  If I attend the next Raleigh Code Camp, I'm going to make sure I extend the trip and extra day or two so I can actually explore the area a bit. :-)&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:007ab594-2728-439e-901e-ef5bee97fdbe" 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/speaking" rel="tag"&gt;speaking&lt;/a&gt;,&lt;a href="http://technorati.com/tags/raleigh" rel="tag"&gt;raleigh&lt;/a&gt;,&lt;a href="http://technorati.com/tags/code%20camp" rel="tag"&gt;code camp&lt;/a&gt;&lt;/div&gt;&lt;img src="http://mjeaton.net/blog/aggbug/3370.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=UsZjOK6h"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=rvJh2h6S"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?i=rvJh2h6S" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            <dc:creator>Michael Eaton</dc:creator>
            <guid>http://mjeaton.net/blog/archive/2008/12/01/raleigh-code-camp---wrap-up.aspx</guid>
            <pubDate>Mon, 01 Dec 2008 15:07:56 GMT</pubDate>
            <wfw:comment>http://mjeaton.net/blog/comments/3370.aspx</wfw:comment>
            <comments>http://mjeaton.net/blog/archive/2008/12/01/raleigh-code-camp---wrap-up.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://mjeaton.net/blog/comments/commentRss/3370.aspx</wfw:commentRss>
            <trackback:ping>http://mjeaton.net/blog/services/trackbacks/3370.aspx</trackback:ping>
        </item>
        <item>
            <title>Heading to N. Carolina for the Raleigh Code Camp</title>
            <category>.NET</category>
            <category>Consulting Stuff</category>
            <category>Databases</category>
            <category>Experience Counts</category>
            <category>Life</category>
            <category>Software in general</category>
            <link>http://mjeaton.net/blog/archive/2008/11/12/heading-to-n.-carolina-for-the-raleigh-code-camp.aspx</link>
            <description>&lt;p&gt;I'll be leaving Friday morning around 5am for the long drive to Raleigh.  The plan is to arrive around 5 or 6 and then hang out with friends for the evening.&lt;/p&gt;
&lt;p&gt;I'm speaking (I'll be giving my "Introduction to Castle ActiveRecord" talk) during the second time slot on Saturday and then plan on spending the rest of the time with &lt;a href="http://netcave.org/"&gt;Alan&lt;/a&gt;, &lt;a href="http://infozerk.com/averyBlog/"&gt;James&lt;/a&gt;, &lt;a href="http://kohari.org/"&gt;Nate&lt;/a&gt; and OMG, I can't forget &lt;a href="http://arcware.net"&gt;Dave&lt;/a&gt;, in the open spaces.&lt;/p&gt;
&lt;p&gt;Sunday will be spent driving back home, although I may attend the &lt;a href="http://infozerk.com/averyblog/announcing-shadowcamp/"&gt;Shadowcamp&lt;/a&gt; in the morning.&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:b7f6d752-97d4-403a-b931-dcb054ab7020" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/code%20camp"&gt;code camp&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/raleigh"&gt;raleigh&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/activerecord"&gt;activerecord&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/speaking"&gt;speaking&lt;/a&gt;&lt;/div&gt;&lt;img src="http://mjeaton.net/blog/aggbug/3369.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=yyWipn5V"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=DimmUwuc"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?i=DimmUwuc" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            <dc:creator>Michael Eaton</dc:creator>
            <guid>http://mjeaton.net/blog/archive/2008/11/12/heading-to-n.-carolina-for-the-raleigh-code-camp.aspx</guid>
            <pubDate>Wed, 12 Nov 2008 20:42:23 GMT</pubDate>
            <wfw:comment>http://mjeaton.net/blog/comments/3369.aspx</wfw:comment>
            <comments>http://mjeaton.net/blog/archive/2008/11/12/heading-to-n.-carolina-for-the-raleigh-code-camp.aspx#feedback</comments>
            <slash:comments>5</slash:comments>
            <wfw:commentRss>http://mjeaton.net/blog/comments/commentRss/3369.aspx</wfw:commentRss>
            <trackback:ping>http://mjeaton.net/blog/services/trackbacks/3369.aspx</trackback:ping>
        </item>
        <item>
            <title>Getting started with NUnit's RowTest</title>
            <category>.NET</category>
            <category>Consulting Stuff</category>
            <category>Databases</category>
            <category>Experience Counts</category>
            <category>Software in general</category>
            <link>http://mjeaton.net/blog/archive/2008/11/03/getting-started-with-nunits-rowtest.aspx</link>
            <description>&lt;p&gt;Maybe I've been living under a rock, but I just found out that the latest versions of &lt;a href="http://nunit.org/index.php"&gt;NUnit&lt;/a&gt; &lt;a href="http://nunit.org/index.php?p=releaseNotes&amp;amp;r=2.4.7"&gt;support&lt;/a&gt; [RowTest]!  Over the weekend, I was about to replace NUnit with mbUnit because I need [RowTest], but thankfully, after a bit of surfing, I found &lt;a href="http://www.davidhayden.com/blog/dave/archive/2007/12/21/NUnitGetsMbUnitsRowTestTestDrivenDevelopmentUnitTestingExcitement.aspx"&gt;this&lt;/a&gt; post by &lt;a href="http://www.davidhayden.com/blog.aspx"&gt;David Hayden&lt;/a&gt; (dated December 2007).  David's post described an add-in for NUnit that has since been rolled into NUnit proper.&lt;/p&gt;
&lt;p&gt;Step 1: &lt;a href="http://nunit.org/index.php?p=download"&gt;Download&lt;/a&gt; / install NUnit version 2.4.7 or newer.&lt;/p&gt;
&lt;p&gt;Step 2: Add a reference to NUnit.framework.dll and NUnit.framework.extensions.dll.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://mjeaton.net/blog/images/michaeleatonconsulting_com/blog/WindowsLiveWriter/GettingstartedwithNUnitsRowTest_129FC/nunit.references_6.png"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="84" alt="nunit.references" width="238" border="0" src="/blog/images/michaeleatonconsulting_com/blog/WindowsLiveWriter/GettingstartedwithNUnitsRowTest_129FC/nunit.references_thumb_2.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Step 3: Add using NUnit.Framework and using NUnit.Framework.Extensions to your test class.  I include SyntaxHelpers because I like using the .That(condition, Is.&amp;lt;foo&amp;gt;) syntax.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://mjeaton.net/blog/images/michaeleatonconsulting_com/blog/WindowsLiveWriter/GettingstartedwithNUnitsRowTest_129FC/nunit.using_2.png"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="56" alt="nunit.using" width="338" border="0" src="/blog/images/michaeleatonconsulting_com/blog/WindowsLiveWriter/GettingstartedwithNUnitsRowTest_129FC/nunit.using_thumb.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Step 4: Decorate your tests with [RowTest], add individual cases and add parameters to your test that match the data from the test cases.&lt;/p&gt;
&lt;pre class="csharpcode"&gt;[RowTest]
[Row(&lt;span class="str"&gt;"foo"&lt;/span&gt;, &lt;span class="kwrd"&gt;false&lt;/span&gt;, &lt;span class="kwrd"&gt;true&lt;/span&gt;)]
[Row(&lt;span class="str"&gt;""&lt;/span&gt;, &lt;span class="kwrd"&gt;false&lt;/span&gt;, &lt;span class="kwrd"&gt;false&lt;/span&gt;)]
[Row(&lt;span class="kwrd"&gt;null&lt;/span&gt;, &lt;span class="kwrd"&gt;false&lt;/span&gt;, &lt;span class="kwrd"&gt;false&lt;/span&gt;)]
[Row(&lt;span class="str"&gt;"___-__-____"&lt;/span&gt;, &lt;span class="kwrd"&gt;false&lt;/span&gt;, &lt;span class="kwrd"&gt;true&lt;/span&gt;)]
[Row(&lt;span class="str"&gt;"___-__-____"&lt;/span&gt;, &lt;span class="kwrd"&gt;true&lt;/span&gt;, &lt;span class="kwrd"&gt;false&lt;/span&gt;)]
&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; testRequiredFieldValidator(&lt;span class="kwrd"&gt;string&lt;/span&gt; data, &lt;span class="kwrd"&gt;bool&lt;/span&gt; ignoreChars, &lt;span class="kwrd"&gt;bool&lt;/span&gt; result)
{
    var rule = &lt;span class="kwrd"&gt;new&lt;/span&gt; RequiredFieldValidationRule(&lt;span class="str"&gt;"test field"&lt;/span&gt;);
    rule.IgnoreMaskCharacters = ignoreChars;
    ValidationResult temp = rule.Validate(data, CultureInfo.CurrentCulture);
    Assert.That(temp.IsValid, Is.EqualTo(result));
}&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;
&lt;p&gt;Step 5: Run :-)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://mjeaton.net/blog/images/michaeleatonconsulting_com/blog/WindowsLiveWriter/GettingstartedwithNUnitsRowTest_129FC/nunit.results.1_2.png"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="101" alt="nunit.results.1" width="326" border="0" src="/blog/images/michaeleatonconsulting_com/blog/WindowsLiveWriter/GettingstartedwithNUnitsRowTest_129FC/nunit.results.1_thumb.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://mjeaton.net/blog/images/michaeleatonconsulting_com/blog/WindowsLiveWriter/GettingstartedwithNUnitsRowTest_129FC/nunit.results.2_2.png"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="29" alt="nunit.results.2" width="451" border="0" src="/blog/images/michaeleatonconsulting_com/blog/WindowsLiveWriter/GettingstartedwithNUnitsRowTest_129FC/nunit.results.2_thumb.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Notes: I did have to download the a new version of TestDriven.net, but other than that, it was a pretty simple process.&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:9c97a231-44f8-403e-80e8-67f2813c8661" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/nunit"&gt;nunit&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/unit%20test"&gt;unit test&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/rowtest"&gt;rowtest&lt;/a&gt;&lt;/div&gt;&lt;img src="http://mjeaton.net/blog/aggbug/3368.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=eeD0SyYu"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=0AILBnUe"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?i=0AILBnUe" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            <dc:creator>Michael Eaton</dc:creator>
            <guid>http://mjeaton.net/blog/archive/2008/11/03/getting-started-with-nunits-rowtest.aspx</guid>
            <pubDate>Mon, 03 Nov 2008 13:00:41 GMT</pubDate>
            <wfw:comment>http://mjeaton.net/blog/comments/3368.aspx</wfw:comment>
            <comments>http://mjeaton.net/blog/archive/2008/11/03/getting-started-with-nunits-rowtest.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://mjeaton.net/blog/comments/commentRss/3368.aspx</wfw:commentRss>
            <trackback:ping>http://mjeaton.net/blog/services/trackbacks/3368.aspx</trackback:ping>
        </item>
        <item>
            <title>Ann Arbor Day of .NET 2008</title>
            <category>.NET</category>
            <category>Consulting Stuff</category>
            <category>Databases</category>
            <category>Experience Counts</category>
            <category>Games</category>
            <category>Hardware</category>
            <category>Life</category>
            <category>Politics</category>
            <category>Software in general</category>
            <link>http://mjeaton.net/blog/archive/2008/10/20/ann-arbor-day-of-.net-2008.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://www.flickr.com/photos/mjeaton/tags/aadodn"&gt;My pictures&lt;/a&gt; | &lt;a href="http://www.flickr.com/photos/sadukie/tags/aadodn"&gt;Sarah's pictures&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Another great &lt;a href="http://www.dayofdotnet.org/AnnArbor/Fall2008/"&gt;Ann Arbor Day of .NET&lt;/a&gt; is in the books.  &lt;/p&gt;
&lt;p&gt;While Ann Arbor is only a couple hours away, my family and I always make it a weekend away from home and this year was no different.  We pulled the kids out of school early and left town around 1pm.  We didn't feel too bad about pulling them out since we knew we were going to spend some of the afternoon at the &lt;a href="http://aahom.org/"&gt;Ann Arbor Hands On Museum&lt;/a&gt;.  After a nice, leisurely drive on &lt;a href="http://us12heritagetrail.org/"&gt;US-12&lt;/a&gt;, we managed to hit downtown Ann Arbor around 3pm. :-\  Ugh.  I love walking around downtown, but the traffic at that time of day was killer.  After 10 minutes of trying to find a parking spot, we finally scored a nice spot directly across from the museum.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://mjeaton.net/blog/images/michaeleatonconsulting_com/blog/WindowsLiveWriter/AnnArborDayof.NET2008_E0CE/100_0670.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 5px 5px 5px 0px; BORDER-RIGHT-WIDTH: 0px" height="184" alt="100_0670" width="244" align="left" border="0" src="/blog/images/michaeleatonconsulting_com/blog/WindowsLiveWriter/AnnArborDayof.NET2008_E0CE/100_0670_thumb.jpg" /&gt;&lt;/a&gt;My kids absolutely love the museum and this visit definitely did not disappoint.  :-)  Because of my work with the museum before and during the &lt;a href="http://www.annarborgivecamp.org/"&gt;Ann Arbor Give Camp&lt;/a&gt;, they were nice enough to let my family and I in for free.  While my kids were running around being crazy, I spent a few minutes with my primary contact from the Give Camp: Ann N.  During our conversation, I presented her with the check from "&lt;a href="http://mjeaton.net/blog/archive/2008/08/30/the-codestock--devlink-t-shirt-challenge-wrap-up.aspx"&gt;The Codestock / DevLink T-Shirt Challenge&lt;/a&gt;".  I had mentioned it to her a few weeks ago in email, but she had forgotten and was actually quite surprised. :-)&lt;/p&gt;
&lt;p&gt;After the museum, we headed to our hotel for dinner.  Shortly after dinner, as my wife and kids headed to the pool, &lt;a href="http://www.codinggeekette.com/"&gt;Sarah&lt;/a&gt; and I hooked up and drove to &lt;a href="http://blog.prokrams.com/"&gt;Mike Letterle's&lt;/a&gt; hotel to pick him up.  After a quick stop to drop his car off at a repair shop, the three of us headed to downtown Ann Arbor to meet up with &lt;a href="http://www.davidgiard.com/"&gt;Dave Giard&lt;/a&gt;, &lt;a title="100_0728" href="http://www.flickr.com/photos/26282292@N00/2955380615/"&gt;&lt;img style="MARGIN: 5px 0px 0px 5px" height="180" alt="100_0728" width="240" align="right" border="0" src="http://static.flickr.com/3289/2955380615_b829f8328d.jpg" /&gt;&lt;/a&gt; &lt;a href="http://nino.net/blog/default.aspx"&gt;Nino&lt;/a&gt;, &lt;a href="http://twitter.com/MattBrewer"&gt;Matt Brewer&lt;/a&gt; and &lt;a href="http://joewirtley.blogspot.com/"&gt;Joe Wirtley&lt;/a&gt;.  The original plan was for us to meet at &lt;a href="http://www.gratzirestaurant.com/pages/gratzi.html"&gt;Gratzi's&lt;/a&gt;, but that felt just a bit too "fancy" for us, so we bailed and headed a couple doors down to &lt;a href="http://www.conoroneills.com/"&gt;Conor O' Neills&lt;/a&gt;.  The service was slow, but that gave us more time to talk.  &lt;/p&gt;
&lt;p&gt;To wrap up the night, me, Dave, Matt, Nino and Mike sat in a nearby coffee shop and talked.  Good times. :-)  I wish I could do this more often.&lt;/p&gt;
&lt;p&gt;The next morning, I was up bright and early (wearing "The" Ratt t-shirt BTW) so I could catch a ride with Sarah (and pick Mike up as well).  Since Sarah and I were speaking in the first time slot of the day, we signed in and headed to our rooms for final preparation.&lt;/p&gt;
&lt;p&gt;Once again, I gave my "Introduction to Castle ActiveRecord" talk.  I think the talk went extremely well, although at one point, I realized I was moving too fast and had to slow the pace down a bit.  I had some really good questions both during and after the talk and hopefully I answered them satisfactorily. ;-)  (note: My plan is to screencast this talk in the near future and post it.) &lt;/p&gt;
&lt;p&gt;After my talk, I hit the speaker room to meet up with my friend &lt;a href="http://twitter.com/ChrisRoland"&gt;Chris&lt;/a&gt;.  Chris was preparing to give his very first talk EVER and I wanted to see what I could to help him during his final preparation.  He was speaking in the final time slot of the &lt;a title="Chris Roland and Mike Eaton" href="http://www.flickr.com/photos/49034219@N00/2954954255/"&gt;&lt;img style="MARGIN: 5px 5px 0px 0px" height="180" alt="Chris Roland and Mike Eaton" width="240" align="left" border="0" src="http://static.flickr.com/3020/2954954255_04eb60ef5b.jpg" /&gt;&lt;/a&gt;day, and early in the day he seemed pretty at-ease.  I could see him get more nervous as the day progressed.  For a first-time speaker, I think he did pretty damn good.  Of course, I plan on talking to him this week to give him more feedback, but I really hope he continues to speak and develop this particular talk (SQL Server BI).&lt;/p&gt;
&lt;p&gt;I floated between sessions most of the day.  I caught part of &lt;a href="http://adanacp.spaces.live.com/"&gt;Carey Payette's&lt;/a&gt; WPF talk and actually came away with some ideas for the application I'm working on.  I also hit a little bit of &lt;a href="http://jrwren.wrenfam.com/blog/"&gt;Jay's&lt;/a&gt; Boo/DSL talk and &lt;a href="http://geekswithblogs.net/ignu/Default.aspx"&gt;Len's&lt;/a&gt; JQuery talk.   &lt;/p&gt;
&lt;p&gt;Lunch, thank God, was pizza and not box lunches. ;-)  My hatred of boxed lunches is pretty well known, so I was definitely happy to see something different.  As expected, the conversations during lunch were awesome.  After lunch, I ran into a friend and former co-worker (Vinay) and caught up with him.  He started a new job a few months ago and it sounds like he's having a great time.  It's definitely a step up from where he was and I was glad to see he made the right decision.&lt;/p&gt;
&lt;p&gt;I think the high-point of my day was a 30-minute conversation with &lt;a href="http://frazzleddad.blogspot.com/"&gt;Jim Holmes&lt;/a&gt;.  Jim is one of those guys that I'd love to talk to more often because I know I'd learn a ton from him. :-)  He definitely didn't disappoint on Saturday.  We talked about estimation and then I started rambling on about how difficult it is, as an independent developer, to keep track of all &lt;a title="100_0741" href="http://www.flickr.com/photos/26282292@N00/2956237918/"&gt;&lt;img style="MARGIN: 5px 0px 0px 5px" height="180" alt="100_0741" width="240" align="right" border="0" src="http://static.flickr.com/3037/2956237918_78d98cd724.jpg" /&gt;&lt;/a&gt; the tasks from multiple clients/multiple projects without using multiple applications.  Jim had some great ideas that I hope to pursue in the very near future (I'll try to blog about them).&lt;/p&gt;
&lt;p&gt;I was really glad to see that &lt;a href="http://www.alanbarber.org/"&gt;Alan Barber&lt;/a&gt; made the trip up from Bowling Green.  Unfortunately, he had to leave right after the giveaways so I didn't get as much time to talk to him as I would have liked. Hopefully he had fun at the Halloween party he left us for. ;-)&lt;/p&gt;
&lt;p&gt;After the end-of-day giveaways, we all headed to a local sports bar where we ate, drank, played pool  and talked for a few hours.  A huge thanks to &lt;a href="http://www.us.sogeti.com/"&gt;Sogeti&lt;/a&gt; for picking up the tab for the after-party!&lt;/p&gt;
&lt;p&gt;It was great seeing all my friends again...&lt;a href="http://blog.mrdaveredding.net/"&gt;Dave&lt;/a&gt;, &lt;a href="http://www.danrigsby.com/blog/"&gt;Dan&lt;/a&gt;, &lt;a href="http://twitter.com/dotnetrockstar"&gt;John&lt;/a&gt;, &lt;a href="http://jasonfollas.com/blog/"&gt;Jason&lt;/a&gt;, &lt;a href="http://twitter.com/jayharris"&gt;Jay&lt;/a&gt;, &lt;a href="http://twitter.com/jmcw"&gt;Jeff&lt;/a&gt;, &lt;a href="http://twitter.com/MartyAdams"&gt;Marty&lt;/a&gt;, &lt;a href="http://twitter.com/jbkazoo"&gt;John&lt;/a&gt;, &lt;a href="http://tabletumlnews.powerblogs.com/"&gt;Martin&lt;/a&gt;, &lt;a href="http://markegilbert.wordpress.com/"&gt;Mark&lt;/a&gt;, &lt;a href="http://blog.cloudsocket.com"&gt;Chris&lt;/a&gt;...god the list goes on, so if I missed you, cut me some slack. ;-)  &lt;/p&gt;
&lt;p&gt;The organizers did a great job this year (again) and I can't wait until next year!&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:abea2916-40e8-4c59-904d-7f12362920a2" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/ann%20arbor"&gt;ann arbor&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/aadodn"&gt;aadodn&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/day%20of%20.net"&gt;day of .net&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/speaking"&gt;speaking&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/castle%20activerecord"&gt;castle activerecord&lt;/a&gt;&lt;/div&gt;&lt;img src="http://mjeaton.net/blog/aggbug/3367.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=BeqSK22e"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=dxkel8x3"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?i=dxkel8x3" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            <dc:creator>Michael Eaton</dc:creator>
            <guid>http://mjeaton.net/blog/archive/2008/10/20/ann-arbor-day-of-.net-2008.aspx</guid>
            <pubDate>Mon, 20 Oct 2008 12:58:47 GMT</pubDate>
            <wfw:comment>http://mjeaton.net/blog/comments/3367.aspx</wfw:comment>
            <comments>http://mjeaton.net/blog/archive/2008/10/20/ann-arbor-day-of-.net-2008.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://mjeaton.net/blog/comments/commentRss/3367.aspx</wfw:commentRss>
            <trackback:ping>http://mjeaton.net/blog/services/trackbacks/3367.aspx</trackback:ping>
        </item>
        <item>
            <title>Project: re-writing a VB6 app using .NET / WPF</title>
            <category>.NET</category>
            <category>Consulting Stuff</category>
            <category>Databases</category>
            <category>Experience Counts</category>
            <category>Life</category>
            <category>Software in general</category>
            <link>http://mjeaton.net/blog/archive/2008/10/13/project-re-writing-a-vb6-app-using-.net--wpf.aspx</link>
            <description>&lt;p&gt;As I mentioned in a &lt;a href="http://mjeaton.net/blog/archive/2008/10/01/what-ive-been-working-on.aspx"&gt;previous post&lt;/a&gt;, on June 1, I started a new project that entails re-writing a &lt;a href="http://en.wikipedia.org/wiki/Visual_Basic"&gt;VB6&lt;/a&gt; desktop application.  I actually led the team in 2000 that wrote the original VB6 application, so I'm excited to be the one that's re-writing the application.  I wanted to give a little more detail about the project and some of the things I'm doing.&lt;/p&gt;
&lt;p&gt;The original application took myself and 3-4 other developers about 6 months to deliver back in mid-2000.  The consulting firm I was working for at the time had a "process" and it was called &lt;a href="http://en.wikipedia.org/wiki/Waterfall_model"&gt;Waterfall&lt;/a&gt;. ;-)  We spent weeks gathering requirements, a few more weeks on a "&lt;a href="http://en.wikipedia.org/wiki/Big_Design_Up_Front"&gt;BDUF&lt;/a&gt;" (big design up front) before we finally got to writing code.  In the end, we generated a huge stack of paper that was looked at once and then ignored for the remainder of the project.&lt;/p&gt;
&lt;p&gt;At the time, we followed Microsoft's guidance for creating client-server desktop applications (aka &lt;a href="http://en.wikipedia.org/wiki/Windows_DNA"&gt;Windows DNA&lt;/a&gt;).  The user interface wasn't necessarily thin, but it wasn't exactly thick either.  It called into our business objects which, at the time of rollout, were hosted in &lt;a href="http://en.wikipedia.org/wiki/Component_Object_Model#COM.2B"&gt;Component Services (COM+).&lt;/a&gt;  Over the years (while another consultant was maintaining the application), it was decided that COM+ was unnecessary, so the business logic was removed from Component Services and re-located to each workstation that runs the application (currently  6-8 systems).&lt;/p&gt;
&lt;p&gt;Besides that change (and a couple other minor enhancements), the application has remained pretty much untouched since we rolled it out in October 2000.  Even with 8-years of data, the application remains very snappy and stable.  There is one issue that appears at "random" times, but I think it's a display driver issue and not an application problem.  The end-users (most of whom were there when we developed the original application) are still happy, but are also looking forward to some enhancements.&lt;/p&gt;
&lt;p&gt;As I mentioned in my previous post, I decided to go with C#/WPF.  This decision was made with input from my client and it was based on a few things: first, we (the client and I) wanted to get away from the plain old battleship gray application and make some usability improvements.  I saw WPF as being a good way to do that.  Third, my plan is to re-use/share some of the &lt;a href="http://en.wikipedia.org/wiki/Extensible_Application_Markup_Language"&gt;Xaml&lt;/a&gt; between the main application and a Silverlight-based application.  Finally, it's 2008 and I wanted to work with some cutting-edge technology. :-)&lt;/p&gt;
&lt;p&gt;I've done a couple walkthroughs with some early prototypes and they seem to like it.  Time will tell of course.  I'm hoping to get a version on their desks soon and then get into the rhythm of releases every 2 weeks.  I want to reduce the amount of manual work they do as well as eliminate the work-arounds they've come up with over the years.  This is harder than it sounds because these particular users consider these things (work arounds, etc.) "normal".&lt;/p&gt;
&lt;p&gt;Overall, I find this project to be really fun and exciting.  My next post will talk about some of the tools and technologies I'm using outside of WPF/C#.&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:324df18e-ca9d-402a-81c6-384ba64490cb" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/consulting"&gt;consulting&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/wpf"&gt;wpf&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/c#"&gt;c#&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/microsoft"&gt;microsoft&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/sql"&gt;sql&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/waterfall"&gt;waterfall&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/xaml"&gt;xaml&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/vb6"&gt;vb6&lt;/a&gt;&lt;/div&gt;&lt;img src="http://mjeaton.net/blog/aggbug/3366.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=AqYAzB7o"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=u6ugwuls"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?i=u6ugwuls" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            <dc:creator>Michael Eaton</dc:creator>
            <guid>http://mjeaton.net/blog/archive/2008/10/13/project-re-writing-a-vb6-app-using-.net--wpf.aspx</guid>
            <pubDate>Mon, 13 Oct 2008 12:02:44 GMT</pubDate>
            <wfw:comment>http://mjeaton.net/blog/comments/3366.aspx</wfw:comment>
            <comments>http://mjeaton.net/blog/archive/2008/10/13/project-re-writing-a-vb6-app-using-.net--wpf.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://mjeaton.net/blog/comments/commentRss/3366.aspx</wfw:commentRss>
            <trackback:ping>http://mjeaton.net/blog/services/trackbacks/3366.aspx</trackback:ping>
        </item>
        <item>
            <title>Recent and upcoming events</title>
            <category>.NET</category>
            <category>Consulting Stuff</category>
            <category>Databases</category>
            <category>Experience Counts</category>
            <category>Life</category>
            <category>Software in general</category>
            <link>http://mjeaton.net/blog/archive/2008/10/06/recent-and-upcoming-events.aspx</link>
            <description>&lt;p&gt;I recently spoke at two user groups: &lt;a href="http://www.wmdotnet.org/"&gt;The West Michigan .Net Users Group&lt;/a&gt; in Grand Rapids and the &lt;a href="http://www.devmi.org/Pages/default.aspx"&gt;Microsoft Developers of Southwest Michigan&lt;/a&gt; group in Kalamazoo.&lt;/p&gt;  &lt;p&gt;On &lt;a href="http://www.wmdotnet.org/Meetings/MeetingInformation/tabid/61/Default.aspx"&gt;September 9th&lt;/a&gt;, I gave my "Introduction to Castle ActiveRecord" talk for the West Michigan group.  I went to Grand Rapids early that day and had lunch with some friends (&lt;a href="http://twitter.com/steveschoon"&gt;Steve&lt;/a&gt;, &lt;a href="http://twitter.com/mattsonlyattack"&gt;Matt&lt;/a&gt; and &lt;a href="http://rosscode.com/blog/index.php"&gt;Joel&lt;/a&gt;).  I wish I could have talked to them all day, but since they had to get back to work, I ended up spending most of my afternoon at a Panera trying to get a reliable internet connection.&lt;/p&gt;  &lt;p&gt;That was my first time attending one of their user groups and I have to say, it was a nice experience.  The &lt;a href="http://www.watermarkcc.com/golf_contact.aspx"&gt;Watermark Country Club&lt;/a&gt; is a pretty nice venue.  The pizza was really good and it was nice to grab a drink before I gave my talk. ;-)  It felt strange having my old boss (Steve) in the audience, but beyond that the talk itself went pretty well.  My only complaint was that the projector could only do 800x600. :-\  That made some of my demos tough, but I got through it.  &lt;/p&gt;  &lt;p&gt;On &lt;a href="http://www.devmi.org/meetings/2008/Pages/2008_09_25.aspx"&gt;September 25&lt;/a&gt;, I opened up MDSM's 2008-2009 season with a brand new talk: ALT.NET, The Community and You.  I originally wanted to do a talk just on the community, but after talking to the group leader (Mark), I found out the group wanted to know about ALT.NET, so I decided to combine the two.  Actually, talking about alt.net was a great segue into the community in general.  &lt;/p&gt;  &lt;p&gt;The alt.net portion of the discussion talked about the history of the "movement", but I really tried to focus on the positives, especially from the standpoint of &lt;a href="http://codebetter.com/blogs/david_laribee/"&gt;David Laribee's&lt;/a&gt; &lt;a href="http://laribee.com/blog/2007/04/10/altnet/"&gt;original post&lt;/a&gt;.  I also talked about some of the principles and practices and then I jumped into how we as a community can drive change in the world of software development.  I finally talked about how each of us can help affect positive change within the larger community.  I enjoyed giving this talk and might work it into my rotation. :-)&lt;/p&gt;  &lt;p&gt;I'm speaking at the upcoming &lt;a href="http://www.dayofdotnet.org/AnnArbor/Fall2008/"&gt;Ann Arbor Day of .Net&lt;/a&gt; on October 18th.  This will cap off speaking in the heartland region for me this year, and once again, I'll be giving my "Introduction to Castle ActiveRecord" talk.  After the Ann Arbor event, I have a month of no events and then on November 15th I'll be attending the &lt;a href="http://www.codecamp.org/Default.aspx"&gt;Raleigh Code Camp&lt;/a&gt;.  :-)  Originally, I was going to this event to help &lt;a href="http://www.netcave.org/"&gt;Alan&lt;/a&gt; and &lt;a href="http://infozerk.com/averyblog/"&gt;James&lt;/a&gt; with the Open Spaces event, but James said I should submit to speak, so it looks like I'll also be giving my "Introduction to Castle ActiveRecord" talk one last time this year.&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:b85ba5bf-bc2c-4830-87d3-d0a3767050c1" 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/speaking" rel="tag"&gt;speaking&lt;/a&gt;,&lt;a href="http://technorati.com/tags/dodn" rel="tag"&gt;dodn&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ann%20arbor" rel="tag"&gt;ann arbor&lt;/a&gt;,&lt;a href="http://technorati.com/tags/raleigh" rel="tag"&gt;raleigh&lt;/a&gt;,&lt;a href="http://technorati.com/tags/code%20camp" rel="tag"&gt;code camp&lt;/a&gt;,&lt;a href="http://technorati.com/tags/west%20michigan" rel="tag"&gt;west michigan&lt;/a&gt;,&lt;a href="http://technorati.com/tags/user%20group" rel="tag"&gt;user group&lt;/a&gt;,&lt;a href="http://technorati.com/tags/mdsm" rel="tag"&gt;mdsm&lt;/a&gt;,&lt;a href="http://technorati.com/tags/kalamazoo" rel="tag"&gt;kalamazoo&lt;/a&gt;,&lt;a href="http://technorati.com/tags/southwest%20michigan" rel="tag"&gt;southwest michigan&lt;/a&gt;,&lt;a href="http://technorati.com/tags/grand%20rapids" rel="tag"&gt;grand rapids&lt;/a&gt;&lt;/div&gt;&lt;img src="http://mjeaton.net/blog/aggbug/3365.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=gBOv4WmC"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=y1cLa2RA"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?i=y1cLa2RA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            <dc:creator>Michael Eaton</dc:creator>
            <guid>http://mjeaton.net/blog/archive/2008/10/06/recent-and-upcoming-events.aspx</guid>
            <pubDate>Mon, 06 Oct 2008 11:25:59 GMT</pubDate>
            <wfw:comment>http://mjeaton.net/blog/comments/3365.aspx</wfw:comment>
            <comments>http://mjeaton.net/blog/archive/2008/10/06/recent-and-upcoming-events.aspx#feedback</comments>
            <wfw:commentRss>http://mjeaton.net/blog/comments/commentRss/3365.aspx</wfw:commentRss>
            <trackback:ping>http://mjeaton.net/blog/services/trackbacks/3365.aspx</trackback:ping>
        </item>
        <item>
            <title>Maintenance project: baby steps</title>
            <category>.NET</category>
            <category>Consulting Stuff</category>
            <category>Databases</category>
            <category>Experience Counts</category>
            <category>Life</category>
            <category>Software in general</category>
            <link>http://mjeaton.net/blog/archive/2008/10/02/maintenance-project-baby-steps.aspx</link>
            <description>&lt;p&gt;&lt;em&gt;This is the first in what I hope will be a series of posts about my attempts to make this particular project better.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;A couple months ago, I took over a pretty cool C#/WinForms project that deals with RFID scanning.  I was given the green light to refactor the application as needed, which is awesome because the application really needs it. :-)  I've been working on a new feature which consists of several data-entry screens and three reports.  The screens and reports are all hitting about a dozen new tables I added to the system.&lt;/p&gt;  &lt;p&gt;One of the requirements of the application is that as new versions are installed at customer sites, it should be able to handle updating the local databases without the use of external scripts or setup applications.  Basically they want to be able to send an updated .exe and application .dll to the customer, have them run it and know that the local database schema has been updated (if needed).  While I have my own opinions on this, there are bigger fish to fry, so I decided to follow the existing method for database updates. &lt;/p&gt;  &lt;p&gt;When I first dug into the code, I saw many, many methods that had hard-coded SQL in them for creating new database objects, altering existing objects, etc.  Ugh.  Here's an example of what I'm talking about:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;string&lt;/span&gt; sqlCmd = &lt;span class="str"&gt;"create table Accounts ("&lt;/span&gt; +
    &lt;span class="str"&gt;"AccountID varchar(50) NOT NULL PRIMARY KEY,"&lt;/span&gt; +
    &lt;span class="str"&gt;"ClientName varchar(50) NULL)"&lt;/span&gt;;

SqlCommand dcmd;
&lt;span class="kwrd"&gt;int&lt;/span&gt; rows;

dcmd = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlCommand(sqlCmd, dc);

&lt;span class="kwrd"&gt;try&lt;/span&gt;
{
    rows = (&lt;span class="kwrd"&gt;int&lt;/span&gt;)dcmd.ExecuteNonQuery();
}
&lt;span class="kwrd"&gt;catch&lt;/span&gt; (Exception e)
{
    &lt;span class="rem"&gt;// log the exception&lt;/span&gt;
}&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre&gt; &lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Ok, now there are obviously more problems here than the hard-coded SQL, but that's not the point of this post. :-)&lt;/p&gt;

&lt;p&gt;When the application starts, it connects to the database and checks the "VerInfo" table.  It grabs the "current" database version from this table and then executes "upgrade" code (like the code above).  It is smart enough to perform all the upgrades it needs in order to become completely current.&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; CheckToUpgrade()
{
    &lt;span class="kwrd"&gt;int&lt;/span&gt; version = GetDbVersion();

    &lt;span class="kwrd"&gt;if&lt;/span&gt; (version &amp;lt;= 102)
    {
    DbTo103();
    SetDbVersion(103, DateTime.Parse(&lt;span class="str"&gt;"6-1-2007 12:00:00 PM"&lt;/span&gt;), &lt;span class="str"&gt;"Added Accounts Table"&lt;/span&gt;);
    version = 103;
    }

    &lt;span class="kwrd"&gt;if&lt;/span&gt; (version &amp;lt;= 103)
    {
    DbTo104();
    SetDbVersion(104, DateTime.Parse(&lt;span class="str"&gt;"6-19-2007 12:00:00 PM"&lt;/span&gt;), &lt;span class="str"&gt;"Added AccountID/ClientName field to Synch Table"&lt;/span&gt;);
    version = 104;
    }

    &lt;span class="kwrd"&gt;if&lt;/span&gt; (version &amp;lt;= 104)
    {
    DbTo105();
    SetDbVersion(105, DateTime.Parse(&lt;span class="str"&gt;"6-21-2007 12:00:00 PM"&lt;/span&gt;), &lt;span class="str"&gt;"Added SyncLog table"&lt;/span&gt;);
    version = 105;
    }

    &lt;span class="kwrd"&gt;if&lt;/span&gt; (version &amp;lt;= 105)
    {
    DbTo106();
    SetDbVersion(106, DateTime.Parse(&lt;span class="str"&gt;"9-16-2008 12:00:00 PM"&lt;/span&gt;), &lt;span class="str"&gt;"Added several new tables table to support Admin station."&lt;/span&gt;);
    version = 106;
    }
}&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[


.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;

&lt;p&gt;In the whole scheme of things, NOT the way I would have approached this particular problem, BUT I also need to work within the constraints of this client (and their clients).  They do NOT want external scripts that have to be manually executed.  Ok, I'm fine with that.  The application also doesn't have a setup because they want to easily do x-copy installs.  &lt;/p&gt;

&lt;p&gt;Fine.  So, my solution to this particular problem (the hard-coding of SQL statements in the code) was to:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Take my SQL scripts that I already generate for checking in to svn and add them to my project as embedded resources.  This gets me away from hard-coding the SQL (and worrying about proper escaping, quote matching ,etc.) and allows me to easily change the scripts (either by hand or by modifying the objects in the database and re-scripting from the database).  It also allows me to do more such as checking to see if the object exists within the script itself.  As one of my reviewers pointed out, this is still "hard-coding", but honestly, isn't this better than hard-coding the actual "create" and "alter" statements? :-) &lt;/li&gt;

  &lt;li&gt;I created a method named "ExecuteSqlUsingSMOFromEmbeddedResource(string resourceName) and used SMO to execute the embedded scripts.  I used SMO (which was already referenced in the project) so I wouldn't have to worry about stripping "GO" statements from the scripts.  Yea, the method name is a bit verbose, but I'd rather see a long name like that than "execSQL".  I wanted to make it clear exactly what I was doing to any other devs that look at this code. :-) &lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; ExecuteSqlUsingSMOFromResource(&lt;span class="kwrd"&gt;string&lt;/span&gt; resourceName)
{
    SqlConnection connection = &lt;span class="kwrd"&gt;this&lt;/span&gt;.dc; 
    Microsoft.SqlServer.Management.Smo.Server server = &lt;span class="kwrd"&gt;new&lt;/span&gt; Microsoft.SqlServer.Management.Smo.Server(&lt;span class="kwrd"&gt;new&lt;/span&gt; ServerConnection(connection));
    &lt;span class="kwrd"&gt;if&lt;/span&gt; (server != &lt;span class="kwrd"&gt;null&lt;/span&gt;)
    {
        &lt;span class="kwrd"&gt;using&lt;/span&gt; (StreamReader s = &lt;span class="kwrd"&gt;new&lt;/span&gt; StreamReader(&lt;span class="kwrd"&gt;this&lt;/span&gt;.GetType().Assembly.GetManifestResourceStream(resourceName)))
        {
             &lt;span class="kwrd"&gt;string&lt;/span&gt; createScript;
             createScript = s.ReadToEnd();
             server.ConnectionContext.ExecuteNonQuery(createScript);
        }
    }
}&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;

&lt;p&gt;I actually feel a lot more comfortable with this solution.  I have control over the scripts, and if/when a table/object change is needed, I can make them in one place, script them out and call it good.  As for dependencies...well, right now I'm simply making sure objects are created in a specific order and then applying all indexes, etc. at the end.  It works well for my very &lt;em&gt;limited&lt;/em&gt; scenario.&lt;/p&gt;

&lt;p&gt;So, what do you think?  Good idea?  Is there a better way?  One of my reviewers mentioned &lt;a href="http://code.google.com/p/migratordotnet/"&gt;migrator.net&lt;/a&gt; as an alternative, so I might look into that for future revisions.  Another mentioned a &lt;a href="http://www.red-gate.com/products/SQL_Compare/index.htm"&gt;tool&lt;/a&gt; from &lt;a href="http://www.red-gate.com/index.htm"&gt;Red Gate&lt;/a&gt;.  As the title of this post suggests, my solution is a bit better than the original, &lt;em&gt;but it can still be improved&lt;/em&gt;.  It is a &lt;strong&gt;baby step&lt;/strong&gt; toward a &lt;strong&gt;better, more robust solution&lt;/strong&gt;.  What that final solution is remains to be seen. :-)&lt;/p&gt;

&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:162aee55-27fd-4c67-8f63-33e4a232464d" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/winforms" rel="tag"&gt;winforms&lt;/a&gt;,&lt;a href="http://technorati.com/tags/refactoring" rel="tag"&gt;refactoring&lt;/a&gt;,&lt;a href="http://technorati.com/tags/smo" rel="tag"&gt;smo&lt;/a&gt;,&lt;a href="http://technorati.com/tags/sql" rel="tag"&gt;sql&lt;/a&gt;,&lt;a href="http://technorati.com/tags/consulting" rel="tag"&gt;consulting&lt;/a&gt;&lt;/div&gt;&lt;img src="http://mjeaton.net/blog/aggbug/3364.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=SMxoiIxt"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=jO99sY2X"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?i=jO99sY2X" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            <dc:creator>Michael Eaton</dc:creator>
            <guid>http://mjeaton.net/blog/archive/2008/10/02/maintenance-project-baby-steps.aspx</guid>
            <pubDate>Thu, 02 Oct 2008 12:36:02 GMT</pubDate>
            <wfw:comment>http://mjeaton.net/blog/comments/3364.aspx</wfw:comment>
            <comments>http://mjeaton.net/blog/archive/2008/10/02/maintenance-project-baby-steps.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://mjeaton.net/blog/comments/commentRss/3364.aspx</wfw:commentRss>
            <trackback:ping>http://mjeaton.net/blog/services/trackbacks/3364.aspx</trackback:ping>
        </item>
        <item>
            <title>What I've been working on</title>
            <category>.NET</category>
            <category>Consulting Stuff</category>
            <category>Databases</category>
            <category>Experience Counts</category>
            <category>Hardware</category>
            <category>Life</category>
            <category>Software in general</category>
            <link>http://mjeaton.net/blog/archive/2008/10/01/what-ive-been-working-on.aspx</link>
            <description>&lt;p&gt;Right around the first of June, I started a new project.  This is one that's been in the pipeline since last September or October.  After submitting a proposal near the end of November 2007, final approval was given near the middle of May and the official kick-off was June 1st (although our kick-off meeting didn't actually occur until June 3rd).  The project itself is pretty cool; it's a re-write of a VB6 application that I worked on in 2000.  When I led that team back in 2000, I never imagined I'd be re-writing the application 8 years later.  Cool stuff. :-)&lt;/p&gt;  &lt;p&gt;The application itself has been pretty stable and the users have no major complaints, BUT new features are being requested, the possibility of this software being used at other offices combined with the fact that VB6 is "end of life" means a re-write is required.  This rewrite is giving me the opportunity to bring this application into the 21st century, both with the technology I'll be using as well as the look and feel of the application.&lt;/p&gt;  &lt;p&gt;The decision has been made to forge ahead with C#/WPF and some ASP.NET thrown in for good measure. :-)  The cool thing is that I will be using the latest and greatest tools and technologies.  This means all the goodness that is .NET 3.5 combined with some really great open source tools.  My client has bought into the idea of improving the user interface /user experience and have given me a lot of leeway in that regard.  Early prototypes have met with good feedback and I'm moving along.&lt;/p&gt;  &lt;p&gt;On top of that, I picked up a part-time gig that consists of maintaining an existing application that does RFID scanning.  In the last 2 months, that maintenance has included adding a pretty big feature to the application.  It's been a learning experience, especially since some of my team mates are in Europe. :-)  The original developer on the project is long-gone and I've been given permission to refactor as needed.  One of the first things I did was introduce Castle ActiveRecord for use with all of the new tables I added (for the new feature).  This has meant a huge boost to my productivity.&lt;/p&gt;  &lt;p&gt;Anyway, this blog has been a bit quiet and I wanted to let everyone know why. :-)&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:8f02cc9b-cbfa-4847-b12a-b996e7ee5639" 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/consulting" rel="tag"&gt;consulting&lt;/a&gt;,&lt;a href="http://technorati.com/tags/wpf" rel="tag"&gt;wpf&lt;/a&gt;,&lt;a href="http://technorati.com/tags/.net" rel="tag"&gt;.net&lt;/a&gt;,&lt;a href="http://technorati.com/tags/c#" rel="tag"&gt;c#&lt;/a&gt;&lt;/div&gt;&lt;img src="http://mjeaton.net/blog/aggbug/3363.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=PO3zPe56"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.michaeleatonconsulting.com/~f/mjeaton?a=EEQDiUYD"&gt;&lt;img src="http://feeds.feedburner.com/~f/mjeaton?i=EEQDiUYD" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
            <dc:creator>Michael Eaton</dc:creator>
            <guid>http://mjeaton.net/blog/archive/2008/10/01/what-ive-been-working-on.aspx</guid>
            <pubDate>Wed, 01 Oct 2008 14:45:46 GMT</pubDate>
            <wfw:comment>http://mjeaton.net/blog/comments/3363.aspx</wfw:comment>
            <comments>http://mjeaton.net/blog/archive/2008/10/01/what-ive-been-working-on.aspx#feedback</comments>
            <wfw:commentRss>http://mjeaton.net/blog/comments/commentRss/3363.aspx</wfw:commentRss>
            <trackback:ping>http://mjeaton.net/blog/services/trackbacks/3363.aspx</trackback:ping>
        </item>
    </channel>
</rss>
