<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>The Code Bucket</title>
        <link>http://codebucket.org/Default.aspx</link>
        <description>You're only as smart as your last line of code</description>
        <language>en-US</language>
        <copyright>Lee Brandt</copyright>
        <managingEditor>leebrandt@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>The Code Bucket</title>
            <url>http://codebucket.org/images/RSS2Image.gif</url>
            <link>http://codebucket.org/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>NHibernate 2.0 Release!!</title>
            <link>http://codebucket.org/archive/2008/08/23/nhibernate-2.0-release.aspx</link>
            <description>&lt;p&gt;Just read &lt;a href="http://ayende.com/Blog/archive/2008/08/23/NHibernate-2.0-Final-is-out.aspx" target="_blank"&gt;Ayende's post about it&lt;/a&gt; and thought I would reiterate.&lt;/p&gt;  &lt;p&gt;Version 2.0 of NHibernate (the awesomest ORM tool) is released.&lt;/p&gt;  &lt;p&gt;I've been using the alpha and beta and it is quite sweet (even in the alpha stages).&lt;/p&gt;  &lt;p&gt;You can &lt;a href="http://ayende.com/Blog/archive/2008/08/23/NHibernate-2.0-Final-is-out.aspx" target="_blank"&gt;get it here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;  &lt;p&gt;~Lee&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=124649"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=124649" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://codebucket.org/aggbug/124649.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lee Brandt</dc:creator>
            <guid>http://codebucket.org/archive/2008/08/23/nhibernate-2.0-release.aspx</guid>
            <pubDate>Sun, 24 Aug 2008 02:02:16 GMT</pubDate>
            <wfw:comment>http://codebucket.org/comments/124649.aspx</wfw:comment>
            <comments>http://codebucket.org/archive/2008/08/23/nhibernate-2.0-release.aspx#feedback</comments>
            <wfw:commentRss>http://codebucket.org/comments/commentRss/124649.aspx</wfw:commentRss>
            <trackback:ping>http://codebucket.org/services/trackbacks/124649.aspx</trackback:ping>
        </item>
        <item>
            <title>Three Ways to Register Dependencies with StructureMap 2.4.9</title>
            <category>Dependency Injection</category>
            <category>Learning</category>
            <link>http://codebucket.org/archive/2008/08/10/three-ways-to-register-dependencies-with-structuremap-2.4.9.aspx</link>
            <description>&lt;p&gt;I've been using &lt;a target="_blank" href="http://structuremap.sourceforge.net/Default.htm"&gt;StructureMap&lt;/a&gt; for my dependency injection container for a little while now and I wanted to discover all the ways (I could find) to register my dependencies. Here's is what I came up with (If you know of more or see something wrong drop me a comment):&lt;/p&gt;
