<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CEcERX86eip7ImA9WhRaGUU.&quot;"><id>tag:blogger.com,1999:blog-967368946499624991</id><updated>2012-02-22T23:26:44.112-08:00</updated><category term="maven mojo" /><category term="jcr" /><category term="document library" /><category term="ECM" /><category term="surefire-plugin" /><category term="synchronized statement" /><category term="messaging" /><category term="annotations" /><category term="maven" /><category term="gwt" /><category term="Oracle" /><category term="Google Translator Toolkit" /><category term="Broadleaf Commerce" /><category term="java 8" /><category term="Scala" /><category term="eshop" /><category term="shell" /><category term="java memory model" /><category term="spring" /><category term="Nashorn" /><category term="portal" /><category term="Google API" /><category term="maven dependencies" /><category term="servlet filters" /><category term="performance" /><category term="procrastination" /><category term="Not Invented Here Syndrome" /><category term="workflows" /><category term="closures" /><category term="volatile modifier" /><category term="database" /><category term="hibernate" /><category term="modeshape" /><category term="java" /><category term="java 7" /><category term="php" /><category term="lock" /><category term="plexus" /><category term="Apache Ofbiz" /><category term="reinvent the wheel" /><category term="Generics" /><category term="jvm" /><category term="Google Translator Toolkit Client" /><category term="concurrency" /><category term="thread" /><category term="Google" /><category term="portlet" /><category term="Ehcache" /><category term="synchronized method" /><category term="business processes" /><category term="load balancing" /><category term="groovy" /><category term="GData" /><category term="kaleo engine" /><category term="cURL" /><category term="google guice" /><category term="Jackrabbit" /><category term="Google Dart" /><category term="caching" /><category term="Liferay" /><category term="j2ee" /><category term="V8" /><category term="javadoc tags" /><category term="shopping cart" /><category term="sharding" /><category term="e-commerce" /><title>WDYT ?</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://l154k.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://l154k.blogspot.com/" /><author><name>Lisak</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>20</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Wdyt" /><feedburner:info uri="wdyt" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DEUCR3c-fCp7ImA9WhRSF0U.&quot;"><id>tag:blogger.com,1999:blog-967368946499624991.post-8355746260003549075</id><published>2011-11-19T13:13:00.001-08:00</published><updated>2011-11-20T02:51:06.954-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-20T02:51:06.954-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="workflows" /><category scheme="http://www.blogger.com/atom/ns#" term="messaging" /><category scheme="http://www.blogger.com/atom/ns#" term="kaleo engine" /><category scheme="http://www.blogger.com/atom/ns#" term="Liferay" /><category scheme="http://www.blogger.com/atom/ns#" term="groovy" /><title>10 things a programmer should know about Liferay Kaleo Workflow Engine</title><summary type="html">Liferay developers decided to create their own workflow engine called Kaleo 2 years ago. It's a flexible lightweight workflow engine similar to other open-source engines out there. It is a plugin built on Liferay's ServiceBuilder and it needs to be deployed before you can use it (it is not a part of portal).

