Primer día del Agile Open Spain 2010

Ya han publicado sus resúmenes/impresiones del Agile Open Spain 2010 gente como: Joaquin Engelmo(conocido popularmente como kinisoftware :)), Laura Morillo, Yeray Darias(capítulo 2 y capítulo 3), Jesús Jiménez, Roberto Canales, Juanjo Falcón... Pero como cada uno hemos vivido el nuestro, pues yo también daré la chapa ;)

Era la primera vez que iba a un evento de Agile Spain o con formato Open Space, por lo que era una experiencia nueva para mi por ambas partes. Aunque tengo que decir que iba ya sabiendo que me iba a encontrar a muchos conocidos, gente con la que hace tiempo mantenía relación pero no conocía en carne y hueso, por eso sabía que iba a pasármelo bien en el AOS :)

Llegué en tren a Barcelona el viernes a mediodía, nada más llegar había quedado con Jordi, y esperamos a Jose y Javi de Frogtek que llegaban un poco más tarde para comer. Muy interesante la comida, hablando un poco de todo, después nos fuimos a dejar las maletas y se nos unió Pedro, compañero de Jose y Javi y llegamos a La Salle justo para el arranque del Agile Open.

Llegada al AOS

Nada más llegar, al recoger la acreditación me llevé la primera "desvirtualización", resulta que Amalia Hernández reconoció mi careto nada más verme :). Y luego, tan sólo entrar a la sala de congresos viendo donde podíamos sentarnos, enseguida vimos a Álvaro Sánchez-Mariscal, Aitor Alzola y Fátima Casaú; y nos sentamos junto a ellos.

Para romper el hielo, la organización nos hizo empezar con un juego de tribus, primero teníamos que encontrar a toda la gente del mismo lugar de procedencia, cuando me iba acercando a mi tribu aragonesa después de ver donde andaban, me encontré a la canaria(bautizados por David Bonilla como Comando Muyayo :D) con Yeray Darias, Juanma Barroso, Juanjo Coello y Fran Reyes que son parte del núcleo duro del movimiento Agile en Tenerife, aparte de ser gente cojonuda! ;).

En la tribu aragonesa estábamos la gente de Frogtek, Luis de Neodoo(al que conocí allí), Teresa Oliver y un par de personas más cuyos nombres ahora mismo no recuerdo(Pablo Jimeno todavía no había llegado).

Después formamos tribus por aficiones: fotografía, montaña... hasta que Juanma dijo cerveza, y sí, por supuesto que fue la tribu más grande!! XD. Y por último por roles... A todo esto, el juego también me sirvió para conocer en persona a gente como Jorge Jiménez(más conocido como semurat :)), Carlos Rico, (una de las personas tras Observatorio de Grails), Jesús Jiménez... y a otra gente que me puedo olvidar(perdón), o bien no tengo controlada aún por los twitters, blogs y demás gaitas.

Formando tribus

Otra cosa que hicimos fue ponernos a lo largo de la sala para ver dónde creíamos estar en cuanto a conocimiento de agilismo, en una punta "no tengo ni idea de que va esto del agile" y en la otra los "Mike Cohn"... Yo me quedé de la mitad hacia atrás, realmente creo que tendría que haberme quedado mucho más atrás pero hubo quién me paró los pies :P, la verdad que yo no sé si soy ágil(y tampoco estoy 100% seguro de qué significa eso :D), simplemente hay cosas de las metodologías ágiles que considero buenas prácticas para crear productos de software y las procuro seguir de algún modo dentro de mi contexto actual.

Posteriormente se pasó a la presentación de propuestas de sesiones, que era a lo que íbamos. Cada persona podía proponer lo que quisiera, tenía unos segundos para explicar de que iba el tema pero sin alargarse demasiado, así podíamos hacernos una idea de que iba. Finalmente creo que se propusieron más de 60 sesiones que luego entre todos estuvimos puntuando(las más puntuadas iban a las salas más grandes), creo que fue durante ese rato en el que kinisoftware me reconoció y me saludó(al parecer me parezco a mi foto en el twitter, que cosas! :P) y vi a Alejandro Scandroli, con el que no coincidía desde un evento de javaHispano hace 2 o 3 años.

Y a todo esto, tras las puntuaciones y distribución del horario, el tablón terminó quedando tal como se ve en la foto :).

Tablón Agile Open 2010

Ya entre la parte final del evento y el post-evento(lo que ha terminado llamándose Agilidad nocturna :D), por fin saludé a José Manuel Beas(que me preguntó no se qué de garitos XD), a Israel Alcázar, llegaron por fin David Bonilla y Jerónimo López, conocí a Enrique Amodeo o Roberto Canales entre otros(disculpad no me acuerdo de todos). Ah! y el gran Alberto Vilches apareció directo desde Madrid justo cuando habíamos acabado de cenar.

Después una vuelta corta por la noche barcelonina ;) y me volví a casa de los amigos en la que me hospedaba.

PD: Aprovecho el post para avisar que hoy miércoles 17, tenemos reunión de Agile-Aragón en la sede de la asociación Hispalinux en Zaragoza(gracias! ;)), que nos cede el local.

Comienza el Agile Open Spain 2010

Hoy viernes 12 de Noviembre, comienza en Barcelona el Agile Open Spain 2010. Donde parece que voy a tener oportunidad de volverme a encontrar con mucha gente conocida; conocer en persona a gente con la que tengo relación vía twitter, por diferentes listas de correo, etc; y seguro que conocer otra mucha gente interesante todavía desconocida para mi.

