Easier to find PDF links

Company Blogs October 7, 2010 By Jorge Ferrer Staff

 While the ability to have all of our official docs in HTML form and indexed is great, in some cases we all prefer a PDF version that can easily be printed or checked while offline.

We've always had the PDF version of our guides available but after the redesign they weren't so visible any more, so some of you had been asking about them. As a result we've just applied an small change in the design so that along with the Table of Contents of each guide there is now also a link to download the PDF of that guide:

You will also notice that for those guides that we also offer a printed book through Lulu, there is also a link to get it. Right now the link is only available for the "Administrator's Guide" for 5.2, but the edition for 6.0 will be available very soon. If you are thinking of printing the guide, consider getting the book instead as a way of letting us know that you like it :)

Expanded guide for Ext plugins published within the Developer's Guide

Company Blogs September 30, 2010 By Jorge Ferrer Staff

One of the most interesting improvements of Liferay 6 for developers is that the plugin infrastructure has improved considerably. For example, the hook plugins are now much more powerful and allow customizing the platform in a very maintainable way. Also, the old extension environment has been moved inside the plugins SDK as what are known as Ext plugins.

After publishing our new set of documentation pages and specially the new Developer's Guide, we've been asked for more detailed documentation about Ext plugins. We've been working on it during the last few days and it's now ready and published in the documentation pages.

It includes information about how to migrate an ext environment as well as how to develop and deploy it. We hope you like it.

 

Documentation revamp: status and future plans

Company Blogs September 22, 2010 By Jorge Ferrer Staff

As you have probably already noticed we've just made public a quite large revamp of our documentation. This is the result of a project that has taken several months and has involved gathering feedback from many sources of Liferay's ecosystem, writing and improving documentation, improving the existing docs and developing tools to make them more easily available.

But we don't want to stop here

The purpose of this post is to review the current status of the docs and the plans that we have to keep improving them. Some of them will not be possible without the help of the community so I hope you can see this as an opportunity to contribute :)

Official documentation: www.liferay.com/documentation

