<?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.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Geek Noise</title>
    <description>Rants, rambles, news and notes by Peter Provost</description>
    <link>http://www.peterprovost.org/blog/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.4.0.0</generator>
<language>en-US</language><blogChannel:blogRoll>http://www.peterprovost.org/blog/opml.axd</blogChannel:blogRoll><blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink><dc:creator>Peter Provost</dc:creator><dc:title>Geek Noise</dc:title><geo:lat>39.609660</geo:lat><geo:long>-105.111700</geo:long><geo:lat>47.6185</geo:lat><geo:long>-122.0517</geo:long><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/GeekNoise" type="application/rss+xml" /><item><title>DSL Tools Model Bus Sample</title><description>&lt;p&gt;&lt;a href="http://www.peterprovost.org/blog/image.axd?picture=WindowsLiveWriter/DSLToolsModelBusSample/19DF7C68/VisualStudioLogo.jpg" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="Visual Studio Logo" border="0" alt="Visual Studio Logo" align="right" src="http://www.peterprovost.org/blog/image.axd?picture=WindowsLiveWriter/DSLToolsModelBusSample/6E2EB26B/VisualStudioLogo_thumb.jpg" width="120" height="121" /&gt;&lt;/a&gt; Jean-Marc Prieur and Stuart Kent, fellow Team Architects who work on DSL Tools, have just posted some great new content about the new DSL ModelBus. The ModelBus enables integration across models and designers, which is something people have been asking for since DSL Tools first shipped.&lt;/p&gt;  &lt;p&gt;Check it out:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.msdn.com/jmprieur/archive/2009/06/01/a-modelbus-sample-is-now-available.aspx"&gt;A ModelBus sample is now available !&lt;/a&gt; (Jean-Marc Prieur) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/stuart_kent/archive/2009/06/03/dsl-tools-vs2010-beta1-modelbus-sample.aspx"&gt;DSL Tools VS2010 Beta1: ModelBus Sample&lt;/a&gt; (Stuart Kent) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=xQg16bUf4AE:f_EQbqT9raw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=xQg16bUf4AE:f_EQbqT9raw:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=xQg16bUf4AE:f_EQbqT9raw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?i=xQg16bUf4AE:f_EQbqT9raw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=xQg16bUf4AE:f_EQbqT9raw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=xQg16bUf4AE:f_EQbqT9raw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/GeekNoise/~3/xQg16bUf4AE/post.aspx</link><author>peter.provost.nospam@nospam.microsoft.com (Peter Provost)</author><comments>http://www.peterprovost.org/blog/post/DSL-Tools-Model-Bus-Sample.aspx#comment</comments><guid isPermaLink="false">http://www.peterprovost.org/blog/post.aspx?id=89a82c52-8e38-49a6-9b34-cf8870dc7ed4</guid><pubDate>Thu, 04 Jun 2009 03:44:00 -1300</pubDate><category>Technology</category><dc:publisher>Peter Provost</dc:publisher><pingback:server>http://www.peterprovost.org/blog/pingback.axd</pingback:server><pingback:target>http://www.peterprovost.org/blog/post.aspx?id=89a82c52-8e38-49a6-9b34-cf8870dc7ed4</pingback:target><slash:comments>0</slash:comments><trackback:ping>http://www.peterprovost.org/blog/trackback.axd?id=89a82c52-8e38-49a6-9b34-cf8870dc7ed4</trackback:ping><wfw:comment>http://www.peterprovost.org/blog/post/DSL-Tools-Model-Bus-Sample.aspx#comment</wfw:comment><wfw:commentRss>http://www.peterprovost.org/blog/syndication.axd?post=89a82c52-8e38-49a6-9b34-cf8870dc7ed4</wfw:commentRss><feedburner:origLink>http://www.peterprovost.org/blog/post.aspx?id=89a82c52-8e38-49a6-9b34-cf8870dc7ed4</feedburner:origLink></item><item><title>Fun with PowerShell and TFS Work Items</title><description>&lt;p&gt;It all started with me wanting a better burndown chart for my team. That was relatively simple to solve as we’ve got some pretty good ones floating around inside Microsoft. (Apologies in advance but I can’t share my spreadsheet with you at this time.)&lt;/p&gt;  &lt;p&gt;Then came the fun… I wanted to be able to pull any given day’s “work done” and “work remaining” data. But for my own reasons, I don’t want this spreadsheet bound to the OLAP cube, I want to be able to mess with it.&lt;/p&gt;  &lt;p&gt;Being the PowerShell junkie that I am I was pretty sure I could do this. I found &lt;a href="http://blogs.msdn.com/jmanning/archive/2006/09/28/776141.aspx"&gt;James Manning’s killer “get-tfs.ps1” script&lt;/a&gt; which meant I didn’t have to work out that bit myself.&lt;/p&gt;  &lt;p&gt;Using it is simple:&lt;/p&gt;  &lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; $tfs = get-tfs http://mytfs:8080&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt; $wi = $tfs.wit.GetWorkItem(12345)&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;As you can see, I get the TFS client object via James’s script, and then I pull a WorkItem from it. From there I can ask the $wi object for all the bits of information in the work item. Piping it to get-member showed me the following methods and properties:&lt;/p&gt;

