viernes, agosto 01, 2008

jLibrary 1.2 ve por fin la luz: Historia de una release.

viernes, agosto 01, 2008 por Martín



Ayer, hemos lanzado por fin la versión 1.2 de jLibrary. El trabajo en jLibrary 1.2 empezó hace más o menos un año cuando Dani buscaba algo que hacer y nos pusimos a trabajar en crear una aplicación web. La aplicación web fue tomando forma poco a poco. Y lo que empezó como un simple frontend para mostrar los documentos que estaban almacenados en un repositorio de jLibrary, pues como suele pasar se le van añadiendo más y más y más cosas y terminó en toda una aplicación web para visualizar y editar documentos, su contenido, sus relaciones, y personalizable mediante templates. En fin, lo que se puede ver desde hace tiempo en la página de la demo.

La web poco a poco fue recibiendo carga y eso permitió sacar a relucir unos cuantros problemas en la gestión de sesiones y de memoria. Venga. Seamos transparentes. La web no duraba más de un par de días funcionando! Aunque lo cierto es que estabamos hablando de utilizarla con 128Mb de RAM, que hoy por hoy no es nada para un servidor. Pero no es escusa. Una vez solucionados esos problemillas, hubo que dedicarse a mejorar el sistema de seguridad. Lo bueno de crear una aplicación web de este estilo sobre una aplicación de escritorio es que saca a relucir casos de uso no existentes hasta el momento, como podía ser el disponer de una área pública para la publicación de documentos en la demo al tiempo que la sección de docuemntación de la demo seguía siendo privada e intocable. Como anécdota puedo contar que algún malvado consiguió evitar los chequeos de seguridad y borrar la documentación. Que mejor estímulo para arreglar algunos bugs!!

Después de todos los arreglos, la web ya funcionaba mucho mejor. Al principio como no estaba seguro después de los problemas de memoria, le llegué a dedicar 384Mb. A medida que fue madurando y madurando lo bajé a 256, 128 y 64Mb. Estuvo funcionando durante algún tiempo con 64Mb, pero al ampliar la memoria de mi servidor a 1Gb decidí darle 128Mb constantes para olvidarme un poco del tema. Y lo cierto es que parece que las optimizaciones funcionaron, porque normalmente nunca tengo que rearrancar el servidor de jLibrary salvo cuando mi proveedor tiene que reiniciar el servidor físico. Ahora mismo lleva casi un mes funcionando y ha servido unos 7000 documentos, 12000 downloads de ficheros y 20000 visualizaciones de directorios entre otros. Eso sí, la carga es super-modesta, y siempre está sobre las 10/20 sesiones concurrentes. No es demasiado, pero bueno, tampoco está mal para 128Mb.

Durante el camino se unieron al proyecto un par de desarrolladores polacos, Ryszard y Renata Perkovski, que por curiosamente se vienen a trabajar a Dublin, y que se dedicaron en pleno al interfaz de usuario. Añadieron mejoras en la usabilidad, integraron el editor XML de WTP, adaptaron y mejoraron la build de Maven para trabajar que fuera más sencilla (jLibrary creo que es uno de los pocos casos en los que se ha sido capaz de integrar Eclipse RCP con Maven) y lo más importante es que actualizaron todo a Eclipse 3.4. Ayer lo estuve probando, y la verdad es que el rendimiento y aspecto de la aplicación ha mejorado un montón con esta nueva versión de Eclipse. Usar Eclipse RCP tiene sus desventajas, pero también tiene muchas ventajas, siendo una de ellas que cada vez que hay versión nueva de Eclipse, es como si hubiese una versión nueva de tu aplicación :)