This is the main source of accurate information about Liferay. Previously we only had one official guide (Liferay Administrator's Guide) which was only available in PDF or printed and we realized that some people didn't find it. We've expanded this with a Developer's guide and have made it available online so that it's much easier to find, search and link. We have created sections in the site for the last 3 stable versions: 5.1, 5.2 and 5.3. Each of the versions have the following sections:

  • Getting started: this is mainly to add links to specific sections of the Administrator's guide and Developer's guide that we think will be useful for people getting started with Liferay. 
    • Future plans: We may add more links based on feedback from people. But we want to keep the number small since otherwise it would loose its purpose.
  • Administrator's guide: this is a very thorough guide that covers the installation of Liferay for all supported applications servers, including cluster setups. It also covers user's guide for the usage and administration of the web content management and the collaboration suite.
    • Future plans: With each edition of the guide Rich plans to add new chapters for the different suites included out of the box with Liferay.
  • Developer's guide: Since Liferay is a pretty large development platform developing for it offers a very wide set of options. Because of that the hardest part is getting started, finding out what the main options are and when should each be used. This guide provides a general overview of the main strategies to extend Liferay and gives advice to choose which one to use in each situation: Portlets, Themes, Hook plugins, ext plugins, etc.
    • Future plans: We want the guide to be short enough to allow people to read it entirely (or almost) before starting any Liferay development, but still provide enough information to get started. I think the main goal should be to keep finetuning it so that it lowers the barrier of entry for newer developers. We are also considering adding some additional sections, such as one about the creation of web content templates with velocity or XSL.
  • Additional resources: This is an area were we want to link to any additional resources that will be useful to users. It will include links to specially significant wiki articles and blog entries, links to videos about that version of Liferay and links to books about Liferay.
    • Future plans: we are currently working in this section for Liferay 6. It should be ready soon. Later, we will continue adding resources that we find particularly interesting.

Official books and third party books

We now have two official books that cover Liferay:

  • Liferay Administrator's Guide: This is an open source book that we've made available online and can also be bought online through Lulu as a way to help fund it's continued development.
  • Liferay in Action: This book will be published by Manning and offers a very complete trip through Liferay as a development platform. It's an excellent continuation if you've read the developer's guide and want to learn more. It's already available through Mannings Early Access Program (MEAP). In fact you can find some banners in the documentation section to get it with a 35% discount, courtesy of Manning to our community.

There are also two other books written by third parties that add to Liferay's documentation. There are at least two that I know of:

Community wiki: wiki.liferay.com

The wiki is the place where everybody can contribute to the documentation. It currently has more than 900 articles which speaks for the number of contributors around. The drawback of having so many contributors is that the quality of these articles varies a lot, and some times they become outdated which is not easy to notice as a reader except the hard way (when the instructions fail). We had noticed that some people thought the wiki was the official documentation and this made it even more frustrating. To avoid that confusion we've moved the wiki to the documentation section, hoping that the menu makes it clear that there is more documentation available. We have of course kept a link in the community section.

Sam Liu, with the help of several community members, has spent the summer reviewing a very large amount of articles fixing all issues they found and helping organize them better. As part of this effort we also wrote an article with the Wiki Guidelines

Future plans: There are many things to do to get the wiki into shape and make it easier for everybody to contribute. First of all we want to encourage the usage of the wiki as an Encyclopedia. That is, most of the articles should be titled after specific components of Liferay. Because of that a good place to start looking at a place to add information is this page: www.liferay.com/community/wiki/-/wiki/Main/Portlets 

We also want to start adding more and more links from wiki articles to specific sections of the administration guide and developers guide. That will help readers find the "official" instructions. It will also help focus the efforts of the wiki volunteers into extending the official documentation, rather than duplicating it. This is a lot of work so we really appreciate your help here. If you find a wiki article that provides some information that either extends or even duplicates that offered by the official documentation, please add a link to it at the top of the article so that it's easier to find for future readers.

Javadocs & other reference documentation

I almost forgot this one. One of the ongoing efforts that I'm pretty sure many people will be happy about is the work we are doing to greatly improve the information included in our Javadocs. One common complain from our community is that our Javadocs don't contain much information (actually most of the time it doesn't contain any). That was because our policy was that Javadocs weren't allowed. One of the reasons was that several of us had had horrible experiences with APIs whose Javadocs were often outdated and inconsistent which was worse than having no Javadocs at all. Also since the Liferay code is available we often end up using it directly. But we do understand that Javadocs are necessary for many developers. Because of that a few months ago we defined a process and started an effort to provide Javadocs with a quality that we all feel comfortable with. As a result, Connor (who is leading this effort) has written a set of JavaDoc Guidelines that will let every developer know how Javadocs should be in Liferay.

What's the current status? We've added quality Javadocs to around 50-100 classes already (mainly utility classes and some services) and the number is increasing weekly. We are currently starting to work in package.html documentation and are discussing how we can extract out the implementation classes from the javadocs so that it's easier to find what can really be used from plugins. We'll keep you up to date.

 

That's it, I hope you enjoy the new documentation. If you'd like to help improving it further or let us know your suggestions, you can use a new category in the forums created explicitly to discuss about documentation.


Liferay en la Open Source World Conference (OSWC)

Company Blogs July 30, 2010 By Jorge Ferrer Staff

Después de un año de pausa este año vuelve de nuevo la Open Source World Conference en Málaga. Después del gran éxito del Symposium en Madrid, nos hemos quedado con ganas de más y hemos pensado que sería una gran idea repetir varias de las charlas técnicas que preparamos para el symposium junto con algunas nuevas que prepararemos para la ocasión.

En esta ocasión los organizadores del evento han preparado un sistema público de evaluación de las ponencias por lo que cualquier persona puede votar por aquellas que más les interesa (una gran idea en mi opinión). Por ello necesitamos vuestra ayuda para que las ponencias que hemos propuesto tengan muchos votos y podamos hacer cuantas más mejor. Para votar lo único que tienes que hacer es registrarte y luego ir a las páginas de cada una de las propuestas. Esta es la lista de nuestras ponencias:

 Aunque no sabes si podrás ir a estas ponencias también te animamos a votar por ellas dado que si todo va bien y tienen éxito intentaremos repetirlas en otras ocasiones más adelante.

Explaining the new versioning scheme for Liferay 6

Company Blogs July 27, 2010 By Jorge Ferrer Staff

Along with all the functional and architectural improvements of Liferay 6, we've also tried to improve our release process based on the feedback that we've received from the community and customers during the last releases.

Let's start with the basics, here are some simple rules to interpret the meaning of a version:

  • Versions consist of a three digit number. For example, 6.0.2. These numbers represent: Major.Minor.Maintenance
  • A change in the third digit (e.g, 6.0.5 to 6.0.6) is a maintenance release (aka Service Pack). This means that:
    • Each maintenance release provides higher security / reliability.
    • Customizations are generally safe but we recommend doing a review.
    • No new features are included (although the first few maintenance releases can contain some changes to existing features based on the feedback received). There were some exceptions to this rule in some 5.2 maintenance releases but we've decided to be much more strict for Liferay 6.
    • These rules are relaxed when the minor or major release is still in beta quality.
  • A change to the second digit (e.g., 6.0 to 6.1) is a minor release:
    • This will include new features plus bug fixes from prior releases.
    • Customizations may be affected when installing. Customers should leverage the upgrade tools and documentation.
  • A change in the first digit (e.g., 6.x to 7.x) is a major release:
    • This will include major changes in functionality or add high demand functionality.
    • This may include architectural changes, changes to API's (as part of deprecation process) and may change internal schema.

Now lets get into some details of what we've improved and why we've done it. First, it's worth mentioning that one of the goals for the release of Liferay 6 was to make it the community edition release with highest quality ever.

A second motivation we had is that in the past we had noticed that people were installing in production releases that didn't have enough quality to do so. For example, I've seen installations with Liferay 5.2.0 or 5.2.1. Also we've had plenty of requests from community members who volunteered to help doing beta testing.

So we've decided that with Liferay 6 each version will have a surname that specifies the expected quality of that release. The third version number is usually hidden, but it's still visible through the logs and administration UIs. Here is the evolution of versions:

  1. Preview and Beta (6 Preview 1, Beta 1, 6 Beta 2, ...): There can be zero or more of these types within each minor or major release. These releases are meant for testing and to provide us feedback through the beta testing category in the forums. There can be changes in features between beta releases but in general they won't be major.
  2. Release Candidates (6 RC1, 6 RC2): There can be 0, 1 or more of these right after the beta releases. This are more stable and are meant for those that prefer to wait a little to test the release.
  3. General Availability (6 GA1, 6 GA2, ....): There can be 1 or more of these releases. A General Availability version is released when our engineering team and the QA team based on our own testing and the feedback from the beta testers decide that the release has good quality and can be of general use for the community. Of course this doesn't mean that it's bug free so we keep an eye on the community since at this point many more people start using the version and find new bugs (usually minor). When this happens we fix the issues and release a new GA version. Several GA versions may be made available until the engineering team moves towards releasing an EE release.
  4. Service Packs (6 SP1, 6 SP2, ...): These are maintenance releases will keep coming out for 4 years after the original release date. These releases are only available to customers who have an update service that comes with every Enterprise Edition. To ensure this we have a team dedicated to keep testing and doing corrective improvements to this release to ensure the highest quality. All fixes done in the service packs are also done in svn and will be part also of the next minor or major release. This ensures that all the community benefits from the fact that we can have more people working on QA as more customers buy our Enterprise Edition services.

The following diagram represents this in a graphic form:

So you might be asking yourself, which version should I use? what if I was using a previous version? Will the update to a new maintenance release cost a lot? Here are some comments and recommendations to answer all these questions.

  • You are very welcome to use any preview, beta or release candidate version. In fact that's why they exist so that as many people as possible start using it and provide us their feedback. However, we do not recommend using beta releases in production or even during development if you have tight deadlines (since you may find road blocks).
  • You should always update to the latest maintainance release available for the minor or major version you are using. This means that at the time of writing you should be using Liferay 6 GA 2, but if we later decide to release GA 3, our recommendation is that you switch to it since it includes fixes for other bugs found by other Liferay users.
  • Updating to a new maintenance release should be a process that requires little effort from the first GA forward. That is, you should be able to upgrade from Liferay 6 GA 1 to any future Liferay 6 GA or any Liferay 6 SP within hours or days in the worst case scenarios.
  • To ensure that the updates are as easy as possible (and also ease upgrades to new minor or major versions) use the best development practices when extending Liferay. I'll write a blog post (or maybe a whitepaper) with more details but at the very least you should use plugins instead of the extension environment (or ext plugin) whenever possible. And always use APIs that are meant to be public (specially when using ext). Also avoid overriding JSPs that have a lot of logic or keep a very tight control of them (and review them when updating for changes to the originals).
  • Plugins that work in any GA or SP version will work in any later maintenance version. That is, a plugin developed for Liferay 6 GA1 will also work in Liferay 6 GA  or Liferay 6 SP3, or .... This is something that we've tried to guarantee in the past but hasn't always been possible. Starting with Liferay 6 we have a testing process in place to make sure this is really guaranteed.
  • Consider investing in the updates and support services of the Enterprise Edition. This will benefit you two-fold, first because you'll be getting quality services that will add value to your Liferay installation and second because it will help evolve the product with new features that you will be able to benefit from.

And that's about it. This new process along with all the work from the QA team and the great help from beta testing volunteers all around the world (thanks again!) makes me feel that this is certainly the best CE release of Liferay ever, and not only in terms of functionality :)

PS:I've created a wiki page with a summary of this post for future reference: Liferay Versioning Policy

Feedback for Liferay 6: Global unified breadcrumb

Company Blogs April 26, 2010 By Jorge Ferrer Staff

 

This is the first post of what I hope will become a series of posts asking for feedback on some of the new features that will be including in Liferay 6. What we are hoping for right now is comments regarding issues from a usability or functional perspective. We'll be looking for ideas for improvements later, as part of the definition of the 6.1 roadmap, but right now our goal is to focus on polishing the features in 6.0 so that we can release 6.0 GA as soon as possible (hopefully within the next few weeks).

After this introduction I'm going to get to the point of this post: The global unified breadcrumb. This is a new navigation component that is shown in all pages at the top and underneath the page navigation:

 

Those of you who have been using Liferay for a while know that the product already had a portlet called breadcrumb that allowed for this. So what's really new?

  1. We have integrated the navigation of the portlets within the breadcrumb of the page. Why? Because as developers we see the portlets as independent components, but to the eyes of a non-technical user, whenever he navigates within a portlet the result is as if he's taken to a new page. Previously we had portlets which had their own breadcrumb but that could get very confusing, because some pages would have 2 or more different breadcrumbs in different positions of the page. Now we've created an API so that portlets could add items to the page breadcrumb as the users navigation through them. We've also modified Liferay's out of the box portlet to make use of this API and have removed their internal breadcrumbs.
  2. As you probably know, Liferay allows having multiple web sites in one single installation: there is one default site, which is called "Guest" but you can add many more sites per community, organization and user. The issue was that there wasn't any way to navigate between them. While such navigation is very dependent on the specific characteristics of each portal, there are some things that are general to all or most. In particular what we have done in the global breadcrumb is to add also the hierarchy of sites that lead to the current one. To that end we've considered that "Guest" is always the parent of all sites (this can be disabled). Underneath are all communities and the hierarchy of organizations. Users' sites are always shown underneath their organization. Here are some example paths:
    1. Guest
    2. Guest > Organization A > User X
    3. Guest > Organization A > Organization A1 > User Y
    4. Guest > Community B
  3. The global unified breadcrumb is always visible on the screen. This feature actually started as a joke to Nate, to which he answered that would be impossible to acomplish. But some time later he came back saying "Don't trust me again when I say something is impossible"... He had done it! So what is it? Basically, the issue with some portal pages is that they are quite long, so if you scroll down the navigation elements are not visible any more. That is specially annoying in the case of the breadcrumb because it also shows where you are, which is always useful. How did nate fix it. Basically when the page scrolls down to a point where the breadcrumb is going to be hidden it gets attached to the top of the page, as if it was a browser bar and stays there, always visible. Here is a picture showing this behavior, you can see how the breadcrumb has changed the background color from white to black to become more easily visible:

     
  4. All of the new features mentioned in points 1 and 2 have been implemented as improvements to the breadcrumbs portlet. But we've also decided that this should always be included by default and thus are including that portlet from the default classic theme. You can of course change this in your own themes, but if you do then you might loose some useful features.

That's mainly it. The best way to understand how it works completely is to download Liferay 6.0 RC and beging playing with it. Try creating several communities, organizations and pages, also add some portlets to it such as blogs, document library with several folders, etc. and navigate through all of it.

We'd love to know how you like it. To make it easier to send your feedback and to allow you to subscribe to the ongoing discussion, I've created a message board post to that end. I've also given some specific points were we'd like to receive feedback. Here is the link:

www.liferay.com/community/forums/-/message_boards/message/4897465

 

Gracias

Company Blogs April 23, 2010 By Jorge Ferrer Staff

 No se me ocurría un título mejor que simplemente "Gracias". Gracias en primer lugar a todos los que habéis hecho el primer Symposium en España una realidad, empezando por Carolina sin la que hubiera sido totalmente imposible este evento, a Natalia en la organización, a Julio, Juan, Alberto y Sergio por toda su ayuda y sus magníficas ponencias, a Brian y Paul por viajar desde EEUU para estar con todos los asistentes y a Bryan por intentar llegar una y otra vez desde Frankfurt, luchando contra la nube de humo y finalmente por estar con nosotros via skype. Gracias también a nuestros clientes que vinieron a contar sus casos de éxito: RSI, Consejería de Educación de Madrid, Universidad Complutense y Reed Business. También quiero agradecer a nuestros partners su apoyo y en especial a Gesfor, B2B2000 y VASS por su patrocinio.

Y por supuesto muchísimas gracias a todos aquellos que asististeis. Tuvimos una audiencia de más de 150 personas y eso que tuvimos que cerrar el registro el día antes por la mañana porque seguíamos teniendo inscripciones y el hotel nos obligaba a cerrar el número. Pero más que el número de personas que vinieron lo que más me hace sentirme agradecido es la gran cantidad de gente que se acercó a nosotros para decirnos lo muchísimo que les había gustado el evento. 

Por último, y aún a riesgo de parecer repetitivo, quiero agradecer en particular a todos los periodistas que os acercasteis a cubrir el evento. Tanto por estar allí como por los artículos que habéis escrito sobre el Symposium.  Es increible que una compañía Open Source despierte tanto interés en medios. Os paso algunos de los artículos a los que estéis interesados:

En definitiva, un éxito como para estar agradecidos y también muchas ideas para que el Symposium del año que viene sea aún mejor. ¡Nos vemos allí!

Actualización (27/04/2010): Me han pedido que ponga algunas fotos del evento, así que he añadido dos, una de la sala de conferencias y otra durante la comida.
 

Primer evento internacional de Liferay en España

Company Blogs March 25, 2010 By Jorge Ferrer Staff

First of all, a disclaimer for those of you who don't speak Spanish. I will keep writting most of my posts in English, but this one is about our very first Symposium in Spain so I thought it was a great occasion for my first post in Spanish :)

Si, habéis leído bien (y posiblemente lo habréis visto en la portada de liferay.com), el próximo 20 de Abril tendrá lugar en Madrid el primer Symposium en España, que complementará a los que ya se han celebrado en años anteriores en EEUU, Alemania e India.

¿Quién vendrá de Liferay?

Este será un evento a lo grande, con la presencia entre otros de Brian Chan, Chief Software Architect y fundador de Liferay, al que seguramente todos cononceréis de los foros y otras actividades de la comunidad; Bryan Cheung, CEO de Liferay y gran ideólogo para muchas de las más interesantes funcionalidades de Liferay; Paul Hinz, CMO y nuestro fichaje estrella de 2009 proveniente de SUN; Carolina Moreno, Directora de Desarrollo de Negocio para España y Portugal una de las responsable del gran éxito que estamos teniendo aquí así como Alberto Montero, Julio Camarero, Juan Fernández y Sergio González, de nuestro equipo de core engineers en Madrid y con quieres es probable que hayáis hablado también a través de los foros o que os hayan ayudado in-situ en vuestros proyectos.

En definitiva, un evento esperado por muchos con una oportunidad increíble de hablar cara a cara con los principales responsables de Liferay tanto a nivel técnico como a nivel de negocio.

¿A quién está orientado el evento?

Nuestro objetivo es crear un evento que sea útil tanto a organizaciones que están dudando si apostar por Liferay como a aquellas que llevan años apostando por nosotros.

El evento tendrá una combinación de charlas técnicas y charlas más orientadas a negocio. La mañana comenzará con una ponencia de Bryan Cheung que nos hablará de Liferay como empresa, de su comunidad, de su crecimiento, los principales logros, de la fundación Liferay y mucho más. Posteriormente yo mismo presentaré las principales novedades de Liferay 6 y como sacar el máximo partido de ellas. Seguirán algunas prácticas con un cariz más técnico donde se mostrará las mejores prácticas para construir un portal de éxito, como sacar el máximo rendimiento a una instalación de Liferay, cómo formar parte de la comunidad de Liferay y los principales beneficios de que tanta gente lo haya hecho ya.

La tarde estará más orientada a usuarios y decisores finales, pero sin duda también para desarrolladores interesados en los usos que se da a Liferay y la progresión futura. Paul Hinz nos hablará de uno de los temas más candentes de hoy día, el Marketing 2.0 y cómo Liferay puede ayudar a sacarle partido. Seguidamente Carolina, junto con varios de nuestros clientes en España, de sectores tan diversos como educación, administración pública, telco o banca nos hablarán de sus portales y de cómo Liferay Portal les ha ayudado a lograr sus objetivos.

Y terminaremos con una última charla de Bryan Cheung que nos hablará de la estrategia de futuro de Liferay que irá seguida de una mesa redonda con todos los ponentes que aprovecharemos para hablar y que nos preguntéis sobre cualquier tema, incluyendo algunos de los más candentes hoy día como Cloud Computing, Marketplaces, etc.

En definitiva, espero que vengas y podamos conocernos en persona.

Puedes consultar la agenda completa del evento y registrarte antes de que se agoten las plazas en:

www.liferay.com/about-us/events/liferay-symposiums/spain-2010/agenda

 

Visiting Barcelona

Company Blogs March 17, 2010 By Jorge Ferrer Staff

Tomorrow, Thursday March 18th, I'll be visiting Barcelona to participate in the event La Web Inteligente: estrategia, soluciones y tecnología para conseguir una experiencia Web diferencial.

I'll be looking forward to meet all of you who will be attending.

 

 

Double the number of visits to your site with Liferay 5.2

Company Blogs November 13, 2009 By Jorge Ferrer Staff

Here I am once again, I still don't blog as much as I would like too but there are so many things happening around Liferay that it's hard to sit down and write. Our office in Madrid keeps growing with more customers, partners and new hires, we open new offices around the world, Gartner seems to like us even more every year :) and of course we have the Symposiums... 3 in a row this year in US (West Coast), Germany and India!

For the last few weeks I've been wanting to blog about one of the talks given by one of our customers during the European Symposium. Out of all the good calks during the event the one presented by Mark De Lange, from Reed Business. Among other things, Mark presented some numbers about the growth in number of visits that their Liferay based sites had experienced since they upgraded from 5.1 to 5.2. Their sites are fed mainly from search engine searches and their statistics showed that the visits had already doubled after they had very recently updated to 5.2. I visited Mark a couple of weeks after the retreat and he told me that their new statistics were showing an even larger increase in the number of visits and it seemed to be still growing. Here are some numbers from their presentations:

Of course, this is not a coincidence. While Liferay 5.1 already had several features to improve Search Engine Optimization (SEO), version 5.2 has included quite a few new improvements in terms of SEO that makes this task much easier or even automatic for sites with lots of dynamic content. Reed Business was in fact an sponsor for many of these features. Here is an screenshot from their presentation showing some of the mentioned improvements in one of their sites, www.construarea.com:

Here is a summary of all the main features added in 5.2:

  • Friendlier URLs by default: Now the friendly URLs generated for pages, communities and organizations will be based by default in its names. No more friendly URLs with numbers!
  • Automatic generation of META tags in Asset Publisher:
    • Keywords: Whenever a content is being shown its categories and tags will be added to the keyworkds meta tag.
    • Description: Whenever a content is being shown its description will be added to the keyworkds meta tag.
  • Unique titles for all pages: The title now has information about the portal, the community/org, the page and the portlet. Note that this has required a change to the default themes, custom themes will need to be updated accordingly.
  • Framework to set the title and meta tags values from custom portlets
  • Friendly URLs in Asset Publisher when viewing an specific asset (for assets that support it)

And here is a complete description of the SEO features provided by Liferay in the form of a wiki article:

http://www.liferay.com/web/guest/community/wiki/-/wiki/Main/Search+Engine+Optimization

Liferay visits Mallorca

Company Blogs September 17, 2009 By Jorge Ferrer Staff

Mallorca is one of those places in the world that you have to visit. Like most places next to the the sea it provides a sense of calm that is very appreciated when you come from the busy Madrid. I had the pleasure of being there last week thanks to an invitation by one of our partners, IN2, who had organized an event about "Mission Critical Open Source Platforms".

My talk was about Liferay Portal 5.2 and I made a demo showing how to build a multi-site portal using a organizations to achieve hierarchical delegation of the administration activities. I also showed the Control Panel, tags, web content, scheduling, ...

Out of all the presentations, the one I enjoyed most was done by Jose Carrasco, from IN2 (in the picture below), who went through quite a few case studies of Liferay Portal installations in mission critical environments with strict high availability requirements.

Some of the case studies presented were:

  • CASS - Caixa Andorrana Seguretat Social
  • Área Metropolitana de Barcelona
  • Agencia Tributaria Catalana
  • Departamento de Bienestar - Generalitat de Catalunya
  • Departamento de nuevas tecnologías-  Generalitat de Catalunya

I also had the pleasure to meet some of the engineers from IN2 who had worked in these projects:

 

After all the presentations were finished, we had some time for a snack in the beautiful gardens within the building.

This is one of the parts that I enjoy most about this type of events, being able to chat with real users of Liferay as well as people who are considering to start using it. This is when you learn what they like most about the platform and also to ask for feedback about what we can improve in future versions. The event was very succesful which gave me a chance to have many very interesting conversations.

After lunch we still had some short time to walk around downtown. I must say that while I had seen the cathedral before, this time it seemed to me even more beautiful (I have a huge respect for all gothic cathedrals since I read Ken Follet's "The Pillars of Earth"):

And this was the view just turning around 90º:

Feeling like going to Mallorca?

After the success of this event I'm really looking forward to meeting so many new people and old friends at the European Symposium in a couple of weeks. See you there!

 

Using the JSON service APIs to reduce the need for page refreshes

Company Blogs July 10, 2009 By Jorge Ferrer Staff

We've been working in the last few days with our partner VASS defining the best design for a very large customer who had the requirement of avoiding full page reloads when the users interact with a given application.

The team at VASS had already decided to use Service Builder to save time developing the persistance layer and was looking for the best way to implement the frontend of the application. In this situation using the JSON API that is automatically generated for Service Builder is a perfect solution. It provides a ready-to-use JavaScript API that you can use as if it was local to the browser and it handles all the AJAX calls and serialization and deserialization. The implementation is in the server which allows you to use the full power of Java and associated technologies to implement any business requirement needed.

For those who have heard about DWR, this follows a similar strategy but if you are already using Service Builder everything is done for you and you just have to use the js API.

While thinking about this we realized that this is one of those little gems that Liferay has that is not very well known because it's not properly documented. So we decided to change that and let the world know about it. As an introduction here is a quick example.

Assuming you have the following method in the remote service:

public class ReportsEntryServiceImpl extends ReportsEntryServiceBaseImpl {
    public void print(String msg) {
        System.out.println("ReportsEntryService: " + msg);
    }
    ....
}

The method could be invoked from a JSP using the following method (to make it simpler we are linking to the js file directly):

<script src="/html/js/liferay/ext_service.js" language="JavaScript"> </script>

<script language="JavaScript">
    Liferay.Service.Reports.ReportsEntry.print(
        {
            msg: "Invoking a Liferay service via JavaScript",
        },
        function(message) {
            var exception = message.exception;

            if (!exception) {
                // Process Success
            }
            else {
                // Process Exception
            }
        }
    );
</script>

For more detailed information check the new wiki article: JSON Service API

Have fun!

 

 

New in Liferay 5.2: Support for many independent message boards, blogs, wiki, ... per community

Company Blogs February 20, 2009 By Jorge Ferrer Staff

As most readers will probably know, one of the most powerful characteristics of Liferay's portlets is the fact that when they are added to different communities or organizations (whenever I use the word community from now on it also applies to organizations) they act as completely independent portlets, each with it's own data. For example, if you have two communities, one called "Soccer lovers" and another one called "Soccer haters", which have the message boards portlet added to their pages, each of them will effectively have their own independent forum. As you can guess from this example that's very important because otherwise the results would be unpredictable. The following diagram shows how the data from each forum is stored separately in the database:



This is one of the reasons why many people use Liferay's tools instead of specific purpose tools, because that way a single installation can hold tens, hundreeths or even thousands of forums, blogs, wikis, etc. One per community of the system. But apparently many people thought that wasn't enough and they started asking for the ability to have several independent instances of those tools per community.

That's one of the things I love about Open Source, there is always people pushing you to go one step further. Not only that, but sometimes one community member not only asks for the functionality but steps ahead and offers to help. In this case, that community member was [url=http://www.liferay.com/web/jesperw/profile]Jesper[/url] and the people from Kanal5. Jesper discussed with us the best approach to implement this possibility and some time later provided a working implementation for it. From there on Brian and I worked on some improvements but most of the hard work has already done. Thanks a lot Jesper!

Back to the functionality, it works by allowing each community to have several scopes of data. 'scope' is just the term we've decided to use to mean a set of data (for example forum categories and threads) that is isolated from other data of the same portlet. Any community has a default scope (what Liferay already had in all versions prior to 5.1) and it's also possible to create [b]an additional scope per page[/b] (either public or private).

Let's use the message boards portlet again as an example to explain how to create an additional scope. When the portlet is added to any page of the "Soccer lovers" community it will use the default scope. If they add the portlet to a second page, it will show the same data as in the first page (see note 1) To make this portlet use a different data scope you have to follow this simple steps:

1) Go to the configuration of the portlet
2) Click the tab called scoping
3) Using the select box choose "Current page (forum)" and save
4) Go back and use the portlet to add any data that will now be specific to this page.


