<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.3" -->
<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>Brian Di Croce</title>
	<link>http://blog.briandicroce.com</link>
	<description>Passionate about developing and delivering better software with .NET</description>
	<pubDate>Fri, 16 May 2008 15:47:45 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<item>
		<title>Integrating Enterprise Library 3.1 Configuration Tool in Visual Studio 2008</title>
		<link>http://blog.briandicroce.com/2008/05/16/integrating-enterprise-library-31-configuration-tool-in-visual-studio-2008/</link>
		<comments>http://blog.briandicroce.com/2008/05/16/integrating-enterprise-library-31-configuration-tool-in-visual-studio-2008/#comments</comments>
		<pubDate>Fri, 16 May 2008 15:47:45 +0000</pubDate>
		<dc:creator>Brian Di Croce</dc:creator>
		
		<category><![CDATA[.NET/C# Programming]]></category>

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

		<guid isPermaLink="false">http://blog.briandicroce.com/2008/05/16/integrating-enterprise-library-31-configuration-tool-in-visual-studio-2008/</guid>
		<description><![CDATA[I&#8217;m getting my hands dirty with Enterprise Library for the first time and we&#8217;re currently targeting EntLib v3.1 with Visual Studio 2008.&#160; At first I was editing the configuration files by hand, but then after reading the documentation, I found out that there&#8217;s a Configuration Tool that&#8217;s shipped with the EntLib installer.&#160; The only problem [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m getting my hands dirty with <a href="http://www.codeplex.com/entlib">Enterprise Library</a> for the first time and we&#8217;re currently targeting EntLib v3.1 with Visual Studio 2008.&#160; At first I was editing the configuration files by hand, but then after reading the documentation, I found out that there&#8217;s a Configuration Tool that&#8217;s shipped with the EntLib installer.&#160; The only problem is that it doesn&#8217;t integrate with the IDE automatically upon the installation.&#160; </p>
<p>Here are the steps necessary to have the EntLib&#8217;s Configuration Tool integrated with Visual Studio 2008:</p>
<ol>
<li>Exit all instances of your Visual Studio 2008 before proceeding.</li>
<li><a href="http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=entlibcontrib&amp;ReleaseId=11669">Download</a> and import the registry file that you will find in CodePlex.</li>
<li>Open a Visual Studio 2008 Command Prompt and type <strong>devenv /setup</strong>.&#160; This operation should take less than a minute to complete.</li>
</ol>
<p>Now, you can launch Visual Studio 2008 and when you right-click a config file from the Solution Explorer, you&#8217;ll be able to edit its configuration using the Enterprise Library Configuration tool.&#160; </p>
<p><strong><u>NOTE:</u></strong> In order to view/edit an element&#8217;s properties, you&#8217;ll need to activate the IDE&#8217;s Properties Window (from the View menu, select Properties Window or hit F4 on your keyboard).</p>
<p>
My name is Brian Di Croce, a passionate software developer living, coding, blogging and working in Montreal, Canada.  Feel free to visit my <a href="http://www.briandicroce.com">website/blog</a> for more great content related to software development with .NET! &copy;2007-2008</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandicroce.com/2008/05/16/integrating-enterprise-library-31-configuration-tool-in-visual-studio-2008/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SE-Radio interviews Anders Hejlsberg</title>
		<link>http://blog.briandicroce.com/2008/05/16/se-radio-interviews-anders-hejlsberg/</link>
		<comments>http://blog.briandicroce.com/2008/05/16/se-radio-interviews-anders-hejlsberg/#comments</comments>
		<pubDate>Fri, 16 May 2008 15:00:04 +0000</pubDate>
		<dc:creator>Brian Di Croce</dc:creator>
		
		<category><![CDATA[Podcasts]]></category>

		<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://blog.briandicroce.com/2008/05/16/se-radio-interviews-anders-hejlsberg/</guid>
		<description><![CDATA[My favorite podcast related to software development, Software Engineering Radio, recently interviewed Anders Hejlsberg, Chief Language Strategist at Microsoft.&#160; Here&#8217;s an excerpt on this interview:
In this episode we have the pleasure of talking to Anders Hejlsberg, Chief Language Strategist at Microsoft. We started by discussing his more distant past, namely, his involvement with Turbo Pascal [...]]]></description>
			<content:encoded><![CDATA[<p>My favorite podcast related to software development, <a href="http://www.se-radio.net">Software Engineering Radio</a>, recently interviewed <a href="http://en.wikipedia.org/wiki/Anders_Hejlsberg">Anders Hejlsberg</a>, Chief Language Strategist at Microsoft.&#160; Here&#8217;s an excerpt on this interview:</p>
<blockquote><p>In this episode we have the pleasure of talking to <a href="http://en.wikipedia.org/wiki/Anders_Hejlsberg">Anders Hejlsberg</a>, Chief Language Strategist at Microsoft. We started by discussing his more distant past, namely, his involvement with Turbo Pascal and Borland&#8217;s Delphi. We then looked at the influences Delphi had on C# and how C# evolved from Delphi. In the next section we discussed a couple of general language design issues, among them components and checked vs. unchecked exceptions. Next, we discussed interesting issues about languages of the future, static vs. dynamic typing, functional programming, meta programming as well as the importance of good support for concurrency. We concluded the discussion by looking at the interplay between languages and IDEs.</p>
</blockquote>
<p><a href="http://www.se-radio.net/podcast/2008-05/episode-97-interview-anders-hejlsberg"><strong>Click here to download this interview (MP3)</strong></a>.</p>
<p>
My name is Brian Di Croce, a passionate software developer living, coding, blogging and working in Montreal, Canada.  Feel free to visit my <a href="http://www.briandicroce.com">website/blog</a> for more great content related to software development with .NET! &copy;2007-2008</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandicroce.com/2008/05/16/se-radio-interviews-anders-hejlsberg/feed/</wfw:commentRss>
		</item>
		<item>
		<title>JetBrains releases a stable nightly build EAP of ReSharper 4.0</title>
		<link>http://blog.briandicroce.com/2008/05/14/jetbrains-releases-a-stable-nightly-build-eap-of-resharper/</link>
		<comments>http://blog.briandicroce.com/2008/05/14/jetbrains-releases-a-stable-nightly-build-eap-of-resharper/#comments</comments>
		<pubDate>Thu, 15 May 2008 02:06:31 +0000</pubDate>
		<dc:creator>Brian Di Croce</dc:creator>
		
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://blog.briandicroce.com/2008/05/14/jetbrains-releases-a-stable-nightly-build-eap-of-resharper/</guid>
		<description><![CDATA[The warm product was released today as a nightly build.&#160; It&#8217;s worth checking out.&#160; I&#8217;m so impatient ever since developing with C# 3.0.&#160; Some people referred me to CodeRush/Refactor Pro! but I don&#8217;t feel like learning new shortcuts all over again&#8230;Keep the faith Brian&#8230;keep the faith!
Check out this page to download ReSharper (EAP) and view [...]]]></description>
			<content:encoded><![CDATA[<p>The warm product was released today as a nightly build.&#160; It&#8217;s worth checking out.&#160; I&#8217;m so impatient ever since developing with C# 3.0.&#160; Some people referred me to CodeRush/Refactor Pro! but I don&#8217;t feel like learning new shortcuts all over again&#8230;Keep the faith Brian&#8230;keep the faith!</p>
<p><a href="http://www.jetbrains.net/confluence/display/ReSharper/ReSharper+4.0+Nightly+Builds">Check out this page to download ReSharper (EAP) and view the fixes for this release</a>.</p>
<p>By the way, anyone of you (dear Reader) uses CodeRush/Refactor Pro?&#160; The license fee seems much lower than ReSharper&#8217;s, but that apart, what do you think about it?&#160; Some people also told me that they use both at the same time.&#160; Wow.</p>
<p>
My name is Brian Di Croce, a passionate software developer living, coding, blogging and working in Montreal, Canada.  Feel free to visit my <a href="http://www.briandicroce.com">website/blog</a> for more great content related to software development with .NET! &copy;2007-2008</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandicroce.com/2008/05/14/jetbrains-releases-a-stable-nightly-build-eap-of-resharper/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ten Principles for a Blessed Day!</title>
		<link>http://blog.briandicroce.com/2008/05/14/ten-principles-for-a-blessed-day/</link>
		<comments>http://blog.briandicroce.com/2008/05/14/ten-principles-for-a-blessed-day/#comments</comments>
		<pubDate>Thu, 15 May 2008 01:50:23 +0000</pubDate>
		<dc:creator>Brian Di Croce</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blog.briandicroce.com/2008/05/14/ten-principles-for-a-blessed-day/</guid>
		<description><![CDATA[Every Sunday morning, we are greeted by an usher at church who hands out a weekly news bulletin with various activities, birthdays reminders, words from the pastor and other stuff related to our little church.&#160; A while back, I read something I promised myself I would share on my blog.&#160; I should&#8217;ve written this two [...]]]></description>
			<content:encoded><![CDATA[<p>Every Sunday morning, we are greeted by an usher at <a href="http://www.westislandchurch.com">church</a> who hands out a weekly news bulletin with various activities, birthdays reminders, words from the pastor and other stuff related to our little church.&#160; A while back, I read something I promised myself I would share on my blog.&#160; I should&#8217;ve written this two weeks ago, but I guess there&#8217;s never a wrong time to do something good, so here goes.&#160; This one was a real reminder of God&#8217;s perfect example to follow as we journey in our lives.&#160; It&#8217;s ten simple principles (or self-promises) that can positively affect your life and other people&#8217;s lives as well.&#160; I hope you will share them and reveal them in your life.&#160; God bless.</p>
<p><strong>1. Today I will not strike back&#8230;</strong></p>
<blockquote><p>If someone is rude, if someone is impatient, if someone is unkind, I will not respond in a like manner.</p>
</blockquote>
<p><strong>2. Today I will ask God to bless my &#8216;enemy&#8217;&#8230;</strong></p>
<blockquote><p>If I come across someone who treats me harshly or unfairly, I will quietly ask God to bless that individual.&#160; I understand &#8216;enemy&#8217; could be a family member, neighbor, co-worker or stranger.</p>
</blockquote>
<p><strong>3. Today I will be careful about what I say&#8230;</strong></p>
<blockquote><p>I will carefully choose and guard my words being certain that I do not spread gossip.</p>
</blockquote>
<p><strong>4. Today I will go the extra mile&#8230;</strong></p>
<blockquote><p>I will find ways to help share the burden of another person.</p>
</blockquote>
<p><strong>5. Today I will forgive&#8230;</strong></p>
<blockquote><p>I will forgive any hurts or injuries that come my way.</p>
</blockquote>
<p><strong>6. Today I will do something kind for someone (but I will do it in secret&#8230;)</strong></p>
<blockquote><p>I will reach out anonymously and bless the life of another.</p>
</blockquote>
<p><strong>7. Today I will treat others the way I wish to be treated&#8230;</strong></p>
<blockquote><p>I will practice the golden rule.&#160; &quot;Do unto others as I would have them do unto me&quot;- with EVERYONE I encounter.</p>
</blockquote>
<p><strong>8. Today I will raise the spirits of someone who is discouraged&#8230;</strong></p>
<blockquote><p>My smile, my words, my expression of support, can make the difference to someone who is wrestling with life.</p>
</blockquote>
<p><strong>9. Today I will nurture my body&#8230;</strong></p>
<blockquote><p>I will not over eat&#8230;I will eat healthy&#8230;I will thank God for my body.</p>
</blockquote>
<p><strong>10. Today I will grow spiritually&#8230;</strong></p>
<blockquote><p>I will spend a little more time in prayer and bible reading today.&#160; I will begin reading something spiritual or inspirational; I will find a quiet place and listen to God&#8217;s voice.</p>
</blockquote>
<p>
My name is Brian Di Croce, a passionate software developer living, coding, blogging and working in Montreal, Canada.  Feel free to visit my <a href="http://www.briandicroce.com">website/blog</a> for more great content related to software development with .NET! &copy;2007-2008</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandicroce.com/2008/05/14/ten-principles-for-a-blessed-day/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Problem Installing SQL Server 2005 on Windows Vista with IIS 7.0</title>
		<link>http://blog.briandicroce.com/2008/05/13/problem-installing-sql-server-2005-on-windows-vista-with-iis-70/</link>
		<comments>http://blog.briandicroce.com/2008/05/13/problem-installing-sql-server-2005-on-windows-vista-with-iis-70/#comments</comments>
		<pubDate>Tue, 13 May 2008 13:38:49 +0000</pubDate>
		<dc:creator>Brian Di Croce</dc:creator>
		
		<category><![CDATA[How To?]]></category>

		<guid isPermaLink="false">http://blog.briandicroce.com/2008/05/13/problem-installing-sql-server-2005-on-windows-vista-with-iis-70/</guid>
		<description><![CDATA[I had such a hard time installing SQL Server 2005 on my Windows Vista Enterprise Edition machine running IIS 7.0 this afternoon.  In fact, during the setup of SQL Server 2005, I received the following warning message next to the IIS Feature Requirement item on the System Configuration Check page, as shown in the [...]]]></description>
			<content:encoded><![CDATA[<p>I had such a hard time installing SQL Server 2005 on my Windows Vista Enterprise Edition machine running IIS 7.0 this afternoon.  In fact, during the setup of SQL Server 2005, I received the following warning message next to the <strong>IIS Feature Requirement</strong> item on the System Configuration Check page, as shown in the following screenshot.</p>
<p><center><img src="http://blog.briandicroce.com/wp-content/uploads/2008/05/image2.png" style="border-width: 0px" border="0" height="455" width="505" /></p>
<p></center>After Googling for a while, I found out that this situation was already documented by Microsoft as <a href="http://support.microsoft.com/kb/920201"><strong>Knowledge Base #920201</strong></a> in their Help and Support page.</p>
<p>The root cause for this problem is that <strong>not all of the IIS 7.0 components essential to SQL Server have been installed</strong>.  The solution to this problem is (as you may have guessed it) to install those IIS components.  To access the IIS configuration page on Vista, you need to go to <strong>Start</strong>-&gt;<strong>Control Panel</strong>-&gt;<strong>Programs and Features</strong>, then click on &#8220;<strong>Turn Windows features on or off</strong>&#8221; on the left pane of the window.</p>
<p>The following table shows you which components (there are 10) to enable with their corresponding folder.  The screenshot below the table is a visual representation of the IIS components you should have enabled by ticking the checkbox next to the component.</p>
<p><center> <img src="http://blog.briandicroce.com/wp-content/uploads/2008/05/image3.png" style="border-width: 0px" border="0" height="274" width="589" /></p>
<p><img src="http://blog.briandicroce.com/wp-content/uploads/2008/05/image4.png" style="border: 0px none " alt="image" border="0" height="996" width="449" /></p>
<p></center>Following this procedure, you can launch the setup for SQL Server 2005 again, and this time you should see the following results:</p>
<p><center><img src="http://blog.briandicroce.com/wp-content/uploads/2008/05/image5.png" style="border-width: 0px" border="0" height="455" width="505" /></p>
<p></center>If you&#8217;re looking for more information on how to install/configure IIS 7.0 on <strong>Vista</strong>, I highly recommend you to read the following page: <a href="http://learn.iis.net/page.aspx/28/installing-iis7-on-vista/" title="http://learn.iis.net/page.aspx/28/installing-iis7-on-vista/">http://learn.iis.net/page.aspx/28/installing-iis7-on-vista/</a>.  If you&#8217;re looking for the same information, but for <strong>Windows Server 2008</strong>, this link will be more appropriate for you: <a href="http://learn.iis.net/page.aspx/29/installing-iis7-on-windows-server-2008/" title="http://learn.iis.net/page.aspx/29/installing-iis7-on-windows-server-2008/">http://learn.iis.net/page.aspx/29/installing-iis7-on-windows-server-2008/</a>.
<p>
My name is Brian Di Croce, a passionate software developer living, coding, blogging and working in Montreal, Canada.  Feel free to visit my <a href="http://www.briandicroce.com">website/blog</a> for more great content related to software development with .NET! &copy;2007-2008</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandicroce.com/2008/05/13/problem-installing-sql-server-2005-on-windows-vista-with-iis-70/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Case for ReSharper in the Enterprise</title>
		<link>http://blog.briandicroce.com/2008/05/12/the-case-for-resharper-in-the-enterprise/</link>
		<comments>http://blog.briandicroce.com/2008/05/12/the-case-for-resharper-in-the-enterprise/#comments</comments>
		<pubDate>Mon, 12 May 2008 17:04:02 +0000</pubDate>
		<dc:creator>Brian Di Croce</dc:creator>
		
		<category><![CDATA[.NET/C# Programming]]></category>

		<category><![CDATA[Software Engineering]]></category>

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

		<guid isPermaLink="false">http://blog.briandicroce.com/2008/05/12/the-case-for-resharper-in-the-enterprise/</guid>
		<description><![CDATA[ I&#8217;ve been using ReSharper as a complement to Visual Studio since version 2.0 of JetBrains&#8216; powerful refactoring and productivity tool in my .NET projects.&#160; ReSharper, which fully supports both C# and VB.NET, is not only a time-saver when applying refactoring patterns but is actually a great assistant in making you a better .NET developer.&#160; [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 5px 10px 0px; border-right-width: 0px" height="72" alt="" src="http://blog.briandicroce.com/wp-content/uploads/2008/05/image.png" width="100" align="left" border="0" /> I&#8217;ve been using <a href="http://www.jetbrains.com/resharper/index.html"><strong>ReSharper</strong></a> as a complement to Visual Studio since version 2.0 of <a href="http://www.jetbrains.com">JetBrains</a>&#8216; powerful refactoring and productivity tool in my .NET projects.&#160; ReSharper, which fully supports both C# and VB.NET, is not only a time-saver when applying refactoring patterns but is actually a great assistant in making you a better .NET developer.&#160; In a few moments, I will provide my thoughts that support these statements and more.&#160; </p>
<p>In my previous job at a small ISV (seriously, we were three), my boss which is very much on the technical side of business made sure to provide us with the necessary tools and resources to deliver high quality projects to our customers.&#160; In order to achieve this &quot;high quality&quot; level, we had to make sure that our productivity was high, our &quot;comfort zone&quot; was in the green and the tools available to us would support both of these needs at a minimum.&#160; That being said, he provided for us a dual monitor setup (I wish we had three&#8230;but then again I wish for a lot of things in life), powerful machines, comfortable chairs&#8230;and reliable software tools such as modeling tools, profilers, code analyzers, etc.&#160; Of all these things, I believe that software tools are the most important because even though your productivity might slow down if you&#8217;re lacking a second monitor or that chair isn&#8217;t as comfortable as it should be (one benefit of having a bad chair is that it reminds you to get up and walk around every 15 minutes which is very good for your back), you can radically lower your productivity and your quality output if you&#8217;re not provided adequate tools to fulfill your job.&#160; In my software toolbox, my favorite one is a refactoring tool because it helps me to reduce code duplication, augment code intention when applying refactoring patterns, and supports TDD from the get-go.&#160; In my .NET development toolbox, this tool is satisfied by ReSharper.</p>
<p>Unfortunately, there are many companies that produce software that don&#8217;t provide these kinds of necessities to their developers.&#160; My guess is that their CIO or technological managers aren&#8217;t as technical as they should be or they don&#8217;t see these necessities as a <em>real</em> necessity (maybe it doesn&#8217;t align with their current fiscal year&#8217;s objectives, who knows&#8230;).&#160; My goal in this post (and with your comments) is to present a case to management that developers who aren&#8217;t provided the necessary and essential tools to help them in their daily development tasks is like sending a soldier to combat without the appropriate gear (it&#8217;s the first example that popped out in my mind&#8230;I must confess that I&#8217;m watching the late night news as writing this post&#8230;and what else is there to talk about than the war in Iraq itself?).&#160; The tool I&#8217;ll focus on is ReSharper (but feel free to share your own tools as well!)</p>
<p>All right, here we go.&#160; As you may know, the .NET framework base classes and interfaces are all grouped in various different logical namespaces.&#160; According to <a href="http://codebetter.com/blogs/patricksmacchia">Patrick Smacchia</a>&#8217;s lately post on on the <a href="http://codebetter.com/blogs/patricksmacchia/archive/2008/03/18/number-of-types-in-the-net-framework.aspx">number of types in the .NET framework</a>, there are close to <strong>933 namespaces</strong> and <strong>39 509 types</strong> alone in the framework.&#160; I doubt that <a href="http://en.wikipedia.org/wiki/Kim_Peek">Kim Peek</a> can memorize all of them.&#160; A tool like ReSharper actually is a time-saver in this scenario because it is intelligent enough to assist you in importing the right namespace for a type.&#160; This is extremely helpful, because when programming, you really want to focus on &quot;<strong>the type I need/want to use</strong>&quot; and much less on the &quot;<strong>which namespace holds the type I need/want to use?</strong>&quot;.&#160; I don&#8217;t know if it happens to you, but I tend to lose my concentration whenever I&#8217;m shifting away from focusing on the real task at hand (such as browsing the MSDN documentation or the Object Browser to find a compatible type, a base class, an interface or a namespace).&#160; So this is my first argument for giving a ReSharper license to your employees: <u>a refactoring tool like ReSharper reduces a developer&#8217;s time and increases her productivity by letting her focus at the real essence of the application (the code) and less on the plumbing (figuring out which one of the 933 namespaces holds our type).</u></p>
<p>Furthermore, a tool like ReSharper actually helps developers who are novice in object-oriented programming.&#160; I&#8217;ve been doing consultancy for a while enough to know that not many .NET developers have sharpened their OO skills compared to Java or C++ folks.&#160; I&#8217;m glad to hear that the <a href="http://altdotnet.org/">ALT.NET</a> movement is making a serious effort in this area, but until this is mainstream, tools like ReSharper can be a valuable resource to help us in this direction.&#160; For example, ReSharper will actually propose you to use a more general type (such as a base class or an interface) whenever possible (check out the screenshot below).&#160; This is extremely useful as it helps to fulfill the principle of favoring interfaces over implementation (which decreases coupling to a specific type) and facilitates testing and maintenance.&#160; Therefore, my second argument for giving a ReSharper license to your employees:&#160; <u>a refactoring tool like ReSharper can make your developers more aware of some key OO principles.&#160; And if your organization takes time to do some code reviews, more people can participate in sharpening their OO skills at the same time.</u></p>
<p> <center>
<p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="131" alt="" src="http://blog.briandicroce.com/wp-content/uploads/2008/05/image1.png" width="644" border="0" /> </p>
<p> </center>
<p>I&#8217;ll give a final argument to my case for enterprises to supply their developers with a tool like ReSharper (the rest of this case will be continued by your comments and ideas).&#160; Whenever you&#8217;re doing some contracting for another client, or your changing jobs with another organization, most of the time you&#8217;ll have to familiarize yourself with another <strong>coding standard</strong> or<strong> coding guidelines</strong>.&#160; This is the perfect situation where a tool like ReSharper can leverage this pain since it can assist you in coding to a standard.&#160; All you have to do is provide the tool with a coding template and that&#8217;s it.&#160; That&#8217;s actually how it should be.&#160; I once heard that Albert Einstein didn&#8217;t even know his own telephone number and when asked why that was the case, he simply responded &quot;I don&#8217;t need to remember my own phone number, I can just look it up in the phone book!&quot;.&#160; It&#8217;s the same scenario in this case.&#160; Why memorize and remember such a static information like a coding standard when it can actually be enforced by a tool?&#160; <strong>The less I have to remember things, the better I am at performing my work because I can concentrate more on the essential and less on the &quot;plumbing&quot;.&#160; </strong>The beauty of a tool like ReSharper, is that you can tell it to format your code according to a given template whenever you want.&#160; That&#8217;s my third and final argument for convincing management to provide a tool like ReSharper to their developers: <u>it helps them (once again) to focus more on the essential code and less on the &quot;esthetics&quot; aspects of it by delegating multiple coding standards to the tool.&#160; This guarantees that the customer will always have a codebase that respects her standards.</u></p>
<p>Of course, there are countless more reasons to provide refactoring tools like ReSharper to your developers.&#160; I highly recommend to take some time and view the <a href="http://www.jetbrains.com/resharper/features/">features</a> offered by this incredible product.&#160; I know some developers that actually purchased their own licenses or even are using some cracked version of the tool just to satisfy their own needs (man, it sounds like being addicted to drugs or something) because at the end, the tool proved itself more than valuable.&#160; This shouldn&#8217;t be the case.&#160; <strong>Supplying the right tools to your developers is a great way to let them know that you care about their work, and as a result help your organization to increase in both maturity and capability.</strong></p>
<p>Granted, ReSharper isn&#8217;t a <a href="http://en.wikipedia.org/wiki/No_Silver_Bullet">silver bullet</a>, but in many cases it provides us with the support we need to concentrate on writing essential code while giving us the opportunity to easily apply refactoring patterns and driving our design with TDD.&#160; That alone gives us a boost in productivity, which can vary on the user&#8217;s experience with the tool (see the <a href="http://blogs.jetbrains.com/dotnet/2007/05/the-resharper-jedi/">ReSharper Jedi video</a> for more info) and quality.&#160; That, I believe, is a bullet strong enough to harm the werewolf constantly that frightens developers to respond to changes, refactor their code, organize their unit tests and more.</p>
<p>
My name is Brian Di Croce, a passionate software developer living, coding, blogging and working in Montreal, Canada.  Feel free to visit my <a href="http://www.briandicroce.com">website/blog</a> for more great content related to software development with .NET! &copy;2007-2008</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandicroce.com/2008/05/12/the-case-for-resharper-in-the-enterprise/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Twitter</title>
		<link>http://blog.briandicroce.com/2008/04/25/twitter/</link>
		<comments>http://blog.briandicroce.com/2008/04/25/twitter/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 20:50:42 +0000</pubDate>
		<dc:creator>Brian Di Croce</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blog.briandicroce.com/2008/04/25/twitter/</guid>
		<description><![CDATA[All right, just like Ayende, I&#8217;m not too sure about this, but I&#8217;m willing to give Twitter a chance&#8230;
http://twitter.com/bdicroce

My name is Brian Di Croce, a passionate software developer living, coding, blogging and working in Montreal, Canada.  Feel free to visit my website/blog for more great content related to software development with .NET! &#169;2007-2008
]]></description>
			<content:encoded><![CDATA[<p>All right, just like <a href="http://www.ayende.com/Blog/archive/2008/04/20/Twitter.aspx">Ayende</a>, I&#8217;m not too sure about this, but I&#8217;m willing to give Twitter a chance&#8230;</p>
<p><a title="http://twitter.com/bdicroce" href="http://twitter.com/bdicroce">http://twitter.com/bdicroce</a></p>
<p>
My name is Brian Di Croce, a passionate software developer living, coding, blogging and working in Montreal, Canada.  Feel free to visit my <a href="http://www.briandicroce.com">website/blog</a> for more great content related to software development with .NET! &copy;2007-2008</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandicroce.com/2008/04/25/twitter/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Who Said We Can&#8217;t Have Fun With Math or Physics?</title>
		<link>http://blog.briandicroce.com/2008/04/25/math-and-physics-equations-to-laugh/</link>
		<comments>http://blog.briandicroce.com/2008/04/25/math-and-physics-equations-to-laugh/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 14:00:48 +0000</pubDate>
		<dc:creator>Brian Di Croce</dc:creator>
		
		<category><![CDATA[Humor/Funny]]></category>

		<guid isPermaLink="false">http://blog.briandicroce.com/2008/04/25/math-and-physics-equations-to-laugh/</guid>
		<description><![CDATA[I was cleaning my Gmail inbox this afternoon, and I stumbled upon a few old emails.  One of them was sent to me by my wife and it includes some funny pictures of (apparently real) math and physics homework answers.  To all you students who are about to begin your Summer vacation&#8230;enjoy!








My name [...]]]></description>
			<content:encoded><![CDATA[<p>I was cleaning my Gmail inbox this afternoon, and I stumbled upon a few old emails.  One of them was sent to me by my wife and it includes some funny pictures of (apparently real) math and physics homework answers.  To all you students who are about to begin your Summer vacation&#8230;enjoy!</p>
<p><center><img src="http://blog.briandicroce.com/wp-content/uploads/2008/04/image6.png" style="border-width: 0px" border="0" height="456" width="608" /><img src="http://blog.briandicroce.com/wp-content/uploads/2008/04/image7.png" style="border-width: 0px" border="0" height="407" width="444" /></p>
<p><img src="http://blog.briandicroce.com/wp-content/uploads/2008/04/image8.png" style="border-width: 0px" border="0" height="299" width="419" /></p>
<p><img src="http://blog.briandicroce.com/wp-content/uploads/2008/04/image9.png" style="border-width: 0px" border="0" height="314" width="398" /></p>
<p><img src="http://blog.briandicroce.com/wp-content/uploads/2008/04/image10.png" style="border-width: 0px" border="0" height="288" width="382" /></p>
<p><img src="http://blog.briandicroce.com/wp-content/uploads/2008/04/image11.png" style="border-width: 0px" border="0" height="504" width="365" /></p>
<p><img src="http://blog.briandicroce.com/wp-content/uploads/2008/04/image12.png" style="border-width: 0px" border="0" height="188" width="255" /></p>
<p></center>
<p>
My name is Brian Di Croce, a passionate software developer living, coding, blogging and working in Montreal, Canada.  Feel free to visit my <a href="http://www.briandicroce.com">website/blog</a> for more great content related to software development with .NET! &copy;2007-2008</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandicroce.com/2008/04/25/math-and-physics-equations-to-laugh/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Installing Linux Ubuntu as a Windows Application with Wubi</title>
		<link>http://blog.briandicroce.com/2008/04/24/installing-linux-ubuntu-as-a-windows-application-with-wubi/</link>
		<comments>http://blog.briandicroce.com/2008/04/24/installing-linux-ubuntu-as-a-windows-application-with-wubi/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 00:48:04 +0000</pubDate>
		<dc:creator>Brian Di Croce</dc:creator>
		
		<category><![CDATA[How To?]]></category>

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

		<guid isPermaLink="false">http://blog.briandicroce.com/2008/04/24/installing-linux-ubuntu-as-a-windows-application-with-wubi/</guid>
		<description><![CDATA[ With the latest release of the popular Linux-based operating system, Ubuntu Hardy Heron, the installation process just got easier for Windows users who wish to try out an alternative to Vista or XP.&#160; Even .NET developers who are looking out on trying the Mono project (the .NET platform for Linux-based operating systems) can benefit [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://wubi-installer.org/"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 0px 0px 5px; border-right-width: 0px" height="75" alt="" src="http://blog.briandicroce.com/wp-content/uploads/2008/04/image1.png" width="240" align="right" border="0" /></a> With the latest release of the popular Linux-based operating system, <a href="http://www.ubuntu.com">Ubuntu</a> Hardy Heron, the installation process just got easier for Windows users who wish to try out an alternative to Vista or XP.&#160; Even .NET developers who are looking out on trying the <a href="http://www.mono-project.com/Main_Page">Mono project</a> (the .NET platform for Linux-based operating systems) can benefit from it.&#160; All this is possible thanks to a little Windows utility called <a href="http://wubi-installer.org/">Wubi</a>, which is an installer for Ubuntu.&#160; </p>
<p>As described by <a href="http://en.wikipedia.org/wiki/Wubi_%28Ubuntu%29">Wikipedia</a>&#8217;s definition on the tool:</p>
<blockquote><p>Wubi adds an entry to the Windows boot menu which allows you to run Linux. Ubuntu is installed within a file in the Windows file system (c:\wubi\disks\system.virtual.disk), as opposed to being installed within its own partition. This file is seen by Linux as a real hard disk.</p>
</blockquote>
<p>According to Wubi&#8217;s official site, <em>Wubi is an officially supported Ubuntu installer for Windows users that can bring you to the Linux world with a single click.&#160; <strong>Wubi allows you to install and uninstall Ubuntu as any other Windows application</strong>, in a simple and safe way.</em></p>
<p>The beauty of Wubi is that:</p>
<ul>
<li>You don&#8217;t need to burn a CD. Just run the installer, enter a password for the new account, and click &quot;Install&quot;, go grab a coffee, and when your are back, Ubuntu will be ready for you. </li>
<li>You keep Windows as it is, Wubi only adds an extra option to boot into Ubuntu. Wubi does not require you to modify the partitions of your PC, or to use a different bootloader, and does not install special drivers. It works just like any other application. Wubi is spyware and malware free, and being open source, anyone can verify that. </li>
<li>Wubi keeps most of the files in one folder, and if you do not like it, you can simply uninstall it as any other application. </li>
<li><strong>It&#8217;s free!</strong> </li>
</ul>
<p>The following screenshot, which was taken from Wubi&#8217;s official site, shows you how easy it is to configure Ubuntu&#8217;s installation as a Windows application.&#160; </p>
<p> <center>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="401" alt="" src="http://blog.briandicroce.com/wp-content/uploads/2008/04/image4.png" width="517" border="0" /> </p>
<p> </center>
<p>Remember that you don&#8217;t have to create a new partition to install Ubuntu with Wubi.&#160; In fact, it will install the Linux-based operating system in the same partition that Windows is installed (just like a standard application).&#160; You can choose whether to boot in Windows or Ubuntu whenever you reboot your computer.&#160; </p>
<p> <center>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="291" alt="" src="http://blog.briandicroce.com/wp-content/uploads/2008/04/image5.png" width="444" border="0" /> </p>
<p> </center>
<p><strong>There are some things to consider with this installation model</strong>:</p>
<ol>
<li>The performance is identical to a standard installation, except for hard-disk access which is slightly slower than an installation to a dedicated partition. If your hard disk is very fragmented the performance will degenerate. </li>
<li>Hibernation is not supported under Wubi, moreover Wubi filesystem is more vulnerable to hard-reboots (turning off the power) and power outages than a normal filesystem, so try to avoid unplugging the power. An Ubuntu installation to a dedicated partition provides a filesystem that is more robust and can better tolerate such events. </li>
</ol>
<p>For more information, I suggest you to skim through <a href="http://wubi-installer.org/faq.php">Wubi&#8217;s FAQ page</a>.</p>
<p>
My name is Brian Di Croce, a passionate software developer living, coding, blogging and working in Montreal, Canada.  Feel free to visit my <a href="http://www.briandicroce.com">website/blog</a> for more great content related to software development with .NET! &copy;2007-2008</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandicroce.com/2008/04/24/installing-linux-ubuntu-as-a-windows-application-with-wubi/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New Job, Another Year</title>
		<link>http://blog.briandicroce.com/2008/04/23/new-job-another-year/</link>
		<comments>http://blog.briandicroce.com/2008/04/23/new-job-another-year/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 01:39:31 +0000</pubDate>
		<dc:creator>Brian Di Croce</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blog.briandicroce.com/2008/04/23/new-job-another-year/</guid>
		<description><![CDATA[ Wow! 24 posts for the month of March and only one post so far for April.&#160; Some people were asking me if I was all right, and the answer is Yep!&#160; I finished working for the consulting firm that hired me as an intern during my undergraduate studies, and starting this Monday, I will [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.briandicroce.com/wp-content/uploads/2008/04/image.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 5px 5px 0px; border-right-width: 0px" height="80" alt="image" src="http://blog.briandicroce.com/wp-content/uploads/2008/04/image-thumb.png" width="187" align="left" border="0" /></a> Wow! 24 posts for the month of March and only one post so far for April.&#160; Some people were asking me if I was all right, and the answer is Yep!&#160; I finished working for the consulting firm that hired me as an intern during my undergraduate studies, and starting this Monday, I will be working at <a href="http://www.avanade.com">Avanade</a> as a .NET Solution Developer in Montreal.&#160; The funny thing is that I was actually suppose to start my career at Avanade after my studies, but the timing just wasn&#8217;t right as I was already involved in other projects.&#160; But not anymore.&#160; The timing is perfect! Furthermore, I got my acceptance letter to pursue my graduate studies at <a href="http://www.polymtl.ca">&#201;cole Polytechnique de Montr&#233;al</a>.&#160; I&#8217;ll be starting a Master&#8217;s in Technological Project Management this September on a part-time basis.&#160; That&#8217;s the news for now.&#160; Oh yeah, and it&#8217;s my birthday today! =)</p>
<p>
My name is Brian Di Croce, a passionate software developer living, coding, blogging and working in Montreal, Canada.  Feel free to visit my <a href="http://www.briandicroce.com">website/blog</a> for more great content related to software development with .NET! &copy;2007-2008</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandicroce.com/2008/04/23/new-job-another-year/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A Cheat Sheet On .NET Framework Design Guidelines</title>
		<link>http://blog.briandicroce.com/2008/04/09/a-cheat-sheet-on-net-framework-design-guidelines/</link>
		<comments>http://blog.briandicroce.com/2008/04/09/a-cheat-sheet-on-net-framework-design-guidelines/#comments</comments>
		<pubDate>Thu, 10 Apr 2008 01:16:25 +0000</pubDate>
		<dc:creator>Brian Di Croce</dc:creator>
		
		<category><![CDATA[.NET/C# Programming]]></category>

		<guid isPermaLink="false">http://blog.briandicroce.com/2008/04/09/a-cheat-sheet-on-net-framework-design-guidelines/</guid>
		<description><![CDATA[Krzysztof Cwalina has published a condensed version of the Microsoft .NET Framework Design Guidelines which he co-authored with Brad Abrams a couple of years ago.  You can find the Framework Design Guidelines Digest here as a PDF file (9 pages long).  The document is very useful if you desire to set up a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.msdn.com/kcwalina/" target="_blank">Krzysztof Cwalina</a> has published a condensed version of the Microsoft .NET Framework Design Guidelines which he co-authored with <a href="http://blogs.msdn.com/brada/" target="_blank">Brad Abrams</a> a couple of years ago.  You can find the <a href="http://code.msdn.microsoft.com/fds/Release/ProjectReleases.aspx?ReleaseId=873" target="_blank"><strong>Framework Design Guidelines Digest</strong> here</a> as a PDF file (9 pages long).  The document is very useful if you desire to set up a standard, practical and ubiquitous approach of programming with .NET in your own organization in no time and without much effort (the job is already done for you!).
<p>
My name is Brian Di Croce, a passionate software developer living, coding, blogging and working in Montreal, Canada.  Feel free to visit my <a href="http://www.briandicroce.com">website/blog</a> for more great content related to software development with .NET! &copy;2007-2008</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandicroce.com/2008/04/09/a-cheat-sheet-on-net-framework-design-guidelines/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Most popular posts for March 2008</title>
		<link>http://blog.briandicroce.com/2008/03/31/most-popular-posts-for-march-2008/</link>
		<comments>http://blog.briandicroce.com/2008/03/31/most-popular-posts-for-march-2008/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 04:27:12 +0000</pubDate>
		<dc:creator>Brian Di Croce</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blog.briandicroce.com/2008/03/31/most-popular-posts-for-march-2008/</guid>
		<description><![CDATA[I&#8217;m trying something new&#8230;again.  At the end of the month, I&#8217;ll publish the most popular/read posts in the last month in case you&#8217;re a first time visitor and want to jump straight into the good stuff. 
Here are the most popular/read posts for March 2008:

Three Index Cards To Easily Remember The Essence Of Test-Driven Development (2042 [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m trying something new&#8230;again.  At the end of the month, I&#8217;ll publish the most popular/read posts in the last month in case you&#8217;re a first time visitor and want to jump straight into the good stuff. </p>
<p><strong>Here are the most popular/read posts for March 2008:</strong></p>
<ol>
<li><a href="http://blog.briandicroce.com/2008/03/14/three-index-cards-to-easily-remember-the-essence-of-test-driven-development/"><font color="#cc0000">Three Index Cards To Easily Remember The Essence Of Test-Driven Development <strong>(2042 visitors have read this post)</strong>.</font></a></li>
<li><a href="http://blog.briandicroce.com/2007/12/29/ten-simple-tips-to-become-a-valuable-software-professional/"><font color="#cc0000">Ten Simple Tips To Become A Valuable Software Professional <strong>(299 visitors have read this post)</strong>.</font></a></li>
<li><a href="http://blog.briandicroce.com/2008/03/19/part-i-beginning-the-ci-journey-with-subversion/"><font color="#cc0000">Part I: Beginning the CI Journey with Subversion <strong>(207 visitors have read this post)</strong>.</font></a></li>
<li><a href="http://blog.briandicroce.com/2007/12/27/opening-a-new-tab-in-firefox-with-the-logitech-mx-and-vx-revolution-series-mouse/"><font color="#cc0000">Opening a New Tab in Firefox with the Logitech MX and VX Revolution Series Mouse <strong>(181 visitors have read this post)</strong>.</font></a></li>
<li><a href="http://blog.briandicroce.com/2008/03/24/part-ii-setting-up-our-build-server-with-teamcity/"><font color="#cc0000">Part II: Setting Up Our Build Server With TeamCity <strong>(181 visitors have read this post)</strong>.</font></a></li>
</ol>
<p>
My name is Brian Di Croce, a passionate software developer living, coding, blogging and working in Montreal, Canada.  Feel free to visit my <a href="http://www.briandicroce.com">website/blog</a> for more great content related to software development with .NET! &copy;2007-2008</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandicroce.com/2008/03/31/most-popular-posts-for-march-2008/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How Can I Explain This To My Wife?</title>
		<link>http://blog.briandicroce.com/2008/03/30/how-can-i-explain-this-to-my-wife/</link>
		<comments>http://blog.briandicroce.com/2008/03/30/how-can-i-explain-this-to-my-wife/#comments</comments>
		<pubDate>Sun, 30 Mar 2008 22:32:25 +0000</pubDate>
		<dc:creator>Brian Di Croce</dc:creator>
		
		<category><![CDATA[Humor/Funny]]></category>

		<guid isPermaLink="false">http://blog.briandicroce.com/2008/03/30/how-can-i-explain-this-to-my-wife/</guid>
		<description><![CDATA[
My name is Brian Di Croce, a passionate software developer living, coding, blogging and working in Montreal, Canada.  Feel free to visit my website/blog for more great content related to software development with .NET! &#169;2007-2008
]]></description>
			<content:encoded><![CDATA[<p align="center"><img height="152" alt="image" src="http://blog.briandicroce.com/wp-content/uploads/2008/03/image69.png" width="236" border="0"></p>
<p>
My name is Brian Di Croce, a passionate software developer living, coding, blogging and working in Montreal, Canada.  Feel free to visit my <a href="http://www.briandicroce.com">website/blog</a> for more great content related to software development with .NET! &copy;2007-2008</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandicroce.com/2008/03/30/how-can-i-explain-this-to-my-wife/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Better Modelling with the Visual Studio Class Designer</title>
		<link>http://blog.briandicroce.com/2008/03/29/better-modelling-with-the-visual-studio-class-designer/</link>
		<comments>http://blog.briandicroce.com/2008/03/29/better-modelling-with-the-visual-studio-class-designer/#comments</comments>
		<pubDate>Sat, 29 Mar 2008 19:35:44 +0000</pubDate>
		<dc:creator>Brian Di Croce</dc:creator>
		
		<category><![CDATA[.NET/C# Programming]]></category>

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

		<guid isPermaLink="false">http://blog.briandicroce.com/2008/03/29/better-modelling-with-the-visual-studio-class-designer/</guid>
		<description><![CDATA[As you may have experienced whenever modelling any kind of software design, it gets pretty hard to keep the model in-sync with the software as the code changes over a period of time.&#160; It&#8217;s even harder to keep both updated if you&#8217;re modelling with a different, independent application than your IDE.&#160; 
Today, for the very [...]]]></description>
			<content:encoded><![CDATA[<p>As you may have experienced whenever modelling any kind of software design, it gets pretty hard to keep the model in-sync with the software as the code changes over a period of time.&nbsp; It&#8217;s even harder to keep both updated if you&#8217;re modelling with a different, independent application than your IDE.&nbsp; </p>
<p>Today, for the very first time, I was playing around with the Visual Studio 2008 Class Designer.&nbsp; I&#8217;ve been using <a href="http://www.sparxsystems.com.au/">Sparx&#8217;s Enterprise Architect</a> for a number of years, but I wanted a better way to keep my design in-sync with my code inside the IDE.&nbsp; The major problem with the Visual Studio Class Designer is that it lacks some fundamental features that should appear on a UML class diagram such as <strong>associations between classes</strong>.&nbsp; </p>
<p>Well, you might be delighted to know that there&#8217;s a neat project on CodePlex that fulfills this need. That project is <a href="http://www.codeplex.com/modeling"><strong>PowerToys for the Class Designer and Distributed System Designer</strong></a>.&nbsp; Here&#8217;s its description:</p>
<blockquote><p><em>This set of add-ins augments existing functionality in the Visual Studio Class Designer and the Distributed Systems Designers. It now supports Visual Studio 2005, Visual Studio 2008. The Design Tools Enhancements add-in provides a common set of features that can be used by both the Class Designer and the Distributed System Designers, such as pan/zoom window and rich formatting commands. The Class Designer Enhancements add-in provides additional functionality for the Visual Studio Class Designer, such as HTML export and nested type creation commands. This download includes all necessary source code and a Visual Studio project template for creating your own add-ins for the Visual Studio designers. The Class Designer is a developer productivity tool available in Visual Studio Standard Edition and above, which allows developers to easily visualize, design, refactor, and document their code. The Distributed System Designers enable software architects, operations managers, and developers to visually design service-oriented solutions and validate them at design time against their operational environments. The Distributed System Designers are a core component of Visual Studio Team Edition for Software Architects and the Visual Studio Team System.</em></p>
</blockquote>
<p>Even though the description says that it supports Visual Studio 2005, the latest release only supports Visual Studio 2008 (Professional edition or higher).&nbsp; I haven&#8217;t tried it in Visual Studio 2005 (but if you did, feel free to post a comment on your experience with this PowerToys on VS2005).</p>
<p>P.S To show the associations between classes inside the Class Designer, simply right-click on a class attribute or a property, then click on <strong>Show as Association</strong> or <strong>Show as Collection Association</strong>, depending on the type.&nbsp; Sweet!</p>
<p>
My name is Brian Di Croce, a passionate software developer living, coding, blogging and working in Montreal, Canada.  Feel free to visit my <a href="http://www.briandicroce.com">website/blog</a> for more great content related to software development with .NET! &copy;2007-2008</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandicroce.com/2008/03/29/better-modelling-with-the-visual-studio-class-designer/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Part II: Setting Up Our Build Server With TeamCity</title>
		<link>http://blog.briandicroce.com/2008/03/24/part-ii-setting-up-our-build-server-with-teamcity/</link>
		<comments>http://blog.briandicroce.com/2008/03/24/part-ii-setting-up-our-build-server-with-teamcity/#comments</comments>
		<pubDate>Mon, 24 Mar 2008 18:39:20 +0000</pubDate>
		<dc:creator>Brian Di Croce</dc:creator>
		
		<category><![CDATA[Agile(TDD/XP/CI)]]></category>

		<guid isPermaLink="false">http://blog.briandicroce.com/2008/03/24/part-ii-setting-up-our-build-server-with-teamcity/</guid>
		<description><![CDATA[This is the second part of a series dedicated to Continuous Integration with .NET.&#160; In the first part we managed to install and configure a source control repository with Subversion.&#160; Now we&#8217;re going to learn how to install and configure TeamCity as our CI build server.&#160; At the moment of this writing, version 3.1 is [...]]]></description>
			<content:encoded><![CDATA[<p>This is the second part of <a href="http://blog.briandicroce.com/2008/03/17/setting-up-a-continuous-integration-environment-preface/"><strong>a series dedicated to Continuous Integration with .NET</strong></a>.&nbsp; In the <a href="http://blog.briandicroce.com/2008/03/19/part-i-beginning-the-ci-journey-with-subversion/">first part</a> we managed to install and configure a source control repository with Subversion.&nbsp; Now we&#8217;re going to learn how to install and configure <a href="http://www.jetbrains.com/teamcity/index.html">TeamCity</a> as our CI build server.&nbsp; At the moment of this writing, version 3.1 is the latest release version of TeamCity.&nbsp; I&#8217;ll make sure to update the present content to reflect new changes in installing and configuring future releases of the product if necessary.&nbsp; </p>
<p><strong>I recommend that TeamCity be installed in a separate (physical or virtual) machine than the one where Subversion is installed</strong> because if you need to update TeamCity, to apply a service pack to the operating system or to upgrade the .NET Framework, the machine will have to be restarted and this could cause some major productivity downtime to the team because the repository will be unavailable until the machine is back online.&nbsp; </p>
<p>A last note to consider before proceeding is that I&#8217;m also going to show you how to setup <a href="http://www.mysql.com/">MySQL</a> to act as the storage engine for TeamCity.&nbsp; You&#8217;ll be happy to know that configuring MySQL as the storage engine for TeamCity is much easier and simple to do in TeamCity v3.1 than in its previous versions.</p>
<p>If you&#8217;re already using a previous version of TeamCity and you want to upgrade to the current version, I strongly recommend you to read JetBrains&#8217; article on &#8220;<a href="http://www.jetbrains.net/confluence/display/TCD3/Migrating+to+an+External+Database#MigratingtoanExternalDatabase-FullMigrationinTeamCity3.1">Migrating to an External Database</a>&#8221; to know how to properly backup your current data before upgrading to a newer version.</p>
<p><strong>=&gt; Step1. </strong>Make sure that you have installed the <a href="http://msdn2.microsoft.com/en-us/netframework/aa569263.aspx">Microsoft .NET SDK</a> with the latest service packs in the machine where TeamCity will be installed.&nbsp; If necessary, install and configure Internet Information Services (IIS) too.</p>
<p><strong>=&gt; Step 2.</strong>&nbsp; <a href="http://www.jetbrains.com/teamcity/download/index.html">Download TeamCity from JetBrains&#8217; website</a>.&nbsp; <a href="http://blog.briandicroce.com/2008/03/04/teamcity-31-released/"><em>You can read this post for more information between both the Professional Edition and the Enterprise Edition</em></a>.</p>
<p><strong>=&gt; Step 3. </strong>Install TeamCity as you would install any typical Windows application (NEXT-&gt;NEXT-&gt;&#8230;-&gt;FINISH).&nbsp; Here are some tips that might assist you during the installation:</p>
<ul>
<li>Make sure you install both the <strong>Build Agent Windows Service</strong> and the <strong>TeamCity Server Windows Service</strong> (as shown in figure 1).&nbsp; The build agent is responsible to take a build script and running the necessary steps to perform a build.&nbsp; It&#8217;ll send the results back to the server.&nbsp; The server is going to notify you of the build results.&nbsp; As described in this <a href="http://blog.briandicroce.com/2008/03/17/setting-up-a-continuous-integration-environment-preface/">series&#8217; preface</a>, you can install multiple agents for one TeamCity server, but depending on the license you have, you might be limited to a number of agents a server can be attached to.&nbsp; Refer to TeamCity&#8217;s documentation for more information.</li>
</ul>
<p align="center"><strong>Figure 1.</strong> Install both the Build Agent Windows Service and the Server Windows Service <br /><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="391" alt="" src="http://blog.briandicroce.com/wp-content/uploads/2008/03/image57.png" width="503" border="0"> </p>
<ul>
<li>
<div align="left">Take note where the build server configuration has been installed (by default it is located under C:\Documents and Settings\Administrator\<strong>.BuildServer</strong>),&nbsp; I&#8217;ll refer to this location as the <strong>TeamCity data directory</strong>.</div>
<li>
<div align="left">Make sure you specify a server port that isn&#8217;t in conflict with another port.&nbsp; For instance, IIS uses port 80 by default, so you might not be able to use the same one unless you shut down IIS or change its default port.&nbsp; I tend to use port <strong>8080</strong> for TeamCity server (as shown in Figure 2).</div>
</li>
</ul>
<p align="center"><strong>Figure 2. </strong>Specify an available port for TeamCity server<br /><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="391" alt="" src="http://blog.briandicroce.com/wp-content/uploads/2008/03/image58.png" width="501" border="0"> </p>
<ul>
<li>
<div align="left">Feel free to take a snapshot of the next window (&#8221;Configure Build Agent Properties&#8221;) and save it somewhere for information purposes.&nbsp; After clicking on the &#8216;Save&#8217; button, the following window (&#8221;TeamCity Build Agent Properties&#8221;) will popup.&nbsp; Take note of the location where the build agent&#8217;s properties file will be saved at for future reference.</div>
</li>
</ul>
<p align="center"><strong>Figure 3.</strong> Build Agent&#8217;s Configuration window<br /><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="520" alt="" src="http://blog.briandicroce.com/wp-content/uploads/2008/03/image59.png" width="700" border="0">&nbsp;</p>
<ul>
<li>
<div align="left">Make sure you tell the installer to start the build agent and build server Windows services:</div>
</li>
</ul>
<p align="center"><strong>Figure 4.</strong> Start both the Build Agent service and the TeamCity Server service<br /><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="395" alt="" src="http://blog.briandicroce.com/wp-content/uploads/2008/03/image64.png" width="505" border="0"> </p>
<p align="left"><strong>=&gt; Step 4.</strong> Create a new system environment variable.&nbsp; The name of the variable should be <strong>TEAMCITY_HOME_DIR </strong>and its value should be the location where you have installed TeamCity (i.e., <strong>c:\TeamCity</strong>).&nbsp; Restart the machine at this point.</p>
<p align="left"><strong>=&gt; Step 5.</strong> Fire up a browser and connect to TeamCity (i.e., <strong>http://localhost:8080</strong>).&nbsp; Accept the EULA at the bottom of the screen and create a new administrator account.&nbsp; If you click on the <strong>Administration </strong>tab (upper right side of the screen), you&#8217;ll notice the following message:</p>
<p align="center">&nbsp;<img height="42" alt="" src="http://blog.briandicroce.com/wp-content/uploads/2008/03/image60.png" width="700" border="0"> </p>
<p align="left"><strong>=&gt; Step 6. </strong>In this step and the next one, we&#8217;re actually going to <strong>install and configure MySQL</strong> as a storage engine for TeamCity.&nbsp; The configuration settings should be appropriate for most situations.&nbsp; <strong>Feel free to configure MySQL as needed for your own business/technical purposes</strong>.</p>
<p align="left"><strong>=&gt; Step 6.1</strong>.&nbsp; Download MySQL Community Edition from the following URL: <a title="http://dev.mysql.com/downloads/mysql/?rz=gdl#downloads" href="http://dev.mysql.com/downloads/mysql/?rz=gdl#downloads">http://dev.mysql.com/downloads/mysql/?rz=gdl#downloads</a> (you don&#8217;t have to sign up in order to download MySQL.&nbsp; There&#8217;s actually a link underneath the registration page that says &#8220;No thanks, just take me to the downloads!&#8221;&#8230;They&#8217;re so polite.)&nbsp; In this article, I&#8217;m assuming you&#8217;re downloading the <strong>MySQL Essentials 5.0.51a</strong> Win32 installer.&nbsp; The following steps describe how I&#8217;ve configured MySQL to act as a storage engine for TeamCity.</p>
<p align="left"><strong>=&gt; Step 6.2. </strong>Click &#8216;Next&#8217; on the &#8216;Welcome&#8217; window</p>
<p align="left"><strong>=&gt; Step 6.3.</strong>&nbsp; Make sure you selected &#8216;<strong>Custom</strong>&#8216; as the setup type, then click on &#8216;Next&#8217;.</p>
<p align="left"><strong>=&gt; Step 6.4.</strong>&nbsp; Verify that both the <strong>MySQL Server</strong> and <strong>Client Programs</strong> will be installed.&nbsp; Click on &#8216;Next&#8217; to continue.</p>
<p align="left"><strong>=&gt; Step 6.5.</strong>&nbsp; Click on &#8216;Install&#8217; to continue with the installation.&nbsp; Feel free to surf the web (or my blog *hint*) while it&#8217;s installing&#8230;</p>
<p align="left"><strong>=&gt; Step 6.6.</strong>&nbsp; After finishing installing, you&#8217;ll see a bluish window with the MySQL/dolphin logo.&nbsp; Just click on &#8216;Next&#8217; until you see the &#8220;<strong>Configure the MySQL Server now</strong>&#8221; window.&nbsp; Click on &#8216;Finish&#8217;, then on &#8216;Next&#8217; to begin the configuration.</p>
<p align="left"><strong>=&gt; Step 6.7.</strong>&nbsp; Select the &#8216;<strong>Detailed Configuration</strong>&#8216; as the configuration type, then click on &#8216;Next&#8217;.</p>
<p align="left"><strong>=&gt; Step 6.8.</strong>&nbsp; Select the &#8216;<strong>Server Machine</strong>&#8216; as the server type, then click on &#8216;Next&#8217;.</p>
<p align="left"><strong>=&gt; Step 6.9.</strong>&nbsp; Select the &#8216;<strong>Transactional Database Only</strong>&#8216; as the database usage, then click on &#8216;Next&#8217;.</p>
<p align="left"><strong>=&gt; Step 6.10.</strong>&nbsp; Select a drive and directory where the InnoDB tablespace should be placed, then click on &#8216;Next&#8217;.&nbsp; In my case, I simply decided to install it under &#8216;<strong>c:\MySQL InnoDB Datafiles\</strong>&#8216;.</p>
<p align="left"><strong>=&gt; Step 6.11.</strong>&nbsp; Select the &#8216;<strong>Decision Support (DSS)/OLAP</strong>&#8216; as the concurrent connections setting, then click on &#8216;Next&#8217;.</p>
<p align="left"><strong>=&gt; Step 6.12.</strong>&nbsp; Select the &#8216;<strong>Enable TCP/IP Networking</strong>&#8216; option and specify the port number.&nbsp; I kept the default <strong>3306</strong> port.&nbsp; Make sure to tick the &#8220;<strong>Add firewall exception for this port</strong>&#8220;<strong> </strong>checkbox and also select the &#8216;<strong>Enable Strict Mode</strong>&#8216; as the SQL mode.&nbsp; Then click on &#8216;Next&#8217;.</p>
<p align="left"><strong>=&gt; Step 6.13.</strong>&nbsp; Select the &#8216;<strong>Best Support For Multilingualism</strong>&#8216; as the default character set (UTF8), then click on &#8216;Next&#8217;.</p>
<p align="left"><strong>=&gt; Step 6.14.</strong> Select &#8216;<strong>Install As Windows Service</strong>&#8216;, provide a service name (I left the one provided by default), select &#8216;<strong>Launch the MySQL Server automatically</strong>&#8216; and also select &#8216;<strong>Include Bin Directory in Windows PATH</strong>&#8216;.&nbsp; Click on &#8216;Next&#8217; to continue.</p>
<p align="left"><strong>=&gt; Step 6.15.</strong>&nbsp; Type a password for the <strong>root</strong> account.&nbsp; Don&#8217;t allow root access from a remote machine on this account.&nbsp; You don&#8217;t need to create an anonymous account.&nbsp; Remember your password as you will need to enter it later.&nbsp; Click on &#8216;Next&#8217; to continue.</p>
<p align="left"><strong>=&gt; Step 6.16.</strong>&nbsp; Click on &#8216;Execute&#8217; to start the configuration.&nbsp; Once the configuration has completed, click on &#8216;Finish&#8217;.</p>
<p align="left"><strong>=&gt; Step 6.17.</strong>&nbsp; Take a break&#8230;seriously&#8230;surf the Web, drink some coffee, go to the bathroom&#8230;We&#8217;re almost done.&nbsp; The next steps are about configuring MySQL to act as the storage engine for TeamCity.</p>
<p align="left"><strong>=&gt; Step 7.</strong>&nbsp; Ok, now we&#8217;re done with installing and configuring MySQL.&nbsp; It&#8217;s time to configure the MySQL as the storage engine for TeamCity.&nbsp; </p>
<p align="left"><strong>=&gt; Step 7.1. Shut down (stop) the TeamCity server Windows service</strong>.&nbsp; You can do this via the Service Controller command or the Windows Services window.&nbsp; The name of the service should be <strong>TeamCity</strong>.</p>
<p align="left"><strong>=&gt;&nbsp; Step 7.2. </strong>Download the MySQL JDBC driver (ZIP) from the following URL: <a href="http://dev.mysql.com/downloads/connector/j/">http://dev.mysql.com/downloads/connector/j/</a> and extract the JAR file (mysql-connector-java-5.1.6-bin.jar) to &lt;TeamCity home&gt;\<strong>webapps\ROOT\WEB-INF\lib</strong>.&nbsp; In my case, this would be C:\TeamCity\<strong>webapps\ROOT\WEB-INF\lib</strong>.</p>
<p align="left"><strong>=&gt; Step 7.3.</strong>&nbsp; Now we&#8217;re going to create a database that will be used by TeamCity for storing various data (feel free to refer to the following URL to set up an external database with MySQL: <a title="http://www.jetbrains.net/confluence/display/TCD3/Setting+up+an+External+Database#SettingupanExternalDatabase-settingUpMySql" href="http://www.jetbrains.net/confluence/display/TCD3/Setting+up+an+External+Database#SettingupanExternalDatabase-settingUpMySql">http://www.jetbrains.net/confluence/display/TCD3/Setting+up+an+External+Database#SettingupanExternalDatabase-settingUpMySql</a>)</p>
<p align="left"><strong>=&gt; Step 7.4.</strong>&nbsp; Fire up a <strong>MySQL Command Line Client </strong>(Start menu -&gt; All Programs -&gt; MySQL -&gt; MySQL Server 5.0), type in the root password from Step 6.15 and hit Enter to continue.</p>
<p align="left"><strong>=&gt; Step 7.5.</strong> Type the following command to create the database:</p>
<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#afc7c7" border="1">
<tbody>
<tr>
<td valign="top" width="100%"><strong>
<pre>CREATE DATABASE TeamCityDB DEFAULT CHARACTER SET utf8;</pre>
<p></strong></td>
</tr>
</tbody>
</table>
<p>and then hit Enter to execute the command.&nbsp; You have now created a database named <strong>TeamCityDB</strong> which will be used by TeamCity. <strong>DO NOT CREATE ANY TABLES AT THIS POINT!</strong> </p>
<p align="left"><strong>=&gt; Step 7.6.</strong>&nbsp; If you don&#8217;t want the root account to control the TeamCityDB database, feel free to create a user and grant that user the necessary permissions to modify the database.&nbsp; See MySQL&#8217;s documentation for more information on how to create database users.</p>
<p align="left"><strong>=&gt; Step 7.7.</strong>&nbsp; In the TeamCity data directory (i.e., C:\Documents and Settings\Brian\<strong>.BuildServer\config</strong>) rename <strong>database.mysql.properties</strong> file to <strong>database.properties</strong> and specify the required settings in this file: </p>
<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#afc7c7" border="1">
<tbody>
<tr>
<td valign="top" width="100%"><strong>
<pre>connectionUrl=jdbc:mysql://&lt;host&gt;/&lt;database name&gt;
connectionProperties.user=&lt;user&gt;
connectionProperties.password=&lt;password&gt;</pre>
<p></strong></td>
</tr>
</tbody>
</table>
<p align="left">In our case, the &lt;host&gt; is the name of the machine where MySQL is installed, i.e. <em>localhost</em>.&nbsp; Since MySQL will only be used by TeamCity, I didn&#8217;t bother creating a dedicated user.&nbsp; Therefore, I&#8217;m using the root&#8217;s account as the database user for TeamCityDB.&nbsp; This might not be appropriate for your situation.&nbsp; Figure 5 shows you what I&#8217;ve entered for that section:</p>
<p align="center"><strong>Figure 5.</strong> Fill in the necessary information for the MySQL database (database.properties)<br /><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="253" alt="" src="http://blog.briandicroce.com/wp-content/uploads/2008/03/image62.png" width="618" border="0"> </p>
<p align="left"><strong>=&gt; Step 7.8.</strong>&nbsp; Edit the &lt;TeamCity home&gt;\bin\<strong>dbMigration.properties</strong> file, entering correct values for the source and target database. Ensure all the properties are supplied and only the necessary lines are uncommented (single-line comments are designated by # character).&nbsp; The following figure shows you what needs to be modified in the red boxes (the second red box should have the same values as entered in Step 7.7):</p>
<p align="center"><strong>Figure 6.</strong> Fill in the necessary data in the dbMigration.properties file<br /><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="533" alt="" src="http://blog.briandicroce.com/wp-content/uploads/2008/03/image63.png" width="704" border="0"> </p>
<p align="left"><strong>=&gt; Step 7.9. </strong>Cool! Now we&#8217;re ready to run the migration tool.&nbsp; FYI, configuring MySQL to act as the storage engine for TeamCity is so much easier to do in this version of TeamCity (v3.1) than the previous versions.&nbsp; All you have to do is execute the following command in a DOS command prompt (make sure the current directory is <strong>&lt;TeamCity home&gt;\bin</strong>) and the tool will take care of the rest&#8230;I love it!</p>
<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#afc7c7" border="1">
<tbody>
<tr>
<td valign="top" width="100%"><strong>
<pre>c:\TeamCity\bin\migrateDB.bat migrate</pre>
<p></strong></td>
</tr>
</tbody>
</table>
<p align="left">You&#8217;ll have to specify the TeamCity data directory.&nbsp; If you hit Enter, the tool will use the shown directory as its value. The migration tool really simplifies our lives for configuring MySQL with TeamCity.&nbsp; Excellent job, JetBrains!&nbsp; The following figure shows you the output of the operation.</p>
<p align="center"><strong>Figure 7.</strong> This is the output generated after running the migration tool<br /><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="763" alt="" src="http://blog.briandicroce.com/wp-content/uploads/2008/03/image65.png" width="711" border="0"> </p>
<p align="left"><strong>=&gt; Step 7.10.</strong>&nbsp; You&#8217;re done!&nbsp; Start the TeamCity server Windows service and log in your TeamCity account.&nbsp; </p>
<p align="left">In this article, I have presented the necessary steps to install TeamCity as a CI build server and install/configure MySQL to act as the storage engine for TeamCity.&nbsp; In the next, we&#8217;ll actually get our hands dirty and integrate a .NET application with a few build configurations.&nbsp; Stay tuned!</p>
<p align="left">By the way, if your curious to know, the output generated in Figure 7 shows you ALL the tables created in the TeamCityDB database.&nbsp; For instance, if you do a <strong>SELECT * FROM users;</strong> on the <strong>TeamCityDB</strong>, you will get all the TeamCity user accounts with their passwords in clear text (as shown in Figure 8)!&nbsp; This is a major security flaw since passwords should be encrypted in some way&#8230;else what&#8217;s the use?&nbsp; I hope that JetBrains will fix this issue someday.</p>
<p align="center"><strong>Figure 8.</strong> You can clearly see the Administrator&#8217;s password &#8216;admin&#8217; in clear text in the &#8216;users&#8217; table<br /><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="292" alt="" src="http://blog.briandicroce.com/wp-content/uploads/2008/03/image66.png" width="913" border="0"></p>
<p>
My name is Brian Di Croce, a passionate software developer living, coding, blogging and working in Montreal, Canada.  Feel free to visit my <a href="http://www.briandicroce.com">website/blog</a> for more great content related to software development with .NET! &copy;2007-2008</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandicroce.com/2008/03/24/part-ii-setting-up-our-build-server-with-teamcity/feed/</wfw:commentRss>
		</item>
		<item>
		<title>My Visual Studio 2008/Resharper Theme</title>
		<link>http://blog.briandicroce.com/2008/03/22/my-visual-studio-2008resharper-theme/</link>
		<comments>http://blog.briandicroce.com/2008/03/22/my-visual-studio-2008resharper-theme/#comments</comments>
		<pubDate>Sat, 22 Mar 2008 23:24:19 +0000</pubDate>
		<dc:creator>Brian Di Croce</dc:creator>
		
		<category><![CDATA[.NET/C# Programming]]></category>

		<guid isPermaLink="false">http://blog.briandicroce.com/2008/03/22/my-visual-studio-2008resharper-theme/</guid>
		<description><![CDATA[A while back, Scott Hanselman published a post on &#8220;Visual Studio Programmer Themes Gallery&#8220;.&#160; It never occurred to me the idea that maybe a darker scheme could be better for my eyes.&#160; That same afternoon, I started to play with some fonts and colors, and came up with the following scheme.&#160; This Visual Studio theme [...]]]></description>
			<content:encoded><![CDATA[<p align="left">A while back, <a href="http://www.hanselman.com/blog">Scott Hanselman</a> published a post on &#8220;<a href="http://www.hanselman.com/blog/VisualStudioProgrammerThemesGallery.aspx">Visual Studio Programmer Themes Gallery</a>&#8220;.&nbsp; It never occurred to me the idea that maybe a darker scheme could be better for my eyes.&nbsp; That same afternoon, I started to play with some fonts and colors, and came up with the following scheme.&nbsp; This Visual Studio theme is highly inspired from <a href="http://www.iunknown.com/">John Lam</a>&#8217;s elegant &#8220;<a href="http://www.iunknown.com/2007/06/vibrant_ink_vis.html">Vibrant Ink Port</a>&#8221; and the <a href="http://www.jetbrains.com/resharper/">Resharper</a> style is based on my own Canadian taste.&nbsp; Actually, if you don&#8217;t have Resharper installed, the fallback theme will be a slightly modified version of the &#8220;Vibrant Ink Port&#8221; scheme.</p>
<p align="left"><a href="http://www.briandicroce.com/_public/BrianDiCroce-VS2008-FontColors.zip"><strong>Click here to download this Visual Studio 2008/Resharper theme</strong></a>.&nbsp; I have only exported the &#8220;<strong>Font And Colors</strong>&#8221; options so that you can still keep your other settings. If you&#8217;re using Visual Studio 2005, edit the file with your favourite XML editor and change the ApplicationIdentity&#8217;s version to <strong>8.0</strong>.</p>
<p align="center"><strong>Figure 1</strong>. A sample of C# code&#8217;s &#8220;look and feel&#8221; with the theme.<br /><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="535" alt="" src="http://blog.briandicroce.com/wp-content/uploads/2008/03/image67.png" width="706" border="0"> </p>
<p align="center"><strong>Figure 2</strong>. A sample of XAML code&#8217;s &#8220;look and feel&#8221; with the theme. <br /><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="400" alt="" src="http://blog.briandicroce.com/wp-content/uploads/2008/03/image68.png" width="647" border="0"> </p>
<p align="left"><strong>To import the settings, follow these simple steps:</strong></p>
<ol>
<li>
<div align="left">Launch Visual Studio 2005/2008</div>
</li>
<li>
<div align="left">Go to <strong>Tools -&gt; Import and Export Settings&#8230;</strong></div>
</li>
<li>
<div align="left">Click on &#8220;<strong>Import selected environment settings</strong>&#8220;, then click on <strong>Next</strong></div>
</li>
<li>
<div align="left">Backup your current settings if you want then click on <strong>Next</strong></div>
</li>
<li>
<div align="left">Click on the <strong>Browse&#8230;</strong> button, select the vssettings file, then click on <strong>Open</strong></div>
</li>
<li>
<div align="left">Finally, click on <strong>Finish</strong> to activate the scheme</div>
</li>
</ol>
<p>
My name is Brian Di Croce, a passionate software developer living, coding, blogging and working in Montreal, Canada.  Feel free to visit my <a href="http://www.briandicroce.com">website/blog</a> for more great content related to software development with .NET! &copy;2007-2008</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandicroce.com/2008/03/22/my-visual-studio-2008resharper-theme/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Jay Flowers on Continuous Integration (MSDN Magazine - March 2008)</title>
		<link>http://blog.briandicroce.com/2008/03/20/jay-flowers-on-continuous-integration-msdn-magazine-march-2008/</link>
		<comments>http://blog.briandicroce.com/2008/03/20/jay-flowers-on-continuous-integration-msdn-magazine-march-2008/#comments</comments>
		<pubDate>Fri, 21 Mar 2008 03:00:36 +0000</pubDate>
		<dc:creator>Brian Di Croce</dc:creator>
		
		<category><![CDATA[Agile(TDD/XP/CI)]]></category>

		<guid isPermaLink="false">http://blog.briandicroce.com/2008/03/20/jay-flowers-on-continuous-integration-msdn-magazine-march-2008/</guid>
		<description><![CDATA[Wow! Continuous Integration sure seems to be the flavour of the month this year!&#160; I just finished reading a very insightful article on setting up a CI environment by Jay Flowers, creator of CI Factory, on the March 2008 edition of MSDN Magazine.&#160; He took good care to discuss the basics practices and key principles [...]]]></description>
			<content:encoded><![CDATA[<p>Wow! <strong>Continuous Integration</strong> sure seems to be the flavour of the month this year!&nbsp; I just finished reading a <a href="http://msdn2.microsoft.com/en-ca/magazine/cc337886.aspx"><strong>very insightful article on setting up a CI environment</strong></a> by <a href="http://jayflowers.com/joomla/">Jay Flowers</a>, creator of <a href="http://www.cifactory.org/joomla/">CI Factory</a>, on the March 2008 edition of <a href="http://msdn2.microsoft.com/en-ca/magazine/default.aspx">MSDN Magazine</a>.&nbsp; He took good care to discuss the basics practices and key principles behind CI independently of the build server.&nbsp; Without going too much into the details of the article, Jay discusses how to setup a CI environment with <strong>MSBuild</strong>, <strong>mbUnit</strong>, <strong>WatiN</strong> and <strong>CC.NET</strong>, as well as his own creation: <strong>CI Factory</strong>.&nbsp; </p>
<p>I&#8217;ll be using a different approach for <a href="http://blog.briandicroce.com/2008/03/17/setting-up-a-continuous-integration-environment-preface/">my series on Continuous Integration</a>, but needless to say that the same principles Jay wrote about in the article will be reiterated in the following weeks.&nbsp; No doubt that Jay&#8217;s article will give you more than a few key ideas to consider for your actual or next CI project.</p>
<p>
My name is Brian Di Croce, a passionate software developer living, coding, blogging and working in Montreal, Canada.  Feel free to visit my <a href="http://www.briandicroce.com">website/blog</a> for more great content related to software development with .NET! &copy;2007-2008</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandicroce.com/2008/03/20/jay-flowers-on-continuous-integration-msdn-magazine-march-2008/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Part I: Beginning the CI Journey with Subversion</title>
		<link>http://blog.briandicroce.com/2008/03/19/part-i-beginning-the-ci-journey-with-subversion/</link>
		<comments>http://blog.briandicroce.com/2008/03/19/part-i-beginning-the-ci-journey-with-subversion/#comments</comments>
		<pubDate>Wed, 19 Mar 2008 18:52:29 +0000</pubDate>
		<dc:creator>Brian Di Croce</dc:creator>
		
		<category><![CDATA[Agile(TDD/XP/CI)]]></category>

		<guid isPermaLink="false">http://blog.briandicroce.com/2008/03/19/part-i-beginning-the-ci-journey-with-subversion/</guid>
		<description><![CDATA[&#60;UPDATE&#62;2008-03-20: As noted by Stefan, we don&#8217;t need to check the &#8220;Use &#8216;_svn&#8217; instead of &#8216;.svn&#8217; directories&#8221; checkbox of TortoiseSVN&#8217;s settings if you&#8217;re using Visual Studio 2005 or Visual Studio 2008.&#60;/UPDATE&#62;
 In this section, I&#8217;m going to describe how to properly install and configure Subversion in Windows.&#160; At the moment of writing this post, the [...]]]></description>
			<content:encoded><![CDATA[<p><strong>&lt;UPDATE&gt;</strong><u>2008-03-20</u>: As noted by Stefan, we don&#8217;t need to check the &#8220;<strong>Use &#8216;<em>_svn&#8217; instead of &#8216;.svn&#8217; directories</em></strong>&#8221; checkbox of TortoiseSVN&#8217;s settings if you&#8217;re using Visual Studio 2005 or Visual Studio 2008.<strong>&lt;/UPDATE&gt;</strong></p>
<p><img style="margin: 0px 0px 5px 5px" height="216" alt="image" src="http://blog.briandicroce.com/wp-content/uploads/2008/03/image51.png" width="250" align="right" border="0"> In this section, I&#8217;m going to describe how to properly install and configure <a href="http://subversion.tigris.org/">Subversion</a> in Windows.&nbsp; At the moment of writing this post, the latest version of Subversion is 1.4.6.&nbsp; I&#8217;ll do my best to update this post to reflect the latest version of the tool in the future.</p>
<p>My strategy for Subversion is to install it in a dedicated machine.&nbsp; It&#8217;s recommended for Subversion to be independent of the build integration server, so that if you must update and restart the integration server, the developers will still be able to access the repository.</p>
<p><strong>=&gt; Step 1</strong>. Make sure that the host operating system where you&#8217;re going to install Subversion is running at a minimum Windows XP SP2, Windows Server 2003 or Windows Vista. </p>
<p><strong>=&gt; </strong><strong>Step 2.</strong> Download the Subversion installation file svn-1.4.x-setup.exe (Win32 binaries) or svn-1.4.x-setup.zip file from the following URL: <a title="http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91" href="http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91">http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91</a><strong>.&nbsp; </strong>The Win32 binaries executable file is your typical Windows software installation process (Next-&gt;Next-&gt;Finish).&nbsp; If you&#8217;re downloading the ZIP file, just extract its content somewhere in your drive, such as in c:\Program Files\Subversion.&nbsp; At this point, you&#8217;re just installing Subversion.&nbsp; You&#8217;ll create a source repository at step 5.</p>
<p><strong>=&gt; </strong><strong>Step 3.</strong> Verify that the path to the Subversion <strong>bin</strong> directory is present in the <strong>%PATH%</strong> environment.&nbsp; If that&#8217;s not the case or if you have extracted the executable files from the ZIP file, make sure to add it manually before continuing.&nbsp; For instance, if you have installed Subversion under c:\Program File\Subversion, then make sure to append the <strong>c:\Program Files\Subversion\bin</strong> path to the %PATH% environment.&nbsp; Do not reboot the system yet, because there&#8217;s still another environment variable to add in the next step. </p>
<p><strong>=&gt; </strong><strong>Step 4</strong>. Add the <strong>SVN_EDITOR </strong>environment variable.&nbsp; This is required so that Subversion can launch an external text editor whenever necessary in order to edit some data associated to a repository.&nbsp; The value for this environment variable must be the full path to your favorite text editor.&nbsp; For example, if Notepad is your primary text editor (as Seinfeld would say, <em>not that there&#8217;s anything wrong with that</em>), the <strong>SVN_EDITOR</strong> environment variable should have its value set to <strong>c:\windows\notepad.exe</strong>.&nbsp; You may now reboot the machine if necessary.</p>
<p><strong>=&gt; </strong><strong>Step 5</strong>. Create a source repository for your development projects.&nbsp; I recommend starting with one repository for all your projects and then scale or change your strategy as you get more comfortable with the tool.&nbsp; <strong>The following steps will guide you in creating a Subversion repository</strong>.</p>
<p><strong>=&gt; </strong><strong>Step 5.1.</strong>&nbsp; Launch a DOS command prompt window. </p>
<p><strong>=&gt; </strong><strong>Step 5.2</strong>.&nbsp; Type the following command which will create a new repository using FSFS as the default file system of the repository (you can read more about that file system in <a href="http://svnbook.red-bean.com/en/1.4/svn-book.pdf">Subversion&#8217;s documentation</a>, which is by far the best documentation for an open source project): </p>
<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#afc7c7" border="1">
<tbody>
<tr>
<td valign="top" width="498"><strong>
<pre>svnadmin create "&lt;<em>repository path</em>&gt;&#8221;<em> </em></pre>
<p></strong></td>
</tr>
</tbody>
</table>
<p>where <em><strong>&lt;repository path&gt;</strong></em> is the location where you would like to create the repository.&nbsp; For instance, if I want to create the repository in <strong>d:\repository</strong>, then I will type the following command: </p>
<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#afc7c7" border="1">
<tbody>
<tr>
<td valign="top" width="100%"><strong>
<pre>svnadmin create "d:\repository"</pre>
<p></strong></td>
</tr>
</tbody>
</table>
<p>The <strong>svnadmin </strong>command tool will create the directory if it doesn&#8217;t exist. <strong>The quotes are necessary if the pathname contains spaces</strong>. </p>
<p><strong>=&gt; </strong><strong>Step 5.3</strong>.&nbsp; Go to the repository&#8217;s path and edit the <strong>svnserve.conf </strong>file under the <strong>conf </strong>directory. </p>
<p><strong>=&gt; </strong><strong>Step 5.4</strong>.&nbsp; Uncomment the following lines under the <strong>[general] </strong>section of the file to setup the default security permissions (you can also read more about Subversion&#8217;s security permissions and mechanisms in its documentation)</p>
<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#afc7c7" border="1">
<tbody>
<tr>
<td valign="top" width="100%"><strong>
<pre>[general]
anon-access=read
auth-access=write
password-db=passwd</pre>
<p></strong></td>
</tr>
</tbody>
</table>
<p><strong><br />=&gt; </strong><strong>Step 5.5</strong>.&nbsp; Save and close the <strong>serve.conf </strong>file when done editing the file. </p>
<p><strong>=&gt; </strong><strong>Step 5.6</strong>.&nbsp; Under the same <strong>conf </strong>directory, edit the <strong>passwd </strong>file and modify it to include the user accounts and passwords for each team member who will have access to the repository.&nbsp; The format is that of a <strong>key-value pair</strong>.&nbsp; The key corresponds to the username, and the value corresponds to the user&#8217;s password.&nbsp; The password is in clear text which pretty much sucks, but if you really need password discretion, I suggest you look into a <a href="http://www.teuton.org/~ejm/svnpasswd/">tool like this one</a>.</p>
<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#afc7c7" border="1">
<tbody>
<tr>
<td valign="top" width="100%"><strong>
<pre>[users]
alice=alice-passwd
bob=bob-passwd
charlie=charlie-passwd</pre>
<p></strong></td>
</tr>
</tbody>
</table>
<p><strong>IMPORTANT: </strong>Also, add a TeamCity account so that it&#8217;ll have access to the repository.</p>
<p><strong>=&gt; </strong><strong>Step 5.7</strong>.&nbsp; Verify the repository&#8217;s integrity by typing the following command:</p>
<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#afc7c7" border="1">
<tbody>
<tr>
<td valign="top" width="100%"><strong>
<pre>svnadmin verify "<em>&lt;repository path&gt;</em>&#8220;</strong>.&nbsp; In our case, we&#8217;ll type <strong>svnadmin verify &#8220;d:\repository&#8221;</pre>
<p></strong></td>
</tr>
</tbody>
</table>
<p><strong><br />=&gt; </strong><strong>Step 6</strong>. Create a Windows service to automatically start the Subversion server (<strong>svnserve.exe</strong>) whenever the host operating system starts.&nbsp; Type the following command to create the Windows service:</p>
<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#afc7c7" border="1">
<tbody>
<tr>
<td valign="top" width="100%"><strong>
<pre>sc create svnserve binpath= "\"c:\Program Files\Subversion\bin\svnserve.exe\" --service -r &lt;<em>repository path&gt;&#8221; </em>displayname= &#8220;Subversion Server&#8221; depend= Tcpip start= auto</pre>
<p></strong></td>
</tr>
</tbody>
</table>
<p>In our case, <strong>&lt;repository path&gt; </strong>will be the repository path created in step 5.2 (d:\repository).&nbsp; Be sure not to forget the quotes if your repository pathname has some spaces.&nbsp; <strong>It is also important to note that there is a space between the SC command property and its value!</strong> </p>
<p><strong>=&gt; </strong><strong>Step 7</strong>. Start the Windows service by executing the following command:</p>
<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#afc7c7" border="1">
<tbody>
<tr>
<td valign="top" width="100%"><strong>
<pre>net start svnserve</pre>
<p></strong></td>
</tr>
</tbody>
</table>
<p>In the same manner, you may stop the service by executing the following command:</p>
<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#afc7c7" border="1">
<tbody>
<tr>
<td valign="top" width="100%"><strong>
<pre>net stop svnserve</pre>
<p></strong></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#f9966b" border="1">
<tbody>
<tr>
<td valign="top" width="100%">
<ul>
<li>More information about starting, stopping, pausing, resuming and restarting a service can be found at the following URL: <a href="http://technet2.microsoft.com/windowsserver/en/library/03928250-2796-4253-8fb1-b25329ddf35f1033.mspx?mfr=true"><strong>http://technet2.microsoft.com/windowsserver/en/library/03928250-2796-4253-8fb1-b25329ddf35f1033.mspx?mfr=true</strong></a><strong> </strong>
<li>More information about the ServiceController (SC.exe) command can be found at the following URL: <a href="http://support.microsoft.com/kb/251192"><strong>http://support.microsoft.com/kb/251192</strong></a></li>
</ul>
</td>
</tr>
</tbody>
</table>
<p>Before we continue with installing TeamCity, it is important to start planning your backup strategy for the repository.&nbsp; I&#8217;ll leave that strategy to you.&nbsp; The following command can be executed as a CRON job or as a Windows scheduled task to backup your repository:</p>
<table cellspacing="0" cellpadding="5" width="100%" bgcolor="#afc7c7" border="1">
<tbody>
<tr>
<td valign="top" width="100%">
<p><b>
<pre>svnadmin hotcopy "&lt;<em>repository path</em>&gt;&#8221; &#8220;&lt;<em>target path</em>&gt;&#8221; &#8211;clean-logs</pre>
<p></b></p>
</td>
</tr>
</tbody>
</table>
<p>Then <strong>backup</strong> the &lt;target path&gt; somewhere place in case of an emergency.</p>
<p>Finally, each developer should install a Subversion client in order to easily access the repository within Windows Explorer and Visual Studio 2005/2008.&nbsp; I recommend using <a href="http://tortoisesvn.tigris.org/"><strong>TortoiseSVN</strong></a> because it integrates quite nicely with Windows Explorer and its documentation is very excellent.&nbsp; As for Visual Studio, I recommend using either <a href="http://ankhsvn.open.collab.net/"><strong>AnkhSVN</strong></a> (open source) or <a href="http://www.visualsvn.com/"><strong>VisualSVN</strong></a> (commercial).&nbsp; Concerning TortoiseSVN, make sure to check the checkbox &#8220;<em>Use &#8216;_svn&#8217; instead of &#8216;.svn&#8217; directories</em><strong>&#8221; </strong>if you&#8217;re using Visual Studio .NET 2002/2003.&nbsp; You&#8217;ll need to restart the machine to apply the changes.&nbsp; The reason we need to check that option is because Visual Studio .NET 2002/2003 seems to have some issues with folders that start with a period.&nbsp; <strong>This issue doesn&#8217;t apply if you&#8217;re using Visual Studio 2005/2008</strong>.</p>
<p>&nbsp;</p>
<p><center></p>
<p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="465" alt="" src="http://blog.briandicroce.com/wp-content/uploads/2008/03/image52.png" width="663" border="0"> </p>
<p></center>
<p>
My name is Brian Di Croce, a passionate software developer living, coding, blogging and working in Montreal, Canada.  Feel free to visit my <a href="http://www.briandicroce.com">website/blog</a> for more great content related to software development with .NET! &copy;2007-2008</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandicroce.com/2008/03/19/part-i-beginning-the-ci-journey-with-subversion/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New Page Available for .NET Positions in Montreal</title>
		<link>http://blog.briandicroce.com/2008/03/19/new-page-available-for-net-positions-in-montreal/</link>
		<comments>http://blog.briandicroce.com/2008/03/19/new-page-available-for-net-positions-in-montreal/#comments</comments>
		<pubDate>Wed, 19 Mar 2008 15:27:52 +0000</pubDate>
		<dc:creator>Brian Di Croce</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blog.briandicroce.com/2008/03/19/new-page-available-for-net-positions-in-montreal/</guid>
		<description><![CDATA[I&#8217;ve inserted a new page since this morning.&#160; It&#8217;s called .NET Jobs in Montreal.&#160; So if you&#8217;re looking for a potential great career as a .NET developer in Montreal, feel free to visit that page and contact the recruiters directly.&#160; Good luck!

My name is Brian Di Croce, a passionate software developer living, coding, blogging and [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve inserted a new page since this morning.&nbsp; It&#8217;s called <a href="http://blog.briandicroce.com/net-jobs-in-montreal/">.NET Jobs in Montreal</a>.&nbsp; So if you&#8217;re looking for a potential great career as a .NET developer in Montreal, feel free to visit that page and contact the recruiters directly.&nbsp; Good luck!</p>
<p>
My name is Brian Di Croce, a passionate software developer living, coding, blogging and working in Montreal, Canada.  Feel free to visit my <a href="http://www.briandicroce.com">website/blog</a> for more great content related to software development with .NET! &copy;2007-2008</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandicroce.com/2008/03/19/new-page-available-for-net-positions-in-montreal/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Book Review #7: &#34;The Dip: A Little Book That Teaches You When to Quit (and When to Stick)&#34;</title>
		<link>http://blog.briandicroce.com/2008/03/18/book-review-7-the-dip-a-little-book-that-teaches-you-when-to-quit-and-when-to-stick/</link>
		<comments>http://blog.briandicroce.com/2008/03/18/book-review-7-the-dip-a-little-book-that-teaches-you-when-to-quit-and-when-to-stick/#comments</comments>
		<pubDate>Tue, 18 Mar 2008 16:52:00 +0000</pubDate>
		<dc:creator>Brian Di Croce</dc:creator>
		
		<category><![CDATA[Book Reviews]]></category>

		<guid isPermaLink="false">http://blog.briandicroce.com/2008/03/18/book-review-7-the-dip-a-little-book-that-teaches-you-when-to-quit-and-when-to-stick/</guid>
		<description><![CDATA[What a great joy I had reading, this morning on my way to church, &#8220;The Dip: A Little Book That Teaches You When to Quit (and When to Stick)&#8220;, an 80-pages book written by prolific blogger and marketing guru Seth Godin.&#160; The author has an unique writing style that I enjoy very much because he [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/exec/obidos/ASIN/1591841666/ref=nosim/brdicr-20"><img style="margin: 0px 0px 5px 5px" height="216" alt="Barnes&nbsp;&amp;&nbsp;Noble.com - Books_ The Dip, by Seth Godin, Hardcover.jpg" src="http://blog.guykawasaki.com//Barnes%C2%A0&amp;%C2%A0Noble.com%20-%20Books_%20The%20Dip,%20by%20Seth%20Godin,%20Hardcover.jpg" width="155" align="right" border="0"></a>What a great joy I had reading, this morning on my way to church, &#8220;<a href="http://www.amazon.com/exec/obidos/ASIN/1591841666/ref=nosim/brdicr-20"><strong>The Dip: A Little Book That Teaches You When to Quit (and When to Stick)</strong></a>&#8220;, an 80-pages book written by prolific blogger and marketing guru <a href="http://sethgodin.typepad.com/">Seth Godin</a>.&nbsp; The author has an unique writing style that I enjoy very much because he delivers his message in many ways by using simple terms, concrete examples, proven facts, and sound statistics.&nbsp; In a nutshell, the basic idea of his book is that whether you aspire to succeed in your personal and professional life (who doesn&#8217;t?), or whether you want to be the best in the world at what you do (<em>you</em> being yourself, your team, your company, etc.) or whether you want to achieve your goals on time, you should accept this little fact: <strong>sometimes quitting is a winning strategy</strong>.&nbsp; That being said,<strong> it&#8217;s more important to know <em>what</em> to quit, <em>when </em>to quit, <em>why</em> to quit and <em>how</em> to quit something </strong>(a relationship, a job, a project, an education, etc.).&nbsp; The author does a great job at describing sound strategies you can choose whenever you&#8217;re in that moment in life and need to take proper action: <em>should I continue or should I stop?</em>&nbsp; In software development, we are more often than not forced to make this kind of decision:</p>
<ul>
<li>Should we continue using this process to build our software?&nbsp; Or should we perhaps stop and decide to change it or replace it because it&#8217;s not getting us very far?&nbsp; And what if we&#8217;re in the middle of an iteration?</li>
<li>Should we continue developing this application?&nbsp; Or should we perhaps stop and decide to buy one from a third party?</li>
<li>Should we continue putting our resources in the development of this feature?&nbsp; Or should we perhaps cancel this feature and concentrate our resources on other more important features?</li>
<li>Should we continue with this process improvement methodology or should we stop and rethink our strategy?</li>
</ul>
<p>I could go on and on&#8230;</p>
<p><strong>So what exactly is this &#8216;Dip&#8217;</strong>?&nbsp; As it is written in the book&#8217;s back cover:</p>
<blockquote><p><em>It&#8217;s the fifth job interview where they never even call you back.</em></p>
<p><em>It&#8217;s the garage band playing to an empty club in the middle of nowhere.</em></p>
<p><em>It&#8217;s the seventh time you fall on your butt while learning to snowboard.</em></p>
<p><em>It&#8217;s the middle of the marathon, when the excitement of the starting gun is a dim memory, and the joy of the finish line is a distant dream.</em></p>
<p><em>It&#8217;s any rough patch you have to get through before achieving your big goal&#8230;if in fact you&#8217;re chasing the right goal.</em></p>
<p><em>What else?</em></p>
<p><em>Oh yeah, it&#8217;s also the key to your career, your company&#8217;s future, and maybe your ultimate happiness.</em></p>
</blockquote>
<p>I&#8217;m often in situations where I need to ask myself this same question when developing software.&nbsp; For example, should I continue building my application with the initial design or should I pause for a moment and perhaps modify the initial design to reflect some changes?&nbsp; Should I really invest my time in learning this new tool, this new technology or this new language?&nbsp; Should I continue working on this open source project that I started a year ago?&nbsp; Should I invest in this hardware to support my software?&nbsp; Why? Why not?&nbsp;&nbsp; <strong>There&#8217;s always a tradeoff when you take a decision.&nbsp; Knowing what the tradeoffs are and knowing what strategies you have at your disposal is essential to adapt to the situation and successfully reach your goals.&nbsp; </strong></p>
<p>I strongly encourage software developers to extend their knowledge beyond &#8216;just software&#8217;.&nbsp; See what you can learn from other cultures, leadership, team work, continuous self-improvement, etc.&nbsp; I believe that the real foundation of a software is neither the tools nor the technologies, but the people (at least 95% of the time).&nbsp; And since people&#8217;s behaviours change more often than requirements, it&#8217;s important to know how to adapt at any moment.&nbsp; Sometimes quitting something you were working on can be the <strong>best long-term strategy</strong> you could have chosen to successfully reach your goals.</p>
<p>As another quote from the author,</p>
<blockquote><p><em>Whether you&#8217;re a graphic designer, a sales rep, an athlete, or an aspiring CEO, this fun little book will help you figure out if you&#8217;re in a Dip that&#8217;s worthy of your time, effort, and talents. If you are, The Dip will inspire you to hang tough. If not, it will help you find the courage to quit-so you can be number one at something else.</em> </p>
</blockquote>
<p>I won&#8217;t tell you more about the book, because I think you&#8217;ll do yourself a better favour in investing a couple of hours to read it on your own.&nbsp;
<p>Meanwhile, I&#8217;ll invite you to read <a href="http://blog.guykawasaki.com">Guy Kawasaki</a>&#8217;s interview with Seth Godin on <a href="http://blog.guykawasaki.com/2007/04/the_big_dip_ten.html"><strong>The Big Dip: Ten Questions with Seth Godin</strong></a>, and also take a look at <a href="http://mybusinessthoughts.blogspot.com/2007/07/internet-technology-dip_02.html"><strong>Kevin Donaldson&#8217;s review on the book</strong></a>.</p>
<p>
My name is Brian Di Croce, a passionate software developer living, coding, blogging and working in Montreal, Canada.  Feel free to visit my <a href="http://www.briandicroce.com">website/blog</a> for more great content related to software development with .NET! &copy;2007-2008</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandicroce.com/2008/03/18/book-review-7-the-dip-a-little-book-that-teaches-you-when-to-quit-and-when-to-stick/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Setting Up a Continuous Integration Environment (Preface)</title>
		<link>http://blog.briandicroce.com/2008/03/17/setting-up-a-continuous-integration-environment-preface/</link>
		<comments>http://blog.briandicroce.com/2008/03/17/setting-up-a-continuous-integration-environment-preface/#comments</comments>
		<pubDate>Mon, 17 Mar 2008 16:32:27 +0000</pubDate>
		<dc:creator>Brian Di Croce</dc:creator>
		
		<category><![CDATA[Agile(TDD/XP/CI)]]></category>

		<guid isPermaLink="false">http://blog.briandicroce.com/2008/03/17/setting-up-a-continuous-integration-environment-preface/</guid>
		<description><![CDATA[In the course of the next few weeks, I&#8217;ll be writing a series of articles on how to set up a Continuous Integration (CI) environment for .NET development using TeamCity as the build integration server (with MySQL as the backend database), Subversion as the version-control server, MSBuild as the software build engine, NUnit as the [...]]]></description>
			<content:encoded><![CDATA[</p>
<p>In the course of the next few weeks, I&#8217;ll be writing a series of articles on how to set up a <a href="http://en.wikipedia.org/wiki/Continuous_integration">Continuous Integration</a> (CI) environment for .NET development using <a href="http://www.jetbrains.com/teamcity/index.html">TeamCity</a> as the build integration server (with <a href="http://www.mysql.com">MySQL</a> as the backend database), <a href="http://subversion.tigris.org/">Subversion</a> as the version-control server, <a href="http://blogs.msdn.com/msbuild/">MSBuild</a> as the software build engine, <a href="http://www.nunit.com">NUnit</a> as the unit testing framework, <a href="http://www.ncover.com">NCover</a> as the tests coverage tool, <a href="http://www.ndepend.com/">NDepend</a> as the static code analysis tool, and other tools that might give us important feedback on a build.&nbsp; I hope that this series will be helpful in better managing and communicating your <strong>open source projects</strong>, <strong>academic projects</strong> and <strong>commercial projects</strong>.&nbsp; Even though that I&#8217;m targeting development with .NET, the principles can faithfully be applied in a CI environment which uses different tools than the ones mentioned above.</p>
<p>You might be wondering why I won&#8217;t be using CruiseControl.NET as the build integration server.&nbsp; The answer is pretty simple.&nbsp; First of all, there <a href="http://www.developer.com/net/net/article.php/3557396">are</a> <a href="http://www.pluralsight.com/blogs/keith/archive/2008/01/18/49967.aspx">many</a>&nbsp;<a href="www.marauder-consulting.co.uk/Continuous_Integration_with_CruiseControl_Net-Part_2.pdf">articles</a> <a href="http://netbuild.blogspot.com/">that</a>&nbsp;<a href="http://www.shaneo.ca/Comments.aspx?ArticleID=194">already</a>&nbsp;<a href="http://sdesmedt.wordpress.com/2006/11/04/building-a-development-environment-part-1-managing-your-sourcecode-with-subversion/">describe</a> <a href="http://joefield.mysite4now.com/blogs/blog/articles/146.aspx">very</a> <a href="http://dougrohm.com/cs/pages/56.aspx">well</a> <a href="http://sdesmedt.wordpress.com/2006/11/04/building-a-development-environment-part-2-setup-cruisecontrolnet-for-continuous-integration/">how</a> <a href="http://agilecoder.wordpress.com/2006/07/28/using-cruisecontrolnet-with-msbuild/">to</a> install, configure and properly use CruiseControl.NET as a build integration server.&nbsp; Second of all, <strong>I believe that CruiseControl.NET is dead in terms of ongoing development</strong>.&nbsp; I&#8217;m not saying that CC.NET isn&#8217;t good at all, on the contrary, but the fact that it wasn&#8217;t updated in almost a year tells me that it&#8217;s probably stalling.&nbsp; At the present moment, <strong>TeamCity is by far the best build integration server out there in terms of features, extensibility, performance, portability and scalability</strong>.&nbsp; Thanks to its <a href="http://intellij.net/forums/forum.jspa?forumID=68">open discussion forums</a>, <a href="news://news.jetbrains.com/jetbrains.teamware.eap">newsgroups</a> and accessible <a href="http://jetbrains.net/tracker/_htmlTemplate/Workspace?projectKey=TW">JIRA tracking dashboard</a>, <a href="http://www.jetbrains.com">JetBrains</a> is in a good position to redefine the principles behind CI and, most importantly, to further innovate in the CI space.&nbsp; Another thing you might be wondering is how much setting up this kind of CI environment is going to cost you.&nbsp; That answer is also very simple.&nbsp; It&#8217;ll cost you a little learning curve to know how to properly use the tools and also some time in properly configuring the tools.&nbsp; In other words, setting this kind of CI environment will cost you absolutely nothing in terms of financial expenses, except maybe buying a machine to act as a remote server to run your builds.&nbsp; In fact, since the release of TeamCity 3.1, the Professional Edition is free to use (<a href="http://blog.briandicroce.com/2008/03/04/teamcity-31-released/">refer to this post for more information</a>).&nbsp; I&#8217;ll go more into the details of each tool in the later posts in order to separate the concerns and keep this series as loosely coupled as possible so that you can refer to each specific part individually.&nbsp; I guess the principles of object-oriented programming follow us in everything we do in life&#8230;</p>
<p>I will not cover the whole concept, principles and best practices of Continuous Integration because other people have already done an excellent job in doing that.&nbsp; I highly recommend you to look at <a href="http://martinfowler.com/articles/continuousIntegration.html">Martin Fowler&#8217;s article on Continuous Integration</a>, as well as to get a hold of <a href="http://www.amazon.ca/exec/obidos/ASIN/0321336380/brdicr09-20">Paul Duvall&#8217;s excellent book on Continuous Integration</a> (from the Martin Fowler Signature Series of Addison-Wesley) to further understand some key patterns, best practices and strategies to successfully deploy and use a CI environment.&nbsp; I read the entire book before setting up a CI environment at a client side, and I&#8217;m glad I did because the material that Paul covers in his book are real-world scenarios that most people face when setting up this kind of an ecosystem inside an organization.&nbsp; </p>
<p>On a last note, it is important to know that I&#8217;m setting up this kind of infrastructure in a Windows environment.&nbsp; Written in Java, TeamCity can be installed and executed on any platform that supports the JVM, such as Mac OS X, Linux, Windows, etc.&nbsp; Subversion can also be installed and executed under Mac OS X, Linux and Windows.&nbsp; As for the supporting build tools like NUnit and NCover, these only work under Windows.&nbsp; I really hope that other people will write about setting up this kind of environment in other platforms than Windows to help out those that use different systems.&nbsp; I&#8217;ll also update the information related to this series to reflect changes to the way we use the tools, new strategies to consider and the <strong>feedback</strong> I&#8217;ll receive from these articles.&nbsp; Another point to consider is that you might want to try out this kind of CI setup in a <strong>virtual environment</strong> with various virtual machines.&nbsp; The following approach might give you a general idea how you could implement a solid CI environment:</p>
<p> <center>
<p>&nbsp; <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="629" alt="" src="http://blog.briandicroce.com/wp-content/uploads/2008/03/image54.png" width="870" border="0"> </p>
<p></center>
<p>&nbsp;</p>
<p>Here&#8217;s an early overview of the activities that will be covered in this series:</p>
<ul>
<li><a href="http://blog.briandicroce.com/2008/03/19/part-i-beginning-the-ci-journey-with-subversion/"><strong>Part I: Beginning the CI Journey with Subversion</strong></a>
<li><a href="http://blog.briandicroce.com/2008/03/24/part-ii-setting-up-our-build-server-with-teamcity/"><strong>Part II: Setting Up Our Build Server With TeamCity</strong></a></li>
</ul>
<p>
My name is Brian Di Croce, a passionate software developer living, coding, blogging and working in Montreal, Canada.  Feel free to visit my <a href="http://www.briandicroce.com">website/blog</a> for more great content related to software development with .NET! &copy;2007-2008</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandicroce.com/2008/03/17/setting-up-a-continuous-integration-environment-preface/feed/</wfw:commentRss>
		</item>
		<item>
		<title>This Week&#8217;s Geek Links (March 15th, 2008)</title>
		<link>http://blog.briandicroce.com/2008/03/15/this-weeks-geek-links-march-15th-2008/</link>
		<comments>http://blog.briandicroce.com/2008/03/15/this-weeks-geek-links-march-15th-2008/#comments</comments>
		<pubDate>Sat, 15 Mar 2008 23:54:52 +0000</pubDate>
		<dc:creator>Brian Di Croce</dc:creator>
		
		<category><![CDATA[Geek Links]]></category>

		<guid isPermaLink="false">http://blog.briandicroce.com/2008/03/15/this-weeks-geek-links-march-15th-2008/</guid>
		<description><![CDATA[There are the links I have &#8220;del.icio.used&#8221; (can we say this?) this past week.&#160; Happy reading!

People of the Web - High Wire Act: An article of a great physics professor in MIT and how he goes the extra mile to teach his passion of physics to his students.
Clues For Reading New Code: You&#8217;ve been handed [...]]]></description>
			<content:encoded><![CDATA[<p>There are the links I have &#8220;del.icio.used&#8221; (can we say this?) this past week.&nbsp; Happy reading!</p>
<ol>
<li><a href="http://potw.news.yahoo.com/s/potw/63302/high-wire-act"><strong>People of the Web - High Wire Act</strong></a>: An article of a great physics professor in MIT and how he goes the extra mile to teach his passion of physics to his students.
<li><a href="http://blog.objectmentor.com/articles/2008/03/05/clues-for-reading-new-code"><strong>Clues For Reading New Code</strong></a>: You&#8217;ve been handed a new codebase to maintain. Where do you start? How do you find yourself in the mess? These steps might safely guide you through that situation&#8230;with a laugh or two!
<li><a href="http://prophipsi.blogspot.com/2008/03/why-i-no-longer-like-or-use-c.html"><strong>Pro-Phi-Psi: Why I No Longer Like or Use C++</strong></a>: Funny (yet, quite true!) post about the reasons why C++ may have lost its true colors amongst developers today.
<li><a href="http://sessions.visitmix.com/"><strong>MIX | Sessions (MIX 2008)</strong></a>: All MIX 2008 sessions are available here (you&#8217;ll need to install Silverlight to be able to see them in your browser)
<li><a href="http://www.codinghorror.com/blog/archives/000051.html"><strong>Coding Horror: Why I&#8217;m The Best Programmer In The World</strong>*</a>: Excellent article by Jeff Atwood where he preaches that the best programmers are the ones who are humble at their work and in themselves. Great support material from Steve McConnell and Edsger Dijkstra.
<li><a href="http://www.nytimes.com/2008/03/09/business/09digi.html?_r=1&amp;ex=1362805200&amp;amp;en=9899c43e9a2c10fb&amp;amp;ei=5088&amp;amp;partner=rssnyt&amp;amp;emc=rss&amp;oref=slogin"><strong>They Criticized Vista. And They Should Know. - New York Times</strong></a>: WOW! Well, the &#8220;dark side&#8221; of Microsoft was clearly demonstrated by its strategy to market and sell Vista since 2005. I had no idea there was an ongoing class action suit against Microsoft for deliberately &#8220;misinforming&#8221; their customers about Vista&#8230;
<li><a href="http://headrush.typepad.com/creating_passionate_users/2006/03/how_to_be_an_ex.html"><strong>Creating Passionate Users: How to be an expert</strong></a>: Another great article from Kathy Sierra where she shares her insights on the reasons why anybody can be an expert at something as long as they have the will, the dedication, the patience and the urge to continually improve upon past performances.
<li><a href="http://headrush.typepad.com/creating_passionate_users/2005/01/users_shouldnt_.html"><strong>Creating Passionate Users: Users shouldn&#8217;t think about YOU</strong></a>: An excellent article by Kathy Sierra where she encourages authors and trainers to focus their attention more on the student than on themselves. This is a must read if you&#8217;re a trainer or you want to become one.
<li><a href="http://www.dumblittleman.com/2008/02/20-things-im-glad-life-taught-me.html"><strong>20 Things I&#8217;m Glad Life Taught Me</strong></a>: This one if from the excellent Dumb Little Man. It lists 20 great tips to acknowledge in life to live a better life. Great stuff to share with family, friends, students, co-workers and kids!
<li><a href="http://www.infoworld.com/article/08/03/04/IBM-promotes-agile-development_1.html"><strong>IBM promotes agile development</strong></a>: Per Kroll, chief architect for IBM Rational Expertise Development &amp; Innovation, recently said that IBM is using Agile methods to deliver software projects. Only a fraction of the IBM development workforce is currently applying Agile methods for now.</li>
</ol>
<p>
My name is Brian Di Croce, a passionate software developer living, coding, blogging and working in Montreal, Canada.  Feel free to visit my <a href="http://www.briandicroce.com">website/blog</a> for more great content related to software development with .NET! &copy;2007-2008</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandicroce.com/2008/03/15/this-weeks-geek-links-march-15th-2008/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Three Index Cards To Easily Remember The Essence Of Test-Driven Development</title>
		<link>http://blog.briandicroce.com/2008/03/14/three-index-cards-to-easily-remember-the-essence-of-test-driven-development/</link>
		<comments>http://blog.briandicroce.com/2008/03/14/three-index-cards-to-easily-remember-the-essence-of-test-driven-development/#comments</comments>
		<pubDate>Fri, 14 Mar 2008 16:00:26 +0000</pubDate>
		<dc:creator>Brian Di Croce</dc:creator>
		
		<category><![CDATA[Agile(TDD/XP/CI)]]></category>

		<guid isPermaLink="false">http://blog.briandicroce.com/2008/03/14/three-index-cards-to-easily-remember-the-essence-of-test-driven-development/</guid>
		<description><![CDATA[As I was reading a couple of ObjectMentor&#8217;s blog posts, one of them caught my attention.  It was Tim Ottinger&#8217;s post on &#8220;TDD on Three Index Cards&#8220;.  He recalls how someone missed part of a class he was teaching on TDD and told that individual the fundamental essence of TDD on three index cards in [...]]]></description>
			<content:encoded><![CDATA[<p>As I was reading a couple of <a href="http://www.objectmentor.com">ObjectMentor</a>&#8217;s blog posts, one of them caught my attention.  It was <a href="http://objectmentor.com/omTeam/ottinger_t.html">Tim Ottinger</a>&#8217;s post on &#8220;<a href="http://blog.objectmentor.com/articles/2008/03/06/tdd-on-three-index-cards"><strong>TDD on Three Index Cards</strong></a>&#8220;.  He recalls how someone missed part of a class he was teaching on TDD and told that individual the fundamental essence of TDD on three index cards in less than <strong>15 minutes</strong>.  After reading that, I got myself thinking &#8220;<em>Hhhmm&#8230;not a bad idea! I wonder if it&#8217;s physically possible?</em>&#8220;. </p>
<p>Ten minutes later, I&#8217;m at Staples buying some index cards and a couple of markers (for pictures purposes&#8230;of course&#8230;).  Here&#8217;s the final product which every credit goes to Tim for this very simple, practical and useful idea.  Kudos to my wife for taking the pictures.</p>
<p>Here&#8217;s a recap of the main ideas behind TDD (full credits goes to Tim):</p>
<blockquote><p><strong>Card #1. Uncle Bob&#8217;s Three Laws</strong></p>
<ul>
<li>Write no production code except to pass a failing test.</li>
<li>Write only enough of a test to demonstrate a failure.</li>
<li>Write only enough production code to pass the test.</li>
</ul>
</blockquote>
<p><center><br />
<img border="0" width="670" src="http://blog.briandicroce.com/wp-content/uploads/2008/03/image48.png" alt="Card #1: Uncle Bob's Three Laws" height="534" style="border-width: 0px" /> <br />
</center></p>
<blockquote><p><strong>Card #2: FIRST Principles</strong></p>
<ul>
<li><em><strong>F</strong></em>ast: Mind-numbingly fast, as in hundreds or thousands per second.</li>
<li><em><strong>I</strong></em>solated: The test isolates a fault clearly.</li>
<li><em><strong>R</strong></em>epeatable: I can run it repeatedly and it will pass or fail the same way each time.</li>
<li><em><strong>S</strong></em>elf-verifying: The Test is unambiguously pass-fail.</li>
<li><em><strong>T</strong></em>imely: Produced in lockstep with tiny code changes.</li>
</ul>
</blockquote>
<p><center><br />
<img border="0" width="670" src="http://blog.briandicroce.com/wp-content/uploads/2008/03/image49.png" alt="Card #2: F.I.R.S.T Principles" height="519" style="border-width: 0px" /><br />
</center></p>
<blockquote><p><strong>Card #3: Core of TDD</strong></p>
<ul>
<li>Red: test fails</li>
<li>Green: test passes</li>
<li>Refactor: clean code and tests</li>
</ul>
</blockquote>
<p><center><br />
<img border="0" width="670" src="http://blog.briandicroce.com/wp-content/uploads/2008/03/image50.png" alt="Card #3: Core of TDD" height="417" style="border-width: 0px" /><br />
</center>By the way, if you&#8217;re in the Montreal/Quebec sector and you&#8217;d like (or perhaps your team) to know more about TDD (unit testing best practices, patterns of unit testing, introduction to Mock Objects, etc.), I highly recommend taking the two-day <a href="http://www.crim.ca/fr/Services/Formation/">Test-Driven Development in .NET training course</a> with us at the CRIM. 
<p>
My name is Brian Di Croce, a passionate software developer living, coding, blogging and working in Montreal, Canada.  Feel free to visit my <a href="http://www.briandicroce.com">website/blog</a> for more great content related to software development with .NET! &copy;2007-2008</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandicroce.com/2008/03/14/three-index-cards-to-easily-remember-the-essence-of-test-driven-development/feed/</wfw:commentRss>
		</item>
		<item>
		<title>As a Software Developer, I&#8217;m MUCH Better At Handling Exceptions Than Handling Babies</title>
		<link>http://blog.briandicroce.com/2008/03/13/as-a-software-developer-im-much-better-at-handling-exceptions-than-handling-babies/</link>
		<comments>http://blog.briandicroce.com/2008/03/13/as-a-software-developer-im-much-better-at-handling-exceptions-than-handling-babies/#comments</comments>
		<pubDate>Fri, 14 Mar 2008 00:39:31 +0000</pubDate>
		<dc:creator>Brian Di Croce</dc:creator>
		
		<category><![CDATA[Humor/Funny]]></category>

		<guid isPermaLink="false">http://blog.briandicroce.com/2008/03/13/as-a-software-developer-im-much-better-at-handling-exceptions-than-handling-babies/</guid>
		<description><![CDATA[I was reminded, after looking at some pictures of last year&#8217;s Christmas party at my parents, that as a software developer, I&#8217;m much, much better at handling exceptions than handling babies&#8230;Meet my little nephew, Xander (the one in the Santa suit in case you were wondering), who might start programming with .NET v7.5, F# and [...]]]></description>
			<content:encoded><![CDATA[<p>I was reminded, after looking at some pictures of last year&#8217;s Christmas party at my parents, that as a software developer, I&#8217;m much, <em>much</em> better at handling exceptions than handling babies&#8230;Meet my little nephew, <strong>Xander</strong> (the one in the Santa suit in case you were wondering), who might start programming with .NET v7.5, F# and Volta in a couple of years.<br /> <center>
</p>
<table cellspacing="0" cellpadding="2" width="700" border="0">
<tbody>
<tr>
<td valign="top" width="350"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="471" alt="Uhhh...need some help here!" src="http://blog.briandicroce.com/wp-content/uploads/2008/03/image45.png" width="354" border="0"></td>
<td valign="top" width="350"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="471" alt="Lion king impression..." src="http://blog.briandicroce.com/wp-content/uploads/2008/03/image47.png" width="354" border="0"></td>
</tr>
</tbody>
</table>
<p></center><br />P.S. I have already found a nickname for him&#8230;&#8221;XML-Boy&#8221;.</p>
<p>
My name is Brian Di Croce, a passionate software developer living, coding, blogging and working in Montreal, Canada.  Feel free to visit my <a href="http://www.briandicroce.com">website/blog</a> for more great content related to software development with .NET! &copy;2007-2008</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.briandicroce.com/2008/03/13/as-a-software-developer-im-much-better-at-handling-exceptions-than-handling-babies/feed/</wfw:commentRss>
		</item>
		<item>
		<title>IEEE For CompSci and Software Engineering Students</title>
		<link>http://blog.briandicroce.com/2008/03/12/ieee-for-compsci-and-software-engineering-students/</link>
		<comments>http://blog.briandicroce.com/2008/03/12/ieee-for-compsci-and-software-engineering-students/#comments</comments>
		<pubDate>Wed, 12 Mar 2008 21:42:17 +0000</pubDate>
		<dc:creator>Brian Di Croce</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://blog.briandicroce.com/2008/03/12/ieee-for-compsci-and-software-engineering-students/</guid>
		<description><![CDATA[I have been an IEEE member and an IEEE Computer Society member since 2003, the year I started my undergraduate studies.&#160; From 2003 to 2007, I have been a Student Member, and since graduating, I have been a Professional Member.&#160; The main reason I decided to join such an organization as a student was simply [...]]]></description>
			<content:encoded><![CDATA[<p>I have been an <a href="http://www.ieee.org">IEEE</a> member and an <a href="http://www.computer.org">IEEE Computer Society</a> member since 2003, the year I started my undergraduate studies.&#160; From 2003 to 2007, I have been a Student Member, and since graduating, I have been a Professional Member.&#160; The main reason I decided to join such an organization as a student was simply because I wanted to have one foot in the academic world(what I prefer to call the &#8216;perfect world&#8217;) and another foot in the industrial world (what I prefer to call the &#8216;real world&#8217;).&#160; Being a student member of the IEEE Computer Society also proved itself useful when I was being interviewed for various internships in the course of my studies because it &#8216;demonstrated&#8217; to potential employers that I had extra interests in the field of software development and technologies.&#160; In a nutshell, the IEEE and the IEEE Computer Society is like a sea of information that provides the latest news and information in the field of research, achievements, innovations, inventions, policies, standards that targets both students and professionals alike.</p>
<p>Last week, the IEEE Computer Society&#8217;s president sent a newsletter to all the members.&#160; Immediately after reading it, I thought to myself that I should quickly write a post about it to encourage computer science and software engineering students to become members of this fine o