miércoles, febrero 28, 2007

EclEmma, de lo mejor en cuanto a cobertura de código

miércoles, febrero 28, 2007 por Martín

Hacía tiempo que no me encontraba con un plug-in de Eclipse que me haya cautivado más. Se trata de EclEmma, nominado a mejor herramienta de desarrollo Open Source basada en Eclipse del 2007; y sólo puedo decir que realmente... se lo merece. Ha sido instalarla y caer enamorado.

Y es que no requiere ningún esfuerzo por parte del desarrollador. Nada de tener que ejecutar ant, o maven, o tener que abrir ficheros HTML con tus informes de cobertura. Nada. Simplemente ejecuta tus unit tests, y ahí tienes toda la información de cobertura. Y lo mejor de todo es que te colorea temporalmente el código marcándote las partes que han sido cubiertas y las partes que no lo han sido.

Como bien dicen en su página principal: Fast develop/test cycle, Rich coverage analysis, y Non-invasive:. Y encima, la instalación tan cómoda como actualizar desde el update site y reiniciar. Hasta casi estoy pensando que tengo ganas de volver a trabajar para sentir esa sensación de placebo que da el subir en el nivel de cobertura... es broma :D

martes, febrero 27, 2007

Guía para la resolución de problemas en Java 6

martes, febrero 27, 2007 por Martín

Un simple link a la Troubleshooting Guide for Java SE 6 with HotSpot para el afortunado que esté trabajando con ella :)

lunes, febrero 26, 2007

¿Cuándo Scrum no es Scrum?

lunes, febrero 26, 2007 por Martín

Me he permitido traducir al español el título de este artículo de Tobias Mayer que destacan también en InfoQ. En él se critican ocho de los aspectos de Scrum que resultan más engorrosos, proponiendo alternativas que se han demostrado más eficientes durante los últimos años.

El artículo es bastante bueno, aunque no sé si mi opinión es sesgada porque estoy de acuerdo con todos los puntos. El caso es que muchas de las conclusiones ya se pueden leer en el fenomenal artículo de Henrik Kniberg Scrum and XP from the trenches, que es casi de obligada lectura.

Aún así, lo más impactante quizás de este artículo es el párrafo final:
On 30 January 2007 I was fired from the Scrum Alliance for challenging the leadership on issues of integrity and transparency. I no longer teach CSM classes. The official reason for the termination: “…the effort to sustain you has exceeded the benefit you bring to the ScrumAlliance over the last year” is a little unclear to me, but it was my time to move on, so there are no hard feelings there, and it does allow me to begin to explore Scrum and Agile in new ways. If we don’t press for change, as context of place and time dictate, then we are in danger of becoming that which we set out to challenge: another silver bullet with fixed solutions to fit every problem. And the Scrum Alliance is in danger of becoming another command and control organization, shot through with rules and contracts to control the course of this new silver bullet. I reject that approach: I embrace chaos, and I embrace holistic, context-sensitive approaches to creating essential change.

Interesante. ¿Está Scrum (extiendase a otras metodologías ágiles) cayendo en manos del formalismo empresarial? La verdad es que poco se puede especular en base a este despido ya que siempre puede haber razones que desconozcamos. Pero la verdad es que no sería raro que una organización de este estilo se dedicara a hacer dinero, vendiendo cursos y formación y terminase anquilosando la metodología.

En fin, me quedo con las buenas ideas del artículo.

miércoles, febrero 21, 2007

Dentro de MySpace.com

miércoles, febrero 21, 2007 por Martín

Este artículo. en Baseline describe como ha evolucionado la arquitectura de MySpace desde su implementación inicial en Perl, pasando por ColdFusion y terminando en ASP.NET y C#. El artículo se centra sobre todo en la evolución en la topología de la base de datos, y como fueron detectando que arquitecturas que parecían ideales al principio pronto se venían al traste por el tráfico brutal del sitio web.

Interesante lectura para un rato libre.

lunes, febrero 19, 2007

