Interfaces con Tapestry 5

May 12, 2008 @ 12:56 pm by CaDs

Debo reconocer que Tapestry me ha gustado más de lo que esperaba.

Tratándose de un framework para J2EE, esperaba tener que escribir líneas y líneas de XML para configurarlo adecuadamente, pero afortunadamente Tapestry 5 permite gestionar prácticamente toda su configuración a través de notaciones, agilizando bastante el desarrollo y permitiendo que el código sea bastante más legible.

Para aquellos que no conozcáis Tapestry os recomiendo el libro Tapestry 5: Building Web Applications

null

El cual nos lleva de la mano por cada uno de los capítulos recorriendo las diversas opciones que Tapestry pone a nuestra disposición a la hora de construir interfaces.

La única pega que le encuentro al libro es que en varias ocasiones (sobre todo a partir del capítulo 6) omite los paquetes que deben importarse para poder usar las diversas clases que se mencionan en el libro. Lo cual si os encontráis sin internet para consultar es bastante molesto, claro que siempre os podéis descargar el código fuente de los ejemplos (altamente recomendable para descubrir los dichosos paquetes).

En general Tapestry me ha causado una grata impresión. Le encuentro ciertas similitudes con Rails en el sentido de que nos permite usar componentes bastante interesantes y potentes con un par de líneas de código, pero no llega a abarcar tantos aspectos como Rails.
Tapestry 5 es para interfaces y poco más (lo cual no es poco).

Una herramienta curiosa y bastante ágil y útil si os toca programar con J2EE.

Dreaming vs Reality

Mar 07, 2008 @ 05:56 pm by CaDs

Portal to dreams

VS

Reality

Enseñando trucos nuevos a un perro viejo

Feb 18, 2008 @ 01:21 pm by CaDs

Hace algunos días, Miguel Rodríguez hacía esta pregunta en su twitter:

¿Está Rails listo para las empresas? la pregunta correcta es ¿Las Empresas estan lista para el desarrollo AGIL en Rails?

Esto es algo en lo que llevo pensando los últimos meses, no específicamente con Rails, pero sí con el desarrollo ágil en general.

Paradójicamente la industria del software, que debiera adaptarse mejor que cualquier otra industria a los cambios teniendo en cuenta el producto que manufactura, es en cierto modo reticente a los cambios drásticos.
Pero cuando hablo de industria de software me refiero tanto a proveedores como a clientes.

Parece mentira que a día de hoy, sigan existiendo empresas que utilicen el desarrollo en cascada para desarrollar sus proyectos.

Esto está empíricamente probado que no funciona!

Entonces la pregunta que yo me hago es:

¿Qué impulsa a las empresas y a los clientes a usar metodologías viejas y obsoletas, blindarse con contratos de desarrollo y entregas definidas en fechas a priori sin tener especificaciones detalladas o en ocasiones, sin conocer realmente el producto que se desea desarrollar ?
Este tipo de proyectos y contratos suelen acabar en frases como esta por parte del cliente:
“Esto es justo lo que te pedí, pero no es lo que quiero”

El software desde mi humilde punto de vista, es como la materialización digital de una idea.
Pero trabajar con algo tan abstracto como una idea requiere agilidad, adaptación, imaginación… algo que desde mi punto de vista choca frontalmente con reglas fijas, diseños “grabados en piedra”, documentos de funcionalidad intocables, etc.

Cualquiera que sepa algo de tecnología, o haya tenido algo de experiencia, por poca que sea, en el desarrollo de software debe saber que el software jamás queda “escrito en piedra”, está en su naturaleza mutar, evolucionar (si, algo así como los pokemons) y en general estar sujeto a todo tipo de cambios.

Poco a poco han surgido diferentes metodologías, y frameworks que, una vez comprobado que lo rígido no funciona, han desarrollado una tendencia ágil para desarrollar software.

En general estas metodologías y frameworks, se adaptan en mayor o menor medida al desarrollo en espiral el cual es mucho más flexible en cuanto a incorporar cambios a nuestro producto.


Imagen cortesía de la Wikipedia

En concreto Rails, es un framework ágil para Ruby, uno de los lenguajes que considero que tiene más potencial de cara al futuro (flame wars aparte)

Rails es uno de tantos frameworks (Grails, Spring, Tapestry…) que ayudan a incorporarse en esta nueva tendencia del desarrollo ágil, pero de nada sirve tener un buen framework si no modificamos nuestra mentalidad en cuanto al desarrollo de software.

Documentación sobre desarrollo ágil hay a patadas, Extreme Programming, Scrum son sólo algunos ejemplos de los muchos que se pueden encontrar.

Pero mi punto es que, de nada sirve (o al menos de muy poco) la revolución ágil, si la industria (aka. proveedores y clientes) no cambian hacia lo ágil, y en mi opinión esta es una asignatura pendiente para las grandes corporaciones y en los programadores.

