Flower

1.12.2009 | III Jornadas java

especialistajee

Un año mas el curso de especialista en JEE ha organizado una jornada de charlas sobre java y software libre. Aunque el año anterior no hubo, este año han vuelto con un buen abanico de ponentes muy buenos.

En su pagina web, podéis ver con mas detalle quienes han venido. Un resumen de las que hubo:

  • GWT con Emilio bravo. Amigo y compañero de proyectos, hablo de una tecnología que ya llevo tiempo utilizando y son un fan convencido.
  • Agilidad con Martin Perez. Otro amigo el cual tuve el privilegio de conocer con su anterior proyecto de Jlibrary. Como siempre magistral, se nota que no es su primera ponencia. Además hablo de un tema muy interesante y que además me cojea bastante. Así que con las aclaraciones que ha hecho creo que me voy a poner en serio a utilizar el diseño basado en pruebas y las metodologías ágiles.Además comento varios aspectos del mundo empresarial a los que ya me había referido en post anteriores. Aunque el con mas tranquilidad, constata como un equipo especializado vale mas que un gran equipo de personal poco cualificado. Y por supuesto, los proyectos ágiles suelen tener mas existo, o tienes mas predisposiciones a tenerlo, que un proyecto gestionado con metodologías mas rígidas. Algo que para muchos nos resulta mas que evidente, pero que en el mundo empresarial no.
  • Modelo de negocios con Sergio Montoro. A expuesto de forma muy clara, las diferentes formas de ganar dinero con el software libre. Estoy bastante de acuerdo con la mayoría de las razones que ha dado. Aunque en el tema de servicios creo que hay mucho mas que decir. Pero eso depende sobre todo de tu modelo de negocio. A Sergio lo he conocido hace unas semanas, ya que he comenzado a desarrollar unos módulos para su software hipergate.
  • Por ultimo, Francisco Peyrona, una persona muy importante en Sun Microsystem. Ha explicado que es java y que software tiene Sun, Glassfish y NetBeans. Ha sido divertido, y ha contado anécdotas interesantes.

Todas interesantes y con mucha información que poner en practica. Espero que pongas las ponencias en la web, aunque solo sen los pdfs.
Desde aquí mandar un saludo y las gracias a todos los ponentes, y espero que el próximo año siga la universidad promoviendo eventos de este tipo. A ver si el próximo año me toca a mi el iPod.

28.9.2009 | Grails

grailslogo

Continuando con el tema del curso de Groovy y Grails, hoy toca hablar de lo que es Grails.

Grails es un framework web basado en MVC, que mediante comandos Ant, o como lo llaman Gant, se va construyendo la aplicación. Sigue una metodología de desarrollo basado en el Dominio, y por debajo genera todo con Spring, Hibernate y GSP, que son como las JSP de toda la vida, pero con tags de grails y lenguaje Groovy.

Una de las características mas interesantes que posee es el scafloinding. Que mediante unas pocas líneas y comandos, genera todo el CRUD, desde la vista hasta la base de datos, pasando por el controlador, DAO y servicios necesarios.

Otro concepto interesante son los plugin que es una forma de añadir seguridad, ajax, test y cualquier otra funcionalidad, herramienta o servicio que necesitemos de una forma fácil, aunque eso es un poco relativo.

En principio parece una herramienta para el desarrollo de aplicaciones de una cierta complejidad de forma realmente rápida, como ejemplo tenemos a jobsket, realizado en grails.

Aunque como todo, hasta que no te metes en el ajo no ves realmente como es, he iniciado un proyecto con unos amigos para desarrollar una aplicación en dicha tecnología, que ya iré comentado.

Si alguno ha utilizado alguna de estas tecnologías, estaré muy agradecido de que comparta sus experiencias conmigo.

14.9.2009 | Groovy

groovy