Repeat for as many pages as desired, with any portlet that supports scoping. All of Liferay's core portlets where it makes sense to use this feature have been modified to support it. Furthermore, it's been implemented in a way that it's quite easy to add support for it for custom portlets too (I can write another blog entry about how to do it if there is enough interest).

That's it, enjoy the feature and I hope you like it.


Note 1: We've decided to keep the previous behavior so that any portlet added uses the default scope of the community. This way if you don't need more than one scope per community (which we think is going to be the most common case) things just work as they've always worked. If you do need several scopes you just have to follow a few extra steps as outlined above.

Liferay Portal v5.2 is out, why is everybody so excited?

Company Blogs February 4, 2009 By Jorge Ferrer Staff

The new release of Liferay Portal is out and I think this is its best release ever. All of us who have been working hard within Liferay and the community to get it out are super excited, everybody we show it too also gets excited, and what is more important, the feedback from the very early adopters has been awesome. What is so special about this release?

I think one of the key aspects of v5.2 is that has improvements in may different aspects including lots of new functionalities, new and improved plugins, significant speed improvements, better packaging and improved usability, specially in the administration UI.

Ok, enough bragging, let's get to the details.

New features and improvements

The administration UI has been completely redesigned, not only with the introduction of the Control Panel, mentioned later, but also with a redesign of the individual administration tools. The main goals of this redesign were:

  • Usability: do more quicker, more intuitively and in less clicks.
  • Adaptability: adapt it to your own needs. For example you can now define your own types of organizations, such as Department, Customer, School, etc.
  • Extensibility: previously if you needed, for example, a very custom user profile you had to build your own tool. Now you can define custom attributes by using the UI and perform any changes desired by adding JSP-based templates.