Comet y terracotta de la mano

lunes, febrero 19, 2007 por Martín

Parece que los chicos de jetty han encontrado por fin el filón para hacerle pupa a Tomcat, y están aprovechando al máximo su soporte de Continuations para atraer al mundo de AJAX en torno a su servidor. Tomcat también soporta el mismo concepto, pero por ahora sólo en Tomcat 6 que sigue por ahora en versiones inestables.

El caso es que en los blogs de los chicos de jetty se pueden encontrar artículos muy interesantes sobre todos estos conceptos (continuations, ajax, comet, ...). El último artículo explica las experiencias aplicando clustering con Terracotta a su soporte de comet. Me ha parecido interesante porque mezcla dos conceptos novedosos y expone algunas de las limitaciones de Terracotta. Aquí queda el enlace.

domingo, febrero 18, 2007

Aprovechándote del trabajo de los demás

domingo, febrero 18, 2007 por Martín

Hoy tengo bastante tiempo libre así que he leído un un post del blog Consultoría artesana en la red. Lo de bastante tiempo libre no es al azar, y es que este blog en concreto sufre de hiper-publicación, algo que le pasa a determinados autores que suelen publicar dos o tres post por día, y que parecen tener esto como ley. El blog en sí me parece muy interesante, pero para ser francos, la mayor parte de entradas acaban en la papelera de mi lector RSS sin ni siquiera haberlas leído. Creo que es simplemente una cuestión de tiempo, pero algo más habrá porque si las entradas fueran una o dos cada tres días, seguramente sí que lo leería.

El caso es que gracias a él he llegado a otro artículo en The Times llamado Getting Rich off Those Who Work for Free en el que se analiza un poco el impacto del Open Source y del software que depende de las comunidades para subsistir (wikipedia, digg, youtube,...).

El artículo es interesante, pero en mi opinión mezcla modelos separados. Por una parte tenemos el del Open Source, en el que usa el ejemplo de "IBM haciendo haciendo miles de millones de beneficio dando soporte de Linux", o algo así. Bien, eso es cierto, pero personalmente yo no creo que ninguno de los creadores/voluntarios/contribuidores de Linux haya estado trabajando "for free".

Como muchos sabéis, yo he creado software for free. Pero es que este tipo de software aporta unos beneficios que nunca te los va a aportar si decides escoger el camino comercial. Por poner el caso de Linux, su creador y principales contribuidores han conseguido como mínimo aprender, que ya es muy importante. Pero aparte tenemos la fama, la adopción masiva, la posibilidad de ofertas de trabajo suculentas, la posibilidad de crear sus propias empresas en torno a esa idea, etc. Incluso cualquier otra persona que haya hecho una mínima contribución podrá como mínimo poner eso en su curriculum, y será algo que impresione incluso más que otras cosas más típicas. Por ej. , si tenéis que contratar a alguien, ¿Qué os impresionaría más?, ¿Alguién que ha creado un driver para la tarjeta de video geforge XXX o alguien que tenga un master en J2EE?". El primero lo ha hecho "for free", el segundo ha pagado por ello. Estoy seguro que el valor dependerá en este caso del puesto al que se estén presentando, pero lo que está claro es que lo primero también tiene mucho valor incluso siendo "for free".

Ahora bien, otro caso a parte es el de las comunidades. Uno podía perfectamente ver el potencial de digg, YouTube, la wikipedia, o flicker, antes de que se hicieran famosos. Pero ¿Puede preveerse que finalmente fuesen a tener éxito? Difícil. En este caso YouTube y flickr son un poco diferentes, ya que ofrecen un beneficio al usuario, que es el almacenar y organizar cosas de forma sencilla en Internet; así que de algún modo sí que tenían el camino allanado hacia el éxito. Pero, en otro extremo se sitúan ejemplos como digg o la wikipedia dependen por completo de voluntarios, y que no ofrecen al contribuidor más que puro placer. Y eso sí que ya es más difícilmente explicable si no entramos en el campo la psicología. Nadie va a poner en su currículum "he publicado 43 entradas que han sido diggeadas", pero supongo que debe existir algún tipo de efecto placebo cuando una de tus publicaciones pasan a portada, o cuando uno de tus artículos aparece en la wikipedia.