&lt;p&gt;I've got a project with a console app, a project for my dependencies (memento and concrete types), and a project that does my dependency registration (when I do it in code). My console app just gets the default concrete type first, then gets a named instance. Each implement the IInjectable interface. &lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Main(&lt;span class="kwrd"&gt;string&lt;/span&gt;[] args) {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="rem"&gt;//Registrar.RegisterByAddingARegistry();&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    &lt;span class="rem"&gt;//Registrar.RegisterBySearchingAnAssembly();&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    &lt;span class="rem"&gt;// get the default concrete type&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;    var defaultInjector = ObjectFactory.GetInstance&amp;lt;IInjectable&amp;gt;();&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    &lt;span class="rem"&gt;// get a named concrete type&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;    var namedInjector = ObjectFactory.GetNamedInstance&amp;lt;IInjectable&amp;gt;(&lt;span class="str"&gt;"Other"&lt;/span&gt;);&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    &lt;span class="rem"&gt;// output the types so we know we got the right ones&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;    Console.WriteLine(defaultInjector.WhatsMyType());&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;    Console.WriteLine(namedInjector.WhatsMyType());&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;    &lt;span class="rem"&gt;// pause so we can see&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;    Console.WriteLine(&lt;span class="str"&gt;"press any key to continue..."&lt;/span&gt;);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;    Console.ReadKey();&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&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;a href="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/ThreeWaystoRegisterDependencieswithStr.9_3E68/Output_2.gif"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="112" alt="Output" width="218" align="right" border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/ThreeWaystoRegisterDependencieswithStr.9_3E68/Output_thumb.gif" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Once the program runs, I should see (no matter which registration method I am using) a console output that looks like the screen shot to the right.&lt;/p&gt;
&lt;p&gt; &lt;/p&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;First, is the good, old-fashioned StructureMap.config file. This is probably the simplest solution and the one most people will use. It looks like:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&amp;lt;?xml version=&lt;span class="str"&gt;"1.0"&lt;/span&gt; encoding=&lt;span class="str"&gt;"utf-8"&lt;/span&gt; ?&amp;gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&amp;lt;StructureMap&amp;gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;  &amp;lt;Assembly Name=&lt;span class="str"&gt;"ConsoleTester"&lt;/span&gt; /&amp;gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;  &amp;lt;PluginFamily Assembly=&lt;span class="str"&gt;"Dependencies.Project"&lt;/span&gt; Type=&lt;span class="str"&gt;"Dependencies.Project.IInjectable"&lt;/span&gt; DefaultKey=&lt;span class="str"&gt;"Default"&lt;/span&gt;&amp;gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    &amp;lt;Plugin Assembly=&lt;span class="str"&gt;"Dependencies.Project"&lt;/span&gt; Type=&lt;span class="str"&gt;"Dependencies.Project.InjectorOne"&lt;/span&gt; ConcreteKey=&lt;span class="str"&gt;"Default"&lt;/span&gt;/&amp;gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    &amp;lt;Plugin Assembly=&lt;span class="str"&gt;"Dependencies.Project"&lt;/span&gt; Type=&lt;span class="str"&gt;"Dependencies.Project.InjectorTwo"&lt;/span&gt; ConcreteKey=&lt;span class="str"&gt;"Other"&lt;/span&gt;/&amp;gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;  &amp;lt;/PluginFamily&amp;gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&amp;lt;/StructureMap&amp;gt; &lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Put this config file in any project that needs to have dependencies injected, and &lt;u&gt;make sure to change the "Copy to Output Directory" property of the file to "Copy if newer" or "Copy always"&lt;/u&gt;. This ensures the project needing dependency injection can use the config file.&lt;/p&gt;
&lt;p&gt;Second, I can add a Registry to my configuration using the following code. It will override using the XML configuration file and to call AddRegistry Method. (notice the first line of the configure() override: I reset the plug in graph no need to do this if you take the StructureMap.config XML file out.):&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; RegisterByAddingARegistry()&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    ObjectFactory.Reset();&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    StructureMapConfiguration.UseDefaultStructureMapConfigFile = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    StructureMapConfiguration.AddRegistry(&lt;span class="kwrd"&gt;new&lt;/span&gt; InjectableRegistry());&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&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;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;where my InjectableRegistry class looks like:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; InjectableRegistry : Registry&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; configure() {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;        ObjectFactory.Reset();&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;        RegisterDefault&amp;lt;IInjectable, InjectorOne&amp;gt;();&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;        Register&amp;lt;IInjectable, InjectorTwo&amp;gt;(&lt;span class="str"&gt;"Other"&lt;/span&gt;);&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;    }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; RegisterDefault&amp;lt;MementoType, ConcreteType&amp;gt;() &lt;span class="kwrd"&gt;where&lt;/span&gt; ConcreteType : MementoType&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;    {&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;        StructureMapConfiguration&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;            .ForRequestedType&amp;lt;MementoType&amp;gt;()&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;            .TheDefaultIsConcreteType&amp;lt;ConcreteType&amp;gt;()&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;            .CacheBy(InstanceScope.Singleton);&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;    }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Register&amp;lt;MementoType, ConcreteType&amp;gt;(&lt;span class="kwrd"&gt;string&lt;/span&gt; instanceName) &lt;span class="kwrd"&gt;where&lt;/span&gt; ConcreteType : &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;        MementoType&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;    {&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;        StructureMapConfiguration&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;            .ForRequestedType&amp;lt;MementoType&amp;gt;()&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;            .AddConcreteType&amp;lt;ConcreteType&amp;gt;(instanceName)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;            .CacheBy(InstanceScope.Singleton);&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;    }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&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;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;The Registry type is in the StructureMap.Configuration.DSL assembly. It basically allows the fluent interface to the StructureMapConfiguration class. This setup should receive the exact same screen output as before once that is done. &lt;/p&gt;
&lt;p&gt;Lastly, I can tell StructureMap to set up all plug in families and plug ins by searching an assembly. StructureMap uses Attributes on the classes to create the configuration. Like so:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;[PluginFamily(&lt;span class="str"&gt;"Default"&lt;/span&gt;, IsSingleton = &lt;span class="kwrd"&gt;true&lt;/span&gt;)]&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;interface&lt;/span&gt; IInjectable {&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="kwrd"&gt;string&lt;/span&gt; WhatsMyType();&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;}&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;[Pluggable(&lt;span class="str"&gt;"Default"&lt;/span&gt;)]&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; InjectorOne : IInjectable {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; WhatsMyType()&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="str"&gt;"I am InjectorOne"&lt;/span&gt;;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;    }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;}&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;[Pluggable(&lt;span class="str"&gt;"Other"&lt;/span&gt;)]&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; InjectorTwo :IInjectable {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; WhatsMyType()&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;    {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="str"&gt;"I am InjectorTwo"&lt;/span&gt;;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;    }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt; &lt;/p&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;The Registrar method looks like:
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; RegisterBySearchingAnAssembly()&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    ObjectFactory.Reset();&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    StructureMapConfiguration.UseDefaultStructureMapConfigFile = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    StructureMapConfiguration.ScanAssemblies();&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt; David Hayden's &lt;a target="_blank" href="http://www.pnpguidance.net/Post/StructureMapTutorialDependencyInjectionIoCNET.aspx"&gt;post&lt;/a&gt; helped me a lot with this.&lt;/p&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;Hope this helps someone. It will probably help me when I forget one of these! :0)&lt;/p&gt;
&lt;p&gt;Download the code &lt;a target="_blank" href="http://groups.google.com/group/kcdotnet/web/FirstInjection.zip"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;~Lee&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=124338"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=124338" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://codebucket.org/aggbug/124338.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lee Brandt</dc:creator>
            <guid>http://codebucket.org/archive/2008/08/10/three-ways-to-register-dependencies-with-structuremap-2.4.9.aspx</guid>
            <pubDate>Sun, 10 Aug 2008 09:26:21 GMT</pubDate>
            <wfw:comment>http://codebucket.org/comments/124338.aspx</wfw:comment>
            <comments>http://codebucket.org/archive/2008/08/10/three-ways-to-register-dependencies-with-structuremap-2.4.9.aspx#feedback</comments>
            <wfw:commentRss>http://codebucket.org/comments/commentRss/124338.aspx</wfw:commentRss>
            <trackback:ping>http://codebucket.org/services/trackbacks/124338.aspx</trackback:ping>
        </item>
        <item>
            <title>How I Got Started Programming</title>
            <link>http://codebucket.org/archive/2008/08/09/how-i-got-started-programming.aspx</link>
            <description>&lt;p&gt;I got tagged by &lt;a href="http://www.ferventcoder.com/" target="_blank"&gt;Rob Reynolds&lt;/a&gt; with the "How I Got Started Programming" blog meme, so here is my story.&lt;/p&gt;  &lt;h1&gt;How old were you when you started programming?&lt;/h1&gt;  &lt;p&gt;I wrote my first BASIC program when I was 10. It was a program that scrolled test from the bottom to the top of the screen. I think it was on a Trash-80.&lt;/p&gt;  &lt;h1&gt;&lt;strong&gt;What was your first language?&lt;/strong&gt;&lt;/h1&gt;  &lt;p&gt;Basic. I did it with the Trash-80 and spent a summer taking a Basic programming class for Apple IIe. (I'm such a geek).&lt;/p&gt;  &lt;h1&gt;What was the first real program you wrote?&lt;/h1&gt;  &lt;p&gt;Back when I did that other programming, I didn't really care for it too much. Everything was text and boring, so I didn't really do much after that summer class when I was about 13, but there were always computers around my house cause my dad was a Network Admin for the government. &lt;/p&gt;  &lt;p&gt;About 1993, I got my first real PC (had a LOT of Macs up until then), and my first AOL account (don't laugh). I thought it was fun, but no real way to make a living at it, so I continued my day job as a auto mechanic (not a certified one) and then got a job in a machine shop MAKING auto parts and writing programs that told the machine where to drill and mill to make the parts. That was my first professional programming gig (whether I knew it or not).&lt;/p&gt;  &lt;p&gt;But my first REAL programming job was in 1998 when I rewrote &lt;a href="http://www.skillpath.com/" target="_blank"&gt;SkillPath Seminars' website&lt;/a&gt; in ColdFusion 4.0.&lt;/p&gt;  &lt;h1&gt;If you knew then what you know now, would you have started programming?&lt;/h1&gt;  &lt;p&gt;Absotively. I would've started sooner. I think of all the time I spent trying to figure out what I wanted to do, and how I LOVE to code now and I think, "What took you so freaking long?!!?"&lt;/p&gt;  &lt;h1&gt;If there is one thing you learned along the way that you would tell new developers, what would it be?&lt;/h1&gt;  &lt;p&gt;Start with a low-level language (like Assembly). It may be boring and you may not be able to make the cool stuff (without a LOT of work), but it will give you an understanding of memory management and how computers do what they do that will be invaluable later in your career. I STILL want to go back and do some serious Assembly or ANSI-C programming to really deepen my knowledge of that stuff.&lt;/p&gt;  &lt;h1&gt;What's the most fun you've ever had ... programming?&lt;/h1&gt;  &lt;p&gt;Working at Premier Studios, I got to help create an IT department where none existed before. As a team, we decided what technologies to use, we created a code base and standards and experimented with methodologies and basically turned it into a REAL profit center for the company. I LOVED that.&lt;/p&gt;  &lt;h5&gt;tagged next:&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://brianlaird.com/blogs/blaird/default.aspx" target="_blank"&gt;Brian Laird&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blog.dougbutscher.com/" target="_blank"&gt;Doug Butscher&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mosslover.com/" target="_blank"&gt;Becky Isserman&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=124328"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=124328" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://codebucket.org/aggbug/124328.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lee Brandt</dc:creator>
            <guid>http://codebucket.org/archive/2008/08/09/how-i-got-started-programming.aspx</guid>
            <pubDate>Sat, 09 Aug 2008 07:13:24 GMT</pubDate>
            <wfw:comment>http://codebucket.org/comments/124328.aspx</wfw:comment>
            <comments>http://codebucket.org/archive/2008/08/09/how-i-got-started-programming.aspx#feedback</comments>
            <wfw:commentRss>http://codebucket.org/comments/commentRss/124328.aspx</wfw:commentRss>
            <trackback:ping>http://codebucket.org/services/trackbacks/124328.aspx</trackback:ping>
        </item>
        <item>
            <title>On Project Structure</title>
            <link>http://codebucket.org/archive/2008/08/02/on-project-structure.aspx</link>
            <description>&lt;p&gt;I have looked at others' strategies for arranging projects within a solution, and I have experimented with my own until I cam up with the following (mostly based on my own OCD about organization, but somewhat based on actual development reasoning).&lt;/p&gt;  &lt;p&gt;I must preempt by saying that I am using the MVP pattern for my projects, so that influences my arrangement somewhat. I will also say that I enjoy using periods in my project names. Mostly because it looks clean to me, but also because I have a need sometimes for using projects in multiple solutions. This need led to several decisions that some people may not agree with. when deciding what things go in a particular project, I use&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/OnProjectStructure_DA89/ProjectStructure_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="244" alt="ProjectStructure" src="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/OnProjectStructure_DA89/ProjectStructure_thumb.jpg" width="163" align="right" border="0" /&gt;&lt;/a&gt; that as my guideline: If I have to move this project to another solution, will I need to take this with it? I may have a data and domain project that is called [CompanyName].Data and [CompanyName].Domain and use those in three or four different solutions for different software I develop for them. Then I may have a [ProjectName].NHibernate.Data project in that solution as well. &lt;/p&gt;  &lt;p&gt;First, I have four basic projects: [ProjectName].Domain, [ProjectName].Data, [ProjectName].Presentation and [ProjectName].UI. The Domain project is my business objects and logic layer. anything that has to do with the business domain of the project and will only be used with that project. The Presentation project has my presenters in it (pretty straight forward). My Data project is the Interfaces that my presenters will use for data access and will get its implementation from a project with concrete classes in it. Finally, my UI project contains the interfaces that my presenters will use to display data. I will have one or more projects that contains concrete implementations for these interfaces.&lt;/p&gt;  &lt;p&gt;I will add test projects for each of these. At first glance, this seems like an inordinate amount of projects in a solution. I've seen lots of developers add one project called UnitTests to a solution and have folders organizing the unit tests for each project. That's not bad, but what if I need to take that project to another solution? I want to take the unit tests for it with me, but I don't want to take ALL the unit tests with me, so that &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/OnProjectStructure_DA89/VSProjectStructure_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="244" alt="VSProjectStructure" src="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/OnProjectStructure_DA89/VSProjectStructure_thumb.jpg" width="230" align="left" border="0" /&gt;&lt;/a&gt; won't work for me. I could also add a UnitTests folder to each project. This is a little bit better. It would definitely cut down on the amount of projects in my solution. The problem I have with it is that tests are supposed to simulate how a user or another object interacts with that object or interface. With my tests INSIDE my project, I might get a test that passes because it is within the same assembly as the system under test (SUT). I choose to make separate assemblies for my tests to give myself greater confidence that the SUT will work as expected when I am ready to deliver the software (and that's what TDD is all about). I also use a Solution Folder to organize my test projects away from the code projects. This is only due to my own OCD and the ability to collapse the folder and only look at the code projects in the solution.&lt;/p&gt;  &lt;p&gt;Now there are some things I don't like about my organization, but I haven't found a better solution (here's where you come in). I'll have a concrete Data project (e.g. [ProjectName].NHibernate.Data) this will have a test project (e.g. [ProjectName].NHibernate.Data.Test). This LOOKS the same as all the other unit test projects, but this is technically an integration test (testing to see if my project integrates with the database), so it's possible it could use another convention to distinguish it. It may not. I also STILL think there are probably too many projects in my solution (or at least the potential for lots), but every separation has been made for a reason. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;~Lee&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=124202"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=124202" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://codebucket.org/aggbug/124202.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lee Brandt</dc:creator>
            <guid>http://codebucket.org/archive/2008/08/02/on-project-structure.aspx</guid>
            <pubDate>Sat, 02 Aug 2008 20:32:30 GMT</pubDate>
            <wfw:comment>http://codebucket.org/comments/124202.aspx</wfw:comment>
            <comments>http://codebucket.org/archive/2008/08/02/on-project-structure.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://codebucket.org/comments/commentRss/124202.aspx</wfw:commentRss>
            <trackback:ping>http://codebucket.org/services/trackbacks/124202.aspx</trackback:ping>
        </item>
        <item>
            <title>My Favorite Keyboard</title>
            <link>http://codebucket.org/archive/2008/08/01/my-favorite-keyboard.aspx</link>
            <description>&lt;p&gt;About a month ago I bought a &lt;a href="http://www.microsoft.com/hardware/mouseandkeyboard/ProductDetails.aspx?pid=040" target="_blank"&gt;new keyboard&lt;/a&gt; for my home computer, and I loved it so much I immediately went and got one for work. These keyboards are awesome!!&lt;/p&gt;  &lt;p&gt;Let me qualify that by saying that I DO NOT TYPE CORRECTLY! I am a mile-a-minute, hunt-and-peck typist. My fingers start our over the home row, but they do not move the way they're supposed to.&lt;/p&gt;  &lt;p&gt;That said, this keyboard is a monster!. the action is just right for me, the keys are cushioned just enough that when I type I feel in total control. I'm addicted. The absolute best part about these keyboards? They're only $20!!!&lt;/p&gt;  &lt;p&gt;What's you're favorite keyboard?&lt;/p&gt;  &lt;p&gt;I know this is a fluff post, but things are really getting busy. More substantial posts coming very soon!&lt;/p&gt;  &lt;p&gt;~Lee&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=124168"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=124168" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://codebucket.org/aggbug/124168.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lee Brandt</dc:creator>
            <guid>http://codebucket.org/archive/2008/08/01/my-favorite-keyboard.aspx</guid>
            <pubDate>Fri, 01 Aug 2008 06:59:25 GMT</pubDate>
            <wfw:comment>http://codebucket.org/comments/124168.aspx</wfw:comment>
            <comments>http://codebucket.org/archive/2008/08/01/my-favorite-keyboard.aspx#feedback</comments>
            <wfw:commentRss>http://codebucket.org/comments/commentRss/124168.aspx</wfw:commentRss>
            <trackback:ping>http://codebucket.org/services/trackbacks/124168.aspx</trackback:ping>
        </item>
        <item>
            <title>Lil&amp;rsquo; NHibernate Tip</title>
            <link>http://codebucket.org/archive/2008/07/28/lilrsquo-nhibernate-tip.aspx</link>
            <description>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;This may be in the documentation somewhere, but I certainly missed it and cannot find it. I thought I’d make a little post about it, so that I’d remember it, and maybe help someone else who missed it in the documentation too.&lt;/p&gt;  &lt;p&gt;Remember to set the Build Action property on all *.hbm.xml files to “Embedded Resource”. The NHibernate config file looks for these files as Embedded resources and will not pick it up if it is left at the default “Content” property.&lt;/p&gt;  &lt;p&gt;Hope this helps someone.&lt;/p&gt;  &lt;p&gt;~Lee&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=124072"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=124072" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://codebucket.org/aggbug/124072.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lee Brandt</dc:creator>
            <guid>http://codebucket.org/archive/2008/07/28/lilrsquo-nhibernate-tip.aspx</guid>
            <pubDate>Mon, 28 Jul 2008 18:16:01 GMT</pubDate>
            <wfw:comment>http://codebucket.org/comments/124072.aspx</wfw:comment>
            <comments>http://codebucket.org/archive/2008/07/28/lilrsquo-nhibernate-tip.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://codebucket.org/comments/commentRss/124072.aspx</wfw:commentRss>
            <trackback:ping>http://codebucket.org/services/trackbacks/124072.aspx</trackback:ping>
        </item>
        <item>
            <title>As the (Agile) World Turns</title>
            <link>http://codebucket.org/archive/2008/07/23/as-the-agile-world-turns.aspx</link>
            <description>&lt;p&gt;This will be the first in a series to document my organization's adoption of an agile development process (specifically &lt;a href="http://www.extremeprogramming.org/" target="_blank"&gt;Extreme Programming&lt;/a&gt;). I want to document this process for three main reasons: 1. Basic posterity. I may want to look back on this process and reflect on the mistakes we made. 2. So that others can learn from our mistakes. 3. So that others can possibly help keep me from making their mistakes. Seems like a lot of mistakes being made in agile development. That's actually kind of the point: fail fast. Hurry up and get it wrong the first time, so you can learn from those mistakes and move forward.&lt;/p&gt;  &lt;p&gt;Our first challenge is defining what &lt;a href="http://www.extremeprogramming.org/" target="_blank"&gt;Extreme Programming&lt;/a&gt; IS. We got copies of &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2FArt-Agile-Development-James-Shore%2Fdp%2F0596527675%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1216797512%26sr%3D8-1&amp;amp;tag=thecodbuc-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325" target="_blank"&gt;The Art of Agile Development&lt;/a&gt; for all the members of the team. It is an EXCELLENT resource for getting everyone on the same page when it comes to XP practices and, more importantly, the purpose of those practices. That is the main fundamental that I have tried to push to my team (and push to myself): the purpose of the practice is more important than the practice itself. The point of &lt;a href="http://www.testdriven.com" target="_blank"&gt;TDD&lt;/a&gt; is to create a feeling of confidence in the stability and design of your code. If it is not doing that, you need to punt it and find something that DOES do that. The point of &lt;a href="http://toolbox.xilinx.com/docsan/xilinx6/books/data/docs/dev/dev0020_6.html#wp251711" target="_blank"&gt;Incremental Design&lt;/a&gt;, is to develop only functionality that provides business value. If you find yourself outside that scope, either you've wandered off the XP farm, or Incremental design is not working for you... get rid of it. &lt;/p&gt;  &lt;p&gt;The whole point of Agile development is making change the heart of your process, don't be afraid to change your process, tools, code, the design, etc. That's what this process is all about.&lt;/p&gt;  &lt;p&gt;Until next time...&lt;/p&gt;  &lt;p&gt;~Lee&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=123964"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=123964" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://codebucket.org/aggbug/123964.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lee Brandt</dc:creator>
            <guid>http://codebucket.org/archive/2008/07/23/as-the-agile-world-turns.aspx</guid>
            <pubDate>Wed, 23 Jul 2008 07:22:09 GMT</pubDate>
            <wfw:comment>http://codebucket.org/comments/123964.aspx</wfw:comment>
            <comments>http://codebucket.org/archive/2008/07/23/as-the-agile-world-turns.aspx#feedback</comments>
            <wfw:commentRss>http://codebucket.org/comments/commentRss/123964.aspx</wfw:commentRss>
            <trackback:ping>http://codebucket.org/services/trackbacks/123964.aspx</trackback:ping>
        </item>
        <item>
            <title>What's Your Developer Soundtrack?</title>
            <link>http://codebucket.org/archive/2008/07/18/whats-your-developer-soundtrack.aspx</link>
            <description>&lt;p&gt;I find that most programmers have a music that they prefer listening to while coding. Just wondering what the gamut of developer soundtracks there are. While I LOVE listening to &lt;a href="http://www.sisterhazel.com/" target="_blank"&gt;Sister Hazel&lt;/a&gt;, &lt;a href="www.foofighters.com" target="_blank"&gt;Foo Fighters&lt;/a&gt;, &lt;a href="www.coldplay.com" target="_blank"&gt;Cold Play&lt;/a&gt;, &lt;a href="www.benfolds.com" target="_blank"&gt;Ben Folds&lt;/a&gt;, and &lt;a href="www.bobschneidermusic.com" target="_blank"&gt;Bob Schneider&lt;/a&gt; for coding, I find myself drawn to &lt;a href="http://somafm.com/wma128/spacestation.asx" target="_blank"&gt;the space station&lt;/a&gt; most of the time when coding.&lt;/p&gt;  &lt;p&gt;What's YOU'RE developer soundtrack?&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=123869"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=123869" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://codebucket.org/aggbug/123869.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lee Brandt</dc:creator>
            <guid>http://codebucket.org/archive/2008/07/18/whats-your-developer-soundtrack.aspx</guid>
            <pubDate>Fri, 18 Jul 2008 06:37:36 GMT</pubDate>
            <wfw:comment>http://codebucket.org/comments/123869.aspx</wfw:comment>
            <comments>http://codebucket.org/archive/2008/07/18/whats-your-developer-soundtrack.aspx#feedback</comments>
            <slash:comments>5</slash:comments>
            <wfw:commentRss>http://codebucket.org/comments/commentRss/123869.aspx</wfw:commentRss>
            <trackback:ping>http://codebucket.org/services/trackbacks/123869.aspx</trackback:ping>
        </item>
        <item>
            <title>Book Review: Code Leader (Wrox) by Patrick Cauldwell</title>
            <link>http://codebucket.org/archive/2008/07/14/book-review-code-leader-wrox-by-patrick-cauldwell.aspx</link>
            <description>&lt;p&gt;I saw this book in Borders and, when I read the table of contents, I KNEW I wanted to read it. I had just returned from Headspring &amp;amp; Jeffrey Palermo's Agile .NET Boot Camp class in Austin, and this covered a lot of the same things (and a few others), so that made it very poignant. &lt;a title="Code Leader by Patrick Cauldwell" href="http://www.amazon.com/gp/product/0470259248?ie=UTF8&amp;amp;tag=thecodbuc-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0470259248" target="_blank"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="164" alt="Code Leader (Wrox) by Patrick Cauldwell " src="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/BookReviewCodeLeaderWroxbyPatrickCauldwe_12B7/518MuD-HwUL__SL160__3.jpg" width="131" align="right" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I am adding this book to my must read list. I got through it in about a week. It is VERY easy to read. For developers looking to take their development skills to the next level and are not able to go to Jeffrey's course, this is perfect. Agile .NET Boot Camp covered some more concrete things like NHibernate and the practice of TDD and Pair-Programming. This book covers all the main concepts for setting up a professional development shop. Most of the practices it talks about are main practices in agile software development.&lt;/p&gt;  &lt;div style="float: right"&gt;  &lt;img style="margin: 0px; border-top-style: none! important; border-right-style: none! important; border-left-style: none! important; border-bottom-style: none! important" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=thecodbuc-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0470259248" width="1" border="0" /&gt; &lt;/div&gt;  &lt;p&gt;This book is broken into four parts. Part one is about the philosophy of code leadership. It talks about some of the philosophy behind test-driven development, continuous integration, and the main buy vs build decision. Not so much &lt;em&gt;how&lt;/em&gt; to do TDD or continuous integration (even though, there are concrete examples). but &lt;em&gt;why&lt;/em&gt; to use these practices. Part two, is all about the processes. Starting with how you know when you're &lt;em&gt;really&lt;/em&gt; done, how to &lt;em&gt;properly&lt;/em&gt; do testing, how to use source control and how to use and understand static code analysis. The third section concentrated on how to actually put code together. Cauldwell talks about how to develop using interfaces and how to find and limit dependencies. Section three also covers the model-view-presenter pattern of application development, and some good guidance on how to use tracin and how to do error handling. The final section just kind of puts all the other sections together in a case study: building a calculator. &lt;/p&gt;  &lt;p&gt;Definitely added to bookshelf and recommendation list!&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;~Lee&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=123777"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=123777" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://codebucket.org/aggbug/123777.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lee Brandt</dc:creator>
            <guid>http://codebucket.org/archive/2008/07/14/book-review-code-leader-wrox-by-patrick-cauldwell.aspx</guid>
            <pubDate>Mon, 14 Jul 2008 06:21:28 GMT</pubDate>
            <wfw:comment>http://codebucket.org/comments/123777.aspx</wfw:comment>
            <comments>http://codebucket.org/archive/2008/07/14/book-review-code-leader-wrox-by-patrick-cauldwell.aspx#feedback</comments>
            <wfw:commentRss>http://codebucket.org/comments/commentRss/123777.aspx</wfw:commentRss>
            <trackback:ping>http://codebucket.org/services/trackbacks/123777.aspx</trackback:ping>
        </item>
        <item>
            <title>Another Great Day in KC</title>
            <link>http://codebucket.org/archive/2008/07/04/another-great-day-in-kc.aspx</link>
            <description>&lt;p&gt; Just some photos I took the other day of Merriam City Park. Another thing to love about this city.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/AnotherGreatDayinKC_14ADB/DadNKidInFlags_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" border="0" alt="DadNKidInFlags" src="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/AnotherGreatDayinKC_14ADB/DadNKidInFlags_thumb.jpg" width="244" height="143" /&gt;&lt;/a&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/AnotherGreatDayinKC_14ADB/FlagsII_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" border="0" alt="FlagsII" src="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/AnotherGreatDayinKC_14ADB/FlagsII_thumb.jpg" width="244" height="164" /&gt;&lt;/a&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/AnotherGreatDayinKC_14ADB/FlagsV_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" border="0" alt="FlagsV" src="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/AnotherGreatDayinKC_14ADB/FlagsV_thumb.jpg" width="244" height="164" /&gt;&lt;/a&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/AnotherGreatDayinKC_14ADB/FlagsIII_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" border="0" alt="FlagsIII" src="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/AnotherGreatDayinKC_14ADB/FlagsIII_thumb.jpg" width="244" height="164" /&gt;&lt;/a&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/AnotherGreatDayinKC_14ADB/FlagsVI_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" border="0" alt="FlagsVI" src="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/AnotherGreatDayinKC_14ADB/FlagsVI_thumb.jpg" width="244" height="164" /&gt;&lt;/a&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/AnotherGreatDayinKC_14ADB/FlagsIV_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" border="0" alt="FlagsIV" src="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/AnotherGreatDayinKC_14ADB/FlagsIV_thumb.jpg" width="244" height="164" /&gt;&lt;/a&gt;  &lt;/p&gt;  &lt;p&gt;Happy Independence Day!&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;~Lee&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=123595"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=123595" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://codebucket.org/aggbug/123595.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lee Brandt</dc:creator>
            <guid>http://codebucket.org/archive/2008/07/04/another-great-day-in-kc.aspx</guid>
            <pubDate>Sat, 05 Jul 2008 04:32:34 GMT</pubDate>
            <wfw:comment>http://codebucket.org/comments/123595.aspx</wfw:comment>
            <comments>http://codebucket.org/archive/2008/07/04/another-great-day-in-kc.aspx#feedback</comments>
            <wfw:commentRss>http://codebucket.org/comments/commentRss/123595.aspx</wfw:commentRss>
            <trackback:ping>http://codebucket.org/services/trackbacks/123595.aspx</trackback:ping>
        </item>
    </channel>
</rss>