<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>www.fooberry.com</title>
	
	<link>http://fooberry.com</link>
	<description>Sweetness Without Context</description>
	<pubDate>Mon, 17 Nov 2008 22:03:55 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/fooberry" type="application/rss+xml" /><item>
		<title>WPF Toolkit DataGrid, ColumnHeader Style and Blend</title>
		<link>http://feeds.feedburner.com/~r/fooberry/~3/456464981/</link>
		<comments>http://fooberry.com/2008/11/17/wpf-toolkit-datagrid-columnheader-style-and-blend/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 22:03:55 +0000</pubDate>
		<dc:creator>mark</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[WPF]]></category>

		<category><![CDATA[Blend]]></category>

		<category><![CDATA[datagrid]]></category>

		<category><![CDATA[ReSharper]]></category>

		<guid isPermaLink="false">http://fooberry.com/?p=518</guid>
		<description><![CDATA[<br/>I&#8217;ve spent the better part of the day trying to figure out how to style the column headers of my WPF Toolkit datagrid through Microsoft Blend. Blend is a great tool and I couldn&#8217;t imagine trying to do a WPF application without it; however it is still immature and this could be why I found [...]]]></description>
			<content:encoded><![CDATA[<br/><p>I&#8217;ve spent the better part of the day trying to figure out how to style the column headers of my WPF Toolkit datagrid through Microsoft Blend. Blend is a great tool and I couldn&#8217;t imagine trying to do a WPF application without it; however it is still immature and this could be why I found it so difficult to figure out. It could just be that I&#8217;m new to  Blend, WPF, and XAML and still have a lot to learn.</p>
<p>I&#8217;ll spare you the agony I suffered this morning and jump right into the solution.</p>
<p>We have a pretty basic style for the datagrid at the moment. You&#8217;ll have to forgive the visual obfuscation.<br />
<img title="11" src="http://fooberry.com/wp-content/uploads/2008/11/11-300x69.png" alt="" width="300" height="69" /></p>
<p>Changing the the column header style looked pretty obvious in Blend. The menu walks me through the steps to create a resource for the header style.</p>
<p><img class="alignnone size-full wp-image-521" title="21" src="http://fooberry.com/wp-content/uploads/2008/11/21.png" alt="" width="747" height="653" /></p>
<p>Give the style resource a name. In this case I am going to show a pivoted set of data with a set of frozen columns on the left and columns that accept entering data on the right. I give it the name I want and choose its destination.<br />
<img class="alignnone size-full wp-image-522" title="31" src="http://fooberry.com/wp-content/uploads/2008/11/31.png" alt="" width="386" height="254" /></p>
<p>When the steps are complete, I have a style in the resources dictionary for my window, but something is missing.</p>
<p><img class="alignnone size-full wp-image-523" title="4" src="http://fooberry.com/wp-content/uploads/2008/11/4.png" alt="" width="345" height="464" /></p>
<div style="padding: 1em 0pt; text-align: left;">I&#8217;m not sure if I&#8217;m missing a step, but the target type of the resource is the generic IFrameInputElement type. It doesn&#8217;t provide any properties to set in the designer.<img class="alignnone size-full wp-image-524" title="5" src="http://fooberry.com/wp-content/uploads/2008/11/5.png" alt="" width="376" height="238" /></div>
<div style="padding: 1em 0pt; text-align: left;">If I look at the XAML that was created, it doesn&#8217;t give it a type.</div>
<pre language="xml" name="code">&lt;Style x:Key="EnterableColumnHeaderStyle"/&gt;</pre>
<p>The examples I&#8217;ve been seeing have a TargetType property to allow for the attached properties to work properly. I got ahead and add my TargetType property.</p>
<p><img class="alignnone size-full wp-image-525" title="6" src="http://fooberry.com/wp-content/uploads/2008/11/6.png" alt="" width="835" height="78" /></p>
<p>As you can see, I&#8217;m still learning WPF and XAML.  ReSharper steps in and offers to help out a bit. I am glad to let it. It adds the proper namespace to the resource:</p>
<pre language="xml" name="code>
&lt;Style x:Key="EnterableColumnHeaderStyle" TargetType="primitives:DataGridColumnHeader"&gt;
</pre>
<p>It also creates the namespace directive:</p>
<p><a href="http://fooberry.com/wp-content/uploads/2008/11/7.png"><img class="alignnone size-medium wp-image-526" title="7" src="http://fooberry.com/wp-content/uploads/2008/11/7-300x72.png" alt="" width="300" height="72" /></a></p>
<p>I don&#8217;t really like the namespace alias, so we&#8217;ll change it with the help of ReSharper.</p>
<div id="s8t." style="padding: 1em 0pt; text-align: left;"><img class="alignnone size-full wp-image-527" title="8" src="http://fooberry.com/wp-content/uploads/2008/11/8.png" alt="" width="500" height="173" /></div>
<p>Blend now knows our target type and gives us all the properties we could want to style.</p>
<div id="ydpf" style="padding: 1em 0pt; text-align: left;"><img class="alignnone size-full wp-image-528" title="9" src="http://fooberry.com/wp-content/uploads/2008/11/9.png" alt="" width="345" height="444" /></p>
<p>We can do whatever we want with the column header now.<img class="alignnone size-full wp-image-529" title="10" src="http://fooberry.com/wp-content/uploads/2008/11/10.png" alt="" width="500" height="240" /></p>
<p>And, just as we&#8217;d expect, we get our new style.</p>
<p><img class="alignnone size-full wp-image-530" title="111" src="http://fooberry.com/wp-content/uploads/2008/11/111.png" alt="" width="340" height="132" /></p>
<p>We can also apply a style to a particular column.</p>
<pre language="xml" name="code">
&lt;wpfToolkit:DataGridTextColumn x:Name="FirstColumn"   Header="Something"  HeaderStyle="{StaticResource FrozenColumnHeaderStyle }" &gt;
</pre>
<p><img class="alignnone size-full wp-image-519" title="12" src="http://fooberry.com/wp-content/uploads/2008/11/12.png" alt="" width="414" height="93" /></div>

<p><a href="http://feeds.feedburner.com/~a/fooberry?a=te7k3z"><img src="http://feeds.feedburner.com/~a/fooberry?i=te7k3z" border="0"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://fooberry.com/2008/11/17/wpf-toolkit-datagrid-columnheader-style-and-blend/feed/</wfw:commentRss>
		<feedburner:origLink>http://fooberry.com/2008/11/17/wpf-toolkit-datagrid-columnheader-style-and-blend/</feedburner:origLink></item>
		<item>
		<title>A Tale of Inconsistency</title>
		<link>http://feeds.feedburner.com/~r/fooberry/~3/453051677/</link>
		<comments>http://fooberry.com/2008/11/14/a-tale-of-inconsistency/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 15:50:05 +0000</pubDate>
		<dc:creator>mark</dc:creator>
		
		<category><![CDATA[Nonsensical Rant]]></category>

		<guid isPermaLink="false">http://fooberry.com/2008/11/14/a-tale-of-inconsistency/</guid>
		<description><![CDATA[<br/>So in the hard times of our economy, companies cut back on non-essentials. We&#8217;ve recently gone from two coffee pots to one.* We have anther pot with an orange handle, but I can&#8217;t see the logic in drinking from that one. Only one pot means all those snaky people who leave 2oz of coffee for [...]]]></description>
			<content:encoded><![CDATA[<br/><p><a href="http://www.flickr.com/photos/dave77459/474610364/"><img class="alignright" title="coffee" src="http://farm1.static.flickr.com/181/474610364_a53260bfc4_m.jpg" alt="" width="240" height="180" /></a>So in the hard times of our economy, companies cut back on non-essentials. We&#8217;ve recently gone from two coffee pots to one.* We have anther pot with an orange handle, but I can&#8217;t see the logic in drinking from that one. Only one pot means all those snaky people who leave 2oz of coffee for the person behind them holding a 6oz cup are twice as effective. You can no longer combine the two 2oz pots and get a somewhat satisfying cup of coffee.</p>
<p>Yesterday I was the unfortunate one who came across an empty pot. So after mentally cussing out whomever left it, I started a new one and went to the next floor where I was able to grab the last full cup. Yes! Being the good boy I that am I started yet another pot. I reached into the drawer where the coffee is kept, made the pot and started to leave. As I was leaving the room the label I tossed in the trash caught my eye. There was a little flash of green on the package. I went and looked closer. This floor kept the regular and decaff coffee in opposite drawers as the superior floor above. Luckily I caught my mistake, trashed the pot that was already started and made a proper pot. The poor souls who would have failed to receive their liquid wake up call would weighed against my karma.</p>
<p>It holds true in life, as well as programming. Consistency matters. We develop routines that are habitual and difficult to break. Just as the coffee was always in the same drawer, the parameters are always in the same order. Taking extra care to follow some de facto convention could save slip ups like this.</p>
<p><em>* The reduction was most likely not related to cut backs, but rather just ended up being broken; however, not replacing it may be related to cut backs.</em></p>

<p><a href="http://feeds.feedburner.com/~a/fooberry?a=CqGUPY"><img src="http://feeds.feedburner.com/~a/fooberry?i=CqGUPY" border="0"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://fooberry.com/2008/11/14/a-tale-of-inconsistency/feed/</wfw:commentRss>
		<feedburner:origLink>http://fooberry.com/2008/11/14/a-tale-of-inconsistency/</feedburner:origLink></item>
		<item>
		<title>ReSharper Tip of the Day: Put into ‘using’ construct.</title>
		<link>http://feeds.feedburner.com/~r/fooberry/~3/452131068/</link>
		<comments>http://fooberry.com/2008/11/13/resharper-tip-of-the-day-put-into-using-construct/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 19:50:02 +0000</pubDate>
		<dc:creator>mark</dc:creator>
		
		<category><![CDATA[ReSharper Tip of the Day]]></category>

		<category><![CDATA[ReSharper]]></category>

		<category><![CDATA[tip]]></category>

		<guid isPermaLink="false">http://fooberry.com/?p=492</guid>
		<description><![CDATA[<br/>There has been some debate if you need every IDisposable should be disposed. From the documentation IDisposable is used to clean up any unmanaged resource.
Use the Dispose method of this interface to explicitly release unmanaged resources in conjunction with the garbage collector.
OK. That&#8217;s fine. I totally agree with that until I see DataTable is derived [...]]]></description>
			<content:encoded><![CDATA[<br/><p>There has been some debate if you need <em>every</em> <code>IDisposable</code> should be disposed. From <a href="http://msdn.microsoft.com/en-us/library/system.idisposable.aspx">the documentation</a> <code>IDisposable </code>is used to clean up any unmanaged resource.</p>
<blockquote><p>Use the Dispose method of this interface to explicitly release unmanaged resources in conjunction with the garbage collector.</p></blockquote>
<p>OK. That&#8217;s fine. I totally agree with that until I see <code>DataTable </code>is derived from a class, <code>MarshallByValueComponent</code>, that implements <code>IDisposable</code>. Does that mean <code>DataTable </code>has unmanaged resources? Any way, on to the tip.</p>
<p>ReSharper notices when an object is created that implements <code>IDisposable</code> and it can automatically wrap the usage in a <code>using </code>block. Say you have the following code:</p>
<p><img class="alignnone size-full wp-image-493" title="1" src="http://fooberry.com/wp-content/uploads/2008/11/1.png" alt="" width="279" height="220" /></p>
<p>&#8230;and want to put it in a <code>using </code>block. Trusty ALT+Enter steps in a gives you the following options:</p>
<p><img class="alignnone size-full wp-image-494" title="2" src="http://fooberry.com/wp-content/uploads/2008/11/2.png" alt="" width="331" height="201" /></p>
<p>It is creates a nice <code>using </code>block around the object and all of its usages.</p>
<p><img class="alignnone size-full wp-image-495" title="3" src="http://fooberry.com/wp-content/uploads/2008/11/3.png" alt="" width="288" height="166" /></p>
<p>What would really be nice is we could create a warning when we see ourselves using an <code>IDisposible </code>without calling <code>Dispose</code>. That might be more difficult than finding one outside of a using. We could be calling <code>Dispose </code>in a <code>try</code>/<code>finally </code>or somewhere else.</p>

<p><a href="http://feeds.feedburner.com/~a/fooberry?a=vqPeqT"><img src="http://feeds.feedburner.com/~a/fooberry?i=vqPeqT" border="0"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://fooberry.com/2008/11/13/resharper-tip-of-the-day-put-into-using-construct/feed/</wfw:commentRss>
		<feedburner:origLink>http://fooberry.com/2008/11/13/resharper-tip-of-the-day-put-into-using-construct/</feedburner:origLink></item>
		<item>
		<title>WPF Grid and Read Only Columns</title>
		<link>http://feeds.feedburner.com/~r/fooberry/~3/443580746/</link>
		<comments>http://fooberry.com/2008/11/05/wpf-grid-and-read-only-columns/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 19:47:01 +0000</pubDate>
		<dc:creator>mark</dc:creator>
		
		<category><![CDATA[WPF]]></category>

		<category><![CDATA[data binding]]></category>

		<category><![CDATA[datagrid]]></category>

		<guid isPermaLink="false">http://fooberry.com/?p=478</guid>
		<description><![CDATA[<br/>In an attempt to provide a total summary column in a WPF data grid, I attempted to bind a read only column of a DataTable to a DataGridTextColumn of the WPFToolkit data grid. 
Initially, I tried to do the way I&#8217;ve been doing every other column.

&#60;wpfToolkit:DataGridTextColumn
     Header="Total"
     [...]]]></description>
			<content:encoded><![CDATA[<br/><p>In an attempt to provide a total summary column in a WPF data grid, I attempted to bind a read only column of a <code>DataTable</code> to a <code>DataGridTextColumn</code> of the <a href="http://www.codeplex.com/wpf">WPFToolkit</a> data grid. </p>
<p>Initially, I tried to do the way I&#8217;ve been doing every other column.</p>
<pre name="code" language="xml">
&lt;wpfToolkit:DataGridTextColumn
     Header="Total"
     DataFieldBinding="{Binding Total}"  />
</pre>
<p>Unfortunately that gives us the following error:</p>
<blockquote><p>
A TwoWay or OneWayToSource binding cannot work on the read-only property &#8216;Total&#8217; of type &#8216;System.Data.DataRowView&#8217;.</p></blockquote>
<p>OK, that makes sense, we should just adjust the mode of the binding and try again.</p>
<pre name="code" language="xml">
&lt;wpfToolkit:DataGridTextColumn
     Header="Total"
     DataFieldBinding="{Binding Total,Mode=OneWay}"  />
</pre>
<p>&#8230;.but we get the same error.  After a few quick Google searches, I found <a href="http://blogs.msdn.com/jaimer/archive/2008/08/13/dabbling-around-the-new-wpf-datagrid-part-1.aspx">someone else that already pointed out the issue and a possible workaround.</a> </p>
<blockquote><p><strong>ReadOnly columns</strong>  is missing from the CTP, but that is not a huge problem, you can easily accomplish ReadOnly behavior by using DataGridTemplateColumns and replacing the templates with read-only controls ( like TextBlocks).</p></blockquote>
<p> A quick change of the column to a <code>DataGridTemplateColumn</code> and it looks like we are off to the races. </p>
<pre name="code" language="xml">
&lt;wpfToolkit:DataGridTemplateColumn Header="Brand">
    &lt;wpfToolkit:DataGridTemplateColumn.CellTemplate>
        &lt;DataTemplate>
            &lt;TextBlock Text="{Binding Path=Brand,Mode=OneWay}" />
        &lt;/DataTemplate>
    &lt;/wpfToolkit:DataGridTemplateColumn.CellTemplate>
&lt;/wpfToolkit:DataGridTemplateColumn>
</pre>
<p><strong>NOTE:</strong> After another bit of searching on the web, the <a href="http://www.codeplex.com/wpf/Release/ProjectReleases.aspx?ReleaseId=15598">WPF Toolkit - October 2008</a> was released last week. This negates the need for the workaround for read only columns.</p>
<pre name="code" language="xml">
&lt;wpfToolkit:DataGridTextColumn
     Header="Total"
     Binding="{Binding Total}"
     IsReadOnly="True" />
</pre>

<p><a href="http://feeds.feedburner.com/~a/fooberry?a=pqiblm"><img src="http://feeds.feedburner.com/~a/fooberry?i=pqiblm" border="0"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://fooberry.com/2008/11/05/wpf-grid-and-read-only-columns/feed/</wfw:commentRss>
		<feedburner:origLink>http://fooberry.com/2008/11/05/wpf-grid-and-read-only-columns/</feedburner:origLink></item>
		<item>
		<title>The Dvorak Keyboard</title>
		<link>http://feeds.feedburner.com/~r/fooberry/~3/435343307/</link>
		<comments>http://fooberry.com/2008/10/28/the-dvorak-keyboard/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 02:07:20 +0000</pubDate>
		<dc:creator>mark</dc:creator>
		
		<category><![CDATA[Nonsensical Rant]]></category>

		<category><![CDATA[keyboard]]></category>

		<guid isPermaLink="false">http://fooberry.com/2008/10/28/the-dvorak-keyboard/</guid>
		<description><![CDATA[<br/>
I&#8217;ve always heard about this mythical keyboard layout that was the apogee of all keyboards, the glowing golden standard to which all others fail to equal, and the other keyboard, designed to be slow and awkward. What might surprise some people is it&#8217;s the other, slower keyboard that has sprouted up on desks and laps [...]]]></description>
			<content:encoded><![CDATA[<br/><p><a title="Dvorak on Flickr - Photo Sharing!" href="http://flickr.com/photos/booddin/314523515/"><img class="alignleft" src="http://farm1.static.flickr.com/109/314523515_e72376d476_m.jpg" alt="" width="240" height="180" /></a><br />
I&#8217;ve always heard about this mythical keyboard layout that was the apogee of all keyboards, the glowing golden standard to which all others fail to equal, and the other keyboard, designed to be slow and awkward. What might surprise some people is it&#8217;s the other, slower keyboard that has sprouted up on desks and laps all over the world and the <a title="Secretariat (horse) - Wikipedia, the free encyclopedia" href="http://en.wikipedia.org/wiki/Secretariat_(racehorse)">Secretariat</a> of keyboards never gets its chance to show its true legs.</p>
<p>The <a title="QWERTY - Wikipedia, the free encyclopedia" href="http://en.wikipedia.org/wiki/Qwerty">Qwerty</a> keyboard was designed to keep the mechanical arms of typewriters from jamming by positioning common successive strokes on either sides of the machine. In contrast the <a title="Dvorak Simplified Keyboard - Wikipedia, the free encyclopedia" href="http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard">Dvorak keyboard</a> was designed to make the most common letters and<br />
sequences of letters the easiest to type.</p>
<p>While installing Ubuntu this evening I noticed the Dvorak keyboard as an option. Immediately I thought about the several Dell keyboards I have tucked away in drawers gathering dust. Now I love my new <a title="Apple Store  (U.S.) - Apple Keyboard" href="http://store.apple.com/us/product/MB110LL/A?fnode=MTY1NDA1Mg&amp;mco=NzU3ODU5">slim Apple keyboard</a>, but I&#8217;m going to stow it in the drawer for the next few weeks. Tomorrow I plan on laying out a Dvorak and giving it a try. I would like to find a typing <a title="Test Your Typing Speed" href="http://www.mediacollege.com/test/keyboard/">speed test</a> and see how it compares to the Qwerty and how it improves over time.</p>

<p><a href="http://feeds.feedburner.com/~a/fooberry?a=TyWMEh"><img src="http://feeds.feedburner.com/~a/fooberry?i=TyWMEh" border="0"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://fooberry.com/2008/10/28/the-dvorak-keyboard/feed/</wfw:commentRss>
		<feedburner:origLink>http://fooberry.com/2008/10/28/the-dvorak-keyboard/</feedburner:origLink></item>
		<item>
		<title>Book Report: The Cognitive Style of PowerPoint: Pitching Out Corrupts Within</title>
		<link>http://feeds.feedburner.com/~r/fooberry/~3/434287002/</link>
		<comments>http://fooberry.com/2008/10/27/book-report-the-cognitive-style-of-powerpoint-pitching-out-corrupts-within/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 03:35:45 +0000</pubDate>
		<dc:creator>mark</dc:creator>
		
		<category><![CDATA[Bookshelf]]></category>

		<category><![CDATA[book]]></category>

		<category><![CDATA[design]]></category>

		<category><![CDATA[style]]></category>

		<category><![CDATA[Tufte]]></category>

		<guid isPermaLink="false">http://fooberry.com/2008/10/27/book-report-the-cognitive-style-of-powerpoint-pitching-out-corrupts-within/</guid>
		<description><![CDATA[<br/>

So I commit one of the mistakes Tufte describes before the first sentence, but I need to draw you in. I need to grab your attention and keep you from bouncing off to YouTube. So if you made it this far, I probably have you, so here&#8217;s the meat and potatoes.


I&#8217;ve just finished The Cognitive [...]]]></description>
			<content:encoded><![CDATA[<br/><p><a href="http://flickr.com/photos/bsearles/2847693245/sizes/s/"><br />
<img class="alignleft" src="http://farm4.static.flickr.com/3278/2847693245_621e13a677_m.jpg" alt="" width="126" height="168" /><br />
</a>So I commit one of the mistakes Tufte describes before the first sentence, but I need to draw you in. I need to grab your attention and keep you from bouncing off to YouTube. So if you made it this far, I probably have you, so here&#8217;s the meat and potatoes.</p>
<p><a href="http://www.amazon.com/gp/product/0961392169/ref=s9subs_c1_14_img1-rfc_p-frt_g1-3102_p_si1?pf_rd_m=ATVPDKIKX0DER&amp;pf_rd_s=center-1&amp;pf_rd_r=1MQPM76YXF5VQYD98AZJ&amp;pf_rd_t=101&amp;pf_rd_p=454435901&amp;pf_rd_i=507846"><br />
<img class="alignright" src="http://ecx.images-amazon.com/images/I/51X3-ti2r0L._SS500_.jpg" alt="" width="300" height="300" /></a><br />
I&#8217;ve just finished <em><a title="Amazon.com: The Cognitive Style of PowerPoint: Pitching Out Corrupts Within, Second Edition: Edward R. Tufte: Books" href="http://amazon.com/dp/0961392169">The Cognitive Style of PowerPoint: Pitching out Corrupts Within</a></em> on recommendation from <a title="Twitter / seanfoy" href="http://twitter.com/seanfoy">a friend</a>. I recently consulted with him on presentation I gave to another team within our organization. A few of his pointers were a result of his reading of CSPP. Given his excellent advice, and the <a title="Amazon.com: The Cognitive Style of PowerPoint: Pitching Out Corrupts Within, Second Edition: Edward R. Tufte: Books" href="http://amazon.com/dp/0961392169">inexpensive price tag of CSPP</a>, I thought I would give it read.</p>
<p>Now I don&#8217;t work anywhere like NASA, the location of one of Tufte&#8217;s case studies. Nor do we deal with life and death presentations; however, instantly a correlation between us and NASA appeared as we both use PowerPoint as a substitute for a technical report or documentation. Following the <a title="Space Shuttle Columbia - Wikipedia, the free encyclopedia" href="http://en.wikipedia.org/wiki/Space_shuttle_columbia#Final_mission_and_destruction">Columbia disaster</a> NASA and Boeing prepared several technical PP presentation to summarize their confidence in the safety attempting reentry. In our organization we create PP presentations when projects are initiated, information protection reviews are performed, new security policies are enacted, etc. <strong>PP is not the proper medium for such content</strong>, although I think Tufte would struggle to find a <em>valuable</em> topic where PP <em>is</em> a proper medium.</p>
<p>Tufte makes several points, although I&#8217;m sure if I read it again there would be several more hiding in every passage. The first item that I took away, with the help from previously mentioned advice, is that bullets destroy the continuity and quality of information. Bullets not only add noise to the screen, but fragment information in choppy, diluted, ambiguous phrases for the sole purpose of following the PP paradigm and fitting into 6 word sound bites. If the subject is important enough to get everyone in the room, more time could be spent on information rather than making it snappy and catchy.</p>
<p>For example:</p>
<ul>
<li>Bullets are noise</li>
<li>Bullets are dumbed down sentences</li>
<li>Bullets dumb down your content</li>
</ul>
<p>The audience can read faster than the speaker can talk, so keeping the slides short and sweet isn&#8217;t necessary. The dilution of information into PP slides became more apparent when he illustrated it took 54 PP slides to reproduce the information on a single page of a book. To apply this to our organization, the information protection review covers several checklist items without any explanation or discussion. Just &#8220;Have you done <em>X</em>&#8220;? What is <em>X</em>? Why do I care about it? Is it really a binary value or can I complete it to some degree? I don&#8217;t know. It just says &#8220;YES or NO&#8221;. I&#8217;ve always thought it was a little odd that we used PP for documentation.</p>
<p>Another interesting observation was the application of <a title="Conway's Law - Wikipedia, the free encyclopedia" href="http://en.wikipedia.org/wiki/Conways_Law">Conway&#8217;s Law</a> to PP slides. I am really interested to see if slides produced by our organization follow the same deep visual hierarchy of those at NASA.</p>
<p>This is probably enough rambling. CSPP is short, less than 30 pages, and you could probably read it in the time it took me to write this post. I&#8217;ll just leave you with two ideas that should come across in my next presentation. <strong>When picking the hat to wear when preparing the presentation, pick the teacher hat and not the marketing sleaze ball hat</strong>. After all, that is the point of presentations, unless you are a used car salesman. They should understand what I&#8217;m trying to say and not just go along with it.</p>
<p>And along the same lines, <strong>have less noise and more signal</strong>. It will make the presentation more valuable and more creditable. This may mean the PP requires an accompanying document with more detailed information and data.</p>
<p>The two points are symbiotic. The more substance you have in a presentation, the less need for smoke, mirrors and magic to convince whomever of whatever because there is understanding. This also leaves, not only more valuable artifacts, but resonating confidence and more retainable information.</p>

<p><a href="http://feeds.feedburner.com/~a/fooberry?a=2DHmi0"><img src="http://feeds.feedburner.com/~a/fooberry?i=2DHmi0" border="0"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://fooberry.com/2008/10/27/book-report-the-cognitive-style-of-powerpoint-pitching-out-corrupts-within/feed/</wfw:commentRss>
		<feedburner:origLink>http://fooberry.com/2008/10/27/book-report-the-cognitive-style-of-powerpoint-pitching-out-corrupts-within/</feedburner:origLink></item>
		<item>
		<title>WPF and the DataGrid Shootout – Frozen Columns</title>
		<link>http://feeds.feedburner.com/~r/fooberry/~3/433947796/</link>
		<comments>http://fooberry.com/2008/10/27/wpf-and-the-datagrid-shootout-frozen-columns/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 19:57:17 +0000</pubDate>
		<dc:creator>mark</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://fooberry.com/?p=462</guid>
		<description><![CDATA[<br/>My recent project has chosen WPF as its display technology. The biggest shortcoming of WPF for a traditional line of business application is its lack of a data grid control. Luckily there are several control providers out there that are already trying to meet this need; however we are attempting to determine how closely they [...]]]></description>
			<content:encoded><![CDATA[<br/><p>My recent project has chosen WPF as its display technology. The biggest shortcoming of WPF for a traditional line of business application is its lack of a data grid control. Luckily there are several control providers out there that are already trying to meet this need; however we are attempting to determine how <em>closely </em>they meet our needs.</p>
<p>Our two most likely candidates are <a href="http://www.infragistics.com/">Infragistics</a>’ <a href="http://www.infragistics.com/dotnet/netadvantage/wpf/xamdatagrid.aspx#Overview">xamDataGrid</a> and <a href="http://www.telerik.com/">Telerik</a>’s <a href="http://www.telerik.com/products/wpf/controls/radgridview/overview.aspx">radDataGrid</a>. The third contender, which unfortunately appears to be eliminated due to being open-source, is the  data grid in the <a href="http://www.codeplex.com/wpf/Release/ProjectReleases.aspx?ReleaseId=14963">WPF Toolkit</a>. For some reason we are scared to death of open source tools. We would rather pay someone for closed source solution and be at their mercy to fix our problems than have it open and fix it ourselves. This could be an entire post on its own. Right now I’m paying the most attention to XamDataGrid and the WPF Toolkit DataGrid, maintaining hope that we’ll value something free if it provides us the value we need.</p>
<p>Anyway, our first out non-standard requirement is to freeze the column and row headers so we never scroll the first column or the headers to where they are no visible.</p>
<p><a href="http://fooberry.com/wp-content/uploads/2008/10/image5.png"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="image" src="http://fooberry.com/wp-content/uploads/2008/10/image-thumb5.png" border="0" alt="image" width="273" height="207" /></a></p>
<p>The column headers were simple. Both did that right out of the box. To freeze the first column with the WPF Toolkit datagrid requires setting one attribute:</p>
<pre language="xml" name="code">&lt;Controls:DataGrid AutoGenerateColumns="False" Name="grid" FrozenColumnCount="1"&gt;</pre>
<p>No problem.</p>
<p>For the Infragistics grid there appears to be a lot more code to write. According to <a href="http://forums.infragistics.com/forums/t/9003.aspx">a post on the Infragistics forum</a>, column <a href="http://news.infragistics.com/forums/t/910.aspx">freezing is not available with the Infragistics</a> grid. The people I have seen implementing it put two grids side-by-side and only allow one to scroll, and I assume manually scroll them vertically together.</p>

<p><a href="http://feeds.feedburner.com/~a/fooberry?a=Vt225Z"><img src="http://feeds.feedburner.com/~a/fooberry?i=Vt225Z" border="0"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://fooberry.com/2008/10/27/wpf-and-the-datagrid-shootout-frozen-columns/feed/</wfw:commentRss>
		<feedburner:origLink>http://fooberry.com/2008/10/27/wpf-and-the-datagrid-shootout-frozen-columns/</feedburner:origLink></item>
		<item>
		<title>Replacing TFS Diff Tool</title>
		<link>http://feeds.feedburner.com/~r/fooberry/~3/430819236/</link>
		<comments>http://fooberry.com/2008/10/24/replacing-tfs-diff-tool/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 15:27:14 +0000</pubDate>
		<dc:creator>mark</dc:creator>
		
		<category><![CDATA[TFS]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Visual Studio]]></category>

		<category><![CDATA[Visual Studio 2008]]></category>

		<guid isPermaLink="false">http://fooberry.com/2008/10/24/replacing-tfs-diff-tool/</guid>
		<description><![CDATA[<br/>The TFS diff tool is horrible. It a pretty bare minimum difference between the two versions. The UI is basic.

Nice huh? This line changed, but you’re on your own to know what characters actually changed. While tooling around in the Visual Studio Options dialog I can across the settings that would let me change the [...]]]></description>
			<content:encoded><![CDATA[<br/><p>The TFS diff tool is horrible. It a pretty bare minimum difference between the two versions. The UI is basic.</p>
<p><a href="http://fooberry.com/wp-content/uploads/2008/10/image.png"><img title="image" src="http://fooberry.com/wp-content/uploads/2008/10/image-thumb.png" border="0" alt="image" width="680" /></a></p>
<p>Nice huh? This line changed, but you’re on your own to know what characters actually changed. While tooling around in the Visual Studio Options dialog I can across the settings that would let me change the diff and merge tools.Check out <em>Tools | Options | Source Control | Visual Studio Team Foundation | Configure User Tools…</em></p>
<p><a href="http://fooberry.com/wp-content/uploads/2008/10/image1.png"><img title="image" src="http://fooberry.com/wp-content/uploads/2008/10/image-thumb1.png" border="0" alt="image" width="402" height="240" /></a></p>
<p>I needed a another diff tool, so I downloaded a trial of Beyond Compare and plugged it in there and it worked great! Except, in 15 days it wouldn’t be working so great unless I could convince someone to shell out the $X to get us past the trial. After pinging some of my buddies about what diff tools they use, I decided to try the diff tool in <a href="http://tortoisesvn.tigris.org/">TortoiseSVN</a>. I installed it and added <a href="http://tortoisesvn.tigris.org/TortoiseMerge.html">TortoiseMerge</a> to the dialog.</p>
<p><a href="http://fooberry.com/wp-content/uploads/2008/10/image2.png"><img title="image" src="http://fooberry.com/wp-content/uploads/2008/10/image-thumb2.png" border="0" alt="image" width="356" height="187" /></a></p>
<p>Ran my compare again and <a href="http://en.wikipedia.org/wiki/Emeril_Lagasse">Bang</a>! A new diff dialog appears that is much better than before.</p>
<p><a href="http://fooberry.com/wp-content/uploads/2008/10/image3.png"><img title="image" src="http://fooberry.com/wp-content/uploads/2008/10/image-thumb3.png" border="0" alt="image" width="680" /></a></p>
<p>That is still a lot of redundant clutter for me, so switching views helps a little with that.</p>
<p><a href="http://fooberry.com/wp-content/uploads/2008/10/image4.png"><img style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" title="image" src="http://fooberry.com/wp-content/uploads/2008/10/image-thumb4.png" border="0" alt="image" width="554" height="280" /></a></p>
<p>We no longer get the detail about what changed on a line, but it is so much easier to manually identify when the rows overlap, I’m not missing it.</p>

<p><a href="http://feeds.feedburner.com/~a/fooberry?a=Boxnkt"><img src="http://feeds.feedburner.com/~a/fooberry?i=Boxnkt" border="0"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://fooberry.com/2008/10/24/replacing-tfs-diff-tool/feed/</wfw:commentRss>
		<feedburner:origLink>http://fooberry.com/2008/10/24/replacing-tfs-diff-tool/</feedburner:origLink></item>
		<item>
		<title>Join the Dark Side of the Force</title>
		<link>http://feeds.feedburner.com/~r/fooberry/~3/421888323/</link>
		<comments>http://fooberry.com/2008/10/15/join-the-dark-side-of-the-force/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 19:35:11 +0000</pubDate>
		<dc:creator>mark</dc:creator>
		
		<category><![CDATA[Nonsensical Rant]]></category>

		<category><![CDATA[colors]]></category>

		<category><![CDATA[IDE]]></category>

		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://fooberry.com/?p=432</guid>
		<description><![CDATA[<br/>I catch a lot of grief at work, hopefully in jest, about my non-traditional IDE colors. After reading through some links on A Continuous Learner&#8217;s Weblog I stumbled upon a link showing people&#8217;s dark IDE colors, so I thought I would post mine. I&#8217;ve tried a lot of different IDE colors, but still haven&#8217;t been [...]]]></description>
			<content:encoded><![CDATA[<br/><p>I catch a lot of grief at work, hopefully in jest, about my <em>non-traditional </em>IDE colors. After reading through some links on <a href="http://spietrek.blogspot.com/2008/10/links-1082008.html">A Continuous Learner&#8217;s Weblog</a> I stumbled upon a link showing people&#8217;s dark IDE colors, so I thought I would post mine. I&#8217;ve tried a lot of different IDE colors, but still haven&#8217;t been persuaded away from <a href="http://fooberry.com/wp-content/uploads/2008/10/fooberrydarkcolors2.vssettings">my color scheme</a>.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-433" title="12" src="http://fooberry.com/wp-content/uploads/2008/10/12.png" alt="" width="702" height="603" /></p>
<p style="text-align: left;">I stole the example text from <a href="http://www.codinghorror.com/blog/archives/000682.html">CodingHorror</a>. The font is Monaco which comes with Mac OS X, but can also be <a href="http://www.webdevkungfu.com/textmate-envy-aka-monaco-font-for-windows/">found for the PC</a>.</p>
<p style="text-align: center;">

<p><a href="http://feeds.feedburner.com/~a/fooberry?a=x58Dp9"><img src="http://feeds.feedburner.com/~a/fooberry?i=x58Dp9" border="0"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://fooberry.com/2008/10/15/join-the-dark-side-of-the-force/feed/</wfw:commentRss>
		<feedburner:origLink>http://fooberry.com/2008/10/15/join-the-dark-side-of-the-force/</feedburner:origLink></item>
		<item>
		<title>Incentivizing Programmers</title>
		<link>http://feeds.feedburner.com/~r/fooberry/~3/421129783/</link>
		<comments>http://fooberry.com/2008/10/14/incentivizing-programmers/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 02:44:09 +0000</pubDate>
		<dc:creator>mark</dc:creator>
		
		<category><![CDATA[.Net]]></category>

		<category><![CDATA[Architecture]]></category>

		<category><![CDATA[Nonsensical Rant]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Team Build]]></category>

		<guid isPermaLink="false">http://fooberry.com/?p=422</guid>
		<description><![CDATA[<br/>In most factories, especially those that pride themselves on their safety records, you&#8217;ll find a sign that says something like &#8220;600 days since our last lost time incident&#8221;. We should have the same for our automated build qualities, although I doubt they will ever reach 600 days of consecutive green builds. It would hopefully generate [...]]]></description>
			<content:encoded><![CDATA[<br/><p><img class="alignright size-full wp-image-430" title="brokenbuilds001" src="http://fooberry.com/wp-content/uploads/2008/10/brokenbuilds001.png" alt="" width="400" height="239" />In most factories, especially those that pride themselves on their safety records, you&#8217;ll find a sign that says something like &#8220;600 days since our last lost time incident&#8221;. We should have the same for our automated build qualities, although I doubt they will ever reach 600 days of consecutive green builds. It would hopefully generate a sense of pride in the build. Imagine if you joined a team that had 60 days of green builds and that number was publicized for the entire organization to see. Wouldn&#8217;t you take extra care to make sure you don&#8217;t do something that flips it over to red, even for one build?</p>
<p>Gaining momentum behind doing automated build is something our organization is struggling with at the moment. For some reason the value isn&#8217;t immediately apparent or the schedules and budgets don&#8217;t allow for it at the moment. Both of those are topics for another post. Maybe a component to gaining that momentum is illustrating the elevation and longevity of the quality of the builds. I see two metrics being valuable.</p>
<ol>
<li>Days of consecutive green builds</li>
<li>Change in the number of unit tests over time</li>
</ol>
<p><em>Potentially a third being the number of customer reported defects.</em></p>
<p>The number of consecutive green builds is important, but if one team is doing nightly builds and another is doing continuous integration, does one team have a significant advantage in quality over another? I would say there is benefit there, but I wouldn&#8217;t categorize the advantage as significant. Also, looking at the change in the number of tests provides a better indication of progress than percentage change. Adding a hundred unit tests to a build that already has a thousand is substantially better than adding one unit test to a set of ten. I imagine you&#8217;re saying that is still rather subjective because you could have ten quality tests and a thousand horribly simple ones and that&#8217;s true, but maybe this isn&#8217;t the place to make those determinations. Let&#8217;s assume all unit tests are of roughly the same complexity and comprehension.</p>
<p>So here is my question. <strong>Would it be valid and beneficial to incentivize teams to improve these metrics or compete against other teams to improve the metrics?</strong> In the past we&#8217;ve given out $5 gift cards to Starbucks or iTunes when people did good jobs on something, just as a nice &#8220;thank you&#8221;. Would that work here? Could giving a $5 gift card to the each member of the team that has the longest stretch of green builds or added the most unit tests in the last month help motivate people? Now I don&#8217;t expect people to add hundreds unit tests every month to get their free <em>fat free half caf soy carmel white chocolate mocha macchiato</em> (I&#8217;m not even sure that drink exists or if would be less than $5 if it did). I&#8217;m not saying those are the metrics and the periodicity of the rewards that would work the best, just wondering if the spirit of it would work.</p>
<p>Recent posts by <a title="Sins of Omissions" href="http://ayende.com/Blog/archive/2008/10/11/sins-of-omissions.aspx">Ayende</a> and <a title="How Hard Could It Be?: Sins of Commissions, Marketing and Advertising Article - Inc. Article" href="http://www.inc.com/magazine/20081001/how-hard-could-it-be-sins-of-commissions.html?partner=fogcreek">Joel Spolsky</a> seem to imply it would fail miserably.</p>
<p>I&#8217;m not sure something like $5 will lead teams to work the system just for the reward. Even without the monetary reward <strong>the principle behind taking pride in the build quality could established by making an aggregated build report public</strong>. Something <em>really</em> public. Maybe a screen when I get off the elevators, or a TV in the lobby that gives some metrics. Let me see who the people are who are writing the most unit test. I&#8217;m sure they can answer some of my questions or give me advice. Show me who isn&#8217;t building and we can get them the help they need to get it off the ground. There should be something we could do to help.</p>

<p><a href="http://feeds.feedburner.com/~a/fooberry?a=1Gc14X"><img src="http://feeds.feedburner.com/~a/fooberry?i=1Gc14X" border="0"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://fooberry.com/2008/10/14/incentivizing-programmers/feed/</wfw:commentRss>
		<feedburner:origLink>http://fooberry.com/2008/10/14/incentivizing-programmers/</feedburner:origLink></item>
	</channel>
</rss>