De todos modos, coincido con el artículo en que el pagar por contenido debería ser la evolución natural. Supongo que ya habrá algún software tipo digg que haga eso, o si no lo hay sería una fenomenal idea de negocio, aunque supongo que es algo que sólo compañías con mucho dinero podrán financiar. Una wikipedia o un digg en los que los contribuidres reciban dinero por clicks/votos no parecen malas ideas por ejemplo (repito no sé si ya existen, igual sí).

En fin, creo que me he salido de mi temática habitual, pero espero que me disculpéis. Creo que me he sentido aludido por eso de "trabajar for free" :)

jueves, febrero 15, 2007

Servidores de aplicaciones y responsabilidades sobre productos

jueves, febrero 15, 2007 por Martín

Durante las últimas semanas en mi trabajo podríamos decir que he aprendido más cosas que en muchos meses. He vivido más de una situación que puedo garantizar que no me esperaba al llegar aquí, unas buenas y otras malas. Supongo que de todas iré hablando, en su debido momento.

Pero ahora mismo escribir un poco sobre la responsabilidad de los fabricantes de servidores de aplicaciones (léase IBM, BEA, Sun, Oracle, jboss,...). En mi compañía durante los últimos meses hemos localizado más de 10 memory leaks en el servidor de aplicaciones que utilizamos.

El proceso siempre ha sido el mismo, se localiza un memory leak, se busca durante un par de semanas la causa, no se encuentra nada y al final se deduce que es un fallo del servidor. Llamas al proveedor, te lo solucionan o te mandan algún experto, estos expertos están por ahí analizando todo, y al final nos dan un parche. Hemos llegado a alguna situación en la que teníamos gente parcheando en tiempo real el código de ese servidor de aplicaciones en concreto. Ahí, delante de nosotros, el código fuente del todopoderoso.

Pero dejando a un lado estas anéctodas, no deja de ser frustrante el pasarte semanas buscando errores en tu código hasta descubrir que es un fallo en el servidor en el que has confiado, que resulta que no era tan bueno como parecía. Inviertes enormes cantidades de recursos en depurar y perfilar errores que al final al que ayudan es al fabricante del servidor de aplicaciones porque a la hora de la verdad el cliente tendrá la percepción de que los problemas están en las aplicaciones y no en el servidor. Y a todo esto hay que añadirle que cuando te mandan expertos y consiguen un parche, encima has tenido que pagar por ello, faltaría más. Negocio redondo: invierto mi tiempo buscando tu error y te pago para que lo arregles.

Lo malo es que esto tiene consecuencias fatales para las compañías. Retrasos de meses en las aplicaciones, sensación de fragilidad en dichas soluciones, sensación hacia el exterior de imposibilidad de lanzar productos, desconfianza y posible perdida de contratos, etc. ¿Cómo debe actuar el proveedor de aplicaciones en estos casos?

Lo único que se me ocurre es:
  • Solución 1: Nosotros somos malisimos. Que levante la mano y asuma su responsabilidad ante los clientes. Que visiten clientes y expliquen lo sucedido, o lo publiquen de alguna manera.
  • Solución 2: Ellos son buenísimos. Que publicite y refuerze las líneas de marketing de la empresa fortaleciendo su posición y la de un producto que ha podido quedar dañado de cara al público final.


El que tenga más ideas que levante la mano :)

Le pedimos perdón por haberle cobrado de más

jueves, febrero 15, 2007 por Martín

Lo que me ha pasado hoy es increible y voy a romper la norma de no hablar de temas personales (salvo cuando pongo fotos de Irlanda), y es que es muchísimo más increible que Java 10, la super nueva metodología hiperágil o el nuevo diamond on rails. Resulta que hoy llego a casa y me encuentro una carta que pone lo siguiente:

