viernes, 28 de diciembre de 2012

Maven - Qué és y porqué usarlo



Apache Maven es una herramienta de linea de comandos diseñada para controlar y automatizar la administración y construcción de proyectos, creada por Jason van Zyl, de Sonatype, allá por el 2002.

Es similar en funcionalidad a Apache Ant, aunque mucho mas ágil, ya que permite trabajar de forma nativa con repositorios estándar de templates de proyectos y sus ciclos de vida definidos en un archivo llamado pom.xml.

Además posee la capacidad de descargar automáticamente dependencias de librerías estándar publicas o privadas, minimizando errores por el uso de diferentes versiones de las mismas y ahorrando espacio en los repositorios SCM.



Porqué usarlo?

  1. Predica la filosofía de la estandarización del ciclo de vida de un proyecto.  Este aspecto cubre desde la construcción de skeletons (llamados arquetipos) de una aplicación para una gran variedad de plataformas (móvil, desktop, web)  hasta su liberación final.
  2. Da un punto común sobre el cual cualquier desarrollador a través de comandos simples de manejo del ciclo de vida del proyecto, puede participar, compilar, testear y liberar un proyecto por mas que no conozca los pormenores del mismo, lo que hace mas fácil el mantenimiento en el tiempo.
  3. Es excelente para automatizar la ejecución de procesos de testing (sobre JUnit o similar), y de esta forma trabajar mediante la técnica TDD (Test Driven Development).
  4. Permite controlar métricas y generar reportes de calidad del proyecto.
  5. Se integra de forma transparente sobre entornos de integración continua (CI).
  6. Goza de la capacidad de ser una herramienta altamente flexible y configurable, propiedad que hace que sea excelente si se sabe que es lo que se quiere hacer y se lo utiliza para adaptarlo a las necesidades particulares de cada proyecto.

En un próximo post los ayudare a instalar maven desde cero. La idea este post es mostrar cómo se usa y mostrar sus ventajas.

Iniciaremos con un proyecto sencillo para web.


Creando un proyecto de aplicación web simple

En una consola escribe lo siguiente:

mvn archetype:generate -DgroupId=com.mi-compania.division -DartifactId=mi-webapp -DarchetypeArtifactId=maven-archetype-webapp DinteractiveMode=false

Donde:
  • DgroupId: Define el grupo al que pertenece la aplicación.
  • DartifactId: Define el nombre de la aplicación (o artefacto).
  • DarchetypeArtifactId: Es el mas importante. Define el tipo de proyecto que queremos generar. Existen cientos de arquetipos entre los que elegir.
  • DinteractiveMode: Define si queremos que nos pida necesidad de confirmación (valor true) o trabaje con los valores por defecto (valor false).

Ejemplo de una ejecución:

Nota: Maven trabaja con librerías en un repositorio local. Cuando no posee las librerías necesarias para lo que se le requiere, éste las baja desde los repositorios comunes en internet, por lo que no te sorprenda ver mensajes de descarga en la primera ejecución.

Estructura de Directorios Típico


En la estructura de directorios anterior se puede apreciar como importante:

  • El archivo pom.xml: contiene la programación funcional para cada objetivo del ciclo de vida.
  • Estructura src/main: Estructura de directorios del proyecto de aplicación.
  • Estructura src/test: Estructura de directorios del proyecto de testing. Algunos arquetipos  no lo manejan.

Ciclo de Vida Típico



Los plugins estandar suelen ser el compile, test, install y deploy. Otro plugin muy utilizado es clean, para eliminar todos los archivos compilados del proyecto en compilaciones anteriores previo a la ejecución de una compilación.

Un ejemplo de ejecución de plugins de maven:

mvn clean install

Con lo que le pedimos que limpie e instale el resultado en el repositorio local. El plugin clean elimina todos los binarios locales. El plugin install chequea si existe el paquete generado, por lo que al haber limpiado el directorio de compilación con el comando clean, Maven genera todo lo necesario automáticamente  ejecutando las compilaciones, empaquetados y finalmente instalándolo como lo solicitamos.

Ejemplo de ejecución sobre el proyecto web anterior :


Donde al finalizar la ejecución, dentro de un directorio target, encontraran el archivo .war listo para instalar en  un servidor java web tomcat o similiar.

Espero este artículo haya servido para ilustrarlos sobre Maven a modo de introducción, y dar una pequeña idea sobre su utilización. Por si quieren ver mas acerca de esta herramienta, les dejo el link del sitio oficial: http://maven.apache.org/



Escrito por:

lunes, 24 de diciembre de 2012

Felices fiestas 2012!



Les envío mis mejores deseos esperando pasen una muy especial navidad, disfrutando en paz y en compañía de nuestros mas cercanos afectos. De todo corazón, Feliz Navidad.

Escrito por:

domingo, 16 de diciembre de 2012

General Electric presenta una tecnología para remplazar los coolers tradicionales



        General Electric presentó un sistema de enfriamiento que promete revolucionar los conceptos en la materia.

        Se trata de un sistema piezoeléctico que emula (por compararlo de alguna manera) al sistema respiratorio humano, produciendo un enfriamiento como el requerido por los equipos electrónicos pero en un tamaño muy reducido; cuatro milímetros serán necesarios para reemplazar un sistema similar de varios centímetros de altura utilizando los archiconocidos fan.

        Esta tecnología promete de este modo la viabilidad de una mayor potencia en equipos pequeños como celulares y tabletas.