&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt;    TypeName: Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItem&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt; Name                   MemberType            Definition                                                                &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt; ----                   ----------            ----------                                                                &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt; FieldChanged           Event                 Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemFieldChangeEve...&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt; Copy                   Method                Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItem Copy(Microsof...&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum8"&gt;   8:&lt;/span&gt; Equals                 Method                bool Equals(System.Object obj)                                            &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum9"&gt;   9:&lt;/span&gt; GetHashCode            Method                int GetHashCode()                                                         &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum10"&gt;  10:&lt;/span&gt; GetNextState           Method                string GetNextState(string action)                                        &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum11"&gt;  11:&lt;/span&gt; GetType                Method                type GetType()                                                            &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum12"&gt;  12:&lt;/span&gt; IsValid                Method                bool IsValid()                                                            &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum13"&gt;  13:&lt;/span&gt; MergeToLatest          Method                System.Void MergeToLatest()                                               &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum14"&gt;  14:&lt;/span&gt; Open                   Method                System.Void Open()                                                        &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum15"&gt;  15:&lt;/span&gt; PartialOpen            Method                System.Void PartialOpen()                                                 &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum16"&gt;  16:&lt;/span&gt; Reset                  Method                System.Void Reset()                                                       &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum17"&gt;  17:&lt;/span&gt; Save                   Method                System.Void Save()                                                        &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum18"&gt;  18:&lt;/span&gt; SyncToLatest           Method                System.Void SyncToLatest()                                                &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum19"&gt;  19:&lt;/span&gt; ToString               Method                string ToString()                                                         &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum20"&gt;  20:&lt;/span&gt; Validate               Method                System.Collections.ArrayList Validate()                                   &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum21"&gt;  21:&lt;/span&gt; Item                   ParameterizedProperty System.Object Item(string name) {get;set;}, System.Object Item(Microsof...&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum22"&gt;  22:&lt;/span&gt; AreaId                 Property              System.Int32 AreaId {get;set;}                                            &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum23"&gt;  23:&lt;/span&gt; AreaPath               Property              System.String AreaPath {get;set;}                                         &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum24"&gt;  24:&lt;/span&gt; AttachedFileCount      Property              System.Int32 AttachedFileCount {get;}                                     &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum25"&gt;  25:&lt;/span&gt; Attachments            Property              Microsoft.TeamFoundation.WorkItemTracking.Client.AttachmentCollection A...&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum26"&gt;  26:&lt;/span&gt; ChangedBy              Property              System.String ChangedBy {get;}                                            &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum27"&gt;  27:&lt;/span&gt; ChangedDate            Property              System.DateTime ChangedDate {get;}                                        &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum28"&gt;  28:&lt;/span&gt; CreatedBy              Property              System.String CreatedBy {get;}                                            &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum29"&gt;  29:&lt;/span&gt; CreatedDate            Property              System.DateTime CreatedDate {get;}                                        &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum30"&gt;  30:&lt;/span&gt; Description            Property              System.String Description {get;set;}                                      &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum31"&gt;  31:&lt;/span&gt; DisplayForm            Property              System.String DisplayForm {get;}                                          &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum32"&gt;  32:&lt;/span&gt; ExternalLinkCount      Property              System.Int32 ExternalLinkCount {get;}                                     &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum33"&gt;  33:&lt;/span&gt; Fields                 Property              Microsoft.TeamFoundation.WorkItemTracking.Client.FieldCollection Fields...&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum34"&gt;  34:&lt;/span&gt; History                Property              System.String History {get;set;}                                          &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum35"&gt;  35:&lt;/span&gt; HyperLinkCount         Property              System.Int32 HyperLinkCount {get;}                                        &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum36"&gt;  36:&lt;/span&gt; Id                     Property              System.Int32 Id {get;}                                                    &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum37"&gt;  37:&lt;/span&gt; IsDirty                Property              System.Boolean IsDirty {get;}                                             &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum38"&gt;  38:&lt;/span&gt; IsNew                  Property              System.Boolean IsNew {get;}                                               &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum39"&gt;  39:&lt;/span&gt; IsOpen                 Property              System.Boolean IsOpen {get;}                                              &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum40"&gt;  40:&lt;/span&gt; IsPartialOpen          Property              System.Boolean IsPartialOpen {get;}                                       &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum41"&gt;  41:&lt;/span&gt; IsReadOnly             Property              System.Boolean IsReadOnly {get;}                                          &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum42"&gt;  42:&lt;/span&gt; IsReadOnlyOpen         Property              System.Boolean IsReadOnlyOpen {get;}                                      &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum43"&gt;  43:&lt;/span&gt; IterationId            Property              System.Int32 IterationId {get;set;}                                       &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum44"&gt;  44:&lt;/span&gt; IterationPath          Property              System.String IterationPath {get;set;}                                    &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum45"&gt;  45:&lt;/span&gt; Links                  Property              Microsoft.TeamFoundation.WorkItemTracking.Client.LinkCollection Links {...&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum46"&gt;  46:&lt;/span&gt; NodeName               Property              System.String NodeName {get;}                                             &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum47"&gt;  47:&lt;/span&gt; Project                Property              Microsoft.TeamFoundation.WorkItemTracking.Client.Project Project {get;}   &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum48"&gt;  48:&lt;/span&gt; Reason                 Property              System.String Reason {get;set;}                                           &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum49"&gt;  49:&lt;/span&gt; RelatedLinkCount       Property              System.Int32 RelatedLinkCount {get;}                                      &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum50"&gt;  50:&lt;/span&gt; Rev                    Property              System.Int32 Rev {get;}                                                   &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum51"&gt;  51:&lt;/span&gt; RevisedDate            Property              System.DateTime RevisedDate {get;}                                        &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum52"&gt;  52:&lt;/span&gt; Revision               Property              System.Int32 Revision {get;}                                              &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum53"&gt;  53:&lt;/span&gt; Revisions              Property              Microsoft.TeamFoundation.WorkItemTracking.Client.RevisionCollection Rev...&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum54"&gt;  54:&lt;/span&gt; State                  Property              System.String State {get;set;}                                            &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum55"&gt;  55:&lt;/span&gt; Store                  Property              Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore Store {g...&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum56"&gt;  56:&lt;/span&gt; TemporaryId            Property              System.Int32 TemporaryId {get;}                                           &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum57"&gt;  57:&lt;/span&gt; Title                  Property              System.String Title {get;set;}                                            &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum58"&gt;  58:&lt;/span&gt; Type                   Property              Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemType Type {get;} &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum59"&gt;  59:&lt;/span&gt; Uri                    Property              System.Uri Uri {get;}                                                     &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum60"&gt;  60:&lt;/span&gt; WorkItemLinkHistory    Property              Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemLinkCollection...&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum61"&gt;  61:&lt;/span&gt; WorkItemLinks          Property              Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemLinkCollection...&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum62"&gt;  62:&lt;/span&gt; GetCompletedWorkByDate ScriptMethod          System.Object GetCompletedWorkByDate();                                   &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum63"&gt;  63:&lt;/span&gt; GetRemainingWorkByDate ScriptMethod          System.Object GetRemainingWorkByDate();                                   &lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Lots of great stuff there, but what I really wanted was the work done &lt;em&gt;on any given day&lt;/em&gt; and not the current work remaining. Hmmm…&lt;/p&gt;

&lt;p&gt;After digging around in the object model (with PowerShell of course), I found the answer. The Revisions collection contains the full history of the Work Item. If I enumerated that, looking at the dates, I should be able to get what I want.&lt;/p&gt;

&lt;p&gt;A little while later I had it all worked out, setup as a type extension in PowerShell so it automatically works with every WorkItem type I get. Type extensions are added via a special XML file (more info). Here’s what I added to mine:&lt;/p&gt;

&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItem&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Members&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ScriptMethod&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;GetCompletedWorkByDate&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Script&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt;&amp;#160; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt;                 $date = [datetime] $args[0]&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt;                 $total = 0&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt;                 $&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Revisions | % {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt;                     &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; ($_.Fields[&lt;span style="color: #006080"&gt;'Changed Date'&lt;/span&gt;].Value.Date -eq $date) {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt;                         $work = $_.Fields[&lt;span style="color: #006080"&gt;&amp;quot;Completed Work&amp;quot;&lt;/span&gt;]&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt;                         &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; ($work -ne $&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;) { $total += ([&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;] $work.Value) - ([&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;] $work.OriginalValue) }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum8"&gt;   8:&lt;/span&gt;                     }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum9"&gt;   9:&lt;/span&gt;                 }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum10"&gt;  10:&lt;/span&gt;                 &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; $total&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum11"&gt;  11:&lt;/span&gt;             &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Script&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ScriptMethod&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum8"&gt;   8:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ScriptMethod&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum9"&gt;   9:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;GetRemainingWorkByDate&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum10"&gt;  10:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Script&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt;&amp;#160; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt;                 $date = [datetime] $args[0]&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt;                 $total = 0&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt;                 $&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Revisions | % {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt;                     &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; ($_.Fields[&lt;span style="color: #006080"&gt;'Changed Date'&lt;/span&gt;].Value.Date -le $date) {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt;                         $work = $_.Fields[&lt;span style="color: #006080"&gt;&amp;quot;Remaining Work&amp;quot;&lt;/span&gt;]&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt;                         &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; ($work -ne $&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;) {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum8"&gt;   8:&lt;/span&gt;                             $total = ([&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;] $work.Value)&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum9"&gt;   9:&lt;/span&gt;                         }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum10"&gt;  10:&lt;/span&gt;                     }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum11"&gt;  11:&lt;/span&gt;                 }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum12"&gt;  12:&lt;/span&gt;                 &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; $total&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum13"&gt;  13:&lt;/span&gt;             &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Script&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum11"&gt;  11:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ScriptMethod&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum12"&gt;  12:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Members&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum13"&gt;  13:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;What this does is add two new methods to the .NET type Microsoft.TeamFoundation.WorkItemTracking.Client.Workitem. The first method takes a date and returns the sum of the “Completed Work” field for all revisions that occurred on that date. The second method enumerates the same Revisions collection, but this time it process all revisions up through the given date looking for the last one that says anything about the “Remaining Work” field.&lt;/p&gt;

&lt;p&gt;Next step… create a script to wrap all this up into an easy to use command I call get-burndowndata.ps1:&lt;/p&gt;

&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;param&lt;/span&gt;( &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt;         $deliverable = $(&lt;span style="color: #0000ff"&gt;throw&lt;/span&gt; &lt;span style="color: #006080"&gt;&amp;quot;Must provide deliverable ID&amp;quot;&lt;/span&gt;),&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt;         $date = [datetime]::Now.Date &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt; )&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt; $tfs = get-tfs &lt;a href="http://mytfs:8080"&gt;http://mytfs:8080&lt;/a&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt; $deliverable = $tfs.WIT.GetWorkItem($deliverable) &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum8"&gt;   8:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum9"&gt;   9:&lt;/span&gt; $result = @()&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum10"&gt;  10:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum11"&gt;  11:&lt;/span&gt; $deliverable.WorkItemLinks | ? { $_.LinkType.Name &lt;span style="color: #cc6633"&gt;-eq&lt;/span&gt; &lt;span style="color: #006080"&gt;&amp;quot;Child&amp;quot;&lt;/span&gt; } | % {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum12"&gt;  12:&lt;/span&gt;     $feature = $tfs.WIT.GetWorkItem($_.TargetId)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum13"&gt;  13:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum14"&gt;  14:&lt;/span&gt;     $feature.WorkItemLinks | ? { $_.LinkType.Name &lt;span style="color: #cc6633"&gt;-eq&lt;/span&gt; &lt;span style="color: #006080"&gt;&amp;quot;Child&amp;quot;&lt;/span&gt; } | % {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum15"&gt;  15:&lt;/span&gt;         $task = $tfs.WIT.GetWorkItem($_.TargetId)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum16"&gt;  16:&lt;/span&gt;         $completed = $task.GetCompletedWorkByDate($date)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum17"&gt;  17:&lt;/span&gt;         $remaining = $task.GetRemainingWorkByDate($date)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum18"&gt;  18:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum19"&gt;  19:&lt;/span&gt;         $obj = &lt;span style="color: #006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt; | select-object ID, Title, Completed, Remaining &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum20"&gt;  20:&lt;/span&gt;         $obj.ID = $task.ID&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum21"&gt;  21:&lt;/span&gt;         $obj.Title = $task.Title&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum22"&gt;  22:&lt;/span&gt;         $obj.Completed = $completed&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum23"&gt;  23:&lt;/span&gt;         $obj.Remaining = $remaining&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum24"&gt;  24:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum25"&gt;  25:&lt;/span&gt;         $result += $obj&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum26"&gt;  26:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum27"&gt;  27:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum28"&gt;  28:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum29"&gt;  29:&lt;/span&gt; $result&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Now, getting any given day’s burndown information is as simple as calling that script and opening the result in Excel:&lt;/p&gt;

&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; get-burndowndata.ps1 12345 &lt;span style="color: #006080"&gt;&amp;quot;4/1/2009&amp;quot;&lt;/span&gt; | export-csv data_20090401.csv&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt; invoke-item data_20090401.csv&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Works like a charm!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Disclaimer: &lt;/strong&gt;The get-burndowndata.ps1 script makes lots of assumptions about your TFS Work Item struction and relationships . It probably won’t work unmodified for anyone outside of DevDiv.&lt;/em&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=oUGIJy0Tapk:152UE3uNOkw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=oUGIJy0Tapk:152UE3uNOkw:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=oUGIJy0Tapk:152UE3uNOkw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?i=oUGIJy0Tapk:152UE3uNOkw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=oUGIJy0Tapk:152UE3uNOkw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=oUGIJy0Tapk:152UE3uNOkw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/GeekNoise/~3/oUGIJy0Tapk/post.aspx</link><author>peter.provost.nospam@nospam.microsoft.com (Peter Provost)</author><comments>http://www.peterprovost.org/blog/post/Fun-with-PowerShell-and-TFS-Work-Items.aspx#comment</comments><guid isPermaLink="false">http://www.peterprovost.org/blog/post.aspx?id=7f9b2184-d0f1-47ee-993d-0375e3641779</guid><pubDate>Fri, 10 Apr 2009 06:53:23 -1300</pubDate><category>Technology</category><category>Agile Software Development</category><dc:publisher>Peter Provost</dc:publisher><pingback:server>http://www.peterprovost.org/blog/pingback.axd</pingback:server><pingback:target>http://www.peterprovost.org/blog/post.aspx?id=7f9b2184-d0f1-47ee-993d-0375e3641779</pingback:target><slash:comments>4</slash:comments><trackback:ping>http://www.peterprovost.org/blog/trackback.axd?id=7f9b2184-d0f1-47ee-993d-0375e3641779</trackback:ping><wfw:comment>http://www.peterprovost.org/blog/post/Fun-with-PowerShell-and-TFS-Work-Items.aspx#comment</wfw:comment><wfw:commentRss>http://www.peterprovost.org/blog/syndication.axd?post=7f9b2184-d0f1-47ee-993d-0375e3641779</wfw:commentRss><feedburner:origLink>http://www.peterprovost.org/blog/post.aspx?id=7f9b2184-d0f1-47ee-993d-0375e3641779</feedburner:origLink></item><item><title>Enterprise Library v5.0 Planning Has Begun!</title><description>&lt;p&gt;&lt;a href="http://www.codeplex.com/entlib"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 0px 15px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="PAG_Logo_NoText" border="0" alt="PAG_Logo_NoText" align="right" src="http://www.peterprovost.org/blog/image.axd?picture=PAG_Logo_NoText.png" width="113" height="90" /&gt;&lt;/a&gt; Way back in 2004, sitting in the “delta lounge” team room with Scott, Brian, Ed, T-Shak, Rohit, Prashant and Mani, I never would have believed that almost 5 years later, we’d still be shipping &lt;a href="http://www.codeplex.com/entlib"&gt;Enterprise Library&lt;/a&gt; (aka EntLib) or that we’d be up to version 5.0.&lt;/p&gt;  &lt;p&gt;A few days ago, my good friend Grigori Melnik, who is the PM for EntLib over in Patterns &amp;amp; Practices, sent me an email reminding me that they are looking for planning input on the version 5.0 features.&lt;/p&gt;  &lt;p&gt;He’s written it all up over on his blog:    &lt;br /&gt;&lt;a title="http://blogs.msdn.com/agile/archive/2009/01/26/enterprise-library-5-what-s-on-your-wish-list.aspx" href="http://blogs.msdn.com/agile/archive/2009/01/26/enterprise-library-5-what-s-on-your-wish-list.aspx"&gt;http://blogs.msdn.com/agile/archive/2009/01/26/enterprise-library-5-what-s-on-your-wish-list.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If you are a current or past EntLib user, please don’t miss this opportunity to help steer the product. As I tell my wife, “If you don’t tell me what you want, you shouldn’t expect me to get you the right thing.”&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=wx7_DddPV-4:Xrf17PgZluI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=wx7_DddPV-4:Xrf17PgZluI:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=wx7_DddPV-4:Xrf17PgZluI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?i=wx7_DddPV-4:Xrf17PgZluI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=wx7_DddPV-4:Xrf17PgZluI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=wx7_DddPV-4:Xrf17PgZluI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/GeekNoise/~3/wx7_DddPV-4/post.aspx</link><author>peter.provost.nospam@nospam.microsoft.com (Peter Provost)</author><comments>http://www.peterprovost.org/blog/post/Enterprise-Library-v50-Planning-Has-Begun!.aspx#comment</comments><guid isPermaLink="false">http://www.peterprovost.org/blog/post.aspx?id=d649365d-b15b-4403-b347-fdb78b008ccb</guid><pubDate>Mon, 02 Feb 2009 02:17:39 -1300</pubDate><category>Technology</category><dc:publisher>Peter Provost</dc:publisher><pingback:server>http://www.peterprovost.org/blog/pingback.axd</pingback:server><pingback:target>http://www.peterprovost.org/blog/post.aspx?id=d649365d-b15b-4403-b347-fdb78b008ccb</pingback:target><slash:comments>0</slash:comments><trackback:ping>http://www.peterprovost.org/blog/trackback.axd?id=d649365d-b15b-4403-b347-fdb78b008ccb</trackback:ping><wfw:comment>http://www.peterprovost.org/blog/post/Enterprise-Library-v50-Planning-Has-Begun!.aspx#comment</wfw:comment><wfw:commentRss>http://www.peterprovost.org/blog/syndication.axd?post=d649365d-b15b-4403-b347-fdb78b008ccb</wfw:commentRss><feedburner:origLink>http://www.peterprovost.org/blog/post.aspx?id=d649365d-b15b-4403-b347-fdb78b008ccb</feedburner:origLink></item><item><title>Rules of the Road</title><description>&lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" border="0" alt="http://realestatetomato.typepad.com/the_real_estate_tomato/F_St.jpg" align="right" src="http://realestatetomato.typepad.com/the_real_estate_tomato/F_St.jpg" width="240" height="228" /&gt;I was digging through my OneNote today, organizing stuff and reading old notes and whatnot, when I found a page I wrote on 7/13/2006. I don’t know why I wrote it in OneNote, but it is something I’ve talked about to my direct reports, colleagues and others for a long time.&lt;/p&gt;  &lt;p&gt;It was simply titled “Rules of the Road” and had the following content:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Don't stress out about things you can't control - ignore them&lt;/li&gt;    &lt;li&gt;Don't stress out about things you can control - fix them&lt;/li&gt;    &lt;li&gt;Confront someone as soon as you recognize the problem - don't let it fester!&lt;/li&gt;    &lt;li&gt;Help people who sincerely ask for help&lt;/li&gt;    &lt;li&gt;Fight for what you believe in&lt;/li&gt;    &lt;li&gt;Admit when you are wrong&lt;/li&gt;    &lt;li&gt;Reserve the right to change your mind&lt;/li&gt;    &lt;li&gt;You do NOT have to justify saying no to someone&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;My dad taught my 1-3 when I was growing up. He had ulcer issues as a younger man because he let stress build up too much. Those rules help you get grounded when you feel stressed and show you simple ways out, even when, as in Rule #1, the out is to ignore the issue.&lt;/p&gt;  &lt;p&gt;Numbers 4-5 are extensions I’ve added over time to help me guide my life. Help your friends. Admit when you make a mistake. Do not be afraid to change your mind. Don’t let other people convince you that “flip flopping” in the presence of new information is somehow bad. When you know better, do better.&lt;/p&gt;  &lt;p&gt;The final one is the newest addition to the family. Sometimes many people, when presented with a request they has to say no to, will seek a rationalization or a story that they can use to justify saying no. Here’s the thing… you don’t have to justify saying No. You shouldn’t be rude, you should be always polite and respectful, but you can just say, “No, I’m sorry but I can’t,” and leave it at that.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=Dy1gFbcMH-o:WQai_eYD14Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=Dy1gFbcMH-o:WQai_eYD14Q:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=Dy1gFbcMH-o:WQai_eYD14Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?i=Dy1gFbcMH-o:WQai_eYD14Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=Dy1gFbcMH-o:WQai_eYD14Q:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=Dy1gFbcMH-o:WQai_eYD14Q:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/GeekNoise/~3/Dy1gFbcMH-o/post.aspx</link><author>peter.provost.nospam@nospam.microsoft.com (Peter Provost)</author><comments>http://www.peterprovost.org/blog/post/Rules-of-the-Road.aspx#comment</comments><guid isPermaLink="false">http://www.peterprovost.org/blog/post.aspx?id=675f3ce9-532d-44aa-b313-545f2dbbe1c5</guid><pubDate>Thu, 29 Jan 2009 03:24:27 -1300</pubDate><category>Opinions, Politics, Rants</category><category>Personal</category><dc:publisher>Peter Provost</dc:publisher><pingback:server>http://www.peterprovost.org/blog/pingback.axd</pingback:server><pingback:target>http://www.peterprovost.org/blog/post.aspx?id=675f3ce9-532d-44aa-b313-545f2dbbe1c5</pingback:target><slash:comments>3</slash:comments><trackback:ping>http://www.peterprovost.org/blog/trackback.axd?id=675f3ce9-532d-44aa-b313-545f2dbbe1c5</trackback:ping><wfw:comment>http://www.peterprovost.org/blog/post/Rules-of-the-Road.aspx#comment</wfw:comment><wfw:commentRss>http://www.peterprovost.org/blog/syndication.axd?post=675f3ce9-532d-44aa-b313-545f2dbbe1c5</wfw:commentRss><feedburner:origLink>http://www.peterprovost.org/blog/post.aspx?id=675f3ce9-532d-44aa-b313-545f2dbbe1c5</feedburner:origLink></item><item><title>Elegant Code Interview</title><description>&lt;p&gt;A few weeks ago I was invited by the folks over at Elegant Code to do an interview about myself, agile and the stuff I’m working on in VSTS. The podcast for that went live today:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://elegantcode.com/2009/01/26/code-cast-19-peter-provost-on-agile-visual-studio-2010-and-architecture-tools/" href="http://elegantcode.com/2009/01/26/code-cast-19-peter-provost-on-agile-visual-studio-2010-and-architecture-tools/"&gt;http://elegantcode.com/2009/01/26/code-cast-19-peter-provost-on-agile-visual-studio-2010-and-architecture-tools/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=3gbMN-Dl4lU:E90Re67-w8k:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=3gbMN-Dl4lU:E90Re67-w8k:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=3gbMN-Dl4lU:E90Re67-w8k:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?i=3gbMN-Dl4lU:E90Re67-w8k:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=3gbMN-Dl4lU:E90Re67-w8k:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=3gbMN-Dl4lU:E90Re67-w8k:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/GeekNoise/~3/3gbMN-Dl4lU/post.aspx</link><author>peter.provost.nospam@nospam.microsoft.com (Peter Provost)</author><comments>http://www.peterprovost.org/blog/post/Elegant-Code-Interview.aspx#comment</comments><guid isPermaLink="false">http://www.peterprovost.org/blog/post.aspx?id=2b9e67fb-e502-41a8-bc6e-be0ddf049861</guid><pubDate>Mon, 26 Jan 2009 09:16:34 -1300</pubDate><category>Technology</category><category>Agile Software Development</category><dc:publisher>Peter Provost</dc:publisher><pingback:server>http://www.peterprovost.org/blog/pingback.axd</pingback:server><pingback:target>http://www.peterprovost.org/blog/post.aspx?id=2b9e67fb-e502-41a8-bc6e-be0ddf049861</pingback:target><slash:comments>0</slash:comments><trackback:ping>http://www.peterprovost.org/blog/trackback.axd?id=2b9e67fb-e502-41a8-bc6e-be0ddf049861</trackback:ping><wfw:comment>http://www.peterprovost.org/blog/post/Elegant-Code-Interview.aspx#comment</wfw:comment><wfw:commentRss>http://www.peterprovost.org/blog/syndication.axd?post=2b9e67fb-e502-41a8-bc6e-be0ddf049861</wfw:commentRss><feedburner:origLink>http://www.peterprovost.org/blog/post.aspx?id=2b9e67fb-e502-41a8-bc6e-be0ddf049861</feedburner:origLink></item><item><title>Layer Validation with the VSTS 2010 CTP</title><description>&lt;p&gt;&lt;a href="http://www.peterprovost.org/blog/image.axd?picture=WindowsLiveWriter/LayerValidationwiththeVSTS2010CTP_6F96/VSTS%20Logo_2.png" rel="lightbox"&gt;&lt;img title="VSTS Logo" style="border-right: 0px; border-top: 0px; display: inline; margin-left: 0px; border-left: 0px; margin-right: 0px; border-bottom: 0px" height="99" alt="VSTS Logo" src="http://www.peterprovost.org/blog/image.axd?picture=WindowsLiveWriter/LayerValidationwiththeVSTS2010CTP_6F96/VSTS%20Logo_thumb.png" width="160" align="right" border="0" /&gt;&lt;/a&gt; Cameron Skinner has recently made two excellent blog posts that give a great explanation of how to use Layer Diagrams for architecture and design validation in your code. He shows you the basics of creating a layer diagram and binding it to your solution elements. He then shows you how to incorporate that validation right into your build!&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.msdn.com/camerons/archive/2008/12/09/layer-validation-with-the-vsts-2010-ctp.aspx"&gt;Layer Validation with the VSTS 2010 CTP&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/camerons/archive/2008/12/11/incorporate-layer-validation-in-your-builds.aspx"&gt;Incorporate Layer Validation in your Builds&lt;/a&gt;&lt;/li&gt;    &lt;p&gt;     &lt;ul&gt;&lt;/ul&gt;   &lt;/p&gt; &lt;/ul&gt;  &lt;p&gt;Excellent stuff you should certainly go read.&lt;/p&gt;  &lt;p&gt;(For all this stuff, you will need to be running the &lt;a href="http://blogs.msdn.com/briankel/archive/2008/10/27/helpful-links-for-the-visual-studio-2010-ctp.aspx"&gt;VSTS 2010 CTP&lt;/a&gt;.)&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=R6Iy3t08KjA:ihDBHDJWk58:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=R6Iy3t08KjA:ihDBHDJWk58:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=R6Iy3t08KjA:ihDBHDJWk58:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?i=R6Iy3t08KjA:ihDBHDJWk58:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=R6Iy3t08KjA:ihDBHDJWk58:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=R6Iy3t08KjA:ihDBHDJWk58:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/GeekNoise/~3/R6Iy3t08KjA/post.aspx</link><author>peter.provost.nospam@nospam.microsoft.com (Peter Provost)</author><comments>http://www.peterprovost.org/blog/post/Layer-Validation-with-the-VSTS-2010-CTP.aspx#comment</comments><guid isPermaLink="false">http://www.peterprovost.org/blog/post.aspx?id=ac6cddbe-9cb8-4b99-9e96-a3f117f12cef</guid><pubDate>Thu, 11 Dec 2008 01:03:00 -1300</pubDate><category>Technology</category><dc:publisher>Peter Provost</dc:publisher><pingback:server>http://www.peterprovost.org/blog/pingback.axd</pingback:server><pingback:target>http://www.peterprovost.org/blog/post.aspx?id=ac6cddbe-9cb8-4b99-9e96-a3f117f12cef</pingback:target><slash:comments>3</slash:comments><trackback:ping>http://www.peterprovost.org/blog/trackback.axd?id=ac6cddbe-9cb8-4b99-9e96-a3f117f12cef</trackback:ping><wfw:comment>http://www.peterprovost.org/blog/post/Layer-Validation-with-the-VSTS-2010-CTP.aspx#comment</wfw:comment><wfw:commentRss>http://www.peterprovost.org/blog/syndication.axd?post=ac6cddbe-9cb8-4b99-9e96-a3f117f12cef</wfw:commentRss><feedburner:origLink>http://www.peterprovost.org/blog/post.aspx?id=ac6cddbe-9cb8-4b99-9e96-a3f117f12cef</feedburner:origLink></item><item><title>Code Generation Made Easy</title><description>&lt;p&gt;&lt;a href="http://www.peterprovost.org/blog/image.axd?picture=WindowsLiveWriter/CodeGenerationMadeEasy_9436/Visual%20Studio%20Logo_2.jpg" rel="lightbox"&gt;&lt;img title="Visual Studio Logo" style="border-right: 0px; border-top: 0px; display: inline; margin-left: 0px; border-left: 0px; margin-right: 0px; border-bottom: 0px" height="120" alt="Visual Studio Logo" src="http://www.peterprovost.org/blog/image.axd?picture=WindowsLiveWriter/CodeGenerationMadeEasy_9436/Visual%20Studio%20Logo_thumb.jpg" width="120" align="right" border="0" /&gt;&lt;/a&gt; The Text Template Transformation Toolkit, aka T4 Templates, is getting some press recently. T4 is a code generation and templating system that is built into VS, but not enough people know about it.&lt;/p&gt;  &lt;p&gt;In P&amp;amp;P, we used it for almost all of our code generation in our Software Factories, and it will be an important part of how we do code-gen in Visual Studio Team System Architecture Edition.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://reddevnews.com/news/devnews/article.aspx?editorialsid=1199"&gt;This recent article in the Redmond Developer News&lt;/a&gt; prompted me to blog this, and it is a nice overview of what T4 is all about with quotes from many of the key people involved in the development of the toolkit.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Here are some more recent posts about T4:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="T4 (Text Template Transformation Toolkit) Code Generation - Best Kept Visual Studio Secret" href="http://www.hanselman.com/blog/T4TextTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx"&gt;T4 Code Generation - Best Kept Visual Studio Secret&lt;/a&gt; - Scott Hanselman’s Uber Post about T4. Tons of good info here.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.t4editor.net/"&gt;Clarius T4 Editor&lt;/a&gt; – written by my good friends and former colleagues at Clarius Consulting in Argentina&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/davidebb/archive/2008/11/26/fun-with-t4-templates-and-dynamic-data.aspx"&gt;Fun with T4 Templates and Dynamic Data&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=VOpZSZAPAH8:XuAgJdCBNcM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=VOpZSZAPAH8:XuAgJdCBNcM:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=VOpZSZAPAH8:XuAgJdCBNcM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?i=VOpZSZAPAH8:XuAgJdCBNcM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=VOpZSZAPAH8:XuAgJdCBNcM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=VOpZSZAPAH8:XuAgJdCBNcM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/GeekNoise/~3/VOpZSZAPAH8/post.aspx</link><author>peter.provost.nospam@nospam.microsoft.com (Peter Provost)</author><comments>http://www.peterprovost.org/blog/post/Code-Generation-Made-Easy.aspx#comment</comments><guid isPermaLink="false">http://www.peterprovost.org/blog/post.aspx?id=e916f535-69c5-44fc-8c45-cbeb0738c91a</guid><pubDate>Wed, 03 Dec 2008 03:39:04 -1300</pubDate><category>Technology</category><dc:publisher>Peter Provost</dc:publisher><pingback:server>http://www.peterprovost.org/blog/pingback.axd</pingback:server><pingback:target>http://www.peterprovost.org/blog/post.aspx?id=e916f535-69c5-44fc-8c45-cbeb0738c91a</pingback:target><slash:comments>2</slash:comments><trackback:ping>http://www.peterprovost.org/blog/trackback.axd?id=e916f535-69c5-44fc-8c45-cbeb0738c91a</trackback:ping><wfw:comment>http://www.peterprovost.org/blog/post/Code-Generation-Made-Easy.aspx#comment</wfw:comment><wfw:commentRss>http://www.peterprovost.org/blog/syndication.axd?post=e916f535-69c5-44fc-8c45-cbeb0738c91a</wfw:commentRss><feedburner:origLink>http://www.peterprovost.org/blog/post.aspx?id=e916f535-69c5-44fc-8c45-cbeb0738c91a</feedburner:origLink></item><item><title>Visual Studio Team System 2008 Database Edition GDR - RTM</title><description>&lt;p&gt;In case you missed it yesterday, the Visual Studio Team System 2008 Database Edition GDR shipped yesterday!&lt;/p&gt;  &lt;p&gt;Here’s a snippet from &lt;a href="http://blogs.msdn.com/gertd/archive/2008/11/25/visual-studio-team-system-2008-database-edition-gdr-rtm.aspx"&gt;Gert Drapers’ announcement post&lt;/a&gt; on his Data Dude blog:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Although the name &amp;quot;GDR&amp;quot;, which stands for &amp;quot;General Redistribution Release&amp;quot;, implies otherwise, this really is a complete new release, based on a new architecture. We have taken the architectural changes from the Rosario project (Visual Studio Team System 2010) and rolled them forward in time. Rolling forward these changes help us align the GDR release with the upcoming Visual Studio Team System 2010 release and provide numerous new features and extensibility points in this release. If you would compare the GDR release with the &amp;quot;Visual Studio 2005 Team Edition for Database Professionals&amp;quot; or &amp;quot;Visual Studio Team System 2008 Database Edition&amp;quot; you will agree this is a completely new product! &lt;/p&gt;    &lt;h3&gt;The key architectural changes&lt;/h3&gt;    &lt;ul&gt;     &lt;li&gt;Model based architecture - Everything underneath the covers is based on a true model representation of the SQL Server schema. This facilitates a true offline declarative database development system where the source code defines the shapes of the schema objects. &lt;/li&gt;      &lt;li&gt;Models are implemented by Database Schema Providers, DSP's for short. - The introduction of a provider model enables multiple things at once. First of all the decoupling of release vehicles. For example when SQL Server will release a new version or adds new functionality in a service pack, like they did in SQL Server 2005 SP2 when adding &amp;quot;vardecimal&amp;quot; support, we can simply update an existing provider or provide a new one in case of a new SQL Server release. Overtime we will go to a model where the SQL Server providers will be an integral part of the SQL Server release. The provider model is also a key extensibility point, allowing 3rd parties to extend database project ecosystem and add support for other database platforms in Visual Studio Team System 2010. &lt;/li&gt;      &lt;li&gt;Tool extensibility - In this release external tool writers have full access to the T-SQL parsers (for SQL Server 2000, 2005 and 2008), the SQL Script DOM and the schema model (when inside Visual Studio). This adds on top of the ability to write extend the tools inside the platform. You can extend T-SQL refactoring by writing your own refactoring types (operations) and refactoring targets; add T-SQL Static Code Analysis rules, data generators, data distributions and test conditions. Database Projects (.dbproj) now provide a truly extensible declarative database development platform. &lt;/li&gt;      &lt;li&gt;Separation of BUILD and DEPLOY. - The separation of build &amp;amp; deploy makes it possible to deploy the output of your database project to many different targets and different points in time. Build now produces a single artifact file hat describes the schema inside your database, called a .DBSCHEMA file. This file is used by the deployment engine to deploy your schema. &lt;/li&gt;      &lt;li&gt;Standalone Deployment Engine. - The inclusion of a standalone and &lt;a href="http://blogs.msdn.com/gertd/archive/2008/08/22/redist.aspx"&gt;redistributable&lt;/a&gt; deployment engine makes it possible to deploy the output of your database projects (.DBSCHEMA files) to a target database without the need of having Visual Studio Team System Database Edition installed. This enables key scenarios like the inclusion of database schema deployment as part of your application installation. &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;All these architectural changes enable many new usage scenarios and interesting new features.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Many, many congrats to the team!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=rw23oo55h3U:s-RcoykMIjI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=rw23oo55h3U:s-RcoykMIjI:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=rw23oo55h3U:s-RcoykMIjI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?i=rw23oo55h3U:s-RcoykMIjI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=rw23oo55h3U:s-RcoykMIjI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=rw23oo55h3U:s-RcoykMIjI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/GeekNoise/~3/rw23oo55h3U/post.aspx</link><author>peter.provost.nospam@nospam.microsoft.com (Peter Provost)</author><comments>http://www.peterprovost.org/blog/post/Visual-Studio-Team-System-2008-Database-Edition-GDR-RTM.aspx#comment</comments><guid isPermaLink="false">http://www.peterprovost.org/blog/post.aspx?id=e1e8ca09-39ad-470b-bd5a-8e3d5ac5dfa6</guid><pubDate>Wed, 03 Dec 2008 03:26:14 -1300</pubDate><category>Technology</category><dc:publisher>Peter Provost</dc:publisher><pingback:server>http://www.peterprovost.org/blog/pingback.axd</pingback:server><pingback:target>http://www.peterprovost.org/blog/post.aspx?id=e1e8ca09-39ad-470b-bd5a-8e3d5ac5dfa6</pingback:target><slash:comments>1</slash:comments><trackback:ping>http://www.peterprovost.org/blog/trackback.axd?id=e1e8ca09-39ad-470b-bd5a-8e3d5ac5dfa6</trackback:ping><wfw:comment>http://www.peterprovost.org/blog/post/Visual-Studio-Team-System-2008-Database-Edition-GDR-RTM.aspx#comment</wfw:comment><wfw:commentRss>http://www.peterprovost.org/blog/syndication.axd?post=e1e8ca09-39ad-470b-bd5a-8e3d5ac5dfa6</wfw:commentRss><feedburner:origLink>http://www.peterprovost.org/blog/post.aspx?id=e1e8ca09-39ad-470b-bd5a-8e3d5ac5dfa6</feedburner:origLink></item><item><title>Hyper-V Management Console on Vista x64</title><description>&lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 0px 0px 0px 15px; border-left: 0px; border-bottom: 0px" height="95" alt="logo-ms-ws08-v" src="http://www.peterprovost.org/blog/image.axd?picture=WindowsLiveWriter/HyperVManagementConsoleonVistax64_DAD5/logo-ms-ws08-v_3.png" width="244" align="right" border="0" /&gt; After a great time in Los Angeles last week for PDC2008, I returned to Redmond this week to re-deliver my talk &amp;quot;Architecture Without Big-Design-Up-Front&amp;quot; for the &lt;em&gt;patterns &amp;amp; practices &lt;/em&gt;Summit this morning.&lt;/p&gt;  &lt;p&gt;I've been doing my demos for this talk using the new Visual Studio 2010 CTP and have it running on by under-the-desk machine (more power than my laptop). But since the Summit is in a different building than my demo machine, I wanted to reach into it from my laptop using the Hyper-V Management Console from Windows Vista.&lt;/p&gt;  &lt;p&gt;After getting my machine up to SP1 (one of my prereqs had failed) I was able to install it. But for some reason, I couldn't get it to connect. I could connect with Remote Desktop, but I couldn't connect with the Hyper-V Console.&lt;/p&gt;  &lt;p&gt;After a bit of digging, I found a WONDEFUL set of posts by John Howard, a PM from the Hyper-V team. In there he shows you all the security and firewall connections you should check if you have issues connecting to the Hyper-V server.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.technet.com/jhoward/archive/2008/03/28/part-1-hyper-v-remote-management-you-do-not-have-the-requested-permission-to-complete-this-task-contact-the-administrator-of-the-authorization-policy-for-the-computer-computername.aspx"&gt;Part 1 - The Server-side Stuff&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.technet.com/jhoward/archive/2008/03/28/part-2-hyper-v-remote-management-you-do-not-have-the-requested-permission-to-complete-this-task-contact-the-administrator-of-the-authorization-policy-for-the-computer-computername.aspx"&gt;Part 2 - The Client-side Stuff&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.technet.com/jhoward/archive/2008/03/30/part-3-hyper-v-remote-management-you-do-not-have-the-requested-permission-to-complete-this-task-contact-the-administrator-of-the-authorization-policy-for-the-computer-computername.aspx"&gt;Part 3 - Server-side with Server Core&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.technet.com/jhoward/archive/2008/04/01/part-4-domain-joined-environment-hyper-v-remote-management-you-do-not-have-the-requested-permission-to-complete-this-task-contact-the-administrator-of-the-authorization-policy-for-the-computer-computername.aspx"&gt;Part 4 - In a Domain-joined Environment&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.technet.com/jhoward/archive/2008/04/04/part-5-domain-client-to-workgroup-server-hyper-v-remote-management-you-do-not-have-the-requested-permission-to-complete-this-task-contact-the-administrator-of-the-authorization-policy-for-the-computer-computername.aspx"&gt;Part 5 - Weirder Domain-joined Stuff&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;It turns out that all of my settings from Part 1 were correct, but one setting in Part 2 was wrong (WHY??). I didn't need Parts 3-5, but I'm including them here for completeness.&lt;/p&gt;  &lt;p&gt;Thanks John! You saved my ass. &lt;/p&gt;  &lt;p&gt;PS. Now that PDC is behind me, I'm planning a bunch of blog content to share all that great stuff with the rest of you. Stay tuned!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=WjgKXnP4UVE:9aLwb1C32vk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=WjgKXnP4UVE:9aLwb1C32vk:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=WjgKXnP4UVE:9aLwb1C32vk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?i=WjgKXnP4UVE:9aLwb1C32vk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=WjgKXnP4UVE:9aLwb1C32vk:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=WjgKXnP4UVE:9aLwb1C32vk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/GeekNoise/~3/WjgKXnP4UVE/post.aspx</link><author>peter.provost.nospam@nospam.microsoft.com (Peter Provost)</author><comments>http://www.peterprovost.org/blog/post/Hyper-V-Management-Console-on-Vista-x64.aspx#comment</comments><guid isPermaLink="false">http://www.peterprovost.org/blog/post.aspx?id=13652ec5-2b75-4eab-8c40-38cce491a03b</guid><pubDate>Tue, 04 Nov 2008 09:39:52 -1300</pubDate><category>Technology</category><dc:publisher>Peter Provost</dc:publisher><pingback:server>http://www.peterprovost.org/blog/pingback.axd</pingback:server><pingback:target>http://www.peterprovost.org/blog/post.aspx?id=13652ec5-2b75-4eab-8c40-38cce491a03b</pingback:target><slash:comments>0</slash:comments><trackback:ping>http://www.peterprovost.org/blog/trackback.axd?id=13652ec5-2b75-4eab-8c40-38cce491a03b</trackback:ping><wfw:comment>http://www.peterprovost.org/blog/post/Hyper-V-Management-Console-on-Vista-x64.aspx#comment</wfw:comment><wfw:commentRss>http://www.peterprovost.org/blog/syndication.axd?post=13652ec5-2b75-4eab-8c40-38cce491a03b</wfw:commentRss><feedburner:origLink>http://www.peterprovost.org/blog/post.aspx?id=13652ec5-2b75-4eab-8c40-38cce491a03b</feedburner:origLink></item><item><title>Crazy Times Ahead - PDC, P&amp;amp;P Summit, Tech Ed EMEA</title><description>&lt;p&gt;I don't know how I get myself into these things, but it looks like I'm hitting three conferences in three weeks, only two weeks after moving my family into a new house.&lt;/p&gt;  &lt;p&gt;Foolish? Hell yeah. Fun? You bet!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoftpdc.com/"&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 0px 0px 0px 15px; border-left: 0px; border-bottom: 0px" height="170" alt="Bling1" src="http://www.peterprovost.org/blog/image.axd?picture=WindowsLiveWriter/CrazyTimesAheadPDCPPSummitTechEdEMEA_11E5B/Bling1_3.jpg" width="124" align="right" border="0" /&gt;&lt;/a&gt;I'm very fortunate this year to be one of the folks representing Visual Studio Team System Architecture Edition at the &lt;a href="http://www.microsoftpdc.com/"&gt;Microsoft Professional Developer's Conference&lt;/a&gt; (PDC) in Los Angeles. PDC is always a special conference, because this is where we get to tell you what we've got coming up for developers. What is the next cool thing? Only one way to find out and that is come to PDC.&lt;/p&gt;  &lt;p&gt;My talk at PDC is called &amp;quot;Architecture Without Big Design Up Front&amp;quot;. It is a mix of agile development, architecture tooling, a little process, a real world problem to solve with real code (so made up samples here) and hopefully some fun.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.pnpsummit.com/"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="96" alt="PAG_Logo_NoText" src="http://www.peterprovost.org/blog/image.axd?picture=WindowsLiveWriter/CrazyTimesAheadPDCPPSummitTechEdEMEA_11E5B/PAG_Logo_NoText_1.png" width="120" align="right" border="0" /&gt;&lt;/a&gt; The week after PDC I fly up to Redmond to kill two birds with one stone: my monthly visit to my team in Building 25 on campus and a stop off at the P&amp;amp;P Summit to talk again. I always&amp;#160; love the &lt;a href="http://www.pnpsummit.com/"&gt;P&amp;amp;P Summit&lt;/a&gt; as a speaking gig. The audience is small, but not too small. The talks can be very interactive and you always get to talk about interesting things.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/emea/teched2008/developer/registration/"&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 0px 0px 0px 5px; border-left: 0px; border-bottom: 0px" height="130" alt="TechEd_EMEA_180_Speak_DEV" src="http://www.peterprovost.org/blog/image.axd?picture=WindowsLiveWriter/CrazyTimesAheadPDCPPSummitTechEdEMEA_11E5B/TechEd_EMEA_180_Speak_DEV_3.jpg" width="130" align="right" border="0" /&gt;&lt;/a&gt; The following week, I'll be in Barcelona Spain for &lt;a href="http://www.microsoft.com/emea/teched2008/developer/registration/"&gt;Tech Ed EMEA&lt;/a&gt;. I'll be repeating my PDC talk there for people who couldn't make it to LA, and I'll also be doing my classic &amp;quot;Agile Talk on Agility&amp;quot;. (Thanks again to &lt;a href="http://www.agileprogrammer.com/oneagilecoder/"&gt;Brian Button&lt;/a&gt; from whom I stole this talk years ago). My wonderful, amazing wife &lt;a href="http://blogs.provost.org/emily/"&gt;Emily&lt;/a&gt; is coming along on this one (she never lets me go on trips like this solo), and it just happens to coincide with our 8th Anniversary, so we're going to do a little vacation while we're there.&lt;/p&gt;  &lt;p&gt;Hopefully I'll bump into some of you on the road this tour. Please if you see me walking the hallways or in the hotel lobby or at one of the many social events, feel free to walk up and introduce yourself.&lt;/p&gt;  &lt;p&gt;See you there!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=2cNhdV1XL-I:DQkST6bX7qg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=2cNhdV1XL-I:DQkST6bX7qg:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=2cNhdV1XL-I:DQkST6bX7qg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?i=2cNhdV1XL-I:DQkST6bX7qg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=2cNhdV1XL-I:DQkST6bX7qg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=2cNhdV1XL-I:DQkST6bX7qg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/GeekNoise/~3/2cNhdV1XL-I/post.aspx</link><author>peter.provost.nospam@nospam.microsoft.com (Peter Provost)</author><comments>http://www.peterprovost.org/blog/post/Crazy-Times-Ahead-PDC-Pamp3bP-Summit-Tech-Ed-EMEA.aspx#comment</comments><guid isPermaLink="false">http://www.peterprovost.org/blog/post.aspx?id=42fbe195-f7a4-407f-8374-238cbd502079</guid><pubDate>Thu, 23 Oct 2008 13:27:29 -1300</pubDate><category>Technology</category><dc:publisher>Peter Provost</dc:publisher><pingback:server>http://www.peterprovost.org/blog/pingback.axd</pingback:server><pingback:target>http://www.peterprovost.org/blog/post.aspx?id=42fbe195-f7a4-407f-8374-238cbd502079</pingback:target><slash:comments>1</slash:comments><trackback:ping>http://www.peterprovost.org/blog/trackback.axd?id=42fbe195-f7a4-407f-8374-238cbd502079</trackback:ping><wfw:comment>http://www.peterprovost.org/blog/post/Crazy-Times-Ahead-PDC-Pamp3bP-Summit-Tech-Ed-EMEA.aspx#comment</wfw:comment><wfw:commentRss>http://www.peterprovost.org/blog/syndication.axd?post=42fbe195-f7a4-407f-8374-238cbd502079</wfw:commentRss><feedburner:origLink>http://www.peterprovost.org/blog/post.aspx?id=42fbe195-f7a4-407f-8374-238cbd502079</feedburner:origLink></item><item><title>ArcCast.TV &amp;ndash; What&amp;rsquo;s coming for Architects in Visual Studio Team System</title><description>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Somehow this slipped past me, but a couple of weeks ago a webcast that I did with local Architect Evangelist Joe Shirey posted up on Channel9.&lt;/p&gt;  &lt;p&gt;Here’s the official description:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;&lt;a href="http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Peter-Provost-on-whats-coming-for-Architects-in-Visual-Studio-Team-System/"&gt;ARCast.TV - Peter Provost on what’s coming for Architects in Visual Studio Team System&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;The upcoming version of Visual Studio Team System (code named Rosario) has a number of new features and functions for Architects.&amp;#160; Senior Program Manager of Visual Studio Team System for Architects Edition, &lt;a href="http://www.peterprovost.org/blog/"&gt;Peter Provost&lt;/a&gt;, sits down with &lt;a href="http://www.joeshirey.com/"&gt;Joe Shirey&lt;/a&gt; to discuss what investments Microsoft has made into the product and how it will potentially improve the lives of Architects.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;In addition to that, a number of other great webcasts have been going up by my team mates and other VSTS folks. We’ve created a special section on Channel9 for all of this great content at &lt;b&gt;&lt;a href="http://channel9.msdn.com/VisualStudio/"&gt;http://channel9.msdn.com/VisualStudio/&lt;/a&gt;&lt;/b&gt; so please go check it out!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=UBfAlLwOMr0:pRjTFFHpbdQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=UBfAlLwOMr0:pRjTFFHpbdQ:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=UBfAlLwOMr0:pRjTFFHpbdQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?i=UBfAlLwOMr0:pRjTFFHpbdQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=UBfAlLwOMr0:pRjTFFHpbdQ:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=UBfAlLwOMr0:pRjTFFHpbdQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/GeekNoise/~3/UBfAlLwOMr0/post.aspx</link><author>peter.provost.nospam@nospam.microsoft.com (Peter Provost)</author><comments>http://www.peterprovost.org/blog/post/ArcCastTV-ndash3b-Whatrsquo3bs-coming-for-Architects-in-Visual-Studio-Team-System.aspx#comment</comments><guid isPermaLink="false">http://www.peterprovost.org/blog/post.aspx?id=def2201c-46e8-4eeb-93c0-a1c95fcc8702</guid><pubDate>Tue, 14 Oct 2008 06:25:32 -1300</pubDate><category>Technology</category><dc:publisher>Peter Provost</dc:publisher><pingback:server>http://www.peterprovost.org/blog/pingback.axd</pingback:server><pingback:target>http://www.peterprovost.org/blog/post.aspx?id=def2201c-46e8-4eeb-93c0-a1c95fcc8702</pingback:target><slash:comments>0</slash:comments><trackback:ping>http://www.peterprovost.org/blog/trackback.axd?id=def2201c-46e8-4eeb-93c0-a1c95fcc8702</trackback:ping><wfw:comment>http://www.peterprovost.org/blog/post/ArcCastTV-ndash3b-Whatrsquo3bs-coming-for-Architects-in-Visual-Studio-Team-System.aspx#comment</wfw:comment><wfw:commentRss>http://www.peterprovost.org/blog/syndication.axd?post=def2201c-46e8-4eeb-93c0-a1c95fcc8702</wfw:commentRss><feedburner:origLink>http://www.peterprovost.org/blog/post.aspx?id=def2201c-46e8-4eeb-93c0-a1c95fcc8702</feedburner:origLink></item><item><title>Water for Gas and the First Law of Thermodynamics</title><description>&lt;p&gt;&lt;img title="snake-oil" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 0px 0px 15px; border-right-width: 0px" height="260" alt="snake-oil" src="http://www.peterprovost.org/blog/image.axd?picture=WindowsLiveWriter/WaterforGasandtheFirstLawofThermodynamic_FAE1/snake-oil_3.jpg" width="125" align="right" border="0" /&gt; I’m always amazed at the things people will believe. Today I got trackback spam from a “water for gas” site on &lt;a href="http://www.peterprovost.org/blog/post/Miles-per-Gallon-vs-Gallons-per-Mile.aspx"&gt;my miles per gallon post&lt;/a&gt;. (The trackback has since been deleted.)&lt;/p&gt;  &lt;p&gt;I hadn’t run across this particular “technology” yet, so I dug into it a bit. It turns out there are dozens of sites out there claiming you can add a water-based fuel system to your car to significantly improve your gas mileage.&lt;/p&gt;  &lt;p&gt;The gist of what they’re claiming is simple:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;You use energy from your car’s electrical system to electrolyze water into Hydrogen and Oxygen. &lt;/li&gt;    &lt;li&gt;You then run the gaseous hydrogen and oxygen back into your intake manifold where it burns in your engine’s combustion chamber, resulting in more power with less gasoline used. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Sound oh so simple. Except that this is yet another instance of someone peddling a &lt;a href="http://en.wikipedia.org/wiki/Perpetual_motion"&gt;perpetual motion machine&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Here’s the problem: The &lt;a href="http://en.wikipedia.org/wiki/First_law_of_thermodynamics"&gt;first law of thermodynamics&lt;/a&gt; states:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;The increase in the internal energy of a system is equal to the amount of energy added by heating the system, minus the amount lost as a result of the work done by the system on its surroundings&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;In layman’s terms, this means you can’t get something for nothing. Applying that to the water for gas system, it basically means you will use more energy electrolyzing the water into hydrogen and oxygen than you will get combining them back together when you burn them in your engine.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;In other words, if you took the gasoline completely out of the equation, you would eventually have your battery die because the engine wouldn’t make as much energy as it produced. &lt;/strong&gt;(See &lt;a href="http://aardvark.co.nz/hho_scam.shtml"&gt;this breakdown of the math&lt;/a&gt; if you want more info.)&lt;/p&gt;  &lt;p&gt;What is more interesting than the bunk science displayed here is the willingness of people to be duped by this and respond with things like “but my friend has one and it works great”. Here we have some guy in middle-America (with little or no scientific or engineering experience and certainly without any of the proper equipment necessary to actually test this) telling you that the last 200 years of science and engineering are false and that perpetual motion (or snake oil) are real. The fact is, most of these scams are actually MLMs and Pyramid Schemes, do I guess we shouldn’t be surprised at the misleading information.&lt;/p&gt;  &lt;p&gt;Remember people: &lt;strong&gt;If something seems too good to be true, it almost always is!&lt;/strong&gt; The ultimate test for this in on, however. Bruce Simpson has offered up a million dollars to the first person who can prove it works. Read more over at the &lt;a href="http://aardvark.co.nz/hho_challenge.shtml"&gt;One Million Dollar HHO Challenge site&lt;/a&gt;. (He’s got a bunch of other great links to the real science involved here in case you want more info.)&lt;/p&gt;  &lt;p&gt;So thanks to the trackback guy for letting me learn a bit about this new form of &lt;a href="http://en.wikipedia.org/wiki/Snake_oil"&gt;Snake Oil&lt;/a&gt;. Hopefully this will help a few more people save their money for things that actually will save money on fuel, like cars that get better mileage.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=cpF55OPiRbQ:LD5h_pAY0tE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=cpF55OPiRbQ:LD5h_pAY0tE:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=cpF55OPiRbQ:LD5h_pAY0tE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?i=cpF55OPiRbQ:LD5h_pAY0tE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=cpF55OPiRbQ:LD5h_pAY0tE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=cpF55OPiRbQ:LD5h_pAY0tE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/GeekNoise/~3/cpF55OPiRbQ/post.aspx</link><author>peter.provost.nospam@nospam.microsoft.com (Peter Provost)</author><comments>http://www.peterprovost.org/blog/post/Water-for-Gas-and-the-First-Law-of-Thermodynamics.aspx#comment</comments><guid isPermaLink="false">http://www.peterprovost.org/blog/post.aspx?id=acd2533d-fcc3-4252-8dd4-c3a7adcbcf45</guid><pubDate>Wed, 24 Sep 2008 10:55:30 -1300</pubDate><category>Opinions, Politics, Rants</category><dc:publisher>Peter Provost</dc:publisher><pingback:server>http://www.peterprovost.org/blog/pingback.axd</pingback:server><pingback:target>http://www.peterprovost.org/blog/post.aspx?id=acd2533d-fcc3-4252-8dd4-c3a7adcbcf45</pingback:target><slash:comments>2</slash:comments><trackback:ping>http://www.peterprovost.org/blog/trackback.axd?id=acd2533d-fcc3-4252-8dd4-c3a7adcbcf45</trackback:ping><wfw:comment>http://www.peterprovost.org/blog/post/Water-for-Gas-and-the-First-Law-of-Thermodynamics.aspx#comment</wfw:comment><wfw:commentRss>http://www.peterprovost.org/blog/syndication.axd?post=acd2533d-fcc3-4252-8dd4-c3a7adcbcf45</wfw:commentRss><feedburner:origLink>http://www.peterprovost.org/blog/post.aspx?id=acd2533d-fcc3-4252-8dd4-c3a7adcbcf45</feedburner:origLink></item><item><title>Updated PowerShell Syntax File for vim</title><description>&lt;p&gt;Thanks to &lt;a href="http://blogs.msdn.com/heaths/"&gt;Heath Stewart&lt;/a&gt; for sending in some nice updates to the vim syntax file for PowerShell.&lt;/p&gt;  &lt;p&gt;Changes in v2.7:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Added begin, process, and end keywords for script blocks &lt;/li&gt;    &lt;li&gt;Make foreach and where highlight when used as foreach-object and where-object&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;The new version is up and available here: &lt;a title="http://www.vim.org/scripts/script.php?script_id=1327" href="http://www.vim.org/scripts/script.php?script_id=1327"&gt;http://www.vim.org/scripts/script.php?script_id=1327&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=FcEXu2jFl4M:lMpykVxalAg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=FcEXu2jFl4M:lMpykVxalAg:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=FcEXu2jFl4M:lMpykVxalAg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?i=FcEXu2jFl4M:lMpykVxalAg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=FcEXu2jFl4M:lMpykVxalAg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=FcEXu2jFl4M:lMpykVxalAg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/GeekNoise/~3/FcEXu2jFl4M/post.aspx</link><author>peter.provost.nospam@nospam.microsoft.com (Peter Provost)</author><comments>http://www.peterprovost.org/blog/post/Updated-PowerShell-Syntax-File-for-vim.aspx#comment</comments><guid isPermaLink="false">http://www.peterprovost.org/blog/post.aspx?id=7f5536cd-8971-45be-9ee1-94294bb08681</guid><pubDate>Mon, 22 Sep 2008 05:50:52 -1300</pubDate><category>Technology</category><dc:publisher>Peter Provost</dc:publisher><pingback:server>http://www.peterprovost.org/blog/pingback.axd</pingback:server><pingback:target>http://www.peterprovost.org/blog/post.aspx?id=7f5536cd-8971-45be-9ee1-94294bb08681</pingback:target><slash:comments>2</slash:comments><trackback:ping>http://www.peterprovost.org/blog/trackback.axd?id=7f5536cd-8971-45be-9ee1-94294bb08681</trackback:ping><wfw:comment>http://www.peterprovost.org/blog/post/Updated-PowerShell-Syntax-File-for-vim.aspx#comment</wfw:comment><wfw:commentRss>http://www.peterprovost.org/blog/syndication.axd?post=7f5536cd-8971-45be-9ee1-94294bb08681</wfw:commentRss><feedburner:origLink>http://www.peterprovost.org/blog/post.aspx?id=7f5536cd-8971-45be-9ee1-94294bb08681</feedburner:origLink></item><item><title>Wrath of the Lich King Theme for Windows Mobile 5 and 6</title><description>&lt;p&gt;Last night I finally got around to upgrading my Blackjack to Windows Mobile 6.0. I’d been delaying because they didn’t have an updater that ran on Vista and I don’t have an XP machine available. Once the Vista updater arrived, I put it on the backlog.&lt;/p&gt;  &lt;p&gt;I had an old WoW theme for my Blackjack but I decided it was time to make a new one. Here’s a photo of it running on my phone:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.peterprovost.org/blog/image.axd?picture=WindowsLiveWriter/WrathoftheLichKingThemeforWindowsMobile5_CB51/LichKing_Theme.jpg" rel="lightbox"&gt;&lt;img title="LichKing_Theme" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="183" alt="LichKing_Theme" src="http://www.peterprovost.org/blog/image.axd?picture=WindowsLiveWriter/WrathoftheLichKingThemeforWindowsMobile5_CB51/LichKing_Theme_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;If you’d like to download it, here’s the ZIP file: &lt;a href="http://www.peterprovost.org/Files/LichKing_SmartPhoneTheme.zip"&gt;LichKing_SmartPhoneTheme.zip&lt;/a&gt; (26KB)&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=yfWL73JFS6s:_svTXUrhHXI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=yfWL73JFS6s:_svTXUrhHXI:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=yfWL73JFS6s:_svTXUrhHXI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?i=yfWL73JFS6s:_svTXUrhHXI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=yfWL73JFS6s:_svTXUrhHXI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=yfWL73JFS6s:_svTXUrhHXI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/GeekNoise/~3/yfWL73JFS6s/post.aspx</link><author>peter.provost.nospam@nospam.microsoft.com (Peter Provost)</author><comments>http://www.peterprovost.org/blog/post/Wrath-of-the-Lich-King-Theme-for-Windows-Mobile-5-and-6.aspx#comment</comments><guid isPermaLink="false">http://www.peterprovost.org/blog/post.aspx?id=824a6e81-48bd-43d4-8856-1a93f0dc2da3</guid><pubDate>Thu, 18 Sep 2008 07:33:06 -1300</pubDate><category>Games and Other Fun Stuff</category><dc:publisher>Peter Provost</dc:publisher><pingback:server>http://www.peterprovost.org/blog/pingback.axd</pingback:server><pingback:target>http://www.peterprovost.org/blog/post.aspx?id=824a6e81-48bd-43d4-8856-1a93f0dc2da3</pingback:target><slash:comments>0</slash:comments><trackback:ping>http://www.peterprovost.org/blog/trackback.axd?id=824a6e81-48bd-43d4-8856-1a93f0dc2da3</trackback:ping><wfw:comment>http://www.peterprovost.org/blog/post/Wrath-of-the-Lich-King-Theme-for-Windows-Mobile-5-and-6.aspx#comment</wfw:comment><wfw:commentRss>http://www.peterprovost.org/blog/syndication.axd?post=824a6e81-48bd-43d4-8856-1a93f0dc2da3</wfw:commentRss><feedburner:origLink>http://www.peterprovost.org/blog/post.aspx?id=824a6e81-48bd-43d4-8856-1a93f0dc2da3</feedburner:origLink></item><item><title>Keyboard Shortcuts to Use with Remote Desktop</title><description>&lt;p&gt;The list of keyboard shortcuts for Remote Desktop used to be one click away in the System menu. Then it moved to the Help system. On my newest version, I can’t find them at all.&lt;/p&gt;  &lt;p&gt;Today I was trying to remember the shortcut for screenshot in RDP and couldn’t find it. A quick internet search later, the answer was found. Crazy how sometimes the community support content is better and more discoverable that product help sytems.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://mintywhite.com/tech/xp/keyboard-shortcuts-to-use-with-remote-desktop/"&gt;MinyWhite.com – Keyboard Shortcuts to Use with Remote Desktop&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.peterprovost.org/blog/image.axd?picture=WindowsLiveWriter/KeyboardShortcutstoUsewithRemoteDesktop_C1FE/remote-desktop-shortcuts-01_2.png" rel="lightbox"&gt;&lt;img title="remote-desktop-shortcuts-01" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="135" alt="remote-desktop-shortcuts-01" src="http://www.peterprovost.org/blog/image.axd?picture=WindowsLiveWriter/KeyboardShortcutstoUsewithRemoteDesktop_C1FE/remote-desktop-shortcuts-01_thumb.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;(I’ve copied the image over here so I don’t lose it. That is nicely done. Thanks MintyWhite!)&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=vfJIKZE0Y0Q:_JEwHMza-94:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=vfJIKZE0Y0Q:_JEwHMza-94:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=vfJIKZE0Y0Q:_JEwHMza-94:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?i=vfJIKZE0Y0Q:_JEwHMza-94:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=vfJIKZE0Y0Q:_JEwHMza-94:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GeekNoise?a=vfJIKZE0Y0Q:_JEwHMza-94:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GeekNoise?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://feedproxy.google.com/~r/GeekNoise/~3/vfJIKZE0Y0Q/post.aspx</link><author>peter.provost.nospam@nospam.microsoft.com (Peter Provost)</author><comments>http://www.peterprovost.org/blog/post/Keyboard-Shortcuts-to-Use-with-Remote-Desktop.aspx#comment</comments><guid isPermaLink="false">http://www.peterprovost.org/blog/post.aspx?id=0289e749-7cf1-4bca-a0cd-d01cc8d0f8b3</guid><pubDate>Thu, 18 Sep 2008 06:53:18 -1300</pubDate><category>Technology</category><dc:publisher>Peter Provost</dc:publisher><pingback:server>http://www.peterprovost.org/blog/pingback.axd</pingback:server><pingback:target>http://www.peterprovost.org/blog/post.aspx?id=0289e749-7cf1-4bca-a0cd-d01cc8d0f8b3</pingback:target><slash:comments>4</slash:comments><trackback:ping>http://www.peterprovost.org/blog/trackback.axd?id=0289e749-7cf1-4bca-a0cd-d01cc8d0f8b3</trackback:ping><wfw:comment>http://www.peterprovost.org/blog/post/Keyboard-Shortcuts-to-Use-with-Remote-Desktop.aspx#comment</wfw:comment><wfw:commentRss>http://www.peterprovost.org/blog/syndication.axd?post=0289e749-7cf1-4bca-a0cd-d01cc8d0f8b3</wfw:commentRss><feedburner:origLink>http://www.peterprovost.org/blog/post.aspx?id=0289e749-7cf1-4bca-a0cd-d01cc8d0f8b3</feedburner:origLink></item></channel>
</rss>
