<?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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Melle Koning Blog</title>
	<atom:link href="http://www.mellekoning.nl/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mellekoning.nl</link>
	<description>Programming and software development in a team</description>
	<lastBuildDate>Sat, 04 May 2013 11:54:24 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Twitter feed page</title>
		<link>http://www.mellekoning.nl/index.php/2013/05/01/twitter-feed-page/</link>
		<comments>http://www.mellekoning.nl/index.php/2013/05/01/twitter-feed-page/#comments</comments>
		<pubDate>Wed, 01 May 2013 16:29:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.mellekoning.nl/?p=683</guid>
		<description><![CDATA[]]></description>
				<content:encoded><![CDATA[<!-- RSPEAK_STOP --> <a href='http://wr.readspeaker.com/webreader/webreader.php?cid=dd6262a4ba859cbb9032fa17f541664d&t=wordpress_free&url=http://www.mellekoning.nl/index.php/2013/05/01/twitter-feed-page/&title=Twitter feed page' onclick='readpage(this.href, 683); return false;'> <img src='http://graphics.readspeaker.com/images/wr/listen_nl_nl.gif' style='border-style: none;' alt='Lees voor met webReader'></a><div id='WR_683'></div> <!-- RSPEAK_START --> <div id="twitter-feed-Mellekoning" class="fts-twitter-div">
      <p>RT @RegiBlinker: Goodmorning, I had a dream that this guy was dribbling inside and shot the winning goal in a CL final.. #dorbay <a href="http://t.c…" target="_blank" rel="nofollow">http://t.c…</a></p><div class="tweeter-info"><div class="fts-twitter-image"><img class="twitter-image" src="http://a0.twimg.com/profile_images/2946749611/6a5ff3e7fd7f63d5a8bc5255925a4bd1_normal.jpeg" /></div><div class="uppercase bold"><a href="https://twitter.com/#!/MelleKoning" target="_blank" class="black">@Melle Koning</a></div><div class="right"><a href="http://twitter.com/MelleKoning/status/338400088583970816">May 25, 2013, at 9:04 pm</a></div></div>
      <p>Superspel puzzel met treintjes! <a href="http://t.co/lEyRu8BI6T" target="_blank" rel="nofollow">http://t.co/lEyRu8BI6T</a></p><div class="tweeter-info"><div class="fts-twitter-image"><img class="twitter-image" src="http://a0.twimg.com/profile_images/2946749611/6a5ff3e7fd7f63d5a8bc5255925a4bd1_normal.jpeg" /></div><div class="uppercase bold"><a href="https://twitter.com/#!/MelleKoning" target="_blank" class="black">@Melle Koning</a></div><div class="right"><a href="http://twitter.com/MelleKoning/status/338282140280164354">May 25, 2013, at 1:15 pm</a></div></div>
      <p>Always write tests! "No we can't". Oh yes you can. "There is no time". You have if you write tests. "The code does not allow it" Change it!</p><div class="tweeter-info"><div class="fts-twitter-image"><img class="twitter-image" src="http://a0.twimg.com/profile_images/2946749611/6a5ff3e7fd7f63d5a8bc5255925a4bd1_normal.jpeg" /></div><div class="uppercase bold"><a href="https://twitter.com/#!/MelleKoning" target="_blank" class="black">@Melle Koning</a></div><div class="right"><a href="http://twitter.com/MelleKoning/status/338023112748724224">May 24, 2013, at 8:06 pm</a></div></div>
      <p>YOLO <a href="http://t.co/Hg5mfvKN5y" target="_blank" rel="nofollow">http://t.co/Hg5mfvKN5y</a></p><div class="tweeter-info"><div class="fts-twitter-image"><img class="twitter-image" src="http://a0.twimg.com/profile_images/2946749611/6a5ff3e7fd7f63d5a8bc5255925a4bd1_normal.jpeg" /></div><div class="uppercase bold"><a href="https://twitter.com/#!/MelleKoning" target="_blank" class="black">@Melle Koning</a></div><div class="right"><a href="http://twitter.com/MelleKoning/status/336583312455921664">May 20, 2013, at 8:44 pm</a></div></div>
      <p>Grondwet 20.3 "Nederlanders [.] die niet in het bestaan kunnen voorzien, hebben [.] recht op bijstand van overheidswege." Niet-NL niet? #dtv</p><div class="tweeter-info"><div class="fts-twitter-image"><img class="twitter-image" src="http://a0.twimg.com/profile_images/2946749611/6a5ff3e7fd7f63d5a8bc5255925a4bd1_normal.jpeg" /></div><div class="uppercase bold"><a href="https://twitter.com/#!/MelleKoning" target="_blank" class="black">@Melle Koning</a></div><div class="right"><a href="http://twitter.com/MelleKoning/status/336385678000660480">May 20, 2013, at 7:39 am</a></div></div>
  <div class="clear"></div>
</div> 


 <!-- RSPEAK_STOP -->]]></content:encoded>
			<wfw:commentRss>http://www.mellekoning.nl/index.php/2013/05/01/twitter-feed-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>No branching, does not mean: no branching.</title>
		<link>http://www.mellekoning.nl/index.php/2013/03/24/no-branching-does-not-mean-no-branching/</link>
		<comments>http://www.mellekoning.nl/index.php/2013/03/24/no-branching-does-not-mean-no-branching/#comments</comments>
		<pubDate>Sun, 24 Mar 2013 08:41:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.mellekoning.nl/?p=675</guid>
		<description><![CDATA[In the book &#8216;automated delivery&#8217; there is this controversial statement: Thus one of the more controversial statements in Continuous Delivery is that you can’t do continuous integration and use branches. However, with new systems like DVCS branching is incredibly easy so no branching? What is actually meant here? Continuous Delivery: Reliable Software Releases through Build, [...]]]></description>
				<content:encoded><![CDATA[<!-- RSPEAK_STOP --> <a href='http://wr.readspeaker.com/webreader/webreader.php?cid=dd6262a4ba859cbb9032fa17f541664d&t=wordpress_free&url=http://www.mellekoning.nl/index.php/2013/03/24/no-branching-does-not-mean-no-branching/&title=No branching, does not mean: no branching.' onclick='readpage(this.href, 675); return false;'> <img src='http://graphics.readspeaker.com/images/wr/listen_nl_nl.gif' style='border-style: none;' alt='Lees voor met webReader'></a><div id='WR_675'></div> <!-- RSPEAK_START --> <p>In the book &#8216;automated delivery&#8217; there is this <a href="http://continuousdelivery.com/2011/05/make-large-scale-changes-incrementally-with-branch-by-abstraction/">controversial statement</a>:</p>
<blockquote><p><strong>Thus one of the more controversial statements in Continuous Delivery is that you can’t do continuous integration and use branches.</strong></p></blockquote>
<p>However, with new systems like DVCS branching is incredibly easy so no branching? What is actually meant here?</p>
<table border="0" bgcolor="#ffff99" width="80%">
<tr>
<td valign="middle"><a href="http://www.amazon.com/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912?tag=wwwmellekonin-20"> <img src="http://ecx.images-amazon.com/images/I/51UYBHnvjFL._SL75_.jpg" alt=""></a></td>
<td valign="middle">
                            <a href="http://www.amazon.com/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912?tag=wwwmellekonin-20">Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler))</a><br />The bible on continuous  delivery<br/></td>
</tr>
</table>
<p>During a session on supporting multiple versions of our software application we got into the argument if we should create multiple <strong>copies</strong> of our system by using branches. Keeping multiple copies (in different branches) of your software is of course a totally different statement then just &#8216;use branching&#8217;.</p>
<p>The book gives the answer to that option op using <strong>copies for versioning</strong> already, but think about the consequences of that approach. For example if you have to fix a bug in one of the <em>versions</em> you probably need to <em>copy</em> that fix over to the other <em>version branch</em>, which in time might divert to a different direction altogether. Divert, because different <em>versions</em> of software always divert as you are supporting different <em>clients</em>.</p>
<p>Now, think about what would happen if you just have one application. Supporting <em>multiple</em> versions. The same software supports all the different clients that it needs to support. Your software might have different entry points.</p>
<p>- It can support multiple currencies.<br />
- It can support multiple languages.<br />
- It can supports multiple different frontends, that itself can have different pages (ticketinsurance yes/no, discounts yes/no etcetera, etcetera)<br />
- It can support different workflows, wizards.<br />
The software also supports different backends, like when you support a service for maintaining shopping baskets, over time you might have to integrate with different financial backends. How? By <em>branching on abstraction</em>.<br />
That way, the software is highly configurable.</p>
<p>This would not have been possible if we would have different <em>versioning branches</em> for all of the possible config-switches / configurations to support all connectionted other software components.</p>
<p>We have one ‘pallet’ of options that is configurable. Having configurable software, switchable by settings makes integration flexible.</p>
<p>In the ever changing life cycle of software we can not maintain software in different <em>versioning</em> branches because bug-fixing would have to be done multiple times for each <em>versioning</em> branch.</p>
<p>So yes indeed: to support multiple versions that indeed will mean we have to support different versions and have multiple of the same kind of classes in the same codebranch indeed.<br />
However, at some point in time, we discontinue support for an older version, and then we remove it again. From the same codebase.</p>
<p>Note that this has always been the case for the mid office software we are working on within my current company <a title="Travix" href="http://www.travix.com">Travix</a>. Last months we switched and deleted support for connecting to several hotelproviders, carproviders or a previous flight provider. All with the same mid office servicelayer code. We have done this before.</p>
<p>So when you read a statement from a book about &#8216;do not use branches&#8217;, know that it is about &#8216;do not use branching for versioning&#8217; instead of &#8216;CI branches&#8217;. Please do use branches! Use them as much as you want, but just not for versioning! No branching means no branches for different versions of your software. </p>
<table border="0" bgcolor="#ffff99" width="80%">
<tr>
<td valign="middle"><a href="http://www.amazon.com/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912?tag=wwwmellekonin-20"> <img src="http://ecx.images-amazon.com/images/I/51UYBHnvjFL._SL75_.jpg" alt=""></a></td>
<td valign="middle">
                            <a href="http://www.amazon.com/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912?tag=wwwmellekonin-20">Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler))</a><br />The book is packed with information on getting your software on to continuous delivery. <br/></td>
