<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Software Archetypes</title>
	<atom:link href="http://archetypes.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://archetypes.wordpress.com</link>
	<description>Software patterns for the rest of us</description>
	<lastBuildDate>Fri, 27 Jul 2007 17:35:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='archetypes.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Software Archetypes</title>
		<link>http://archetypes.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://archetypes.wordpress.com/osd.xml" title="Software Archetypes" />
	<atom:link rel='hub' href='http://archetypes.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Generics in Java &#8211; powerful yet dangerous</title>
		<link>http://archetypes.wordpress.com/2007/07/27/generics-in-java-powerful-yet-dangerous/</link>
		<comments>http://archetypes.wordpress.com/2007/07/27/generics-in-java-powerful-yet-dangerous/#comments</comments>
		<pubDate>Fri, 27 Jul 2007 17:35:09 +0000</pubDate>
		<dc:creator>shanedempsey</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Micro Patterns]]></category>

		<guid isPermaLink="false">http://archetypes.wordpress.com/2007/07/27/generics-in-java-powerful-yet-dangerous/</guid>
		<description><![CDATA[I was having a conversation with Jonathan a few days ago about generics in Java. We were dusting off some old code, correcting half remembered bugs (the best kind) and giving it a shiny new coat of paint in the form of java generics and annotations. I&#8217;ll discuss annotations in later posts but our conversations [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=archetypes.wordpress.com&amp;blog=1177328&amp;post=15&amp;subd=archetypes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I was having a conversation with <a href="http://www.jbwan.com">Jonathan</a> a few days ago about generics in Java. We were dusting off some old code, correcting half remembered bugs (the best kind) and giving it a shiny new coat of paint in the form of java generics and annotations.</p>
<p>I&#8217;ll discuss annotations in later posts but our conversations hightlighted what I&#8217;ve discovered is an all too common misunderstanding about subtyping with java generics.  Just to be very clear, I believe java generics are a very very good thing. However, they require a bit of caution when applying to legacy code.  SUN already have an excellent guide to generics which is part of their <a href="http://java.sun.com/docs/books/tutorial/">Java Tutorial</a></p>
<p>However, I&#8217;ll just draw the readers attention to the two most common errors I&#8217;ve seen. Both relate to over-specialisation of a class following the application of generics.</p>
<p>The Java tutorial cites a simple operation on collections such as the outputting of a list.</p>
<blockquote><p> <code><strong>void</strong> printCollection(Collection c) {<br />
Iterator i = c.iterator();<br />
<strong>for</strong> (k = 0; k &lt; c.size(); k++) {<br />
System.out.println(i.next());<br />
}<br />
}</code></p></blockquote>
<p>And a naive attempt at writing it using generics (and the new  <code>for</code> loop syntax):</p>
<blockquote><p> <code><strong>void</strong> printCollection(Collection&lt;Object&gt; c) {<br />
<strong>for</strong> (Object e : c) {<br />
System.out.println(e);<br />
}<br />
}</code></p></blockquote>
<p>This looks really nice but the problem is that the printCollection now must be an Object and ONLY an Object. It&#8217;s very unlikely that was what was intended by the original author. This seems to be the first and most common mistake that every Java programmer who starts experimenting with generics makes. Yet I can see how this kind of thing could easily pass a unit test, one which uses a dummy java.lang.Object&#8230; ooops <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
Which leads us to non-trivial statements like the following.</p>
<blockquote><p><code><br />
public static &lt;T extends Object &amp; Comparable&gt;<br />
T max(Collection coll)<br />
<code></code></code></p></blockquote>
<p>Which means <em>Max is calculated on a collection where each element extends T and returns a value which is of type T that extends type java.lang.Object (for backwards compatibility) and is comparable in itself or is derived from a comparable type</em><br />
So generic programming actually requires more careful thoughts and explicit statement about type-safety than non-generic.<br />
I&#8217;m not actually sure this is an altogether good thing as it&#8217;s arguably impeding the adoption of generics, irregardless of their uses in the creation of extremely reusable and modular patterns.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/archetypes.wordpress.com/15/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/archetypes.wordpress.com/15/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/archetypes.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/archetypes.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/archetypes.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/archetypes.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/archetypes.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/archetypes.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/archetypes.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/archetypes.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/archetypes.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/archetypes.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/archetypes.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/archetypes.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/archetypes.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/archetypes.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=archetypes.wordpress.com&amp;blog=1177328&amp;post=15&amp;subd=archetypes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://archetypes.wordpress.com/2007/07/27/generics-in-java-powerful-yet-dangerous/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6c57367ca3fcf8a2bb14401ece5421e2?s=96&#38;d=identicon" medium="image">
			<media:title type="html">shanedempsey</media:title>
		</media:content>
	</item>
		<item>
		<title>OSGi for the Enteprise</title>
		<link>http://archetypes.wordpress.com/2007/07/12/osgi-for-the-enteprise/</link>
		<comments>http://archetypes.wordpress.com/2007/07/12/osgi-for-the-enteprise/#comments</comments>
		<pubDate>Thu, 12 Jul 2007 17:22:53 +0000</pubDate>
		<dc:creator>shanedempsey</dc:creator>
				<category><![CDATA[Deployment Blueprints]]></category>

		<guid isPermaLink="false">http://archetypes.wordpress.com/2007/07/12/osgi-for-the-enteprise/</guid>
		<description><![CDATA[Eric Newcomer, CTO of IONA, has an interesting blog on the use of OSGi for developing Enterprise applications. You can read more here. Eric is involved in the OSGi Enterprise Expert Group (EEG). Many OSGi experts make a convincing case for implementing SOA using OSGi due to it&#8217;s well thought out and integrated service publish, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=archetypes.wordpress.com&amp;blog=1177328&amp;post=14&amp;subd=archetypes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Eric Newcomer, CTO of IONA, has an interesting blog on the use of OSGi for developing Enterprise applications.  You can read more <a href="http://blogs.iona.com/newcomer/archives/000505.html" title="The Importance of OSGi for the Enterprise">here</a>.  Eric is involved in the OSGi Enterprise Expert Group (<a href="http://www2.osgi.org/EEG/HomePage" title="EEG">EEG</a>).</p>
<p>Many OSGi experts make a convincing case for implementing SOA using OSGi due to it&#8217;s well thought out and integrated service publish, discovery and bind mechanisms together with an explicit lifecycle model which incorporates service updates/patching. All in line with broader SOA objectives as defined by the <a href="http://www.osoa.org/display/Main/Home" title="open soa collaboration">Open SOA Collaboration</a></p>
<p>The EEG&#8217;s areas of interest include:</p>
<ul>
<li>scaling including multi-container and multi-process environments</li>
<li>Language bindings for enterprise services including, but not limited to the Java language</li>
<li>distributed and/or federated service model:
<ul>
<li>within multiple Service Platforms</li>
<li>with external, heterogeneous systems</li>
</ul>
</li>
<li>requirements for extensions to the <span class="wikiword">OSGi</span> publish/find/bind service model</li>
<li>bundle dependencies profiling and matching</li>
<li>enterprise-class life-cycle and configuration management
<ul>
<li>from initial provisioning</li>
<li>through software and asset management, patching, etc.</li>
<li>focused on desktops, laptops, and servers</li>
<li>including reliability, availability, serviceability concerns</li>
</ul>
</li>
</ul>
<p>It will be interesting to see whether the OSGi model is adopted by SOA implementors and what cross-pollination will occur between it and the WS* architects.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/archetypes.wordpress.com/14/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/archetypes.wordpress.com/14/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/archetypes.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/archetypes.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/archetypes.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/archetypes.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/archetypes.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/archetypes.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/archetypes.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/archetypes.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/archetypes.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/archetypes.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/archetypes.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/archetypes.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/archetypes.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/archetypes.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=archetypes.wordpress.com&amp;blog=1177328&amp;post=14&amp;subd=archetypes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://archetypes.wordpress.com/2007/07/12/osgi-for-the-enteprise/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6c57367ca3fcf8a2bb14401ece5421e2?s=96&#38;d=identicon" medium="image">
			<media:title type="html">shanedempsey</media:title>
		</media:content>
	</item>
		<item>
		<title>Applied patterns &#8211; parallelism</title>
		<link>http://archetypes.wordpress.com/2007/07/03/applied-patterns-parallelism/</link>
		<comments>http://archetypes.wordpress.com/2007/07/03/applied-patterns-parallelism/#comments</comments>
		<pubDate>Tue, 03 Jul 2007 14:14:18 +0000</pubDate>
		<dc:creator>shanedempsey</dc:creator>
				<category><![CDATA[Architecture Patterns]]></category>

		<guid isPermaLink="false">http://archetypes.wordpress.com/2007/07/03/applied-patterns-parallelism/</guid>
		<description><![CDATA[Doctor Dobbs J0urnal provides an excellent resource for those wishing to research and apply software patterns. In particular Jonathan Erikson&#8217;s Pattern Language blog Recently I noticed this post on Patterns for Parallelism about a a research paper on a Functional Parallelism Architectural Pattern for Parallel Programming. The paper is instructive for several reasons. One is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=archetypes.wordpress.com&amp;blog=1177328&amp;post=13&amp;subd=archetypes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Doctor Dobbs J0urnal provides an excellent resource for those wishing to research and apply software patterns.  In particular Jonathan Erikson&#8217;s <a href="http://www.ddj.com/blog/architectblog/archives/editors_blog/index.html;jsessionid=VFVV3YOWYMFFUQSNDLRCKHSCJUNN2JVN" title="Pattern Language">Pattern Language</a> blog  Recently I noticed this post on Patterns for Parallelism about a a research paper on a <a href="http://http://www.larces.uece.br/~jeff/sugar2007/26042.pdf">Functional Parallelism Architectural Pattern for Parallel Programming</a>.  The paper is instructive for several reasons. One is that it clearly documents what I&#8217;ve described as a macro pattern.  It solves a real-world problem which applies to a general computing domain, in this case parallel processing. The paper also references a clear and distinct example, the Single Source Shortest Path searching algorithm also known as <a href="http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm" title="Dijkstra's Algorithm">Dijkstra&#8217;s algorithm</a>. The algorithm is suitable for parallelism because it is <em>&#8220;greedy&#8221;</em> for resources and it&#8217;s also contains sub tasks which can be run concurrently to reduce running time.</p>
<p>The well known routing algorithm OSPF (Open Shortest Path First) is the most common implementation of this algorithm in computer science.  The discussed &#8220;layer&#8221; pattern enabling overlapping operations which are run for effect rather than value. i.e. They&#8217;re effect can be calculated in such a way that it is not necessary to wait for the completion of an earlier layer.  What I really like about this example is that it achieves the following objectives of any good <em>macro</em> pattern.</p>
<ol>
<li> It solves a distinct theoretical or abstract problem</li>
<li>It  describes the  solution both graphically and through pseudo-code. It&#8217;s not tied to the implementation specifics of any particular programming language.</li>
<li>It clearly explains the benefits and drawbacks regarding the application of the pattern.</li>
<li>It references supporting algorithmic research and design.</li>
<li>It outlines real-world problems that the problem can be applied to.</li>
</ol>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/archetypes.wordpress.com/13/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/archetypes.wordpress.com/13/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/archetypes.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/archetypes.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/archetypes.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/archetypes.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/archetypes.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/archetypes.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/archetypes.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/archetypes.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/archetypes.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/archetypes.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/archetypes.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/archetypes.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/archetypes.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/archetypes.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=archetypes.wordpress.com&amp;blog=1177328&amp;post=13&amp;subd=archetypes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://archetypes.wordpress.com/2007/07/03/applied-patterns-parallelism/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6c57367ca3fcf8a2bb14401ece5421e2?s=96&#38;d=identicon" medium="image">
			<media:title type="html">shanedempsey</media:title>
		</media:content>
	</item>
		<item>
		<title>Software Archetypes group tasks and philosophy</title>
		<link>http://archetypes.wordpress.com/2007/06/13/software-archetypes-group-tasks-and-philosophy/</link>
		<comments>http://archetypes.wordpress.com/2007/06/13/software-archetypes-group-tasks-and-philosophy/#comments</comments>
		<pubDate>Wed, 13 Jun 2007 10:50:32 +0000</pubDate>
		<dc:creator>shanedempsey</dc:creator>
				<category><![CDATA[Software Archetypes Group]]></category>

		<guid isPermaLink="false">http://archetypes.wordpress.com/2007/06/13/software-archetypes-group-tasks-and-philosophy/</guid>
		<description><![CDATA[The Software Archetypes &#8220;tech time&#8221; group will catalogue and explore software patterns from micro to macro level. Our goal is to promote good software design and to simplify the development of complex software through well documented and robust software patterns and deployment blueprints. This blog is a living journal of our progress and should be [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=archetypes.wordpress.com&amp;blog=1177328&amp;post=12&amp;subd=archetypes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The Software Archetypes <em>&#8220;tech time&#8221;</em> group will catalogue and explore software patterns from micro to macro level.  Our goal is to promote good software design and to simplify the development of complex software through well documented and robust software patterns and deployment blueprints. This blog is a living journal of our progress and should be kept up to date as our knowledge and thoughts <em>(hopefully)</em> progress.</p>
<p>These should be patterns which are deemed interesting or useful to group members or ones that meet direct requirements from projects within the TSSG. The group activities can be decomposed into the following tasks.</p>
<ul>
<li>Identification of design patterns and deployment blueprints across existing TSSG projects. Initially we&#8217;ll focus on blueprints for <strong>scalability, fault-tolerance and security. </strong></li>
<li>Cataloguing existing software patterns which are being used successfully by TSSG projects.</li>
<li>Identifying new software patterns and the latest thinking in software design and pattern application across a range of languages and methodologies.</li>
<li>Discussions with tech leads and project team members to discover barriers preventing the successful adoption of design patterns and blueprints on projects.</li>
<li>Dissemination of design pattern best-practice through the Software Archetypes blog</li>
<li>Liaising with new projects to determine functional and non-functional requirements that could be met using design patterns and blueprints&#8230; In particular scalability, fault-tolerance and security issues.</li>
<li>Liaising with the autonomics group to determine if concise blueprints or patterns can be distilled from the Foundations Of Autonomics Programme.</li>
</ul>
<p>That should be enough to get started <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .  Not all these tasks need to be addressed initially so pick and choose the things that interest you. Equally if you have another suggestion  regarding group activities and philosophy that you think is relevant then don&#8217;t hesitate to post your thoughts.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/archetypes.wordpress.com/12/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/archetypes.wordpress.com/12/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/archetypes.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/archetypes.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/archetypes.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/archetypes.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/archetypes.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/archetypes.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/archetypes.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/archetypes.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/archetypes.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/archetypes.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/archetypes.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/archetypes.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/archetypes.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/archetypes.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=archetypes.wordpress.com&amp;blog=1177328&amp;post=12&amp;subd=archetypes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://archetypes.wordpress.com/2007/06/13/software-archetypes-group-tasks-and-philosophy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6c57367ca3fcf8a2bb14401ece5421e2?s=96&#38;d=identicon" medium="image">
			<media:title type="html">shanedempsey</media:title>
		</media:content>
	</item>
		<item>
		<title>nice java pattern repository &amp; some thoughts on generics</title>
		<link>http://archetypes.wordpress.com/2007/06/01/nice-java-pattern-repository/</link>
		<comments>http://archetypes.wordpress.com/2007/06/01/nice-java-pattern-repository/#comments</comments>
		<pubDate>Fri, 01 Jun 2007 09:54:11 +0000</pubDate>
		<dc:creator>shanedempsey</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://archetypes.wordpress.com/2007/06/01/nice-java-pattern-repository/</guid>
		<description><![CDATA[When looking for java patterns I&#8217;m a big believer in knowing a few basic and highly general ones that can be applied in everyday programming. A resource I&#8217;ve used in the past is the Design Patterns Java Companion which contains excerpts from the Java book of the same name. The categorisation of pattern types as [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=archetypes.wordpress.com&amp;blog=1177328&amp;post=11&amp;subd=archetypes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When looking for java patterns I&#8217;m a big believer in knowing a few basic and highly general ones that can be applied in everyday programming.  A resource I&#8217;ve used in the past is the <a href="http://www.patterndepot.com/put/8/JavaPatterns.htm">Design Patterns Java Companion</a> which contains excerpts from the Java book of the same name.  The categorisation of pattern types as creational, structural and behavioral is a useful formalism and something we should consider adopting on this blog.  Other good points are the layout which consists of</p>
<ul>
<li>Pattern name and natural language description</li>
<li>UML diagram(s) representing the pattern</li>
<li>The code required to realise the pattern</li>
<li>Code demonstrating sample usage</li>
</ul>
<p>In other words the whole process should be idiot proof, nearly immune to tired eyes and weary brains that afflict the programmer pushing for an ambitious deadline.</p>
<p>However, one weakness of much of the java design pattern literature is the relatively late introduction of Generic Programming into the Java Language.  For those who haven&#8217;t programmed Java in a while I recommend reading <a href="http://java.sun.com/developer/technicalArticles/J2SE/generics/">this tutorial from SUN</a>. It&#8217;s worth remembering that NOT ALL Java projects will use jdk 1.5 and therefore some projects will require patterns which don&#8217;t use generics.  Sometimes a hybrid approach is necessary where a <a href="http://www.patterndepot.com/put/8/template.pdf">template pattern</a> is permit a lightweight form of generic programming for older JDK&#8217;s.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/archetypes.wordpress.com/11/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/archetypes.wordpress.com/11/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/archetypes.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/archetypes.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/archetypes.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/archetypes.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/archetypes.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/archetypes.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/archetypes.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/archetypes.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/archetypes.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/archetypes.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/archetypes.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/archetypes.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/archetypes.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/archetypes.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=archetypes.wordpress.com&amp;blog=1177328&amp;post=11&amp;subd=archetypes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://archetypes.wordpress.com/2007/06/01/nice-java-pattern-repository/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6c57367ca3fcf8a2bb14401ece5421e2?s=96&#38;d=identicon" medium="image">
			<media:title type="html">shanedempsey</media:title>
		</media:content>
	</item>
		<item>
		<title>Put your Deployment Blueprints here :)</title>
		<link>http://archetypes.wordpress.com/2007/05/31/put-your-deployment-blueprints-here/</link>
		<comments>http://archetypes.wordpress.com/2007/05/31/put-your-deployment-blueprints-here/#comments</comments>
		<pubDate>Thu, 31 May 2007 10:52:42 +0000</pubDate>
		<dc:creator>shanedempsey</dc:creator>
				<category><![CDATA[Deployment Blueprints]]></category>

		<guid isPermaLink="false">http://archetypes.wordpress.com/2007/05/31/put-your-deployment-blueprints-here/</guid>
		<description><![CDATA[<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=archetypes.wordpress.com&amp;blog=1177328&amp;post=6&amp;subd=archetypes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=archetypes.wordpress.com&amp;blog=1177328&amp;post=6&amp;subd=archetypes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://archetypes.wordpress.com/2007/05/31/put-your-deployment-blueprints-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6c57367ca3fcf8a2bb14401ece5421e2?s=96&#38;d=identicon" medium="image">
			<media:title type="html">shanedempsey</media:title>
		</media:content>
	</item>
		<item>
		<title>Put your Architectural Patterns here :)</title>
		<link>http://archetypes.wordpress.com/2007/05/31/put-your-architectural-patterns-here/</link>
		<comments>http://archetypes.wordpress.com/2007/05/31/put-your-architectural-patterns-here/#comments</comments>
		<pubDate>Thu, 31 May 2007 10:51:32 +0000</pubDate>
		<dc:creator>shanedempsey</dc:creator>
				<category><![CDATA[Architecture Patterns]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://archetypes.wordpress.com/2007/05/31/put-your-architectural-patterns-here/</guid>
		<description><![CDATA[<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=archetypes.wordpress.com&amp;blog=1177328&amp;post=5&amp;subd=archetypes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=archetypes.wordpress.com&amp;blog=1177328&amp;post=5&amp;subd=archetypes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://archetypes.wordpress.com/2007/05/31/put-your-architectural-patterns-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6c57367ca3fcf8a2bb14401ece5421e2?s=96&#38;d=identicon" medium="image">
			<media:title type="html">shanedempsey</media:title>
		</media:content>
	</item>
		<item>
		<title>Put your micro patterns here :)</title>
		<link>http://archetypes.wordpress.com/2007/05/31/put-your-micro-patterns-here/</link>
		<comments>http://archetypes.wordpress.com/2007/05/31/put-your-micro-patterns-here/#comments</comments>
		<pubDate>Thu, 31 May 2007 10:51:11 +0000</pubDate>
		<dc:creator>shanedempsey</dc:creator>
				<category><![CDATA[Micro Patterns]]></category>

		<guid isPermaLink="false">http://archetypes.wordpress.com/2007/05/31/put-your-micro-patterns-here/</guid>
		<description><![CDATA[<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=archetypes.wordpress.com&amp;blog=1177328&amp;post=4&amp;subd=archetypes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=archetypes.wordpress.com&amp;blog=1177328&amp;post=4&amp;subd=archetypes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://archetypes.wordpress.com/2007/05/31/put-your-micro-patterns-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6c57367ca3fcf8a2bb14401ece5421e2?s=96&#38;d=identicon" medium="image">
			<media:title type="html">shanedempsey</media:title>
		</media:content>
	</item>
		<item>
		<title>Welcome to the Software Archetypes blog</title>
		<link>http://archetypes.wordpress.com/2007/05/31/welcome-to-the-software-archetypes-blog/</link>
		<comments>http://archetypes.wordpress.com/2007/05/31/welcome-to-the-software-archetypes-blog/#comments</comments>
		<pubDate>Thu, 31 May 2007 10:41:00 +0000</pubDate>
		<dc:creator>shanedempsey</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://archetypes.wordpress.com/2007/05/31/welcome-to-the-software-archetypes-blog/</guid>
		<description><![CDATA[This is my first post to the software archetypes blog. Part of the TSSG&#8216;s &#8220;tech time&#8221; programme. You can read more about the goals of the blog and the Software Archetypes group here. If you want to recommend any improvements to the blog, its structure or the goals of the group then please do.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=archetypes.wordpress.com&amp;blog=1177328&amp;post=3&amp;subd=archetypes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is my first post to the software archetypes blog. Part of the <a href="http://www.tssg.org">TSSG</a>&#8216;s &#8220;tech time&#8221; programme. You can read more about the goals of the blog and the Software Archetypes group <a href="http://archetypes.wordpress.com/about/">here</a>.  If you want to recommend any improvements to the blog, its structure or the goals of the group then please do.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/archetypes.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/archetypes.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/archetypes.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/archetypes.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/archetypes.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/archetypes.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/archetypes.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/archetypes.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/archetypes.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/archetypes.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/archetypes.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/archetypes.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/archetypes.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/archetypes.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/archetypes.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/archetypes.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=archetypes.wordpress.com&amp;blog=1177328&amp;post=3&amp;subd=archetypes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://archetypes.wordpress.com/2007/05/31/welcome-to-the-software-archetypes-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6c57367ca3fcf8a2bb14401ece5421e2?s=96&#38;d=identicon" medium="image">
			<media:title type="html">shanedempsey</media:title>
		</media:content>
	</item>
	</channel>
</rss>