But this is just the tip of the iceberg. Some other very significant additions are:

  • Support for taxonomies: create your own tree of categories and assign them to web content, wiki articles or your custom portlets. Includes support for multiple vocabularies
  • Improvements to the web content management system
  • Microsoft Office Integration with the Document Library
  • Support for inheritance of web content structures
  • Support for having many independent message boards, blogs, wikis, document libraries, ... per community or organization.
  • Siteminder SSO integration
  • Restricted permission search: the results from a search will now exclude any entries that the user does not have the rights to view.
  • Export of published web contents to PDF, DOC, TXT and RTF.
  • Improved translations: Liferay Portal v5.2 comes with the most polished translations ever, thanks to the awesome work of the Liferay Translation Team.

New and improved plugins

The list of officially supported plugins keeps increasing, and this release contains significant improvements to the ones available and introduces several new ones. The most significants are:

  • Chat portlet improvements:


     
  • New WSRP implementation thanks to our friends from SUN
  • Knowledge Base
  • Wiki Navigation portlets
  • Web Form configuration: the Web Form is now available as a plugin and comes with a much improved configuration UI including drag & drop to reorder fields:
  • New Mail portlet
  • Private message portlet

 

Note: Several of these plugins are included out of the box in the new bundles and all of them will be available in the next few days in Liferay's official plugins page.

