<?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>Java+Architecture</title>
	<atom:link href="http://damelines.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://damelines.wordpress.com</link>
	<description>Comments on Java and Software architecture...</description>
	<lastBuildDate>Thu, 04 Nov 2010 02:02:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='damelines.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Java+Architecture</title>
		<link>http://damelines.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://damelines.wordpress.com/osd.xml" title="Java+Architecture" />
	<atom:link rel='hub' href='http://damelines.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Nice free Eclipse-based UML Tool</title>
		<link>http://damelines.wordpress.com/2010/11/03/nice-free-eclipse-based-uml-tool/</link>
		<comments>http://damelines.wordpress.com/2010/11/03/nice-free-eclipse-based-uml-tool/#comments</comments>
		<pubDate>Thu, 04 Nov 2010 02:02:39 +0000</pubDate>
		<dc:creator>damelines</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[modeling]]></category>
		<category><![CDATA[modelio]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[uml]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://damelines.wordpress.com/?p=65</guid>
		<description><![CDATA[Hi everyone. I just happened to find a really nice free Eclipse-based UML modeling tool called Modelio. The free edition can be used for commercial projects also. A 32-bit version for Linux and Windows platform is available. If you happen to have a 64-bit Ubuntu operating system installed in your computer (which I have, btw [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damelines.wordpress.com&amp;blog=12188266&amp;post=65&amp;subd=damelines&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hi everyone. I just happened to find a really nice free Eclipse-based UML modeling tool called <a title="ModelioSoft" href="http://www.modeliosoft.com/" target="_blank">Modelio</a>. The free edition can be used for commercial projects also. A 32-bit version for Linux and Windows platform is <a title="Modelio Free Edition" href="http://www.modeliosoft.com/es/products-es/modelio-free-edition-es.html" target="_blank">available</a>.</p>
<p>If you happen to have a 64-bit Ubuntu operating system installed in your computer (which I have, btw <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ), just install the .deb package using the following command:</p>
<p><code>dpkg -i --force-architecture ./modelioFree1.2.1-20101008.i586.deb</code></p>
<p>Enjoy!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/damelines.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/damelines.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/damelines.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/damelines.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/damelines.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/damelines.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/damelines.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/damelines.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/damelines.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/damelines.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/damelines.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/damelines.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/damelines.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/damelines.wordpress.com/65/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damelines.wordpress.com&amp;blog=12188266&amp;post=65&amp;subd=damelines&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://damelines.wordpress.com/2010/11/03/nice-free-eclipse-based-uml-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f2106075b6b4907a5653536b132f0fa?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">damelines</media:title>
		</media:content>
	</item>
		<item>
		<title>Don&#8217;t know how to organize your business components?</title>
		<link>http://damelines.wordpress.com/2010/05/31/dont-know-how-to-organize-your-business-components/</link>
		<comments>http://damelines.wordpress.com/2010/05/31/dont-know-how-to-organize-your-business-components/#comments</comments>
		<pubDate>Mon, 31 May 2010 23:51:47 +0000</pubDate>
		<dc:creator>damelines</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[components]]></category>
		<category><![CDATA[dependencies]]></category>
		<category><![CDATA[ejb]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jee]]></category>
		<category><![CDATA[jpa]]></category>
		<category><![CDATA[patterns]]></category>

		<guid isPermaLink="false">http://damelines.wordpress.com/?p=46</guid>
		<description><![CDATA[If you don&#8217;t know how to organize the structure of your business components, I have a decent and simple way to start, based on some simple premises: Maximize reuse. Increase cohesion/decrease coupling. Increase flexibility. Avoid circular references among business components. These premises complemented with a Model2, component-based structure, help us define a fairly appropriate way [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damelines.wordpress.com&amp;blog=12188266&amp;post=46&amp;subd=damelines&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste"><a href="http://damelines.files.wordpress.com/2010/05/domain-driven-component-structure1.png"></a>If you don&#8217;t know how to organize the structure of your business components, I have a decent and simple way to start, based on some simple premises:</div>
<div id="_mcePaste">
<ul>
<li>Maximize reuse.</li>
<li>Increase cohesion/decrease coupling.</li>
<li>Increase flexibility.</li>
<li>Avoid circular references among business components.</li>
</ul>
</div>
<p>These premises complemented with a <a href="http://damelines.wordpress.com/2010/02/22/using-your-jpa-model-as-data-transfer-objects-with-gwt/" target="_self">Model2, component-based structure</a>, help us define a fairly appropriate way of defining components, along with their dependencies.</p>
<p>The following organization is only adecuate for domain-driven business components, meaning that it should only be used for components created to handle operations related to a single domain-driven entity. For example, if you were developing an e-commerce site your domain model would include entities such as Cart, LineItem, Product, etc. If you were organizing your business logic in a domain-driven fashion, probably a component for each domain model would exist.</p>
<p>The above mentioned strategy is described in the following illustration:</p>
<p><a href="http://damelines.files.wordpress.com/2010/05/domain-driven-component-structure2.png"><img class="aligncenter size-full wp-image-59" title="Domain-driven component structure" src="http://damelines.files.wordpress.com/2010/05/domain-driven-component-structure2.png?w=431&#038;h=305" alt="" width="431" height="305" /></a></p>
<div>Figure 1. Domain-driven EJB dependencies.</div>
<p>The elements in Figure 1 are:</p>
<ul>
<li><strong>EntityModificationComponent</strong>. This element would be in charge of any modification logic (CUD of the CRUD). This element has a dependency from EntityValidationComponent since it would often need to validate the create/delete/update operations before performing them. A usual validation could be that the entity name must not already exist in order to be created or updated, or verify the entity is not being referenced from any other place in the system for us to be able to delete it. A dependency to EntityListComponent exists because normally any modification logic needs a number of queries before performing them.</li>
<li><strong>EntityValidationComponent</strong>. This element performs validation logic on a particular entity. It should contain any restrictions or rules regarding the update, delete, or create operations on the specified entity.</li>
<li><strong>EntityListComponent</strong>. All queries related the entity should be defined here. A separate element is defined because it normally does not reference any other bean, making it highly reusable. Another advantage of placing all queries in a different component, is that other beans depend on it, but it does not depend on any other bean, avoiding circular references that would come up if modification and query logic was placed in the same component.</li>
<li><strong>EntityFacadeComponent</strong>. This element should contain any logic you wish to share/publish to an external client. It is ideal if you want to expose some web services focused on the manipulation of a particular entity. Naturally, the contract exposed by this component should be compatible with the canonical data model in your enterprise or any other application you want to interact with.</li>
</ul>
<p><strong>Conclusion</strong></p>
<p>I have found this organizational pattern very handy when the overall functional architecture is not stable but the domain model is. As the requirements are specified and the functional requirements become more stable, you realize that you have already done most of the job with the chance to add or update functionality quite easily.</p>
<p>Hope you enjoyed this post.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/damelines.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/damelines.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/damelines.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/damelines.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/damelines.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/damelines.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/damelines.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/damelines.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/damelines.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/damelines.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/damelines.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/damelines.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/damelines.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/damelines.wordpress.com/46/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damelines.wordpress.com&amp;blog=12188266&amp;post=46&amp;subd=damelines&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://damelines.wordpress.com/2010/05/31/dont-know-how-to-organize-your-business-components/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f2106075b6b4907a5653536b132f0fa?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">damelines</media:title>
		</media:content>

		<media:content url="http://damelines.files.wordpress.com/2010/05/domain-driven-component-structure2.png" medium="image">
			<media:title type="html">Domain-driven component structure</media:title>
		</media:content>
	</item>
		<item>
		<title>A solution to cyclic references in a planning tree</title>
		<link>http://damelines.wordpress.com/2010/04/21/a-solution-to-cyclic-references-in-a-planning-tree/</link>
		<comments>http://damelines.wordpress.com/2010/04/21/a-solution-to-cyclic-references-in-a-planning-tree/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 15:10:52 +0000</pubDate>
		<dc:creator>damelines</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[algorithm]]></category>
		<category><![CDATA[hibernate]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jpa]]></category>
		<category><![CDATA[predecessor]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[resource]]></category>
		<category><![CDATA[schedule]]></category>
		<category><![CDATA[successor]]></category>
		<category><![CDATA[task]]></category>

		<guid isPermaLink="false">http://damelines.wordpress.com/?p=33</guid>
		<description><![CDATA[A nice challenge for a programmer when developing a scheduling tool with tasks, resources, etc. is the fact that a task can have a lot of restrictions regarding its predecessors. In this post, I explore the restrictions of defining a list of predecessors, and an algorithm in Java to solve the dilemma of cyclic references among tasks.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damelines.wordpress.com&amp;blog=12188266&amp;post=33&amp;subd=damelines&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have recently found myself working on a basic planning use case involving tasks and predecessors. One of the hardest things of working in such a requirement is the fact that a particular change on one single task node may affect the rest of the tree (parents and successors) if their relationship is defined in a particular way. The following example explains what I am talking about under the restriction of a nine-to-five calendar, monday through friday calendar:</p>
<pre>Indx Name            Predecessors    Effort    StartDate    EndDate     Resource
0    - PlanningRoot                  24h       12/04/2010   14/04/2010
1      - Node1                       20h       12/04/2010   14/04/2010
2        - Task1                     12h       12/04/2010   13/04/2010  Resource1
3        - Task2     [2]             8h        13/04/2010   14/04/2010  Resource1
4      - Node2       [1]             4h        14/04/2010   14/04/2010
5        - Node21                    4h        14/04/2010   14/04/2010
6          - Task3                   4h        14/04/2010   14/04/2010  Resource2</pre>
<p>Figure 1. A simple plan.</p>
<p>As you can see from Figure 1, this is a two-day plan with three specific tasks assigned to resources 1 and 2. The important thing to note here is that, by the way predecessors are defined, a subtle modification such as increasing the estimated effort on Task1 may cause a chain of modifications that will end up on the whole schedule being delayed. Not that there is anything wong with delays, it&#8217;s just that this type of consistency is a little bit hard to achieve considering the many variables participating here, including:</p>
<ul>
<li>The project&#8217;s default calendar.</li>
<li>The resource&#8217;s calendar.</li>
<li>Each task&#8217;s effort and start date.</li>
<li>Each task&#8217;s predecessors.</li>
<li>The resource assigned to each task. This is important because the resource imposes its calendar as a restriction to the task. For example, if the resource works tuesdays and wednesdays only, the task&#8217;s duration will be longer.</li>
<li>The percentage of assignation of the resource to the specified task.</li>
<li>Other variables I haven&#8217;t thought of yet :p.</li>
</ul>
<p>Now, if you have a schedule with completely isolated tasks (with no predecessors defined), the job gets to be easier. But life is tough and predecessors are a reality, so you have to accept them and move on. Seriously, I don&#8217;t consider predecessors one of my favorite friends, but they sure make the life of project managers easy. The thing with predecessors is that they impose really hard restrictions on the date a particular task is started. Besides, a task can have multiple predecessors. This means that all predecessor tasks must be finished by the time this task is supposed to start. And the task must not start months or years after de last predecessor was finished, but it must try to start as soon as it can.</p>
<p>The algorithm used to deal with all of these problems is quite demanding and I will probably write about it in later posts. For this post, I will focus on a more punctual problem related to <strong>predecessors and the detection of cycles</strong> between them. A cyclic relationship is not desirable when processing planning nodes since it can lead to the good old StackOverflowException leaving our application useless. I had to dedicate a long part of my time just to analyze the many different types of cyclic relationships that can happen. The following figures illustrate some of them:</p>
<pre>Indx Name            Predecessors
0    - PlanningRoot
1        - Task1     [1]</pre>
<p>Figure 2. Self cyclic relationship.</p>
<pre>Indx Name            Predecessors
0    - PlanningRoot
1        - Task1     [2]
2        - Task2     [1]</pre>
<p>Figure 3. Direct cyclic relationship.</p>
<pre>Indx Name            Predecessors
0    - PlanningRoot
1        - Task1     [3]
2        - Task2     [1]
3        - Task2     [2]</pre>
<p>Figure 4. Successor-of-successor cyclic relationship.</p>
<pre>Indx Name            Predecessors
0    - PlanningRoot
1        - Node1
2          - Task1 [3]
3        - Node2
4          - Task2 [1]</pre>
<p>Figure 5. Parent-of-successor cyclic relationship.</p>
<p>I can go on infinitely showing you how many types of cyclic relationships exist and how many combinations of them can exist. So I rather show you the rules I came up with in order to avoid these types of relationships:</p>
<ol>
<li>A node cannot have itself as predecessor.</li>
<li>A node cannot have a child, child-of-child, etc. as its predecessor.</li>
<li>A node cannot have a parent, parent-of-parent, etc. as its predecessor.</li>
<li>A predecessor node cannot be a successor, successor-of-successor, etc.</li>
<li>A predecessor cannot be a child, child-of-child, etc. of a successor, successor-of-successor, etc.</li>
<li>A predecessor cannot be the parent, parent-of-parent, etc. of a successor, successor-of-successor, etc.</li>
<li>A predecessor cannot be the successor, successor-of-successor, etc. from a child, child-of-child, etc. of a successor, successor-of-successor, etc. This is sort of a combination of (4) and (5).</li>
<li>A predecessor cannot be the successor, successor-of-successor, etc. from a parent, parent-of-parent, etc. of a successor, successor-of-successor, etc. Combination of (3) and (5).</li>
</ol>
<p>So that&#8217;s it. Simple huh? Well, I cannot say it did not demand much time from me. But finally, I got to where I needed to be. Once the rules are defined, the rest is just hard work. The following figures show a reduced version of the solution I designed to solve the cyclic reference problem.</p>
<pre>public class ScheduleNode {
  private List&lt;ScheduleNode&gt; predecessors;
  private List&lt;ScheduleNode&gt; successors;
  public getPredecessors() {
    if (successors == null) {
      predecessors = new ArrayList&lt;ScheduleNode&gt;();
    }
    return predecessors;
  }
  public getSuccessors() {
    if (successors == null) {
      successors = new ArrayList&lt;ScheduleNode&gt;();
    }
    return successors;
  }
}</pre>
<p>Figure 6. ScheduleNode class representing the schedule tree model.</p>
<pre>public class ScheduleUtil {
  public static void predsValid(final ScheduleNode node) {
    if (node.getPredecessors().size() == 0) {
      return;
    }
    for (ScheduleNode pred : node.getPredecessors()) {
      if (isSelf(node, pred)) {
        // Handle cyclic ref.
      }
      if (isChild(node, pred)) {
        // Handle cyclic ref.
      }
      if (isParent(node, pred)) {
        // Handle cyclic ref.
      }
      if (isSuccessor(node, pred)) {
        // Handle cyclic ref.
      }
    }
  }
}</pre>
<p>Figure 7. Main algorithm to avoid cyclic references among nodes.</p>
<p>As you can see, the solution is fairly simple and it covers all of the scenarios described previously. Additionally, you can check out the almost-full source code <a href="http://damelines.files.wordpress.com/2010/04/predsvalidator.pdf">here</a>. Tell me what you think of it.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/damelines.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/damelines.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/damelines.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/damelines.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/damelines.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/damelines.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/damelines.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/damelines.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/damelines.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/damelines.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/damelines.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/damelines.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/damelines.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/damelines.wordpress.com/33/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damelines.wordpress.com&amp;blog=12188266&amp;post=33&amp;subd=damelines&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://damelines.wordpress.com/2010/04/21/a-solution-to-cyclic-references-in-a-planning-tree/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f2106075b6b4907a5653536b132f0fa?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">damelines</media:title>
		</media:content>
	</item>
		<item>
		<title>Environment-friendly inventions, how can we use them?</title>
		<link>http://damelines.wordpress.com/2010/03/02/environment-friendly-inventions-how-can-we-use-them/</link>
		<comments>http://damelines.wordpress.com/2010/03/02/environment-friendly-inventions-how-can-we-use-them/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 15:33:11 +0000</pubDate>
		<dc:creator>damelines</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[conservation]]></category>
		<category><![CDATA[crystal]]></category>
		<category><![CDATA[energy]]></category>
		<category><![CDATA[environment]]></category>
		<category><![CDATA[friendly]]></category>
		<category><![CDATA[invention]]></category>
		<category><![CDATA[multiferroic]]></category>
		<category><![CDATA[piezoelectric]]></category>

		<guid isPermaLink="false">http://damelines.wordpress.com/?p=29</guid>
		<description><![CDATA[It's an exciting time to take advantage of new inventions arising every day. Their main characteristic comes to be their environment-friendliness in that they try to improve current ones, while trying to cut down the amount of power to function. Multiferroic crystals and piezoelectric materials are one of them. How can we use them to make the world a better place?<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damelines.wordpress.com&amp;blog=12188266&amp;post=29&amp;subd=damelines&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So, I just <a title="Crystal discovery could pave the way for new generation of computer chips" href="http://www.engadget.com/2010/03/02/crystal-discovery-could-pave-the-way-for-new-generation-of-compu/" target="_blank">read</a> about the invention of these two researchers from the Florida State University who discovered four &#8220;multiferroic&#8221; crystals that could reduce the environmental impact of current chips, while increasing the amount of  storage on devices made up from these material. I think it&#8217;s really nice that we can find people all around the world trying to make this world a better place, while trying to get some money for their world. It&#8217;s the american dream, right?</p>
<p><img class="aligncenter" title="Crystal Research" src="http://www.blogcdn.com/www.engadget.com/media/2010/03/florida-state-03-02-2010.jpg" alt="" width="250" height="186" /></p>
<p>Other inventions rely on <a title="Conservation of Energy" href="http://en.wikipedia.org/wiki/Conservation_of_energy" target="_blank">Einstein&#8217;s law of conservation of energy</a>, which states that energy can neither be created nor destroyed, it can only be transformed from one state to another. Imagine the amount of energy we waste every day just by walking, working, or eating. The energy spent to lift up a spoon or ride a bicycle is transformed into another type of energy that we cannot reuse. Well, mix that with another nice invention called <a title="Scientists to bring piezoelectrics and rubber together to form flexible, wearable energy harvester" href="http://www.engadget.com/2010/03/02/scientists-to-bring-piezoelectrics-and-rubber-together-to-form-f/" target="_blank">piezoelectric</a> materials. An article made from a piezoelectric material would be capable of producing electricity if a mechanical stimulus is performed on it. In addition to this, if the piezoelectric material is flexible enough, it could even be turned into clothes and produce energy as we walk. Cool, huh?</p>
<p><img class="aligncenter" title="Piezoelectric materials" src="http://www.nec.co.jp/techrep/en/journal/g06/n05/Images/060519p82-2.jpg" alt="" width="514" height="300" /></p>
<p>So, I can think of many applications for this kind of material, including human-powered homes and vehicles. Even simple games such as anti-stress rubber rings or some types of home appliances could be piezoelectric-powered devices. I can see this as an incredible opportunity except for some energy storage and transportation issues that would require us to be permanently connected to one of many batteries holding all of our energy production for us to be able to use it later.</p>
<p>Now, as a challenge to all of you reading these pieces of information, what real-world applications can you think of for piezoelectric materials?</p>
<p>Waiting for your feedback&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/damelines.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/damelines.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/damelines.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/damelines.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/damelines.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/damelines.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/damelines.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/damelines.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/damelines.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/damelines.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/damelines.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/damelines.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/damelines.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/damelines.wordpress.com/29/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damelines.wordpress.com&amp;blog=12188266&amp;post=29&amp;subd=damelines&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://damelines.wordpress.com/2010/03/02/environment-friendly-inventions-how-can-we-use-them/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f2106075b6b4907a5653536b132f0fa?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">damelines</media:title>
		</media:content>

		<media:content url="http://www.blogcdn.com/www.engadget.com/media/2010/03/florida-state-03-02-2010.jpg" medium="image">
			<media:title type="html">Crystal Research</media:title>
		</media:content>

		<media:content url="http://www.nec.co.jp/techrep/en/journal/g06/n05/Images/060519p82-2.jpg" medium="image">
			<media:title type="html">Piezoelectric materials</media:title>
		</media:content>
	</item>
		<item>
		<title>Azul Systems&#8217; awesome appliance</title>
		<link>http://damelines.wordpress.com/2010/02/24/azul-systems-awesome-appliance/</link>
		<comments>http://damelines.wordpress.com/2010/02/24/azul-systems-awesome-appliance/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 19:43:53 +0000</pubDate>
		<dc:creator>damelines</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[appliance]]></category>
		<category><![CDATA[azul]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[java appliance azul scale]]></category>
		<category><![CDATA[scale]]></category>

		<guid isPermaLink="false">http://damelines.wordpress.com/?p=26</guid>
		<description><![CDATA[A device capable of accelerating performance for any Java application (running on any kind of hardware) up to 5x.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damelines.wordpress.com&amp;blog=12188266&amp;post=26&amp;subd=damelines&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Check out <a title="Souped Up Java with Azul: Part I" href="http://java.dzone.com/articles/souped-java-azul-part-i" target="_blank">this article</a> to find out about an easy way to scale up your Java application by hardware. Of course, you must have some money to invest in such technology, but it&#8217;s good to know there are some alternatives when the scaling itch hits the right CEO.</p>
<p>Regards.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/damelines.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/damelines.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/damelines.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/damelines.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/damelines.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/damelines.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/damelines.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/damelines.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/damelines.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/damelines.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/damelines.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/damelines.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/damelines.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/damelines.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damelines.wordpress.com&amp;blog=12188266&amp;post=26&amp;subd=damelines&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://damelines.wordpress.com/2010/02/24/azul-systems-awesome-appliance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f2106075b6b4907a5653536b132f0fa?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">damelines</media:title>
		</media:content>
	</item>
		<item>
		<title>JPA Best Practice #1 &#8211; Do not inherit id property</title>
		<link>http://damelines.wordpress.com/2010/02/22/jpa-best-practice-1-do-not-inherit-id-property/</link>
		<comments>http://damelines.wordpress.com/2010/02/22/jpa-best-practice-1-do-not-inherit-id-property/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 00:00:48 +0000</pubDate>
		<dc:creator>damelines</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[hibernate]]></category>
		<category><![CDATA[inheritance]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jpa]]></category>
		<category><![CDATA[orm]]></category>

		<guid isPermaLink="false">http://damelines.wordpress.com/?p=18</guid>
		<description><![CDATA[Especially when working with JPA v1.0, try not to use id inheritance. If the id property is inherited, the JPA Engine will try to keep its value unique along all instances of the abstracted class.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damelines.wordpress.com&amp;blog=12188266&amp;post=18&amp;subd=damelines&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Especially when working with JPA v1.0, try not to use id inheritance. If the id property is inherited, the JPA Engine will try to keep its value unique along all instances of the abstracted class.<br />
I will try to present this problem with a basic example representing a hierarchy of company items, tracked by their id within the company in order to keep a consistent inventory:</p>
<p><code>@Entity<br />
public abstract class CompanyItem {<br />
@Id private Long id;<br />
// ... Constructor<br />
// ... Other properties<br />
// ... Getters and setters<br />
}<br />
@Entity<br />
public class Stapler extends CompanyItem {<br />
// ... Constructor<br />
// ... Other properties<br />
// ... Getters and setters<br />
}<br />
@Entity<br />
public class Chair extends CompanyItem {<br />
// ... Constructor<br />
// ... Other properties<br />
// ... Getters and setters<br />
}</code><br />
Example 1. Company item hierarchy.</p>
<p>This structure is not so bad at first sight since it solves the problem of unique id in a simple way. The problem here lies in the fact that whenever you create an instance of Stapler or Chair, the JPA engine will ensure the id for each object is unique among all instances of CompanyItem. This is not so bad if the system is small, but for a large system, it means that soon there will be a lack of ids for new objects.<br />
A simple solution to this problem could be the definition of the id property on each not abstract class that is part of the hierarchy. This may pose a problem of non-uniqueness for each company item.<br />
The following structure shows a simple solution to this problem:</p>
<p><code>@Entity<br />
public abstract class CompanyItem {<br />
// ... Constructor<br />
// ... Other properties<br />
// ... Getters and setters<br />
}<br />
@Entity<br />
public class Stapler extends CompanyItem {<br />
@Id private Long id;<br />
// ... Constructor<br />
// ... Other properties<br />
// ... Getters and setters<br />
}<br />
@Entity<br />
public class Chair extends CompanyItem {<br />
@Id private Long id;<br />
// ... Constructor<br />
// ... Other properties<br />
// ... Getters and setters<br />
}</code><br />
Example 2. Company item hierarchy &#8220;reloaded&#8221;.</p>
<p>Now you&#8217;ve seen it. The solution is simple and it is to lower down the id property to each instantiable class inheriting from CompanyItem<br />
In the following post, I&#8217;m going to show other sorts of problems regarding relationships with abstract classes. I hope you enjoy it.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/damelines.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/damelines.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/damelines.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/damelines.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/damelines.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/damelines.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/damelines.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/damelines.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/damelines.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/damelines.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/damelines.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/damelines.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/damelines.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/damelines.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damelines.wordpress.com&amp;blog=12188266&amp;post=18&amp;subd=damelines&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://damelines.wordpress.com/2010/02/22/jpa-best-practice-1-do-not-inherit-id-property/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f2106075b6b4907a5653536b132f0fa?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">damelines</media:title>
		</media:content>
	</item>
		<item>
		<title>Using your JPA model as Data Transfer Objects with GWT</title>
		<link>http://damelines.wordpress.com/2010/02/22/using-your-jpa-model-as-data-transfer-objects-with-gwt/</link>
		<comments>http://damelines.wordpress.com/2010/02/22/using-your-jpa-model-as-data-transfer-objects-with-gwt/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 23:52:03 +0000</pubDate>
		<dc:creator>damelines</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[dto]]></category>
		<category><![CDATA[facade]]></category>
		<category><![CDATA[gwt]]></category>
		<category><![CDATA[jee]]></category>
		<category><![CDATA[jpa]]></category>
		<category><![CDATA[patterns]]></category>
		<category><![CDATA[patterns jpa jee gwt architecture ria dto facade]]></category>
		<category><![CDATA[ria]]></category>

		<guid isPermaLink="false">http://damelines.wordpress.com/?p=9</guid>
		<description><![CDATA[Working with JEE and GWT can get to be a daunting task if the restrictions of these technologies working together are not clear. This post describes an approach to deal with the dilemma of how much information is sent to the browser, by using the JPA entities as the canonical domain model instead of an additional layer of data transfer objects. It also shows how a simple division of labor using a Model-2 approach can greatly simplify this task.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damelines.wordpress.com&amp;blog=12188266&amp;post=9&amp;subd=damelines&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Currently, I am working on a project working with JEE (including JPA), and GWT as core technologies. These technologies were chosen among a set of different options because of their qualities, where ease of development was one of the primary targets. The following diagram illustrates the basic tiers of this architecture.</p>
<div id="attachment_5" class="wp-caption aligncenter" style="width: 225px"><a href="http://damelines.files.wordpress.com/2010/02/001-tiers-jee-gwt1.png"><img class="size-full wp-image-5" title="001-tiers-jee-gwt" src="http://damelines.files.wordpress.com/2010/02/001-tiers-jee-gwt1.png?w=215&#038;h=200" alt="Basic JEE GWT app architecture" width="215" height="200" /></a><p class="wp-caption-text">Basic JEE GWT app architecture</p></div>
<p>As you can see, <a href="http://code.google.com/webtoolkit/">GWT</a> was chosen as the core presentation technology for the application, which makes the system a RIA application. It provides tools that enable us to develop all the visualization logic using Java, while allowing us to deploy it as a Javascript client by using a GWT-to-Javascript compiler linked to the application development lifecycle. All of this results in the assembly of a JEE-compliant application were the WAR file contains both the server (servlets and Javabeans) and the client (GWT-compiled Javascript) code. The following diagram shows a very simplified version of such package:</p>
<div id="attachment_6" class="wp-caption aligncenter" style="width: 310px"><a href="http://damelines.files.wordpress.com/2010/02/002-war-structure.png"><img class="size-medium wp-image-6" title="002-war-structure" src="http://damelines.files.wordpress.com/2010/02/002-war-structure.png?w=300&#038;h=114" alt="WAR Structure" width="300" height="114" /></a><p class="wp-caption-text">WAR Structure</p></div>
<p>Now, there is a tricky side to these so-called &#8220;simple&#8221; technologies. Basically, when you work with JPA you have to define a set of entities which becomes the domain language in your application. If this entity model becomes your domain language, it must:</p>
<ul>
<li>Provide the basis to define the database schema supporting the system.</li>
<li>Define the terms of how the business logic is to be realized. In other terms, the domain language helps us define the system&#8217;s business rules and scenarios.</li>
</ul>
<p>Having this into account, what would be the best way to handle presentation logic knowing that the JPA model gives consistency to both persistence and business tiers? The answer is not simple and relies on one of the most notable restrictions of GWT: Javascript footprint.<br />
The problem/advantage of any RIA application is that part/all of the presentation logic is displaced to the client&#8217;s machine. This is done in order to improve usability and decrease the memory and processing spent by the server when rendering presentation to the client. It also brings the dilemma of how to handle data transfer, specially in JPA where you would have to create an additional layer of <a href="http://en.wikipedia.org/wiki/Data_transfer_object">data transfer objects</a> along with a dto-to-jpa mapper to handle business logic. The problems arising from this approach are the following:</p>
<ul>
<li>Ease of maintenance decreased because DTOs represent an additional layer to be managed by the development team. The JPA entity model is evolutionary, and so the DTO layer will have to evolve with it.</li>
<li>Complexity increased, because the domain language becomes a flattened layer of Javabeans designed to handle the latency restrictions imposed by a RIA model, which means that presentation developers will deal with a twisted version of the actual domain language. Also important is the fact that a managed JPA entity cannot travel to the presentation tier.</li>
</ul>
<p>So, an additional layer of DTOs (if the application is big enough) can lead to a whole new level of complexity and maintenance that we did not want to get into. The workaround to these problems arrived from an article published by Adam Bien titled <a href="http://www.javaworld.com/javaworld/jw-04-2009/jw-04-lean-soa-with-javaee6.html">Lean service architectures with Java EE 6</a> where he proposes a Model 2 approach (boundary-controller-entity) using JPA and Stateless Session Beans. This solution defines a <a href="http://java.sun.com/blueprints/corej2eepatterns/Patterns/SessionFacade.html">Session Facade</a> bean as the boundary for a component, a regular Stateless Session bean as the controller, and JPA entities backing the business logic. Trying to adapt this pattern to architect our system, we realized that it could provide us a way to use our JPA domain model as the layer of DTOs mentioned above to increase ease of maintenance/development and keep complexity within bounds. See the following diagram for details.</p>
<div id="attachment_14" class="wp-caption aligncenter" style="width: 460px"><a href="http://damelines.files.wordpress.com/2010/02/003-model-24.png"><img class="size-full wp-image-14" title="003-model-2" src="http://damelines.files.wordpress.com/2010/02/003-model-24.png?w=450&#038;h=77" alt="Model 2 solution to use JPA entities as canonical model in all tiers" width="450" height="77" /></a><p class="wp-caption-text">Model 2 solution to use JPA entities as canonical model in all tiers</p></div>
<p>You may see that beyond the business tier, all entities must be detached since a managed JPA entity brings with it proxies and other harnesses the JPA Engine uses to sync them up with the database. The business tier is divided into two kinds of service to preserve the boundary-controller-entity model. The facade (which represents the boundary in this approach) picks up the managed entities to be returned and creates a copy for each one of them. Each copy is deep enough for the presentation to perform its work. Whenever a detached entity is received by the facade, a managed version of it is extracted to be used by the stateless/stateful service to perform its business logic.</p>
<p>We have experienced improvement in the development process thanks to this approach. Of course, if you use the additional layer of data transfer objects, you can also benefit from Model 2 by allowing the boundary services to create all DTOs necessary for the application to do its job. I have read about  different approaches including the definition of detachment logic having an xml datasource describing such information. You can read more about it in <a title="Solving the DTO / Anemic Domain Model dilemma with GWT" href="http://www.jroller.com/sjivan/entry/solving_the_dto_dilemma" target="_blank">Sanjiv Jivan&#8217;s blog</a>. You are welcome to post your comments regarding this subject.</p>
<p>Regards.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/damelines.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/damelines.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/damelines.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/damelines.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/damelines.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/damelines.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/damelines.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/damelines.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/damelines.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/damelines.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/damelines.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/damelines.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/damelines.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/damelines.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=damelines.wordpress.com&amp;blog=12188266&amp;post=9&amp;subd=damelines&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://damelines.wordpress.com/2010/02/22/using-your-jpa-model-as-data-transfer-objects-with-gwt/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f2106075b6b4907a5653536b132f0fa?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">damelines</media:title>
		</media:content>

		<media:content url="http://damelines.files.wordpress.com/2010/02/001-tiers-jee-gwt1.png" medium="image">
			<media:title type="html">001-tiers-jee-gwt</media:title>
		</media:content>

		<media:content url="http://damelines.files.wordpress.com/2010/02/002-war-structure.png?w=300" medium="image">
			<media:title type="html">002-war-structure</media:title>
		</media:content>

		<media:content url="http://damelines.files.wordpress.com/2010/02/003-model-24.png" medium="image">
			<media:title type="html">003-model-2</media:title>
		</media:content>
	</item>
	</channel>
</rss>
