Debug remoto con Grails y Eclipse

Después de bastante tiempo programando en Java, uno está acostumbrado a de vez en cuando hacer utilizar el debug de su IDE(en mi caso Eclipse) para comprobar algún comportamiento extraño, en el caso de Grails se apoya en el debugging remoto que nos trae la JVM(veáse el bash o .bat en GRAILS_HOME/bin/grails-debug).

Para empezar, deberemos ejecutar nuestra aplicación Grails con:

grails-debug run-app

De esta manera, tendremos debug remoto en el puerto 5005(por defecto)

Luego nos vamos a nuestro Eclipse, sobre nuestro proyecto seleccionamos Debug As y Debug Configurations..., tras esto tendremos que crear una nueva Remote Java Application con tipo de conexión Socket Attach en nuestro host, pero deberemos modificar el puerto de conexión por defecto que usa Eclipse(8000) al 5005, darle a debug y listo.

Ahí va una imagen(con un poco de publicidad subliminal ;))

debug con grails y eclipse

A partir de aquí ya podemos poner puntos de ruptura y trabajar con la perspectiva Debug de Eclipse normalmente.

Y por si quedan dudas, como su nombre indica :P, es posible hacer debug en remoto y no es algo exclusivo ni de Grails ni de Eclipse :).

Jobsket.com a la vuelta de la esquina

Tras varios meses de trabajo, vemos ya cercana la aparición Jobsket al mundo, en forma de beta privada. Un proyecto dirigido al sector empleo en internet, con un desarrollo y un enfoque que se sale de lo habitual, y al que también le vemos un potencial enorme.

Jobsket logo

Para estos proyectos se suele hablar mucho del equipo, y tengo que decir que el nuestro da miedo ;): con Jordi, Mamen, y Martín. Para mi los tres son de lo mejorcito, mientras tanto, otros hacemos lo que podemos para no desentonar demasiado :P.

Con el potencial del proyecto y del equipo, estamos convencidos que jobsket dará mucho que hablar y que demostará, una vez más, que con motivación y gente muy válida no importa que los miembros del equipo estén a cientos o miles de kilómetros para terminar haciendo un gran trabajo.

Si alguien tiene curiosidad a un nivel más técnico y no lo ha leído antes en el blog de Martín, nuestro framework web elegido fue Grails, algunas razones: cuando empezamos se estaba hablando muy bien de Grails(allá por la Release Candidate de la versión 1.0), al basarse en Hibernate y Spring sabíamos que no empezábamos de 0, además ya había algunas aplicaciones en producción más o menos grandes y teníamos ganas de aprender algo nuevo. La experiencia hasta el momento está siendo muy satisfactoria.

Por ahora tampoco podemos decir mucho más, simplemente animaros a seguirnos en twitter y que si queréis probar la beta cuando esté disponible registréis vuestra dirección de correo para avisaros.

Tutorial de inyección de dependencias con Spring

Rick Hightower está trabajando en un interesante tutorial sobre inyección de dependencias usando Spring. Realmente el tutorial empieza explicando explicando las bondades de la inyección de dependencias para desacoplar nuestro código; y sigue con una explicación de cómo hacerlo a mano, sin la ayuda de frameworks, con nuestro propio código pegamento.

Una vez introducidos, va explicando las diferentes formas con las que se inyectan dependencias con Spring, empezando desde la forma clásica usando sólo configuración XML, sigue adentrándose en algunas de las diferentes anotaciones de Spring que podemos utilizar(@Required, @Autowire, @Qualifier, @Component...), después en la configuración de objetos con tipos primitivos y acaba con el ciclo de vida y los ámbitos(scopes) de los objetos inyectados. En definitiva, un muy buen recurso para introducirse a la inyección de dependencias, a Spring y a sus anotaciones.

Sobre las anotaciones para la configuración de depenencias con Spring, bajo una opinión completamente personal y sin haberlas utilizado todavía, no me termina de convencer usarlas: Por un lado atamos nuestras clases a Spring con la configuración hardcodeada y por otro tenemos la configuración repartida en múltiples clases.

Quizás esté equivocado en lo segundo y sea más mantenible tener repartida la configuración en las mismas clases que tenerla en uno o varios XML, por esto me gustaría conocer las opiniones de los que pasáis por aquí que uséis Spring con o sin anotaciones y vuestras experiencias.

Fin del Linking Internship ¿Qué pasa con flatee?

Pues como ya han escrito Aitor en el blog de Linking Paths y Jesús en el suyo, el internship ya ha terminado y no se puede decir que haya sido un éxito, ni mucho menos.

La idea era lanzar flatee al terminar el internship, pero por varias razones no ha sido posible dedicarle todo el tiempo y esfuerzo que requería este proyecto y se nos ha quedado a todos la sensación de que ha sido una decepción, personalmente más cuando alguien se ha interesado por la evolución del proyecto. De todas formas, sacando la parte positiva, a mi me ha servido para aprender bastante rails (sin tog) y que uno no se puede liar en un proyecto de este tipo con medias tintas. A mi me cogió en un momento muy liado con el GSoC, otro proyecto propio, proyectos a terceros... ni trabajando algunos fines de semana daba abasto(y de vez en cuando hay que descansar).

Sobre el futuro de flatee, por ahora voy a seguir trabajando en ello como side project, con el compromiso de sacar la primera versión para finales de año. Aunque sigue sin sobrarme precisamente, tengo algo más de tiempo que durante el verano, es un proyecto que cubre una necesidad propia y soy un poco tozudo(como buen aragonés :P). Esto significará pegarme también algunos fines de semana de código encerrado en casa y tratar de liberarme algunos días para dedicarle más tiempo.

Espero que más adelante Jesús pueda volver a incorporarse y podamos sacar a la luz un proyecto que resulte de utilidad a la gente que busca(mos) compañeros de piso o piso compartido.

Tog ya es público

En el blog de Linking Paths han ido escribiendo mucho sobre tog, y desde la semana pasada es pública la versión 0.2(licencia MIT).

¿Pero qué es tog?

Es una plataforma open source extensible para crear redes o aplicaciones sociales bajo Ruby on Rails. Da la base social casi sin esfuerzo y se puede añadir funcionalidad mediante la arquitectura de plugins, usando los existentes o creándolos nosotros mismos, e incluso personalizar los plugins para nuestras necesidades puntuales. Quien pueda pensar en un clon de Ning, anda desencaminado, esto es una plataforma para desarrollar y no un servicio(aunque sí se podría crear un clon con tog ;))

Para dar a conocer la plataforma, se ha organizado un evento de introducción el día 9 de octubre en Madrid, para el que obviamente ya me he registrado :), el evento es gratuito pero las plazas son limitadas. Si te interesa ver la evolución de tog, no dejes de seguir su blog, que es donde se publicarán las novedades que vayan surgiendo.

Como opinión personal, después de un tiempo utilizando la plataforma dentro de Linking Paths, estoy convencido en que es una buena elección para posibles proyectos sociales que me surjan. Además, tengo pensado usarlo en un proyecto personal, si lo empiezo algún día(que visto lo visto no será en breve :P).