Desde hace años, los creadores de webs han suspirado para disponer de un sistema de gestión de contenidos (CMS) lo bastante flexible y potente como para que permita gestionar de forma integrada todo lo que se visualiza en sus páginas. El Mosaic Sprint de Barcelona, hospedado por UPCnet del 10 al 13 de junio, ha conseguido, finalmente, hacer realidad este viejo sueño con una solución sencilla y modular.
De esta manera la UPC reafirma una vez más su compromiso con el desarrollo del software libre y, más específicamente, con una comunidad como Plone con la que lleva colaborando más de 6 años.
De hecho, los ploners estuvieron muy cerca de conseguir su objetivo hace cinco años con la creación de Déco, pero en aquella ocasión se realizó una aproximación demasiado amplia que hizo imposible cerrar el proceso. Esta vez, los participantes en este codesprint han hecho un esfuerzo especial por focalizar sus energías en un único objetivo: la composición flexible de las páginas, un aspecto que resulta fundamental en la integración de landing pages y responsive design aplicados a la visualización en dispositivos móviles.
Pensando fuera de la caja
Una de las principales limitaciones de Plone (y de la práctica totalidad de CMSs) es que la gestión de contenidos se limita a la “caja”, la parte central de la página web llamada “zona de contenido”. Todo lo que queda fuera, las cabeceras y los pies, no tienen un comportamiento dinámico y, por lo tanto no se pueden modificar. Esta es una limitación importante cuando, por ejemplo, se quiere crear una página que presente un aspecto totalmente diferente de la web en la cual se aloja.
Conscientes que la única manera de conseguir un resultado diferente era pensar “fuera de la caja”, el grupo de trabajo decidió pasar de una a dos dimensiones esta zona de contenido. Disponer de una parrilla 2D hace posible situar fragmentos de contenido (texto, imágenes, contenido dinámico) en el interior de cada página. Estas “baldosas” (tiles) son en realidad widgets de JavaScript que permiten componer la página como si se tratara de un mosaico. El sistema guarda estas configuraciones para usos posteriores y, además, se pueden predeterminar disposiciones diferentes de pantalla para los diseños adaptables (responsive).
Uno de los condicionantes previos en el desarrollo es que la edición de contenidos tenía que resultar intuitiva y, al mismo tiempo, no intrusiva, es decir que la experiencia de usuario no se tendría que alterar sustancialmente. De este modo, la visualización WYSIWYG sigue ofreciendo vistas de formulario en las que se van añadiendo o eliminando módulos “drag & drop” que también se pueden modificar.
Con el nuevo Plone, pues, será posible cambiar la cabecera o la parte inferior de una página con total libertad, moviendo su posición o incluso redimensionándola.
Más allá de esta fantástica posibilidad, las “baldosas” pueden incorporar comportamientos inteligentes, de forma que se los pueda asignar una posición fija o bien definir sus dimensiones porque un contenido determinado sea visualizado en pantallas pequeñas. Con estos comportamientos se podría incluso mostrar vistas diferentes de una página según la tipología de usuario, como, por ejemplo, en el caso de una intranet.
Un equipo de élite
De los 5.000 miembros que aproximadamente forman parte de la comunidad Plone a escala mundial, sólo un 10% acostumbra a participar activamente en los codesprints. No se trata de una cuestión de voluntad: modificar el núcleo de este CMS requiere un alto nivel de especialización y comporta responsabilidades respecto a la comunidad. Así, si durante el proceso de desarrollo un programador “rompe” alguno de los componentes del sistema -cosa nada infrecuente- tiene la obligación moral de arreglarlo y, además, crear una herramienta de test que permita comprobar que, efectivamente, aquel elemento funciona correctamente.
En el caso de la Mosaic Plone de Barcelona, un total de 16 ploneros, liderados por Víctor Fernández de Alba y Ramon Navarro consiguieron construir un prototipo operativo (plone.app.mosaic) en sólo tres días que se mostró públicamente el último dia de la codesprint.
Simone Orsi y Maurizio Delmonte nos ofrecen en sus blogs una detallada crónica de la evolución de este trabajo (en italiano) que os resumimos a continuación.
En primer lugar, el regreso a los orígenes. Rob Gietema (Holanda) revisó el código y la documentación generada sobre Déco para adaptarlo a la nueva visión de Mosaic. Por su parte, Rob Gitema, Ramon Navarro, Víctor Fernández de Alba, Carles Bruguera y Simone Orsi se han ocupado del editor de páginas Mosaic, adaptando los fragmentos correspondientes de Déco e insertándolos en un mockup.
Asko Soukka ha trabajado en el almacenamiento del layout que puede aplicarse a nivel global por tipo de contenido, una funcionalidad que en el futuro se podría realizar vía web. La contribución de Ramon Navarro ha sido hacer una transformación por bloques de forma que se pueda construir el layout de manera independiente a la malla utilizada.
Paralelamente, Simone Orsi se concentró en hacer posible la reutilización de cientos de portlets existentes, un aspecto fundamental para poder incorporar Mosaic en todas las instalaciones de Plone existentes.
Mención aparte merece el testeo, una actividad a menudo pesada y poco visible que, no obstante, resulta indispensable para garantizar la seguridad, la estabilidad y la calidad del desarrollo. Se dedicaron intensamente a ello Gil Forcada, Arno Blumer y Guido Stevens.
El futuro del Plone 5
Después del éxito de la Mosaic Codesprint, el primer paso será reescribir la demo para la nueva versión Plone 5, puesto que ha sido desarrollada en la última versión estable disponible (4.3.3) para que funcionara en una demo real. Con toda seguridad ya no se llegará a tiempo de incorporar esta nueva funcionalidad en la primera versión de Plone 5 que se presentará a finales de este año, pero sí que podemos esperar que se incorpore el próximo año o, a lo sumo, en 2016.
Habrá que ver si estas nuevas versiones incorporan también la capa social, una posibilidad que Guido Stevens ya anticipaba en su libro “Digital Workplace Technology Roadmap”. Así pues, es probable que en un futuro próximo se celebre un nuevo codesprint para avanzar en el plonesocial suite, una solución completa de microblogging que incluiría activity *streams, perfiles para seguir, etc.
Todas estas mejoras demuestran, mejor que ningún argumento, el dinamismo y la capacidad de liderazgo de la comunidad Plone, que revierte en un beneficio indiscutible para sus usuarios y abre importantes oportunidades de desarrollo de negocio para la industria del software libre.