"Dear Mr Perez, (que importante me siento con esto de Mr)

While carrying out an audit of your NTL account it has come to our attention that as a customer who availed of the broadband offer with twelve month free basic tv during 2006, you have not received the correct discount for the basic tv pack element of the offer in your bill since 28th November 2006.

We are commited to providing excellent customer service to all of our customers and I would like to take this opportunity to apologise for any inconvenience this may have caused and assure you that your custom is very important to us."


WOW. Y lo más increible de todo es que yo no les he dicho nada. ¡Lo han hecho por su propia iniciativa! ¡Me han pedido perdón sin que yo haya tenido que llamarlos, enviarles una reclamación o poner una queja en consumo!

Al final va a ser verdad que aquí las compañías son más honestas.

domingo, febrero 11, 2007

Phoenix Park y hielo en Stephen's Green

domingo, febrero 11, 2007 por Martín

Ahí va otra sobre Irlanda que parece que hay a quien le gustan estas entradas :-)

El pasado Domingo nos acercamos al Phoenix Park a dar un paseillo. Llegamos tarde y la verdad es que hacía bastante frío. Si leéis la entrada de la wikipedia podréis ver que es realmente grande. 16 kilómetros de circunferencia nada más y nada menos. Es un sitio muy bueno para dar un paseo, ir al zoo, ver la cruz papal o el monumento a Wellington o acercarse al castillo de Ashtown, y en definitiva pasar una tarde entretenida.

He sacado algunas fotos que dejo por aquí. Cada vez estoy más convencido de que tengo que cambiar de cámara. Esta está ya muy vieja y, cuando empieza a anochecer como era el caso, empieza a hacer aguas por todas partes.


Pasando a otro tema, esta semana ha hecho mucho frío por Dublin, de hecho hasta ha nevado. Para alguien que viene de Coruña es una nueva sensación el salir a comprar un bocadillo y volver a la oficina lleno de nieve. Lo malo es que cuando llevé la cámara para sacar fotos, no nevó :( Como mal menor, aquí hay una foto de uno de los lagos dentro St. Stephen's Green helado.

La verdad es que este parque es una maravilla, y sienta fenomenal atravesarlo antes de ir a trabajar, aunque haga mucho frío :)



Y por cierto, si os gusta el parque no os perdáis este post de Rafa sobre el.

Eclipse RCP, productividad y suites de creación de clientes ricos

domingo, febrero 11, 2007 por Martín

Aprovechando que ha salido la quinta milestone de Eclipse he pensado que sería interesante escribir algo, de nuevo, sobre clientes ricos, aunque va para un año que estoy algo desvinculado de este mundo. El caso es que leyendo la lista de novedades he podido recordar lo bien que sentaba cuando tenías tu aplicación Eclipse RCP y de pronto te encontrabas con un montón de mejoras que lavaban su cara sin que tuvieses que hacer nada.

Si ahora mismo alguien me hace la siguiente pregunta: "Tengo que hacer una aplicación de escritorio en Java para un cliente. ¿Qué debería utilizar, Swing, SWT, NetBeans RCP, Eclipse RCP, ...? Mi respuesta sería clara, mira NetBeans RCP o Eclipse RCP. En mi caso, yo siempre he trabajado con Eclipse RCP, pero incluyo también NetBeans porque no creo que la elección radique en SWT/Swing. Por cierto, eso podría ser otro tema, ya que hace mucho que no se oye el ruido de las hordas de ambos bandos tirándose piedras los unos a los otros, supongo parece ser que la gente se ha dado cuenta que pasan los años y desarrollar en SWT no ha matado a nadie ni se han ido al infierno de los desarrolladores de GUIs por no seguir el estándar.

