Probando Pentaho V: instalando Pentaho 5 - Saiku Analytics

jueves, 16 de enero de 2014

La nueva versión de Pentaho BI-Server 5.0 está disponible.
Hay varias novedades, entre ellas una nueva interfase, mucho más moderna y amigable que la anterior
Por otro lado, la consola de usuario (Pentaho User Console) y la consola de adminstración están integradas, con lo cual no es necesario ahora configurar un server extra.
Se ha mejorado la instalación de plugins por medio de MarketPlace.

Instalamos entonces la nueva versión de Pentaho. El cambio que más nos gustó fue la presentación más moderna y austera, con una paleta de colores muy amigable. También el acceso fácil a todos los elementos.
Este es el detalle de los pasos básicos que seguimos para tener Pentaho 5 andando:
  1. Instalación.
  2. Conexiones a las bases de datos.
  3. Creación de Data Sources y consultas MDX.
  4. Presentaciones y gráficos.

-1-  Instalación

La instalación fue simple, bajamos los archivos desde Pentaho Community  (biserver-ce-5.0.1-stable)

-2- Conexiones

Las conexiones: basta instalar el driver adecuado en los directorios y crear la conexión en sí
    • Drivers: driver para acceso a SQL. jtds-1.3.0.jar en los directorios:
 bi-server/data/lib
 bi-server/tomcat/lib
    • Creación de una conexión. Desde la pantalla de Pentaho:
File /New/DataSource
SQL query, pantalla de selección de conexiones, agregar una nueva:














-3- Data Sources y consultas MDX.

Una diferencia importante en esta nueva versión de Pentaho es la posibilidad de configurar data sources. Se puede crear un data source a partir del esquema de un cubo creado con Mondrian. Basta tener el xml asociado al cubo. No es necesario publicarlo como en versiones anteriores de Pentaho.

Manage DataSources/ DataSource/ New Analysis

Seleccionar el archivo .xml correspondiente al esquema Mondrian generado por Workbench, y seleccionar el data source correcto.

El data source importado, cuya base es un cubo, se puede ver por medio de Jpivot y Saiku analytics. La creación de las consultas y gráficos es bastante intuitiva. 
JPivot:  permite, de una forma interactiva, analizar los datos del Data Warehouse a traves de una interfaz de tabla cruzada donde podemos navegar por las diferentes dimensiones definidas en el modelo dimensional.
Create New/ JPivot View permite seleccionar entre los cubos creados. En este caso, seleccionamos un cubo construido a partir de ventas de internet. Con solo dos dimensiones, región y tiempo. La consulta MDX relacionada es

select NON EMPTY [Region].[Region].Members ON COLUMNS,
  NON EMPTY {Hierarchize({[Time].[Years].Members})} ON ROWS
from [InternetSalesRegionTime]
(de la base AdventureWorksDW)



-4- Visualizaciones

Para probar Saiku Analytics, fue necesario descargar el plug-in por medio de la opción 'MarketPlace' desde la consola de usuario de Pentaho.

Create New/ New Saiku Analytics permite armar consultas  y generar gráficos. 
Estas son las consultas al mismo cubo que abrí con JPivot y gráficos generados. Tomé para el ejemplo un caso sencillo, pero muy ilustrativo.

Consulta Ventas por Región y Tiempo


Consulta Ventas por Región y Tiempo
Ventas por región por año

Gráfico líneas ventas por región


Región en las columnas y años para las filas


Mismo gráfico detalle por mes.


A mi entender es clave partir de un esquema Mondrian adecuado. En un próximo artículo compartiré un par de consejos para crearlos.


    
Leer más...

Por qué los rituales son importantes en Agile

Cuando leí este artículo de Len Lagestee sobre los rituales en Agile recordé una reunión de equipo que tuvimos hace algunos años donde revisábamos nuestra práctica de Scrum cuando recién empezábamos. Una de las conclusiones a las que llegamos en ese momento fue que los rituales de Scrum, en nuestro caso, son tan pocos y tan simples que no tiene sentido querer "darles una vuelta" o tratar de adaptarlos. Scrum es eso y cualquier cambio que se le quiera agregar lo convierte en otra cosa. Y lo mismo aplica a cualquier otro método ágil.

Con el tiempo y hablando con gente de otros equipos noté que eso que nosotros intentábamos (tal vez cierta resistencia inconciente?) es bastante común entre quienes empiezan con un cambio de metodología: queremos hacer una "adaptación libre" o una versión ajustada de la práctica. Es por eso que me pareció interesante resumir los conceptos de Len Lagestee sobre la importancia de respetar y mantener los rituales en de las metodologías ágiles.

Según Lagestee, una de las primeras dudas o quejas que despierta la práctica de metodologías ágiles es "la cantidad" de reuniones, dependiendo dle método las típicas son: planificación, daily stand-up, revisión del sprint o demostración, retrospectiva, revisión del backlog. El sólo hecho de pensar en tantas reuniones lleva a decir que "no habrá tiempo para trabajar". En estos casos es donde el autor subraya justamente la importancia de mantener estas prácticas: el tiempo que un equipo comparte junto, con un ritmo recurrente y consistente, es donde se fomentan las bases de los rituales de ese equipo.
En este punto Lagestee resalta una definición de wikipedia al respecto:

"los rituales hacen a la tradición de una comunidad"


http://milindageorge.files.wordpress.com/2013/03/scrum-team.png

Continúa diciendo Lagestee en su artículo que concretamente la importancia de los rituales está dada porque los mismos refuerzan las tradiciones de:

  • Reconocer el pasado: las retrospectivas permiten aprender de la experiencia pasada en un sano entorno de "comunidad". El equipo es el que aprende a corregir su propio rumbo. 
  • Marcar nuevos comienzos: más allá de las conclusiones sacadas para el sprint pasado, la planificación de un nuevos sprint permite a la "comunidad" (es decir, al equipo) centrarse en lo que viene por delante.
  • Tomar decisiones: la reunión de planificación y el timeboxing establecen la tradición de las "decisiones" => "podemos como equipo completar estas historias en este sprint o no?"
  • Desatar movimiento: las reuniones diarias sirven para poner en movimiento al equipo, trabajando mancomunado desde el inicio del día. Según nuestra experiencia, la reunión diaria establece el espacio explícito donde sabemos que contamos con los otros para darnos una mano cuando estamos complicados con algo.
  • Crear conexiones: compartir las reuniones diarias asegura que todos los días haya un punto de conexión entre todo el equipo. Y cuando alguien no esta, se siente la ausencia.  Len Lagestee compara esta práctica con el ritual de la cena en familia: es el momento en que todos se juntan para contar cómo les fue en el día. Puede parecer aburrido o sin sentido hacerlo con tanta frecuencia, pero la realidad es que cuando no se hace, sentimos que algo falta. En la experiencia particular de Tercer Planeta es casi imposible pensar en arrancar el día sin la reunión diaria.
  • Celebrar con los demás: las sesiones de revisión del sprint son los momentos donde el equipo puede reconocer y valorar realmente los logros del trabajo en conjunto.

Algo que aclara el autor es que es absolutamente normal al principio sentir que tenemos los días llenos de reuniones, pero al persisitir con el equipo en lograr un punto de verdadera comunidad, estas reuniones se vuelven más y más efectivas y se adoptan naturalmente porque se ven sus beneficios.

Desde nuestra experiencia podemos asegurar que esto es así, nos ha pasado de tener las mismas dudas mencionadas respecto de "tanto tiempo" destinado a reuniones pero hemos comprobado que el tiempo invertido en ellas deja ver sus frutos en la velocidad de producción y en la calidad del producto terminado, entre muchas otras ventajas que nos dan estos rituales.

Why the rituals of agile matter  (por Len Lagestee)

Otro artículo que puede resultar también interesante: La importancia del respeto los rituales  (en Agilmática)


    
Leer más...

Primeros pasos con Pure, un framework css modular, liviano y completo

miércoles, 15 de enero de 2014

Qué desarrollador hoy en día no implementa algún framework css como base al construir la maquetación de sus sitos/aplicaciones web? Todos deberíamos usar alguno ya que son muchísimas las ventajas que nos ofrecen.

Pero "primero es lo primero".....


A manera de repaso (o por si no conocés del tema) comentemos que un framework css es un conjunto de herramientas, style sheets y buenas prácticas que permiten al desarrollador olvidarse de estilos y funcionalidad que va a utilizar en muchos lados para centrarse en los elementos únicos de cada diseño en los que puede aportar valor.

Un framework css puede incluir solo archivos .css o bien algunos .js para complementar algún proceso como un diálogo modal.

El ejemplo más destacado en este ámbito es el famoso Twitter Bootstrap, un muy usado framework css, que tiene todo lo que el desarrollar necesita para construir aplicaciones totalmente funcionales sin mucho esfuerzo. Contiene estilos y funcionalidad para maquetación por medio de grillas, estilos para todos los elementos, formularios, slides de imágenes y formularios modales, entre otros.


Pero a veces nuestros proyectos no son lo suficientemente grandes como para necesitar semejante framework y fue en uno de esos momentos de duda cuando conocí a Pure.



Pure es un framework css muy pequeño, modular y que tiene todo lo necesario para un proyecto web de hoy en día. Está contruido sobre normalize.css. Sus características más destacadas (a mi criterio) son:

  • Es MUY liviano: Pesa apenas 4.4 kb. 
  • Está construido en pequeños módulos: Uno para estilos generales, otro para construcción de grillas, botones, formularios y uno podría solo incluir el que le interese en su proyecto. 
  • Es completo: No incluye ningún .js, ni construcción de elementos gráficos muy sofisticados como un slider pero aún así es lo suficientemente funcional como para construir un sitio de manera sencilla y que respete las buenas prácticas de maquetación. 
  • Es responsive: Como todo buen framework css, piensa en los dispositivos móviles. 

En el sitio web se pueden encontrar algunos ejemplos básicos construidos con Pure que muestran su poder y se puede descargar: blog, landing page, pricing table y otros.
La documentación del sitio es muy buena y sencilla de entender. Podría decir que no tiene curva de aprendizaje más que unos pocos minutos o un breve repaso sobre la documentación.


Que esperan para involucrar a Pure en sus proyectos?.


      
Leer más...