Poco a poco se está demostrando que pequeños grupos de trabajo entregados al desarrollo ágil, con clientes que apuesten por éste y se involucren en el proyecto, resultan mucho más productivos y sus productos mucho más satisfactorios que aquellos gestionados/implementado con viejos estándares, cláusulas, y documentos de funcionalidad “escritos en piedra”.

Pasará como con los dinosaurios y las grandes corporaciones de software estarán condenadas a la extinción?

Cambiar hacia lo ágil está lleno de retos, hay q cambiar de mentalidad, eliminar la pereza de modificar las cosas ya realizadas y probadas, adaptarse a los cambios del cliente, e incluso incentivar a éste para que participe, se involucre, pruebe, haga y deshaga…
No hay nada escrito en piedra, todo está sujeto al cambio, es más, el cambio es el motor del mismo desarrollo…

Es la revolución ágil, te apuntas?

RailsSpace

Feb 13, 2008 @ 09:03 pm by CaDs

Si hace algunos días hablaba de Beginnig Ruby, from Novice to Professional, hoy me encuentro con RailsSpace, uno de los libros más completos que he encontrado de Ruby on Rails.

RailsSpace nos lleva de la mano a través de los pasos para implementar una red social usando RoR.

Podéis encontrar más información de este libro aquí, y podéis leer la versión online aquí

Ruby, from Novice to Professional

Jan 30, 2008 @ 10:54 pm by CaDs

Desde que mi amigo Stephan me pasara el libro de Beginning POJOs debo admitir que me aficioné a la editorial Apress.

En general los libros que publican son bastante buenos desde el punto de vista técnico, si bien en algunos casos se quedan algo cortillos, pero en general no son tan duros de leer como los de Wrox.

En concreto últimamente he estado trabajando con Beginning Ruby, from Novice to Professional y la verdad es que estoy encantado con el librito.

Hasta la fecha es lo más entretenido que he encontrado para ponerle las manos encima a Ruby.

Si estás aprendiendo Ruby créeme que no te va a decepcionar el librito.
Puedes encontrarlo en Amazon, con la curiosa oferta de comprarlo en Pack junto con Beginning Rails, from Novice to Professional.

Este todavía no ha caído en mis manos, pero todo llegará ;)

Sobre desarrollo de Software y otros males…

Dec 08, 2007 @ 02:21 pm by CaDs

Hace ya algunos días que leí este post en el blog de Stephan el cual me permito copiar aquí.

The Pragmatic Architect in Why do so many technology projects fail?:
Iterative and agile techniques have revolutionized the way that software development is performed, but our industry needs to take a step back and look at the way in which software projects are engaged. Why, when you read about so many high profile big budget software failures, do businesses still initiate software projects with “we want this, tell me how much it will cost”? *We* know that they’ll change their mind. *They* know that they’ll change their mind. So let’s change the engagement model, stop hiding behind fixed price contracts and work *together* to solve problems.

Lo cual se ajusta perfectamente a cierto pensamiento que me lleva rondando las últimas semanas por la cabeza.
Los diversos frameworks que actualmente se encuentran a disposición del desarrollador de software facilitan y agilizan el desarrollo de manera exponencial.
Cierto que requieren cierta curva de aprendizaje, pero con la practica los resultados son realmente impresionantes.

Pero esta agilidad en muchas ocasiones se ve frenada por toda la trama burocratica de contratos, plazos de entrega y constantes controles de cambio que también forman parte del mundo del software, y en general, cualquier proyecto.

No sería mucho más fácil trabajar dentro de un marco que nos permita adaptarnos a las necesidades del cliente de una manera más elástica y dinámica?
Cierto que cualquier cambio solicitado requiere de cierto análisis y estimación de costos pero debiera formar parte del mismo proceso ágil.
Claro que estoy hablando del mundo ideal. En la práctica el cliente no siempre sabe lo que quiere o no siempre está dispuesto a pagar por los cambios que solicita.

Pero mi pensamiento en general es que la industria del desarrollo de sofware debe renovarse. Adaptarse a los nuevos métodos de desarrolo ágil, y eso requiere bastante trabajo tanto por parte de nosotros los desarrolladores como por los clientes.

Pero en muchas ocasiones me doy cuenta de que, incluso en “afamadas” empresas de tecnología, el software es algo difuso que a penas comienza a conocerse.

PanamaJUG

Aug 30, 2007 @ 11:58 am by CaDs

Conversando anoche con mi amigo Stephan me enteré de que en Panamá existe un JUG (Java User Group) que está trabajando en cosas bastante interesantes, como por ejemplo la traducción al español del NetBeans.

Así que me puse a curiosear por su página web y ví que tienen programadas una serie de conferencias en diciembre muy interesantes con gente de Estados Unidos, República Checa, Chile…

Creo que la conferencia será en Herrera, quién se apunta a asistir?

Update:
Más blogs que hablan sobre el PanamaJUG
Webmasters Panamá link
Blog de Chiriquí link

Next Page »