<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Monkey See, Monkey Build </title>
        <link>http://betterthaneveryone.com/Default.aspx</link>
        <description>Clint Rutkas's mix of hardware, c#, and a splash of self-indulging ego</description>
        <language>en-US</language>
        <copyright>Clint</copyright>
        <managingEditor>clint@rutkas.com</managingEditor>
        <generator>Subtext Version 1.9.5.177</generator>
        <image>
            <title>Monkey See, Monkey Build </title>
            <url>http://betterthaneveryone.com/images/RSS2Image.gif</url>
            <link>http://betterthaneveryone.com/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>Inheritance loves WPF</title>
            <category>WPF</category>
            <category>Coding</category>
            <link>http://betterthaneveryone.com/archive/2008/08/20/inheritance-loves-wpf.aspx</link>
            <description>&lt;p&gt;&lt;img title="inheritance[1]" height="196" alt="inheritance[1]" src="http://www.betterthaneveryone.com/images/WPFEffects_C81B/inheritance1.gif" width="240" align="right" border="0" /&gt;  For the &lt;a href="http://codeplex.com/todo"&gt;ToDo application&lt;/a&gt;, I’ve been adding in some new toys and causing bugs.  One feature I’m adding in is text glow around the listed text.  So lets talk about doing this programmatically.&lt;/p&gt;  &lt;p&gt;When doing effects (I’ll talk about .Net 3.5 SP1 also here), you really need to embrace &lt;a href="http://en.wikipedia.org/wiki/Object_oriented_programming"&gt;object oriented programming&lt;/a&gt; here.  Why?  WPF is pretty strong on the inheritance.  If you don’t know what inheritance is, hopefully you’ll gain an understanding.  I tend to think inheritance uses the phrase “is a ”.  So a Manager is an Employee.  A TextBox is a Control.  See?  Easy.  X inherits Y’s properties. &lt;/p&gt;  &lt;p&gt;Lets say you have a TextBox and you have a &lt;strong&gt;Background&lt;/strong&gt;.  Well, a background is &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.media.brush.aspx"&gt;&lt;strong&gt;Brush&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; &lt;/strong&gt;which can be multiple things.  A &lt;strong&gt;SolidColorBrush&lt;/strong&gt; or an &lt;strong&gt;ImageBrush&lt;/strong&gt; are just a few examples, &lt;a href="http://msdn.microsoft.com/en-us/library/aa970904.aspx"&gt;MSDN has a full overview of brushes&lt;/a&gt; too.&lt;/p&gt;  &lt;p&gt;Lets see an example using &lt;strong&gt;Background&lt;/strong&gt; via XAML:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;TextBox&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;TextBox.Background&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;SolidColorBrush&lt;/span&gt; &lt;span class="attr"&gt;Color&lt;/span&gt;&lt;span class="kwrd"&gt;="Red"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;TextBox.Background&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;TextBox&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;

&lt;p&gt;Lets see the same example using c#:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;  txt.Background = &lt;span class="kwrd"&gt;new&lt;/span&gt; SolidColorBrush(System.Windows.Media.Color.FromArgb(255,255,0,0))&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;

&lt;p&gt;See the difference?  More so see how I put a SolidColorBrush object into a &lt;strong&gt;Brush&lt;/strong&gt; object?  That is due to polymorphism and inheritance.&lt;/p&gt;

&lt;p&gt;Now lets create a WPF TextBox programmatically.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; TextBox createTextBox()
{
    var txt = &lt;span class="kwrd"&gt;new&lt;/span&gt; TextBox
    {
        Background = &lt;span class="kwrd"&gt;new&lt;/span&gt; SolidColorBrush(System.Windows.Media.Color.FromArgb(0,0,0,0)),
        Foreground = &lt;span class="kwrd"&gt;new&lt;/span&gt; SolidColorBrush(Settings.Default.FontColor),
        IsEnabled = &lt;span class="kwrd"&gt;true&lt;/span&gt;,
        AllowDrop = &lt;span class="kwrd"&gt;false&lt;/span&gt;,
        BorderThickness = &lt;span class="kwrd"&gt;new&lt;/span&gt; Thickness(0)
    };
            
    &lt;span class="kwrd"&gt;if&lt;/span&gt; (Settings.Default.GlowColor.A != 0)
        txt.BitmapEffect = &lt;span class="kwrd"&gt;new&lt;/span&gt; OuterGlowBitmapEffect { GlowColor = Settings.Default.GlowColor, GlowSize = 5 }; ;

    &lt;span class="kwrd"&gt;return&lt;/span&gt; txt;
}&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;