En fin, el caso que sobre todo para pequeños equipos donde no tienes tiempo para hacer todo a mano, el utilizar frameworks como Eclipse RCP es simplemente impagable. Por ejemplo, supongamos que uno comienza su aplicación RCP hace dos meses. Resulta que la semana pasada con Eclipse RCP 3.3M5 esa aplicación automáticamente obtiene:

- Un lavado de cara a sus formularios (Gradient form headers,Form title icons,New section title bar design and colors,Section header tool items using standard size icons,Form header help icons)
- Validación de campos con bonitos iconos
- Inclusión de JREs automáticamente al crear un producto
- Nuevo lanzador basado en OSGi
- Pantallas de splash que pueden llevar componentes propios
- Efectos especiales e iconos en las operaciones de arrastrar y soltar
- Widgets nativos para los campos de búsqueda
- Firefox como navegador web
- Soporte de WPF en Windows Vista
- Mejoras en el soporte de impresión para las páginas de ayuda
- Drag and drop en editores
- ....
- ...
- ..
- .

¿Cuánto costaría añadir todo esto a una aplicación que no utilice una plataforma de clientes ricos? Meses. Esto viene gratis, es open source, y lo mantienen otros. Eso debe ser lo que llaman productividad :-)

jueves, febrero 08, 2007

Tres cosas que echo en falta en WebLogic respecto a WebSphere

jueves, febrero 08, 2007 por Martín

A veces, por mucho que un producto vaya muy rápido, la letra pequeña siempre te hace echar de menos cosas de la competencia. Llevo ya un rato desarrollando en WebLogic y por ahora echo en falta al menos tres cosas que se me hacen muy importantes:

* Un registro de URLs a nivel de cluster. Imposible en weblogic. No hay. Puedes asociar URLs pero sólo a nivel de aplicación EAR. ¿Utilidad? Permitir que el cliente cambie una URL sin tener que modificar y redesplegar la aplicación.

* Librerías compartidas a nivel de servidor. En WebLogic existe el concepto de librería, pero tan sólo altera el empaquetado de las aplicaciones. Es decir, que cuando se instancia un EAR se copian las librerías al contexto del EAR y se cargan dentro de su classloader. En WebSphere tu puedes escoger si quieres una librería compartida a nivel de aplicación o a nivel de servidor. ¿Utilidad? Utilizar una librería a nivel de servidor te permite compartir clases entre aplicaciones, disminuye el tamaño de la memoria dedicada a clases (importante cuando hablamos de cientos de megas), y elimina costes de serialización cuando varias aplicaciones se comunican en el mismo servidor.

* Posibilidad de extender los classloaders del servidor de aplicaciones. Ok, valga que en WebSphere tampoco es trivial, pero al menos se puede. ¿Utilidad? Monitorización, introspección, weaving,...

En fin, si me equivoco que alguien me lo diga.

domingo, febrero 04, 2007

Treintañero

domingo, febrero 04, 2007 por Martín

Que se le va a hacer, tenía que llegar. Hoy supero la barrera psicológica de los 30. Para celebrarlo nos dimos un pequeño festín que incluian unos fenomenales Tiger Prawns echos a la gallega, por supuesto :-) Eran tan bonitos que les he hecho una foto (tengo que cambiar de cámara urgentemente):

De segundo pazo a la naranja y de postre brownie, ambos del Marks and Spencer, todo regado con un ribeiro Pazo do Mar. ¡Qué rico estaba todo!

Por cierto, en Howth, que no lo escribí el otro día, se puede encontrar marisco y pescado bueno, fresco, y barato. Por ejemplo, un kilo de mejillones me salieron por 2.20€ !! , y los langostinos que veis arriba, 1 kilo también, por 15€, también frescos. El kilo de almejas estaba a 6€ y también había pulpo fresco!!

En fin, de visita obligada.

Como hacer rápidamente pruebas unitarias y de integración con Jackrabbit

domingo, febrero 04, 2007 por Martín

Bueno, uno de mis propósitos de año nuevo, o más bien de Enero, es volver a darle un empujón a mi blog en inglés. Así que iré poniendo aquí las entradas que pongo en el otro. Si alguién realmente necesita alguna traducción sólo tiene que pedirla.

