Infraestructura desarrollo gratis (I)

Una buena infraestructura ayuda a los equipos a sentirse a gusto y mejora la comunicación lo que hace mas fácil seguir una metodología de desarrollo ordenada y coherente, para ello existen actualmente muchas herramientas gratuitas. Estas son algunas alternativas:

Infraestructura gratis

Infraestructura gratis

  • Linux / freeBSD: Siempre un sistema operativo libre nos permite utilizar mejor los recursos físicos locales con los que contemos (y reutilizar hardware que no es de última generación).
  • Eclipse / Netbeans / Geany : Un entorno de desarrollo acorde con la tecnología que usemos para el proyecto ahorra tiempo en tareas comunes.
  • Google mail + docs + calendar / Zoho: Cuentas de correo con amplio espacio, cliente de mensajería instantánea e integración con documentos compartidos y organizados además de un calendario común mejoran la comunicación interna del equipo.
  • Wikidot / Google sites: Usar la documentación del proyecto como herramienta de conocimiento explícito y memoria del proyecto además de documentar desde el principio permite que la renovación y crecimiento del equipo humano sea más sencillo.
  • Bitbucket / Github / Xp-dev: El control de versiones de los productos / subproductos del proyecto junto con el manejo de incidencias permite que se mida el avance del proyecto.
  • AWS free: Un servidor común de administración propia con suficiente capacidad como para instalar un servidor de integración continua sin muchas complicaciones.
  • Maven / Ivy: La gestión de artefactos, dependencias, informes acerca del proyecto (pruebas unitarias, pruebas de integración, cobertura de las pruebas, etc) de forma común y centralizada permite hacer un seguimiento de la calidad de los productos / subproductos desde el principio.
  • Jenkins / Continuum: Un servidor de integración continua permite detectar fallos, centralizar pruebas, generar releases de forma automatizada.
  • Twitter: Comunicarse de forma rápida y sucinta con el equipo desde cualquier dispositivo móvil en cualquier momento.
  • Ifttt: If This Then That, permite integrar múltiples servicios web de forma ultra fácil.

En próximos post espero describir la forma de integrar varias de estas herramientas.

Anuncios

Lombok – esteroIDEs para Java

Programo en java desde 2001 aproximadamente, me encanta la cantidad de recursos disponibles y me gustaba que no conocía muchos casos, estamos en la versión 7 y aun no hay propiedades para los Plain Old Java Objects (POJO).

Afortunadamente lo importante no es el lenguaje sino la Máquina Virtual y existe una cantidad decente decente de lenguajes para casi todos los gustos (Groovy, Jython, JRuby, etc).

Pero mientras me familiarizo con Groovy++ y para hacer la transición de mis amigos más sencilla estamos usando el excelente proyecto Lombok.

A través de sencillas anotaciones podemos evitar escribir los métodos de acceso a los atributos de clases (Compatible con maven, eclipse, sts y netbeans), la declaración del log, los constructores y métodos de comparación y hashing de nuestras clases, cerrar los recursos que hemos abierto en un método y muchas otras pequeñas mejoras que van a hacer nuestro código mas legible y sencillo.

Solo por recordar algo que ya está en la web del proyecto: además de insertar la dependencia de maven es necesario instalarlo (ejecutar el jar) para que modifique la configuración de inicio del IDE.

En caso de no funcionar solo hay que agregar un par de configuraciones al .ini del IDE:

-Xbootclasspath/a:<i>ruta_al_jar</i>/lombok-0.10.0.jar
-javaagent:<i>ruta_al_jar</i>/lombok-0.10.0.jar

Epf en linux 64 bits

El Eclipse Process Framework es un marco de trabajo para definir modelos de procesos de ingeniería de software (Tiene modelos predefinidos personalizables para OpenUP, Scrum, XP y Togaf). La literatura al respecto es laaaarga e interesante, EPF ofrece una herramienta para acompañar el proceso de definición y publicación de los modelos llamado “Eclipse Process Framework Composer”, para ejecutar correctamente esta herramienta en un entorno Ubuntu de 64 bits es necesario:

  1. Instalar librerias de 32 bits y la jvm de 32 bits, desde consola:
    #sudo apt-get install ia32-libs ia32-sun-java6-bin
  2. Crear las variables de entorno, desde consola:
    #gedit ~/.profile
    --en gedit
    export MOZILLA_FIVE_HOME="/usr/lib/firefox"
    export LD_LIBRARY_PATH="$MOZILLA_FIVE_HOME:$LD_LIBRARY_PATH"
  3. Finalmente iniciar el Epf composer apuntando a la jvm de 32 bits, desde consola:
    #./epf -vm /usr/lib/jvm/ia32-java-6-sun/bin

Espero que sea de ayuda para quienes quieran usar una buena herramienta para especificar y socializar su proceso de ingeniería de software.

Xhtml, eclipse y facelets

Una de las mejores características de todo buen editor es la capacidad de autocompletar el código. Estoy haciendo algunas pruebas con JSF 2 y no quiero usar jspx para la vista (xhtml es el formato por defecto para facelets) asi que la solución -descrita en adictosaltrabajo– para hacer que Eclipse auto complete los tags del namespace ui no funciona.

Asi que tras aprender el truco con los archivos de vista de cakePHP (*.ctp) es fácil sugerir que se añada en Eclipse el editor adecuado para la extension *.xhtml (Window->Preferences->General->Content Types) para el tipo Text->JSP.

Finalmente, hay que agregar el tld apropiado para facelets en el classpath del proyecto (el directorio WEB-INF es una idea razonable) para que Eclipse pueda encontrarlo y hacer las sugerencias adecuadas. En la red es relativamente sencillo encontrar la especificación para Jsf 1.2 sin embargo para 2.0 no es trivial asi que dejo los dos archivos como recurso (es necesario eliminar la extension .odt). Esta tip esta basado en el aprendizaje de CakePHP + Eclipse y un par de foros donde busque el tld adecuado.

Fuente Sun Oracle Java Forum y Stackoverflow

jsf-ui.tld
jsf-ui-2_0.tld