</tr>
</table>
 <!-- RSPEAK_STOP -->]]></content:encoded>
			<wfw:commentRss>http://www.mellekoning.nl/index.php/2013/03/24/no-branching-does-not-mean-no-branching/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Software video&#8217;s</title>
		<link>http://www.mellekoning.nl/index.php/2012/11/24/software-videos/</link>
		<comments>http://www.mellekoning.nl/index.php/2012/11/24/software-videos/#comments</comments>
		<pubDate>Sat, 24 Nov 2012 07:49:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.mellekoning.nl/?p=641</guid>
		<description><![CDATA[Hi all, Two software video&#8217;s. One from &#8216;Uncle bob&#8217; on what he would expect from you when he was your CTO. The other is a recent posted video on refactoring with Resharper and NCrunch. Have fun! And another Practical refactoring with resharper and Ncrunc]]></description>
				<content:encoded><![CDATA[<!-- RSPEAK_STOP --> <a href='http://wr.readspeaker.com/webreader/webreader.php?cid=dd6262a4ba859cbb9032fa17f541664d&t=wordpress_free&url=http://www.mellekoning.nl/index.php/2012/11/24/software-videos/&title=Software video&#8217;s' onclick='readpage(this.href, 641); return false;'> <img src='http://graphics.readspeaker.com/images/wr/listen_nl_nl.gif' style='border-style: none;' alt='Lees voor met webReader'></a><div id='WR_641'></div> <!-- RSPEAK_START --> <p>Hi all,</p>
<p>Two software video&#8217;s. One from &#8216;Uncle bob&#8217; on what he would expect from you when he was your CTO. The other is a recent posted video on refactoring with Resharper and NCrunch. Have fun!</p>
<iframe src="http://player.vimeo.com/video/54025415?badge=0" width="500" height="375" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
<p><a href="http://vimeo.com/54025415">SCNA 2012: Robert Martin &#8211; The Reasonable Expectations of Your CTO</a> from <a href="http://vimeo.com/eighthlight">8th Light</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>
<p>And another <a href="http://tv.jetbrains.net/videocontent/practical-refactoring" title="Practical refactoring with resharper and Ncrunc" target="_blank">Practical refactoring with resharper and Ncrunc</a></p>
 <!-- RSPEAK_STOP -->]]></content:encoded>
			<wfw:commentRss>http://www.mellekoning.nl/index.php/2012/11/24/software-videos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fight technical debt</title>
		<link>http://www.mellekoning.nl/index.php/2012/11/20/fight-technical-debt-2/</link>
		<comments>http://www.mellekoning.nl/index.php/2012/11/20/fight-technical-debt-2/#comments</comments>
		<pubDate>Tue, 20 Nov 2012 21:29:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.mellekoning.nl/?p=637</guid>
		<description><![CDATA[I do not have a lot of blogposts on the subject of fighting technical debt. Maybe because as a developer it is such a clear thing that needs to be done that it is hard to imagine why -not- to do it. Old code that is not used, or code that is too hard to [...]]]></description>
				<content:encoded><![CDATA[<!-- RSPEAK_STOP --> <a href='http://wr.readspeaker.com/webreader/webreader.php?cid=dd6262a4ba859cbb9032fa17f541664d&t=wordpress_free&url=http://www.mellekoning.nl/index.php/2012/11/20/fight-technical-debt-2/&title=Fight technical debt' onclick='readpage(this.href, 637); return false;'> <img src='http://graphics.readspeaker.com/images/wr/listen_nl_nl.gif' style='border-style: none;' alt='Lees voor met webReader'></a><div id='WR_637'></div> <!-- RSPEAK_START --> <p>I do not have a lot of blogposts <a href="http://www.mellekoning.nl/index.php/2009/11/15/how-to-prove-the-software-works/">on the subject of fighting technical debt</a>. Maybe because as a developer it is such a clear thing that needs to be done that it is hard to imagine why -not- to do it.</p>
<p>Old code that is not used, or <a href="http://www.mellekoning.nl/index.php/2008/12/11/encapsulating-legacy-code/">code that is too hard to grok</a> simply gets in the way and we need to clean up thoroughly to pave the way ahead. We want to keep momentum to maintain our speed.</p>
<p>As william puts it <a href="http://www.williamcaputo.com/archives/000310.html">refactoring is not a cost</a>:</p>
<blockquote><p>My advice to managers (..) Reward and encourage deleting of unused code; fight for and insist that programmers be given time to refactor and otherwise eliminate unused code, and don&#8217;t account for time spent doing so in the same way you do the creation of code.</p>
<p>My advice to programmers: Delete unused code at *every* opportunity and scale (function, class, file, project, organization); don&#8217;t compare the effort to do so to writing code; work at all times to have your software feature-set reflect its actual, operational use.</p></blockquote>
<p>Or to put it in my own words, developers can be compared to Knights:</p>
<p><a href="https://mobile.twitter.com/mellekoning/status/270434557021536256">Sour Knights flee surrender or choose other fights. Brave Knights refactor and tame the beast!</a></p>
<p>Continue the fight, young warrior. And do not get distracted.</p>
 <!-- RSPEAK_STOP -->]]></content:encoded>
			<wfw:commentRss>http://www.mellekoning.nl/index.php/2012/11/20/fight-technical-debt-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NHibernate: No implicit transactions</title>
		<link>http://www.mellekoning.nl/index.php/2012/11/18/nhibernate-no-implicit-transactions/</link>
		<comments>http://www.mellekoning.nl/index.php/2012/11/18/nhibernate-no-implicit-transactions/#comments</comments>
		<pubDate>Sun, 18 Nov 2012 10:44:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.mellekoning.nl/?p=620</guid>
		<description><![CDATA[We assume the reader knows that NHibernate is one of the best ORM&#8217;s build for .NET. Implicit transactions are discouraged Generally &#8220;implicit transactions are discouraged&#8221; (ref: http://www.google.nl/search?hl=nl&#38;q=implicit+transactions+are+discouraged) However, webservices can be build by simply opening up an NHibernate session whenever a new webCall arrives at the server. Than simply handle all data manipulation and closing [...]]]></description>
				<content:encoded><![CDATA[<!-- RSPEAK_STOP --> <a href='http://wr.readspeaker.com/webreader/webreader.php?cid=dd6262a4ba859cbb9032fa17f541664d&t=wordpress_free&url=http://www.mellekoning.nl/index.php/2012/11/18/nhibernate-no-implicit-transactions/&title=NHibernate: No implicit transactions' onclick='readpage(this.href, 620); return false;'> <img src='http://graphics.readspeaker.com/images/wr/listen_nl_nl.gif' style='border-style: none;' alt='Lees voor met webReader'></a><div id='WR_620'></div> <!-- RSPEAK_START --> <p><em>We assume the reader knows that NHibernate is one of the best ORM&#8217;s build for .NET.</em></p>
<h1>Implicit transactions are discouraged</h1>
<p>Generally &#8220;implicit transactions are discouraged&#8221; (ref: <a class="external-link" href="http://www.google.nl/search?hl=nl&amp;q=implicit+transactions+are+discouraged" rel="nofollow">http://www.google.nl/search?hl=nl&amp;q=implicit+transactions+are+discouraged</a>)</p>
<p>However, webservices can be build by simply opening up an NHibernate session whenever a new webCall arrives at the server. Than simply handle all data manipulation and closing the NHibernate session when the webCall ends. THis is usually done when the context for the service is going to be setup during inputfilters and outputfilters, or if you work with WCF using things like custom Behaviors.</p>
<p>The problem with this is that it makes reads from the database as well as updates to the database kind of uncontrollable. If you use implicit transactions you really never know for sure what object updates cause SQL update statements to the database. This of course is not a good thing.</p>
<p>When using an ORM like NHibernate we really should be using explicit transactions, even for database read actions.</p>
<p>We can describe this wish using the following example user stories:</p>
<p><strong>To be able to support NHibernate second level cache,<br />
all read actions should be written<br />
with explicit transactions.<br />
</strong></p>
<p>or:</p>
<p><strong>To better control what is updated in the database<br />
we need to prevent NHibernate properties registered as &#8216;dirty&#8217;<br />
by the NHibernate framework therefore we<br />
need to use explicit transactions when writing,<br />
updating or reading from the database<br />
</strong></p>
<p><h2>Example of the difference</h2>
<p>So what is this all about really? Well here is an example of the difference for a reading action:</p>
<p>This first piece of code that assumes an NHibernate session is already opened thus considered an implicit transaction</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="C#"><div class="devcodeoverflow"><ol><li><span style="color: #0600FF; font-weight: bold;">public</span> List<span style="color: #008000;">&lt;</span>Airport<span style="color: #008000;">&gt;</span> FinAirportLocationList<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">string</span> nameCriterium, <span style="color: #008000;">...</span> <span style="color: #008000;">&#41;</span></li><li><span style="color: #008000;">&#123;</span></li><li>&nbsp;&nbsp;<span style="color: #008080; font-style: italic;">//get current session</span></li><li>&nbsp;&nbsp;ISession session <span style="color: #008000;">=</span> HaddockSession<span style="color: #008000;">.</span><span style="color: #0000FF;">Current</span><span style="color: #008000;">.</span><span style="color: #0000FF;">CurrentSession</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;<span style="color: #008080; font-style: italic;">//construct query</span></li><li>&nbsp;&nbsp;<span style="color: #6666cc; font-weight: bold;">string</span> queryString <span style="color: #008000;">=</span> <span style="color: #666666;">@&quot;select l from Location l inner join fetch l.Names as names where names.Text&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li><li><span style="color: #666666;">like :searchcriteria&quot;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;IQuery query <span style="color: #008000;">=</span> session<span style="color: #008000;">.</span><span style="color: #0000FF;">CreateQuery</span><span style="color: #008000;">&#40;</span>queryString<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;query<span style="color: #008000;">.</span><span style="color: #0000FF;">SetString</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;searchcriteria&quot;</span>, nameCriterium <span style="color: #008000;">+</span> <span style="color: #666666;">&quot;%&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;query<span style="color: #008000;">.</span><span style="color: #0000FF;">SetCacheable</span><span style="color: #008000;">&#40;</span><span style="color: #0600FF; font-weight: bold;">true</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;IList<span style="color: #008000;">&lt;</span>Location<span style="color: #008000;">&gt;</span> list <span style="color: #008000;">=</span> query<span style="color: #008000;">.</span><span style="color: #0000FF;">List</span><span style="color: #008000;">&lt;</span>Location<span style="color: #008000;">&gt;</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;<span style="color: #0600FF; font-weight: bold;">return</span> list<span style="color: #008000;">;</span></li><li><span style="color: #008000;">&#125;</span></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Here is an example that reads data with an explicit transaction:</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="C#"><div class="devcodeoverflow"><ol><li><span style="color: #0600FF; font-weight: bold;">public</span>&nbsp;&nbsp; IList<span style="color: #008000;">&lt;</span>Location<span style="color: #008000;">&gt;</span> GetAllLocations<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span></li><li><span style="color: #008000;">&#123;</span></li><li>&nbsp;&nbsp;IList<span style="color: #008000;">&lt;</span>Location<span style="color: #008000;">&gt;</span> locationList<span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008000;">&#40;</span>ISession session <span style="color: #008000;">=</span> HaddockSession<span style="color: #008000;">.</span><span style="color: #0000FF;">SessionFactory</span><span style="color: #008000;">.</span><span style="color: #0000FF;">OpenNewSession</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </li><li>&nbsp;&nbsp;<span style="color: #008000;">&#123;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008000;">&#40;</span>ITransaction transaction <span style="color: #008000;">=</span> SessionFactory<span style="color: #008000;">.</span><span style="color: #0000FF;">BeginTransaction</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #008000;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IQuery query <span style="color: #008000;">=</span> session<span style="color: #008000;">.</span><span style="color: #0000FF;">CreateQuery</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;select l from Location l inner join fetch l.Names as names&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; locationList <span style="color: #008000;">=</span> query<span style="color: #008000;">.</span><span style="color: #0000FF;">List</span><span style="color: #008000;">&lt;</span>Location<span style="color: #008000;">&gt;</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; transaction<span style="color: #008000;">.</span><span style="color: #0000FF;">Commit</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>&nbsp;&nbsp;<span style="color: #008080; font-style: italic;">// always commit: needed for 2nd level cache</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #008000;">&#125;</span></li><li>&nbsp;&nbsp; <span style="color: #008000;">&#125;</span></li><li>&nbsp;</li><li>&nbsp;&nbsp; <span style="color: #0600FF; font-weight: bold;">return</span>&nbsp;&nbsp;locationList<span style="color: #008000;">;</span></li><li><span style="color: #008000;">&#125;</span></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>Note that this example wiil have to enable access to the Nhibernate sessionfactory. This Sessionfactory will need to be controlled per application.</p>
<p>Benefits of explicit transactions are:</p>
<ul>
<li> It drives developers into awareness when database access is happening. This is especially important to ;<a title="make roles explicit" href="http://www.infoq.com/presentations/Making-Roles-Explicit-Udi-Dahan" target="_blank"> make roles explicit. </a>
<li> of course also important for awareness of performance of your application
<li> Explicit transactions for read access enables the possibility to use NHibernate second level cache.
<li> Creates awareness what is necessary to load during a transaction. This is because when a session is closed, lazy-loaded properties/lists will not be loaded automatically anymore by NHibernate. Note the small &#8216;fetch&#8217; statement in the above example: it pre-fetches the names collection of Locations.
<li> It makes clear what your root-aggregates are and how you want to load these.
</ul>
<p>And for the sake of more detailed information: <A Href="http://www.gitshah.com/2012/03/nhibernate-and-caching-part-2.html">A good example how to configure 2nd level cache for NHibernate can be found on gitshah.com</A>.</p>
<p>Conclusion: Do not fall for the trap of using implicit transactions with NHibernate. When you start with NHibernate as your ORM, start with explicit transactions. See if you can use the<a href="http://nhforge.org/wikis/patternsandpractices/nhibernate-and-the-unit-of-work-pattern.aspx" target="_blank"> Unit of Work pattern for NHibernate</a> if you need it for user stories that need to update multiple objects during one webcall.</p>
 <!-- RSPEAK_STOP -->]]></content:encoded>
			<wfw:commentRss>http://www.mellekoning.nl/index.php/2012/11/18/nhibernate-no-implicit-transactions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The informative workspace</title>
		<link>http://www.mellekoning.nl/index.php/2012/11/04/the-informative-workspace/</link>
		<comments>http://www.mellekoning.nl/index.php/2012/11/04/the-informative-workspace/#comments</comments>
		<pubDate>Sun, 04 Nov 2012 00:08:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[peopleware]]></category>
		<category><![CDATA[workspace]]></category>

		<guid isPermaLink="false">http://www.mellekoning.nl/?p=613</guid>
		<description><![CDATA[Hey all, before I show an example of an informative workspace, first another quote from the book, The Art of Agile Development An informative workspace broadcasts information into the room. When people take a break, they will sometimes wander over and stare at the information surrounding them. Sometimes, that brief zoneout will result in an [...]]]></description>
				<content:encoded><![CDATA[<!-- RSPEAK_STOP --> <a href='http://wr.readspeaker.com/webreader/webreader.php?cid=dd6262a4ba859cbb9032fa17f541664d&t=wordpress_free&url=http://www.mellekoning.nl/index.php/2012/11/04/the-informative-workspace/&title=The informative workspace' onclick='readpage(this.href, 613); return false;'> <img src='http://graphics.readspeaker.com/images/wr/listen_nl_nl.gif' style='border-style: none;' alt='Lees voor met webReader'></a><div id='WR_613'></div> <!-- RSPEAK_START --> <p>Hey all, before I show an example of an informative workspace, first another quote from the book,  <a href="http://www.amazon.com/gp/product/0596527675/ref=as_li_tf_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0596527675&amp;linkCode=as2&amp;tag=wwwmellekonin-20"><em>The Art of Agile Development</em></a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=wwwmellekonin-20&amp;l=as2&amp;o=1&amp;a=0596527675" alt="" width="1" height="1" border="0" /></p>
<blockquote><p>An informative workspace broadcasts information into the room. When people take a break, they will sometimes wander over and stare at the information surrounding them. Sometimes, that brief zoneout will result in an aha moment of discovery. <P>An informative workspace also allows people to sense the state of the project just by walking into the room. It conveys status information without interrupting team members and helps improve stakeholder trust</p></blockquote>
<p>Right. So, here&#8217;s an example of such a workplace:</p>
<div align="center">
<p><a href="http://www.mellekoning.nl/wp-content/uploads/2012/11/20121103-220756.jpg"><img src="http://www.mellekoning.nl/wp-content/uploads/2012/11/20121103-220756.jpg" alt="20121103-220756.jpg" class="alignnone size-full" /></a><br/><br />
An ideal agile teamroom. Note that the kitchen is not in the room, there are walls in between.</p>
</div>
<p>Let us quickly go around this room. Suppose you were working here? You will like the windows! being able to immediately look outside to let the creative mind wander is an asset not every developer is given. Embrace that as long as it lasts!</p>
<p>Of course the scrum board and story board look to be placed wrong as the Product Owner (PO) might need to be close to the story board while the Devs should be closer to the scrumboard. But this apparent mismatch actually is a good thing: people will move around the room and notice discussions at boards outside of their designated roles. This is important to prevent silo&#8217;s from (re)ocurring.</p>
<p>If we enter the room via the door, we see the information radiate at us from all walls immediately. To the left we can see the long wall that has the story board for all upcoming sprints:</p>
<div align="center">
<a href="http://www.mellekoning.nl/wp-content/uploads/2012/11/20121104-002323.jpg"><img src="http://www.mellekoning.nl/wp-content/uploads/2012/11/20121104-002323.jpg" alt="20121104-002323.jpg" class="alignnone size-full" /></a><br/><br />
The story board.
</div>
<p>The story board contains all the user stories we could think of to complete the product. Sized by the team in t-shirt sizes (small, medium, large) to give the global overview.</p>
<p>To the immediate left of the door when entering we see a graph that shows the burndown chart plus something we really emphasize these days: our code coverage. It is reaching 80%, a pretty good figure.</p>
<div align="center">
<a href="http://www.mellekoning.nl/wp-content/uploads/2012/11/20121104-003040.jpg"><img src="http://www.mellekoning.nl/wp-content/uploads/2012/11/20121104-003040.jpg" alt="20121104-003040.jpg" class="alignnone size-full" /></a><br/><br />
<em>Burndown and code coverage graph.</em>
</div>
<p>If you have designs, maybe made or drawn by a business analyst or graphic designer don&#8217;t let it rot in an electronic document stored in an unknown place of your company wiki, but print it all out and be sure to display it:</p>
<div align="center">
<a href="http://www.mellekoning.nl/wp-content/uploads/2012/11/20121104-003523.jpg"><img src="http://www.mellekoning.nl/wp-content/uploads/2012/11/20121104-003523.jpg" alt="20121104-003523.jpg" class="alignnone size-full" /></a><br/><br />
<em>Screenshots of initial designs, possible prototype screens.</em>
</div>
<p>Of course we also have our  <a href="http://www.mellekoning.nl/index.php/2011/10/08/going-agile-with-scrum-the-taskboard/">planning board or taskboard</a> Aka&#8230;</p>
<div align="center">
<p><a href="http://www.mellekoning.nl/wp-content/uploads/2012/11/20121104-002214.jpg"><img src="http://www.mellekoning.nl/wp-content/uploads/2012/11/20121104-002214.jpg" alt="20121104-002214.jpg" class="alignnone size-full" /></a><br />
 <a href="http://www.mellekoning.nl/index.php/2011/10/08/going-agile-with-scrum-the-taskboard/"><em>Scrumboard</em></a>
</div>
<p>We definately need a drawing board too:</p>
<div align="center">
<a href="http://www.mellekoning.nl/wp-content/uploads/2012/11/20121104-005936.jpg"><img src="http://www.mellekoning.nl/wp-content/uploads/2012/11/20121104-005936.jpg" alt="20121104-005936.jpg" class="alignnone size-full" /></a><br />
Drawing board, great for drawing designs.
</div>
<p>Lastbut not least, we always update our weekly events on our weekboard. Crucial because it shows what team members might not be in during the week, for whatever reason, or raises attention to important upcoming events like trainings, the sprint review and retrospective or planned team events.</p>
<div align="center">
<p><a href="http://www.mellekoning.nl/wp-content/uploads/2012/11/20121104-004245.jpg"><img src="http://www.mellekoning.nl/wp-content/uploads/2012/11/20121104-004245.jpg" alt="20121104-004245.jpg" class="alignnone size-full" /></a>
</div>
<p>In short: the informative workspace shows all team members what is being worked on, raises important focus points for the team and helps the team to collaborate to achieve.</p>
<p>Questions? Let me know how your team configured your teamroom! What are we missing here?</p>
<p><em>Melle is currently in the role if Scrum Master at Travix International in the Netherlands. He is a proficient team lead and has more than fifteen years experience in the industry in different roles from software engineer, unit manager, test coordinator, team lead, coach of software engineers, to scrum master. If you want to know more, get in touch.</em></p>
 <!-- RSPEAK_STOP -->]]></content:encoded>
			<wfw:commentRss>http://www.mellekoning.nl/index.php/2012/11/04/the-informative-workspace/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>XP Energized work</title>
		<link>http://www.mellekoning.nl/index.php/2012/10/17/xp-energized-work/</link>
		<comments>http://www.mellekoning.nl/index.php/2012/10/17/xp-energized-work/#comments</comments>
		<pubDate>Wed, 17 Oct 2012 11:59:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.mellekoning.nl/?p=593</guid>
		<description><![CDATA[Currently reading a book on Agile Development: ;The Art of Agile Development from O&#8217;Reilly by James Shore and Shane Warden. In Chapter II of the book there is a full description on doing proper eXtreme Programming (in short XP, that&#8217;s why the capitalization is there). An excerpt: How to Be Energized One of the simplest [...]]]></description>
				<content:encoded><![CDATA[<!-- RSPEAK_STOP --> <a href='http://wr.readspeaker.com/webreader/webreader.php?cid=dd6262a4ba859cbb9032fa17f541664d&t=wordpress_free&url=http://www.mellekoning.nl/index.php/2012/10/17/xp-energized-work/&title=XP Energized work' onclick='readpage(this.href, 593); return false;'> <img src='http://graphics.readspeaker.com/images/wr/listen_nl_nl.gif' style='border-style: none;' alt='Lees voor met webReader'></a><div id='WR_593'></div> <!-- RSPEAK_START --> <p>Currently reading a book on Agile Development: ;<a href="http://www.amazon.com/gp/product/0596527675/ref=as_li_tf_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0596527675&amp;linkCode=as2&amp;tag=wwwmellekonin-20">The Art of Agile Development from O&#8217;Reilly by James Shore and Shane Warden.</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=wwwmellekonin-20&amp;l=as2&amp;o=1&amp;a=0596527675" alt="" width="1" height="1" border="0" /></p>
<p>In Chapter II of the book there is a full description on doing proper eXtreme Programming (in short XP, that&#8217;s why the capitalization is there).</p>
<p>An excerpt:</p>
<table>
<tbody>
<tr>
<th><strong>How to Be Energized</strong></th>
</tr>
<tr>
<td>One of the simplest ways to be energized is to take care of</p>
<p>yourself. Go home on time every day. Spend time with family</td>
<td align="center" bgcolor="#dddddd">Go home on time.</td>
</tr>
<tr>
<td colspan="2">and friends and engage in activities that take your mind off</p>
<p>of work. Eat healthy foods, exercise, and get plenty of sleep.</p>
<p>While you’re busy with these other things, your brain will turn over the events of the day. You’ll often</p>
<p>have new insights in the morning.This isn’t easy. Energized work requires a supportive workplace and home life. It’s also a personal choice;</p>
<p>there’s no way to force someone to be energized. However, you can remove roadblocks.</td>
</tr>
<tr>
<td colspan="2"><strong>Supporting Energized Work</strong></td>
</tr>
<tr>
<td>One of my favorite techniques as a coach is to remind people</p>
<p>to go home on time. Tired people make mistakes and take</p>
<p>shortcuts.</td>
<td align="center" bgcolor="#dddddd">Stay home when you’re sick.</p>
<p>You risk getting other people</p>
<p>sick, too.</td>
</tr>
<tr>
<td colspan="2">The resulting errors can end up costing more than</p>
<p>the work is worth. This is particularly true when someone is</p>
<p>sick; in addition to doing poor work, she could infect other</p>
<p>people.</td>
</tr>
<tr>
<td>
Sprinting to the finish line is one thing; sprinting for miles is another. Extended overtime will not solve your schedule problems. In fact, it has serious negative consequences. DeMarco calls extended overtime “an important productivity-reduction technique,” leading to reduced quality, personnel burnout, increased turnover of staff, and ineffective use of time during normal hours [DeMarco 2002] (p. 64). </Td>
<td align="center" bgcolor="#dddddd">Extended overtime will not solve your schedule problems</td>
<tr>
<td colspan="2">If you work overtime one week (whatever “overtime” means in your situation), don’t work overtime again the next week. If I see a team sprinting more than once or twice per quarter, I look for deeper problems
</td>
</tr>
</tbody>
</table>
<p>It&#8217;s clear that the book is packed with common sense. <a href="http://www.mellekoning.nl/index.php/2012/01/06/scrum-is-impossible-without-quality/">if you do not take the time to deliver quality, you will never get it either.</a></p>
<div id="attachment_594" class="wp-caption aligncenter" style="width: 650px"><a href="http://www.mellekoning.nl/index.php/2012/10/17/xp-energized-work/energizedwork/" rel="attachment wp-att-594"><img class="size-full wp-image-594" title="energizedwork" src="http://www.mellekoning.nl/wp-content/uploads/2012/10/energizedwork.jpg" alt="Energized work" width="640" height="360" /></a><p class="wp-caption-text">Eat healthy foods! Seems I am doing that already!</p></div>
<p>Must say that in our scrum team we also adhere to those kind of standards. We do see other teams bragging about their weekly overtime, even going along in weekends, but we also see the results. Some teams take on a &#8216;whatever it takes&#8217; mentality. Developers in those teams can be sick after a few weeks of death marches. So why bother? Just stay fresh and focused during normal work hours and your team will be very productive.</p>
<p>More on this in the book, I highly recommend it: <a href="http://www.amazon.com/gp/product/0596527675/ref=as_li_tf_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0596527675&amp;linkCode=as2&amp;tag=wwwmellekonin-20">The Art of Agile Development</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=wwwmellekonin-20&amp;l=as2&amp;o=1&amp;a=0596527675" alt="" width="1" height="1" border="0" /></p>
<p>What are your thoughts on this?</p>
 <!-- RSPEAK_STOP -->]]></content:encoded>
			<wfw:commentRss>http://www.mellekoning.nl/index.php/2012/10/17/xp-energized-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lekker gegeten bij restaurant Swoel</title>
		<link>http://www.mellekoning.nl/index.php/2012/09/16/lekker-gegeten-bij-restaurant-swoel/</link>
		<comments>http://www.mellekoning.nl/index.php/2012/09/16/lekker-gegeten-bij-restaurant-swoel/#comments</comments>
		<pubDate>Sun, 16 Sep 2012 06:46:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.mellekoning.nl/?p=584</guid>
		<description><![CDATA[Restaurant Swoel is erg klein, en daarom ook heel gezellig. Op bovenstaande foto zie je me in m&#8217;n &#8216;freedom of speech&#8217; T-shirt genieten van een vispasteitje, onderdeel van het 3 gangen dagmenu dat ik koos. Dit voorafje is een gerecht op zichzelf. Twee in bladerdeeg gehulde gehakte vispastei, heerlijk mediterraan gekruid, wat een smaak! Mijn [...]]]></description>
				<content:encoded><![CDATA[<!-- RSPEAK_STOP --> <a href='http://wr.readspeaker.com/webreader/webreader.php?cid=dd6262a4ba859cbb9032fa17f541664d&t=wordpress_free&url=http://www.mellekoning.nl/index.php/2012/09/16/lekker-gegeten-bij-restaurant-swoel/&title=Lekker gegeten bij restaurant Swoel' onclick='readpage(this.href, 584); return false;'> <img src='http://graphics.readspeaker.com/images/wr/listen_nl_nl.gif' style='border-style: none;' alt='Lees voor met webReader'></a><div id='WR_584'></div> <!-- RSPEAK_START --> <p><a href="http://www.mellekoning.nl/wp-content/uploads/2012/09/20120916-104702.jpg"><img src="http://www.mellekoning.nl/wp-content/uploads/2012/09/20120916-104702.jpg" alt="20120916-104702.jpg" class="alignnone size-full" /></a></p>
<p><a href="http://www.swoel.nl/">Restaurant Swoel</a> is erg klein, en daarom ook heel gezellig. Op bovenstaande foto zie je me in m&#8217;n &#8216;freedom of speech&#8217; T-shirt genieten van een vispasteitje, onderdeel van het 3 gangen dagmenu dat ik koos. Dit voorafje is een gerecht op zichzelf. Twee in bladerdeeg gehulde gehakte vispastei, heerlijk mediterraan gekruid, wat een smaak! Mijn eega koos voor de pasteitjes met  geitenkaas, zoete uitjes, dadels,  amandelen en saffraan. Aangezien we de gerechten verkeerd om geserveerd kregen kan ik vertellen dat ook die heerlijk is. Vooral de zuur zoete smaken in de salade er omheen maken het helemaal af.</p>
<p>Onze tweede gang bestond uit een pastagerecht, helaas of expres niet geheel al dente, en voor mij een Tajine (stoofpotje) van lam met kaneel en rozijnen, volkoren cous cous en seizoensgroenten, in dit jaargetijde een bijpassende zomerse salade. Beide gerechten hebben volgens de vriendelijke bediening van Swoel hun oorsprong in Turkije, en vielen beiden zeer in de smaak door een juist gebruik van garnituur. We bestelden hier ons tweede biertje. Alfa en Hoegaarden Wit zijn merken die bij Swoel worden geserveerd.</p>
<p>De keuken van Swoel lijkt klein omdat chefkok Peter van der Wal achter de bar druk aan het koken is voor alle gasten. Voor de gasten die op de lange bank aan de lange kant van de zaak zitten biedt dit een fraai schouwspel. De gasten aan de andere kant moeten het doen met te harde stoelen en elke gast zie je dan ook grijpen naar de kussentjes op de bank om het soms lange wachten wat te veraangenamen. Tip: zorg dat u zit met kussentjes in de rug, voordat u hier te laat achter komt.</p>
<p>We rondden af met werkelijk fenomenale desserts: een Oosterse hangop met abrikozen en amandelen, een zeer lichtfijne smaak. Het dagdessert was een Italiaanse eucalypta ijs; roomboterzacht, licht gezoet en een frisse limoensmaak.</p>
<p>Ons eindoordeel: geweldige gerechten, volgende keer zorgen voor betere stoel dan zeker iets om terug te komen!</p>
 <!-- RSPEAK_STOP -->]]></content:encoded>
			<wfw:commentRss>http://www.mellekoning.nl/index.php/2012/09/16/lekker-gegeten-bij-restaurant-swoel/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Using the right tools!</title>
		<link>http://www.mellekoning.nl/index.php/2012/08/21/plankjes/</link>
		<comments>http://www.mellekoning.nl/index.php/2012/08/21/plankjes/#comments</comments>
		<pubDate>Tue, 21 Aug 2012 09:12:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.mellekoning.nl/?p=555</guid>
		<description><![CDATA[Just as with software engineering, you have to use the right tools when doing the hardware side of live! First we plan and measure where to put the holes in the wall with a water level / plumb rule&#8230; Than it&#8217;s time to make some real noise! Playing with a hammer drill&#8230; To create some [...]]]></description>
				<content:encoded><![CDATA[<!-- RSPEAK_STOP --> <a href='http://wr.readspeaker.com/webreader/webreader.php?cid=dd6262a4ba859cbb9032fa17f541664d&t=wordpress_free&url=http://www.mellekoning.nl/index.php/2012/08/21/plankjes/&title=Using the right tools!' onclick='readpage(this.href, 555); return false;'> <img src='http://graphics.readspeaker.com/images/wr/listen_nl_nl.gif' style='border-style: none;' alt='Lees voor met webReader'></a><div id='WR_555'></div> <!-- RSPEAK_START --> <p>Just as with software engineering, you have to use the right tools when doing the hardware side of live! First we plan and measure where to put the holes in the wall with a water level / plumb rule&#8230;</p>
<p>Than it&#8217;s time to make some real noise! Playing with a hammer drill&#8230; To create some sturdy shelves in the room of my son Theun!</p>
<p><a href="http://www.mellekoning.nl/wp-content/uploads/2012/08/20120821-114525.jpg"><img src="http://www.mellekoning.nl/wp-content/uploads/2012/08/20120821-114525.jpg" alt="20120821-114525.jpg" class="alignnone size-full" /></a></p>
<p><a href="http://www.mellekoning.nl/wp-content/uploads/2012/08/20120821-115019.jpg"><img src="http://www.mellekoning.nl/wp-content/uploads/2012/08/20120821-115019.jpg" alt="20120821-115019.jpg" class="alignnone size-full" /></a><br />
Theun can help in his room of course&#8230;</p>
<p><a href="http://www.mellekoning.nl/wp-content/uploads/2012/08/20120821-115054.jpg"><img src="http://www.mellekoning.nl/wp-content/uploads/2012/08/20120821-115054.jpg" alt="20120821-115054.jpg" class="alignnone size-full" /></a></p>
<p><a href="http://www.mellekoning.nl/wp-content/uploads/2012/08/20120821-115126.jpg"><img src="http://www.mellekoning.nl/wp-content/uploads/2012/08/20120821-115126.jpg" alt="20120821-115126.jpg" class="alignnone size-full" /></a><br />
The train passes by outside&#8230;</p>
<p><a href="http://www.mellekoning.nl/wp-content/uploads/2012/08/20120821-115150.jpg"><img src="http://www.mellekoning.nl/wp-content/uploads/2012/08/20120821-115150.jpg" alt="20120821-115150.jpg" class="alignnone size-full" /></a></p>
<p>Great when the framework is stable. This is where we can build upon!</p>
<p><a href="http://www.mellekoning.nl/wp-content/uploads/2012/08/20120821-115210.jpg"><img src="http://www.mellekoning.nl/wp-content/uploads/2012/08/20120821-115210.jpg" alt="20120821-115210.jpg" class="alignnone size-full" /></a><br />
Cleaning up after use.. Always put some grease on the drill to prevent rust!</p>
<p><a href="http://www.mellekoning.nl/wp-content/uploads/2012/08/20120821-115238.jpg"><img src="http://www.mellekoning.nl/wp-content/uploads/2012/08/20120821-115238.jpg" alt="20120821-115238.jpg" class="alignnone size-full" /></a><br />
Inbetween demo, review the work. We&#8217;re almost done.</p>
<p><a href="http://www.mellekoning.nl/wp-content/uploads/2012/08/20120821-115312.jpg"><img src="http://www.mellekoning.nl/wp-content/uploads/2012/08/20120821-115312.jpg" alt="20120821-115312.jpg" class="alignnone size-full" /></a><br />
Want to have all shelves aligned the same! Not relative but absolute positioning!</p>
<p><a href="http://www.mellekoning.nl/wp-content/uploads/2012/08/20120821-115337.jpg"><img src="http://www.mellekoning.nl/wp-content/uploads/2012/08/20120821-115337.jpg" alt="20120821-115337.jpg" class="alignnone size-full" /></a><br />
This is good, client/product owner wants to use what is built already and understands the purpose.</p>
<p><a href="http://www.mellekoning.nl/wp-content/uploads/2012/08/20120821-115414.jpg"><img src="http://www.mellekoning.nl/wp-content/uploads/2012/08/20120821-115414.jpg" alt="20120821-115414.jpg" class="alignnone size-full" /></a><br />
Looks great.</p>
<p><a href="http://www.mellekoning.nl/wp-content/uploads/2012/08/20120821-115429.jpg"><img src="http://www.mellekoning.nl/wp-content/uploads/2012/08/20120821-115429.jpg" alt="20120821-115429.jpg" class="alignnone size-full" /></a><br />
Dank papa!</p>
 <!-- RSPEAK_STOP -->]]></content:encoded>
			<wfw:commentRss>http://www.mellekoning.nl/index.php/2012/08/21/plankjes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>What motivates us, really?</title>
		<link>http://www.mellekoning.nl/index.php/2012/08/15/what-motivates-us-really/</link>
		<comments>http://www.mellekoning.nl/index.php/2012/08/15/what-motivates-us-really/#comments</comments>
		<pubDate>Wed, 15 Aug 2012 18:49:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.mellekoning.nl/?p=530</guid>
		<description><![CDATA[What motivates us really? The question is posed by Daniel Pink in his book: Drive: The Surprising Truth About What Motivates Us If you have been working in business for some time already then your gut reaction might be &#8216;Money!&#8217;. Although this is true for simple tasks the same is not so true anymore for [...]]]></description>
				<content:encoded><![CDATA[<!-- RSPEAK_STOP --> <a href='http://wr.readspeaker.com/webreader/webreader.php?cid=dd6262a4ba859cbb9032fa17f541664d&t=wordpress_free&url=http://www.mellekoning.nl/index.php/2012/08/15/what-motivates-us-really/&title=What motivates us, really?' onclick='readpage(this.href, 530); return false;'> <img src='http://graphics.readspeaker.com/images/wr/listen_nl_nl.gif' style='border-style: none;' alt='Lees voor met webReader'></a><div id='WR_530'></div> <!-- RSPEAK_START --> <p>What motivates us really? </p>
<p>The question is posed by Daniel Pink in his book:</p>
<p><a href="http://www.amazon.com/gp/product/1594484805/ref=as_li_tf_tl?ie=UTF8&#038;camp=1789&#038;creative=9325&#038;creativeASIN=1594484805&#038;linkCode=as2&#038;tag=wwwmellekonin-20">Drive: The Surprising Truth About What Motivates Us</a><img src="http://www.assoc-amazon.com/e/ir?t=wwwmellekonin-20&#038;l=as2&#038;o=1&#038;a=1594484805" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p>
<p>If you have been working in business for some time already then your gut reaction might be &#8216;Money!&#8217;. Although this is true for simple tasks the same is not so true anymore for complex tasks where creative thoughts are necessary to complete the job. </p>
<p>Watch this movie that was posted after the book was published. It is a summary of what is there in more detail in the book itself:</p>
<p>http://www.youtube.com/watch?v=u6XAPnuFjJc&#038;sns=em</p>
<p><iframe class="youtube-player" type="text/html" width="640" height="385" src="http://www.youtube.com/embed/u6XAPnuFjJc" frameborder="0"><br />
</iframe></p>
<p>So, we have to aim for the following keywords to get the best out of us, wether it is our work or the olympics&#8230;</p>
<p>Mastery<br />
Autonomy<br />
Purpose</p>
 <!-- RSPEAK_STOP -->]]></content:encoded>
			<wfw:commentRss>http://www.mellekoning.nl/index.php/2012/08/15/what-motivates-us-really/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
