Monthly Archives: June 2007

You are browsing the site archives by month.

Eclipse europa!

eclipse europa

También tenemos versión 2.0 de WTP, 2.2 de BIRT con importantes mejoras añadidas, 4.4 de TPTP y así con el resto de proyectos de eclipse. Espero hacer alguna review de éstos si el puto pfc me lo permite.

Sobre IDEs, Eclipse y/o Netbeans

Entornos como Eclipse o Netbeans llevan años usándose, y están hechos por y para programadores. Si necesitas algo y no lo encuentras seguro que es porque no lo has encontrado todavía, no porque no lo tenga. Y si no lo tiene, seguro que es porque no lo necesitas

Nacho

Maven, entre el amor y el odio

La plataforma para la creación de aplicaciones a nivel empresarial es por excelencia Java (truenos de fondo…). Por lo normal, en todas las aplicaciones reales y serias que se hacen sobre Java, una de sus principales dificultades es el conjunto (elección y organización) de tecnologías (en este lote incluyo librerías, drivers, plugins, plataformas, servidores, herramientas y un largo etcétera interminable y del cual desconoceré la mayor parte y tú, aunque creas lo contrario, seguro que también). Una vez pasado el largo planteamiento inicial del componente que se desea a realizar, toca mancharse las manos y ponerse a programar. En cuanto te empieces a dar cuenta estarás ante una monstruosidad que sino llega a ser por tu querido IDE (eclipse, netbeans, vim+par de cojones) no podrías compilar y ponerlo en funcionamiento ni en tus sueños eróticos (tarea no trivial, entre otras cosas, por todo el conjunto de tecnologías externas de las cuales se suelen usar). Si a esto le sumas la tarea, no muy rara de darse, de mover todo el proyecto a otro sistema, empezarán a aparecer por ahí curiosas variables y similares que hay que cambiar por que son dependientes de un sistema en concreto. En definitiva, el proceso de gestión y construcción del proyecto se convierte en un autentico infierno, solo comparable al uso de Internet Explorer (OMFG!).
 
Para suavizar e intentar facilitar todo esto, existen herramientas para automatizar todo el proceso, la más conocida y usada actualmente es Ant (Netbeans la usa para todo el proceso de compilación), pero solo hace falta abrir uno de sus ficheros de configuración, build.xml, de un proyecto aleatorio para empezar a plantearse que quizá va a ser peor el remedio que la enfermedad. Vamos que su configuración es de todo menos intuitiva. Y su curva de aprendizaje (y mantenimiento) es pareja a bailar claque con un oso asiático en celo en la espalda.
 

Logo de Maven

Ahora es cuando digo que maven es bueno, bonito y barato y nos soluciona la papeleta. En parte así es, mucho más simple y potente que Ant (Maven hace lo mismo que Ant, y ambos son proyectos de Apache, uno de ellos más nuevo que el otro, adivina cual…), en definitiva un digno sucesor de Ant, mucho mejor, aunque no perfecto. Antes de seguir hablando pondré un “hola mundo” que así ya se entiende mejor qué es todo esto. Atención al pom.xml (project object model):

$ mkdir HolaMundo && cd HolaMundo
$ mkdir -p /src/main/java/com/bicosyes/hola # com.bicosyes.hola será el package
$ cat > /src/main/java/com/bicosyes/hola/Hola.java << EOF
package com.bicosyes.hola;
public class Hola
{
public static void main(String [] args)
{
System.out.println("¡Hola mundo!");
}
}
$ cat > pom.xml << EOF

4.0.0
com.bicosyes # grupo al cual pertenece el proyecto
HolaMundo # el nombre
1 # versión del componente
$ mvn install # install!, compila y genera el .jar
$ java -cp target/HolaMundo-1.jar com.bicosyes.hola.Hola
¡Hola mundo!

Pues vaya lata tener que hacer todo eso para un puñetero Hola mundo, ¿no?. Pues si, como nos gusta complicamos la vida a veces… Si no fuese porque además, maven, nos permite ejecutar test JUnit, recopilar informes de los test ejecutados, pasar pruebas de checkstyle, generar javadocs en diferentes formatos, crear packages jar/war/ear/ejb, subirlo a servidores remotos y cosas por el estilo que desconoceré. Además de todo esto, me he dejado su principal característica para el final, gestión de dependencias (al más puro estilo apt-get). Se usan repositorios de librerías (ésta es la principal), en el pom.xml se indicará qué librerías son usadas en el proyecto y qué versiones de las mismas (por ejemplo log4j versión 1.2.14). Indicando eso, al intentar realizar el proceso de compilación, maven las descargará, y si éstas, a su vez, dependen de otras librerías, hará lo necesario para que sus dependencias sean resueltas. Ahora ya todo esto del tal maven suena mejor, ¿no?. Sabes que si.
 
Uno de los principales fuertes de maven (desde mi punto de vista) es su facilidad y su modularidad (propio de la fundación Apache) que se traduce en una gran facilidad para escribir plugins y usarlos. Tenemos desde plugins de reporting hasta plugins para ejecutar tareas Ant (si, el de antes), pasando por deployment en servidores tomcat, por citar algunos que conozco de primera mano.
 
¿Alguna parte negativa? Hombre pues salvo el Monstruo de Espagueti Volador, nada es perfecto. El mayor punto negativo está en que, lógicamente, no vamos a tener todo en el repositorio y resignarse a usar la versión ‘X’ no es una opción, por lo que no es muy raro el tener que instalar en un repositorio propio controlado las versiones de las librerías que necesitemos (con todo lo que esto conlleva… piensa en las dependencias, por ejemplo…). Además el plugin para ejecutar test JUnit funciona dependiendo de la posición de los planetas, he debugeado pero sin mucho éxito, lo tengo como tarea pendiente (de baja prioridad por ahora).
 
Algunos enlaces para empezar

I know regular expressiones

Simplemente genial:
regular_expressions.png
Esta y otras tiras cómicas en xkcd.

Castings de “Britain’s Got Talent”

No veo, literalmente, nada la tele, pero por youtube he conocido de la existencia del programa Factor X, donde parece ser que la gente va a hacer el parias y simular que canta bien. En Inglaterra también existe, se llama existe uno muy similar, Britain’s got talent y gracias a Onir he visto estos dos increíbles vídeos, cuando salga alguno como estos en alguna basura de las que emiten en España (OT/Factor X/*), que me avisen:

¡Habemus hosting!

Debido a fluctuaciones del espacio-tiempo y a la posición relativa de los planetas, me he cambiado de hosting de freehostia.com (que gran nombre) a dreamhost. Las cifras son abrumadoras, 2TB de ancho de banda y 200GB de disco. Ahora vas, y los gastas. Además de eso tener últimas versiones de Mysql, php, perl, python y ruby (si, ruby con sus raíles bien puestos) también motiva bastante. Un shell por ssh con cron incluído (aunque el nombre de servidor que ha tocado es el más feo de la historia del hombre, trans-am). Y por último, pero no menos importante, subversión disponible para almacenar proyectos.
 
¿Hecho en falta algo? Hombre por pedir, un contenedor de servlets (e.g. tomcat) hubiese estado bien, y posibilidad de crear certificados para dominios alojados (para usar https) ya sería la guinda del pastel, pero eso sería ya pedir demasiado por tan poco que cuesta, gracias al bono descuento cortesía de DraXus, gracias :D.