Speed and scalability improvements

On the front end there have been lots of speed improvements that provide a much faster user experience. You can read more about them in Nate's and Eduardo's blog posts.

On the back end side v5.2 includes support for distributed read /write operations between two separate applications which provides support for massively scaled installations. Also data-bound applications will benefit from increased database throughput. Finally v5.2 provides terracota DSO integration.

Better packaging

  • Improved structure: the structure of the bundle has been significantly improved so that it's completely selfcontained (including its data) and thus makes life easier for administrators. It also comes with a readme file with information to get started quickly.
  • Sample data: When you first run the bundle the database is populated with a sample portal (The portal of a ficticious company called 7 Cogs)  that showcases many of Liferay Portal's functionalities and those of the bundled plugins. That way it's much easier to understand the new features and the most common usage patterns for Liferay. Check it out and let us know what you think.
    Important note: if you have an existing database don't point the bundle to it since it will substitute your data with the sample data. Check the readme file for more information on how to remove the sample data.

     

Improved usability

The most significant changes in usability are:

  • Control Panel: all the administration tools have been unified into the Control Panel. Through this UI users can administer the whole portal with ease regardless of whether they have 1 single community or website or they have thousands. The Control Panel includes tools for managing contents, portal users, orgs, roles, ... and the server itself. Also it's very extensible so that you can add your own tools to it.
  • User Administration: streamlined profile form with an intuitive organization of fields that can be navigated without refreshing the page. It also allows administrating all the organizations, communities or roles a user is assigned within the same form (see image below):

     
  • Permissions assignment: assigning permissions for a specific entity such as a blog entry has a brand new UI which is much easier to understand and use. (see image below):

     
  • Usage of UniForm for more usable forms: if you were able to attend Nate's talk in Liferay's Symposium in Frankfurt last year you know how the usability of forms can be improved following certain rules. These rules have already been applied to Liferay's portal administration forms.