&lt;p&gt;So one issue I’ve found is with .Net 3.5 SP1.  They will deprecate &lt;strong&gt;BitmapEffects&lt;/strong&gt; but they don’t have a replacement yet for the &lt;strong&gt;OuterGlowBitmapEffect&lt;/strong&gt;.  In the future you should use &lt;strong&gt;Effect&lt;/strong&gt; instead of &lt;strong&gt;BitmapEffect&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Another issue is the needle in the haystack issue.  Unless you know about predefined brushes or effects, it is a tad annoying finding them.  Since “Effect” and “Brush” are post-append, I would personally put them in a new namespace, however .Net has a legacy of doing it the current way.  It is just so new, I haven’t memorized everything there.  I think it would be great if I had all my brushes in &lt;strong&gt;System.Windows.Media.Brushes&lt;/strong&gt;.  New discovery is super easy then, oh the perfect world.&lt;/p&gt;&lt;img src="http://betterthaneveryone.com/aggbug/809.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Clint</dc:creator>
            <guid>http://betterthaneveryone.com/archive/2008/08/20/inheritance-loves-wpf.aspx</guid>
            <pubDate>Wed, 20 Aug 2008 15:56:57 GMT</pubDate>
            <wfw:comment>http://betterthaneveryone.com/comments/809.aspx</wfw:comment>
            <comments>http://betterthaneveryone.com/archive/2008/08/20/inheritance-loves-wpf.aspx#feedback</comments>
            <wfw:commentRss>http://betterthaneveryone.com/comments/commentRss/809.aspx</wfw:commentRss>
            <trackback:ping>http://betterthaneveryone.com/services/trackbacks/809.aspx</trackback:ping>
        </item>
        <item>
            <title>Making your chains penny-pinching tight</title>
            <category>Skateboard</category>
            <category>Building</category>
            <category>Calculations</category>
            <link>http://betterthaneveryone.com/archive/2008/08/10/making-your-chains-penny-pinching-tight.aspx</link>
            <description>&lt;p&gt;After I helped out at the Monsanto event with the pro-evangelists, I was talking with one of their engineers and he told me about a few different solutions for my chain looseness issue.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.mcmaster.com/#catalog/114/1010"&gt;McMaster-Carr has a few solutions&lt;/a&gt;, each has pro’s and con’s in terms of space and cost.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.betterthaneveryone.com/images/Makingyourchainspennypinchingtight_122E3/5973kc1s.gif"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="100%" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td style="border-bottom: #000 1px solid" valign="top" width="200"&gt;&lt;strong&gt;Floating Roller Chain &lt;/strong&gt;          &lt;br /&gt;          &lt;p&gt;&lt;img title="5973kc1s" style="margin: 0px 0px 0px 5px" height="132" alt="5973kc1s" src="http://www.betterthaneveryone.com/images/Makingyourchainspennypinchingtight_122E3/5973kc1s_3.gif" width="158" border="0" /&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #000 1px solid" valign="top"&gt;&lt;strong&gt;&lt;font color="#008000"&gt;Pro’s:&lt;/font&gt;&lt;/strong&gt;           &lt;ul&gt;           &lt;li&gt;$33 each &lt;/li&gt;            &lt;li&gt;Adjustable &lt;/li&gt;            &lt;li&gt;Would be perfect for the first gear set &lt;/li&gt;         &lt;/ul&gt;         &lt;strong&gt;&lt;font color="#800000"&gt;Cons’s:&lt;/font&gt;&lt;/strong&gt;           &lt;ul&gt;           &lt;li&gt;While 1.1” thick, .25 has to be sticking out on each side &lt;/li&gt;            &lt;li&gt;2.5” long, the gap between gears is about that. &lt;/li&gt;            &lt;li&gt;No clearance on the chain with the wheel &lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td style="border-bottom: #000 1px solid" valign="top" width="200"&gt;&lt;strong&gt;Vertical-Mount — Manually adjustable&lt;/strong&gt;           &lt;br /&gt;&lt;img title="manualGear" style="margin: 0px 0px 0px 5px" height="129" alt="manualGear" src="http://www.betterthaneveryone.com/images/Makingyourchainspennypinchingtight_122E3/manualGear.png" width="270" align="right" border="0" /&gt; &lt;/td&gt;        &lt;td style="border-bottom: #000 1px solid" valign="top"&gt;&lt;strong&gt;&lt;font color="#008000"&gt;Pro’s:&lt;/font&gt;&lt;/strong&gt;           &lt;ul&gt;           &lt;li&gt;$48  each &lt;/li&gt;            &lt;li&gt;Could possibly fit this in from the other side &lt;/li&gt;            &lt;li&gt;1.375” thick &lt;/li&gt;         &lt;/ul&gt;         &lt;strong&gt;&lt;font color="#800000"&gt;Cons’s:&lt;/font&gt;&lt;/strong&gt;           &lt;ul&gt;           &lt;li&gt;Still requires a gear &lt;/li&gt;            &lt;li&gt;Tad expensive &lt;/li&gt;            &lt;li&gt;Requires a gear &lt;/li&gt;            &lt;li&gt;Have to modify the gear box so chain doesn’t rub &lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td style="border-bottom: #000 1px solid" valign="top" width="200"&gt;         &lt;p&gt;&lt;strong&gt;Automatic Spring Roller Chain&lt;/strong&gt;&lt;/p&gt;          &lt;p&gt;&lt;img title="6233kp1s" style="margin: 0px 0px 0px 5px" height="107" alt="6233kp1s" src="http://www.betterthaneveryone.com/images/Makingyourchainspennypinchingtight_122E3/6233kp1s.gif" width="105" border="0" /&gt; &lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #000 1px solid" valign="top"&gt;&lt;strong&gt;&lt;font color="#008000"&gt;Pro’s:&lt;/font&gt;&lt;/strong&gt;           &lt;ul&gt;           &lt;li&gt;hmmm &lt;/li&gt;         &lt;/ul&gt;         &lt;strong&gt;&lt;font color="#800000"&gt;Cons’s:&lt;/font&gt;&lt;/strong&gt;           &lt;ul&gt;           &lt;li&gt;Big, 5” tall &lt;/li&gt;            &lt;li&gt;Tad expensive @ $53 &lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;&lt;strong&gt;Low-Profile Automatic Spring Roller Chain&lt;/strong&gt;           &lt;br /&gt;          &lt;p&gt;&lt;img title="7332kc1ws" style="margin: 0px 0px 0px 5px" height="111" alt="7332kc1ws" src="http://www.betterthaneveryone.com/images/Makingyourchainspennypinchingtight_122E3/7332kc1ws.gif" width="248" border="0" /&gt; &lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;&lt;strong&gt;&lt;font color="#008000"&gt;Pro’s:&lt;/font&gt;&lt;/strong&gt;           &lt;ul&gt;           &lt;li&gt;.5” thick. &lt;/li&gt;         &lt;/ul&gt;         &lt;strong&gt;&lt;font color="#800000"&gt;Cons’s:&lt;/font&gt;&lt;/strong&gt;           &lt;ul&gt;           &lt;li&gt;$77 each &lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Lets show the gear box to see some of the issues I’m talking about&lt;/p&gt;  &lt;p&gt;&lt;img title="module_1" style="margin: 0px 0px 0px 5px" height="198" alt="module_1" src="http://www.betterthaneveryone.com/images/Makingyourchainspennypinchingtight_122E3/module_1.jpg" width="397" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;The gap is VERY narrow between gears, about an inch.  Also the width is 2.5”.  The wheel and big middle gear have under .25” of clearance between one another.  I would have to modify the structural supports to fit in something to the middle &lt;/p&gt;  &lt;p&gt;I could remove the middle gear set, and then use a &lt;strong&gt;Vertical-Mount Tensioners &lt;/strong&gt;or a &lt;strong&gt;Floating Roller Chain&lt;/strong&gt; to accomplish this.  I’d have to cut a big hole to use the floater.  The vertical-mount tensioner I can just create a platform and extended it from the other side and either provide tension from the inside of the chain or the outside.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;I could use the &lt;strong&gt;Automatic Spring Roller Chain&lt;/strong&gt; too and have it mounted from the outside on a ridge mount.&lt;/p&gt;  &lt;p&gt;No matter what, I think a phone call to my dad is in order along with a trip back to Chicago so he can help me install a solution.&lt;/p&gt;&lt;img src="http://betterthaneveryone.com/aggbug/808.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Clint</dc:creator>
            <guid>http://betterthaneveryone.com/archive/2008/08/10/making-your-chains-penny-pinching-tight.aspx</guid>
            <pubDate>Mon, 11 Aug 2008 01:41:21 GMT</pubDate>
            <wfw:comment>http://betterthaneveryone.com/comments/808.aspx</wfw:comment>
            <comments>http://betterthaneveryone.com/archive/2008/08/10/making-your-chains-penny-pinching-tight.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://betterthaneveryone.com/comments/commentRss/808.aspx</wfw:commentRss>
            <trackback:ping>http://betterthaneveryone.com/services/trackbacks/808.aspx</trackback:ping>
        </item>
        <item>
            <title>O&amp;rsquo;Rly?  or is it O&amp;rsquo;Reilly?</title>
            <category>Coding4Fun</category>
            <link>http://betterthaneveryone.com/archive/2008/08/06/orsquorly--or-is-it-orsquoreilly.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://www.betterthaneveryone.com/images/ORly_C287/IMG_0895.jpg"&gt;&lt;img title="IMG_0895" height="319" alt="IMG_0895" src="http://www.betterthaneveryone.com/images/ORly_C287/IMG_0895_thumb.jpg" width="425" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;A button?  Coffee?&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.betterthaneveryone.com/images/ORly_C287/IMG_0893.jpg"&gt;&lt;img title="IMG_0893" height="318" alt="IMG_0893" src="http://www.betterthaneveryone.com/images/ORly_C287/IMG_0893_thumb.jpg" width="425" 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;What ever could the &lt;a href="http://blogs.msdn.com/coding4fun"&gt;Coding4Fun&lt;/a&gt; crew be working on?&lt;/p&gt;&lt;img src="http://betterthaneveryone.com/aggbug/807.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Clint</dc:creator>
            <guid>http://betterthaneveryone.com/archive/2008/08/06/orsquorly--or-is-it-orsquoreilly.aspx</guid>
            <pubDate>Wed, 06 Aug 2008 08:04:24 GMT</pubDate>
            <wfw:comment>http://betterthaneveryone.com/comments/807.aspx</wfw:comment>
            <comments>http://betterthaneveryone.com/archive/2008/08/06/orsquorly--or-is-it-orsquoreilly.aspx#feedback</comments>
            <wfw:commentRss>http://betterthaneveryone.com/comments/commentRss/807.aspx</wfw:commentRss>
            <trackback:ping>http://betterthaneveryone.com/services/trackbacks/807.aspx</trackback:ping>
        </item>
        <item>
            <title>defaulting on SQL</title>
            <category>Coding</category>
            <link>http://betterthaneveryone.com/archive/2008/08/05/defaulting-on-sql.aspx</link>
            <description>&lt;p&gt;A friend of mine asked me a question regarding SQL and default parameters.&lt;/p&gt;  &lt;p&gt;Here is what he ran into:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;create&lt;/span&gt; &lt;span class="kwrd"&gt;function&lt;/span&gt; foo
