viernes, 12 de marzo de 2010

Cómo romper dependencias cíclicas entre paquetes.

Sonar, con su versión 2.0, viene a cubrir todas las necesidades de control de la calidad de los proyectos de desarrollo; proporcionando además, herramientas sufientes para solucionar los problemas encontrados.

Ya hemos comentado con anterioridad las ventajas de utilizarlo, que son muchas pero, con la nueva versión podemos incluso localizar con facilidad dónde se encuentran las dependencias cíclicas de tu código.

Por ejemplo, echando un vistazo al código de Apache Jackrabbit en su versión 2.1 de desarrollo,



podemos observar que éxisten dependencias entre paquetes.



También sabemos cuántos ciclos existen, 264, y el número de dependencias entre paquetes y entre ficheros a romper, 99 y 329 respectivamente.



Pulsando sobre los datos nos mostrará la matriz de dependencias,



donde buscaremos las que debemos romper, representadas con color rojo.



Bien, hasta aquí podríamos haber utilizado otras herramientas más comunes como JDepend pero, ¿cómo puedo saber cuáles ficheros tengo que tocar? Simplemente doble click sobre la celda de color rojo y nos mostrará los ficheros implicados.



A partir de aquí, puedes empezar a refactorizar.



Más información en,

http://sonar.codehaus.org/
http://nemo.sonarsource.org/
http://nemo.sonarsource.org/project/index/org.apache.jackrabbit:jackrabbit
http://nemo.sonarsource.org/drilldown/measures/org.apache.jackrabbit:jackrabbit?metric=package_cycles
http://nemo.sonarsource.org/drilldown/measures/org.apache.jackrabbit:jackrabbit?metric=package_cycles&rids[]=32189

jueves, 25 de febrero de 2010

Portal3.0, Liferay5.2.3CE, GateIn3.0

Va llegando el momento de ir mostrando características de tres productos con similares orientaciones y funcionalidades. Los tres están pensados para lo mismo, construir portales de forma más o menos sencilla y modular, con dos diferencias fundamentales:


El por qué de estas diferencias es sencillo, Portal3.0 no integra un gestor de contenidos porque existen muchos WCM/DCM/CMS más capaces que los que proporcionan el resto soluciones. Portal3.0 no es una implementación de Portlets porque ya existen (Liferay y GateIn son un gran ejemplo).

En próximos post expondré las razones de ambas diferencias, repasando por qué Portal3.0 no implementa Portlets y por qué no integra un gestor de contenidos.

martes, 23 de febrero de 2010

Portal3.0

Desde hace algunos posts vamos anunciando proyectos en los que se utiliza Portal3.0 como motor de ejecución, herramienta de administración y marco de trabajo. No voy a entrar en detalles aún pero, algunos detalles curiosos.

Struts2, 79.396 líneas de código, 1.145 clases, 2,7 de complejidad media por método, 17,4 de complejidad media por clase, 19.908 de complejidad, 20,1% de comentarios, y un 26,2% de cobertura de código.

Portal3.0, 83.597 líneas de código, 1.803 clases, 1,7 de complejidad media por método, 8,6 de complejidad media por clase, 15.560 de complejidad, 23,4% de comentarios, y un 27,4% de cobertura de código.

GateIn - Portal, 75.774 líneas de código, 1.274 clases, 2,6 de complejidad media por método, 10,5 de complejidad media por clase, 13.399 de complejidad, 8,4% de comentarios, y un 40,1% de cobertura de código.

Portal3.0 ha alcanzado un grado de madurez importante :-)

lunes, 22 de febrero de 2010

Una más, Consejería de Cultura de la Junta de Andalucía

Desde hace unas semanas está funcionando el nuevo portal institucional de la Consejería de Cultura de la Junta de Andalucía, pero no fue hasta la pasada cuando fue presentado oficialmente por la Consejera Rosa Torres.

En esta ocasión, utilizamos Portal3.0 para la presentación y la administración de la web, OpenCms para la gestión de contenidos, Google Maps para el Mapa de Centros, y un fuerte trabajo en la integración de los sistemas de información de la Consejería.

Más información sobre la web y la presentación en:

Un nuevo caso de éxito para Portal3.0, desarrollado por Isotrol SA.

jueves, 11 de febrero de 2010

Mercurio. Plataforma Multimedia Extremeña.

Ayer 10 de Febrero de 2010 fue presentada la web Mercurio (http://mercurio.educarex.es) por la Consejera de Educación de la Junta de Extremadura, Eva María Pérez.

Sin profundizar en exceso, ha sido desarrollado con tecnología Java, Portal3.0 para la web, GWT para la herramienta de administración y catalogación de recursos basada en LOM-ES, un repositorio de objetos digitales para su almacenamiento, ffmpeg para la codificación de vídeo y Red5 para su emisión en directo.

Más información sobre la web y la presentación en:

Esta será la primera de las entradas en las que iré presentando los proyectos en los que trabajo de una u otra manera. El siguiente en breve :-)

Actualización: Gracias Ráez, Red5 para la emisión.

viernes, 21 de agosto de 2009

ANDROMNIA = Android + Omnia

Andromnia es la iniciativa que todo propietario de un omnia desea que llegue a buen puerto. Como puede suponerse, es un port de android a samsung omnia.

Más información en:

http://pmaster.no/andromnia/

y el modaco:

http://www.modaco.com/content/i9x0-omnia-http-omnia-modaco-com/289028/project-andromnia-android-on-omnia/

Actualmente funciona la pantalla táctil, la wifi, los sms (envío y recepción) y alguna cosa más... pero no funciona el sonido ;-)

Un ejemplo sacado de youtube,

jueves, 20 de agosto de 2009

Disponible MetricsAnalytics 0.6 para Sonar 1.10

Ya hemos liberado la nueva versión de MetricsAnalytics, la primera compatible con el nuevo Sonar 1.10

Los cambios que incluye son,

* Compatibilidad con Sonar 1.10
* Nuevas métricas en el visor de código fuente, dit, cbo, rfc, y lcom
* Mejoras en las métricas de arquitectura y diseño, con avance continuo en lugar dos valores, 0 o 100.
* Fórmula del cálculo de la calidad total configurable desde la administración de sonar.
* Gráfico de distribución de los proyectos según su calidad total.
* Corrección de errores.

Muchas gracias a Simon Brandhof, Brian Chaplin y Bruce Lowe por su contribución al proyecto.

Puedes descargarlo en:

http://forge.isotrol.org/versions/show/15