En los tiempos que corren, es importante estar actualizado, sobre todo en cuanto a tecnologías se refieren. Como dice un amigo mío “siempre falta tiempo para verlo todo”. Así que aprovechando un curso que ha dado la universidad de alicante, en concreto el departamento de ciencia y computación, sobre Groovy y Grails, me he apuntado.

A grandes rasgos, groovy es un lenguaje ágil y dinámico. ¿Y qué quiere decir dinámico? pues por ejemplo, que los tipos de las variables puedan adaptarse de forma automática al dato que se le asigna, sin necesidad de asignarla explícitamente. También genera de forma automática muchas cosas que en java se hacen a mano, como autogenerar los métodos getter y setter.

Lo interesante de todo esto, es que al final es java, se compila a java de forma automática o lo haces explícitamente. Pero la cuestión es que al final y por debajo es java. Con todo lo que eso implica como la utilización de librerias ya existentes en java como hibernate, spring, etc …

Ahora bien, después de usarlo y utilizarlo en algunos ejemplos, y sin haberlo probado a fondo en ninguna aplicación real, la primera impresión es que está bien, te ahorras algunas líneas de código a la hora de escribir, pero poco más. Y más aun con los IDEs de ahora que te vienen con muy buenas herramientas de refactoring y de generación de código, como precisamente, los setter y los getter.

Aun así, os animo a que lo probéis, sobre todo porque es el lenguaje de Grails, del que hablaremos en sucesivos post.

8.7.2009 | App Engine

appengine_lowres

Llevo ya unos meses jugando con la nueva plataforma como servicio (PAAS) de Google. Para empezar explicare un poco por encima que es una PAAS. No es más que una plataforma basada en un lenguaje, donde ya tienes montado y configurado el servidor de aplicaciones, la base de datos y el servidor web. Tu solo tienes que realizar tus aplicaciones en ese lenguaje y desplegarlo en su plataforma.

No voy a entrar cuales son las ventajas e inconvenientes de tener una infraestructura en la nube, hay cientos de páginas que hablan de ello. Por dejarlo clara mi postura solo diré que estoy totalmente a favor de ellas.

El tema que me trae ahora es el de las aplicaciones multi-tenant. Es la cualidad que tiene un software de soportar multitud de usuarios y empresas sobre la misma infraestructura. Tenéis un post mucho mejor explicado de Martin y en este otro de Saasmania tenéis los diferentes niveles y modelos.

Como estaba jugando con App Engine, me preguntaba cual sería la mejor manera de hacerlo.

  • Diferentes bases de datos: Teniendo en cuenta que no controlas tú la base de datos, ya que no hay una base de datos relacional detrás, esta opción resulta difícil.
  • Diferentes servidores: igual que antes, solo tenemos un dominio y un contexto, y hay va todo. Tampoco veo la forma.

Así que me he puesto a buscar que hacen algunos para estos casos. Ni que decir tiene que en español no hay apenas información relevante sobre el tema. Así que con mi muy defectuoso ingles me he puesto a mirar alternativas. Pido un poco de comprensión por si entiendo mal las cosas.

En el grupo Google de AppEngine hablan precisamente de esto. Hare un resumen de las ideas que comentan.

  • Implementación propia de DatastoreService: Añadir un campo que sea el namespace, para poder filtrar los datos de las peticiones. Aunque advierten de que puede dar mucho trabajo. Es la primera aproximación que se me había ocurrido.
  • Una aplicación por cada inquilino: Los de Datanueclears hablan de una nueva funcionalidad para poder hacer esto mismo, con cada alta se instancia todo en un nuevo dominio. Aunque en AppEngine ya estas limitado a 10 aplicaciones.
  • Y por ultimo parece que los chicos de Google tienen pensado permitir un cierto multi-Tenant. Aunque no está claro.

Estaba bastante ilusionado con AppEngine en java, pero ahora que lo veo con más detenimiento puede que no sea tan bonito.
¿Conocéis alguna forma de salvar el escollo? ¿Alguna alternativa?