You can read more about this and other new features in the page: New Features in Liferay Portal 5.2. And we surely hope you also get as excited as we are :)

New in Liferay: The Control Panel, an administration UI to rule them all

Company Blogs December 16, 2008 By Jorge Ferrer Staff

If you've been working with Liferay for a while this is probably an improvement that you will be excited about. If you are new to Liferay then this is a change you'll be even more excited about. So, what is it? In a few words it's a UI that allows administrating the complete portal, from 1 community to thousands of them, from users and organizations to documents, images, articles, ... all together in one single place.

Goals

The whole process of developing the Control Panel started around a year ago when we started to find solutions to some of the issues people where finding when administering very simple or very complex portals. Also, we wanted to use it as a way to teach people about the possibilities of Liferay. The goals of the Control Panel where:

  • To provide a preconfigured UI with all the administration tools provided by Liferay.
  • To allow for automatic delegation of administration. For example, if a user is assigned the Organization Admin role he should be able to administer that organization automatically.
  • To add support for disabling those parts of the administration not being used in a given installation. For example, if you don't use User Groups you should be able to hide that option.
  • To Support adding custom administration tools in a consistent and integrated way.
  • To provide an easy to use UI for portal installations having only 1 or a few websites, but also valid for installations with hundreths or thousands of websites.