Y es que yo tengo serios problemas con lo de bloggear en inglés o en español. Cuando estaba en España, era como si tuviese la necesidad de bloggear en inglés, y ahora me pasa exactamente lo contrario. Pero lo cierto es que me encuentro con que bloggear también en inglés es muy importante en estos momentos porque de algún modo te sirve como carta de presentación para hacer contactos, entrar en comunidades, etc. Pero por otra parte, no puedo escribir nada sobre mi trabajo, ya que sería problemático. Bueno, en fin, un lio.

Aquí queda la susodicha entrada sobre Jackrabbit e unit testing:
Como hacer rápidamente pruebas unitarias y de integración con Jackrabbit

sábado, febrero 03, 2007

Tests en el water

sábado, febrero 03, 2007 por Martín

En el trabajo en el que estoy en este momento te das realmente cuenta de lo difícil que es inculcar una cultura de tests dentro de proyectos grandes. Estás constantemente explicando que hacer tests es bueno, preparas herramientas para hacer tests de integración de componentes y de integración global de manera sencilla, rellenas wikis, confluences, y herramientas diversas con información, fuerzas que los tests rompan la build, o instals herramientas de cobertura. No importa. Siempre hay gente que no hace código y partes de los programas que fallan a última hora y que descubres que no tienen tests.

Y es que acostumbrarse a la cultura de pruebas es complicado. De hecho yo soy el primero en haberme hecho el vago en el pasado :) Y parece que las compañías grandes como Google no se libran de los problemas, por mucho que sus acciones suban en bolsa. Hoy he descubierto que han hecho publico algo llamado Test on the Toilet, que consiste en una serie de hojas con consejos sobre la importancia de realizar tess, como afrontarlos, como conseguir una buena covertura, etc. Las hojas se colocan en el water de modo que todo el mundo las pueda leer en lugar de tener que llevarse el periódico para leer los deportes. Aquí una prueba.

Una idea simpática y revolucionaria. No sé por qué pero me da la impresión de que puede ser muy efectiva.

Applets, más vivos que nunca

sábado, febrero 03, 2007 por Martín

Leo en ComputerWorld que ThinkFree Office Online ha sido elegida como la mejor suite de oficina online del momento, derrotando a la todopoderosa google docs. Como puede ser esto, ¡pero si es un applet!, ¡pero si Java estaba muerto en el cliente!, ¡pero si ahora todo era Web 2.0 y AJAX! Ay, que estoy perdido.

Bueno, ahora en serio, esto no deja de ser un ejemplo más de que los productos triunfan por su usabilidad, y no por los tags que lleven asociados. No cabe duda que tener un gran marketing puede ayudar (apple, microsoft, ...), y hay infinitos ejemplos de productos peores que se venden mucho más que otros (iPod, Windows,...), pero eso no implica que todos los productos que sigan el mismo ejemplo vayan a triunfar, o lo que es más importante, ni que todos los productos que no lo sigan no vayan a tener sus momentos de gloria.

Y partiendo de estas premisas, lo cierto es que hay muchas empresas que no han abandonado los applets y apuestan por ellos. Cuando llegué a mi empresa, y descubrí que nuestro producto estrella (decenas de millones de euros invertidos por uno de los bancos más importantes del mundo) era un applet, me entraron escalofríos. Ignorante de mi. El aspecto visual es fenomenal, el rendimiento es espectacular, y desde luego cumple absolutamente todo lo que se puede esperar de una herramienta de margin trading en tiempo real. Sería absurdo aventurarse a hacerlo con AJAX, ya que el rendimiento sería ridiculo en comparación.

Así que como prueba de esto, aunque supongo que la mayoría de las personas que leen este blog lo saben, pero en JavaPosse publican con cada podcast uno o varios Applet of the week, que no dejan de demostrar una vez más que los applets están más vivos que nunca.