Asset Publisher and Lucene indexes

As I wrote in previous posts here and here in latest version of Liferay there is performance loss around Asset Publisher and permission checking. We discussed that problem in LPS-22332 and we prepared a proof of concept based on concept that Lucene will be faster that plain DB queries. Just as we thought this was a good idea. Full document with results of our comparison tests you can read here.

About usability once again

Currently I’m testing Beta 3 of Liferay 6.1 release and despite many nice changes there are still couple of usability bugs.

New feature in Liferay 6.1 is that you can do almost anything with your site without using Control Panel. While it looks very nice and jazzy in my opinion it was bad thing to do as it often confuses users (especially if they know so much about CMS system as my mom does). They don’t know what is the difference between “Control Panel->Web Content->Add” web content and “Asset Publisher->Add new Basic Web Content” (as you may noticed there is inconsistency in those two labels). They just don’t know which of those two options they should use. Same goes for site settings and Edit Profile (this one opens layer even if you are in control panel already). IMHO most of those layers should be replaced by link that will redirect users to proper page in control panel. But lets forget for a moment about my feeling toward that and take a closer look at one aspect of those layers.

We have layers that do the same thing as Control Panel. After every change you will see Sucess message that will look like this:

Your request completed successfully. The page will be refreshed when you close this dialog. Alternatively you can hide this dialog.

As you may see “hide this dialog” is a nice link that will close your layer immediately. Now go to Control Panel, do the same thing. Ta daa, you will see the same message with the same link but this time it won’t do anything.

And now is the problem to solve. Should we remove that link? Should we duplicate messages for Layers and for Control Panel? Maybe we should leave it as it is and tell users that this is not a bug but a feature? Maybe we should replace layers with links to Control Panel and forget about such problems?

Well, I will leave that answer to you 🙂

Liferay and localization

With Liferay 6.0 you were unable to build news portals in different languages using mirror technique (“one web content in all languages”). This was huge bug for all those people who wanted to make portal outside English-speaking area. This disadvantage was corrected in Liferay 6.1 and now you can enter title and abstract in every language you want (from those in integrated in Liferay 🙂 ). But what about other parts of Liferay, are those prepared for localization? Well answer is NO. Liferay still has long road to go to be fully prepared for such sites. For example you can’t localize notification emails (specially the one about registration in your portal).

So if you want this to be made quickly Vote for LPS-18394 (which was recently updated from “–Sprint – 08/11” to “Product Backlog”)

Want to make Liferay even faster?

If your answer is yes then vote for issue LPS-14055. As you can see Asset Publisher makes many queries to underlying database. Those are very slow queries like count(*) (needed for pager element displayed below assets lists). If you are building big portal with many AP on every page (main article list, dynamic coin slider, recommended articles etc.) you will face lots of such queries. You can of course add additional servers to database layer but that is not a solution. Only thing that will help you is optimizing AP. First thing – in every query AP uses now() for checking expiration date. That lowers database abiliti to cache queries as with every second it gets new query. Second thing is cache – those queries are not made using hibernate. Third thing is speed – why ask database using very slow IN elements in queries if you can use JOINS. There is even better solution – use LUCENE for those slooooooow COUNT queries.

So if you want your Lfierays to become even faster vote for that particular issue now.

Talking about integration

You all know that Liferay gives you many tools for quick integration with other application.

If it’s Java application you can deploy WAR file and with little luck you will see a new portlet with your app in Add application menu.
If it’s served as on separate page you can always show it in IFRAME portlet or in Proxy portlet.

You can also integrate you several applications using SSO, OpenID and LDAP.

But what if you want to always communicate to your users that they are still in your system?

For example let’s take combination of 3 apps: Liferay+OLAT LMS+Lime Survey. I know you can replace Lime Survey with Orbeon forms but here it serves another purpose – it’s not written in JAVA. First and easiest step is to share users through LDAP. In all those apps all is done by selecting proper option in control panel. Now let’s do SSO. Here you will ran into some problems as Lime Survey doesn’t have any CAS integration out of the box.  You can avoid that by selecting apps that support the same authorization solutions. And after that you will have nice pack of apps. But this not the way users see it.

Form their perspective those are different apps they have to learn to use. In most cases they will not even share same look and colors. And when they use their own window system and portlets and they check if it’s opened in IFRAME users will go nuts trying to go back to their Private Page (Liferay) from Learning Course (OLAT LMS). What you can do is to provide on all you apps somekind of unified “frequently used links” listing. And as you generally use Liferay the best way it will be to show it in the manner of Dockbar. Sounds interesting to you? If yes, than vote for ticket LPS-12281. Maybe it will be done as a part of “100 Paper Cuts” program.

Well brother it doesn’t look good

Taken from Liferay JIRA. Question is those new tickets are related to trunk (which is unstable so they should be closed or tagged “will check that in 6.1 RC) or to stable version (6.0.6) of Liferay.

Quick update between projects

Did you saw new Liferay JIRA? Well here it is 🙂

Hope it will help solve problems quickier 😉