<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.1" -->
<rss version="2.0"
	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/"
	>

<channel>
	<title>rauchy's Blog</title>
	<link>http://www.rauchy.net/blog</link>
	<description>Desperately Trying to Decouple</description>
	<pubDate>Wed, 13 Aug 2008 13:30:23 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
	<language>en</language>
			<item>
		<title>Naming Conventions: Are They Really That Important?</title>
		<link>http://www.rauchy.net/blog/2008/08/naming-conventions-are-they-really-that-important/</link>
		<comments>http://www.rauchy.net/blog/2008/08/naming-conventions-are-they-really-that-important/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 12:19:22 +0000</pubDate>
		<dc:creator>rauchy</dc:creator>
		
		<category><![CDATA[C#]]></category>

		<category><![CDATA[Coding Standards]]></category>

		<category><![CDATA[Design]]></category>

		<category><![CDATA[altnetisrael]]></category>

		<guid isPermaLink="false">http://www.rauchy.net/blog/2008/08/naming-conventions-are-they-really-that-important/</guid>
		<description><![CDATA[A hallway talk at the Alt.NET Israel Unconference got me thinking about coding standards in general, and naming conventions in particular.
I&#8217;ve seen dozens of holy wars regarding the subject of naming conventions - when a project starts, when a new team member comes along, when the team leader is replaced etc.
I used to think that [...]]]></description>
			<content:encoded><![CDATA[<p>A hallway talk at the <a href="http://altdotnet.org/events/israel">Alt.NET Israel Unconference</a> got me thinking about coding standards in general, and naming conventions in particular.</p>
<p>I&#8217;ve seen dozens of holy wars regarding the subject of naming conventions - when a project starts, when a new team member comes along, when the team leader is replaced etc.</p>
<p>I used to think that a project should have a single naming convention, and everyone should follow it. Now, I&#8217;m not so sure any more. I mean, what is <strong>really</strong> so important about naming conventions? What makes a project with a unified naming convention better than a project without one?</p>
<h3>Unity</h3>
<p>The first argument for naming conventions is always unity. You want all your data members to look the same.</p>
<p>But, think of it, what is really that important about unity? What business value do you get from it? Does it cut down development time? Does it improve performance?</p>
<p>IMO, if one developer wants his field to be called &#8220;_identifier&#8221;, another wants &#8220;m_identifier&#8221; and the other wants &#8220;nIdentifier&#8221;, just let them! No one ever died from Hungarian notation or a &#8220;m_&#8221; prefix, I believe.</p>
<h3>Readability</h3>
<p>For those who still believe in Hungarian notation (or any of its siblings), readability seems to be a great argument for naming conventions. </p>
<p>However, Hungarian notation might have been a good argument a decade ago. Today, all IDE&#8217;s provide great intellisense, and one could determine the type of a member in a second by hovering on it.</p>
<h3>Scope</h3>
<p>Determining the scope of a variable (method or class) is important, but can also be easily discovered by intellisense.</p>
<h3>Focus on What&#8217;s Important</h3>
<p>I&#8217;m not trying to say you shouldn&#8217;t have a naming convention in your project. I&#8217;m just trying to say, don&#8217;t let it bother you so much.</p>
<p>Set up a naming convention at the beginning of the project, have your team members agree on it, but don&#8217;t hunt down any exception and have it fixed.</p>
<p>Write a unit test or get a cup of coffee instead.</p>
<p>Do you think naming conventions are important? Where would you draw the line?</p>
<p><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.rauchy.net%2fblog%2f2008%2f08%2fnaming-conventions-are-they-really-that-important%2f"><img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.rauchy.net%2fblog%2f2008%2f08%2fnaming-conventions-are-they-really-that-important%2f&amp;bgcolor=FF0000&amp;cfgcolor=FFFFFF&amp;cbgcolor=993300" border="0"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rauchy.net/blog/2008/08/naming-conventions-are-they-really-that-important/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Heading Out to AltNetConf Israel</title>
		<link>http://www.rauchy.net/blog/2008/08/heading-out-to-altnetconf-israel/</link>
		<comments>http://www.rauchy.net/blog/2008/08/heading-out-to-altnetconf-israel/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 13:46:11 +0000</pubDate>
		<dc:creator>rauchy</dc:creator>
		
		<category><![CDATA[alt-net-israel]]></category>

		<guid isPermaLink="false">http://www.rauchy.net/blog/2008/08/heading-out-to-altnetconf-israel/</guid>
		<description><![CDATA[I&#8217;ll be heading out to the first Alt.NET conference in Israel in an hour or so, I&#8217;m really excited about the Alt.NET movement forming up in Israel.
I hope to learn some stuff I just never get around to, such as:

Domain Driven Design,
Behavior Driven Development,
Domain Specific Languages.

I don&#8217;t think I&#8217;ll be able to share any knowledge, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll be heading out to the first Alt.NET conference in Israel in an hour or so, I&#8217;m really excited about the Alt.NET movement forming up in Israel.</p>
<p>I hope to learn some stuff I just never get around to, such as:</p>
<ul>
<li>Domain Driven Design,</li>
<li>Behavior Driven Development,</li>
<li>Domain Specific Languages.</li>
</ul>
<p>I don&#8217;t think I&#8217;ll be able to share any knowledge, since I&#8217;m positive that I will be stunned by the high-level knowledge of the people there.</p>
<p>So I&#8217;m off to stare and drool. See you there!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rauchy.net/blog/2008/08/heading-out-to-altnetconf-israel/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Finally, a Good Reason for an Extension Method</title>
		<link>http://www.rauchy.net/blog/2008/07/finally-a-good-reason-for-an-extension-method/</link>
		<comments>http://www.rauchy.net/blog/2008/07/finally-a-good-reason-for-an-extension-method/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 07:05:18 +0000</pubDate>
		<dc:creator>rauchy</dc:creator>
		
		<category><![CDATA[C#]]></category>

		<category><![CDATA[Extensibility]]></category>

		<guid isPermaLink="false">http://www.rauchy.net/blog/2008/07/finally-a-good-reason-for-an-extension-method/</guid>
		<description><![CDATA[Several months have passed since people starting using C# 3.0 out there. I, however, was busy with linear algebra, discrete math and such at that time.
I did, however, try to keep up and see what&#8217;s the fuss about extension methods, but I never got it. I mean, this is anti-encapsulation at it best - break [...]]]></description>
			<content:encoded><![CDATA[<p>Several months have passed since people starting using C# 3.0 out there. I, however, was busy with linear algebra, discrete math and such at that time.</p>
<p>I did, however, try to keep up and see what&#8217;s the fuss about extension methods, but I never got it. I mean, this is anti-encapsulation at it best - break into any type, do whatever you feel like. Total chaos.</p>
<p>So I gave it some time. I didn&#8217;t force it into any of my projects until the time was right. Then I finally got it - extension methods are ideal for little pieces of code which you <em>need</em>, but creating a utility class for them feels wrong.</p>
<p>For example, I was implementing a <a href="http://www.rauchy.net/regionerate/blog/2008/07/advanced-sorting.html">new feature</a> for <a href="http://www.rauchy.net/regionerate/">Regionerate</a> a couple of days ago in which I had to sort a list, split it into distinct values and recursively sort it again.</p>
<p>Its a reflection-based sort and it has quite a bit of logic in it, so it had a class &amp; unit tests just for it. I had to take care of the splitting thingy, but it felt wrong to add it as a method in the sort class, as it operates on lists. It really <em>feels</em> like a method that should run on IList&lt;T&gt;.</p>
<p>Subclassing List&lt;T&gt; for the job feels wrong - c&#8217;mon, how would you pitch such a class? &#8220;It&#8217;s a list that you can split!&#8221;. Unpersuasive.</p>
<p>That&#8217;s how I got it: If IList&lt;T&gt; was built especially for Regionerate, it would have had a reflection-based Split function, but since its not, I should implement it as an extension method.</p>
<p>Took me 2 minutes and works like a charm.</p>
<div class="csharpcode">
<pre class="alt"><span class="lnum">   1:  </span><span class="kwrd">public</span> <span class="kwrd">static</span> IDictionary&lt;<span class="kwrd">object</span>, IList&lt;T&gt;&gt; Slice&lt;T&gt;(</pre>
<pre><span class="lnum">   2:  </span>        <span class="kwrd">this</span> IList&lt;T&gt; list, PropertyInfo propertyInfo)</pre>
<pre class="alt"><span class="lnum">   3:  </span>{</pre>
<pre><span class="lnum">   4:  </span>    IDictionary&lt;<span class="kwrd">object</span>, IList&lt;T&gt;&gt; slices = </pre>
<pre class="alt"><span class="lnum">   5:  </span>        <span class="kwrd">new</span> Dictionary&lt;<span class="kwrd">object</span>, IList&lt;T&gt;&gt;();</pre>
<pre><span class="lnum">   6:  </span>    <span class="kwrd">foreach</span> (T t <span class="kwrd">in</span> list)</pre>
<pre class="alt"><span class="lnum">   7:  </span>    {</pre>
<pre><span class="lnum">   8:  </span>        <span class="rem">// Get the value of propertyInfo.</span></pre>
<pre class="alt"><span class="lnum">   9:  </span>        <span class="kwrd">object</span> <span class="kwrd">value</span> = propertyInfo.GetValue(t, <span class="kwrd">null</span>);</pre>
<pre><span class="lnum">  10:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  11:  </span>        <span class="rem">// Add it to slices.</span></pre>
<pre><span class="lnum">  12:  </span>        <span class="kwrd">if</span> (slices.Keys.Contains(<span class="kwrd">value</span>))</pre>
<pre class="alt"><span class="lnum">  13:  </span>        {</pre>
<pre><span class="lnum">  14:  </span>            <span class="rem">// slices already has a slice for this value.</span></pre>
<pre class="alt"><span class="lnum">  15:  </span>            slices[<span class="kwrd">value</span>].Add(t);</pre>
<pre><span class="lnum">  16:  </span>        }</pre>
<pre class="alt"><span class="lnum">  17:  </span>        <span class="kwrd">else</span></pre>
<pre><span class="lnum">  18:  </span>        {</pre>
<pre class="alt"><span class="lnum">  19:  </span>            <span class="rem">// there is no slice for this value </span></pre>
<pre><span class="lnum">  20:  </span>            <span class="rem">// inside slices, create a new slice.</span></pre>
<pre class="alt"><span class="lnum">  21:  </span>            IList&lt;T&gt; newSlice = <span class="kwrd">new</span> List&lt;T&gt;();</pre>
<pre><span class="lnum">  22:  </span>            newSlice.Add(t);</pre>
<pre class="alt"><span class="lnum">  23:  </span>            slices.Add(<span class="kwrd">value</span>, newSlice);</pre>
<pre><span class="lnum">  24:  </span>        }</pre>
<pre class="alt"><span class="lnum">  25:  </span>    }</pre>
<pre><span class="lnum">  26:  </span>&nbsp;</pre>
<pre class="alt"><span class="lnum">  27:  </span>    <span class="kwrd">return</span> slices;</pre>
<pre><span class="lnum">  28:  </span>}</pre>
</div>
<p>A fully documented, well-aligned version of this extension method is freely available <a href="http://trac2.assembla.com/Regionerate/browser/Domain.Components/Extensions/IListExtensions.cs">here</a>.</p>
<p><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.rauchy.net%2fblog%2f2008%2f07%2ffinally-a-good-reason-for-an-extension-method%2f"><img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.rauchy.net%2fblog%2f2008%2f07%2ffinally-a-good-reason-for-an-extension-method%2f&amp;bgcolor=CC0033"></a> </p>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
]]></content:encoded>
			<wfw:commentRss>http://www.rauchy.net/blog/2008/07/finally-a-good-reason-for-an-extension-method/feed/</wfw:commentRss>
		</item>
		<item>
		<title>May 20th, The Twitterless Day</title>
		<link>http://www.rauchy.net/blog/2008/05/may-20th-the-twitterless-day/</link>
		<comments>http://www.rauchy.net/blog/2008/05/may-20th-the-twitterless-day/#comments</comments>
		<pubDate>Tue, 20 May 2008 22:23:01 +0000</pubDate>
		<dc:creator>rauchy</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.rauchy.net/blog/2008/05/may-20th-the-twitterless-day/</guid>
		<description><![CDATA[It&#8217;s been a rough day for us tweeters, May 20th had a longer Twitter downtime period. The bright side is that it helped me understand how pathetic we are. See for yourself.
Note: yes, this post should have been a tweet, but I&#8217;m Twitterless.
]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a rough day for us tweeters, May 20th had a longer <a href="http://getsatisfaction.com/twitter/topics/may_20_twitter_downtime">Twitter downtime</a> period. The bright side is that it helped me understand how pathetic we are. <a href="http://www.youtube.com/watch?v=YuyYMkxbMRU">See for yourself</a>.</p>
<h6>Note: yes, this post should have been a tweet, but I&#8217;m Twitterless.</h6>
]]></content:encoded>
			<wfw:commentRss>http://www.rauchy.net/blog/2008/05/may-20th-the-twitterless-day/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Krzysztof Cwalina Releases Framework Design Guidelines Digest v2</title>
		<link>http://www.rauchy.net/blog/2008/04/krzysztof-cwalina-releases-framework-design-guidelines-digest-v2/</link>
		<comments>http://www.rauchy.net/blog/2008/04/krzysztof-cwalina-releases-framework-design-guidelines-digest-v2/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 05:31:52 +0000</pubDate>
		<dc:creator>rauchy</dc:creator>
		
		<category><![CDATA[Architecture]]></category>

		<category><![CDATA[C#]]></category>

		<category><![CDATA[Design]]></category>

		<category><![CDATA[FxCop]]></category>

		<guid isPermaLink="false">http://www.rauchy.net/blog/2008/04/krzysztof-cwalina-releases-framework-design-guidelines-digest-v2/</guid>
		<description><![CDATA[ Krzysztof Cwalina, author of the book Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries has released a second revision of the Framework Design Guidelines Digest.
I&#8217;ve read Framework Design Guidelines a couple of years back and learned a whole lot from it. It definitely makes it to my top 5. 
However, I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.rauchy.net/blog/wp-content/uploads/2008/04/fdg.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="60" alt="fdg" src="http://www.rauchy.net/blog/wp-content/uploads/2008/04/fdg-thumb.jpg" width="60" align="right" border="0"> Krzysztof Cwalina</a>, author of the book <a href="http://www.amazon.com/Framework-Design-Guidelines-Conventions-Development/dp/0321246756">Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries</a> has released a second revision of the Framework Design Guidelines Digest.</p>
<p>I&#8217;ve read Framework Design Guidelines a couple of years back and learned a whole lot from it. It definitely makes it to my top 5. </p>
<p>However, I&#8217;ve had problems convincing my staff members to read it, as it contains~400 pages of design tips, which are quite hard to read in succession.</p>
<p>The Framework Design Guidelines Digest narrows the basics down to 9 pages. I recommend everyone to download and read it every once in a while.</p>
<p>Quoting Krzysztof:</p>
<blockquote><p><em>This document is a distillation and a simplification of the most basic guidelines described in detail in a book titled Framework Design Guidelines by Krzysztof Cwalina and Brad Abrams. Framework Design Guidelines were created in the early days of .NET Framework development. They started as a small set of naming and design conventions but have been enhanced, scrutinized, and refined to a point where they are generally considered the canonical way to design frameworks at Microsoft. They carry the experience and cumulative wisdom of thousands of developer hours over several versions of the .NET Framework.</em></p>
</blockquote>
<p>Get it <a href="http://blogs.msdn.com/kcwalina/archive/2008/04/09/FDGDigest.aspx">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rauchy.net/blog/2008/04/krzysztof-cwalina-releases-framework-design-guidelines-digest-v2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SWI: Day II Summary</title>
		<link>http://www.rauchy.net/blog/2008/04/swi-day-ii-summary/</link>
		<comments>http://www.rauchy.net/blog/2008/04/swi-day-ii-summary/#comments</comments>
		<pubDate>Sat, 05 Apr 2008 07:05:10 +0000</pubDate>
		<dc:creator>rauchy</dc:creator>
		
		<category><![CDATA[3DayStartup]]></category>

		<guid isPermaLink="false">http://www.rauchy.net/blog/2008/04/swi-day-ii-summary/</guid>
		<description><![CDATA[Yesterday was pretty great. We are building a web 2.0 app (surprise surprise) for time and service exchange.
We split to several teams - development, marketing, user experience etc&#8217;. Over at the development team we split to front and back end teams.
I wrote a YouTube adapter yesterday for uploading and displaying YouTube videos, hope to post [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday was pretty great. We are building a web 2.0 app (surprise surprise) for time and service exchange.</p>
<p>We split to several teams - development, marketing, user experience etc&#8217;. Over at the development team we split to front and back end teams.</p>
<p>I wrote a YouTube adapter yesterday for uploading and displaying YouTube videos, hope to post about it later on.</p>
<p>Looks like I&#8217;ll be doing some NHibernate today.</p>
<p>Can&#8217;t really write too much as I&#8217;m late, again, for day III, but:</p>
<ol>
<li>Some pretty great guys out there, its always nice to reach outside your circle of colleagues.
<li>People are smart.
<li>People are stupid.</li>
</ol>
<p>The only important things I&#8217;ve learned from talking to a nice gentleman from marketing is that if you plan to release a killer app in a domain which has already been harvested, your chance to succeed aren&#8217;t that big. Most successful application we see today recognized an un-harvested domain and conquered it.</p>
<p>Keep <a href="http://www.twitter.com/rauchy">following on Twitter</a>, I&#8217;m off!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rauchy.net/blog/2008/04/swi-day-ii-summary/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SWI: Day I Summary</title>
		<link>http://www.rauchy.net/blog/2008/04/swi-day-i-summary/</link>
		<comments>http://www.rauchy.net/blog/2008/04/swi-day-i-summary/#comments</comments>
		<pubDate>Fri, 04 Apr 2008 03:21:53 +0000</pubDate>
		<dc:creator>rauchy</dc:creator>
		
		<category><![CDATA[3DayStartup]]></category>

		<guid isPermaLink="false">http://www.rauchy.net/blog/2008/04/swi-day-i-summary/</guid>
		<description><![CDATA[Startup Weekend Israel started yesterday and here are my thoughts regarding day 1:
Nada.
I got there about 4 (!) hours late. I was busy helping my brother choose the caterer for his wedding. 
Over at SWI, They were just about to vote between two project ideas. I didn&#8217;t really relate to any of them but maybe [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://startupweekendisrael.ning.com">Startup Weekend Israel</a> <a href="http://www.rauchy.net/blog/2008/04/startup-weekend-israel-here-i-come/">started yesterday</a> and here are my thoughts regarding day 1:</p>
<p>Nada.</p>
<p>I got there about 4 (!) hours late. I was busy helping my brother choose the caterer for his wedding. </p>
<p>Over at SWI, They were just about to vote between two project ideas. I didn&#8217;t really relate to any of them but maybe because I didn&#8217;t get to hear too much about them. We voted and went home.</p>
<p>I&#8217;m a better man. I have a SWI T-Shirt.</p>
<p>Just kidding, if I wasn&#8217;t such an idiot trying to eat so many steaks I could have actually participated.</p>
<p>Oh well, hoping for better luck tomorrow.</p>
<p>Keep following at <a href="http://www.twitter.com/rauchy">Twitter</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rauchy.net/blog/2008/04/swi-day-i-summary/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Startup Weekend Israel, Here I Come!</title>
		<link>http://www.rauchy.net/blog/2008/04/startup-weekend-israel-here-i-come/</link>
		<comments>http://www.rauchy.net/blog/2008/04/startup-weekend-israel-here-i-come/#comments</comments>
		<pubDate>Thu, 03 Apr 2008 13:17:44 +0000</pubDate>
		<dc:creator>rauchy</dc:creator>
		
		<category><![CDATA[3DayStartup]]></category>

		<guid isPermaLink="false">http://www.rauchy.net/blog/2008/04/startup-weekend-israel-here-i-come/</guid>
		<description><![CDATA[I was lucky enough to grab a ticket for Startup Weekend Israel.
Startup Weekend Israel, in a nutshell is a weekend marathon held by dozens of hi-tech employees from Israel. The objective of this weekend is to try to create a startup company within one weekend.
You are welcome to follow my adventures at Startup Weekend Israel [...]]]></description>
			<content:encoded><![CDATA[<p>I was lucky enough to grab a ticket for <a href="http://startupweekendisrael.ning.com/">Startup Weekend Israel</a>.</p>
<p>Startup Weekend Israel, in a nutshell is a weekend marathon held by dozens of hi-tech employees from Israel. The objective of this weekend is to try to create a startup company within one weekend.</p>
<p>You are welcome to follow <a href="http://www.twitter.com/rauchy">my adventures at Startup Weekend Israel</a> on Twitter.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rauchy.net/blog/2008/04/startup-weekend-israel-here-i-come/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Alt.NET Baby</title>
		<link>http://www.rauchy.net/blog/2008/03/the-altnet-baby/</link>
		<comments>http://www.rauchy.net/blog/2008/03/the-altnet-baby/#comments</comments>
		<pubDate>Wed, 05 Mar 2008 06:54:41 +0000</pubDate>
		<dc:creator>rauchy</dc:creator>
		
		<category><![CDATA[Architecture]]></category>

		<category><![CDATA[C#]]></category>

		<category><![CDATA[Design]]></category>

		<category><![CDATA[Open Source]]></category>

		<category><![CDATA[Patterns]]></category>

		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://www.rauchy.net/blog/2008/03/the-altnet-baby/</guid>
		<description><![CDATA[I found myself in an interesting coaching spot - I am going to teach Alt.NET to a programming infant. I&#8217;m going to create the first Alt.NET baby.
 Real life sometime brings you to strange situations. I lead a development team which is building a web application and we recruited a new member a couple of [...]]]></description>
			<content:encoded><![CDATA[<p>I found myself in an interesting coaching spot - I am going to teach Alt.NET to a programming infant. I&#8217;m going to create the first Alt.NET baby.</p>
<p><a href="http://www.rauchy.net/blog/wp-content/uploads/2008/03/baby.jpg"><img src="http://www.rauchy.net/blog/wp-content/uploads/2008/03/baby-thumb.jpg" style="border-width: 0px" alt="baby" align="right" border="0" height="120" width="103" /></a> Real life sometime brings you to strange situations. I lead a development team which is building a web application and we recruited a new member a couple of weeks ago. I&#8217;ll refer to him as &#8220;the baby&#8221;, since he never wrote a single line of code.</p>
<p>Why is he on board, you ask? Well, he&#8217;s a fresh computer science student and knows his way around the presentation side of websites (good knowledge of HTML, CSS, Javascript and good ol&#8217; web black magic) so this seemed like a good trade-off for both sides - the baby will join the team and help us out with his mighty presentation powers and in exchange will be part of a real project for the first time and will get on-job-training.</p>
<p>This is an interesting spot. Computer science has brought his knowledge to a certain level so far (basic C) and I need to catch him up with:</p>
<ol>
<li>Object Oriented Programming,</li>
<li>What design is,</li>
<li>Separation of Concerns,</li>
<li>Liskov Substitution Principal,</li>
<li>The .NET Framework (3.5),</li>
<li>A whole bunch of BCL,</li>
<li>C#,</li>
<li>Relational databases &amp; SQL,</li>
<li>Active record &amp; SubSonic,</li>
<li>MVC,</li>
<li>Dependency Injection &amp; Inversion of Control,</li>
<li>Test Driven Development &amp; MbUnit,</li>
<li>Mocking with Rhino Mocks,</li>
<li>Design patterns,</li>
<li>Scrum,</li>
<li>Continuous integration,</li>
<li>Source Control Management with Subversion,</li>
<li>Tools.</li>
</ol>
<p>Oh, and this needs to be done as we go on with the project.</p>
<p>Can you think of anything I forgot to mention?</p>
<p>Does the order make sense or would you suggest a different one?</p>
<p>Eeek.<br />
<a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.rauchy.net%2fblog%2f2008%2f03%2fthe-altnet-baby%2f"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.rauchy.net%2fblog%2f2008%2f03%2fthe-altnet-baby%2f&#038;bgcolor=CC0033" border="0" alt="kick it on DotNetKicks.com" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rauchy.net/blog/2008/03/the-altnet-baby/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Switch Code Snippet For Enums</title>
		<link>http://www.rauchy.net/blog/2008/02/switch-code-snippet-for-enums/</link>
		<comments>http://www.rauchy.net/blog/2008/02/switch-code-snippet-for-enums/#comments</comments>
		<pubDate>Mon, 18 Feb 2008 07:47:19 +0000</pubDate>
		<dc:creator>rauchy</dc:creator>
		
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.rauchy.net/blog/2008/02/switch-code-snippet-for-enums/</guid>
		<description><![CDATA[Perhaps this is a well-known feature and I&#8217;m a moron for posting about it, but I just noticed the switch code snippet.
I was working with this enum:

    public enum AvatarSource
    {
        Gravatar, Uploaded, Web
    }

and I wanted some conditional [...]]]></description>
			<content:encoded><![CDATA[<p>Perhaps this is a well-known feature and I&#8217;m a moron for posting about it, but I just noticed the <em>switch</em> code snippet.</p>
<p>I was working with this enum:</p>
<div class="csharpcode">
<pre class="alt">    <span class="kwrd">public</span> <span class="kwrd">enum</span> AvatarSource</pre>
<pre>    {</pre>
<pre class="alt">        Gravatar, Uploaded, Web</pre>
<pre>    }</pre>
</div>
<p>and I wanted some conditional logic performed, depending on an <em>AvatarSource</em> instance. So I started to type <em>switch</em> and then thought I might use a code snippet for it, so I pressed <em>TAB</em> twice. </p>
<p>Well, I didn&#8217;t see this coming.</p>
<div class="csharpcode">
<pre class="alt">            <span class="kwrd">switch</span> (avatarSource)</pre>
<pre>            {</pre>
<pre class="alt">                <span class="kwrd">case</span> AvatarSource.Gravatar:</pre>
<pre>                    <span class="kwrd">break</span>;</pre>
<pre class="alt">                <span class="kwrd">case</span> AvatarSource.Uploaded:</pre>
<pre>                    <span class="kwrd">break</span>;</pre>
<pre class="alt">                <span class="kwrd">case</span> AvatarSource.Web:</pre>
<pre>                    <span class="kwrd">break</span>;</pre>
<pre class="alt">                <span class="kwrd">default</span>:</pre>
<pre>                    <span class="kwrd">break</span>;</pre>
<pre class="alt">            }</pre>
</div>
<p>Once you enter the variable for your switch block, the snippet automatically adds a block for each value in your enum.</p>
<p>Sweet.</p>
<p><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.rauchy.net%2fblog%2f2008%2f02%2fswitch-code-snippet-for-enums%2f"><img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.rauchy.net%2fblog%2f2008%2f02%2fswitch-code-snippet-for-enums%2f&amp;bgcolor=CC0033" border="0" /></a> </p>
<style type="text/css">
<p>.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rauchy.net/blog/2008/02/switch-code-snippet-for-enums/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