También significa en mejor rendimiento energético, pudiendo en comparativa permitir una importante duración adicional de las baterías de equipos portátiles.




        GE  indican de que esta tecnología esta lista para producción y que ya esta licenciada a la empresa Fujikura. Habrá que ver como se comporta a nivel de ruido (aunque indican que es bastante silencioso), su durabilidad en el tiempo y comportamiento con el polvo, pero como siempre festejamos los pequeños y grandes avances que se continúan dando en pro de la evolución tecnológica.





        A continuación el vídeo de presentación del producto:





Nota: Un agradecimiento especial a Walter Nieto por acercarnos la noticia.

miércoles, 12 de diciembre de 2012

Java - Configuración de Variables de Entorno JAVA_HOME y PATH

Introducción


Esta es un tema mas bien básico pero que no esta del todo bien documentado así que pongo mi aporte a beginners: El JDK (Java Development Kit) requiere por parte de las herramientas que lo usan (por ejemplo, ECLIPSE, MAVEN, GRAILS, etc) que se encuentren disponibles y bien configuradas dos variables de entorno: JAVA_HOME y PATH. A continuación se muestra la configuración paso a paso bajo Windows XP.



Configuración de Variables de Entorno JAVA_HOME y PATH


Primero que nada, debemos ir a Mi PC, presionar botón derecho y en el menú contextual seleccionar Propiedades:

Se presentara la pantalla de Propiedades del sistema; esta es una ventana con varias lenguetas. Seleccionamos la lengueta llamada Opciones avanzadas. Allí seleccionamos Variables de entorno como indica la siguiente imagen:


Se presenta la ventana de Variables de entorno, donde configuraremos las mismas. Para ingresar una nueva variable de entorno, En la misma, en la sección Variables del sistema seleccionamos Nueva:


En la nueva ventana, ingresaremos en el campo Nombre de variable, el texto JAVA_HOME, y en el campo Valor de variable, ingresaremos el path a donde tenemos instalado el JDK. En mi caso lo tengo en C:\Archivos de programa\Java\jdk1.7.0_09\; usted verifique el path de la versión que posea instalado e ingréselo del siguiente modo:



Una vez terminado, presione Aceptar.

Seguidamente, editaremos el valor de la variable Path existente. Identifiquela en la sección Variables del sistema como indica la siguiente imagen:


Selecciónela haciendo doble click sobre la misma. Se presentara una ventana de Modificar la variable del sistema. Vaya al final de la linea y agregue el texto ;%JAVA_HOME%\bin , quedando del siguiente modo:


Presione Aceptar y cierre todas las ventanas.

Para probar el funcionamiento, abra una nueva consola y escriba: java -version. Si todo quedó correctamente configurado, deberá ver un mensaje como el siguiente:


miércoles, 5 de diciembre de 2012

VM - VirtualBox - Cómo compactar archivos .VDI


          Cuando se trabaja con maquinas virtuales en VirtualBox, la información de los "discos" virtuales se almacenan en archivos de extensión ".vdi". Estos pueden ser de dos tipos, de tamaño fijo o dinámicos. Sobre estos últimos nos centraremos a trabajar en el presente artículo.


Introducción


          Mas de una vez al comenzar a virtualizar equipos ha sido necesario optimizar el espacio de las mismas para su almacenamiento, uso y backups. Para esto se puede emplear una técnica de compactación, ejecutando una serie de pasos con la que se elimina todo el espacio no utilizado por los archivos .vdi de tamaño dinámico y reduciendo así el espacio que ocupan dichos archivos en el disco real.


Pasos para realizar la compactación

1) Limpieza

          1.1. Primero eliminar todo los archivos que no son necesarios: Recorra todas las carpetas de datos que utilice (no las de sistemas) y a conciencia elimine los archivos que no deberían estar en dicha maquina. Le sugiero que para determinar esto emplee la política de no dejar nada "por si acaso", sino porque realmente deba estar en ahí. Se sorprenderá de cuanto espacio puede liberar con esto.
          1.2. Luego, limpie el resto de la maquina y sistema operativo con una herramienta de limpieza. Para esto recomiendo usar la herramienta gratuita CCleaner de Piriform ( http://www.piriform.com/ccleaner ), limpiando todo lo que la herramienta le permita.


2) Defragmentación

          2.1. Es importante que los archivos se encuentren dispuestos de forma continua en el disco ya que sino la tarea de compactación no podrá hacerse de forma optima. Para puede usar la de su preferencia, aunque recomiendo usar la herramienta gratuita
       

3) Puesta a cero de espacio vacío

          Descargue y descomprima la aplicación de linea de comandos sdelete.exe ( desde http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx  ) y ejecute el siguiente comando:

sdelete -z  


4) Compactación simple

        Una vez puesto el espacio liberado a cero, vaya al directorio de instalación del VirtualBox (generalmente en "C:\Program Files\Oracle\VirtualBox\" ) y ejecute el siguiente comando:
VBoxManage.exe modifyhd <path-y-nombre-de-archivo.vdi> --compact 
        La aplicación ejecutará mostrando un avance porcentual en modo texto:


        Con estos pasos ya se posee una maquina virtual con un tamaño mucho mas reducido que el tamaño original, y que puede seguir usándolo  En caso de que su objetivo sea realizar un backup, puede ejecutar un paso mas para generar un archivo "almacenable" mas pequeño todavía.

5) Compactación adicional para backup

          Utilice WinRAR para comprimir el archivo .VDI resultante de las operaciones anteriores. WinRAR puede llegar a reducir el tamaño del archivo para almacenaje en un 30% o más (según el tamaño original).
          El archivo .rar resultante puede ser almacenado en un disco externo o su medio de almacenamiento preferido.
          En caso de necesitar volver a ese estado de disco, descomprima la imagen reemplazando el archivo original.

Eso es todo! Saludos