The principle consists in defining workflow for resources as an xml definition &lt;img src="http://feeds.feedburner.com/~r/Wdyt/~4/s6NfvUTUdtc" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://l154k.blogspot.com/feeds/8355746260003549075/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=967368946499624991&amp;postID=8355746260003549075" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/8355746260003549075?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/8355746260003549075?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdyt/~3/s6NfvUTUdtc/10-things-programmer-should-know-about.html" title="10 things a programmer should know about Liferay Kaleo Workflow Engine" /><author><name>Lisak</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://l154k.blogspot.com/2011/11/10-things-programmer-should-know-about.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEEFQnkyeCp7ImA9WhRSF0k.&quot;"><id>tag:blogger.com,1999:blog-967368946499624991.post-6252139191202205095</id><published>2011-11-09T18:40:00.000-08:00</published><updated>2011-11-19T15:50:13.790-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-19T15:50:13.790-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="workflows" /><category scheme="http://www.blogger.com/atom/ns#" term="business processes" /><category scheme="http://www.blogger.com/atom/ns#" term="kaleo engine" /><category scheme="http://www.blogger.com/atom/ns#" term="Liferay" /><category scheme="http://www.blogger.com/atom/ns#" term="groovy" /><title>Liferay Workflow Kaleo Engine tuning</title><summary type="html">It's been a pleasure to work with Liferay Workflow Kaleo Engine. I'm not going to introduce it here, you can read about it in the documentation reference. I just wanted to mention one thing that I needed to improve. 

    When I was designing complex workflow definitions that were containing a lot of groovy scripts I just didn't want to write them directly in workflow xml definition. Instead, I &lt;img src="http://feeds.feedburner.com/~r/Wdyt/~4/eK8bteooWdw" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://l154k.blogspot.com/feeds/6252139191202205095/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=967368946499624991&amp;postID=6252139191202205095" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/6252139191202205095?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/6252139191202205095?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdyt/~3/eK8bteooWdw/liferay-workflow-kaleo-engine-tuning.html" title="Liferay Workflow Kaleo Engine tuning" /><author><name>Lisak</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://l154k.blogspot.com/2011/11/liferay-workflow-kaleo-engine-tuning.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MFRHo4eSp7ImA9WhRTGEw.&quot;"><id>tag:blogger.com,1999:blog-967368946499624991.post-6403387933161899595</id><published>2011-11-08T19:36:00.000-08:00</published><updated>2011-11-08T20:03:35.431-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-08T20:03:35.431-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="maven dependencies" /><category scheme="http://www.blogger.com/atom/ns#" term="maven" /><category scheme="http://www.blogger.com/atom/ns#" term="maven mojo" /><category scheme="http://www.blogger.com/atom/ns#" term="Liferay" /><title>How to use Liferay third-party libraries as Maven dependencies ?</title><summary type="html">Almost all day worth of work but finally I finished DependencyInstallerMojo. Simply put, you provide it with destination of Liferay's lib/versions.xml and inclusion regexp patterns that determine which libraries are to be installed into either local maven repository or a custom location and it installs them as Maven artifacts and generates a pom definition that contains corresponding dependencies&lt;img src="http://feeds.feedburner.com/~r/Wdyt/~4/d-SBfpJEApI" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://l154k.blogspot.com/feeds/6403387933161899595/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=967368946499624991&amp;postID=6403387933161899595" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/6403387933161899595?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/6403387933161899595?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdyt/~3/d-SBfpJEApI/how-to-use-liferay-third-party.html" title="How to use Liferay third-party libraries as Maven dependencies ?" /><author><name>Lisak</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://l154k.blogspot.com/2011/11/how-to-use-liferay-third-party.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQMSHg7cCp7ImA9WhRTGUk.&quot;"><id>tag:blogger.com,1999:blog-967368946499624991.post-8698158315500787758</id><published>2011-11-07T08:57:00.000-08:00</published><updated>2011-11-10T08:43:09.608-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-10T08:43:09.608-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="plexus" /><category scheme="http://www.blogger.com/atom/ns#" term="google guice" /><category scheme="http://www.blogger.com/atom/ns#" term="maven" /><category scheme="http://www.blogger.com/atom/ns#" term="javadoc tags" /><category scheme="http://www.blogger.com/atom/ns#" term="annotations" /><title>Does Maven honor principles it is based on in its own architecture ?</title><summary type="html">  I like Maven a lot, makes Java programming more fun and spares a lot of time. I also understand principles of preserving backward compatibility, but it is supposed to be comprehension tool, but inside it still uses Plexus or Javadoc tags that are quite hard to comprehend and imho should be deprecated in version 2 and disappear in version 3. But I don't see almost any sings of that.