Aún así, allá por Marzo, empezé un nuevo proyecto totalmente diferente, que me ha tenido ocupado durante todos estos meses, por lo que jLibrary quedó un poco (bastante) de lado. Y era una pena porque esta nueva versión estaba listísima, sólo hacía falta ese empujoncito de un par de semanas para que viese la luz. Al final, allá por Mayo llegó una empresa rusa, Blandware que se interesó en el proyecto y empezó a aportar parches importantes, tanto en el servidor como en el cliente. Sin duda lo más importante que han aportado ha sido el migrar el soporte que ya existía de propiedades personalizadas en los documentos al UI, es decir que ya se pueden añadir propiedades personalizadas desde el propio interfaz de usuario. Como esta gente no paraba de mandarme parches, lo que es muy bueno, al final he decidido cederles el mando de jLibrary, y han sido ellos los que se han encargado de preparar y lanzar la release, así que justo es el reconocerles el mérito.

En fin, está es más o menos la historia de jLibrary 1.2. Mucho más detallada de lo que aparece en las release notes. El proyecto por lo que a mi respecta es ahora mismo muy maduro, y aunque por ahora no continuaré desarrollándolo, espero que Blandware tire del carro. Es muy posible de todos modos que en unos meses lo recupere, ya que tengo pendiente la tarea de probar a añadir Amazon S3 como sistema de almacenamiento y aprovechar eso para desarrollar una idea que tengo en mente y que sería muy interesante para alguna startup chula. ¿Alguien interesado y con tiempo libre por ahí? Porque quizás podríamos hablarlo :)

Por cierto, que el que quiera descargarse jLibrary, pues ya sabe: jLibrary.org.

comments

9 Respuestas a "jLibrary 1.2 ve por fin la luz: Historia de una release."
Ferdy dijo...
0:55

Martin, enhorabuena! Entre todos habéis hecho un gran trabajo.


Martín dijo...
9:55

¡Muchas gracias Ferrán!

Por cierto que el servidor sigue vivo con 128Mb de RAM después de estar uptime 1 mes y salir en TheServerSide.

Queda demostrado que este portal ya no es lo que era. Algo menos de 400 visitas únicas, cuando es de esperar que la gente picaría en un producto no demasiado conocido por curiosidad.


Ermengol dijo...
1:29

me uno a les felicitaciones por el avance del proyecto


Ferdy dijo...
1:35

Coincido contigo, el declive de TheServerSide ha sido notorio en los dos últimos años, y eso sin mirar números. Solamente hace falta fijarse en la calidad de los artículos que aparecen.

En cambio, parece que ahora el líder es InfoQ, que en vez de publicar anuncions de nuevos productos, se dedica a recoger articulos de opinión.

Supongo que algo tendrá que ver que el fundador de TheServerSide (Floyd Marinescu) abandonase el proyecto en el 2005 para crear InfoQ.


Yoba dijo...
17:16

No voy ha hacer menos, en felicitaros.

Noraboa


Dani dijo...
0:41

hace más o menos un año cuando Dani buscaba algo que hacer

Jejeje, lo que ha cambiado la cosa en un año XD.

Fue una noticia estupenda el que entrara Blandware, en mi opinión, cambia un poco la percepción del proyecto teniendo a una empresa apoyándolo.


AlfonsoM dijo...
10:10

Enhorabuena. Sigo tu producto desde las versiones con hibernate, y es un gran producto. Felicidades!!!


Unknown dijo...
18:20

Felicidades, es increible como ha evolucionado jLibrary y toda la gente que ha involucrado, sin duda un buen ejemplo de la dinámica de los proyectos open source


Martín dijo...
21:56

Eric (y demás),

Gracias. La verdad es que sí. Ha ido entrando y saliendo gente constamente, lo que no necesariamente es malo ya que es enormemente difícil involucrar a gente que no ha participado directamente en la gestación de un proyecto.

El proyecto tuvo la mala suerte de salir en una época en la que a alguien se le ocurrió lanzar algo llamado Alfresco. Pero aún así todavía hay bastante gente interesada en él, y probándolo, lo que siempre es un motivo de alegría para un desarrollador :)