<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>JohnnyCoder</title>
	
	<link>http://johnnycoder.com/blog</link>
	<description />
	<pubDate>Sun, 28 Jun 2009 22:29:15 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/johnnycoder" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>SoCal Rock &amp; Roll Code Camp Presentation</title>
		<link>http://feedproxy.google.com/~r/johnnycoder/~3/Lzc9AtBVSGI/</link>
		<comments>http://johnnycoder.com/blog/2009/06/28/socal-rock-roll-code-camp-presentation/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 22:29:15 +0000</pubDate>
		<dc:creator>Ben Griswold</dc:creator>
		
		<category><![CDATA[F#]]></category>

		<category><![CDATA[Functional Programming]]></category>

		<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://johnnycoder.com/blog/2009/06/28/socal-rock-roll-code-camp-presentation/</guid>
		<description><![CDATA[Thanks to everyone who sacrificed part of a beautiful San Diego afternoon to attend my talk at the SoCal Code Camp yesterday.&#160; For those who missed it, I provided An Introduction to Functional Programming&#160; - a slightly modified version of the Functional Programming Series which I recently posted.&#160; If you are interested in the slide [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks to everyone who sacrificed part of a beautiful San Diego afternoon to attend my talk at the <a href="http://www.socalcodecamp.com/">SoCal Code Camp</a> yesterday.&#160; For those who missed it, I provided <a href="http://www.socalcodecamp.com/session.aspx?sid=cf1825f7-41a7-4778-9670-824ff059356d">An Introduction to Functional Programming</a>&#160; - a slightly modified version of the <a href="http://johnnycoder.com/blog/2009/04/20/functional-programming-part-1/">Functional Programming Series</a> which I recently posted.&#160; If you are interested in the slide deck, you may download it below. </p>
<p>This was my first CodeCamp presentation and I couldn’t be happier for doing it.&#160; Many thanks to <a href="http://weblogs.asp.net/jgalloway/">Jon Galloway</a> who <strike>ridiculed </strike>encouraged me until I finally signed up for a talk and an extra big thanks to those in attendance who kept their heckling to a minimum.&#160;&#160; I would also like to thank <a href="http://blog.approvaltests.com/">Llewellyn Falco</a> for rushing the stage and attacking the whiteboard (rather than me) as well as <a href="http://blogs.msdn.com/SoCalDevGal">Lynn Langit</a> (DE and “language geek”) for allowing me to put her on the spot during the presentation.&#160; Finally, thanks to the Code Camp organizers whom accepted my AFTER-the-last-minute speaking request and found a slot in the schedule for me.&#160;&#160;&#160; </p>
<p>I hope to see you at the next Code Camp.</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:8eb9d37f-1541-4f29-b6f4-1eea890d4876:4c0092fe-355d-4c39-a1c0-81d8a7eb80bd" class="wlWriterEditableSmartContent">
<div>Download the Slide Deck: <a href="http://johnnycoder.com/blog/wp-content/uploads/2009/06/anintroductiontofunctionalprogrammingsocalcodecamp2009bengriswold.zip" target="_self">An Introduction to Functional Programming - SoCal CodeCamp 2009 - Ben Griswold.zip</a></div>
</p>
</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/johnnycoder?a=Lzc9AtBVSGI:DVJhvVyCzi8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=Lzc9AtBVSGI:DVJhvVyCzi8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=Lzc9AtBVSGI:DVJhvVyCzi8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=Lzc9AtBVSGI:DVJhvVyCzi8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=Lzc9AtBVSGI:DVJhvVyCzi8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=Lzc9AtBVSGI:DVJhvVyCzi8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://johnnycoder.com/blog/2009/06/28/socal-rock-roll-code-camp-presentation/feed/</wfw:commentRss>
		<feedburner:origLink>http://johnnycoder.com/blog/2009/06/28/socal-rock-roll-code-camp-presentation/</feedburner:origLink></item>
		<item>
		<title>Keystrokes to Set Null Value in SSMS</title>
		<link>http://feedproxy.google.com/~r/johnnycoder/~3/7TaLTgLo1Jc/</link>
		<comments>http://johnnycoder.com/blog/2009/05/13/keystrokes-to-set-null-value-in-ssms/#comments</comments>
		<pubDate>Wed, 13 May 2009 22:50:22 +0000</pubDate>
		<dc:creator>Ben Griswold</dc:creator>
		
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://johnnycoder.com/blog/2009/05/13/keystrokes-to-set-null-value-in-ssms/</guid>
		<description><![CDATA[Let’s say you are viewing results in Enterprise Manager or the SQL Server Management Tools and you really want to update a cell will a NULL value.&#160; Sure you could script it.&#160; Heck, you’re welcome to wrap the one line script in a Transaction and produce a rollback script as well if you’d like.&#160; But, [...]]]></description>
			<content:encoded><![CDATA[<p>Let’s say you are viewing results in Enterprise Manager or the SQL Server Management Tools and you really want to update a cell will a NULL value.&#160; Sure you could script it.&#160; Heck, you’re welcome to wrap the one line script in a Transaction and produce a rollback script as well if you’d like.&#160; But, if you are lazy like me, you just want to update the value using tools, all reckless-like.&#160; The trick is to select into the cell and press the lucky CTRL + 0 key combo. That’s a zero, by the way. I also go for CTRL + DEL, and then wonder why NULL doesn’t magically appear.&#160; Hence the post.&#160; </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/05/image11.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/05/image-thumb11.png" width="547" height="152" /></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/johnnycoder?a=7TaLTgLo1Jc:-NbwlM0nHBA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=7TaLTgLo1Jc:-NbwlM0nHBA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=7TaLTgLo1Jc:-NbwlM0nHBA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=7TaLTgLo1Jc:-NbwlM0nHBA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=7TaLTgLo1Jc:-NbwlM0nHBA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=7TaLTgLo1Jc:-NbwlM0nHBA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://johnnycoder.com/blog/2009/05/13/keystrokes-to-set-null-value-in-ssms/feed/</wfw:commentRss>
		<feedburner:origLink>http://johnnycoder.com/blog/2009/05/13/keystrokes-to-set-null-value-in-ssms/</feedburner:origLink></item>
		<item>
		<title>Screen Design with Balsamiq Mockups</title>
		<link>http://feedproxy.google.com/~r/johnnycoder/~3/V-2SBgdAtoI/</link>
		<comments>http://johnnycoder.com/blog/2009/05/11/screen-design-with-balsamiq-mockups/#comments</comments>
		<pubDate>Mon, 11 May 2009 17:36:13 +0000</pubDate>
		<dc:creator>Ben Griswold</dc:creator>
		
		<category><![CDATA[Documentation]]></category>

		<category><![CDATA[Recommended]]></category>

		<category><![CDATA[Tools]]></category>

		<category><![CDATA[UI]]></category>

		<guid isPermaLink="false">http://johnnycoder.com/blog/2009/05/11/screen-design-with-balsamiq-mockups/</guid>
		<description><![CDATA[I was just speaking with a coworker about the tool I used to mockup screens in a recent requirements document.&#160; If you aren’t familiar with Balsamiq Mockups, you are missing out.&#160; Maybe you are responsible for application UI design or you simply like to sketch out your screens before you develop them?&#160; If so, take [...]]]></description>
			<content:encoded><![CDATA[<p>I was just speaking with a coworker about the tool I used to mockup screens in a recent requirements document.&#160; If you aren’t familiar with <a href="http://www.balsamiq.com/products/mockups">Balsamiq Mockups</a>, you are missing out.&#160; Maybe you are responsible for application UI design or you simply like to sketch out your<a name="wiki"><img style="margin: 15px 10px 15px 15px; display: inline" align="right" src="http://www.balsamiq.com/images/wiki.gif" width="240" height="190" /></a> screens before you develop them?&#160; If so, take a minute out of your day and <a href="http://www.balsamiq.com/demos/mockups/Mockups.html">give Balsamiq Mockups a try</a>.&#160; </p>
<p>Balsamiq mockups sped up my document writing time. It also increased the overall document quality and understandability when it came to sharing ideas with my customer.&#160; Of course, the fact that working with Balsamiq Mockups is just plain fun doesn’t hurt my opinion of the tool…</p>
<p>The biggest plus is the fact the mockup data – even the data which is generated using the online trial – is yours and it’s in an open, portable and human readable format.&#160; In other words, it’s super easy to duplicate, edit and share mockups. </p>
<p>If you want to learn more about Balsamiq Mockups, <a href="http://www.balsamiq.com/products/mockups">check out the product page</a>.&#160; Otherwise, just <a href="http://www.balsamiq.com/demos/mockups/Mockups.html">give it a try</a>.&#160; I promise it will be fun (and maybe even productive.)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/johnnycoder?a=V-2SBgdAtoI:uWuPMWE_cQs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=V-2SBgdAtoI:uWuPMWE_cQs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=V-2SBgdAtoI:uWuPMWE_cQs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=V-2SBgdAtoI:uWuPMWE_cQs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=V-2SBgdAtoI:uWuPMWE_cQs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=V-2SBgdAtoI:uWuPMWE_cQs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://johnnycoder.com/blog/2009/05/11/screen-design-with-balsamiq-mockups/feed/</wfw:commentRss>
		<feedburner:origLink>http://johnnycoder.com/blog/2009/05/11/screen-design-with-balsamiq-mockups/</feedburner:origLink></item>
		<item>
		<title>Functional Programming – Part 10</title>
		<link>http://feedproxy.google.com/~r/johnnycoder/~3/aBat1sSulWc/</link>
		<comments>http://johnnycoder.com/blog/2009/05/01/functional-programming-part-10/#comments</comments>
		<pubDate>Fri, 01 May 2009 23:08:39 +0000</pubDate>
		<dc:creator>Ben Griswold</dc:creator>
		
		<category><![CDATA[Functional Programming]]></category>

		<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://johnnycoder.com/blog/2009/05/01/functional-programming-part-10/</guid>
		<description><![CDATA[I mentioned my Functional Programming Presentation a while back and promised to provide more detail. In response, I’m sharing my slide deck in a quick series of posts.&#160; Here’s the last part of the series. 
In case you missed them, here are links to the complete series:

Functional Programming – Part 1 
Functional Programming – Part [...]]]></description>
			<content:encoded><![CDATA[<p>I mentioned my <a href="http://johnnycoder.com/blog/2009/04/02/learn-functional-programming/">Functional Programming Presentation</a> a while back and promised to provide more detail. In response, I’m sharing my slide deck in a quick series of posts.&#160; Here’s the last part of the series. </p>
<p>In case you missed them, here are links to the complete series:</p>
<ol>
<li><a href="http://johnnycoder.com/blog/2009/04/20/functional-programming-part-1/">Functional Programming – Part 1</a> </li>
<li><a href="http://johnnycoder.com/blog/2009/04/21/functional-programming-part-2/">Functional Programming – Part 2</a> </li>
<li><a href="http://johnnycoder.com/blog/2009/04/22/functional-programming-part-3/">Functional Programming – Part 3</a> </li>
<li><a href="http://johnnycoder.com/blog/2009/04/23/functional-programming-part-4/">Functional Programming – Part 4</a> </li>
<li><a href="http://johnnycoder.com/blog/2009/04/24/functional-programming-part-5/">Functional Programming – Part 5</a> </li>
<li><a href="http://johnnycoder.com/blog/2009/04/27/functional-programming-part-6/">Functional Programming – Part 6</a> </li>
<li><a href="http://johnnycoder.com/blog/2009/04/28/functional-programming-part-7/">Functional Programming – Part 7</a> </li>
<li><a href="http://johnnycoder.com/blog/2009/04/29/functional-programming-part-8/">Functional Programming – Part 8</a> </li>
<li><a href="http://johnnycoder.com/blog/2009/05/01/functional-programming-part-9/">Functional Programming – Part 9</a> </li>
<li><a href="http://johnnycoder.com/blog/2009/05/01/functional-programming-part-10/">Functional Programming – Part 10</a> </li>
</ol>
<p>I feel my references they really deserve special attention and a dedicated slide/page (even though <a href="http://johnnycoder.com/blog/2009/04/02/learn-functional-programming/">my functional programming references</a> all along.)</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/05/image7.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/05/image-thumb7.png" width="504" height="396" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/05/image8.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/05/image-thumb8.png" width="504" height="381" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/05/image9.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/05/image-thumb9.png" width="504" height="387" /></a> </p>
<p>I hope you enjoyed this series.&#160; What’s next?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/johnnycoder?a=aBat1sSulWc:No6L3j5xsKI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=aBat1sSulWc:No6L3j5xsKI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=aBat1sSulWc:No6L3j5xsKI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=aBat1sSulWc:No6L3j5xsKI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=aBat1sSulWc:No6L3j5xsKI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=aBat1sSulWc:No6L3j5xsKI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://johnnycoder.com/blog/2009/05/01/functional-programming-part-10/feed/</wfw:commentRss>
		<feedburner:origLink>http://johnnycoder.com/blog/2009/05/01/functional-programming-part-10/</feedburner:origLink></item>
		<item>
		<title>Functional Programming – Part 9</title>
		<link>http://feedproxy.google.com/~r/johnnycoder/~3/uV1-WG3uJRo/</link>
		<comments>http://johnnycoder.com/blog/2009/05/01/functional-programming-part-9/#comments</comments>
		<pubDate>Fri, 01 May 2009 23:05:50 +0000</pubDate>
		<dc:creator>Ben Griswold</dc:creator>
		
		<category><![CDATA[Functional Programming]]></category>

		<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://johnnycoder.com/blog/2009/05/01/functional-programming-part-9/</guid>
		<description><![CDATA[I mentioned my Functional Programming Presentation a while back and promised to provide more detail. In response, I’m sharing my slide deck in a quick series of posts.&#160; Here’s the eighth part of the series – we’re almost there. If you are just joining us, jump back to Part 1 of the Functional Programming Series. [...]]]></description>
			<content:encoded><![CDATA[<p>I mentioned my <a href="http://johnnycoder.com/blog/2009/04/02/learn-functional-programming/">Functional Programming Presentation</a> a while back and promised to provide more detail. In response, I’m sharing my slide deck in a quick series of posts.&#160; Here’s the eighth part of the series – we’re almost there. If you are just joining us, jump back to <a href="http://johnnycoder.com/blog/2009/04/20/functional-programming-part-1/">Part 1 of the Functional Programming Series</a>. </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/05/image.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/05/image-thumb.png" width="504" height="400" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/05/image1.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/05/image-thumb1.png" width="504" height="319" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/05/image2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/05/image-thumb2.png" width="504" height="402" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/05/image3.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/05/image-thumb3.png" width="504" height="392" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/05/image4.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/05/image-thumb4.png" width="504" height="398" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/05/image5.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/05/image-thumb5.png" width="504" height="400" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/05/image6.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/05/image-thumb6.png" width="504" height="329" /></a> </p>
<p>In <a href="http://johnnycoder.com/blog/2009/05/01/functional-programming-part-10/">part 10 of the Functional Programming Series</a>, we’ll be wrapping things up.&#160; Stay with me.&#160; We’re almost done.</p>
<p>I am going to be a little obnoxious about listing <a href="http://johnnycoder.com/blog/2009/04/02/learn-functional-programming/">my functional programming references</a> with every part of this series – mostly because the references, in their own right, are awesome. </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/johnnycoder?a=uV1-WG3uJRo:0ipC21pDWwQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=uV1-WG3uJRo:0ipC21pDWwQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=uV1-WG3uJRo:0ipC21pDWwQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=uV1-WG3uJRo:0ipC21pDWwQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=uV1-WG3uJRo:0ipC21pDWwQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=uV1-WG3uJRo:0ipC21pDWwQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://johnnycoder.com/blog/2009/05/01/functional-programming-part-9/feed/</wfw:commentRss>
		<feedburner:origLink>http://johnnycoder.com/blog/2009/05/01/functional-programming-part-9/</feedburner:origLink></item>
		<item>
		<title>Functional Programming – Part 8</title>
		<link>http://feedproxy.google.com/~r/johnnycoder/~3/xsS1Uf3oSPQ/</link>
		<comments>http://johnnycoder.com/blog/2009/04/29/functional-programming-part-8/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 03:08:25 +0000</pubDate>
		<dc:creator>Ben Griswold</dc:creator>
		
		<category><![CDATA[Functional Programming]]></category>

		<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://johnnycoder.com/blog/2009/04/29/functional-programming-part-8/</guid>
		<description><![CDATA[I mentioned my Functional Programming Presentation a while back and promised to provide more detail. In response, I’m sharing my slide deck in a quick series of posts.&#160; Here’s the eighth part of the series – we’re almost there. If you are just joining us, jump back to Part 1 of the Functional Programming Series. [...]]]></description>
			<content:encoded><![CDATA[<p>I mentioned my <a href="http://johnnycoder.com/blog/2009/04/02/learn-functional-programming/">Functional Programming Presentation</a> a while back and promised to provide more detail. In response, I’m sharing my slide deck in a quick series of posts.&#160; Here’s the eighth part of the series – we’re almost there. If you are just joining us, jump back to <a href="http://johnnycoder.com/blog/2009/04/20/functional-programming-part-1/">Part 1 of the Functional Programming Series</a>. </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image64.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb55.png" width="504" height="396" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image65.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb56.png" width="504" height="383" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image67.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb57.png" width="504" height="392" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image68.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb58.png" width="504" height="400" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image69.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb59.png" width="504" height="394" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image71.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb60.png" width="504" height="379" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image72.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb61.png" width="504" height="400" /></a>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image73.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb62.png" width="504" height="394" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image75.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb63.png" width="504" height="366" /></a> </p>
<p>In <a href="http://johnnycoder.com/blog/2009/05/01/functional-programming-part-9/">part 9 of the Functional Programming Series</a>, we will learn more about functional concepts like recursion, pattern matching, currying and lazy vs eager evaluation. </p>
<p>I am going to be a little obnoxious about listing <a href="http://johnnycoder.com/blog/2009/04/02/learn-functional-programming/">my functional programming references</a> with every part of this series – mostly because the references, in their own right, are awesome. </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/johnnycoder?a=xsS1Uf3oSPQ:PqL3xpQLqjo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=xsS1Uf3oSPQ:PqL3xpQLqjo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=xsS1Uf3oSPQ:PqL3xpQLqjo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=xsS1Uf3oSPQ:PqL3xpQLqjo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=xsS1Uf3oSPQ:PqL3xpQLqjo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=xsS1Uf3oSPQ:PqL3xpQLqjo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://johnnycoder.com/blog/2009/04/29/functional-programming-part-8/feed/</wfw:commentRss>
		<feedburner:origLink>http://johnnycoder.com/blog/2009/04/29/functional-programming-part-8/</feedburner:origLink></item>
		<item>
		<title>Functional Programming – Part 7</title>
		<link>http://feedproxy.google.com/~r/johnnycoder/~3/xbVQ_mg4GNM/</link>
		<comments>http://johnnycoder.com/blog/2009/04/28/functional-programming-part-7/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 19:08:50 +0000</pubDate>
		<dc:creator>Ben Griswold</dc:creator>
		
		<category><![CDATA[Functional Programming]]></category>

		<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://johnnycoder.com/blog/2009/04/28/functional-programming-part-7/</guid>
		<description><![CDATA[I mentioned my Functional Programming Presentation a while back and promised to provide more detail. In response, I’m sharing my slide deck in a quick series of posts.&#160; Here’s the seventh part of the series – it’s short and sweet.) If you are just joining us, jump back to Part 1 of the Functional Programming [...]]]></description>
			<content:encoded><![CDATA[<p>I mentioned my <a href="http://johnnycoder.com/blog/2009/04/02/learn-functional-programming/">Functional Programming Presentation</a> a while back and promised to provide more detail. In response, I’m sharing my slide deck in a quick series of posts.&#160; Here’s the seventh part of the series – it’s short and sweet.) If you are just joining us, jump back to <a href="http://johnnycoder.com/blog/2009/04/20/functional-programming-part-1/">Part 1 of the Functional Programming Series</a>.     </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image59.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb51.png" width="504" height="396" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image60.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb52.png" width="504" height="356" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image61.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb53.png" width="504" height="396" /></a> </p>
<p>In <a href="http://johnnycoder.com/blog/2009/04/29/functional-programming-part-8/">part 8 of the Functional Programming Series</a>, we will call out some key functional concepts like core definitions and high order functions like map, filter and reduce (or fold.)&#160; It’s good stuff so stay tuned…</p>
<p>I am going to be a little obnoxious about listing <a href="http://johnnycoder.com/blog/2009/04/02/learn-functional-programming/">my functional programming references</a> with every part of this series – mostly because the references, in their own right, are awesome. </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/johnnycoder?a=xbVQ_mg4GNM:0JzOdeMVHnw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=xbVQ_mg4GNM:0JzOdeMVHnw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=xbVQ_mg4GNM:0JzOdeMVHnw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=xbVQ_mg4GNM:0JzOdeMVHnw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=xbVQ_mg4GNM:0JzOdeMVHnw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=xbVQ_mg4GNM:0JzOdeMVHnw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://johnnycoder.com/blog/2009/04/28/functional-programming-part-7/feed/</wfw:commentRss>
		<feedburner:origLink>http://johnnycoder.com/blog/2009/04/28/functional-programming-part-7/</feedburner:origLink></item>
		<item>
		<title>Functional Programming – Part 6</title>
		<link>http://feedproxy.google.com/~r/johnnycoder/~3/qIY1Ek22azM/</link>
		<comments>http://johnnycoder.com/blog/2009/04/27/functional-programming-part-6/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 20:09:44 +0000</pubDate>
		<dc:creator>Ben Griswold</dc:creator>
		
		<category><![CDATA[Functional Programming]]></category>

		<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://johnnycoder.com/blog/2009/04/27/functional-programming-part-6/</guid>
		<description><![CDATA[I mentioned my Functional Programming Presentation a while back and promised to provide more detail. In response, I’m sharing my slide deck in a quick series of posts.&#160; Here’s the sixth part of the series. If you are just joining us, jump back to Part 1 of the Functional Programming Series. 
 
 
 
 [...]]]></description>
			<content:encoded><![CDATA[<p>I mentioned my <a href="http://johnnycoder.com/blog/2009/04/02/learn-functional-programming/">Functional Programming Presentation</a> a while back and promised to provide more detail. In response, I’m sharing my slide deck in a quick series of posts.&#160; Here’s the sixth part of the series. If you are just joining us, jump back to <a href="http://johnnycoder.com/blog/2009/04/20/functional-programming-part-1/">Part 1 of the Functional Programming Series</a>. </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image50.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb44.png" width="504" height="396" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image51.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb45.png" width="504" height="375" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image52.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb46.png" width="504" height="392" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image53.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb47.png" width="504" height="389" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image55.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb48.png" width="504" height="389" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image56.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb49.png" width="504" height="400" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image57.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb50.png" width="504" height="400" /></a> </p>
<p>In <a href="http://johnnycoder.com/blog/2009/04/28/functional-programming-part-7/">part 7 of the Functional Programming Series</a>, we will discuss applications of functional programming as well as highlight a few success stories. Stay tuned…</p>
<p>I am going to be a little obnoxious about listing <a href="http://johnnycoder.com/blog/2009/04/02/learn-functional-programming/">my functional programming references</a> with every part of this series – mostly because the references, in their own right, are awesome. </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/johnnycoder?a=qIY1Ek22azM:2F6sEEAzV2w:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=qIY1Ek22azM:2F6sEEAzV2w:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=qIY1Ek22azM:2F6sEEAzV2w:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=qIY1Ek22azM:2F6sEEAzV2w:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=qIY1Ek22azM:2F6sEEAzV2w:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=qIY1Ek22azM:2F6sEEAzV2w:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://johnnycoder.com/blog/2009/04/27/functional-programming-part-6/feed/</wfw:commentRss>
		<feedburner:origLink>http://johnnycoder.com/blog/2009/04/27/functional-programming-part-6/</feedburner:origLink></item>
		<item>
		<title>C# HybridDictionary Collection</title>
		<link>http://feedproxy.google.com/~r/johnnycoder/~3/dPwKBUBIFco/</link>
		<comments>http://johnnycoder.com/blog/2009/04/24/c-hybriddictionary-collection/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 05:12:06 +0000</pubDate>
		<dc:creator>Ben Griswold</dc:creator>
		
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://johnnycoder.com/blog/2009/04/24/c-hybriddictionary-collection/</guid>
		<description><![CDATA[As an icebreaker question, I’ve asked several interviewees to name classes that one might find in the System.Collections namespace.&#160; There a quite a few answers to this questions – especially if you start to explore the System.Collections.Specialized namespace.&#160; Though I completely understand why folks might immediately shout out answers like Hashtable, Stack, Queue or ArrayList, [...]]]></description>
			<content:encoded><![CDATA[<p>As an icebreaker question, I’ve asked several interviewees to name classes that one might find in the System.Collections namespace.&#160; There a quite a few answers to this questions – especially if you start to explore the System.Collections.Specialized namespace.&#160; Though I completely understand why folks might immediately shout out answers like Hashtable, Stack, Queue or ArrayList, I am still surprised that never once did any candidate every mention System.Collections.Specialized.HybridDictionary.&#160; It’s a shame, too, because it’s pretty cool.</p>
<p>One should consider the size of the collection before choosing a container.&#160; If, for example, you are dealing with a small number of items, you might not want to use a Hashtable since there are some noted inefficiencies.&#160; On the other hand, using ListDictionary for larger lists it is not efficient at all.&#160; Therefore, one might appropriately chose a ListDictionary for small collections and a Hashtable for larger ones.&#160; But what do you do if you aren’t sure how large your collection is going to be?&#160; </p>
<p>That’s where the HybridDictionary comes in.&#160; The HybridDictionary – emphasis on Hybrid – will internally use a ListDictionary while the count is less than or equal to 10 and only when the list becomes larger does it convert to using a Hashtable. The HybridDictionary is best used in situations where some lists are small and others are very large or you just aren’t sure how big a list might eventually grow.&#160; </p>
<p>If you ask me, the HybridDictionary’s ability to migrate from one type to another is a neat trick.&#160; Of course, there are a couple of things you still need to consider:</p>
<ol>
<li>What’s the overhead associated with the conversion?&#160; Fortunately, if the starting item count is greater than 10, the HybridDictionary will start out with the Hashtable to reduce the overhead generated by the conversion.&#160; However you still have to ask if the cost of further conversions is greater than, say, having a Hashtable manage a small sample of data?&#160;&#160; </li>
<li>We have to consider generics.&#160; If you are wondering about the HybridDictionary’s generic equivalent, it’s the Dictionary&lt;&gt;.&#160; The same goes for the Hashtable and ListDictionary; their generic complement is Dictionary&lt;&gt; as well. The point is once you start using generic equivalents, the choice of which collection type to use is pretty much decided for you.&#160; </li>
</ol>
<p>All the same, the HybridDictionary is really slick even if the only time you get to use it is on an interview.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/johnnycoder?a=dPwKBUBIFco:OoYvLCG6OXI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=dPwKBUBIFco:OoYvLCG6OXI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=dPwKBUBIFco:OoYvLCG6OXI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=dPwKBUBIFco:OoYvLCG6OXI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=dPwKBUBIFco:OoYvLCG6OXI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=dPwKBUBIFco:OoYvLCG6OXI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://johnnycoder.com/blog/2009/04/24/c-hybriddictionary-collection/feed/</wfw:commentRss>
		<feedburner:origLink>http://johnnycoder.com/blog/2009/04/24/c-hybriddictionary-collection/</feedburner:origLink></item>
		<item>
		<title>Functional Programming – Part 5</title>
		<link>http://feedproxy.google.com/~r/johnnycoder/~3/5xNRO3cR3z8/</link>
		<comments>http://johnnycoder.com/blog/2009/04/24/functional-programming-part-5/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 04:11:18 +0000</pubDate>
		<dc:creator>Ben Griswold</dc:creator>
		
		<category><![CDATA[Functional Programming]]></category>

		<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://johnnycoder.com/blog/2009/04/24/functional-programming-part-5/</guid>
		<description><![CDATA[I mentioned my Functional Programming Presentation a while back and promised to provide more detail. In response, I’m sharing my slide deck in a quick series of posts.&#160; Here’s the fifth part of the series. If you are just joining us, jump back to Part 1 of the Functional Programming Series. 
 
&#160;
 
&#160;
 
&#160;
 [...]]]></description>
			<content:encoded><![CDATA[<p>I mentioned my <a href="http://johnnycoder.com/blog/2009/04/02/learn-functional-programming/">Functional Programming Presentation</a> a while back and promised to provide more detail. In response, I’m sharing my slide deck in a quick series of posts.&#160; Here’s the fifth part of the series. If you are just joining us, jump back to <a href="http://johnnycoder.com/blog/2009/04/20/functional-programming-part-1/">Part 1 of the Functional Programming Series</a>. </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image42.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb38.png" width="504" height="396" /></a> </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image43.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb39.png" width="504" height="383" /></a> </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image44.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb40.png" width="504" height="377" /></a> </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image46.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb41.png" width="504" height="369" /></a> </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image47.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb42.png" width="504" height="396" /></a> </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image48.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb43.png" width="504" height="354" /></a> </p>
<p>&#160;</p>
<p>In <a href="http://johnnycoder.com/blog/2009/04/27/functional-programming-part-6/">part 6 of the Functional Programming Series</a>, we will consider the benefits of functional programming. </p>
<p>I am going to be a little obnoxious about listing <a href="http://johnnycoder.com/blog/2009/04/02/learn-functional-programming/">my functional programming references</a> with every part of this series – mostly because the references, in their own right, are awesome. </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/johnnycoder?a=5xNRO3cR3z8:tnuivlv0Trs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=5xNRO3cR3z8:tnuivlv0Trs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=5xNRO3cR3z8:tnuivlv0Trs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=5xNRO3cR3z8:tnuivlv0Trs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=5xNRO3cR3z8:tnuivlv0Trs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=5xNRO3cR3z8:tnuivlv0Trs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://johnnycoder.com/blog/2009/04/24/functional-programming-part-5/feed/</wfw:commentRss>
		<feedburner:origLink>http://johnnycoder.com/blog/2009/04/24/functional-programming-part-5/</feedburner:origLink></item>
		<item>
		<title>Functional Programming - Part 4</title>
		<link>http://feedproxy.google.com/~r/johnnycoder/~3/gB0AHn-GRVs/</link>
		<comments>http://johnnycoder.com/blog/2009/04/23/functional-programming-part-4/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 03:27:24 +0000</pubDate>
		<dc:creator>Ben Griswold</dc:creator>
		
		<category><![CDATA[Functional Programming]]></category>

		<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://johnnycoder.com/blog/2009/04/23/functional-programming-part-4/</guid>
		<description><![CDATA[I mentioned my Functional Programming Presentation a while back and promised to provide more detail. In response, I’m sharing my slide deck in a quick series of posts.&#160; Here’s the fourth part of the series. If you are just joining us, jump back to Part 1 of the Functional Programming Series.     [...]]]></description>
			<content:encoded><![CDATA[<p>I mentioned my <a href="http://johnnycoder.com/blog/2009/04/02/learn-functional-programming/">Functional Programming Presentation</a> a while back and promised to provide more detail. In response, I’m sharing my slide deck in a quick series of posts.&#160; Here’s the fourth part of the series. If you are just joining us, jump back to <a href="http://johnnycoder.com/blog/2009/04/20/functional-programming-part-1/">Part 1 of the Functional Programming Series</a>.     </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image34.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb32.png" width="504" height="396" /></a> </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image35.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb33.png" width="504" height="416" /></a> </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image37.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb34.png" width="504" height="398" /></a> </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image38.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb35.png" width="504" height="396" /></a> </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image39.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb36.png" width="504" height="385" /></a> </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image41.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb37.png" width="504" height="389" /></a> </p>
<p>In <a href="http://johnnycoder.com/blog/2009/04/24/functional-programming-part-5/">part 5 of the Functional Programming Series</a>, we will learn about how functional programming helps you think differently about problems and functional programming’s accessibility and availability.&#160; </p>
<p>I am going to be a little obnoxious about listing <a href="http://johnnycoder.com/blog/2009/04/02/learn-functional-programming/">my functional programming references</a> with every part of this series – mostly because the references, in their own right, are awesome. </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/johnnycoder?a=gB0AHn-GRVs:uol6UYiGXMw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=gB0AHn-GRVs:uol6UYiGXMw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=gB0AHn-GRVs:uol6UYiGXMw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=gB0AHn-GRVs:uol6UYiGXMw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=gB0AHn-GRVs:uol6UYiGXMw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=gB0AHn-GRVs:uol6UYiGXMw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://johnnycoder.com/blog/2009/04/23/functional-programming-part-4/feed/</wfw:commentRss>
		<feedburner:origLink>http://johnnycoder.com/blog/2009/04/23/functional-programming-part-4/</feedburner:origLink></item>
		<item>
		<title>Functional Programming – Part 3</title>
		<link>http://feedproxy.google.com/~r/johnnycoder/~3/PiX3R2KlVy4/</link>
		<comments>http://johnnycoder.com/blog/2009/04/22/functional-programming-part-3/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 03:20:29 +0000</pubDate>
		<dc:creator>Ben Griswold</dc:creator>
		
		<category><![CDATA[Functional Programming]]></category>

		<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://johnnycoder.com/blog/2009/04/22/functional-programming-part-3/</guid>
		<description><![CDATA[I mentioned my Functional Programming Presentation a while back and promised to provide more detail. In response, I’m sharing my slide deck in a quick series of posts.&#160; Here’s the third part of the series. If you are just joining us, jump back to Part 1 of the Functional Programming Series. 

&#160;&#160; 
&#160;
 
&#160;
 
&#160;
 [...]]]></description>
			<content:encoded><![CDATA[<p>I mentioned my <a href="http://johnnycoder.com/blog/2009/04/02/learn-functional-programming/">Functional Programming Presentation</a> a while back and promised to provide more detail. In response, I’m sharing my slide deck in a quick series of posts.&#160; Here’s the third part of the series. If you are just joining us, jump back to <a href="http://johnnycoder.com/blog/2009/04/20/functional-programming-part-1/">Part 1 of the Functional Programming Series</a>. </p>
<p></p>
<p>&#160;<a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image29.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb27.png" width="504" height="396" /></a>&#160; </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image30.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb28.png" width="504" height="435" /></a> </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image31.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb29.png" width="504" height="387" /></a> </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image32.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb30.png" width="504" height="400" /></a> </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image33.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb31.png" width="504" height="398" /></a> </p>
<p>In <a href="http://johnnycoder.com/blog/2009/04/23/functional-programming-part-4/">part 4 of the functional programming series</a>, we’ll talk about succinct, concise, and understandable syntax which functional programming provides. </p>
<p>I am going to be a little obnoxious about listing <a href="http://johnnycoder.com/blog/2009/04/02/learn-functional-programming/">my functional programming references</a> with every part of this series – mostly because the references, in their own right, are awesome. </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/johnnycoder?a=PiX3R2KlVy4:NmYBKD6jA2o:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=PiX3R2KlVy4:NmYBKD6jA2o:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=PiX3R2KlVy4:NmYBKD6jA2o:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=PiX3R2KlVy4:NmYBKD6jA2o:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=PiX3R2KlVy4:NmYBKD6jA2o:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=PiX3R2KlVy4:NmYBKD6jA2o:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://johnnycoder.com/blog/2009/04/22/functional-programming-part-3/feed/</wfw:commentRss>
		<feedburner:origLink>http://johnnycoder.com/blog/2009/04/22/functional-programming-part-3/</feedburner:origLink></item>
		<item>
		<title>Functional Programming – Part 2</title>
		<link>http://feedproxy.google.com/~r/johnnycoder/~3/IiXv6ZcFI2A/</link>
		<comments>http://johnnycoder.com/blog/2009/04/21/functional-programming-part-2/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 03:44:56 +0000</pubDate>
		<dc:creator>Ben Griswold</dc:creator>
		
		<category><![CDATA[Functional Programming]]></category>

		<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://johnnycoder.com/blog/2009/04/21/functional-programming-part-2/</guid>
		<description><![CDATA[I mentioned my Functional Programming Presentation a while back and promised to provide more detail. In response, I’m sharing my slide deck in a quick series of posts.&#160; Here’s the second part of the series. If you are just joining us, jump back to Part 1 of the Functional Programming Series.
&#160;
 
&#160;
 
&#160;
 
&#160;
 
In [...]]]></description>
			<content:encoded><![CDATA[<p>I mentioned my <a href="http://johnnycoder.com/blog/2009/04/02/learn-functional-programming/">Functional Programming Presentation</a> a while back and promised to provide more detail. In response, I’m sharing my slide deck in a quick series of posts.&#160; Here’s the second part of the series. If you are just joining us, jump back to <a href="http://johnnycoder.com/blog/2009/04/20/functional-programming-part-1/">Part 1 of the Functional Programming Series</a>.</p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image25.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb23.png" width="504" height="396" /></a> </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image26.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb24.png" width="504" height="418" /></a> </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image27.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb25.png" width="504" height="379" /></a> </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image28.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb26.png" width="504" height="459" /></a> </p>
<p>In <a href="http://johnnycoder.com/blog/2009/04/22/functional-programming-part-3/">part 3 of the Functional Programming Series</a>, we dive into each of the reasons for functional programming’s popularity.</p>
<p>I am going to be a little obnoxious about listing <a href="http://johnnycoder.com/blog/2009/04/02/learn-functional-programming/">my functional programming references</a> with every part of this series – mostly because the references, in their own right, are awesome. </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/johnnycoder?a=IiXv6ZcFI2A:ueKpPjnRIs4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=IiXv6ZcFI2A:ueKpPjnRIs4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=IiXv6ZcFI2A:ueKpPjnRIs4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=IiXv6ZcFI2A:ueKpPjnRIs4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=IiXv6ZcFI2A:ueKpPjnRIs4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=IiXv6ZcFI2A:ueKpPjnRIs4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://johnnycoder.com/blog/2009/04/21/functional-programming-part-2/feed/</wfw:commentRss>
		<feedburner:origLink>http://johnnycoder.com/blog/2009/04/21/functional-programming-part-2/</feedburner:origLink></item>
		<item>
		<title>Ramblings About Scrum</title>
		<link>http://feedproxy.google.com/~r/johnnycoder/~3/HX_Yh7p7-Do/</link>
		<comments>http://johnnycoder.com/blog/2009/04/20/ramblings-about-scrum/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 04:51:42 +0000</pubDate>
		<dc:creator>Ben Griswold</dc:creator>
		
		<category><![CDATA[Management]]></category>

		<category><![CDATA[Scrum]]></category>

		<guid isPermaLink="false">http://johnnycoder.com/blog/2009/04/20/ramblings-about-scrum/</guid>
		<description><![CDATA[Over the past few of months, Scrum has taunted me.
It started with two excellent Thirsty Developer Podcasts –&#160; The Thirsty Developer 14 with Ed Chaltry talking about “an Agile process” that can be used to manage and control complex software and product development using iterative, incremental practices and then The Thirsty Developer 28 with Sean [...]]]></description>
			<content:encoded><![CDATA[<p>Over the past few of months, Scrum has taunted me.</p>
<p>It started with two excellent Thirsty Developer Podcasts –&#160; <a href="http://thirstydeveloper.com/2008/03/01/TheThirstyDeveloper14SCRUM.aspx">The Thirsty Developer 14</a> with Ed Chaltry talking about “an Agile process” that can be used to manage and control complex software and product development using iterative, incremental practices <a href="http://www.amazon.com/gp/product/images/0130676349/sr=8-2/qid=1240246675/ref=dp_image_0?ie=UTF8&amp;n=283155&amp;s=books&amp;qid=1240246675&amp;sr=8-2"><img style="margin: 15px 0px 10px 10px; display: inline" border="0" alt="Agile Software Development with Scrum (Series in Agile Software Development)" align="right" src="http://ecx.images-amazon.com/images/I/41NYAVN9KCL._SL500_AA240_.jpg" width="240" height="240" /></a>and then <a href="http://thirstydeveloper.com/2008/07/26/TheThirstyDeveloper28SCRUMAndAgileInTheEnterprise.aspx">The Thirsty Developer 28</a> with Sean McCormack talking about how Scrum and Agile principles can be applied to the enterprise. These podcasts provided such a detailed overview of Scrum that I couldn’t help but get excited.</p>
<p>Next, a co-worker did an excellent presentation on Scrum after successfully introducing Scrum into an organization where he was consulting.&#160; The presentation both piqued my interest and left me questioning the merits of Scrum. Actually, it had a lot of folks in my group asking questions.&#160; Maybe-not-so-coincidentally this was right around the time <a href="http://martinfowler.com/bliki/FlaccidScrum.html" target="_blank">Martin Fowler’s Flaccid Scrum article</a> was published.</p>
<p>Shortly thereafter we started using <a href="http://www.rallydev.com/" target="_blank">Rally Software</a> to help manage a couple of our in-house projects and I found myself in the role of Scrum Master.&#160; The Rally tools are great.&#160; Scrum or no scrum, I’d recommend the product.</p>
<p>Since I was now a “Scrum Master” and under-qualified, I figured I should learn more about the role so I finished up <a href="http://www.amazon.com/Agile-Software-Development-Scrum/dp/0130676349/ref=pd_bbs_sr_2?ie=UTF8&amp;s=books&amp;qid=1240246675&amp;sr=8-2">Agile Software Development with Scrum (Series in Agile Software Development)</a> by Ken Schwaber and Mike Beedle which I had been working on for a couple of months.&#160; I also read <a href="http://www.amazon.com/Head-First-Software-Development-Pilone/dp/0596527357" target="_blank">Head First Software Development by O’Reilly Media</a>.&#160; Though it is an awesome resource which touches upon a number of Scrum-like processes and I recommend it to any developer (especially a junior developer on their first week on the job) it mostly through me off track as it didn’t truly define Scrum.&#160; </p>
<p><img style="margin: 10px 20px 10px 0px; display: inline" border="0" alt="Head First Software Development" align="left" src="http://oreilly.com/catalog/covers/9780596527358_cat.gif" /><a href="http://www.amazon.com/gp/product/images/0130676349/sr=8-2/qid=1240246675/ref=dp_image_0?ie=UTF8&amp;n=283155&amp;s=books&amp;qid=1240246675&amp;sr=8-2"></a></p>
<p>Which brings us to last week….last week I watched <a href="http://www.viddler.com/explore/sergiopereira/videos/7/102.991" target="_blank">Uncle Bob Martin’s presentation at Chicago ALT.NET on XP: After 10 years why are we still talking about it?</a>&#160; Though Uncle Bob paces in and out of camera throughout the entire one hour presentation, he’s one heck of a speaker and the presentation is a gem.&#160; He provides a really nice overview of why Scrum has hit the mainstream whereas XP certainly has not.&#160; He talks about Scrum being a subset of XP – Scrum took all the project management aspects of XP and left all the technical processes like continuous integration and TDD behind – and why this, Flaccid Scrum, ultimately fails over time.&#160; The heart of Uncle Bob’s talk is craftsmanship which is a powerful message in it’s own right but it really brought my learning of Scrum full circle.</p>
<p>I had my half-yearly review last week.&#160; Under the goals I listed for the next evaluation period, I included my desire to become Scrum Master certified. I’m not sure there’s much merit in this certification; however it certainly is a means to better learn the Scrum way of doing things.&#160; Perhaps surprisingly, Scrum certification was one of the easier goals for the next six months. I think I’m going to be busy. Wish me luck.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/johnnycoder?a=HX_Yh7p7-Do:RmdPZz8FPtc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=HX_Yh7p7-Do:RmdPZz8FPtc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=HX_Yh7p7-Do:RmdPZz8FPtc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=HX_Yh7p7-Do:RmdPZz8FPtc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=HX_Yh7p7-Do:RmdPZz8FPtc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=HX_Yh7p7-Do:RmdPZz8FPtc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://johnnycoder.com/blog/2009/04/20/ramblings-about-scrum/feed/</wfw:commentRss>
		<feedburner:origLink>http://johnnycoder.com/blog/2009/04/20/ramblings-about-scrum/</feedburner:origLink></item>
		<item>
		<title>Functional Programming – Part 1</title>
		<link>http://feedproxy.google.com/~r/johnnycoder/~3/zfJRii3jDMU/</link>
		<comments>http://johnnycoder.com/blog/2009/04/20/functional-programming-part-1/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 03:43:40 +0000</pubDate>
		<dc:creator>Ben Griswold</dc:creator>
		
		<category><![CDATA[Functional Programming]]></category>

		<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://johnnycoder.com/blog/2009/04/20/functional-programming-part-1/</guid>
		<description><![CDATA[I mentioned my Functional Programming Presentation a while back and promised to provide more detail. In response, I’m sharing my slide deck in a quick series of posts.&#160; Without further ado, the first part of the series.
&#160;
 
&#160;

&#160;
 
&#160;
 
&#160;
 
&#160;
 
&#160;
 
&#160;
&#160;
&#160;
 
&#160;
 
&#160;
 
&#160;

In part 2 of the functional programming series, we’ll find [...]]]></description>
			<content:encoded><![CDATA[<p>I mentioned my <a href="http://johnnycoder.com/blog/2009/04/02/learn-functional-programming/" target="_blank">Functional Programming Presentation</a> a while back and promised to provide more detail. In response, I’m sharing my slide deck in a quick series of posts.&#160; Without further ado, the first part of the series.</p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image36.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image36-thumb.png" width="504" height="231" /></a> </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image40.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image40-thumb.png" width="504" height="377" /></a></p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image45.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image45-thumb.png" width="504" height="396" /></a> </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image49.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image49-thumb.png" width="504" height="373" /></a> </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image54.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image54-thumb.png" width="504" height="396" /></a> </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image58.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image58-thumb.png" width="504" height="377" /></a> </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image62.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image62-thumb.png" width="504" height="429" /></a> </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image66.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image66-thumb.png" width="504" height="398" /></a>&#160;</p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image70.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image70-thumb.png" width="504" height="379" /></a> </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image74.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image74-thumb.png" width="504" height="391" /></a> </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image78.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image78-thumb.png" width="504" height="400" /></a> </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image82.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image82-thumb.png" width="504" height="400" /></a></p>
<p>In <a href="http://johnnycoder.com/blog/2009/04/21/functional-programming-part-2/">part 2 of the functional programming series</a>, we’ll find out why functional programming has gain recent popularity.</p>
<p>I am going to be a little obnoxious about listing <a href="http://johnnycoder.com/blog/2009/04/02/learn-functional-programming/">my functional programming references</a> with every part of this series – mostly because the references, in their own right, are awesome. </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/johnnycoder?a=zfJRii3jDMU:eJYlSKQnNHU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=zfJRii3jDMU:eJYlSKQnNHU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=zfJRii3jDMU:eJYlSKQnNHU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=zfJRii3jDMU:eJYlSKQnNHU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=zfJRii3jDMU:eJYlSKQnNHU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=zfJRii3jDMU:eJYlSKQnNHU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://johnnycoder.com/blog/2009/04/20/functional-programming-part-1/feed/</wfw:commentRss>
		<feedburner:origLink>http://johnnycoder.com/blog/2009/04/20/functional-programming-part-1/</feedburner:origLink></item>
		<item>
		<title>.NET MailMessage, LinkedResources, AlternateViews and Exceptions</title>
		<link>http://feedproxy.google.com/~r/johnnycoder/~3/eGQ_Bx_Xxtw/</link>
		<comments>http://johnnycoder.com/blog/2009/04/15/net-mailmessage-linkedresources-alternateviews-and-exceptions/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 05:05:34 +0000</pubDate>
		<dc:creator>Ben Griswold</dc:creator>
		
		<category><![CDATA[ASP.NET]]></category>

		<category><![CDATA[C#]]></category>

		<category><![CDATA[Code Library]]></category>

		<category><![CDATA[Samples]]></category>

		<guid isPermaLink="false">http://johnnycoder.com/blog/2009/04/15/net-mailmessage-linkedresources-alternateviews-and-exceptions/</guid>
		<description><![CDATA[It doesn’t take much to hack together email functionality using the .NET framework.&#160; In most cases you can new-up a MailMessage reference, assign sender and recipient addresses, provide a subject and a message body, configure your SMTP settings and then send.&#160; Done and done.
But let’s say you need to provide both plain text and HTML [...]]]></description>
			<content:encoded><![CDATA[<p>It doesn’t take much to hack together email functionality using the .NET framework.&#160; In most cases you can new-up a MailMessage reference, assign sender and recipient addresses, provide a subject and a message body, configure your SMTP settings and then send.&#160; Done and done.</p>
<p>But let’s say you need to provide both plain text and HTML versions of your message body.&#160; Or maybe you would like to embed an image or two within the message body.&#160; Or, what if, for some reason, you actually want to handle exceptions appropriately.&#160; Well, there’s more to it then.</p>
<p>There are a numerous ways to better organize the following code.&#160; In fact, we just went through an exercise at work where we refactored the heck out of the core email functionality and produce a really clean usable component which can be easily mocked, configured and leverages email templates.&#160; It’s pretty cool.&#160; That being said, I believe the following sample demonstrates the aforementioned core features of .NET emailing.&#160; </p>
<p>I hope it helps. Let me know if I missed anything or it the example could be more clear.</p>
<pre class="code"><span style="color: blue">try
</span>{
    <span style="color: green">// Assign a sender, recipient and subject to new mail message
    </span><span style="color: #2b91af">MailAddress </span>sender =
        <span style="color: blue">new </span><span style="color: #2b91af">MailAddress</span>(<span style="color: #a31515">&quot;sender@johnnycoder.com&quot;</span>, <span style="color: #a31515">&quot;Sender&quot;</span>);

    <span style="color: #2b91af">MailAddress </span>recipient =
        <span style="color: blue">new </span><span style="color: #2b91af">MailAddress</span>(<span style="color: #a31515">&quot;recipient@johnnycoder.com&quot;</span>, <span style="color: #a31515">&quot;Recipient&quot;</span>);

    <span style="color: #2b91af">MailMessage </span>m = <span style="color: blue">new </span><span style="color: #2b91af">MailMessage</span>(sender, recipient);
    m.Subject = <span style="color: #a31515">&quot;Test Message&quot;</span>;

    <span style="color: green">// Define the plain text alternate view and add to message
    </span><span style="color: blue">string </span>plainTextBody =
        <span style="color: #a31515">&quot;You must use an email client that supports HTML messages&quot;</span>;

    <span style="color: #2b91af">AlternateView </span>plainTextView =
        <span style="color: #2b91af">AlternateView</span>.CreateAlternateViewFromString(
            plainTextBody, <span style="color: blue">null</span>, <span style="color: #2b91af">MediaTypeNames</span>.<span style="color: #2b91af">Text</span>.Plain);

    m.AlternateViews.Add(plainTextView);

    <span style="color: green">// Define the html alternate view with embedded image and
    // add to message. To reference images attached as linked
    // resources from your HTML message body, use &quot;cid:contentID&quot;
    // in the &lt;img&gt; tag...
    </span><span style="color: blue">string </span>htmlBody =
        <span style="color: #a31515">&quot;&lt;html&gt;&lt;body&gt;&lt;h1&gt;Picture&lt;/h1&gt;&lt;br&gt;&quot; </span>+
        <span style="color: #a31515">&quot;&lt;img src=\&quot;cid:SampleImage\&quot;&gt;&lt;/body&gt;&lt;/html&gt;&quot;</span>;

    <span style="color: #2b91af">AlternateView </span>htmlView =
        <span style="color: #2b91af">AlternateView</span>.CreateAlternateViewFromString(
            htmlBody, <span style="color: blue">null</span>, <span style="color: #2b91af">MediaTypeNames</span>.<span style="color: #2b91af">Text</span>.Html);

    <span style="color: green">// ...and then define the actual LinkedResource matching the
    // ContentID property as found in the image tag. In this case,
    // the HTML message includes the tag
    // &lt;img src=\&quot;cid:SampleImage\&quot;&gt; and the following
    // LinkedResource.ContentId is set to &quot;SampleImage&quot;
    </span><span style="color: #2b91af">LinkedResource </span>sampleImage =
        <span style="color: blue">new </span><span style="color: #2b91af">LinkedResource</span>(<span style="color: #a31515">&quot;sample.jpg&quot;</span>,
            <span style="color: #2b91af">MediaTypeNames</span>.<span style="color: #2b91af">Image</span>.Jpeg);
    sampleImage.ContentId = <span style="color: #a31515">&quot;SampleImage&quot;</span>;

    htmlView.LinkedResources.Add(sampleImage);

    m.AlternateViews.Add(htmlView);

    <span style="color: green">// Finally, configure smtp or alternatively use the
    // system.net mailSettings
    </span><span style="color: #2b91af">SmtpClient </span>smtp = <span style="color: blue">new </span><span style="color: #2b91af">SmtpClient
          </span>{
              Host = <span style="color: #a31515">&quot;smtp.bigcompany.com&quot;</span>,
              UseDefaultCredentials = <span style="color: blue">false</span>,
              Credentials =
                  <span style="color: blue">new </span><span style="color: #2b91af">NetworkCredential</span>(<span style="color: #a31515">&quot;username&quot;</span>, <span style="color: #a31515">&quot;password&quot;</span>)
          };

    <span style="color: green">//&lt;system.net&gt;
    //    &lt;mailSettings&gt;
    //        &lt;smtp deliveryMethod=&quot;Network&quot;&gt;
    //            &lt;network host=&quot;smtp.bigcompany.com&quot;
    //              port=&quot;25&quot; defaultCredentials=&quot;true&quot;/&gt;
    //        &lt;/smtp&gt;
    //    &lt;/mailSettings&gt;
    //&lt;/system.net&gt;

    </span>smtp.Send(m);
}
<span style="color: blue">catch </span>(<span style="color: #2b91af">ArgumentException</span>)
{
    <span style="color: blue">throw new
        </span><span style="color: #2b91af">ArgumentException</span>(<span style="color: #a31515">&quot;Undefined sender and/or recipient.&quot;</span>);
}
<span style="color: blue">catch </span>(<span style="color: #2b91af">FormatException</span>)
{
    <span style="color: blue">throw new
        </span><span style="color: #2b91af">FormatException</span>(<span style="color: #a31515">&quot;Invalid sender and/or recipient.&quot;</span>);
}
<span style="color: blue">catch </span>(<span style="color: #2b91af">InvalidOperationException</span>)
{
    <span style="color: blue">throw new
        </span><span style="color: #2b91af">InvalidOperationException</span>(<span style="color: #a31515">&quot;Undefined SMTP server.&quot;</span>);
}
<span style="color: blue">catch </span>(<span style="color: #2b91af">SmtpFailedRecipientException</span>)
{
    <span style="color: blue">throw new </span><span style="color: #2b91af">SmtpFailedRecipientException</span>(
        <span style="color: #a31515">&quot;The mail server says that there is no mailbox for recipient&quot;</span>);
}
<span style="color: blue">catch </span>(<span style="color: #2b91af">SmtpException </span>ex)
{
    <span style="color: green">// Invalid hostnames result in a WebException InnerException that
    // provides a more descriptive error, so get the base exception
    </span><span style="color: #2b91af">Exception </span>inner = ex.GetBaseException();
    <span style="color: blue">throw new </span><span style="color: #2b91af">SmtpException</span>(<span style="color: #a31515">&quot;Could not send message: &quot; </span>+ inner.Message);
}</pre>
<p><a href="http://11011.net/software/vspaste"></a><a href="http://11011.net/software/vspaste"></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/johnnycoder?a=eGQ_Bx_Xxtw:YexV1KvvkXs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=eGQ_Bx_Xxtw:YexV1KvvkXs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=eGQ_Bx_Xxtw:YexV1KvvkXs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=eGQ_Bx_Xxtw:YexV1KvvkXs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=eGQ_Bx_Xxtw:YexV1KvvkXs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=eGQ_Bx_Xxtw:YexV1KvvkXs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://johnnycoder.com/blog/2009/04/15/net-mailmessage-linkedresources-alternateviews-and-exceptions/feed/</wfw:commentRss>
		<feedburner:origLink>http://johnnycoder.com/blog/2009/04/15/net-mailmessage-linkedresources-alternateviews-and-exceptions/</feedburner:origLink></item>
		<item>
		<title>15 Random Things I’ve Learned from Jeffrey Richter</title>
		<link>http://feedproxy.google.com/~r/johnnycoder/~3/BvniwcARuCE/</link>
		<comments>http://johnnycoder.com/blog/2009/04/08/15-random-things-ive-learned-from-jeffrey-richter/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 06:28:28 +0000</pubDate>
		<dc:creator>Ben Griswold</dc:creator>
		
		<category><![CDATA[Books]]></category>

		<category><![CDATA[C#]]></category>

		<category><![CDATA[CLR]]></category>

		<category><![CDATA[Recommended]]></category>

		<guid isPermaLink="false">http://johnnycoder.com/blog/2009/04/08/15-random-things-ive-learned-from-jeffrey-richter/</guid>
		<description><![CDATA[I read through Jeffrey Richter’s CLR via C# not too long ago.&#160; This evening I cracked it open again and jotted down a few notes on what I personally took away from the book. Of course, if I spent the time to write down everything I learned, I might still be busy writing.&#160; I’ve thrown [...]]]></description>
			<content:encoded><![CDATA[<p>I read through Jeffrey Richter’s CLR via C# not too long ago.&#160; This evening I cracked it open again and jotted down a few notes on what I personally took away from the book. Of course, if I spent the time to write down <u>everything</u> I learned, I might still be busy writing.&#160; I’ve thrown in the towel and though I’m probably not doing the book justice, here are <strong>15 random things I have learned from Jeffrey Richter</strong>:<a href="http://search.barnesandnoble.com/CLR-Via-C/Jeffrey-Richter/e/9780735621633/?itm=1"><img style="display: inline; margin: 0px 20px 15px" height="156" alt="CLR Via C# by Richter Richter: Book Cover" src="http://images.barnesandnoble.com/images/34720000/34724778.JPG" width="128" align="right" border="0" /></a></p>
<p>Page 3 – Way more than I ever wanted to know about the CLR’s execution model.&#160; That is, everything about Managed Modules, Assemblies, Intermediate Language (IL), Framework Class Library (FCL), Common Type System (CTS) and Common Language Specification (CLS.)&#160; </p>
<p>Page 56 – How to properly version your assemblies – including a breakdown of the assembly version resource information, how/when to increment the major, minor, build and revision numbers, and the distinction between AssemblyFileVersion, AssemblyInfomationVersion and AssemblyVersion numbers. </p>
<p>Page 144 – Best practices on how to write code to compare objects.&#160; Here, Richter drills into object equality, identity and hash codes. </p>
<p>Page 177 – How the compiler handles constants – their values are embedded inside the IL code at compile time.&#160; </p>
<p>Page 185 – Why one must beware of code explosion with initializing fields within classes with multiple constructors.&#160; Key points: Any fields that the constructor doesn’t explicitly overwrite are guaranteed to have a value of 0 or null.&#160; The compiler embeds, at the beginning of all constructor methods, field initialization code.&#160; You should consider not initializing the default field value at the point of field declaration and instead perform the common initialization in a single constructor and have all other constructors explicitly call the common initialization constructor before overriding varying defaults.&#160; </p>
<pre class="code"><span style="color: blue">internal sealed class </span><span style="color: #2b91af">SomeType
</span>{
    <span style="color: green">// Do not explicitly initialize the fields here
    </span><span style="color: blue">private </span><span style="color: #2b91af">Int32 </span>x;
    <span style="color: blue">private </span><span style="color: #2b91af">String </span>y;
    <span style="color: blue">private </span><span style="color: #2b91af">Double </span>z;

    <span style="color: green">// Sets all fields to their default
    // All constructors explicitly invoke this constructor
    </span><span style="color: blue">public </span>SomeType()
    {
        x = 5;
        y = <span style="color: #a31515">&quot;Ben&quot;</span>;
        z = 3.14159;
    }

    <span style="color: green">// Sets all fields to their default, then changes x
    </span><span style="color: blue">public </span>SomeType(<span style="color: #2b91af">Int32 </span>x) : <span style="color: blue">this</span>()
    {
        <span style="color: blue">this</span>.x = x;
    }

    <span style="color: green">// Sets all fields to their default, then changes y
    </span><span style="color: blue">public </span>SomeType(<span style="color: #2b91af">String </span>y) : <span style="color: blue">this</span>()
    {
        <span style="color: blue">this</span>.y = y;
    }

    <span style="color: green">// Sets all fields to their default, then changes x, y
    </span><span style="color: blue">public </span>SomeType(<span style="color: #2b91af">Int32 </span>x, <span style="color: #2b91af">String </span>y) : <span style="color: blue">this</span>()
    {
        <span style="color: blue">this</span>.x = x;
        <span style="color: blue">this</span>.y = y;
    }
}</pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
<p>Page 254 – The power of string interning and string&#160; pooling. </p>
<p>Page 309 – How to perform unsafe array access and fixed-sized arrays. </p>
<p>Page 322 – How to implement multiple interfaces that have the same method name and signature and… </p>
<p>Page 325 – Why you need to be really careful when using explicit interface method implementations.</p>
<p>Page 365 – A quick introduction into <a href="http://www.wintellect.com/PowerCollections.aspx" target="_blank">Wintellect’s Power Collections</a> library which extends the .NET Framework’s Class Library with an assortment of collection classes. The Power Collections library, documentation, and licensing information is available on <a href="http://www.codeplex.com/PowerCollections">CodePlex</a>. </p>
<p>Page 411 – How the CLR provides special support for Nullable value types. </p>
<p>Page 431 – A little background on System.Exception, System.SystemException and System.ApplicationException and how Microsoft through the basic principles out the window. </p>
<p>Page 457 – Way more information than any single person should know about Garbage Collection (GC).</p>
<p>Page 562 – How to build a system which support add-ins. </p>
<p>Though it wasn’t mentioned in the book, Richter’s <a href="http://www.wintellect.com/PowerThreading.aspx" target="_blank">Power Threading library (DLL)</a> contains many classes to help with threading and asynchronous programming for the .NET Framework, Silverlight, and the .NET Compact Framework. Jeffrey has described many of the classes contained in the library by way of his <a href="http://msdn.microsoft.com/en-us/magazine/cc301191.aspx">MSDN Magazine Concurrent Affairs columns</a> and I found his <a href="http://tinyurl.com/6ku9k2" target="_blank">Channel 9 overview on the AsyncEnumerator class</a> (which uses Yield to simplify multithreading) absolutely fascinating.&#160; The Power Threading Library is available for download <a href="http://www.wintellect.com/Downloads/PowerThreadingAttachments/Wintellect_Power_Threading_Library_(March_7,_2009).zip">here</a>. </p>
<p>That’s fifteen.&#160; I should probably drill into a couple of these with code samples…or you could just get a copy of the book. <img src='http://johnnycoder.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Random closing thought: When I was flipping through the book today I found a spider smashed between pages 72 and 73.&#160; Ironic?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/johnnycoder?a=BvniwcARuCE:TwbckO0rw4A:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=BvniwcARuCE:TwbckO0rw4A:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=BvniwcARuCE:TwbckO0rw4A:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=BvniwcARuCE:TwbckO0rw4A:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=BvniwcARuCE:TwbckO0rw4A:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=BvniwcARuCE:TwbckO0rw4A:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://johnnycoder.com/blog/2009/04/08/15-random-things-ive-learned-from-jeffrey-richter/feed/</wfw:commentRss>
		<feedburner:origLink>http://johnnycoder.com/blog/2009/04/08/15-random-things-ive-learned-from-jeffrey-richter/</feedburner:origLink></item>
		<item>
		<title>ASP.NET MVC – Where Convention Really Matters</title>
		<link>http://feedproxy.google.com/~r/johnnycoder/~3/EvorbBMHSsM/</link>
		<comments>http://johnnycoder.com/blog/2009/04/07/aspnet-mvc-where-convention-really-matters/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 06:33:13 +0000</pubDate>
		<dc:creator>Ben Griswold</dc:creator>
		
		<category><![CDATA[ASP.NET MVC]]></category>

		<guid isPermaLink="false">http://johnnycoder.com/blog/2009/04/07/aspnet-mvc-where-convention-really-matters/</guid>
		<description><![CDATA[I am just going to come out and say it.&#160; Occasionally I break the rules when it comes to conventions. Sometimes it is even on purpose.&#160; In a recent peer code review, I was dinged on two counts of improper naming conventions: 

The first charge was my use of ALL_CAPS_WITH_UNDERSCORES when naming C# constants. Sure, [...]]]></description>
			<content:encoded><![CDATA[<p>I am just going to come out and say it.&#160; Occasionally I break the rules when it comes to conventions. Sometimes it is even on purpose.&#160; In a recent peer code review, I was dinged on two counts of improper naming conventions: </p>
<ol>
<li>The first charge was my use of ALL_CAPS_WITH_UNDERSCORES when naming C# constants. Sure, Pascal casing is recommended, but old habits are hard to kick.&#160; I’ve now conformed to the new, 8-or-so-year-old standard, but boy do I miss the way ALL CAPS made me feel like my code was yelling at me.&#160; </li>
<li>My second offense was another ALL CAPS thing.&#160; Despite <a href="http://msdn.microsoft.com/en-us/library/x2dbyw72.aspx)" target="_blank">the standard convention which states all caps should only be used for identifiers that consist of two or fewer letters</a>, if I were doing work for A Big Company, my namespaces would probably read like ABC.Web.UI rather than Abc.Web.UI. I&#8217;m not sure when the 3+ letter acronym rule was introduced, but my favorite language (far beyond that of C#) is English and I like the English&#160; rule of capitalizing EVERY SINGLE LETTER in an acronym so I may just stick with it.&#160; I’m bad news. I know. </li>
</ol>
<p>Conventions have changed as our tools and languages have evolved.&#160; IntelliSense and hover-over help text alone are changing the world one convention at a time.&#160; Hungarian notation is now laughable &#8212; although I still use an abridged form when naming my UI elements (e.g. UserLabel, UserTextBox.)&#160; The point is it is hard to not be just a little flippant about things that are constantly changing.&#160; I’m pretty sure that’s why I’m personally a little loose when it comes to the casing of my constants and namespaces.&#160; In the grand scheme of things, these details just don’t matter.&#160; </p>
<p>Where conventions do matter, however, is within opinionated frameworks like ASP.NET MVC.&#160; In ASP.NET MVC, the view (really the ActionResult) returned by the controller is implied per the method name if the view isn’t explicitly called out.&#160; In the example below, the implied view (Delete) is returned if a dinner is found.&#160; Otherwise, we explicitly return the “NotFound” view.</p>
<pre class="code"><span style="color: blue">public </span><span style="color: #2b91af">ActionResult </span>Delete(<span style="color: blue">int </span>id)
{
    <span style="color: #2b91af">Dinner </span>dinner = dinnerRepository.GetDinner(id);
    <span style="color: blue">if </span>(dinner == <span style="color: blue">null</span>)
        <span style="color: blue">return </span>View(<span style="color: #a31515">&quot;NotFound&quot;</span>);
    <span style="color: blue">else
        return </span>View(dinner);
}</pre>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image6.png"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin: 15px 5px 5px 25px; border-right-width: 0px" height="413" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb5.png" width="204" align="right" border="0" /></a><a href="http://11011.net/software/vspaste"></a> </p>
<p>Unless you are familiar with this convention and you adhere to it, the code can be a little confusing.&#160; If you ask me, conventions within ASP.NET MVC (along with other MVC frameworks like Ruby on Rails and Maverick.NET) are very powerful, convenient and must be respected.&#160; This is a case where conventions really matter.</p>
<p>Another ASP.NET MVC convention dictates where views must be located if they are to be used by the controller.&#160; Working off of the prior example, the DinnersController.cs finds the Delete or NotFound view within the predictable Views\Dinners\ folder and the filenames map directly to the name of the views. </p>
<p>These are somewhat trivial examples of how conventions (over configuration) are used in ASP.NET MVC.&#160; The main idea is that some conventions are handy, purposeful and necessary.&#160; Other conventions don’t really carry that much weight.&#160; </p>
<p>If you are interested in reading more about how conventions and standards, check out one of my older articles about <a href="http://johnnycoder.com/blog/2006/11/03/coding-standards-the-devil-is-in-the-details/" target="_blank">compile coding standards and the devil being in the details</a>.</p>
<p>If you are interested in learning more about ASP.NET MVC, this write up is leveraging code and screen shots from NerdDinner ASP.NET MVC tutorial. You can download the free <a href="http://aspnetmvcbook.s3.amazonaws.com/aspnetmvc-nerdinner_v1.pdf">end-to-end tutorial chapter in PDF form</a> and download the <a href="http://nerddinner.codeplex.com/">source code + unit tests for the completed application</a>. I spent a couple of days working through the documentation and sample project.&#160; It is truly an excellent introduction into ASP.NET MVC.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/johnnycoder?a=EvorbBMHSsM:h40WF943e5I:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=EvorbBMHSsM:h40WF943e5I:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=EvorbBMHSsM:h40WF943e5I:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=EvorbBMHSsM:h40WF943e5I:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=EvorbBMHSsM:h40WF943e5I:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=EvorbBMHSsM:h40WF943e5I:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://johnnycoder.com/blog/2009/04/07/aspnet-mvc-where-convention-really-matters/feed/</wfw:commentRss>
		<feedburner:origLink>http://johnnycoder.com/blog/2009/04/07/aspnet-mvc-where-convention-really-matters/</feedburner:origLink></item>
		<item>
		<title>Migrating to IIS7</title>
		<link>http://feedproxy.google.com/~r/johnnycoder/~3/2Q-sdyzej6E/</link>
		<comments>http://johnnycoder.com/blog/2009/04/06/migrating-to-iis7/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 04:11:29 +0000</pubDate>
		<dc:creator>Ben Griswold</dc:creator>
		
		<category><![CDATA[ASP.NET]]></category>

		<category><![CDATA[IIS]]></category>

		<guid isPermaLink="false">http://johnnycoder.com/blog/2009/04/06/migrating-to-iis7/</guid>
		<description><![CDATA[It wasn’t until recently (December) that I started giving IIS7 any attention.&#160; I suspect its because I don’t have to do much inside of IIS when I’m developing .NET applications on my Vista Machine and I haven’t deployed to many Windows Server 2008 machines yet.&#160; Though there’s a impressive amount of information on the IIS [...]]]></description>
			<content:encoded><![CDATA[<p>It wasn’t until recently (December) that I started giving IIS7 any attention.&#160; I suspect its because I don’t have to do much inside of IIS when I’m developing .NET applications on my Vista Machine and I haven’t deployed to many Windows Server 2008 machines yet.&#160; Though there’s a impressive amount of information on the <a href="http://www.iis.net/" target="_blank">IIS Site</a> and I’ve read and heard numerous accounts of how easy it is to migrate to IIS7, my experiences haven’t been effortless.</p>
<p>I first wrestled with IIS7 when I attempted to get <a href="http://stackoverflow.com/questions/402034/subtext-and-iis-7s-integrated-pipeline-mode">SubText to run in Integrated Pipeline Mode</a>:</p>
<blockquote><p>Out of the box, SubText is unable to run under IIS7&#8217;s Integrated Pipeline Mode. Unfortunately, it goes beyond &quot;migrating&quot; the web.config to match the required format. For example, moving httpModules and httpHandlers to their new location within. As it turns out, Request is not available at Application_Start when running in Integrated mode and this causes SubText to fail too. </p>
<p>If we weren&#8217;t adding blog functionality to an existing, GoDaddy-hosted ASP.NET web site, we would be left with two options: Update the SubText codebase to not use the request context (plus fix whatever else surfaces) OR simply run SubText in classic mode. </p>
<p>Unfortunately, our current GoDaddy account is limiting as only a single app pool is available to us. Since the main site is configured for Integrated Pipeline Mode, we don&#8217;t have the freedom to change the IIS mode without impacting (read: breaking) the main site. </p>
<p>Short of switching to a more flexible host, the current plan is to modify the main site to run in classic mode. It&#8217;s a simple site and reverting the web.config to the classic mode format should not be a big deal. Alternatively, I&#8217;m toying with the idea of updating the SubText codebase to not use the request context at Application_Start. I haven&#8217;t heard on anyone running SubText in Integrated Mode and it might be a nice problem to solve &#8212; assuming there&#8217;s an end to the necessary updates.</p>
<p>Assuming there are about 8 more hours allocated to this effort, what&#8217;s the best approach? Am I missing any other options?</p>
</blockquote>
<p>Ultimately, we settled and opted to <a href="http://stackoverflow.com/questions/402034/subtext-and-iis-7s-integrated-pipeline-mode" target="_blank">run the Subtext in IIS7 but in Classic Mode</a>:</p>
<blockquote><p>As a follow up, we quickly commented out the Application_Start code which referenced the Request context. This experiment resulted in further exceptions. We&#8217;re currently moving forward with medications to the main site to run in classic mode.</p>
</blockquote>
<p>Since my IIS7 initiation, I’ve started to get the swing of things.&#160; Sure one needs to jump through a few hoops to get things running, but in retrospect it is all reasonable and once your get some of the basic steps down, it is pretty darn easy.&#160; Hence, I offer three simple tips:</p>
<p>1 - Pretty much everything in IIS7 is locked down by default.&#160; I’m pretty sure you can serve up an HTML page out of the box, but you need to enable even the most basic options like ASP.NET Services and Windows Authentication. Along those lines, here are two of the better articles I found on <a href="http://learn.iis.net/page.aspx/29/installing-iis7-on-windows-server-2008/" target="_blank">installing IIS7 on Windows Server 2008</a> and <a href="http://www.bloggingdeveloper.com/post/Creating-IIS7-sites-applications-and-virtual-directories-using-Internet-Information-Services-Manager.aspx" target="_blank">setting up IIS7 applications</a>.     </p>
<p>2 - Another big gotcha is related to configuration locking.&#160; Basically, you need to <a href="http://blog.donnfelker.com/post/IIS-7-This-configuration-section-cannot-be-used-at-this-path.aspx" target="_blank">unlock your web.config modules and handles sections</a> before they can be formatted per IIS7 compliance. Execute the following at the command prompt and you are good to go: </p>
<blockquote><p align="left">%systemroot%\system32\inetsrv\APPCMD.EXE unlock config -section:system.webServer/modules </p>
<p align="left">%systemroot%\system32\inetsrv\appcmd.exe unlock config -section:system.webServer/handlers </p>
</blockquote>
<p>3 - Finally, let <a href="http://learn.iis.net/page.aspx/114/getting-started-with-appcmdexe/" target="_blank">AppCmd.exe</a> do your heavy lifting and make your web.config to IIS7 compliant by executing a like migration command: </p>
<blockquote><p align="left">%systemroot%\system32\inetsrv\APPCMD.EXE migrate config &quot;Default Web Site/Application&quot;      </p>
</blockquote>
<p>That’s it. Easy, right? By the way, if you are interested in learning more about IIS7, I highly recommend <a href="http://www.slickthought.net/" target="_blank">Jeff Brand’s</a>&#160;<a href="http://www.slickthought.net/post/2008/08/Spaghetti-Code-Podcast---IIS7-with-Robert-Boedigheimer.aspx">Spaghetti Code Podcast on IIS7 with Robert Boedigheimer</a> and I again suggest you check out the <a href="http://www.iis.net/" target="_blank">IIS Site</a>. </p>
<p></p>
<div class="wlWriterEditableSmartContent" id="scid:C16BAC14-9A3D-4c50-9394-FBFEF7A93539:1e585d83-c3ab-4ba0-b1d8-afdeb906e849" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"><a href="http://www.dotnetkicks.com/kick/?url=http://johnnycoder.com/blog/2009/04/06/migrating-to-iis7/"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://johnnycoder.com/blog/2009/04/06/migrating-to-iis7/" border="0" alt="kick it on DotNetKicks.com" /></a></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/johnnycoder?a=2Q-sdyzej6E:wZKNskkExs0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=2Q-sdyzej6E:wZKNskkExs0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=2Q-sdyzej6E:wZKNskkExs0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=2Q-sdyzej6E:wZKNskkExs0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=2Q-sdyzej6E:wZKNskkExs0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=2Q-sdyzej6E:wZKNskkExs0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://johnnycoder.com/blog/2009/04/06/migrating-to-iis7/feed/</wfw:commentRss>
		<feedburner:origLink>http://johnnycoder.com/blog/2009/04/06/migrating-to-iis7/</feedburner:origLink></item>
		<item>
		<title>Upgrade to SQL Server 2008 with SQL Server Management Studio (SSMS) 2008</title>
		<link>http://feedproxy.google.com/~r/johnnycoder/~3/hCJoRwAb8S8/</link>
		<comments>http://johnnycoder.com/blog/2009/04/04/upgrade-to-sql-server-2008-with-sql-server-management-studio-ssms-2008/#comments</comments>
		<pubDate>Sat, 04 Apr 2009 23:52:32 +0000</pubDate>
		<dc:creator>Ben Griswold</dc:creator>
		
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://johnnycoder.com/blog/2009/04/04/upgrade-to-sql-server-2008-with-sql-server-management-studio-ssms-2008/</guid>
		<description><![CDATA[I have installed SQL Server 2008 and SQL Server Management Studio 2008 a number of times and it has always been a snap*..until yesterday. 
As it turns out, previous installations were always applied to machines (mostly VMs) which weren’t running early versions of the SQL Server and associated tools.&#160; Yesterday, I performed my first upgrade [...]]]></description>
			<content:encoded><![CDATA[<p>I have installed SQL Server 2008 and SQL Server Management Studio 2008 a number of times and it has always been a snap*..until yesterday. </p>
<p>As it turns out, previous installations were always applied to machines (mostly VMs) which weren’t running early versions of the SQL Server and associated tools.&#160; Yesterday, I performed my first upgrade from SQL Server 2008 and SQL Server Management Studio 2005 and it took a painfully long time to get everything in place.</p>
<p>There seems to be general discontent with the SQL Server 2008 installation/upgrade experience – particularly when it comes to SQL Server Management Studio. After yesterday’s debacle, I can understand why.&#160; In retrospect, an upgrade to 2008 is simple if you follow the right steps.&#160; If not, you’re bound to get frustrated and waste a couple of hours.&#160; </p>
<p>If I knew then what I know now…</p>
<ul>
<li>You cannot manage SQL Server 2008 with 2005 Management Tools. Go ahead and try it. SQL Server Management Studio 2005 will bark at you. </li>
<li>A stand-alone SQL Server Management Studio 2008 installer does not exist.&#160; The Management Tools must be installed as a features available via the main SQL Server2008 installer. The Microsoft download for SQL Server Management Studio 2008, as far as I am concern is a hoax.&#160; It is merely the SQL Server 2008 installer given a different file name. Seriously. </li>
<li>You cannot run SQL Server Management Studio 2005 and SQL Server Management Studio 2008 side by side. An attempt to install SSMS 2008 will fail if you have yet to uninstall SSMS 2005. </li>
</ul>
<p>Save yourself some trouble.&#160; Before kicking off your SQL Server 2008 / SQL Server Management Studio 2008 installation or upgrade, uninstall SQL Server Management Studio 2005.&#160; If you <a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image5.png"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin: 10px 5px 10px 10px; border-right-width: 0px" height="209" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb4.png" width="244" align="right" border="0" /></a>don’t, you will be able to successfully install SQL Server 2008, but the Management Tools installation will fail (gracefully.) If, per chance, you find yourself in this failure condition, continue with the SQL Server Management Studio 2005 uninstall, rerun the SQL Server 2008 installer and reattempt the Management Tools installation.&#160; This can be done by following the “New SQL Server stand-alone installation of add features to an existing installation” option under the Installation view.&#160; This time around select the Management Tools when the available features are presented and you should be all set.&#160; You may find the management tools take a surprisingly long time to install, but, believe me, this is nothing compared to the time you might waste if you didn’t know the right steps to follow in the first place.</p>
<p><em>* Relatively standard installation instructions which work consistently well for me:</em></p>
<ul>
<li><em>Run Setup.exe </em></li>
<li><em>Installation &gt; Select “New SQL Server stand-alone installation or add features to an existing installation.” </em></li>
<li><em>Select the following Features: </em>
<ul>
<li><em>Database Engine Services </em></li>
<li><em>Reporting Services </em></li>
<li><em>Client Tools Connectivity </em></li>
<li><em>Management Tools – Basic (If SSMS 2005 isn’t installed) </em></li>
<li><em>Management Tools – Complete (If SSMS 2005 isn’t installed) </em></li>
</ul>
</li>
<li><em>Select the Named Instance/Instance ID based on established naming convention. For example, BGHOMESQL01 </em></li>
<li><em>Set the following Service Startup Types: </em>
<ul>
<li><em>SQL Server Agent – Automatic </em></li>
<li><em>SQL Server Database Engine – Automatic </em></li>
<li><em>SQL Server Reporting Services – Automatic </em></li>
</ul>
</li>
<li><em>Use the same account for all SQL Server Services and provide account. On local machine, I suggest using the Current User. </em></li>
<li><em>Set the Authentication Mode: </em>
<ul>
<li><em>Mixed Mode (SQL Server Authentication and Windows Authentication) </em></li>
</ul>
</li>
<li><em>Provide the built-in SQL Server admin account. On local machine, I suggest using the Current User. </em></li>
<li><em>Configure Reporting Services: </em>
<ul>
<li><em>Install the native mode default configuration </em></li>
</ul>
</li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/johnnycoder?a=hCJoRwAb8S8:7t7_0U67AYc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=hCJoRwAb8S8:7t7_0U67AYc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=hCJoRwAb8S8:7t7_0U67AYc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=hCJoRwAb8S8:7t7_0U67AYc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=hCJoRwAb8S8:7t7_0U67AYc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=hCJoRwAb8S8:7t7_0U67AYc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://johnnycoder.com/blog/2009/04/04/upgrade-to-sql-server-2008-with-sql-server-management-studio-ssms-2008/feed/</wfw:commentRss>
		<feedburner:origLink>http://johnnycoder.com/blog/2009/04/04/upgrade-to-sql-server-2008-with-sql-server-management-studio-ssms-2008/</feedburner:origLink></item>
		<item>
		<title>Learn Functional Programming</title>
		<link>http://feedproxy.google.com/~r/johnnycoder/~3/BsQSoCRBQvc/</link>
		<comments>http://johnnycoder.com/blog/2009/04/02/learn-functional-programming/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 05:00:40 +0000</pubDate>
		<dc:creator>Ben Griswold</dc:creator>
		
		<category><![CDATA[F#]]></category>

		<category><![CDATA[Functional Programming]]></category>

		<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://johnnycoder.com/blog/2009/04/02/learn-functional-programming/</guid>
		<description><![CDATA[After completing a ridiculous amount of research over the past couple of month, I presented on functional programming early last week.&#160; Even though I’ve playing with F# quite a bit lately, I didn’t focus on any specific functional or multi-paradigm language.&#160; Instead my presentation included an overview of functional programming in general.&#160; 
&#160;
 
&#160;
Update 4/28/2009: [...]]]></description>
			<content:encoded><![CDATA[<p>After completing a ridiculous amount of research over the past couple of month, I presented on functional programming early last week.&#160; Even though I’ve playing with F# quite a bit lately, I didn’t focus on any specific functional or multi-paradigm language.&#160; Instead my presentation included an overview of functional programming in general.&#160; </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image4.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb3.png" width="440" height="349" /></a> </p>
<p>&#160;</p>
<p>Update 4/28/2009: I’ve posted my slide deck.&#160; Check out <a href="http://johnnycoder.com/blog/2009/04/20/functional-programming-part-1/">Part 1 of the Functional Programming Series</a>.</p>
<p>I compiled a good number of references during my research. If you are interested in learning more about functional programming, I suggest you consult any of the references below. Or you may just wish to wait for me to publish my slide deck.&#160;&#160; </p>
<blockquote><p>1..NET Rocks - Show 377: Ted Neward and Amanda Laucher on F#      <br /><a href="http://www.dotnetrocks.com/default.aspx?showNum=377">http://www.dotnetrocks.com/default.aspx?showNum=377</a></p>
<p>2..NET Rocks - Show 310: Simon Peyton Jones on Haskell and Functional Programming      <br /><a href="http://www.dotnetrocks.com/default.aspx?showNum=310">http://www.dotnetrocks.com/default.aspx?showNum=310</a></p>
<p>3..NET Rocks - Show 293: F# Moves Forward      <br /><a href="http://www.dotnetrocks.com/default.aspx?showNum=293">http://www.dotnetrocks.com/default.aspx?showNum=293</a></p>
<p>4..NET Rocks - Show 266: Jon Harrop Makes Us F#      <br /><a href="http://www.dotnetrocks.com/default.aspx?showNum=266">http://www.dotnetrocks.com/default.aspx?showNum=266</a></p>
<p>5.Deep Fried Bytes - Episode 24: Chatting about F# with Chris Smith and Dustin Campbell      <br /><a href="http://deepfriedbytes.com/podcast/episode-24-chatting-about-f-with-chris-smith-and-dustin-campbell/">http://deepfriedbytes.com/podcast/episode-24-chatting-about-f-with-chris-smith-and-dustin-campbell/</a></p>
<p>6.Deep Fried Bytes - Episode 23: Functional Programming in C# with Oliver Sturm      <br /><a href="http://deepfriedbytes.com/podcast/episode-23-functional-programming-in-csharp-with-oliver-sturm/">http://deepfriedbytes.com/podcast/episode-23-functional-programming-in-csharp-with-oliver-sturm/</a></p>
<p>7.Software Engineering Radio - Episode 108: Simon Peyton Jones on Functional Programming and Haskell      <br /><a href="http://www.se-radio.net/podcast/2008-08/episode-108-simon-peyton-jones-functional-programming-and-haskell">http://www.se-radio.net/podcast/2008-08/episode-108-simon-peyton-jones-functional-programming-and-haskell</a></p>
<p>8.Software Engineering Radio - Episode 89: Joe Armstrong on Erlang      <br /><a href="http://www.se-radio.net/podcast/2008-03/episode-89-joe-armstrong-erlang">http://www.se-radio.net/podcast/2008-03/episode-89-joe-armstrong-erlang</a></p>
<p>9.Software Engineering Radio - Episode 84: Dick Gabriel on Lisp      <br /><a href="http://www.se-radio.net/podcast/2008-01/episode-84-dick-gabriel-lisp">http://www.se-radio.net/podcast/2008-01/episode-84-dick-gabriel-lisp</a></p>
<p>10.Software Engineering Radio - Episode 62: Martin Odersky on Scala      <br /><a href="http://www.se-radio.net/podcast/2007-07/episode-62-martin-odersky-scala">http://www.se-radio.net/podcast/2007-07/episode-62-martin-odersky-scala</a></p>
<p>11.Herding Code - Episode 18: Matt Podwysocki on F# and Functional Programming      <br /><a href="http://herdingcode.com/?p=45">http://herdingcode.com/?p=45</a></p>
<p>12.Pragmatic Podcast - Episode 24: Stuart Halloway on Programming Clojure      <br /><a href="http://www.pragprog.com/podcasts/show/24">http://www.pragprog.com/podcasts/show/24</a></p>
<p>13.Elegant Code Codecast - Episode 24: Matt Podwysocki on Functional Programming      <br /><a href="http://elegantcode.com/2009/02/27/code-cast-24-matt-podwysocki-on-functional-programming/">http://elegantcode.com/2009/02/27/code-cast-24-matt-podwysocki-on-functional-programming/</a></p>
<p>14.Matthew Podwysocki’s Blog      <br /><a href="http://codebetter.com/blogs/matthew.podwysocki/default.aspx">http://codebetter.com/blogs/matthew.podwysocki/default.aspx</a></p>
<p>15.Wikipedia      <br /><a href="http://en.wikipedia.org/wiki/Functional_programming">http://en.wikipedia.org/wiki/Functional_programming</a></p>
<p>16.Real World Functional programming in .NET, Petricek</p>
<p>17.Functional Programming for the Rest of Us, Slava Akhmechet      <br /><a href="http://www.defmacro.org/ramblings/fp.html">http://www.defmacro.org/ramblings/fp.html</a></p>
<p>18.Why Functional Programming Matters, John Hughes      <br /><a href="http://www.cs.chalmers.se/~rjmh/Papers/whyfp.html">http://www.cs.chalmers.se/~rjmh/Papers/whyfp.html</a></p>
<p>19.Functional Programming HOW TO      <br /><a href="http://www.amk.ca/python/writing/functional">http://www.amk.ca/python/writing/functional#introduction</a></p>
<p>20.Expert F#, Syme, Granicz and Cisternino</p>
<p>21.Foundations of F#, Pickering</p>
<p>22.An Introduction to Microsoft F#      <br /><a href="http://channel9.msdn.com/pdc2008/TL11">http://channel9.msdn.com/pdc2008/TL11</a></p>
<p>23.F# Eye for the C# Guy, Leon Bambrick      <br /><a title="http://secretgeek.net/content/fsharp_leonb.pdf" href="http://secretgeek.net/content/fsharp_leonb.pdf">http://secretgeek.net/content/fsharp_leonb.pdf</a></p>
</blockquote>
<p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:C16BAC14-9A3D-4c50-9394-FBFEF7A93539:190848ed-e900-4b00-9ef9-b8a67f072bda" class="wlWriterEditableSmartContent"><a href="http://www.dotnetkicks.com/kick/?url=http://johnnycoder.com/blog/2009/04/02/learn-functional-programming/"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://johnnycoder.com/blog/2009/04/02/learn-functional-programming/" border="0" alt="kick it on DotNetKicks.com" /></a></div></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/johnnycoder?a=BsQSoCRBQvc:PxWHTMObA-k:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=BsQSoCRBQvc:PxWHTMObA-k:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=BsQSoCRBQvc:PxWHTMObA-k:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=BsQSoCRBQvc:PxWHTMObA-k:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=BsQSoCRBQvc:PxWHTMObA-k:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=BsQSoCRBQvc:PxWHTMObA-k:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://johnnycoder.com/blog/2009/04/02/learn-functional-programming/feed/</wfw:commentRss>
		<feedburner:origLink>http://johnnycoder.com/blog/2009/04/02/learn-functional-programming/</feedburner:origLink></item>
		<item>
		<title>ASP.NET MVC Test Template Project for NUnit and Moq</title>
		<link>http://feedproxy.google.com/~r/johnnycoder/~3/RCjQwhwaihk/</link>
		<comments>http://johnnycoder.com/blog/2009/04/01/aspnet-mvc-test-template-project-for-nunit-and-moq/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 06:18:48 +0000</pubDate>
		<dc:creator>Ben Griswold</dc:creator>
		
		<category><![CDATA[ASP.NET MVC]]></category>

		<category><![CDATA[TDD]]></category>

		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://johnnycoder.com/blog/2009/04/01/aspnet-mvc-test-template-project-for-nunit-and-moq/</guid>
		<description><![CDATA[If you have been following along with ASP.NET MVC, you know testability is a big part of the story. This fact is really driven home when the option to create a test project immediately follows that of a ASP.NET MVC Web Application. This is all really cool – especially the flexible test project templates.
Out of [...]]]></description>
			<content:encoded><![CDATA[<p>If you have been following along with ASP.NET MVC, you know testability is a big part of the story. This fact is really driven home when the option to create a test project immediately follows that of a ASP.NET MVC Web Application. This is all really cool – especially the flexible test project templates.</p>
<p>Out of the box, you get the “Visual Studio Unit Test” set which features 25 opinionated Home and Account Controller tests. However, you are not limited to just this template. Nope. You can <a href="http://geekdamana.blogspot.com/2008/11/making-your-own-vsnet-nunit-test.html">build your own test project templates</a> (New Project –&gt; Add References, etc –&gt; File –&gt; Export Template), jump through a few hoops (<a href="http://blogs.msdn.com/webdevtools/archive/2008/05/30/asp-net-mvc-preview-3-tooling-updates.aspx">update the vstemplate file settings</a>, copy the exported files to %Program Files%\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates\Csharp\Test\1033, execute devenv /setup, wait a while and then update the registry) and have your own test frameworks appear in the “Test Framework” selectable list. It’s just that easy. <img src='http://johnnycoder.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>My team is currently using <a href="http://nunit.org" target="_blank">NUnit</a> and <a href="http://code.google.com/p/moq/" target="_blank">Moq</a> so this afternoon I exported a custom template project and put together an install script which I based somewhat on the <a href="http://www.box.net/shared/zmp0cdxsss">NUnit MVC Preview 3 Templates</a>.  After a few attempts, it all came together.</p>
<p><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin: 10px auto; border-right-width: 0px" title="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image4-thumb.png" border="0" alt="image" width="421" height="282" />After running the .bat installer (Install NUnitWithMoq.bat), you will find the “NUnit with Moq” template listed in the “Test Framework” dropdown (see above screenshot .) The new template will also appear under the Test project type templates.</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image.png"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin: 10px auto; border-right-width: 0px" title="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb.png" border="0" alt="image" width="425" height="303" /></a></p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image1.png"></a></p>
<p>The template includes references to the moq.dll and nunit.framework.dll.  Since there’s no way of knowing where each of these files will sit on your machine, the templates make the assumption that they will be inside an “External Dependencies” folder which lives side-by-side with the test project.  I suggest putting your “External Dependencies” folder/files in place before you create your MVC and Test project.  You shouldn’t have any troubles if you follow this pattern.  If not, you’ll merely need to reset the Moq and NUnit references once your test project is created. No big deal.</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image2.png"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin: 10px auto; border-right-width: 0px" title="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb1.png" border="0" alt="image" width="177" height="157" /></a></p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image2.png"></a></p>
<p>I’ve provided a screenshot of a sample solution after a new ASP.NET MVC Web Application (MvcApplication1) and NUnit with Moq Test Project (MvcApplication1.Test) are created.  As you see, the web project, Moq, NUnit and a handful of other references are included in the test project by default.  <img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin: 10px auto; border-right-width: 0px" title="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb2.png" border="0" alt="image" width="314" height="484" /></p>
<p>The provided tests are basically a ported from the “Visual Studio Unit Test” template.  There should be no surprises here as all tests should pass from the get go. Please note that I have only included the C# template for the full version of Visual Studio 2008.  I have also included an uninstaller script (Uninstall NUnitWithMoq.bat) so you may install with little worry.</p>
<div id="scid:8eb9d37f-1541-4f29-b6f4-1eea890d4876:e1daff35-944b-4fee-8b58-944cbf52e0ca" class="wlWriterEditableSmartContent" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<div>Download NUnit and Moq ASP.NET MVC Test Template: <a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/nunitwithmoq.zip">NUnitWithMoq.zip</a></div>
</div>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image3.png"></a></p>
<div id="scid:C16BAC14-9A3D-4c50-9394-FBFEF7A93539:13f7006e-109d-4073-af91-9e98c4668dcf" class="wlWriterEditableSmartContent" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"><em>Update 04/03/2009: If you are running VS 2008 Standard Edition, </em><a href="http://johnnycoder.com/blog/2009/04/01/aspnet-mvc-test-template-project-for-nunit-and-moq/#comment-186095"><em>refer to Nicolai Stoy&#8217;s</em></a><em> </em><a href="http://johnnycoder.com/blog/2009/04/01/aspnet-mvc-test-template-project-for-nunit-and-moq/#comment-186095"><em>comment </em></a><em>which calls out how to update the install .bat file.</p>
<p><a href="http://www.dotnetkicks.com/kick/?url=http://johnnycoder.com/blog/2009/04/01/aspnet-mvc-test-template-project-for-nunit-and-moq/"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://johnnycoder.com/blog/2009/04/01/aspnet-mvc-test-template-project-for-nunit-and-moq/" border="0" alt="kick it on DotNetKicks.com" /></a></em></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/johnnycoder?a=RCjQwhwaihk:r5atbQcgHP4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=RCjQwhwaihk:r5atbQcgHP4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=RCjQwhwaihk:r5atbQcgHP4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=RCjQwhwaihk:r5atbQcgHP4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=RCjQwhwaihk:r5atbQcgHP4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=RCjQwhwaihk:r5atbQcgHP4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://johnnycoder.com/blog/2009/04/01/aspnet-mvc-test-template-project-for-nunit-and-moq/feed/</wfw:commentRss>
		<feedburner:origLink>http://johnnycoder.com/blog/2009/04/01/aspnet-mvc-test-template-project-for-nunit-and-moq/</feedburner:origLink></item>
		<item>
		<title>Head First AOP – Part 5</title>
		<link>http://feedproxy.google.com/~r/johnnycoder/~3/QkCZ2xMAPX8/</link>
		<comments>http://johnnycoder.com/blog/2009/03/31/head-first-aop-part-5/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 04:49:30 +0000</pubDate>
		<dc:creator>Ben Griswold</dc:creator>
		
		<category><![CDATA[AOP]]></category>

		<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://johnnycoder.com/blog/2009/03/31/head-first-aop-part-5/</guid>
		<description><![CDATA[I mentioned my Head First AOP Presentation a while back and promised to provide more detail. In response, I’m sharing my slide deck in a quick series of posts.&#160; Here’s the last of a five part series.&#160; 
In case you missed them, here are links to the complete series:

Head First AOP - Part 1 
Head [...]]]></description>
			<content:encoded><![CDATA[<p>I mentioned my <a href="http://johnnycoder.com/blog/2009/01/13/head-first-aop/">Head First AOP Presentation</a> a while back and <a href="http://johnnycoder.com/blog/2009/01/16/caching-with-c-aop-and-postsharp/">promised to provide more detail</a>. In response, I’m sharing my slide deck in a quick series of posts.&#160; Here’s the last of a five part series.&#160; </p>
<p>In case you missed them, here are links to the complete series:</p>
<ol>
<li><a href="http://johnnycoder.com/blog/2009/03/31/head-first-aop-part-1/">Head First AOP - Part 1</a> </li>
<li><a href="http://johnnycoder.com/blog/2009/03/31/head-first-aop-part-2/">Head First AOP - Part 2</a> </li>
<li><a href="http://johnnycoder.com/blog/2009/03/31/head-first-aop-part-3/">Head First AOP – Part 3</a> </li>
<li><a href="http://johnnycoder.com/blog/2009/03/31/head-first-aop-part-4/">Head First AOP – Part 4</a> </li>
<li><a href="http://johnnycoder.com/blog/2009/03/31/head-first-aop-part-5/">Head First AOP – Part 5</a> </li>
</ol>
<p>I feel my references they really deserve special attention and a dedicated slide/page.</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image63.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/04/image-thumb54.png" width="504" height="392" /></a> </p>
<ol>
<li>Aspect Oriented Programming      <br /><a href="http://www.developer.com/design/article.php/3308941">http://www.developer.com/design/article.php/3308941</a>       </li>
<li>Separate software concerns with AOP      <br /><a href="http://www.javaworld.com/javaworld/jw-01-2002/jw-0118-aspect.html">http://www.javaworld.com/javaworld/jw-01-2002/jw-0118-aspect.html</a>       </li>
<li>Aspect-Oriented Programming      <br /><a href="http://msdn.microsoft.com/en-us/library/aa288717(vs.71).aspx">http://msdn.microsoft.com/en-us/library/aa288717(vs.71).aspx</a>       </li>
<li>PostSharp      <br /><a href="http://www.postsharp.org/aop.net/">http://www.postsharp.org/aop.net/</a>       </li>
<li>Software Engineering Radio      <br /><a href="http://www.se-radio.net/node/309#transcript">http://www.se-radio.net/node/309#transcript</a>       </li>
<li>AOP.NET      <br /><a href="http://wwwse.fhs-hagenberg.ac.at/se/berufspraktika/2002/se99047/contents/english/aop.html">http://wwwse.fhs-hagenberg.ac.at/se/berufspraktika/2002/se99047/contents/english/aop.html</a>       </li>
<li>Wikipedia      <br /><a href="http://en.wikipedia.org/wiki/Aspect-oriented_software_development">http://en.wikipedia.org/wiki/Aspect-oriented_software_development</a> </li>
</ol>
<p>I hope you enjoyed the series.</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:C16BAC14-9A3D-4c50-9394-FBFEF7A93539:2fa1c037-5636-44b9-8424-613da86c8b89" class="wlWriterEditableSmartContent"><a href="http://www.dotnetkicks.com/kick/?url=http://johnnycoder.com/blog/2009/03/31/head-first-aop-part-5/"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://johnnycoder.com/blog/2009/03/31/head-first-aop-part-5/" border="0" alt="kick it on DotNetKicks.com" /></a></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/johnnycoder?a=QkCZ2xMAPX8:9B1-YgxjBxk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=QkCZ2xMAPX8:9B1-YgxjBxk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=QkCZ2xMAPX8:9B1-YgxjBxk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=QkCZ2xMAPX8:9B1-YgxjBxk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=QkCZ2xMAPX8:9B1-YgxjBxk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=QkCZ2xMAPX8:9B1-YgxjBxk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://johnnycoder.com/blog/2009/03/31/head-first-aop-part-5/feed/</wfw:commentRss>
		<feedburner:origLink>http://johnnycoder.com/blog/2009/03/31/head-first-aop-part-5/</feedburner:origLink></item>
		<item>
		<title>Head First AOP – Part 4</title>
		<link>http://feedproxy.google.com/~r/johnnycoder/~3/aZcwgkebENY/</link>
		<comments>http://johnnycoder.com/blog/2009/03/31/head-first-aop-part-4/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 04:47:19 +0000</pubDate>
		<dc:creator>Ben Griswold</dc:creator>
		
		<category><![CDATA[AOP]]></category>

		<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://johnnycoder.com/blog/2009/03/31/head-first-aop-part-4/</guid>
		<description><![CDATA[I mentioned my Head First AOP Presentation a while back and promised to provide more detail. In response, I’m sharing my slide deck in a quick series of posts.&#160;&#160; Here’s the fourth of a five part series.&#160; If you missed it, check out Part 1 of the Head First AOP Series. 
 
 
 
 [...]]]></description>
			<content:encoded><![CDATA[<p>I mentioned my <a href="http://johnnycoder.com/blog/2009/01/13/head-first-aop/">Head First AOP Presentation</a> a while back and <a href="http://johnnycoder.com/blog/2009/01/16/caching-with-c-aop-and-postsharp/">promised to provide more detail</a>. In response, I’m sharing my slide deck in a quick series of posts.&#160;&#160; Here’s the fourth of a five part series.&#160; If you missed it, check out <a href="http://johnnycoder.com/blog/2009/03/31/head-first-aop-part-1/">Part 1 of the Head First AOP Series</a>. </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image24.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image-thumb24.png" width="500" height="395" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image25.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image-thumb25.png" width="500" height="386" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image26.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image-thumb26.png" width="500" height="366" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image27.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image-thumb27.png" width="500" height="357" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image28.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image-thumb28.png" width="500" height="355" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image29.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image-thumb29.png" width="500" height="349" /></a>&#160;</p>
</p>
</p>
</p>
<p>Check out <a href="http://johnnycoder.com/blog/2009/03/31/head-first-aop-part-5/">Part 5 of the Head First AOP Series.</a>&#160;</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:C16BAC14-9A3D-4c50-9394-FBFEF7A93539:b875e67f-1eb1-490e-83bd-368bbf18e1fd" class="wlWriterEditableSmartContent"><a href="http://www.dotnetkicks.com/kick/?url=http://johnnycoder.com/blog/2009/03/31/head-first-aop-part-4/"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://johnnycoder.com/blog/2009/03/31/head-first-aop-part-4/" border="0" alt="kick it on DotNetKicks.com" /></a></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/johnnycoder?a=aZcwgkebENY:fsdeg-ZgNIs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=aZcwgkebENY:fsdeg-ZgNIs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=aZcwgkebENY:fsdeg-ZgNIs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=aZcwgkebENY:fsdeg-ZgNIs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=aZcwgkebENY:fsdeg-ZgNIs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=aZcwgkebENY:fsdeg-ZgNIs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://johnnycoder.com/blog/2009/03/31/head-first-aop-part-4/feed/</wfw:commentRss>
		<feedburner:origLink>http://johnnycoder.com/blog/2009/03/31/head-first-aop-part-4/</feedburner:origLink></item>
		<item>
		<title>Head First AOP – Part 3</title>
		<link>http://feedproxy.google.com/~r/johnnycoder/~3/XPfq53G8nm4/</link>
		<comments>http://johnnycoder.com/blog/2009/03/31/head-first-aop-part-3/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 04:43:33 +0000</pubDate>
		<dc:creator>Ben Griswold</dc:creator>
		
		<category><![CDATA[AOP]]></category>

		<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://johnnycoder.com/blog/2009/03/31/head-first-aop-part-3/</guid>
		<description><![CDATA[I mentioned my Head First AOP Presentation a while back and promised to provide more detail. In response, I’m sharing my slide deck in a quick series of posts.&#160;&#160; Here’s the third of a five part series.&#160; If you missed it, check out Part 1 of the Head First AOP Series. 
&#160;
 
 
&#160;
 
 [...]]]></description>
			<content:encoded><![CDATA[<p>I mentioned my <a href="http://johnnycoder.com/blog/2009/01/13/head-first-aop/">Head First AOP Presentation</a> a while back and <a href="http://johnnycoder.com/blog/2009/01/16/caching-with-c-aop-and-postsharp/">promised to provide more detail</a>. In response, I’m sharing my slide deck in a quick series of posts.&#160;&#160; Here’s the third of a five part series.&#160; If you missed it, check out <a href="http://johnnycoder.com/blog/2009/03/31/head-first-aop-part-1/">Part 1 of the Head First AOP Series</a>. </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image16.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image-thumb16.png" width="500" height="343" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image17.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image-thumb17.png" width="500" height="374" /></a> </p>
<p>&#160;</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image18.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image-thumb18.png" width="500" height="372" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image19.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image-thumb19.png" width="500" height="364" /></a> </p>
</p>
</p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image20.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image-thumb20.png" width="500" height="372" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image21.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image-thumb21.png" width="500" height="366" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image22.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image-thumb22.png" width="500" height="384" /></a> </p>
<p><a href="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image23.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://johnnycoder.com/blog/wp-content/uploads/2009/03/image-thumb23.png" width="500" height="384" /></a> </p>
<p>Check out <a href="http://johnnycoder.com/blog/2009/03/31/head-first-aop-part-4/">Part 4 of the Head First AOP Series</a>.</p>
</p>
</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:C16BAC14-9A3D-4c50-9394-FBFEF7A93539:d14b7608-0cc9-4c2d-8d9a-617a069a7cca" class="wlWriterEditableSmartContent"><a href="http://www.dotnetkicks.com/kick/?url=http://johnnycoder.com/blog/2009/03/31/head-first-aop-part-3/"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://johnnycoder.com/blog/2009/03/31/head-first-aop-part-3/" border="0" alt="kick it on DotNetKicks.com" /></a></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/johnnycoder?a=XPfq53G8nm4:eqNJ2veYPgc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=XPfq53G8nm4:eqNJ2veYPgc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=XPfq53G8nm4:eqNJ2veYPgc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=XPfq53G8nm4:eqNJ2veYPgc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/johnnycoder?i=XPfq53G8nm4:eqNJ2veYPgc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/johnnycoder?a=XPfq53G8nm4:eqNJ2veYPgc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/johnnycoder?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://johnnycoder.com/blog/2009/03/31/head-first-aop-part-3/feed/</wfw:commentRss>
		<feedburner:origLink>http://johnnycoder.com/blog/2009/03/31/head-first-aop-part-3/</feedburner:origLink></item>
	</channel>
</rss>
