Mostrando entradas con la etiqueta Herramientas. Mostrar todas las entradas
Mostrando entradas con la etiqueta Herramientas. Mostrar todas las entradas

jueves, 7 de febrero de 2008

Gráficas con rangos variables HSSF - POI

Recientemente comence a utilizar Apache POI para crear archivos de Excel desde Java y me encontre con un problema que podría calificar de trivial pero que me quito algo de tiempo.

Supongamos que queremos crear una gráfica que muestre los valores anuales desde una fecha determinada hasta el día de hoy. La solución puede sonar simple: creamos una gráfica en un archivo y listo, posteriormente escribimos los valores mediante POI en otro archivo tomando como base el primero. Cuando el número de años entre la fecha actual y la de inicio cambia (el tiempo pasa) el problema deja de ser trivial.

La principal razón por la que esto sucede es por el simple hecho de que POI no incluye soporte para gráficas, entonces, no es posible crearla o alterarla de manera directa. La solución que yo encontre es un poco rebuscada pero funciona.


  1. Crear el archivo con la gráfica en Excel con datos de muestra.

  2. Crear un rango nombrado que cuente el numero de valores que pueden cubrir nuestros datos.

    1. En el menú Insert > Name > Define...

    2. En la parte inferior crear una formula para seleccionar el rango:

      =OFFSET(Hoja!$B$1, 1, 0, COUNTA(Hoja!$B:$B) - 1, 1)


      OFFSET selecciona un rango a partir de la celda pasada como primer parametro con el numero de filas indicado (el primer uno), el numero de columnas (el cero), y un alto igual al tercer parametro con un ancho del cuarto parametro.

      COUNTA cuenta las celdas no vacias de el rango pasado como parámetro.



  3. Crear la gráfica hasta el paso donde se seleccionan los datos de origen.

  4. Una vez en este paso dar clic en la pestaña de series

  5. Dentro de la pestaña series cambiar el valor de valores y etiquetas por los nombres definidos previamente

  6. Ahora pueden agregarse datos en la fila por debajo de la ultima con datos y estos se agregaran a la gráfica.

  7. El resto es sencillo con POI

jueves, 13 de septiembre de 2007

JUnit

JUnit es una libreria Java que permite realizar pruebas de unidad sobre las clases que han sido desarrolladas dentro de un proyecto orientado a objetos. Por medio de JUnit podemos probar parte de la calidad del software que desarrollamos.

Las pruebas que se pueden desarrollar sobre JUnit parten de un sencillo concepto: assert, un assert en una condición que debe cumplirse para considerar que nuestra clase probada funciona de la manera esperada.

Además, los JUnits permiten realizar operaciones complejas dentro de una clase utilizando código Java para las pruebas.

Un UnitTest tiene la siguiente estructura:
  1. 1 método protegido setUp( ) que configura el entorno antes de realizar cualquier prueba.
  2. 1 método protegido tearDown( ) que destruye el entorno de pruebas.
  3. Varios métodos con el nombre test* que son cada una de las pruebas que se van a realizar.
Dentro de cualquiera de estos métodos pueden utilizarse los métodos siguientes:
  1. assertTrue(mensaje, condicion), assertTrue(condicion). Que comprueba que la condicion booleana que se le pasa como parametro sea forzosamente correcta.
  2. assertFalse. Lo mismo pero al reves.
  3. assertEquals(valor, valor), assertEquals(mensaje, valor, valor). Se asegura que los valores pasados como parametro sean iguales.
  4. assertNotEquals( );
  5. assertSame(Objeto, Objeto). Los objetos deben hacer referencia al mismo objeto, es decir, la misma direccion de memoria.
  6. assertNotSame( ).

domingo, 9 de septiembre de 2007

Conceptos para Web

Una lista de los conceptos generales para crear aplicaciones en Web y lo que hace falta, primero el Software:
Las tecnologías vamos a revisarlas poco a poco y con calma, por lo pronto por lo menos debería de instalar el JDK, Eclipse y Tomcat. El resto podemos irlo haciendo poco a poco.

martes, 31 de julio de 2007

Herramientas para Java

Generalmente el manejo de aplicaciones Java es simplemente considerado plano, sin embargo, los desarrollos Java estan plagados de opciones de trabajo que permiten simplificar el desarrollo, distribución, y mantenimiento de las aplicaciones; existen multiples herramientas que pueden hacer más sencillo el trabajo de Java en entornos de trabajo, vamos a revisar algunas de ellas.
  • Eclipse: Es un IDE que permite desarrollar aplicaciones Java de una manera intuitiva. Es completamente gratuito y puede extenderse de manera casi ilimitada con plugins para realizar diferentes tareas además de las que contiene originalmente. En lo personal me encanta su soporte para integrar muchas de las demás herramientas que aquí se mencionan. Pueden encontrar diversas versiones del IDE, opción personal TFTP y Callipso

  • BlueJ: Cuando no requerimos de todo el poder y las gracias que nos ofrece Eclipse, BlueJ es una buena opción, ofrece poco soporte para herramientas avanzadas, pero nos permite desarrollar aplicaciones sencillas, depurarlas de una manera intuitiva y verlas como dibujos. Cualquier cosa seria no cabe en BlueJ pero es ligero y fácil de usar para cuestiones didacticas

  • Ant: Es una herramienta que permite automatizar muchas de las tareas latosas y repetitivas que se realizan en Java, probablemente no entiendan que hacer con Ant y les parezca una forma fastidiosa de escribir XML pero cuando hablemos de Deploy y estrategías de pruebas automatizadas.

  • JUnit: Es una librería realizada completamente en Java que nos permite automatizar las pruebas y condiciones que deben ejecutarse en cada elemento del programa de manera separada o bien de manera integrada, es una forma de saber que las cosas trabajan antes de ponerlas en producción.

  • HttpUnit: Es algo que pegas con el anterior para probar interfaces Web

  • JavaDoc: Parte de la suite Java del SDK que permite generar documentación parecida a la oficial de la API sobre los elementos de los programas que nosotros desarrollemos
Si bien no es indispensable dominar todas estas tecnologías para utilizar Java te pueden hacer la vida bastante fácil.