Cross blogging

| No Comments | No TrackBacks

It's been a while since my last post here. Apart from the traditional 'no time' excuse, there is one more. Since I joined Liferay last year, my Liferay related blogs are now on website: I don't think cross blogging is a good idea, so I didn't want copy them here as well. However some people have asked to at least add here a link to my other blogs whenever I publish something new. So here are the links for the ones that are already out there:

Liferay source code history - a piece of art - Shows what it takes to build a product like Liferay in a very visual way

The power (user) is back - An attempt to explain how User and PowerUser roles differ and what they are used for.

Mobile Device Recognition beyond the UI - Revealing some not very well know features of Liferay's mobile device recognition feature

From now on, I'll try to announce here my Liferay blogs. I also have some thought to share on different technologies (like Karaf, OrientDB and AngularJs to mention a few) but those require more time to prepare.


About complexity, modularity and OSGi

| No Comments | No TrackBacks

Today I followed the link from this tweet:

which leads to a this article. I read it quickly on my cell phone and got the following impression:

The solution for Complexity is modularity. The way you properly do modularity is OSGi. So OSGi is the solution for complexity!

The original purpose of CustomGlobalMarkup portlet was to provide convenient interface for adding 3rd parties javascript code (like Google Analytics, Geminus, ClickTale, Crazy Egg, ...) to every page. However since it allows to add any markup it can be used to do some other cool things. For example - image slideshows. 
Image sliders are made of pure HTML + CSS +Javascript and usually don't require any server side implementation. However I recently noticed a few posts on Liferay forums where people were asking about how to implement them in Liferay. One particular question was about how to add Image slider portlet on every portal page without modifying the theme. This inspired me to white about how CustomGlobalMarkup portlet can help achieve that. I'm not saying this is the best solution, nor that it will fulfill any requirement out there. I'm just sharing an idea with you, so please make sure you understand all pros and cons before you put this code in production.

Mobile device detection in Liferay 6.1

| 5 Comments | No TrackBacks

I'm still getting a lot of questions about how to use the multi-device extension in Liferay 6.1. The answer is, you don't have to. The code was contributed to Liferay and it's now available OOTB in Liferay 6.1.

The following comparison table will give you a better idea of what went where:

 Feature Liferay 6.0  Liferay 6.1
look and feel change logic, generic data model and "extension points" for other plug-ins. multi-device-ext plugin integrated into Liferay's core. No need to install additional plug-in
Device recognition based on WURFL wurfl-web 6.0.5.x plugin (does not contain WURFLD DB) wurfl-web 6.1.0.x (available under AGPL license, due to the fact WURFL itself switched to AGPL, as part of Liferay's official plug-ins. It contains the WURFL's database!)
Building device rules and applying actions to matched rules device-rules-hook-6.0.5.x plugin Integrated into Liferay's core. No need to install additional plug-in (Provides somewhat different approach for managing rules and rule groups. Rules conditions simplified/limited to OS chooser and "is tablet" combo box.)



 So, to use device detection in Liferay 6.1, all you need to do is download and install the official wurfl-web plugin. 


Liferay Portal Systems Development - review

| No Comments | No TrackBacks

Imagine you are not a Java guru but a ... connoisseur of art. You are visiting a beautiful city called Liferay and you know it's full of museums, art galleries, music halls, great architecture, ... You can certainly organize your trip in many different ways. One of them is taking the bus tour and this is what a Liferay Portal Systems Development book would be in this analogy. Actually it may even be a very good idea for a start. However, please note, the route is somewhat outdated and passes by places which no longer exists. Also the tour guide is all the time pointing out things, but as soon as the story becomes really interesting and you can't wait for the details, she moves to the next subject.

Liferay Portal Systems Development

| No Comments | No TrackBacks

Here I go again. This time reviewing the "Liferay Portal systems Development" book. No, I'm not preparing to apply for book reviewer position at Packt Publishing. And yes, I'm a bit worried this blog is recently more about books and less about technology. So once I'm done reading this one, I'll try to concentrate on some more technical posts and give the books some rest (unless I finally find the strength to write one).

Liferay Beginner's Guide - review

| 4 Comments | No TrackBacks

As I promised a few weeks ago, in this post I'll share my thoughts about "Liferay Beginner's Guide" book. As with earlier reviews, don't expect any judgments, recommendations or generalizations. Those are to be made by you. I'll only concentrate on what I found interesting (or boring) and worth mentioning (for one reason or another). So let me try to summarize over 350 pages in a few lines.

Liferay Beginner's Guide

| No Comments | No TrackBacks

If you are following any Liferay related sites, forums, tweets, ..., then for sure you've heard about the new book titled "Liferay Beginner's Guide". The book was released in December 2011 and it is getting a lot more attention that I would ever expect. To be honest I'm kind of surprised there are so many Liferay beginners out there. So I volunteered to review the book hoping to check for myself whether all this buzz is only the result of good marketing strategy or it really provides the beginners with the answers they need.

Simple mobile device emulator in Firefox

| 2 Comments | No TrackBacks

After my "Pluggable mobile device detection" presentation during Liferay Europe Symposium a lot of people asked about the mobile device emulator I was using. The truth is, it's not a real "emulator" but a simple combination of html page and a Firefox user script. However, it does the trick and for most people seems to be good enough (at least for a start). So, I made a promise to share it and finally found the time to blog about it.

Liferay - preserve GWT portlet state between reloads

| No Comments | No TrackBacks

One of the problems with GWT (which is even more noticeable in portal environment) is preserving it's state between page reloads. In a GWT-only application (or single portlet on the page case) one can give user no other option but using only GWT controls to practically avoid page reloads. In most cases however this is not really possible nor wise thing to do. In portlet environments in particular, reloading the page is a very commmon thing to do, giving all portlets a chance to refresh their content after some action has taken place. The thing is, GWT portlets will, by default, render their initial state, which may not be what user expects.      

For example, consider the GWT Chatroom portlet I was using in my previous posts Liferay GWT portlet - how to make it "instanceable" and use GWT RPC and Liferay GWT portlet - replacing GWT-RPC with JSON. Imagine user has entered a chatroom. Then she clicks on some other portlet on the page. The page is reloaded and Chatroom portlet returns to it's initial state. The user will have to enter the room again every time she clicks on another portlet. Let's see how this can be fixed.

OpenID accepted here Learn more about OpenID
Powered by Movable Type 5.01