People know&lt;img src="http://feeds.feedburner.com/~r/Wdyt/~4/VKu90hB6ev0" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://l154k.blogspot.com/feeds/8698158315500787758/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=967368946499624991&amp;postID=8698158315500787758" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/8698158315500787758?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/8698158315500787758?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdyt/~3/VKu90hB6ev0/does-maven-honor-principles-it-is-based.html" title="Does Maven honor principles it is based on in its own architecture ?" /><author><name>Lisak</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-pWLttk4i8n4/TrkhOHr_ADI/AAAAAAAACos/hJcpTMjW8Xs/s72-c/plexus-to-guice.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://l154k.blogspot.com/2011/11/does-maven-honor-principles-it-is-based.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8CQHo5eSp7ImA9WhRTFUU.&quot;"><id>tag:blogger.com,1999:blog-967368946499624991.post-4482924147715954039</id><published>2011-11-06T04:51:00.000-08:00</published><updated>2011-11-06T04:51:01.421-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-06T04:51:01.421-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="load balancing" /><category scheme="http://www.blogger.com/atom/ns#" term="sharding" /><category scheme="http://www.blogger.com/atom/ns#" term="database" /><category scheme="http://www.blogger.com/atom/ns#" term="Liferay" /><title>Liferay database load balancing and sharding</title><summary type="html">If you are considering optimizations at the database level, you should be aware of 2 things :

Sharding

Technique that scales your database along portal instances : Database Sharding. Not that I have used it already, I haven't found a use case for this yet, so I'm setting up liferay-maven-plugin to call ServiceBuilder with these properties, so that it doesn't generate file &lt;img src="http://feeds.feedburner.com/~r/Wdyt/~4/1xZdjwBZRG4" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://l154k.blogspot.com/feeds/4482924147715954039/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=967368946499624991&amp;postID=4482924147715954039" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/4482924147715954039?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/4482924147715954039?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdyt/~3/1xZdjwBZRG4/liferay-database-load-balancing-and.html" title="Liferay database load balancing and sharding" /><author><name>Lisak</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://l154k.blogspot.com/2011/11/liferay-database-load-balancing-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcBSX89eip7ImA9WhRSFE4.&quot;"><id>tag:blogger.com,1999:blog-967368946499624991.post-7117901447037561844</id><published>2011-11-06T04:36:00.001-08:00</published><updated>2011-11-16T02:07:38.162-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-16T02:07:38.162-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="caching" /><category scheme="http://www.blogger.com/atom/ns#" term="hibernate" /><category scheme="http://www.blogger.com/atom/ns#" term="Ehcache" /><category scheme="http://www.blogger.com/atom/ns#" term="Liferay" /><title>Liferay caching</title><summary type="html">Liferay is caching on a few places. Good one to start at is taking a look at PortalContextLoaderListener where all the key classes that take care of pooling, caching or buffering get revealed.

Entity caching and Finder caching :

These are just java collections that are mapping an instance of an Object representing an Entity to a primary key. Unless you access database by other means than via &lt;img src="http://feeds.feedburner.com/~r/Wdyt/~4/fNU2zkUUyh0" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://l154k.blogspot.com/feeds/7117901447037561844/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=967368946499624991&amp;postID=7117901447037561844" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/7117901447037561844?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/7117901447037561844?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdyt/~3/fNU2zkUUyh0/liferay-caching.html" title="Liferay caching" /><author><name>Lisak</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://l154k.blogspot.com/2011/11/liferay-caching.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUGQHc_cCp7ImA9WhRTFUU.&quot;"><id>tag:blogger.com,1999:blog-967368946499624991.post-3393806571572960680</id><published>2011-11-06T04:29:00.000-08:00</published><updated>2011-11-06T04:57:01.948-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-06T04:57:01.948-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="performance" /><category scheme="http://www.blogger.com/atom/ns#" term="caching" /><category scheme="http://www.blogger.com/atom/ns#" term="servlet filters" /><category scheme="http://www.blogger.com/atom/ns#" term="Liferay" /><title>Liferay servlet filtering</title><summary type="html">    The first thing that I have noticed when I started using Liferay was quite a significant amount of filters. Some of them relates to performance, caching, bandwidth, garbage collection of thread locals, security or providing you with various ways of authentication. But you should really know them and turn those that you don't need off. You can do that in portal-ext.properties.

    # Audit &lt;img src="http://feeds.feedburner.com/~r/Wdyt/~4/-GnA2Q6OHU0" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://l154k.blogspot.com/feeds/3393806571572960680/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=967368946499624991&amp;postID=3393806571572960680" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/3393806571572960680?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/3393806571572960680?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdyt/~3/-GnA2Q6OHU0/liferay-servlet-filtering.html" title="Liferay servlet filtering" /><author><name>Lisak</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://l154k.blogspot.com/2011/11/liferay-servlet-filtering.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8NSXczfCp7ImA9WhRTGUs.&quot;"><id>tag:blogger.com,1999:blog-967368946499624991.post-4238310362757072271</id><published>2011-11-06T03:07:00.000-08:00</published><updated>2011-11-10T15:14:58.984-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-10T15:14:58.984-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="surefire-plugin" /><category scheme="http://www.blogger.com/atom/ns#" term="maven" /><title>Booting up Ant project when testing with Maven and surefire plugin</title><summary type="html">
