If you work in DevOps with FishEye and Crucible (FE/C) on a daily basis, one of your constant struggles is dealing with the indexing performance of these tools. A quick win to boost performance is to have a copy of your source code repository on the same physical server as the FE/C instance. For those […]

First, I have a strong opinion about the term “the fold” when used with websites. I believe that there’s a huge misconception about the importance of elements “above the fold.” I don’t think that’s a relevant excuse to make changes to the way a web page is laid out. The term originated in the newspaper […]

How many times have you had a way of implementing something buried under layers of classes/source code that’s fairly impossible to explain, understand and much less remember months down the road? Usually it starts with a question that goes something like, “Hey Bob, how does that rule for TPS reports get applied?” Or worse yet, […]

Over the years in my work as a consultant, I’ve worked with several companies that were looking to convert their legacy systems to a web-based solution. Once they selected Java (great choice!) as their language, their next question is usually, “What Java framework should we use?” In my experience, it usually comes down to Struts […]

The goal of the Practical Liferay Series is to provide a series of discussions on practical Liferay concerns such as installations in environments beyond a standard bundled Tomcat installation. This discussion will cover several specific issues when installing Liferay in a clustered Glassfish environment with specific examples and links to resources. Developers and administrators of […]

It is pretty common when using Spring JPA in a web application to have the JPA entity manager session opened and closed in the context of a web request. From time to time, the lazy developer is tempted to sneak into a web application a batch process or two. It doesn’t take long to realize […]

Search for SEO on Google and you will have your choice of 848,000,000 results. There are few things that are more nebulous and misunderstood than the three letters SEO. Searching for an answer to “What is SEO?” is like looking for a grain of sand in the Sahara, so I apologize for the extremity of […]

This blog will cover some aspects of a login portlet implementation that will utilize the Google OpenID interface for user authentication. You might say that Liferay already provides that kind of implementation using its OpenID feature. However, implementing the authentication yourself gives you the opportunity to provide a custom login page and add some functionality […]

SIMPLIFYING PORTLETS As a consultant asked to maintain and expand portal applications, one of the problems I run across is “portlet bloat.” That is, a single portlet solves all the problems of an application on its own as if it’s a full-blown web application. It may be an oversimplification to call a portlet a ‘mini […]

Consider the following code: If I had a dollar for every time I’ve seen code like this, I’d be writing this blog from the beach. It turns out that, thanks to the geniuses at SpringSource, some of this code can be eliminated and replaced by a generic string to entity converter with the Spring Type […]