And I'm happy to say that we've been able to achieve all of these goals and even implement some other ideas we came up with during the process. You want to see how it ended up like? Here are some screenshots to get you started:

My Account - Every user will have access to the Control Panel and will have at least access to edit his account details

Polls - From the Control Panel you can edit any type of content that might be published through community or organization pages. For example poll questions.

Users - And of course you can manage the users of the portal. The users than an administrator can manage are filtered by his permissions.

 

Server - This section allows checking system resources and perform server administration actions.

Do you like it? keep reading to find out more about how it works.

How it works

All users will have access to the Control Panel by following a link in the top right menu (aka the dock). Once accessed the left menu of the Control Panel will automatically show only the sections that make sense based on the permissions of the user. The bar minimum would be to show the ability to edit his account details.

For the portal administrator all four sections of the menu will be shown:

  • Personal section: provides accessign to edit account details and to manage personal pages.
  • Content: provides access to manage all types of contents: web content (aka Journal), documents, images, blogs etc. (even including content from custom portlets). Since in Liferay all content must belong to a community or an organization, whenever the administration selects a tool to manage content the title of the Control panel shows for which community/org he's administering the content (by default the one you came from) and allows him to select a different one. This way if only have one community (or can only administer one) the UI will be very simple, but if you have many you still have a fast way to move around them.
  • Portal: provides access to manage users, organizations, communities, ... and all portal wide elements.
  • Server: provides access to server related administration tasks, such as checking the memory usage, installing plugins, etc.

Now the cool thing is that as a developer you can actually decide which of the items on the left menu are shown. In fact each of those items is a portlet, so all you have to do is to disable the portlet you don't want to be shown either through the UI (Plugins Configuration in the left menu) or through the liferay-portlet-ext.xml file.

Furthermore you can add any custom portlet to the desired place in that menu and make it part of the Control Panel!! We will add all the details soon in the wiki but in short you just need to add a few new elements in the liferay-portlet.xml file that would look similar to this:

        <control-panel-entry-category>portal</control-panel-entry-category>
        <control-panel-entry-weight>1.0</control-panel-entry-weight>
        <control-panel-entry-class>com.liferay.portlet.enterpriseadmin.UsersControlPanelEntry</control-panel-entry-class>

The first element determines to which section of the menu will the portlet be added, the second one determines the position and the last one is optonal and allows deciding under which conditions the item will be shown or not.

Availability and next steps

The Control Panel is already available in our source control repository and will be availabled packed in the upcoming Liferay v5.2. Also for enterprises needing long term support it will be available in Liferay v5.3 which will be our next LTS release.

As you may have identified in the screenshots above, besides the development of the development of the Control Panel itself we've also added many other improvements to several specific administration tools. For example the user administration has been completely redesigned to allow for a much faster and more usable administration. For example, now when editing a user it's possible to see and change it's roles, communities, organizations and user groups along with all other user details. Also you can change all his details and save them at one time. Other cool features are the custom attributes, permissions assignements, reminder queries, improvements to roles and to login configuration,etc. We'll be blogging and writting wiki entries about all of these in the next days.

And, of course, we are already thinking about how to improve the Control Panel even further. As soon as we release 5.2 we'll start working the make it even better for 5.3. And for that we need your help, we'd love to hear what you think about the Control Panel (both the good and the bad) and specially keep coming the ideas about how to improve it.

Finally, I'd like to send a special thanks to Julio, Nate and Ray who did an amazing job to make the Control Panel a reality. Also to everyone else that helped during development and providing feedback. Thanks guys, you rock! emoticon

Liferay Developer Mode: optimizing Liferay for development

Company Blogs December 11, 2008 By Jorge Ferrer Staff

It's been a very long time since my last post but I promise I'll make up for it with a series of posts about the latest features we've been working on for the next releases of Liferay Portal. But first, I want to blog about a topic that I think will be of a lot of interest for Portal developers: how to optimize Liferay to make development faster.