Have you ever had a huge non-maven project that you needed to boot up in order to use it when testing your maven project ? The first time I had to deal with that, I wrote an Ant script that has installed all those hundreds of jars as dummy dependencies with no metadata to maven repository. It was called every time the software finished building.
   The second time I needed to do something &lt;img src="http://feeds.feedburner.com/~r/Wdyt/~4/sx576XSPaYY" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://l154k.blogspot.com/feeds/4238310362757072271/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=967368946499624991&amp;postID=4238310362757072271" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/4238310362757072271?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/4238310362757072271?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdyt/~3/sx576XSPaYY/booting-up-ant-project-when-testing.html" title="Booting up Ant project when testing with Maven and surefire plugin" /><author><name>Lisak</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://l154k.blogspot.com/2011/11/booting-up-ant-project-when-testing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQAQ346fyp7ImA9WhRTFU8.&quot;"><id>tag:blogger.com,1999:blog-967368946499624991.post-3763468975487340477</id><published>2011-10-26T14:53:00.000-07:00</published><updated>2011-11-05T14:25:42.017-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-05T14:25:42.017-07:00</app:edited><title>Find yourself some rules to stick to !</title><summary type="html">    I realized that keeping a few rules could be more important than any other skill of a developer. Some of them are :

making a precise image of what you want

   If you are writing an algorithm, unless you are 90% sure that this is the right solution, at least in your best, you shouldn't be writing it at all and think harder. Programming is much like the real life and a lot of principles are &lt;img src="http://feeds.feedburner.com/~r/Wdyt/~4/XJrBZ-cBNPo" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://l154k.blogspot.com/feeds/3763468975487340477/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=967368946499624991&amp;postID=3763468975487340477" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/3763468975487340477?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/3763468975487340477?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdyt/~3/XJrBZ-cBNPo/find-yourself-some-rules-to-stick-to.html" title="Find yourself some rules to stick to !" /><author><name>Lisak</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://l154k.blogspot.com/2011/10/find-yourself-some-rules-to-stick-to.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MGQ309eCp7ImA9WhdaFUo.&quot;"><id>tag:blogger.com,1999:blog-967368946499624991.post-2997087242602984803</id><published>2011-10-24T16:42:00.000-07:00</published><updated>2011-10-25T14:50:22.360-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-25T14:50:22.360-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="procrastination" /><title>What is even worse than getting stuck?</title><summary type="html">    Every programmer knows how it feels to get stuck. There are various means of getting stuck, sure. You might deal with something trivial that you don't have experience with for an hour instead of ten minutes. You could get annoyed by a task that you don't like or have a little motivation to finish, voila, you find yourself procrastinating a few hours because you don't want to get certain &lt;img src="http://feeds.feedburner.com/~r/Wdyt/~4/BJXgg7JjF14" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://l154k.blogspot.com/feeds/2997087242602984803/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=967368946499624991&amp;postID=2997087242602984803" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/2997087242602984803?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/2997087242602984803?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdyt/~3/BJXgg7JjF14/what-is-even-worse-than-getting-stuck.html" title="What is even worse than getting stuck?" /><author><name>Lisak</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://l154k.blogspot.com/2011/10/what-is-even-worse-than-getting-stuck.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEEBQX4zeyp7ImA9WhdaFUU.&quot;"><id>tag:blogger.com,1999:blog-967368946499624991.post-2025210172722157087</id><published>2011-10-24T08:13:00.000-07:00</published><updated>2011-10-25T16:50:50.083-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-25T16:50:50.083-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Scala" /><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="closures" /><title>Died learning Scala</title><summary type="html">     I spent an entire weekend trying to break through Scala. The amplitude of interest was increasing at first but suddenly rapidly decreased until I lost patience for good. I barely finished 10 projectEuler's problems except for reading up documentation. The more experience I had the more unhappy I was about the complexity of the language and mainly the abstraction layer. Considering the fact &lt;img src="http://feeds.feedburner.com/~r/Wdyt/~4/CxZasbqMTts" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://l154k.blogspot.com/feeds/2025210172722157087/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=967368946499624991&amp;postID=2025210172722157087" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/2025210172722157087?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/2025210172722157087?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdyt/~3/CxZasbqMTts/died-learning-scala.html" title="Died learning Scala" /><author><name>Lisak</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://l154k.blogspot.com/2011/10/died-learning-scala.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMCR30_eyp7ImA9WhdaEU8.&quot;"><id>tag:blogger.com,1999:blog-967368946499624991.post-1122353190855496956</id><published>2011-10-20T04:16:00.000-07:00</published><updated>2011-10-20T08:11:06.343-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-20T08:11:06.343-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="jcr" /><category scheme="http://www.blogger.com/atom/ns#" term="Jackrabbit" /><category scheme="http://www.blogger.com/atom/ns#" term="modeshape" /><category scheme="http://www.blogger.com/atom/ns#" term="document library" /><category scheme="http://www.blogger.com/atom/ns#" term="ECM" /><category scheme="http://www.blogger.com/atom/ns#" term="Liferay" /><title>Liferay Modeshape Hook</title><summary type="html">Liferay has a really incredible ability to support various implementations and technology vendors. I mean, search through portal-properties for something you'd need to use and you most probably find that Liferay supports it.

