<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>

<channel>
	<title>EBb - Erik Bollow blogs</title>
	<atom:link href="http://blog.bollow.name/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.bollow.name</link>
	<description>Computer Science as Passion</description>
	<pubDate>Tue, 01 Jun 2010 21:02:18 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The dotnet Cologne 2010</title>
		<link>http://blog.bollow.name/2010/05/the-dotnet-cologne-2010/</link>
		<comments>http://blog.bollow.name/2010/05/the-dotnet-cologne-2010/#comments</comments>
		<pubDate>Fri, 28 May 2010 20:24:00 +0000</pubDate>
		<dc:creator>Erik Bollow</dc:creator>
		
		<category><![CDATA[Event]]></category>

		<category><![CDATA[.NET]]></category>

		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://blog.bollow.name/?p=354</guid>
		<description><![CDATA[What an event! Round about 300 people met at the Holiday Inn - Am Stadtwald, Cologne. And I am sure, none of them regrets his participance.
Some of the sponsors were present with exhibition stands. For me, that was informative and useful; e.g. I took home some information about a WPF control collection which could help [...]]]></description>
			<content:encoded><![CDATA[<p style="TEXT-ALIGN: justify"><strong>What an event!</strong> Round about <strong>300 people</strong> met at the Holiday Inn - Am Stadtwald, Cologne. And I am sure, none of them regrets his participance.</p>
<p style="TEXT-ALIGN: justify">Some of the sponsors were present with exhibition stands. For me, that was informative and useful; e.g. I took home some information about a WPF control collection which could help us to solve a problem we a currently facing in my company.</p>
<p style="TEXT-ALIGN: justify">I really like these <strong>community conferences</strong>. The <strong>information</strong> given there are <strong>absolutely useful for</strong> the <strong>daily work</strong> for the speakers take their topics &#8220;from life&#8221;. Additionally, it is nice to share experiences with other participants.</p>
<p style="TEXT-ALIGN: justify"><img src="http://blog.bollow.name/wp-content/uploads/2010/06/dotnetcologne2010.jpg" alt="dotnetCologne2010" width="265" height="202" align="right" />The <a title="dotnet Cologne" href="http://www.dotnet-cologne.de" target="_blank">dotnet Cologne</a> this year was held on the occasion of the launch of <strong>Visual Studio 2010</strong> and the <strong>.NET framework 4</strong>. So, the talks, which were organised in altogether 30 sessions and 4 tracks, more or less dealt with these two aspects. That was a quite condensed programme. Even the lunch break was used for sessions! I was this time mostly interested in parallel programming, code contracts, and some goodies of the new .NET framework.</p>
<p style="TEXT-ALIGN: justify">As last year, the <strong>sessions were great</strong> due to the <strong>high expertise</strong> of the speakers! The whole conference gave you the feeling of bringing you to the technological state of the art.</p>
<p style="TEXT-ALIGN: justify">What was the <strong>benefit at the end of the day</strong>? First contact to new technologies or a deeper insight into it, new programming techniques, hints for your daily work - just to name a few.</p>
<p style="TEXT-ALIGN: justify">Of course, there was a raffle at the end of the conference. And you may guess right that I was one of the numerous winners - this time, it was a book.</p>
<p style="TEXT-ALIGN: justify">Not only from my point of view, the <strong>conference</strong> was a <strong>great success</strong>. <strong>Thanks to the organisation team</strong> - absolutely well done (again)!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bollow.name/2010/05/the-dotnet-cologne-2010/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The CCD blues</title>
		<link>http://blog.bollow.name/2009/12/the-ccd-blues/</link>
		<comments>http://blog.bollow.name/2009/12/the-ccd-blues/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 16:27:00 +0000</pubDate>
		<dc:creator>Erik Bollow</dc:creator>
		
		<category><![CDATA[Soft Skills]]></category>

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

		<category><![CDATA[Clean Code Developer]]></category>

		<guid isPermaLink="false">http://blog.bollow.name/?p=309</guid>
		<description><![CDATA[Today, I started to work on the blue CCD degree. It is the 5th and last sectional one.
Thus, I currently focus on these principles and practices:

Principles

Architecture and Implementation do not overlap
Implementation reflects Architecture
YAGNI (you ain&#8217;t gonna need it)


Practices

Continuous Integration (Setup &#38; Deployment)
Iterative Development
Component-oriented Development
Test First



Here, we find a perspective slightly apart from the mere coding. [...]]]></description>
			<content:encoded><![CDATA[<p style="TEXT-ALIGN: justify">Today, I started to work on the <strong><a title="CCD blue degree" href="http://www.clean-code-developer.de/wiki/CcdBlauerGrad" target="_blank">blue CCD degree</a></strong>. It is the 5th and last sectional one.</p>
<p style="TEXT-ALIGN: justify">Thus, I currently focus on these principles and practices:</p>
<ul style="TEXT-ALIGN: justify">
<li><strong>Principles</strong>
<ul>
<li>Architecture and Implementation do not overlap</li>
<li>Implementation reflects Architecture</li>
<li>YAGNI (you ain&#8217;t gonna need it)</li>
</ul>
</li>
<li><strong>Practices</strong>
<ul>
<li>Continuous Integration (Setup &amp; Deployment)</li>
<li>Iterative Development</li>
<li>Component-oriented Development</li>
<li>Test First</li>
</ul>
</li>
</ul>
<p style="TEXT-ALIGN: justify">Here, we find a <strong>perspective slightly apart from</strong> the <strong>mere coding</strong>. Principles and practices both point out in their own way the <strong>relation of design/architecture</strong> on the one hand <strong>and realisation/implementation</strong> (in terms of program code) on the other. Design/architecture may be regarded as being one abstraction level higher than realisation/implementation.</p>
<p style="TEXT-ALIGN: justify">The principles make you keep an eye on the <strong>distinction between architecture and realisation</strong>. In my point of view, at least the <em>component-oriented development</em> practice can be seen as a result of the <em>implementation reflects architecture</em> principle.</p>
<p style="TEXT-ALIGN: justify">Besides architecture, <strong>other aspects of the software development process</strong> are involved here. <em>Iterative development</em> and <em>test first</em> address <strong>specification</strong>: Tests can be regarded as some sort of specification; iterative development results from continuous specification refinement. Finally, continuous integrations reminds you to install an <strong>automated setup and deployment mechanism</strong> here.</p>
<p style="TEXT-ALIGN: justify">Just to mention it: The YAGNI principle is quite important, so it is repeated within the blue degree.</p>
<p style="TEXT-ALIGN: justify">In summary, this CCD degree <strong>focuses on the embedding of the coding part in other aspects of the software development process</strong> such as specification, deployment, and architecture.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bollow.name/2009/12/the-ccd-blues/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Green is my current CCD degree</title>
		<link>http://blog.bollow.name/2009/07/green-is-my-current-ccd-degree/</link>
		<comments>http://blog.bollow.name/2009/07/green-is-my-current-ccd-degree/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 18:55:00 +0000</pubDate>
		<dc:creator>Erik Bollow</dc:creator>
		
		<category><![CDATA[Soft Skills]]></category>

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

		<category><![CDATA[Clean Code Developer]]></category>

		<guid isPermaLink="false">http://blog.bollow.name/?p=216</guid>
		<description><![CDATA[I have reached the upper half of the ladder. (I do not count the CCD black degree.)
Green is the 4th CCD degree and emphasises:

Principles

Open Closed Principle
Tell, don&#8217;t ask
Law of Demeter


Practices

Continuous Integration (Build &#38; Test)
Static Code Analysis (Metrics)
Inversion of Control Container
Share experiences



The principles focus proper class design and lead to loose coupling. The same is true [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">I have reached the upper half of the ladder. (I do not count the <a title="CCD black degree" href="http://www.clean-code-developer.de/wiki/CcdSchwarzerGrad" target="_blank">CCD black degree</a>.)</p>
<p style="text-align: justify;"><strong>Green</strong> is the <a title="CCD green degree" href="http://www.clean-code-developer.de/wiki/CcdGruenerGrad" target="_blank">4th CCD degree</a> and emphasises:</p>
<ul style="text-align: justify;">
<li><strong>Principles</strong>
<ul>
<li>Open Closed Principle</li>
<li>Tell, don&#8217;t ask</li>
<li>Law of Demeter</li>
</ul>
</li>
<li><strong>Practices</strong>
<ul>
<li>Continuous Integration (Build &amp; Test)</li>
<li>Static Code Analysis (Metrics)</li>
<li>Inversion of Control Container</li>
<li>Share experiences</li>
</ul>
</li>
</ul>
<p style="text-align: justify;">The principles focus <strong>proper class design</strong> and lead to <strong>loose coupling</strong>. The same is true when making use of a container. Continuous integration and metrics <strong>increase productivity</strong>, for they check your software quality automatically. Once more, there are no rules at this degree.</p>
<p style="text-align: justify;">I think I can rush through this degree, because I use these principles and practices (almost) every day. There is one exception: I have to get more interested in the code metrics, for I have really lost sight of that.</p>
<p style="text-align: justify;">Sharing experiences - that is what a blog is for, isn&#8217;t it?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bollow.name/2009/07/green-is-my-current-ccd-degree/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The dotnet Cologne 2009</title>
		<link>http://blog.bollow.name/2009/05/the-dotnet-cologne-2009/</link>
		<comments>http://blog.bollow.name/2009/05/the-dotnet-cologne-2009/#comments</comments>
		<pubDate>Fri, 15 May 2009 21:09:00 +0000</pubDate>
		<dc:creator>Erik Bollow</dc:creator>
		
		<category><![CDATA[Event]]></category>

		<category><![CDATA[.NET]]></category>

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

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

		<guid isPermaLink="false">http://blog.bollow.name/?p=83</guid>
		<description><![CDATA[Today, I attended the dotnet Cologne 2009. It was a one-day  community conference (in German) on WPF and Silverlight.
About 180 people gathered at the Microsoft building in Cologne. They were presented a very good programme. The speakers were great, the topics of the talks were great, too. The talks were arranged on two tracks [...]]]></description>
			<content:encoded><![CDATA[<p style="TEXT-ALIGN: justify">Today, I attended the <a title="dotnet Cologne 2009" href="http://www.dotnet-cologne.de" target="_blank">dotnet Cologne 2009</a>. It was a one-day  <strong>community conference</strong> (in German) on <strong>WPF</strong> and <strong>Silverlight</strong>.</p>
<p style="TEXT-ALIGN: justify">About <strong>180 people</strong> gathered at the Microsoft building in Cologne. They were presented a very good programme. The speakers were great, the topics of the talks were great, too. The talks were arranged on two tracks most of the time.</p>
<p style="TEXT-ALIGN: justify">For me, it was a quite valuable event. I gained a lot of <strong>practical insights</strong> into WPF and Silverlight. In particular, the talk on the data binding mechanism in WPF attracted my special interest. As usual, the discussions with the participants during the breaks were interesting as well as inspiring.</p>
<p style="TEXT-ALIGN: justify">In addition, which made the day valuable for me in terms of money or development tools, I won a <a title="ComponentOne Studio Enterprise" href="http://www.componentone.com/SuperProducts/StudioEnterprise" target="_blank">ComponentOne Studio Enterprise</a> licence from the closing raffle. <img src='http://blog.bollow.name/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p style="TEXT-ALIGN: justify">Thanks to the organisers and I&#8217;m looking forward to the dotnet Cologne next year!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bollow.name/2009/05/the-dotnet-cologne-2009/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Now it&#8217;s CCD yellow degree</title>
		<link>http://blog.bollow.name/2009/05/now-its-ccd-yellow-degree/</link>
		<comments>http://blog.bollow.name/2009/05/now-its-ccd-yellow-degree/#comments</comments>
		<pubDate>Tue, 12 May 2009 18:15:00 +0000</pubDate>
		<dc:creator>Erik Bollow</dc:creator>
		
		<category><![CDATA[Soft Skills]]></category>

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

		<category><![CDATA[Clean Code Developer]]></category>

		<guid isPermaLink="false">http://blog.bollow.name/?p=89</guid>
		<description><![CDATA[I started to wear my yellow CCD wristband today. So my focus is on the principles and practices of the 3rd CCD degree currently.
The yellow degree emphasises:

Principles

Interface Segregation Principle
Dependency Inversion Principle
Dependency Injection (without Locator or Container)
Liskov Substitution Principle


Practices

Automated Unit Tests
Mockups
Code Coverage Analysis
Partiticipation in technical conferences and meetings



Here is my attempt of a very short subsumption [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">I started to wear my yellow <strong><a title="CCD" href="http://www.clean-code-developer.de" target="_blank">CCD</a></strong> wristband today. So my focus is on the principles and practices of the 3rd CCD degree currently.</p>
<p style="text-align: justify;">The <a title="CCD yellow degree" href="http://clean-code-developer.de/wiki/CcdGelberGrad" target="_blank"><strong>yellow degree</strong></a> emphasises:</p>
<ul>
<li><strong>Principles</strong>
<ul>
<li>Interface Segregation Principle</li>
<li>Dependency Inversion Principle</li>
<li>Dependency Injection (without Locator or Container)</li>
<li>Liskov Substitution Principle</li>
</ul>
</li>
<li><strong>Practices</strong>
<ul>
<li>Automated Unit Tests</li>
<li>Mockups</li>
<li>Code Coverage Analysis</li>
<li>Partiticipation in technical conferences and meetings</li>
</ul>
</li>
</ul>
<p style="text-align: justify;">Here is my attempt of a very short subsumption as I did in my <a title="Now working on CCD orange degree" href="http://blog.bollow.name/2009/03/now-working-on-ccd-orange-degree" target="_blank">post on the previous degree</a>: The principles of the yellow degree support <strong>proper design and architecture</strong>, they <strong>enhance testability</strong> in the same way. This is required for the practices (except the participation in conferences), for these concentrate on <strong>(automated) code testing</strong>. (There are no <em>rules</em> here.)</p>
<p style="text-align: justify;"><a title="Stefan Lieser" href="http://www.lieser-online.de" target="_blank">Stefan Lieser</a> told me, that together with <a title="Ralf Westphal" href="http://www.ralfw.de" target="_blank">Ralf Westphal</a> he tried to build thematic bundles for each CCD degree. As I can see so far, they did a good job.</p>
<p style="text-align: justify;">Once more, I am aware of almost all the elements focussed at my current degree. In general, most of the principles, rules, and practices presented on CCD are well-known. The purpose of a CCD degree is to <strong>concentrate on the elements</strong> of that degree and to try not to violate them. By this, they hopefully <strong>will become second nature</strong> to you.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bollow.name/2009/05/now-its-ccd-yellow-degree/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Nice tool: NHibernate Profiler</title>
		<link>http://blog.bollow.name/2009/03/nice-tool-nhibernate-profiler/</link>
		<comments>http://blog.bollow.name/2009/03/nice-tool-nhibernate-profiler/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 18:31:28 +0000</pubDate>
		<dc:creator>Erik Bollow</dc:creator>
		
		<category><![CDATA[Tools]]></category>

		<category><![CDATA[.NET]]></category>

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

		<guid isPermaLink="false">http://blog.bollow.name/?p=79</guid>
		<description><![CDATA[A few weeks ago, we started to use a new tool by Ayende: The NHibernate Profiler (currently beta). It is a real-time debugger to debug and improve the usage of NHibernate in our modules.
The NHibernate Profiler provides a lot of valuable (technical and statistical) data on the current activity:

SQL statements per session with additional information: [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">A few weeks ago, we started to use a new tool by <a title="Ayende Rahien" href="http://ayende.com" target="_blank">Ayende</a>: The <a title="NHibernate Profiler website" href="http://nhprof.com" target="_blank">NHibernate Profiler</a> (currently beta). It is a real-time debugger to debug and improve the usage of NHibernate in our modules.</p>
<p style="text-align: justify;">The NHibernate Profiler provides a lot of valuable (technical and statistical) data on the current activity:</p>
<ul style="text-align: justify;">
<li>SQL statements per session with additional information: Details, stack trace, and alerts. Alerts are some warnings which Ayende explains on his website.</li>
<li>A session usage report: Number of entities loaded, entities loaded, duration, etc.</li>
<li>A session analysis, e.g. <em>View by Method</em> which displays all SQL statements generated by a particular method of a module.</li>
<li>Statistics not only on the sessions, but also on the session factory.</li>
</ul>
<p style="text-align: justify;">We have used it several times to see, what our modules using NHibernate internally do. In particular, the alert information have been extremely valuable for us.</p>
<p style="text-align: justify;">Obviously, there are still some minor bugs in the beta version of the tool. For example, we get a <em>Use of implicit transactions is discouraged</em> alert although we only have explicit transactions.</p>
<h3>Usage</h3>
<p style="text-align: justify;">In order to debug an application, the client for monitoring the activity has to be started. This client provides all the information explained above.</p>
<p style="text-align: justify;">The best way to make your application communicate with the client is to <strong>use log4net</strong>, for the <strong>application</strong> (and the solution/project) <strong>does not need to be changed</strong> in any way in this case (provided that you already use log4net in your application). Just <strong>add an appender</strong> in the <strong>log4net.config</strong> file and make the required loggers <strong>use that appender</strong>.</p>
<p style="text-align: justify;">Example:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;appender</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;NHibernate.Profiler&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;HibernatingRhinos.NHibernate.Profiler.Appender.NHibernateProfilerAppender, HibernatingRhinos.NHibernate.Profiler.Appender&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;sink</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;tcp://localhost:22897/NHibernateAppenderLoggingSink&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/appender<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;logger</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;NHibernate.Transaction.AdoTransaction&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;level</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;DEBUG&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;appender-ref</span> <span style="color: #000066;">ref</span>=<span style="color: #ff0000;">&quot;NHibernate.Profiler&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/logger<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;logger</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;NHibernate.Loader.Loader&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;level</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;DEBUG&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;appender-ref</span> <span style="color: #000066;">ref</span>=<span style="color: #ff0000;">&quot;NHibernate.Profiler&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/logger<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;logger</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;NHibernate.SQL&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;level</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;DEBUG&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;appender-ref</span> <span style="color: #000066;">ref</span>=<span style="color: #ff0000;">&quot;NHibernate.Profiler&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/logger<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;logger</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;NHibernate.Impl.SessionImpl&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;level</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;DEBUG&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;appender-ref</span> <span style="color: #000066;">ref</span>=<span style="color: #ff0000;">&quot;NHibernate.Profiler&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/logger<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;logger</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;NHibernate.Persister.Entity.AbstractEntityPersister&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;level</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;DEBUG&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;appender-ref</span> <span style="color: #000066;">ref</span>=<span style="color: #ff0000;">&quot;NHibernate.Profiler&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/logger<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p style="text-align: justify;">As this example shows, the profiler appender class has to be referenced and a TCP sink for the communication with the client has to be declared. The defined loggers redirect the  required information to the profiler. Finally, the DLL containing the profiler appender class has to be stored in the application directory. That&#8217;s all. When running the application, the NHibernate activities are monitored by the client.</p>
<p style="text-align: justify;">You can (and due to the licence, you probably must) ship your application without the profiler appender class DLL. There is no need to modify the log4net.config file, though. The profiler appender does not have to be removed. log4net just complains (within its log file), that the particular appender could not be instantiated (because it was not found). If you do not want that message in the log file, you have to ship your application with a log4net.config which does not contain the profiler appender.</p>
<p style="text-align: justify;"><strong>Another way</strong> to use the profiler is to reference the HibernatingRhinos.NHibernate.Profiler.Appender.dll and make the following call within the application startup:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">HibernatingRhinos.<span style="color: #0000FF;">NHibernate</span>.<span style="color: #0000FF;">Profiler</span>.<span style="color: #0000FF;">Appender</span>.<span style="color: #0000FF;">NHibernateProfiler</span>.<span style="color: #0000FF;">Initialize</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></div>

<p style="text-align: justify;">But as this means a change of the application code and requires a reference within the project, I do prefer the first kind of usage. Additionally, the application cannot be shipped when modified in this way. (Remember, you may not ship the profiler appender class DLL with your application.)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bollow.name/2009/03/nice-tool-nhibernate-profiler/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Now working on CCD orange degree</title>
		<link>http://blog.bollow.name/2009/03/now-working-on-ccd-orange-degree/</link>
		<comments>http://blog.bollow.name/2009/03/now-working-on-ccd-orange-degree/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 20:57:00 +0000</pubDate>
		<dc:creator>Erik Bollow</dc:creator>
		
		<category><![CDATA[Soft Skills]]></category>

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

		<category><![CDATA[Clean Code Developer]]></category>

		<guid isPermaLink="false">http://blog.bollow.name/?p=59</guid>
		<description><![CDATA[I have mentioned the Clean Code Developer (CCD) and its idea earlier. After having worked on the red (1st) degree so far, I am currently focusing on the principles, rules, and practices of the orange (2nd) degree.
The orange degree emphasises:


Principles


One level of abstraction


Single Responsibility Principle


Separation of concerns




Rules


Source code conventions




Practices


Issue tracking


Automated integration tests


Read, read, read


Reviews




A two [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">I have mentioned the <a title="CCD" href="http://www.clean-code-developer.de" target="_blank"><strong>Clean Code Developer</strong></a> (<em>CCD</em>) and its idea earlier. After having worked on the red (1st) degree so far, I am currently focusing on the principles, rules, and practices of the orange (2nd) degree.</p>
<p style="text-align: justify;">The <strong><a title="CCD orange degree" href="http://www.clean-code-developer.de/wiki/CcdOrangerGrad" target="_blank">orange degree</a></strong> emphasises:</p>
<ul style="text-align: justify;">
<li>
<div><strong>Principles</strong></div>
<ul>
<li>
<div>One level of abstraction</div>
</li>
<li>
<div>Single Responsibility Principle</div>
</li>
<li>
<div>Separation of concerns</div>
</li>
</ul>
</li>
<li>
<div><strong>Rules</strong></div>
<ul>
<li>
<div>Source code conventions</div>
</li>
</ul>
</li>
<li>
<div><strong>Practices</strong></div>
<ul>
<li>
<div>Issue tracking</div>
</li>
<li>
<div>Automated integration tests</div>
</li>
<li>
<div>Read, read, read</div>
</li>
<li>
<div>Reviews</div>
</li>
</ul>
</li>
</ul>
<p style="text-align: justify;">A two sentences subsumption: The principles and rules of the orange degree <strong>support readability and understanding</strong> of source code. The practices are related more or less to the <strong>soft skills</strong> of a software developer.</p>
<p style="text-align: justify;">The first degree was comparably easy, because I was already aware of most of its elements. Nevertheless, it took me almost two months not to violate the <a title="CCD degrees" href="http://www.clean-code-developer.de/wiki/CcdGrade" target="_blank">21 day rule</a>, which says, that you may not violate any of the aspects of your current degree for that time span before you go on to the next degree.</p>
<p style="text-align: justify;">Just one remark: CCD defines <em>professionalism</em> for a software developer. The application of what is said there leads straight to <strong>better</strong> (i.e. <strong>higher quality</strong>) <strong>software</strong>. It was not expressed that explicitly in my first post on CCD. But it seems important to me.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bollow.name/2009/03/now-working-on-ccd-orange-degree/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Scrum Master part of the team?</title>
		<link>http://blog.bollow.name/2009/02/scrum-master-part-of-the-team/</link>
		<comments>http://blog.bollow.name/2009/02/scrum-master-part-of-the-team/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 21:17:00 +0000</pubDate>
		<dc:creator>Erik Bollow</dc:creator>
		
		<category><![CDATA[Scrum]]></category>

		<category><![CDATA[Scrum Roles]]></category>

		<guid isPermaLink="false">http://blog.bollow.name/?p=45</guid>
		<description><![CDATA[It is said almost everywhere that a Scrum Master should not be part of the developer team. And in my experience, this really should be avoided.
Due to several circumstances it may be that you have a part-time Scrum Master, who has to switch between that role and the one of a team member. But there [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">It is said almost everywhere that a <strong>Scrum Master should not be part of the developer team</strong>. And in my experience, this really should be avoided.</p>
<p style="text-align: justify;">Due to several circumstances it may be that you have a part-time Scrum Master, who has to switch between that role and the one of a team member. But there are <strong>several reasons for that a Scrum Master should do his mastering job</strong> rather than being occupied with working on Sprint Backlog items:</p>
<ul style="text-align: justify;">
<li>The Scrum Master role defines a full-time job if it is taken seriously. Serving all the facets of that role consumes all of the Scrum Master&#8217;s available time.</li>
<li>Having the Scrum Master role alone avoids conflicts of interests. How can a Scrum Master be neutral and propose an appropriate solution if there is a conflict between the Product Owner and the team, and he is a team member the same time?</li>
<li>A Scrum Master has a better position for moderation if he is not involved in the everyday business of working on the Sprint Backlog items. This makes him have a more abstract and less emotional view on what happens during the Sprint.</li>
<li>In case the Sprint Goal is in danger: I bet, a part-time Scrum Master will decide to concentrate his work on the Sprint Backlog items, neglecting his alter ego. This definitely results in a weak Scrum Master and means a danger for a proper Scrum process.</li>
</ul>
<p style="text-align: justify;">For sure, these aspects are even more important when you want to carry Scrum into your enterprise for the first time. At that time, obeying the Scrum rules is crucial for success. And so, the <strong>Scrum Master should not be distracted from doing his job</strong>. Part of this job is implementing Scrum and comprises - among others - creating an understanding of the underlying concepts in the mind of the people involved. He acts as a change agent!</p>
<p style="text-align: justify;">If you do have a Scrum Master who is a team member also, you should check the option, that he is <strong>not the Scrum Master of his own team</strong>. This prevents him from at least a few conflicts of interests and puts him in a better position for his moderation jobs.</p>
<p style="text-align: justify;">Fortunately, we recently had a change. We do not have Scrum Masters any more, who are members of the developer teams the same time. A Scrum Master now is responsible for up to four teams and the same number of Product Owners.</p>
<p style="text-align: justify;">Just two more ideas concerning the Scrum Master role, which may lead slightly off topic, but I find them worth mentioning here:</p>
<p style="text-align: justify;">First, when starting to implement Scrum or trying to do Scrum seriously, I advise a <strong>Scrum Master</strong> not being part of the company originally, i.e., he <strong>should not be recruited from the existing staff</strong>. This helps him</p>
<ul style="text-align: justify;">
<li>to have a better standing towards the management. A prophet has no honour in his own country.</li>
<li>to have a better standing towards the team as well. For the team members do not know him, they have an open mind to what he tells.</li>
<li>to be impartial, because he can be more objective. He does not know all the internal things of the company at the time he starts his job.</li>
<li>to find out the skills and abilities of the team, because he can have an unprejudiced look on it.</li>
</ul>
<p style="text-align: justify;">Second, I hardly dare to mention, that of course a <strong>Scrum Master</strong> <strong>has to be well versed</strong> in Scrum, agility, etc. in general and to be well versed in his role in particular. I.e., when the decision for doing Scrum is made, an experienced Scrum Master should be engaged. Furthermore, the Scrum Master role requires a lot of soft skills - first to mention communication skills. (But the latter is worth another blog post&#8230;)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bollow.name/2009/02/scrum-master-part-of-the-team/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Clean Code as fundament for professional software development</title>
		<link>http://blog.bollow.name/2009/01/clean-code-as-fundament-for-professional-software-development/</link>
		<comments>http://blog.bollow.name/2009/01/clean-code-as-fundament-for-professional-software-development/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 21:00:01 +0000</pubDate>
		<dc:creator>Erik Bollow</dc:creator>
		
		<category><![CDATA[Soft Skills]]></category>

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

		<category><![CDATA[Clean Code Developer]]></category>

		<guid isPermaLink="false">http://blog.bollow.name/?p=11</guid>
		<description><![CDATA[
As a software developer, don’t we seek for more professionalism? But the question is rather: What does professionalism mean in this context?
The Clean Code Developer (German website) can be an answer for the latter question. That site was initiated by Stefan Lieser and Ralf Westphal. For them, there are two aspects which define a professional [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">
<p style="text-align: justify;">As a software developer, don’t we seek for more professionalism? But the question is rather: What does professionalism mean in this context?</p>
<p style="text-align: justify;">The <a title="CCD" href="http://www.clean-code-developer.de" target="_blank">Clean Code Developer</a> (German website) can be an answer for the latter question. That site was initiated by <a title="Stefan Lieser" href="http://www.lieser-online.de" target="_blank">Stefan Lieser</a> and <a title="Ralf Westphal" href="http://www.ralfw.de" target="_blank">Ralf Westphal</a>. For them, there are two aspects which define a <strong>professional software developer</strong>. Such a professional</p>
<ul style="text-align: justify;">
<li>
<div><strong>reflects</strong>, if he is satisfied with what he does and has done, and therefore</div>
</li>
<li>
<div>has an <strong>internal value system</strong>.</div>
</li>
</ul>
<p style="text-align: justify;">Ralf and Stefan want to define what the <strong>attitude</strong> of a professional programmer <strong>towards his work</strong> should be and how he should work. This definition is expected not to be complete, i.e. they expect changes of it due to new insights. But it should be mentioned that one of the very basic concepts is <strong>reflexion</strong>.</p>
<p style="text-align: justify;">Ralf and Stefan took their ideas from the book <em>Clean Code</em> by <a title="Robert C. Martin" href="http://www.objectmentor.com/omTeam/martin_r.html" target="_blank">Robert C. Martin</a>, which I already had in my shelf before I got notice of the Clean Code Developer site. The content of this (very good) book is not really new. Rather, it is a compilation of known <strong>principles</strong>, <strong>rules</strong>, <strong>and practices</strong> for the field of software development. And so the purpose of the Clean Code Developer site is to gather these concepts and thus to be a guideline for developers who want to be professional.</p>
<p style="text-align: justify;">A <strong>Clean Code Developer</strong> (CCD) runs through different <strong>degrees</strong>. Each degree sets the focus on a subset of the principles, rules, and practices. The degrees are represented by colours, starting with black and ending with white. If you have the feeling, that you really regard all the aspects of a certain degree, you can go on to the next one. (There is no exam to pass. You are responsible for yourself.) Currently, I am working on the red degree, which of course is the real entry point for a prospective Clean Code Developer. I am convinced by what Ralf and Stefan are trying to establish as well as I was by Robert&#8217;s book.</p>
<p>Keep your code clean!</p>
<hr style="text-align: justify;" />
<p style="text-align: justify;">Worth to be read:</p>
<p><img src="http://blog.bollow.name/wp-content/uploads/2009/01/covercleancode-2.jpg" alt="Clean Code Cover" width="90" height="90" align="left" />Martin, Robert C.: <em>Clean Code. A Handbook of Agile Software Craftsmanship.<br />
</em>Prentice Hall, 2009.<br />
ISBN-13: 978-0-13-235088-4<br />
ISBN-10: 0-13-235088-2</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bollow.name/2009/01/clean-code-as-fundament-for-professional-software-development/feed/</wfw:commentRss>
		</item>
		<item>
		<title>There&#8217;s a new blog in town&#8230;</title>
		<link>http://blog.bollow.name/2009/01/theres-a-new-blog-in-town/</link>
		<comments>http://blog.bollow.name/2009/01/theres-a-new-blog-in-town/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 23:31:21 +0000</pubDate>
		<dc:creator>Erik Bollow</dc:creator>
		
		<category><![CDATA[Announcement]]></category>

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

		<guid isPermaLink="false">http://blog.bollow.name/?p=5</guid>
		<description><![CDATA[Some time ago I was told that it might be a good idea to run a blog. Normally, I don’t like this kind of  hype things. I don’t need to have a blog just because everyone does.
But there was one thing that made me think it over. I have learned a lot from the [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Some time ago I was told that it might be a good idea to run a blog. Normally, I don’t like this kind of  hype things. I don’t need to have a blog just because everyone does.</p>
<p align="justify">But there was one thing that made me think it over. I have learned a lot from the internet, because there are people who share their ideas. This is my point: Sometimes, I’m seeking for ideas rather than information. Blogs turned out to be a valuable source for that. So why don’t be bi-directional, i.e. try to give something back using the same way? Maybe my thoughts can be an impulse for others out there?</p>
<p align="justify">As the subtitle of this blog states, I’m interested in anything that has to do with Computer Science. Currently, my favourites are from the domain of professional software development. This comprises technologies and techniques as well as soft skills. Consequently, these will be - at least at the beginning - the topics of my posts.</p>
<p align="justify">So, stay tuned, maybe you’ll find something interesting for you here, too!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bollow.name/2009/01/theres-a-new-blog-in-town/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
