<?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>Steve van der Merwe&#039;s BLOG</title>
	<atom:link href="http://www.stevevandermerwe.net/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.stevevandermerwe.net/blog</link>
	<description>Musings on software</description>
	<lastBuildDate>Thu, 14 Jan 2010 14:34:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Build systems</title>
		<link>http://www.stevevandermerwe.net/blog/?p=106</link>
		<comments>http://www.stevevandermerwe.net/blog/?p=106#comments</comments>
		<pubDate>Fri, 25 Dec 2009 08:35:34 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[Gradle]]></category>

		<guid isPermaLink="false">http://www.stevevandermerwe.net/blog/?p=106</guid>
		<description><![CDATA[Have a look at the following blog : http://karussell.wordpress.com/2009/09/29/evolution-of-build-systems/. Here he is talking about Gradle and Buildr as the next evolution in build tools &#8211; have to say I do agree with his picture. Personally I really like Gradle &#8211; I am waiting for good IDE integration though
]]></description>
			<content:encoded><![CDATA[<p>Have a look at the following blog : http://karussell.wordpress.com/2009/09/29/evolution-of-build-systems/. Here he is talking about Gradle and Buildr as the next evolution in build tools &#8211; have to say I do agree with his picture. Personally I really like Gradle &#8211; I am waiting for good IDE integration though</p>
<div id="attachment_107" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.stevevandermerwe.net/blog/wp-content/uploads/2009/12/build-system-evolution13.png"><img class="size-medium wp-image-107" title="build-system-evolution13" src="http://www.stevevandermerwe.net/blog/wp-content/uploads/2009/12/build-system-evolution13-300x272.png" alt="Build system evolution" width="300" height="272" /></a><p class="wp-caption-text">Build system evolution</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.stevevandermerwe.net/blog/?feed=rss2&amp;p=106</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grails web development</title>
		<link>http://www.stevevandermerwe.net/blog/?p=104</link>
		<comments>http://www.stevevandermerwe.net/blog/?p=104#comments</comments>
		<pubDate>Sat, 12 Dec 2009 19:37:11 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.stevevandermerwe.net/blog/?p=104</guid>
		<description><![CDATA[Have got me head buried deep in grails. I must say it has some really good concepts. The way it gets out of the way and lets you focus on &#8220;building up the layers of the onion&#8221; from the domain model upwards is really great. My only worry at the moment is that it seems to [...]]]></description>
			<content:encoded><![CDATA[<p>Have got me head buried deep in <a title="Grails" href="http://www.grails.org" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.grails.org?referer=');">grails</a>. I must say it has some really good concepts. The way it gets out of the way and lets you focus on &#8220;building up the layers of the onion&#8221; from the domain model upwards is really great. My only worry at the moment is that it seems to use quite a bit of memory.. But I cant believe how quickly I have created useful sites &#8211; pity that I am terrible at anything artistic (my eight year old daughter draws much better than me..) and they look like they need a facelift&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stevevandermerwe.net/blog/?feed=rss2&amp;p=104</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tao of architecture</title>
		<link>http://www.stevevandermerwe.net/blog/?p=94</link>
		<comments>http://www.stevevandermerwe.net/blog/?p=94#comments</comments>
		<pubDate>Sat, 07 Nov 2009 04:48:10 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.stevevandermerwe.net/blog/?p=94</guid>
		<description><![CDATA[This is an interesting read on the Tao of the software architect. A bit fluffy but if you are in a philosophical mood&#8230;.
]]></description>
			<content:encoded><![CDATA[<p>This is an interesting read on the <a title="Tao of the software architect" href="http://www.bredemeyer.com/tao_by_Kruchten.htm" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.bredemeyer.com/tao_by_Kruchten.htm?referer=');">Tao of the software architect</a>. A bit fluffy but if you are in a philosophical mood&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stevevandermerwe.net/blog/?feed=rss2&amp;p=94</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aspects to “good code”</title>
		<link>http://www.stevevandermerwe.net/blog/?p=83</link>
		<comments>http://www.stevevandermerwe.net/blog/?p=83#comments</comments>
		<pubDate>Thu, 05 Nov 2009 12:32:57 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.stevevandermerwe.net/blog/?p=83</guid>
		<description><![CDATA[So, I often have to think about what makes good code. Is it code that is using the latest features of the language, the best patterns, the best layered design, uses the least amount of memory or performs the best? Obviously these are concerns when you design an application but should they be the first [...]]]></description>
			<content:encoded><![CDATA[<p>So, I often have to think about what makes good code. Is it code that is using the latest features of the language, the best patterns, the best layered design, uses the least amount of memory or performs the best? Obviously these are concerns when you design an application but should they be the <strong>first</strong> things you think of? Probably not!</p>
<p>So then what should you look at? After a bit of head scratching and navel contemplating I came to the following conclusions.So obviously the code / system needs to be scalable, correct (no bugs), complete (delivers what is needed), extendability (it can grow organically) and well documented, but ultimately it will probably live for a long time and will be worked on by many people so&#8230; drum roll please&#8230;It needs to be easy to maintain and of good quality (have unit tests etc).</p>
<div style="text-align: center;"><a href="http://www.stevevandermerwe.net/blog/wp-content/uploads/2009/11/Good-Code1.jpg"><img src="http://www.stevevandermerwe.net/blog/wp-content/uploads/2009/11/Good-Code-tm.jpg" alt="Good Code" width="227" height="100" /></a></div>
<h2 style="font: 12.0px Helvetica"><span style="letter-spacing: 0.0px"><strong>What is good code then?</strong></span></h2>
<p>I feel good code is code that “everyone” feels they understand. It is easy to change, add to and re-factor. It should be as simple as possible (but no simpler) and should be as loosely coupled to other systems as possible.</p>
<p style="font: 12.0px Helvetica; min-height: 14.0px">
<h2 style="font: 12.0px Helvetica"><span style="letter-spacing: 0.0px"><strong>Why should we write good code?</strong></span></h2>
<p>Well the simple fact is that usually many people work on the code over the lifecycle of a system. People leave, get hit by a bus, move on, go to jail etc and someone else needs to maintain what is left behind. The most maintenance programmers either want to completely rewrite all aspects they touch or they are too terrified to touch anything so they bolt bits on the side of programs because it is just too complex to maintain. Both of these scenario’s are bad for everyone involved. Ideally if we approached every project with the spirit of “Ubuntu” i.e. we code for the people that follow us (egoless), things would be a lot better in the long run. Also, if we built quality in right from the start (by using things like Test Driven Design &#8211; TDD) it would make the life of people making changes to the code much easier since they have a suite of tests to run that will make them more confidant about making changes (the tests should catch any foul ups or unconsidered side effects)</p>
<div style="text-align: center;"><a href="http://www.stevevandermerwe.net/blog/wp-content/uploads/2009/11/Good-Code-Aspects-to-Quality.jpg"><img src="http://www.stevevandermerwe.net/blog/wp-content/uploads/2009/11/Good-Code-Aspects-to-Quality-tm.jpg" alt="Good Code - Aspects to Quality.jpg" width="216" height="100" /></a></div>
<p>Lately we have been doing a lot of code audits for firms. This involves looking at the software process from a number of angles.This includes the following:</p>
<ul>
<li>Architecture and design</li>
<li style="list-style: none">
<ul>
<li>We usually look for the following aspects</li>
<li style="list-style: none">
<ul>
<li>Scalability</li>
<li>Integration points and methods</li>
<li>Flexibility</li>
<li>Performance and monitoring</li>
<li>Database layout and schema</li>
</ul>
</li>
</ul>
</li>
<li>Code quality</li>
<li style="list-style: none">
<ul>
<li>Follows coding style</li>
<li>Commented and “JavaDoc”ed</li>
<li>Simple as possible design</li>
<li>Patterns implemented</li>
</ul>
</li>
<li>Documentation</li>
<li style="list-style: none">
<ul>
<li>Architecture documentation (UML, Context diagram,etc.)</li>
<li>Specification of some sort</li>
<li>Technical specification</li>
<li>Non-functional requirements (load, performance,etc..)</li>
</ul>
</li>
<li>Testing</li>
<li style="list-style: none">
<ul>
<li>Unit tests</li>
<li>Load tests</li>
<li>Performance testing and monitoring</li>
</ul>
</li>
<li>Change control processes</li>
<li style="list-style: none">
<ul>
<li>Source control implemented</li>
<li>Processes around change management</li>
<li>Continuous build environment</li>
<li>Issue management process</li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.stevevandermerwe.net/blog/?feed=rss2&amp;p=83</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SOA Manifesto (from http://soa-manifesto.org)</title>
		<link>http://www.stevevandermerwe.net/blog/?p=70</link>
		<comments>http://www.stevevandermerwe.net/blog/?p=70#comments</comments>
		<pubDate>Wed, 04 Nov 2009 03:53:30 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[SOA]]></category>

		<guid isPermaLink="false">http://www.stevevandermerwe.net/blog/?p=70</guid>
		<description><![CDATA[Service orientation is a paradigm that frames what you do.
Service-oriented  architecture (SOA) is a type of architecture that results from applying service orientation.
We have been applying service orientation to help organizations consistently deliver sustainable business value, with increased agility and  cost effectiveness, in line with changing business needs.
Through our work we have come [...]]]></description>
			<content:encoded><![CDATA[<p style="margin: 0px; padding: 0px; line-height: 120%;">Service orientation is a paradigm that frames what you do.<br />
Service-oriented  architecture (SOA) is a type of architecture that results from applying service orientation.</p>
<p style="line-height: 120%; margin-bottom: 8px; margin-top: 8px;">We have been applying service orientation to help organizations consistently deliver sustainable business value, with increased agility and  cost effectiveness, in line with changing business needs.</p>
<p style="margin: 0px; padding: 0px;">Through our work we have come to prioritize:</p>
<ul>
<li><strong>Business value</strong> over technical strategy</li>
<li><strong>Strategic goals</strong> over project-specific benefits</li>
<li><strong>Intrinsic interoperability</strong> over custom integration</li>
<li><strong>Shared services</strong> over specific-purpose implementations</li>
<li><strong>Flexibility</strong> over optimization</li>
<li><strong>Evolutionary refinement</strong> over pursuit of initial perfection</li>
</ul>
<p style="margin-top: 5px; padding-top: 0px;">That is, while we value the items on the right, we value the items on the left more.</p>
<h1 style="font-size: 20px;">Guiding Principles</h1>
<p><em>We follow these principles:</em></p>
<div style="width: 550px;">
<ul>
<li>Respect the social and power structure of  the organization.</li>
</ul>
<ul>
<li>Recognize that SOA ultimately demands  change on many levels.</li>
</ul>
<ul>
<li>The scope of SOA adoption can vary. Keep  efforts manageable and within meaningful boundaries.</li>
</ul>
<ul>
<li>Products and standards alone will neither  give you SOA nor apply the service  orientation paradigm for you.</li>
</ul>
<ul>
<li>SOA can be realized through a variety of  technologies and standards.</li>
</ul>
<ul>
<li>Establish a uniform set of enterprise  standards and policies based on industry,  de facto, and community standards.</li>
</ul>
<ul>
<li>Pursue uniformity on the outside while  allowing diversity on the inside.</li>
</ul>
<ul>
<li>Identify services through collaboration with  business and technology stakeholders.</li>
</ul>
<ul>
<li>Maximize service usage by considering the  current and future scope of utilization.</li>
</ul>
<ul>
<li>Verify that services satisfy business  requirements and goals.</li>
</ul>
<ul>
<li>Evolve services and their organization in  response to real use.</li>
</ul>
<ul>
<li>Separate the different aspects of a system  that change at different rates.</li>
</ul>
<ul>
<li>Reduce implicit dependencies and publish  all external dependencies to increase  robustness and reduce the impact of change.</li>
</ul>
<ul>
<li>At every level of abstraction, organize each  service around a cohesive and manageable   unit of functionality.</li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.stevevandermerwe.net/blog/?feed=rss2&amp;p=70</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lost generation</title>
		<link>http://www.stevevandermerwe.net/blog/?p=51</link>
		<comments>http://www.stevevandermerwe.net/blog/?p=51#comments</comments>
		<pubDate>Fri, 23 Oct 2009 11:58:13 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://www.stevevandermerwe.net/blog/?p=51</guid>
		<description><![CDATA[
Interesting presentation &#8211; watch out for the catch &#8230;.
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="384" height="313" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/42E2fAWM6rA&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="384" height="313" src="http://www.youtube.com/v/42E2fAWM6rA&amp;hl=en&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Interesting presentation &#8211; watch out for the catch &#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stevevandermerwe.net/blog/?feed=rss2&amp;p=51</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft redesigns iPod packaging</title>
		<link>http://www.stevevandermerwe.net/blog/?p=46</link>
		<comments>http://www.stevevandermerwe.net/blog/?p=46#comments</comments>
		<pubDate>Fri, 23 Oct 2009 11:38:01 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Humour]]></category>

		<guid isPermaLink="false">http://www.stevevandermerwe.net/blog/?p=46</guid>
		<description><![CDATA[
Microsoft designs iPod packaging
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/EUXnJraKM3k&amp;hl=en&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/EUXnJraKM3k&amp;hl=en&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://www.youtube.com/watch?v=EUXnJraKM3k" onclick="pageTracker._trackPageview('/outgoing/www.youtube.com/watch?v=EUXnJraKM3k&amp;referer=');">Microsoft designs iPod packaging</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.stevevandermerwe.net/blog/?feed=rss2&amp;p=46</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter &#8230;..</title>
		<link>http://www.stevevandermerwe.net/blog/?p=35</link>
		<comments>http://www.stevevandermerwe.net/blog/?p=35#comments</comments>
		<pubDate>Fri, 23 Oct 2009 06:44:27 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.stevevandermerwe.net/blog/?p=35</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-full wp-image-34 aligncenter" title="twitter100_550" src="http://www.stevevandermerwe.net/blog/wp-content/uploads/2009/10/twitter100_550.gif" alt="twitter100_550" width="552" height="590" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.stevevandermerwe.net/blog/?feed=rss2&amp;p=35</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>If big corporates designed the stop sign..</title>
		<link>http://www.stevevandermerwe.net/blog/?p=30</link>
		<comments>http://www.stevevandermerwe.net/blog/?p=30#comments</comments>
		<pubDate>Fri, 23 Oct 2009 04:12:10 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Humour]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.stevevandermerwe.net/blog/?p=30</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.youtube.com/v/xwqPYeTSYng&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;feature=player_embedded&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/xwqPYeTSYng&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;feature=player_embedded&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.stevevandermerwe.net/blog/?feed=rss2&amp;p=30</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Why I like iBatis</title>
		<link>http://www.stevevandermerwe.net/blog/?p=6</link>
		<comments>http://www.stevevandermerwe.net/blog/?p=6#comments</comments>
		<pubDate>Thu, 22 Oct 2009 17:56:16 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Database]]></category>

		<guid isPermaLink="false">http://www.stevevandermerwe.net/blog/?p=6</guid>
		<description><![CDATA[
  



  

]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;">
  <a href="http://stevevandermerwe.yolasite.com/resources/iBatisBig.jpg" onclick="pageTracker._trackPageview('/outgoing/stevevandermerwe.yolasite.com/resources/iBatisBig.jpg?referer=');"><img class="yui-img" src="http://stevevandermerwe.yolasite.com/resources/iBatis.jpg" alt="" height="197" width="546" /></a>
</div>
<p></p>
<div class="zemanta-pixie">
  <img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=fabae4d3-c4f8-829d-ac4c-6a4abeb9ecdf" />
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.stevevandermerwe.net/blog/?feed=rss2&amp;p=6</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