As far as ECM is concerned, Liferay Portal disposes of Document Library that has Repository implementations underneath. The default repository, LiferayRepository, is a &lt;img src="http://feeds.feedburner.com/~r/Wdyt/~4/iMWKb8DkFik" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://l154k.blogspot.com/feeds/1122353190855496956/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=967368946499624991&amp;postID=1122353190855496956" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/1122353190855496956?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/1122353190855496956?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdyt/~3/iMWKb8DkFik/liferay-modeshape-hook.html" title="Liferay Modeshape Hook" /><author><name>Lisak</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://l154k.blogspot.com/2011/10/liferay-modeshape-hook.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkAASXo6fCp7ImA9WhdbGEQ.&quot;"><id>tag:blogger.com,1999:blog-967368946499624991.post-5178340823044131586</id><published>2011-10-17T16:39:00.000-07:00</published><updated>2011-10-17T16:39:08.414-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-17T16:39:08.414-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Translator Toolkit Client" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Translator Toolkit" /><category scheme="http://www.blogger.com/atom/ns#" term="Google API" /><title>Google Translator Toolkit Client</title><summary type="html">    Half a year ago I implemented this Java Client that covers most of what Google Translator Toolkit  API has to offer. One implementation that depends on the old gdata-java-client is already available by Google. This one is using the new java client library (com.google.api-client 1.5-beta) after I switched from 1.3 or 1.4 version.
    Translator Toolkit API is restricted but you may ask for the&lt;img src="http://feeds.feedburner.com/~r/Wdyt/~4/4Om1iqYcU20" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://l154k.blogspot.com/feeds/5178340823044131586/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=967368946499624991&amp;postID=5178340823044131586" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/5178340823044131586?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/5178340823044131586?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdyt/~3/4Om1iqYcU20/google-translator-toolkit-client.html" title="Google Translator Toolkit Client" /><author><name>Lisak</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://l154k.blogspot.com/2011/10/google-translator-toolkit-client.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkECR3w7eyp7ImA9WhdbGEQ.&quot;"><id>tag:blogger.com,1999:blog-967368946499624991.post-7912995246502696684</id><published>2011-10-17T16:35:00.000-07:00</published><updated>2011-10-17T16:37:46.203-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-17T16:37:46.203-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Translator Toolkit Client" /><title>Need documents of various media types and language ?</title><summary type="html">    I wrote this java document provider library for Google Translator Toolkit Client. It is quite handy when developing an application that works with documents, that either vary in media type or language. TDD is the best approach for writing these kinds of apps and this library allows you to set up your test suits with documents very easily.
   It downloads text data and makes combination of &lt;img src="http://feeds.feedburner.com/~r/Wdyt/~4/auZ87p06NO0" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://l154k.blogspot.com/feeds/7912995246502696684/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=967368946499624991&amp;postID=7912995246502696684" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/7912995246502696684?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/7912995246502696684?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdyt/~3/auZ87p06NO0/need-documents-of-various-media-types.html" title="Need documents of various media types and language ?" /><author><name>Lisak</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://l154k.blogspot.com/2011/10/need-documents-of-various-media-types.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUINRX0zeCp7ImA9WhdbFEw.&quot;"><id>tag:blogger.com,1999:blog-967368946499624991.post-1632073244210876405</id><published>2011-10-11T17:58:00.000-07:00</published><updated>2011-10-12T04:06:34.380-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-12T04:06:34.380-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="thread" /><category scheme="http://www.blogger.com/atom/ns#" term="volatile modifier" /><category scheme="http://www.blogger.com/atom/ns#" term="lock" /><category scheme="http://www.blogger.com/atom/ns#" term="synchronized statement" /><category scheme="http://www.blogger.com/atom/ns#" term="java memory model" /><category scheme="http://www.blogger.com/atom/ns#" term="synchronized method" /><category scheme="http://www.blogger.com/atom/ns#" term="jvm" /><category scheme="http://www.blogger.com/atom/ns#" term="concurrency" /><title>Is Java concurrency for human beings ?</title><summary type="html">  Do you also have the bad feeling or uncertainty whenever you use volatile field modifier? The fact that compiler or processor can reorder statements or keep values in registers and that Java Memory Model and compiler is designed to allow aggressive optimizations is bad for our intuition about sufficiency of code synchronization.
  For instance, if you are iterating something on a boolean field &lt;img src="http://feeds.feedburner.com/~r/Wdyt/~4/5QD1JHl-YUY" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://l154k.blogspot.com/feeds/1632073244210876405/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=967368946499624991&amp;postID=1632073244210876405" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/1632073244210876405?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/1632073244210876405?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdyt/~3/5QD1JHl-YUY/is-java-concurrency-for-human-beings.html" title="Is Java concurrency for human beings ?" /><author><name>Lisak</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://l154k.blogspot.com/2011/10/is-java-concurrency-for-human-beings.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQAR30zfip7ImA9WhdbEUQ.&quot;"><id>tag:blogger.com,1999:blog-967368946499624991.post-412928477735131053</id><published>2011-10-09T13:32:00.000-07:00</published><updated>2011-10-09T13:32:26.386-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-09T13:32:26.386-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Google API" /><category scheme="http://www.blogger.com/atom/ns#" term="cURL" /><category scheme="http://www.blogger.com/atom/ns#" term="shell" /><title>Google API Shell Client</title><summary type="html">If you are on Linux and want to try or test Google APIs, you might want to use this simple shell script I wrote to share with other developers when dealing with bugs.

