<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>Kelly T. Adams</title>
        <link>http://www.kellytadams.com/</link>
        <description>The right to offend is far more important than any right not to be offended.  -Rowan Atkinson</description>
        <language>en</language>
        <copyright>Copyright 2011</copyright>
        <lastBuildDate>Mon, 23 May 2011 09:25:27 -0800</lastBuildDate>
        <generator>http://www.sixapart.com/movabletype/</generator>
        <docs>http://www.rssboard.org/rss-specification</docs>
        
        <item>
            <title>Phew.  Crisis Averted!</title>
            <description><![CDATA[<p>Over the weekend I went to log into this blog to check some historical dates and was greeted with a big red scary Google &#8220;This Website Is Evil!&#8221; message.  The blog had been blacklisted for having links to malware.  It took me awhile to track down and delete the offending code, but I was able to resubmit the blog for testing later that day.  Today, I opened the Google Webmaster Tools to find this:
<img alt="No Malware.png" src="http://www.kellytadams.com/images/No%20Malware.png" width="516" height="232" class="mt-image-none" style="" /></p>

<p>Queue huge sigh of relief&#8230; ahhhhhhh.  I&#8217;m amazed at how quickly they turned that around.  It&#8217;s interesting to reflect on how little care and maintenance this blog has needed in more than eight years.  I guess I should count myself as lucky!</p>
]]></description>
            <link>http://www.kellytadams.com/mt-archives/2011/05/phew-crisis-averted.html</link>
            <guid>http://www.kellytadams.com/mt-archives/2011/05/phew-crisis-averted.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Geek Stuff</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">blog</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">malware</category>
            
            <pubDate>Mon, 23 May 2011 09:25:27 -0800</pubDate>
        </item>
        
        <item>
            <title>Home From Hawaii!</title>
            <description><![CDATA[<p>Here&#8217;s a slideshow of our pics from our trip:
<embed type="application/x-shockwave-flash" src="https://picasaweb.google.com/s/c/bin/slideshow.swf" width="400" height="267" flashvars="host=picasaweb.google.com&amp;hl=en_US&amp;feat=flashalbum&amp;RGB=0x000000&amp;feed=https%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fkelly.jakki.adams%2Falbumid%2F5585225102991138417%3Falt%3Drss%26kind%3Dphoto%26authkey%3DGv1sRgCPLn3enC4bv9Yw%26hl%3Den_US" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></p>

<p>We thoroughly enjoyed ourselves!  Many thanks to Leah, Matt and Bernie for their hospitality, and to Leann, Keilani and Kalona for being wonderful travel guides!</p>
]]></description>
            <link>http://www.kellytadams.com/mt-archives/2011/03/home-from-hawaii.html</link>
            <guid>http://www.kellytadams.com/mt-archives/2011/03/home-from-hawaii.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">News</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">hawaii</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">picasa</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">pictures</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">travel</category>
            
            <pubDate>Sat, 19 Mar 2011 10:23:01 -0800</pubDate>
        </item>
        
        <item>
            <title>Spam Comments</title>
            <description><![CDATA[<p>I&#8217;ve had to disable comments due to a large volume of spam comments trying to link-farm.  Contact me if you are unable to comment and we can work something out.  The internet is a wild and scary place!</p>
]]></description>
            <link>http://www.kellytadams.com/mt-archives/2011/02/spam-comments.html</link>
            <guid>http://www.kellytadams.com/mt-archives/2011/02/spam-comments.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">News</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">spam</category>
            
            <pubDate>Sat, 26 Feb 2011 15:55:00 -0800</pubDate>
        </item>
        
        <item>
            <title>Blog Upgraded To MT5</title>
            <description><![CDATA[<p>Today I upgraded the blog to the latest version from <a href="http://www.movabletype.org/">Movable Type</a>: MT 5.04. It was a pretty painless upgrade. That&#8217;s pretty much all I&#8217;ve got to say. Mostly, I just wanted to document this so I could have a reference point whenever I upgrade to MT6. Now back to your <a href="http://icanhascheezburger.com/2011/01/15/funny-pictures-choice-weapon-of-all-great-mobsters/">regularly scheduled internet</a>.</p>
]]></description>
            <link>http://www.kellytadams.com/mt-archives/2011/01/blog-upgraded-to-mt5.html</link>
            <guid>http://www.kellytadams.com/mt-archives/2011/01/blog-upgraded-to-mt5.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Geek Stuff</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">movabletype</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">mt4</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">mt5</category>
            
            <pubDate>Sat, 15 Jan 2011 16:24:31 -0800</pubDate>
        </item>
        
        <item>
            <title>Using TeamCity to Publish ClickOnce Packages to a Network Share</title>
            <description><![CDATA[<p>Recently at my job I had to figure out how to publish a Windows app with <a href="http://msdn.microsoft.com/en-us/library/t71a733d%28VS.80%29.aspx">ClickOnce deployments</a> from a centralized build server running <a href="http://www.jetbrains.com/teamcity/">JetBrains TeamCity</a>. This might be kind of an esoteric use for TeamCity, but I wanted to get my process down in my blog to perhaps save some future generations some time and Google searching.</p>

<p>Here&#8217;s a list of ingredients:</p>

<ol>
<li>A fresh TeamCity server running on Windows.</li>
<li>Visual Studio 2010 installed on the build server (with the MSBuild 4.0 bits).</li>
<li>The <a href="http://www.msbuildextensionpack.com/">MSBuild Extension pack</a>.</li>
<li>The <a href="http://msbuildtasks.tigris.org/">MSBuild Community Tasks</a>.</li>
</ol>

<p>I&#8217;m going to assume you already know how to set up your project in TeamCity and check out the sources from the version control software of your choosing.</p>

<p>The first build step I have is a little orthogonal to the ultimate deployment process, but I will include it because ultimately I wanted the Windows app and the ClickOnce deployment to all share the same version number that can be tied back to the TeamCity build. One thing to keep in mind is to call MSBuild in TeamCity with command line parameters of: /p:Configuration=Debug (if you are doing a debug build). This way I can have the compilation configuration type stamped in the binary&#8217;s metadata. <br />
Here is a sample MSBuild file called SetVersion.proj that I use:</p>

<pre class="code_xml">
&lt;Project DefaultTargets=&quot;SetVersion&quot; xmlns=&quot;http://schemas.microsoft.com/developer/msbuild/2003&quot;&gt;
  &lt;PropertyGroup&gt;
    &lt;Version&gt;$(BUILD_NUMBER)&lt;/Version&gt;
  &lt;/PropertyGroup&gt;
  &lt;Import Project=&quot;$(MSBuildExtensionsPath)\ExtensionPack\4.0\MSBuild.ExtensionPack.tasks&quot;/&gt;
  &lt;Target Name=&quot;SetVersion&quot;&gt;
    &lt;ItemGroup&gt;
      &lt;AssemblyInfoFilesFirst Include=&quot;$(MSBuildProjectDirectory)\FIRST_PROJECT\Properties\AssemblyInfo.cs&quot;/&gt;
      &lt;AssemblyInfoFilesSecond Include=&quot;$(MSBuildProjectDirectory)\SECOND_PROJECT\Properties\AssemblyInfo.cs&quot;/&gt;
    &lt;/ItemGroup&gt;
    &lt;AssemblyInfo AssemblyInfoFiles=&quot;@(AssemblyInfoFilesFirst)&quot;
                  AssemblyVersion=&quot;$(Version)&quot;
                  AssemblyFileVersion=&quot;$(Version)&quot;
                  AssemblyConfiguration=&quot;$(Configuration)&quot;
                  AssemblyCopyright=&quot;&#169; 2011 YOUR COMPANY. All rights reserved.&quot;
                  AssemblyProduct=&quot;First Project Name - $(Configuration)&quot;/&gt;
    &lt;AssemblyInfo AssemblyInfoFiles=&quot;@(AssemblyInfoFilesSecond)&quot;
                  AssemblyVersion=&quot;$(Version)&quot;
                  AssemblyFileVersion=&quot;$(Version)&quot;
                  AssemblyConfiguration=&quot;$(Configuration)&quot;
                  AssemblyCopyright=&quot;&#169; 2011 YOUR COMPANY. All rights reserved.&quot;
                  AssemblyProduct=&quot;Second Project - $(Configuration)&quot;/&gt;
  &lt;/Target&gt;
&lt;/Project&gt;
</pre>

<p>Note the use of the Extension Pack&#8217;s AssemblyInfo task which enabled me to set values in the AssemblyInfo.cs files prior to compilation.</p>

<p>Next, I needed to clean and build the sources and call the Publish target in the Winforms project. To do this, I used another MSBuild build step that targets a file called Publish.proj, listed below:</p>

<pre class="code_xml">
&lt;Project DefaultTargets=&quot;DoPublish&quot; ToolsVersion=&quot;4.0&quot; xmlns=&quot;http://schemas.microsoft.com/developer/msbuild/2003&quot;&gt;
  &lt;Import Project=&quot;$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets&quot;/&gt;
  &lt;PropertyGroup&gt;
    &lt;Version&gt;$(BUILD_NUMBER)&lt;/Version&gt;
    &lt;ClickOnceBuildDirectory&gt;$(MSBuildProjectDirectory)\PROJECT1\bin\$(Configuration)\app.publish&lt;/ClickOnceBuildDirectory&gt;
    &lt;ClickOnceInstallDirectory&gt;$(MSBuildProjectDirectory)\Publish&lt;/ClickOnceInstallDirectory&gt;
    &lt;ClickOnceHtmFileLocation&gt;$(MSBuildProjectDirectory)\Build\publish.htm&lt;/ClickOnceHtmFileLocation&gt;
    &lt;ClickOnceFinalLocation&gt;$(env_PublishUrl)&lt;/ClickOnceFinalLocation&gt;
  &lt;/PropertyGroup&gt;
  &lt;Target Name=&quot;DoPublish&quot;&gt;
    &lt;RemoveDir Directories=&quot;$(ClickOnceInstallDirectory)&quot; ContinueOnError=&quot;true&quot; /&gt;
    &lt;MSBuild Projects=&quot;MY SOLUTION FILE.sln&quot; Targets=&quot;Clean;Build&quot; Properties=&quot;ApplicationVersion=$(Version);Configuration=$(Configuration)&quot;/&gt;
    &lt;MSBuild Projects=&quot;PROJECT1\CLICKONCE PROJECT.csproj&quot; Targets=&quot;Publish&quot; Properties=&quot;ApplicationVersion=$(Version);Configuration=$(Configuration);InstallUrl=$(ClickOnceFinalLocation);PublishUrl=$(ClickOnceFinalLocation)&quot; /&gt;
    &lt;MakeDir Directories=&quot;$(ClickOnceInstallDirectory)&quot;/&gt;
    &lt;Copy SourceFiles=&quot;$(ClickOnceHtmFileLocation)&quot; DestinationFiles=&quot;$(ClickOnceInstallDirectory)\publish.htm&quot;/&gt;
    &lt;Exec Command=&quot;xcopy /E $(ClickOnceBuildDirectory) $(ClickOnceInstallDirectory)&quot; /&gt;
    &lt;FileUpdate Files=&quot;$(ClickOnceInstallDirectory)\publish.htm&quot;
                IgnoreCase=&quot;true&quot;
                Multiline=&quot;true&quot;
                Singleline=&quot;false&quot;
                Regex=&quot;{VERSION}&quot;
                ReplacementText=&quot;$(Version)&quot; /&gt;
  &lt;/Target&gt;
&lt;/Project&gt;
</pre>

<p>In order to get this to work, I needed to save a copy of the publish.htm file because this is not generated as part of the Publish target. In fact, it can only be generated when clicking Publish within the Visual Studio IDE. This is not acceptable for an automated build: bad Microsoft! No cookie for you! During the build, I needed to edit the publish.htm file so that I could tamper with it&#8217;s version number. I stored a copy of this file in my source tree in a Build folder.  Note also the $(env_PublishUrl) variable. This is coming from the build properties in TeamCity. The value is the full UNC location to the ultimate resting place of the ClickOnce deployment. MSBuild needs this because when it generates the ClickOnce manifest, it uses the fully qualified location (FTP/HTTP or file) so that all clients can refer to that location for future for updates.  Basically, MSBuild file does the following actions in order:</p>

<ol>
<li>Remove the place where it is going to assemble the ClickOnce package (in case an prior artifacts exist).</li>
<li>Do a Clean and Build on the entire solution to compile the the source code into binaries.</li>
<li>Call the Publish target within the WinForms project and set the InstallUrl and PublishUrl locations to be the final package location.</li>
<li>Create the local folder where it&#8217;s going to assemble the package.</li>
<li>Copy the publish.htm file from the source archive to the package location.</li>
<li>Use xcopy to copy the output of the Publish target that ends up in the bin\Debug\app.publish folder.</li>
<li>Use the FileUpdate task to put our version number in the right spots in the publish.htm file.</li>
</ol>

<p>BIG HAIRY CAVEAT: To make this work, I had to remove the following PropertyGroup properties from the WinForm&#8217;s .csproj file:</p>

<ul>
<li>MinimumRequiredVersion</li>
<li>PublishUrl</li>
<li>ApplicationRevision</li>
<li>ApplicationVersion</li>
</ul>

<p>Finally, I needed to move the resultant build package out onto a network share for consumption by clients. My build machine was not a member of the AD domain, so I had to manually map and delete network drives. Fortunately, the Command Line build step&#8217;s Custom Script mode handled this wonderfully.  Think of it as a way to write a batch file on the fly using environment variables set up during the build.</p>

<pre class="code_xml">
NET USE P: "%env.PublishShare%" /USER:domain\username **password**
ROBOCOPY "%system.teamcity.build.workingDir%\Publish" "P:%env.PublishFolder%" /MIR
NET USE P: /DELETE
</pre>

<p>Note how I referenced the build&#8217;s working directory to find the published package, and two different Environment Variables that were set as part of the build configuration. This allowed me to target different network shares and folder structures without changing the script or any other build artifacts.</p>

<p>This wasn&#8217;t a difficult solution to arrive at, but it did give me the opportunity to learn a lot about MSBuild and both the Extension Pack and the Community Tasks add-on packages. After trying to accomplish a similar task with Cruise Control.net and a WCF webservice project, and giving up; I have become a huge fan of TeamCity and it&#8217;s ease of use. It only took three or four hours to get a brand new Windows Server 2008 Standard x86 (a requirement for WCF packages with COM dependencies) virtual machine stood up with TeamCity installed and working. That includes all the Windows Updates!</p>

<p>Happy Automated Building!</p>
]]></description>
            <link>http://www.kellytadams.com/mt-archives/2011/01/using-teamcity-to-pu.html</link>
            <guid>http://www.kellytadams.com/mt-archives/2011/01/using-teamcity-to-pu.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Geek Stuff</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">clickonce</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">coding</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">deployment</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">msbuild</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">programming</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">software</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">teamcity</category>
            
            <pubDate>Fri, 07 Jan 2011 08:45:51 -0800</pubDate>
        </item>
        
        <item>
            <title>Christmas Letter 2010</title>
            <description><![CDATA[<div style="float: left; margin: 0.5em;"><a href="http://picasaweb.google.com/lh/photo/_uICoNfrZ3j85slXGdqFEYaEYvHzTFELDg_jDrgokGY?feat=embedwebsite"><img src="http://lh5.ggpht.com/_PHiEoN4OaAw/TQ0lDJgz5xI/AAAAAAAAOuc/PyVUk-NHnco/s288/claw.jpg" height="168" width="288" /></a></div>

<p>This year we are going to attempt to start a new Christmas tradition: the Christmas blog post.  As I write this, the snow is streaming down outside and the lovely Jakki is busy gluing things to other things for our entries in an Unfortunate Holiday Sweater contest.  Without further ado, here&#8217;s what we did in 2010:</p>

<p>After much review of Facebook and Twitter, it appears that 2010 started off with head colds for everyone, and braces for Jakki&#8217;s teeth.  The early part of the year contained much internet browsing and watching of TV.  Such is life in the Inland Northwest in the first quarter.</p>

<div style="float: left; margin: 0.5em;"><a href="http://picasaweb.google.com/lh/photo/ypnfYLpKfqD_708xrNa5ooaEYvHzTFELDg_jDrgokGY?feat=embedwebsite"><img src="http://lh6.ggpht.com/_PHiEoN4OaAw/TQ0aRguypdI/AAAAAAAAOsY/KGCYvS3lVHI/s144/IMG_0484.JPG" height="108" width="144" /></a></div>

<p>After thawing out, March came along and brought a fabulous gig for the band I&#8217;m with: <a href="http://www.facebook.com/home.php#!/pages/Fairmount-Chase/198724234772">Fairmount Chase</a>.  St. Patrick&#8217;s Day tends to bring out our most loyal and hardcore fans.  Fortunately, the more they drink, the better we sound.</p>

<div style="float: right; margin: 0.5em;"><a href="http://picasaweb.google.com/lh/photo/5-rBPEH2C78q1PqH-vLKpoaEYvHzTFELDg_jDrgokGY?feat=embedwebsite"><img src="http://lh4.ggpht.com/_PHiEoN4OaAw/TQ0aSe8xGPI/AAAAAAAAOsg/P4GJP6dqXOk/s144/005.JPG" height="108" width="144" /></a></div>

<p>As temperatures began to rise, camping became possible and we scooted up to <a href="http://parksandrecreation.idaho.gov/parks/farragut.aspx">Farragut State Park</a> along Lake Pend Oreille to celebrate Jakki&#8217;s birthday.  In attendance were our friends Chuck and Leann and some of her family.  After raining on the way up, the weather cooperated until we left.</p>

<div style="float: left; margin: 0.5em;"><a href="http://picasaweb.google.com/lh/photo/qJk4sbE3DkI-AhRSfyGhgIaEYvHzTFELDg_jDrgokGY?feat=embedwebsite"><img src="http://lh3.ggpht.com/_PHiEoN4OaAw/TQ0aZzLaX8I/AAAAAAAAOtQ/RpLql8MC8HQ/s144/022.JPG" height="108" width="144" /></a></div>

<p>In July, Lake Sullivan in the extreme northeast corner of Washington became our camping destination.  Bocephus (our Dodge truck) got a new canopy and was able to keep our gear dry despite rainy weather.</p>

<div style="float: right; margin: 0.5em;"><a href="http://picasaweb.google.com/lh/photo/7DeuC-l3mMQVjyyFiuYekoaEYvHzTFELDg_jDrgokGY?feat=embedwebsite"><img src="http://lh3.ggpht.com/_PHiEoN4OaAw/TQ0aWbsIPvI/AAAAAAAAOs4/wq44jLE1tNo/s144/025.JPG" height="108" width="144" /></a></div>

<p>To celebrate our anniversary in August, we returned to Packwood, Mt. Rainier and <a href="http://www.fs.fed.us/gpnf/mshnvm/">Mount St. Helens</a>; the site of our wedding five years prior.  We found the tree we were married in front of in the <a href="http://www.nps.gov/mora/planyourvisit/ohanapecosh.htm">Ohanapecosh</a> camp ground (not surprising, since that tree is probably 700 years old).</p>

<div style="float: left; margin: 0.5em;"><a href="http://picasaweb.google.com/lh/photo/pKXI9w-zIKbx47g102bayYaEYvHzTFELDg_jDrgokGY?feat=embedwebsite"><img src="http://lh3.ggpht.com/_PHiEoN4OaAw/TQ0aWyduQKI/AAAAAAAAOtA/GNFaGWB3qbw/s144/055.JPG" height="108" width="144" /></a></div>

<p>The last part of the summer was punctuated with two quick gigs for the band, one outdoors at a neighborhood block party in North Spokane, and one at O&#8217;Doherty&#8217;s; a staple in Fairmount Chase&#8217;s venue menu.</p>

<div style="float: right; margin: 0.5em;"><a href="http://picasaweb.google.com/lh/photo/d-xF5XIBFb3OcE3B3h7jfoaEYvHzTFELDg_jDrgokGY?feat=embedwebsite"><img src="http://lh6.ggpht.com/_PHiEoN4OaAw/TQ0aVoLeL6I/AAAAAAAAOsw/DyuoZ9Vyvng/s144/045.JPG" height="144" width="108" /></a></div>

<p>In early fall, we took a trip over to Seattle to visit Grandma Flo, Bob &amp; Linda, Jim &amp; Phyllis and Kelsey, and take in a Seahawks game at Quest Field with our friends Chuck &amp; Leann.  The family visit was wonderful, but the performance of the Seahawks left a lot to be desired (they lost 41-7 to the NY Giants).  We also managed to see some old friends: Charlotte, and His Holiness Gary (the padre who presided over our wedding), and Georgie &amp; Roger and their son Brian.</p>

<div style="float: left; margin: 0.5em;"><a href="http://picasaweb.google.com/lh/photo/QBViKMJ30LEEyokwWbrEOoaEYvHzTFELDg_jDrgokGY?feat=embedwebsite"><img src="http://lh4.ggpht.com/_PHiEoN4OaAw/TQ0aTuHQasI/AAAAAAAAOso/m6ZMQOQDKdU/s144/010.JPG" height="108" width="144" /></a></div>

<p>During fall, after much excitement with broken garage door springs, Jakki and I managed to get two new garage doors installed on the house.  This was fortunate, as the first snowfall of the season set an all-time record for the area in November.  Which, of course, brought out the Snow Robots.</p>

<div style="float: right; margin: 0.5em;"><a href="http://picasaweb.google.com/lh/photo/SKdYgnlcIfy2oQaWYtW2_IaEYvHzTFELDg_jDrgokGY?feat=embedwebsite"><img src="http://lh3.ggpht.com/_PHiEoN4OaAw/TQ0aazQSlWI/AAAAAAAAOtc/q3ekBw60yU4/s144/IMG_1867.JPG" height="108" width="144" /></a></div>

<p>This year has been heavily dosed with visits with family and friends, completely lacking in stays in the hospital, and fueled with music and good cheer&#8212; and we couldn&#8217;t be happier.  May the holiday season bring you and yours peace and happiness in the coming year!</p>

<p>-Much Love, Kelly &amp; Jakki (and Tigger &amp; Cleo)</p>

<p><center><a href="http://picasaweb.google.com/lh/photo/oMpq3-rnmAnkVXazyoJVfIaEYvHzTFELDg_jDrgokGY?feat=embedwebsite"><img src="http://lh3.ggpht.com/_PHiEoN4OaAw/TQ0aYJ-hkNI/AAAAAAAAOtI/cWbPa3g--x8/s400/007.JPG" height="300" width="400" /></a></center></p>
]]></description>
            <link>http://www.kellytadams.com/mt-archives/2010/12/christmas-letter-201.html</link>
            <guid>http://www.kellytadams.com/mt-archives/2010/12/christmas-letter-201.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Fambly</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Music</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">News</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">Christmas Letter 2010</category>
            
            <pubDate>Sat, 18 Dec 2010 10:20:39 -0800</pubDate>
        </item>
        
        <item>
            <title>Help Fight Diabetes</title>
            <description><![CDATA[<p><a href="http://www.hanselman.com/fightdiabetes/donate"><img src="http://www.hanselman.com/fightdiabetes/TeamHanselmanLargeBanner.gif" alt="Team Hanselman Banner" title="" /></a></p>

<p>Now I&#8217;ve only been diabetic for a few years now, but every day (or meal, or test) I am reminded of it&#8217;s impact on my life.  Please help the fight to end diabetes by sponsoring this <a href="http://www.hanselman.com/blog/TeamHanselmanAndDiabetesWalk2010.aspx">Microsoft programmer dude</a> I admire.</p>

<p>Thanks!</p>
]]></description>
            <link>http://www.kellytadams.com/mt-archives/2010/04/help-fight-diabetes.html</link>
            <guid>http://www.kellytadams.com/mt-archives/2010/04/help-fight-diabetes.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Diet</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Geek Stuff</category>
            
            
            <pubDate>Wed, 28 Apr 2010 13:53:14 -0800</pubDate>
        </item>
        
        <item>
            <title>This Blog Is Not Dead!</title>
            <description><![CDATA[<p>Okay, it&#8217;s been a long time since I&#8217;ve blogged anything. My recent foray into Facebook and Twitter have stolen focus from a lot of things I would have put in the blog. Additionally, I&#8217;ve been neglecting the photo albums. I need to retire some old ones, and put some new ones up.</p>

<p>Recently I finished <a href="http://www.amazon.com/Rework-Jason-Fried/dp/0307463745">Rework</a> by the guys who started <a href="http://www.37signals.com/">37signals</a>. I read it on my iPhone and Kindle for PC, which was an interesting but overall pleasant experience. Putting my phone down at night, and then opening up the PC app at work during lunch the next day and having it go right to the page I was on is amazingly awesome.</p>

<p>Anyway, reading it inspired me to build some sort of software thing in my spare time. So I have been putting some hours into an idea from a friend and coworker, <a href="http://twitter.com/allenmonroeiii">Allen Monroe</a>. He is a bottomless &#8220;idea-guy&#8221; resource, which is great and inspiring in it&#8217;s own way. We also had some of our internet offerings go viral in the same week. He created a <a href="http://www.youtube.com/watch?v=4qkvaGZUlGw">parody of Google&#8217;s super bowl ad</a>, and I submitted a story and some code to <a href="http://thedailywtf.com/Articles/Injection-Proofd.aspx">The DailyWTF</a>.</p>

<p>It&#8217;s been fun, but it hasn&#8217;t moved me toward my personal 2010 goal of contributing something to a Open Source Software project. I&#8217;ve been reading a fair amount of code lately, trying to find something to contribute to. If anyone has any ideas, please post in the comments.</p>

<p>Recently at home we&#8217;ve been trying to focus on getting more exercise. We bought a nice NordicTrack elliptical and set it up in the basement. I&#8217;m finding that changing one&#8217;s lifelong habits is a difficult thing. Especially with so much TV to watch :)</p>

<p>With the weather oscillating tantalizingly between Spring and Winter, Jakki and I are very excited to do some camping this year, especially since we now have a big truck and can pack ridiculous amounts of <a href="http://wikibin.org/articles/glamper.html">Glamper</a> paraphernalia. The next stop is Trailerville!</p>

<p>The <a href="http://www.fairmountchase.com/">band I&#8217;m in</a> (I hesitate to say &#8216;my band&#8217; since I did not form it), has been having a lot of fun, and with Spring coming on, we are looking forward to many opportunities to play.  I&#8217;m also working on getting them set up with some kind of blog thing so we can communicate with our fans better.</p>

<p>So to wrap up this quarterly update (and to try to motivate myself to do a better job of posting regularly): please stay tuned and keep in touch; I will endeavor to do the same.</p>
]]></description>
            <link>http://www.kellytadams.com/mt-archives/2010/04/this-blog-is-not-dea.html</link>
            <guid>http://www.kellytadams.com/mt-archives/2010/04/this-blog-is-not-dea.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">News</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">camping</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">coding</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">internet</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">reading</category>
            
            <pubDate>Thu, 01 Apr 2010 14:04:52 -0800</pubDate>
        </item>
        
        <item>
            <title>Good Show But I&apos;m Getting Old</title>
            <description><![CDATA[<p>My band, <a href="http://www.fairmountchase.com">Fairmount Chase</a>, played a benefit gig last night.  We rented a room in a <a href="http://www.spokanetonight.com/venues/lions-lair.html">local tavern</a> downtown and had some bins for the local food bank.  Lots of work people and friends of band the band showed up.  We played three sets and had dancers a-plenty.  At the end of the night, we had to tear everything down and load it all out.  A five-piece band has a lot of gear!  Driving home, my feet were killing me.  Today, I feel like I have been run over.  And we still had to unload our stuff into our practice space in the basement of the VFW.  It&#8217;s a lot of fun to play with these guys, and we draw fun and engaging crowds, but I wish we could hire some roadies.  I suppose gigging in the future will be a lot easier: a band will just use the transporter (a la Star Trek) to beam there gear to the venue and back.  Hopefully I will live that long.</p>

<p>Unfortunately, Jakki had to work, and my parents had a dancing engagement, so I don&#8217;t have any photos of the gig to the post.  I&#8217;m thinking that I might need to ask Santa for a video camera, so I can begin building up a video library of the band to put on youtube for potential venue owners to look at.</p>
]]></description>
            <link>http://www.kellytadams.com/mt-archives/2009/12/good-show-but-im-get.html</link>
            <guid>http://www.kellytadams.com/mt-archives/2009/12/good-show-but-im-get.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Music</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">Band</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">Fairmount Chase</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">jakki</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">music</category>
            
            <pubDate>Sun, 13 Dec 2009 14:54:03 -0800</pubDate>
        </item>
        
        <item>
            <title>Back In The Saddle Again</title>
            <description><![CDATA[<p>Last night I played with a band for the first time in several years.  It was lots of fun, and they are an easy-going bunch.  My playing is still pretty rusty, but I was surprised I could keep up on songs I didn&#8217;t think I knew very well.  It will be hard work to get back in shape for regular playing, but I&#8217;m looking forward to it&#8212; revisiting a large portion of my life is worth it to me.  The band is called <a href="http://www.fairmountchase.com/">Fairmount Chase</a> and hopefully we&#8217;ll be playing out in Spokane soon.  Now I&#8217;m off to ice down my fingers again&#8230;</p>
]]></description>
            <link>http://www.kellytadams.com/mt-archives/2009/07/back-in-the-saddle-a.html</link>
            <guid>http://www.kellytadams.com/mt-archives/2009/07/back-in-the-saddle-a.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Music</category>
            
            
            <pubDate>Tue, 21 Jul 2009 09:58:12 -0800</pubDate>
        </item>
        
        <item>
            <title>10 Gallons of Awesome In A 5 Gallon Pail</title>
            <description><![CDATA[<p>I just found out today (via <a href="http://twitter.com/feliciaday">Felicia Day on Twitter</a>, strangely enough) that they are making a movie of <a href="http://www.amazon.com/Where-Wild-Things-Maurice-Sendak/dp/0060254920">Where the Wild Things Are</a> by Maurice Sendak.  It&#8217;s got Catherine Keener, Max Records, Mark Ruffalo, Lauren Ambrose, and James Gandolfini in it, and it&#8217;s directed by Spike Jonze (director of Being John Malkovich and Adaptation).  Check out the <a href="http://www.apple.com/trailers/wb/wherethewildthingsare/">trailer here</a>.  When I was a kid, this was one of my favorite books my mom read to me.  Now they just need to adapt <a href="http://www.amazon.com/Great-Ugly-Came-Tied-Horse/dp/0316852813">A Great Big Ugly Man Came Up and Tied His Horse To Me</a>.</p>
]]></description>
            <link>http://www.kellytadams.com/mt-archives/2009/03/10-gallons-of-awesom.html</link>
            <guid>http://www.kellytadams.com/mt-archives/2009/03/10-gallons-of-awesom.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">News</category>
            
            
            <pubDate>Wed, 25 Mar 2009 12:47:56 -0800</pubDate>
        </item>
        
        <item>
            <title>La Paz Pics Up!</title>
            <description><![CDATA[<p>I have gone through and culled out the best of our pics of La Paz.  It&#8217;s the newest album on the left, or just <a href="http://picasaweb.google.com/kellytadams/TripToLaPaz">click here</a>.  We had a blast and can&#8217;t wait to return!  Muchas gracias to Paul &amp; Kristi for putting us up in their nice casa, and driving us around to see the sights.</p>
]]></description>
            <link>http://www.kellytadams.com/mt-archives/2009/03/la-paz-pics-up.html</link>
            <guid>http://www.kellytadams.com/mt-archives/2009/03/la-paz-pics-up.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">News</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">kristi</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">la paz</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">paul</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">trip</category>
            
            <pubDate>Thu, 19 Mar 2009 17:31:20 -0800</pubDate>
        </item>
        
        <item>
            <title>Thoughts On Coding</title>
            <description><![CDATA[<p>The other day I had a very lively conversation about programming with my friends Pat &amp; Warren.  To paraphrase: Warren put forth the idea that coding is a lot like playing a game, and that game theory can be loosely applied to it.  This led us to the idea that programmers <em>play</em> at building software, and in doing so, fall into two basic categories.  Bear in mind, these are not absolutes, but merely ends of a spectrum that a coder can shift along over time.</p>

<ol>
<li><p>The first type of coder/gamer is a person who likes the result of the game.  They like the feeling that comes along with winning, or completing a level.  If you played a dungeon-type discovery game such as Diablo with this person, generally they would be the person to reach the end of a level first.  And then probably complain that you are taking too long.  They enjoy the <em>completion</em> more than the act of <em>playing</em>.  In fact, to them, the idea of <em>playing</em> is just the sum of all the completed levels so far.  These types shall be known as the Completors.</p></li>
<li><p>The second type of coder/gamer is a person who likes the exploration and interaction of the game.  Winning or completing a level is a secondary or n<sup>th</sup>-erary aspect of the game.  These people will want to explorer every possible room in a dungeon, possibly returning to visited rooms just to check &#8220;if anything new has shown up&#8221;.  Obviously, this drives the type 1s crazy, as these archetypes enjoy the act of <em>playing</em> more than <em>completion</em>.  Personally, this is the group I tend to fall into.  These types shall be known as the Wanderers.</p></li>
</ol>

<p>So which is better?  I don&#8217;t believe the question is nearly as cut and dried as that.  From a business point of view, <em>results matter</em>, and it would seem that a gang of Completors would the best team to create a business-critical on-time and under-budget enterprise-level highly-available software solution.  Let me pause for a moment here, to let my jargon buffer refill.  I think that a good level of success can be had with a group of coders more toward the Completor end of the spectrum.  But that comes with a price.  Because Completors are so results-oriented, once they find a good solution or strategy to beat &#8220;the game&#8221;, they will just continue to apply it over and over.  Why fix it if it ain&#8217;t broke?</p>

<p>The problem with the security of these repeatable results is that the world of software (and the world of games) marches on at a blistering pace.  New <a href="http://www.dotnetkicks.com/">technologies</a> and <a href="http://www.codinghorror.com/blog/archives/000856.html">methodologies</a> spring up like dandelions in the summer.  I personally spend a good deal of time just trying to keep up with a small amount of the New Stuff.  Completors tend to shy away from personal growth and exploration because that&#8217;s their nature.  Over a career, or many careers, this can lead to a certain amount of software stagnation.</p>

<p>Now let&#8217;s look at the Wanderers.  You might think after that last paragraph, that you <em>really</em> want a team of Wanderers!  Unfortunately, that group has some downsides as well:  They tend to be the worst estimators ever.  Some projects, because the game space is so large, will never actually reach completion.  When faced with a very structured deadline or result, Wanderers may fail (for certain values of failure).  Because the idea of exploration and self growth is very important, Wanderers tend to not have as much loyalty or &#8220;team spirit&#8221; as Completors.</p>

<p>So what&#8217;s the final answer?  Just like in many things in life&#8212; I believe that moderation is key.  A group that is a well-mixed solution of different levels of these elements will reap benefits greater than the sum of it&#8217;s parts.  Wanderers will inspire and enlighten the Completors,  The Completors will keep the Wanderers on the right track, possibly dragging them over the finish line with them.  As a manager, or project leader, I think that understanding these two archetypes and using their strengths and weaknesses together can make for a most potent team.  After all, who wants to play Diablo with a group solely consisting of Barbarians?</p>
]]></description>
            <link>http://www.kellytadams.com/mt-archives/2009/02/thoughts-on-coding.html</link>
            <guid>http://www.kellytadams.com/mt-archives/2009/02/thoughts-on-coding.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Geek Stuff</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">coding</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">programming</category>
            
            <pubDate>Fri, 20 Feb 2009 07:31:09 -0800</pubDate>
        </item>
        
        <item>
            <title>Sad Birthday for Mom</title>
            <description><![CDATA[<p>Yesterday Mom &amp; Dad had to put their kitty Prudie to sleep.  She had been sick for awhile and had the vets flummoxed.  She was a very loving kitty and I think they had her for almost fourteen years.  In Lucky&#8217;s later years, we used to bring him down to visit Mom &amp; Dad, and he and Prudie got on well, so she&#8217;ll have a buddy up in Kitty Heaven.  Rest in peace Prudie, we&#8217;ll miss you.</p>
]]></description>
            <link>http://www.kellytadams.com/mt-archives/2009/01/sad-birthday-for-mom.html</link>
            <guid>http://www.kellytadams.com/mt-archives/2009/01/sad-birthday-for-mom.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Fambly</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">kitty</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">mom</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">prudie</category>
            
            <pubDate>Thu, 29 Jan 2009 11:43:09 -0800</pubDate>
        </item>
        
        <item>
            <title>Brits to Remake Triffids</title>
            <description><![CDATA[<p>Now there is a title I never would have imagined.  <a href="http://www.imdb.com/title/tt0055894/">The Day of the Triffids</a> was one of my favorite B-grade horror movie staples.  I was turned on to it by my uncle Paul when I was a small lad.  I guess in the early 80s, the BBC did <a href="http://www.bbc.co.uk/cult/classic/triffids/">a remake</a>, but I never saw it.  Today I noticed (albeit about 30 days post facto), that the BBC is making yet another <a href="http://www.guardian.co.uk/media/2008/nov/27/day-of-the-triffids-bbc">TV serial remake</a>.  I am looking forward to finding a copy!</p>
]]></description>
            <link>http://www.kellytadams.com/mt-archives/2008/12/brits-to-remake-triffids.html</link>
            <guid>http://www.kellytadams.com/mt-archives/2008/12/brits-to-remake-triffids.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Geek Stuff</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">bbc</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">paul</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">triffids</category>
            
            <pubDate>Tue, 23 Dec 2008 13:26:12 -0800</pubDate>
        </item>
        
    </channel>
</rss>