(
      @required &lt;span class="kwrd"&gt;int&lt;/span&gt;, 
      @optional &lt;span class="kwrd"&gt;int&lt;/span&gt; = 0
)
&lt;span class="kwrd"&gt;returns&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt;
&lt;span class="kwrd"&gt;as&lt;/span&gt;
&lt;span class="kwrd"&gt;begin&lt;/span&gt;
      &lt;span class="kwrd"&gt;return&lt;/span&gt;(&lt;span class="kwrd"&gt;select&lt;/span&gt; @required)
&lt;span class="kwrd"&gt;end&lt;/span&gt;
&lt;span class="kwrd"&gt;go&lt;/span&gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;

&lt;p&gt;But if he ran it with this:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;select &lt;/span&gt;[dbo].foo(2)&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;

&lt;p&gt;He would get an error saying insufficient number of arguments where passed in.  Here is what he should have done:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; [dbo].ff(2, &lt;span class="kwrd"&gt;DEFAULT&lt;/span&gt;)&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;&lt;style type="text/css"&gt;&lt;![CDATA[
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;&lt;img src="http://betterthaneveryone.com/aggbug/806.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Clint</dc:creator>
            <guid>http://betterthaneveryone.com/archive/2008/08/05/defaulting-on-sql.aspx</guid>
            <pubDate>Tue, 05 Aug 2008 21:12:46 GMT</pubDate>
            <wfw:comment>http://betterthaneveryone.com/comments/806.aspx</wfw:comment>
            <comments>http://betterthaneveryone.com/archive/2008/08/05/defaulting-on-sql.aspx#feedback</comments>
            <wfw:commentRss>http://betterthaneveryone.com/comments/commentRss/806.aspx</wfw:commentRss>
            <trackback:ping>http://betterthaneveryone.com/services/trackbacks/806.aspx</trackback:ping>
        </item>
        <item>
            <title>Making ClickOnce less annoying.</title>
            <category>Installers</category>
            <category>ToDo</category>
            <link>http://betterthaneveryone.com/archive/2008/07/24/making-clickonce-less-annoying.aspx</link>
            <description>&lt;p&gt;After chatting with my installer expert, he mentioned ClickOnce does have a ton of options to make this work properly.&lt;/p&gt;  &lt;p&gt;MSDN, what would .Net developers do without you.   &lt;br /&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/s22azw1e(VS.80).aspx" href="http://msdn.microsoft.com/en-us/library/s22azw1e(VS.80).aspx"&gt;http://msdn.microsoft.com/en-us/library/s22azw1e(VS.80).aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://betterthaneveryone.com/aggbug/805.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Clint</dc:creator>
            <guid>http://betterthaneveryone.com/archive/2008/07/24/making-clickonce-less-annoying.aspx</guid>
            <pubDate>Thu, 24 Jul 2008 19:58:38 GMT</pubDate>
            <wfw:comment>http://betterthaneveryone.com/comments/805.aspx</wfw:comment>
            <comments>http://betterthaneveryone.com/archive/2008/07/24/making-clickonce-less-annoying.aspx#feedback</comments>
            <wfw:commentRss>http://betterthaneveryone.com/comments/commentRss/805.aspx</wfw:commentRss>
            <trackback:ping>http://betterthaneveryone.com/services/trackbacks/805.aspx</trackback:ping>
        </item>
        <item>
            <title>ClickOnce and updating</title>
            <category>Installers</category>
            <category>WPF</category>
            <link>http://betterthaneveryone.com/archive/2008/07/23/clickonce-and-updating.aspx</link>
            <description>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;ClickOnce has some pretty nice advantages.  All I need to do is upload the new files and it magically updates the clients.&lt;/p&gt;  &lt;p&gt;But it has a problem, every start up, this pops up.  It is super annoying.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.betterthaneveryone.com/images/ClickOnceandupdating_108B2/image.png"&gt;&lt;img title="image" height="144" alt="image" src="http://www.betterthaneveryone.com/images/ClickOnceandupdating_108B2/image_thumb.png" width="382" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I have a project installer with an old school installer that seems to have the auto-updating ability too.&lt;/p&gt;  &lt;p&gt;If I migrate from the ClickOnce, I have to figure out also how to do a seamless transition.  The ToDo project already has end users.  Of which, today, got a nice present.  I added in font color and a simple configuration screen.&lt;/p&gt;&lt;img src="http://betterthaneveryone.com/aggbug/804.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Clint</dc:creator>
            <guid>http://betterthaneveryone.com/archive/2008/07/23/clickonce-and-updating.aspx</guid>
            <pubDate>Thu, 24 Jul 2008 04:55:46 GMT</pubDate>
            <wfw:comment>http://betterthaneveryone.com/comments/804.aspx</wfw:comment>
            <comments>http://betterthaneveryone.com/archive/2008/07/23/clickonce-and-updating.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://betterthaneveryone.com/comments/commentRss/804.aspx</wfw:commentRss>
            <trackback:ping>http://betterthaneveryone.com/services/trackbacks/804.aspx</trackback:ping>
        </item>
        <item>
            <title>WPF, Binding, and Background colors.</title>
            <category>ToDo</category>
            <category>WPF</category>
            <link>http://betterthaneveryone.com/archive/2008/07/23/wpf-binding-and-background-colors.aspx</link>
            <description>&lt;p&gt;So for my ToDo applications, one of the first task items was being able to change the font color.  After reading about this on my trusty WPF advisor blog, I learned you can do &lt;a href="http://www.hanselman.com/blog/LearningWPFWithBabySmashConfigurationWithDataBinding.aspx"&gt;direct data bindings with Settings&lt;/a&gt;.  This is useful since I just have to create the property bind to it, and walk away.  The one thing I have to do is just save the properties.&lt;/p&gt;  &lt;p&gt;Here is the WPF for doing the background binding.  Took me a bit to see the error of my ways for binding a background.  I had &amp;lt;Button Background=“{Binding …” and this was a no no even though you can say Background=“Red” and have it be red.  By binding like this, it works great.&lt;/p&gt;  &lt;p&gt;I also bolded the important items to have if you want to bind to your settings.&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Window&lt;/span&gt; &lt;span class="attr"&gt;x:Class&lt;/span&gt;&lt;span class="kwrd"&gt;="ToDo.Configuration"&lt;/span&gt;
    &lt;span class="attr"&gt;xmlns&lt;/span&gt;&lt;span class="kwrd"&gt;="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;/span&gt;
&lt;strong&gt;    &lt;span class="attr"&gt;xmlns:Properties&lt;/span&gt;&lt;span class="kwrd"&gt;="clr-namespace:ToDo.Properties"&lt;/span&gt;&lt;/strong&gt;
    &lt;span class="attr"&gt;xmlns:x&lt;/span&gt;&lt;span class="kwrd"&gt;="http://schemas.microsoft.com/winfx/2006/xaml"&lt;/span&gt;
    &lt;span class="attr"&gt;Title&lt;/span&gt;&lt;span class="kwrd"&gt;="Configuration"&lt;/span&gt; &lt;span class="attr"&gt;Height&lt;/span&gt;&lt;span class="kwrd"&gt;="300"&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;="300"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;strong&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Window.Resources&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Properties:Settings&lt;/span&gt; &lt;span class="attr"&gt;x:Key&lt;/span&gt;&lt;span class="kwrd"&gt;="settings"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Window.Resources&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/strong&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Grid&lt;/span&gt; &lt;strong&gt;&lt;span class="attr"&gt;DataContext&lt;/span&gt;&lt;span class="kwrd"&gt;="{StaticResource settings}"&lt;/span&gt;&lt;/strong&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Button&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Button.Background&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;SolidColorBrush&lt;/span&gt; &lt;strong&gt;&lt;span class="attr"&gt;Color&lt;/span&gt;&lt;span class="kwrd"&gt;="{Binding Path=Default.FontColor, Mode=TwoWay}"&lt;/span&gt;&lt;/strong&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Button.Background&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Button&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Grid&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Window&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;
Now I can have multiple things bound to a setting and not have to reload after the settings have been updated!&lt;img src="http://betterthaneveryone.com/aggbug/803.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Clint</dc:creator>
            <guid>http://betterthaneveryone.com/archive/2008/07/23/wpf-binding-and-background-colors.aspx</guid>
            <pubDate>Wed, 23 Jul 2008 16:27:49 GMT</pubDate>
            <wfw:comment>http://betterthaneveryone.com/comments/803.aspx</wfw:comment>
            <comments>http://betterthaneveryone.com/archive/2008/07/23/wpf-binding-and-background-colors.aspx#feedback</comments>
            <wfw:commentRss>http://betterthaneveryone.com/comments/commentRss/803.aspx</wfw:commentRss>
            <trackback:ping>http://betterthaneveryone.com/services/trackbacks/803.aspx</trackback:ping>
        </item>
        <item>
            <title>ToDo on Lifehacker!</title>
            <category>ToDo</category>
            <link>http://betterthaneveryone.com/archive/2008/07/22/todo-on-lifehacker.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://lifehacker.com/398997/todo-embeds-the-contents-of-todotxt-onto-your-desktop"&gt;&lt;img title="image" height="480" alt="image" src="http://www.betterthaneveryone.com/images/ToDoonLifehacker_99A5/image_thumb.png" width="551" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a title="Click here to read ToDo Embeds the Contents of Todo.txt onto Your Desktop" href="http://lifehacker.com/398997/todo-embeds-the-contents-of-todotxt-onto-your-desktop"&gt;Click here to read ToDo Embeds the Contents of Todo.txt onto Your Desktop&lt;/a&gt;&lt;/p&gt;&lt;img src="http://betterthaneveryone.com/aggbug/802.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Clint</dc:creator>
            <guid>http://betterthaneveryone.com/archive/2008/07/22/todo-on-lifehacker.aspx</guid>
            <pubDate>Tue, 22 Jul 2008 15:55:57 GMT</pubDate>
            <wfw:comment>http://betterthaneveryone.com/comments/802.aspx</wfw:comment>
            <comments>http://betterthaneveryone.com/archive/2008/07/22/todo-on-lifehacker.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://betterthaneveryone.com/comments/commentRss/802.aspx</wfw:commentRss>
            <trackback:ping>http://betterthaneveryone.com/services/trackbacks/802.aspx</trackback:ping>
        </item>
        <item>
            <title>Laptop acting up? Roll it back with WHS</title>
            <category>Windows Home Server</category>
            <category>Windows Server 2008</category>
            <link>http://betterthaneveryone.com/archive/2008/07/22/laptop-acting-up-roll-it-back-with-whs.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://www.betterthaneveryone.com/images/LaptopactingupRollitbackwithWHS_22E0/windowshomeserver1.jpg"&gt;&lt;img title="windows-home-server[1]" style="margin: 0px 0px 0px 5px" height="130" alt="windows-home-server[1]" src="http://www.betterthaneveryone.com/images/LaptopactingupRollitbackwithWHS_22E0/windowshomeserver1_thumb.jpg" width="131" align="right" border="0" /&gt;&lt;/a&gt; If you follow my twitter feed (&lt;a href="http://twitter.com/crutkas"&gt;http://twitter.com/crutkas&lt;/a&gt;), you may have noticed my Lenovo x300 was being much like a spoiled child today.  For the life of me, I couldn’t keep it stable.  I had the svchost.exe that controlled some pretty critical stuff decide to go nuts on me for some random reason.  It was so bad that I couldn’t even launch task manager.  It was like Chernobyl. &lt;/p&gt;  &lt;p&gt;So I went home and saw I had a few day old back up of my data.  I backed up data I knew was brand new, put in my PC restore disk and went away.&lt;/p&gt;  &lt;p&gt;I did something bad however … I didn’t trust Windows Home Server’s disk settings.  I was all like, “I roll with 5 gangs and live in the 2nd most dangerous city in the US, I do what I want” and set my c:\ to the active drive when it wasn’t.  So a quick bit of background information, my x300 wasn’t reformatted when I got it and has that stupid hidden partion on it.  So I found out that Lenovo has the boot manager on that partition!  It took me about 3 restores before I remembered that I’m a dumb ass.&lt;/p&gt;  &lt;p&gt;Had I not messed with the settings, I would have been back up and going at about 9pm instead of 2:30am.  Still, fun lesson and gave me a few hours to mess with Windows Server 2008 “workstation” on my Lenovo t61p.  I must admit, I made it look like Vista.  It gives me a weird sense of containing power too.  &lt;/p&gt;  &lt;p&gt;There is a &lt;a href="http://www.win2008workstation.com/wordpress/"&gt;blog&lt;/a&gt; that tells you how to make the server OS into a workstation.  After checking that out, reading for 5 minutes, it took 10 minutes to get all the registry keys and services switched on.  Another &lt;a href="http://blogs.msdn.com/vijaysk/archive/2008/02/11/using-windows-server-2008-as-a-super-desktop-os.aspx"&gt;Server 2008 tips and tricks that I didn’t see can be found over on blogs.msdn.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Now do I think the Windows Server 2008 workstation build is faster than Vista?  Initially I thought good god this is fast.  It does seem to boot and shut down super quick too.  But I think this is jumping to conclusions.  I never ran Vista on the computer by itself.  Also Vista SP1 and Windows Server 2008 kernel are the same.  So what I’m going to do is get another backup with the settings as is on my WHS then do a Vista build.  &lt;/p&gt;&lt;img src="http://betterthaneveryone.com/aggbug/801.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Clint</dc:creator>
            <guid>http://betterthaneveryone.com/archive/2008/07/22/laptop-acting-up-roll-it-back-with-whs.aspx</guid>
            <pubDate>Tue, 22 Jul 2008 07:28:51 GMT</pubDate>
            <wfw:comment>http://betterthaneveryone.com/comments/801.aspx</wfw:comment>
            <comments>http://betterthaneveryone.com/archive/2008/07/22/laptop-acting-up-roll-it-back-with-whs.aspx#feedback</comments>
            <wfw:commentRss>http://betterthaneveryone.com/comments/commentRss/801.aspx</wfw:commentRss>
            <trackback:ping>http://betterthaneveryone.com/services/trackbacks/801.aspx</trackback:ping>
        </item>
        <item>
            <title>ClickOnce!</title>
            <category>Coding</category>
            <category>Installers</category>
            <link>http://betterthaneveryone.com/archive/2008/07/21/clickonce.aspx</link>
            <description>&lt;p&gt;I spent a bit attempting to figure out how to do a ClickOnce installer for &lt;a href="http://codeplex.com/todo"&gt;ToDo&lt;/a&gt;.  I was shocked to see where it was actually.  I had to ask &lt;a href="http://channel9.msdn.com/posts/HilaryPike/Simple-Installer-using-Visual-Studio-2005/"&gt;Martin Schray where since he created a how-to video on the “normal” installer&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;So if you want to create a ClickOnce application, follow along.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Open up Visual Studio and whatever solution makes you feel good inside about.&lt;/li&gt;    &lt;li&gt;Be sure the project you want deployed is selected in your solution window     &lt;br /&gt;&lt;a href="http://www.betterthaneveryone.com/images/ClickOnce_CCFC/image.png"&gt;&lt;img title="image" height="274" alt="image" src="http://www.betterthaneveryone.com/images/ClickOnce_CCFC/image_thumb.png" width="245" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Go to Build –&amp;gt; Publish     &lt;br /&gt;&lt;a href="http://www.betterthaneveryone.com/images/ClickOnce_CCFC/image_3.png"&gt;&lt;img title="image" height="241" alt="image" src="http://www.betterthaneveryone.com/images/ClickOnce_CCFC/image_thumb_3.png" width="443" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;The rest is pretty straight forward.  I picked FTP for my method of delivery.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;One issue I dislike however with ClickOnce is it limits what you can do in terms of being an installer.  I would love to put a file in the “Start up” folder, however Click Once doesn’t give me that power.  Due to this fact, I’ll have to add it in programmatically.&lt;/p&gt;&lt;img src="http://betterthaneveryone.com/aggbug/800.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Clint</dc:creator>
            <guid>http://betterthaneveryone.com/archive/2008/07/21/clickonce.aspx</guid>
            <pubDate>Mon, 21 Jul 2008 19:35:02 GMT</pubDate>
            <wfw:comment>http://betterthaneveryone.com/comments/800.aspx</wfw:comment>
            <comments>http://betterthaneveryone.com/archive/2008/07/21/clickonce.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://betterthaneveryone.com/comments/commentRss/800.aspx</wfw:commentRss>
            <trackback:ping>http://betterthaneveryone.com/services/trackbacks/800.aspx</trackback:ping>
        </item>
        <item>
            <title>ToDo on codeplex</title>
            <category>Coding4Fun</category>
            <category>Coding</category>
            <category>ToDo</category>
            <link>http://betterthaneveryone.com/archive/2008/07/18/todo-on-codeplex.aspx</link>
            <description>&lt;p&gt;Launched the &lt;a href="http://codeplex.com/todo"&gt;ToDo project on CodePlex&lt;/a&gt;.  &lt;/p&gt;
&lt;p&gt;You can download the source in c#, VB and the executable.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://codeplex.com/todo/"&gt;http://codeplex.com/todo/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://betterthaneveryone.com/aggbug/799.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Clint</dc:creator>
            <guid>http://betterthaneveryone.com/archive/2008/07/18/todo-on-codeplex.aspx</guid>
            <pubDate>Fri, 18 Jul 2008 22:02:59 GMT</pubDate>
            <wfw:comment>http://betterthaneveryone.com/comments/799.aspx</wfw:comment>
            <comments>http://betterthaneveryone.com/archive/2008/07/18/todo-on-codeplex.aspx#feedback</comments>
            <wfw:commentRss>http://betterthaneveryone.com/comments/commentRss/799.aspx</wfw:commentRss>
            <trackback:ping>http://betterthaneveryone.com/services/trackbacks/799.aspx</trackback:ping>
        </item>
        <item>
            <title>ToDo&amp;rsquo;s and WPF</title>
            <category>Coding</category>
            <category>ToDo</category>
            <link>http://betterthaneveryone.com/archive/2008/07/18/todorsquos-and-wpf.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Much like &lt;a href="http://www.hanselman.com/babysmash/"&gt;Scott Hanselman with Baby Smash&lt;/a&gt;, I used this as an excuse to play with WPF.  If you’re like me, chances are you have a ToDo.txt on your desktop.  It tends to get lost in the sea of windows I have open OR I just forget about it for a few days.&lt;/p&gt;
&lt;p&gt;So here is my solution.  It took about 5 hours to code from start to a stable, usable state.  A WPF application that “lives” on my desktop that lists all my todo’s.  The source code will be posted over at CodePlex shortly at &lt;a href="http://codeplex.com/todo/"&gt;http://codeplex.com/todo/&lt;/a&gt; along with post an article over at &lt;a href="http://www.coding4fun.net"&gt;Coding4Fun&lt;/a&gt;.  &lt;strike&gt;I need to transcode it to Visual Basic still.&lt;/strike&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:  &lt;/strong&gt;Code posted over at CodePlex with c# and VB.  Plus I did a release for it too!&lt;/p&gt;
&lt;p&gt;The really cool thing is the list on your desktop will update in real time with the ToDo list!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.betterthaneveryone.com/images/ToDosandWPF_C89/image.png"&gt;&lt;img title="image" height="289" alt="image" width="640" border="0" src="http://www.betterthaneveryone.com/images/ToDosandWPF_C89/image_thumb.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;h3&gt;Really?  WPF?&lt;/h3&gt;
&lt;p&gt;Yup, I tried to do the transparent text with a Win32 app first and gave up after 15 minutes.  Never doing WPF before, I had a rough proof of concept in 3 minutes.  My toolset was WPF due to this.&lt;/p&gt;
&lt;h3&gt; &lt;/h3&gt;
&lt;h3&gt;Smooth Sailing though … just a bit choppy&lt;/h3&gt;
&lt;p&gt;I had a few WTF moments with WPF.  &lt;a href="http://blogs.msdn.com/danielfe"&gt;Dan Fernandez&lt;/a&gt; had a few moments of me grumbling due to this.&lt;/p&gt;
&lt;p&gt;So with WPF, it works radically different with threading.  I used a &lt;strong&gt;FileSystemWatcher&lt;/strong&gt; object to get notifications with the ToDo’s and in a Win32 application, I could update the user interface directly.&lt;/p&gt;
&lt;p&gt;WPF is a bit more, what is the word I’m looking for, anal, yup, that’s it, about thread safety.  This is good and bad.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;To update the user interface element, you need to talk to the Dispatcher object.  Here is the code I used for my application.&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;delegate&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; NoArgDelegate();
&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; todoWatcher_Changed(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, FileSystemEventArgs e)
{
    txtTodoList.Dispatcher.BeginInvoke(DispatcherPriority.Normal, &lt;span class="kwrd"&gt;new&lt;/span&gt; NoArgDelegate(loadTextBox));
}&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;
&lt;p&gt;Another interesting thing was relearning where stuff was again.  &lt;strong&gt;Screen.Width&lt;/strong&gt; was moved and a &lt;strong&gt;this.Handle&lt;/strong&gt;. &lt;/p&gt;
&lt;p&gt;Here is some of the OnLoad code.  As you see, to get a window handle, you have to use the &lt;strong&gt;WindowInteropHelper&lt;/strong&gt;.  To fetch your screen size, use &lt;strong&gt;SystemParameters.PrimaryScreenWidth&lt;/strong&gt;.  The &lt;strong&gt;SystemParameters&lt;/strong&gt; has a ton of other items in it too on top of just screen size.&lt;/p&gt;
&lt;pre class="csharpcode"&gt;var helper = &lt;span class="kwrd"&gt;new&lt;/span&gt; WindowInteropHelper(&lt;span class="kwrd"&gt;this&lt;/span&gt;);

Win32.SetWindowPos((&lt;span class="kwrd"&gt;int&lt;/span&gt;) helper.Handle,
                   Win32.HWND_BOTTOM,
                   0, 0, 0, 0,
                   Win32.SWP_NOMOVE | Win32.SWP_NOSIZE |
                   Win32.SWP_SHOWWINDOW);

Win32.HideFromAltTab(helper.Handle);

Width = SystemParameters.PrimaryScreenWidth;
Top = SystemParameters.PrimaryScreenHeight - Height;&lt;/pre&gt;
&lt;p&gt;Another head turner was the lack of a &lt;strong&gt;NotifyIcon&lt;/strong&gt; in WPF.  The easy workaround is to include the &lt;strong&gt;System.Windows.Forms&lt;/strong&gt; dll and then reference it in.  Also means you need to manually create your &lt;strong&gt;ContextMenuStrip&lt;/strong&gt; which is a tad of a bummer.  Adding in the code below will gain you a notify icon along with an exit button.&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; NotifyIcon notifyIcon;
&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; createNotifyIcon()
{
    notifyIcon = &lt;span class="kwrd"&gt;new&lt;/span&gt; NotifyIcon {Text = &lt;span class="str"&gt;"ToDo"&lt;/span&gt;, Icon = &lt;span class="kwrd"&gt;new&lt;/span&gt; Icon(&lt;span class="str"&gt;"report.ico"&lt;/span&gt;), Visible = &lt;span class="kwrd"&gt;true&lt;/span&gt;};

    &lt;span class="rem"&gt;// have to use the Forms version&lt;/span&gt;
    var contextMenu = &lt;span class="kwrd"&gt;new&lt;/span&gt; ContextMenuStrip { Name = &lt;span class="str"&gt;"contextMenu"&lt;/span&gt; };
    var exitToolStripMenuItem = &lt;span class="kwrd"&gt;new&lt;/span&gt; ToolStripMenuItem {Name = &lt;span class="str"&gt;"exitToolStripMenuItem1"&lt;/span&gt;, Text = &lt;span class="str"&gt;"Exit"&lt;/span&gt;};
    
    &lt;span class="rem"&gt;// contextMenu&lt;/span&gt;
    contextMenu.Items.AddRange(&lt;span class="kwrd"&gt;new&lt;/span&gt; ToolStripItem[] { exitToolStripMenuItem });
    contextMenu.Size = &lt;span class="kwrd"&gt;new&lt;/span&gt; Size(155, 114);
    
    &lt;span class="rem"&gt;// exitToolStripMenuItem1&lt;/span&gt;
    exitToolStripMenuItem.Size = &lt;span class="kwrd"&gt;new&lt;/span&gt; Size(154, 22);
    exitToolStripMenuItem.Click += exitToolStripMenuItem_Click;

    notifyIcon.ContextMenuStrip = contextMenu;
}

&lt;span class="kwrd"&gt;void&lt;/span&gt; exitToolStripMenuItem_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)
{
    notifyIcon.Dispose();

    Close();
}&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;
&lt;p&gt;Once I got past doing stuff the new way over the old way, I have to say, WPF has some really powerful stuff built in.  I love how it forces you to think multi-threaded too right off the bat!&lt;/p&gt;&lt;img src="http://betterthaneveryone.com/aggbug/798.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Clint</dc:creator>
            <guid>http://betterthaneveryone.com/archive/2008/07/18/todorsquos-and-wpf.aspx</guid>
            <pubDate>Fri, 18 Jul 2008 05:53:45 GMT</pubDate>
            <wfw:comment>http://betterthaneveryone.com/comments/798.aspx</wfw:comment>
            <comments>http://betterthaneveryone.com/archive/2008/07/18/todorsquos-and-wpf.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://betterthaneveryone.com/comments/commentRss/798.aspx</wfw:commentRss>
            <trackback:ping>http://betterthaneveryone.com/services/trackbacks/798.aspx</trackback:ping>
        </item>
        <item>
            <title>Video of me riding (kind of)</title>
            <link>http://betterthaneveryone.com/archive/2008/07/15/video-of-me-riding-kind-of.aspx</link>
            <description>&lt;div class="wlWriterSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:a47c1f7c-c7c0-440c-b104-8d1d714162cf" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;div id="09fa65a3-baad-40c6-bf23-427e355f2828" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=EZqi3quKOSQ&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0" target="_new"&gt;&lt;img src="http://www.betterthaneveryone.com/images/Videoofmeridingkindof_1BFA/videof0e6cc11d7ae.jpg" galleryimg="no" onload="var downlevelDiv = document.getElementById('09fa65a3-baad-40c6-bf23-427e355f2828'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/EZqi3quKOSQ&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;param name=\&amp;quot;wmode\&amp;quot; value=\&amp;quot;transparent\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/EZqi3quKOSQ&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; wmode=\&amp;quot;transparent\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt="" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://betterthaneveryone.com/aggbug/796.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Clint</dc:creator>
            <guid>http://betterthaneveryone.com/archive/2008/07/15/video-of-me-riding-kind-of.aspx</guid>
            <pubDate>Tue, 15 Jul 2008 06:59:29 GMT</pubDate>
            <wfw:comment>http://betterthaneveryone.com/comments/796.aspx</wfw:comment>
            <comments>http://betterthaneveryone.com/archive/2008/07/15/video-of-me-riding-kind-of.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://betterthaneveryone.com/comments/commentRss/796.aspx</wfw:commentRss>
            <trackback:ping>http://betterthaneveryone.com/services/trackbacks/796.aspx</trackback:ping>
        </item>
        <item>
            <title>My dad is going to love saying &amp;ldquo;I told you so&amp;rdquo;</title>
            <category>Building</category>
            <category>Parts</category>
            <category>Skateboard</category>
            <link>http://betterthaneveryone.com/archive/2008/07/15/my-dad-is-going-to-love-saying-ldquoi-told-you.aspx</link>
            <description>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.betterthaneveryone.com/images/MydadisgoingtolovesayingItoldyouso_EFA/497581.jpg"&gt;&lt;img title="49758[1]" style="margin: 0px 0px 0px 5px" height="240" alt="49758[1]" src="http://www.betterthaneveryone.com/images/MydadisgoingtolovesayingItoldyouso_EFA/497581_thumb.jpg" width="160" align="right" border="0" /&gt;&lt;/a&gt;I see now why Dean Kamen’s designed the segway with handlebars.  So tonight I finally got the &lt;strike&gt;balls&lt;/strike&gt; confidence to ride the skateboard.  I have to say, is a rather scary thing since if I hurt myself, I’m semi screwed since I lack a roommate in my current apartment.&lt;/p&gt;  &lt;p&gt;By using a chair stool, I can keep myself stable enough to slide back and forth.  I haven’t tweaked the PD values enough to really feel safe enough to let go however for more than a split second.  It works though.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;One big issue I’m seeing already is the chains in the gearbox dither too much.  What exactly does that mean?  Since there are 2 gear reductions, it has 2 chain belts.  Since there is a very small amount of extra slack in the chain, it causes too much give.  I can feel the extra jerk from the chain drive when moving.&lt;/p&gt;  &lt;p&gt;The ironic thing is my dad warned me about this problem.  Good thing he doesn’t read my blog if he doesn’t if there isn’t a Google alert on me.  Bad thing is I think it needs to be solved so I’ll have to give him a jingle.  This has to be a solved problem already.  Hell, bikes have solved this issue if you think about it …&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;I’ll post a video of me hurting myself shortly.&lt;/p&gt;&lt;img src="http://betterthaneveryone.com/aggbug/795.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Clint</dc:creator>
            <guid>http://betterthaneveryone.com/archive/2008/07/15/my-dad-is-going-to-love-saying-ldquoi-told-you.aspx</guid>
            <pubDate>Tue, 15 Jul 2008 06:04:05 GMT</pubDate>
            <wfw:comment>http://betterthaneveryone.com/comments/795.aspx</wfw:comment>
            <comments>http://betterthaneveryone.com/archive/2008/07/15/my-dad-is-going-to-love-saying-ldquoi-told-you.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://betterthaneveryone.com/comments/commentRss/795.aspx</wfw:commentRss>
            <trackback:ping>http://betterthaneveryone.com/services/trackbacks/795.aspx</trackback:ping>
        </item>
        <item>
            <title>Using the force sensors Luke</title>
            <category>Skateboard</category>
            <category>Coding</category>
            <link>http://betterthaneveryone.com/archive/2008/07/10/using-the-force-sensors-luke.aspx</link>
            <description>&lt;p&gt;Code added/fixed tonight (or if you view 4am morning instead of night…):&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Data Logging is now optional&lt;/li&gt;    &lt;li&gt;Force sensors are added in&lt;/li&gt;    &lt;li&gt;Is board in a safe area to start&lt;/li&gt;    &lt;li&gt;Removed I for the PID control loop&lt;/li&gt;    &lt;li&gt;More compact interface&lt;/li&gt;    &lt;li&gt;Turning code added but not “enabled”&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://www.betterthaneveryone.com/images/UsingtheforcesensorsLuke_36E5/image.png"&gt;&lt;img title="image" height="220" alt="image" src="http://www.betterthaneveryone.com/images/UsingtheforcesensorsLuke_36E5/image_thumb.png" width="500" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Tomorrow:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Verify Force sensor code works&lt;/li&gt;    &lt;li&gt;Verify board safety code&lt;/li&gt;    &lt;li&gt;Video tape me running into walls.&lt;/li&gt;    &lt;li&gt;Tweak PD control loop&lt;/li&gt;    &lt;li&gt;Get turning tweaked in&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Yet another simple function.  This one is for verifying if the board is safe to start riding.  Who knew making something safe could be such a pain in the ass?&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; prepBoard()
{
    var isUserPrepped = &lt;span class="kwrd"&gt;false&lt;/span&gt;;
            
    &lt;span class="kwrd"&gt;const&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; safeAngle = 5;
    &lt;span class="kwrd"&gt;const&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; safeGyro = 5;

    &lt;span class="kwrd"&gt;while&lt;/span&gt; (!isUserPrepped &amp;amp;&amp;amp; IsUserOnSkateboard())
    {
        var data = imu.GetImuData(PiDividedBySix, PiDividedBySix, PiDividedBySix);

        var angle = data.AccelerationCorrected_X;
        var gyro = data.GyroCorrected_X;

        isUserPrepped = (angle &amp;lt; safeAngle &amp;amp;&amp;amp; angle &amp;gt; -safeAngle) &amp;amp;&amp;amp; (gyro &amp;lt; safeGyro &amp;amp;&amp;amp; gyro &amp;gt; -safeGyro);
    }
}&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Best of all, my book chapter is done (I hope, right Dan, right?)&lt;/p&gt;&lt;img src="http://betterthaneveryone.com/aggbug/794.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Clint</dc:creator>
            <guid>http://betterthaneveryone.com/archive/2008/07/10/using-the-force-sensors-luke.aspx</guid>
            <pubDate>Thu, 10 Jul 2008 08:54:26 GMT</pubDate>
            <wfw:comment>http://betterthaneveryone.com/comments/794.aspx</wfw:comment>
            <comments>http://betterthaneveryone.com/archive/2008/07/10/using-the-force-sensors-luke.aspx#feedback</comments>
            <wfw:commentRss>http://betterthaneveryone.com/comments/commentRss/794.aspx</wfw:commentRss>
            <trackback:ping>http://betterthaneveryone.com/services/trackbacks/794.aspx</trackback:ping>
        </item>
    </channel>
</rss>