Google API Shell Client

I have tested it on just a few APIs. Using cURL directly is quite annoying, mainly due to a very long auth token that spreads across a few lines and that must be present in each request.&lt;img src="http://feeds.feedburner.com/~r/Wdyt/~4/ROZ_F_NUyRA" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://l154k.blogspot.com/feeds/412928477735131053/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=967368946499624991&amp;postID=412928477735131053" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/412928477735131053?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/412928477735131053?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdyt/~3/ROZ_F_NUyRA/google-api-shell-client.html" title="Google API Shell Client" /><author><name>Lisak</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://l154k.blogspot.com/2011/10/google-api-shell-client.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUINQHw8eyp7ImA9WhdbEUg.&quot;"><id>tag:blogger.com,1999:blog-967368946499624991.post-8866694998551781266</id><published>2011-10-09T02:45:00.000-07:00</published><updated>2011-10-09T02:46:31.273-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-09T02:46:31.273-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Not Invented Here Syndrome" /><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Translator Toolkit" /><category scheme="http://www.blogger.com/atom/ns#" term="reinvent the wheel" /><category scheme="http://www.blogger.com/atom/ns#" term="Google API" /><category scheme="http://www.blogger.com/atom/ns#" term="Google" /><category scheme="http://www.blogger.com/atom/ns#" term="GData" /><title>Not Invented Here Syndrome, why reinvent the wheel?</title><summary type="html">
From my point of view Not Invented Here Syndrome is both a great anti-pattern and a way to be very productive in short term.