In other words how to put Liferay in what we might call a "developer mode". What would this mode do?

  • Disable all caches to reduce the need to reboot after making changes to CSS files, JavaScript files, Velocity templates in themes and Journal, etc.
  • Increase the amount of information output in case of error (very limited for now)
  • Disable features meant for production servers or evaluators

How have we achieved this? In a very simple and extensible way, by creating a new configuration file called portal-developer.properties. In order to turn on the developer mode you just have to modify the installation of Liferay you use for development to make sure the new file is loaded. The exact instructions and more details about what are its effects can be found in the wiki article Liferay Developer Mode

I've been working in this mode for several weeks now and it really makes a developer's life much easier :) But still I think this is just the beginning there are probably more optimizations we can do to this mode. So if you know of an existing property in portal.properties that should have a different value than the default during developer let me know and I'll add it. Also, if you can think of a new property that we could create to switch on or off certain behavior I'm all ears :)

New in 5.1: Much more flexible default configuration for personal user pages

Company Blogs July 20, 2008 By Jorge Ferrer Staff

Many of you probably already know how it's possible to preconfigure the personal pages of users by using some properties of the portal.properties file:

default.user.private.layout.template.id=2_columns_ii
default.user.private.layout.column-1=71_INSTANCE_OY0d,82,23,61
default.user.private.layout.column-2=11,29,8,19

Some versions ago Ray also added the possibility of specifying a LAR file, which increased the flexibility considerably as now you could create as many pages as desired and also include default contents.

But there was still a limitation, all users had the same default configuration. Not any more. In Liferay 5.1 it's possible to apply different page configurations to different types of users. Furthermore, such configurations can be applied dynamically during the life of the portal.

To learn more about this new functionality read the wiki article How to use User Group Page Templates.

Liferay eats its own dog food again! Now with a wiki taste

Company Blogs July 16, 2008 By Jorge Ferrer Staff

Yes, we've finally done it!! Liferay's community wiki has been migrated from MediaWiki to Liferay's own wiki portlet.

We are pretty excited about this because it brings a lot of benefits. To name a few:

  • The wiki is now fully integrated in the liferay.com website, so it's easier for community members to navigate through all the sources of information. For example, visitors that are directed to the wiki from Google can also navigate easily to the official documentation, forums, etc.
  • The wiki now generates activities, which then show in the the profile page of each user. That way if you are an active contributor to the wiki you will receive the credit you deserve. It's also easier to keep track of the wiki contributions of your favorite developers and friends using the activies RSS feed.
  • There is no longer a need for a separate user account to edit the wiki. Use the same account that you already have for the forums.
  • Some nice new features: copy page, attachments per page, add several attachments at once, child pages, a syntax that is familiar but easier to remember ... and more to come.
  • We can much more easily add any new feature that the community finds helpful for the wiki.
  • By using the wiki portlet so extensively the developers and the user community will come up with great new ideas for improvements. This will help our end goal of making the wiki portlet the best wiki out there :)

Screenshot of the new wiki

This has been the result of a lot of work first on improving the wiki and next to prepare the migration. I'd like to thank the help from Alex, Brian, Alvaro, Rich, Jon, JR, Mike, Sam, ...

Now to be fully honest, this is also a little bit scary. While we've tried our best to make the migration as smooth as possible we know there'll be some glitches. For that reason I've created a JIRA issue as an umbrella for any problem that you may find. So if you hit some bug with either the wiki or the migration itself, please create a subtask of LEP-6726 and let us know.

So, what are you waiting for? Go ahead and enjoy the new Liferay Wiki! If you haven't done it yet, now there is no excuse for not participating ;)

PS: If there is interest I can write a second post about the details of the migration and how you can do the same.

Inter Portlet Communication: One size does not fit all

Company Blogs July 3, 2008 By Jorge Ferrer Staff

Inter Portlet Communication (IPC) is a hot topic nowadays. This was probably the most missed feature of the first version of the portlet spec (JSR-168), but has made it to the second version (JSR-286, supported since Liferay 5.0). Maybe this is the reason why more and more people are becoming interestind in IPC, and even in portlets in General.

As I've mentioned in previous posts, JSR-286 provides two very good methods for communicating portlets: shared render parameters and events. But this post is not about them, it's about the fact that while having standards is very good, it should not inhibit us from using other solutions when they fit. In particular, I think IPC is a very broad topic. There are lots of different scenarios and communication needs for a single solution to be the best for all IPC problems.

If the solutions provided by JSR-286 fit your needs, by all means use them. But it's also good to know other alternatives. In particular I'd like to highlight today a method provided by Liferay to communication portlets using a super-lightweigth JavaScript events system that runs completely in the browser. This method has been available for some time, and it's now documented in Client-side Inter-Portlet Communication. Take a look and let us know how it works for you.

Yes, web applications can also have progress bars

Company Blogs June 21, 2008 By Jorge Ferrer Staff

A progress bar is one of the most useful widgets for a user interface when the user can perform lengthy tasks. Unfortunately, while it's a widget very often found in desktop applications it's not so common in web applications. The reason for this is that it's not so obvious how to implement them.

In fact, not so many years ago I remember saying to a customer that it was not possible to show a bar to show the progress of a file upload, and shortly after that Brian added that functionality to the Liferay's Document Library. When I looked at the implementation I felt really dumb, because it's actually super simple.

So the answer is yes, web applications can have progress bars. Not only for file uploads but for any task that might take more than a few seconds. And if used in a smart way they can be a very important factor to improve the usability of a web application. As an example look at a screenshot of one of the tools I'm working on lately, an importer of a whole wiki from MediaWiki to Liferay's new wiki:

Screenshot of the MediaWiki importer with two progress bar

As you can see in this case I've chosen to have two different progress bar. One for the upload and one for the actual importing process. That way the user is always up to date on the status of this operation which might take a while to complete.

If you are interested in knowing how this works or would like to add it to your own portlets don't miss the wiki article How to add a progres bar to my portlet.

Showing 21 - 40 of 57 results.
Items 20
of 3