Agile Open Spain 2010

Es la primera vez que voy a un evento con formato Open Space, la temática Agile me resulta muy interesante(así como otras centradas en tratar de mejorar cosas en el desarrollo de software) y es el evento donde más calentamiento del personal he percibido de los que he asistido hasta ahora. En fin, que tengo ganas de ver que nos encontramos en el evento y en el tan caldeado post-evento :D

Por cierto, que los amigos de Masterbranch me han dado un puñado de pegatinas de su mascota (yo diría que inspirada en Ultraman :P) para repartirlas entre otros asistente. Si alguien quiere la suya, se la voy reservando :)

El Ultraman de Masterbranch

NO a la ley Sinde


Rellena el siguiente formulario

Rellenando el siguiente formulario puedes enviar un mensaje a los diputados/as del congreso español en relación a la aprobación de la Ley Sinde. Escríbeles lo que consideres oportuno pero sé respetuoso, solo de esta manera nuestras peticiones serán escuchadas.

Nombre:
E-mail:
Asunto:
Mensaje:
Más información: Activando esto expresas que deseas recibir información sobre futuras acciones.

Política de Privacidad

xMailer copyleft Isaac Hacksimov 2009-2010, licencia GPLv3, powered by Hacktivistas.net

Instalar gemas en Dreamhost

Estoy haciendo unas pequeñas pruebas con Sinatra para un pequeño proyecto personal. El caso es que al ir a instalar la gema de sinatra(y un par más que estoy usando) en dreamhost, me surgió el error de no tener permisos de escritura.

$ gem install sinatra
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions into the /usr/lib/ruby/gems/1.8 directory.

La solución es simplemente añadir unos exports al .bash_profile


export GEM_HOME="$HOME/.gems"
export GEM_PATH="$GEM_HOME:/usr/lib/ruby/gems/1.8"
export PATH="$HOME/.gems/bin:$PATH"

Y tras ejecutar source .bash_profile para que coja los cambios, ya podemos instalar nuevas gemas.

Sobre el modelo anémico y la POO

Ayer, unas horas después de leer el post de @kinisoftware, Modelos de dominio anémicos, POJOs y demás seres del lugar, me encontré una discusión en twitter a varias bandas(sitio que no es ni mucho menos el mejor para debates así... sigo echando de menos las conversaciones/discusiones que teníamos entre una micro-comunidad en jaiku, pero ese es otro tema) sobre el anti-patrón del modelo anémico.

Hablando del tema vi tuits de @kinisoftware, @albertovilches, @jmbeas, @genezeta, @jneira, @jlhuertas... y fijo que me pierdo a algunos más de gente que no sigo. Como es habitual, yo no me mojé demasiado :P. Por un lado soy un chaquetero, y por otro esta gente sabe mucho y me pueden dejar a la altura del betún en cualquier momento :D

Por resumir un poco esto del modelo anémico, viene a ser que el modelo está implementado con DTOs, cuya única responsabilidad es encapsular datos para transferirlos a otra parte(ej: de una base de datos a la vista de una app). Cosa que creo aún es bastante habitual en muchas aplicaciones que utilizan ORMs o similares(llámense Hibernate, ActiveRecord, GORM, Doctrine, MyBatis... o soluciones home-made)... Pues resulta que eso es un anti-patrón, más que nada porque por hacer eso probablemente estemos rompiendo el paradigma de programación orientada a objetos.

Recuerdo cuando me enseñaban POO(con Java) que una clase Rectangulo tenía un atributo base y otro altura con sus getters y setters y un método calculaArea() que devolvía su área(vale, y probablemente extendería de Poligono :P). Vamos, que se supone que un objeto combina estado y comportamiento, por eso veo por ejemplo hablando una clase de dominio Noticia que tiene un atributo propietario puede tener un método del estilo:

public boolean esPropiedadDe(Usuario usuario){
   return propietario.equals(usuario)
}

La cosa es que en los frameworks MVC ese tipo de lógica la he visto(y sí, también la he puesto! XD) en la capa del controlador, cuando se supone que es una capa que debe ser lo más tonta posible en cuanto a lógica de negocio (o ya puestos, tonta del todo :D, skinny controller-fat model), y con la moda de las capas de servicio con los Spring & co(Grails como una de esas víctimas colaterales) ha resultado que esa lógica se pone en la capa de servicio para evitar ponerla en el controlador y seguir dejando a las clases de dominio como DTOs(o modelos anémicos).

¿Eso quiere decir que siempre pongo la lógica en las clases de dominio?
No, pero procuro hacerlo siempre que puedo identificar responsabilidades en una clase del dominio. Aún así, en ocasiones me encuentro con lógica que pasa a alguna clase en la capa de servicio, principalmente porque no consigo identificar qué clase debería ser la responsable, afecte a varias clases de dominio o simplemente sean comportamientos que no tienen que ver con la lógica de negocio pura y dura. Por supuesto teniendo en cuenta que esas decisiones sean cosa mía :D

De todas formas, ya se sabe que en esto del desarrollo de software todo depende de muchos factores(principalmente de los gustos y costumbres de los desarrolladores) y nadie tiene LA respuesta. Eso es lo que hace más interesante el mundillo, ¿o no? :D

sort()
Viñeta de Geek And Poke, como no ;)

PD: Disculpad que os tengáis que imaginar parte del código y el spanglish rarillo en los ejemplos, el código de verdad hace tiempo que procuro escribirlo siempre en inglés :P