When developing application without using third party software (libraries, platforms or APIs) there is nothing to stop you from delivering the SW. Except for your own inability to design and implement it. I'm not talking about the fact that developers don't have &lt;img src="http://feeds.feedburner.com/~r/Wdyt/~4/pmA095kFhw4" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://l154k.blogspot.com/feeds/8866694998551781266/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=967368946499624991&amp;postID=8866694998551781266" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/8866694998551781266?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/8866694998551781266?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdyt/~3/pmA095kFhw4/not-invented-here-syndrome-why-reinvent.html" title="Not Invented Here Syndrome, why reinvent the wheel?" /><author><name>Lisak</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://l154k.blogspot.com/2011/10/not-invented-here-syndrome-why-reinvent.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QASH46eyp7ImA9WhRTFUo.&quot;"><id>tag:blogger.com,1999:blog-967368946499624991.post-1763466632663213030</id><published>2011-10-07T05:05:00.000-07:00</published><updated>2011-11-06T03:35:49.013-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-06T03:35:49.013-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java 7" /><category scheme="http://www.blogger.com/atom/ns#" term="gwt" /><category scheme="http://www.blogger.com/atom/ns#" term="Nashorn" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Dart" /><category scheme="http://www.blogger.com/atom/ns#" term="Generics" /><category scheme="http://www.blogger.com/atom/ns#" term="Oracle" /><category scheme="http://www.blogger.com/atom/ns#" term="Google" /><category scheme="http://www.blogger.com/atom/ns#" term="java 8" /><category scheme="http://www.blogger.com/atom/ns#" term="V8" /><category scheme="http://www.blogger.com/atom/ns#" term="jvm" /><title>Java 8 backwards compatibility</title><summary type="html">I really hope that Oracle JVM engineers will decide to ignore backwards compatibility for Java 8 release. It is a great burden for the language in past releases and for developers too. The language is and was overly complicated and honoring backward compatibility is totally counterproductive.

For instance, consider Generics that were introduced in Java 5. It came with Type Erasure due to &lt;img src="http://feeds.feedburner.com/~r/Wdyt/~4/HfbvsYwSO4U" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://l154k.blogspot.com/feeds/1763466632663213030/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=967368946499624991&amp;postID=1763466632663213030" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/1763466632663213030?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/1763466632663213030?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdyt/~3/HfbvsYwSO4U/java-8-backwards-compatibility.html" title="Java 8 backwards compatibility" /><author><name>Lisak</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://l154k.blogspot.com/2011/10/java-8-backwards-compatibility.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4HSXk4eSp7ImA9WhdbEEw.&quot;"><id>tag:blogger.com,1999:blog-967368946499624991.post-8331539213649777175</id><published>2011-06-01T11:55:00.000-07:00</published><updated>2011-10-07T11:08:58.731-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-07T11:08:58.731-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="jcr" /><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="modeshape" /><category scheme="http://www.blogger.com/atom/ns#" term="document library" /><category scheme="http://www.blogger.com/atom/ns#" term="spring" /><category scheme="http://www.blogger.com/atom/ns#" term="Liferay" /><title>Liferay - Train of thoughts</title><summary type="html">It is ca 2 years ago when I was playing with sample portlets wondering what is the difference between Ext and Hook. I wanted to make a summary of the most important facts that it is good to be aware of.

Newcomers usually expect that they will be able to deliver an Intranet solution or at least a nice website with a few handy plugins very shortly. But suddenly they realize that even though &lt;img src="http://feeds.feedburner.com/~r/Wdyt/~4/ZwVUSk7LBr4" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://l154k.blogspot.com/feeds/8331539213649777175/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=967368946499624991&amp;postID=8331539213649777175" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/8331539213649777175?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/8331539213649777175?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdyt/~3/ZwVUSk7LBr4/liferay-train-of-thoughts.html" title="Liferay - Train of thoughts" /><author><name>Lisak</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://l154k.blogspot.com/2011/09/liferay-train-of-thoughts.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcCRHo_fip7ImA9WhRTGEg.&quot;"><id>tag:blogger.com,1999:blog-967368946499624991.post-809704782141329303</id><published>2011-05-30T13:16:00.000-07:00</published><updated>2011-11-09T06:47:45.446-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-09T06:47:45.446-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="spring" /><category scheme="http://www.blogger.com/atom/ns#" term="portlet" /><category scheme="http://www.blogger.com/atom/ns#" term="Broadleaf Commerce" /><category scheme="http://www.blogger.com/atom/ns#" term="maven" /><category scheme="http://www.blogger.com/atom/ns#" term="Apache Ofbiz" /><category scheme="http://www.blogger.com/atom/ns#" term="e-commerce" /><category scheme="http://www.blogger.com/atom/ns#" term="gwt" /><category scheme="http://www.blogger.com/atom/ns#" term="shopping cart" /><category scheme="http://www.blogger.com/atom/ns#" term="j2ee" /><category scheme="http://www.blogger.com/atom/ns#" term="portal" /><category scheme="http://www.blogger.com/atom/ns#" term="php" /><category scheme="http://www.blogger.com/atom/ns#" term="eshop" /><title>Broadleaf Commerce  Vs.  Apache Ofbiz</title><summary type="html">
At first, around 2-3 years ago, I gave up on using Apache Ofbiz, because it seemed that I wouldn't be able to be "productive" with it for weeks, because of its complexity. But I noticed of Broadleaf Commerce a few months ago and I find it very interesting. The technology stack suits me a lot ( spring, spring-mvc frontend, GWT backend, hibernate on jpa spec, maven, etc.), if it utilized git and &lt;img src="http://feeds.feedburner.com/~r/Wdyt/~4/CtfvXpVWzR0" height="1" width="1"/&gt;</summary><link rel="replies" type="application/atom+xml" href="http://l154k.blogspot.com/feeds/809704782141329303/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=967368946499624991&amp;postID=809704782141329303" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/809704782141329303?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/967368946499624991/posts/default/809704782141329303?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdyt/~3/CtfvXpVWzR0/broadleaf-commerce-vs-apache-ofbiz.html" title="Broadleaf Commerce  Vs.  Apache Ofbiz" /><author><name>Lisak</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>3</thr:total><feedburner:origLink>http://l154k.blogspot.com/2011/09/broadleaf-commerce-vs-apache-ofbiz.html</feedburner:origLink></entry></feed>

