flozano.com: Haz commit, maldito!
Desarrollo de software y otras pérdidas de tiempo
Desarrollo de software y otras pérdidas de tiempo
Sep 24
¿Cómo se te ocurre dejarme escribir en tu blog…? Tú te lo has buscado.
Lo que parece que se va a llevar ahora, tras la era de la justificación de la monetization de cualquier proyecto con presencia web mediante funcionalidades asociadas a las redes sociales es nada menos que el CROWDSOURCING. Jeff Howe, editor de Wired ha publicado en Julio de 2008 “Crowdsourcing. Why the power of the crowd is driving the future of business “. Mas información en su blog.
Mientras espero que me llegue el libro, sobre el que no puedo opinar todavía, he podido ver los fantásticos vídeos que Jeff Howe y Wired han hecho para promocionar el libro, a su autor y sus conceptos. No te los pierdas; muuuuyyyy profesional. Resumiendo: Jeff se dedica a convencerte de que los ejemplos de las comunidades virtuales como iStock y otros servicios como etsy – venta de cosas hechas a mano- demuestran que el poder está en la masa apasionada y entregada a sus hobbies, capaz de transformar una actividad laboral más o menos estándar en un negocio bastante respetable a partir de una “llamada abierta” e “indefinida” a la comunidad de enganchados al tema. El outsourcing a la crowd, vamos. Jeff ya se dedica a recorrer el mundo firmando ejemplares y dando conferencias.
¿Será éste el próximo palabro que los business consultants adoptarán e incluirán en sus ppts para que llenemos nuestros proyectos de iniciativas de crowdsourcing? Pues parece que tiene bastantes números, después de la web 2.0 y las entelequias acerca del valor de las social networks, aunque esto suene a comunidades virtuales de las de toda la vida, pero de las que funcionan y reparten $$$.
Es un gran palabro, sin duda. Jeff va a dar muuuuuchaaaas conferencias.
Propongo una cosa: Anotemos el tiempo transcurrido desde hoy hasta que nos encontremos el palabro en una presentación. ¿Cuánto crees que tardará?
Sep 21
Cuando un post en theserverside.com obtiene más de 100 comentarios, quiere decir que algo pasa. O se han enganchado los de JBoss a discutir con los de Spring, o la comunidad se ha puesto a rajar viva al visionario de Tapestry, o cosas así. Todos estos asuntos no suelen acabar teniendo la mayor trascendencia, pero éste último sí que la puede tener, en mi opinión:
http://www.theserverside.com/news/thread.tss?thread_id=50727
Esta vez es algo que nos afecta a muchos de los que apostamos en su momento por una estrategia de desarrollo más sensata, sencilla, fácil, testable e integrada, y nos decidimos a usar Spring.
Para quién no lo conozca, Spring es un framework con cuatro áreas funcionales bien separadas en mi opinión:
Spring es modular y uno puede elegir si usa uno u otro módulo sin problemas… lo que ocurre es que cuando uno decide usar uno, es más fácil que se acabe usando otro y otro… haciendo de Spring al final una pieza fundamental en la aplicación.
Lo que ha ocurrido para revolucinar tanto a la comunidad de desarrolladores y arquitectos es que la empresa propietaria de SpringSource (antes interface21) ha publicado una nueva política de liberación de versiones, que restringe a los usuarios sin contratos de mantenimiento el acceso a los parches incrementales de las versiones no “current” a únicamente tres meses.
Es decir,pongamos que yo uso Spring 2.0.2 en una aplicación que lleva N meses en producción, y la versión actual es Spring 2.5(.1), desde hace más de tres meses. En esto, me aparece un “bug” en la aplicación debido a un fallo en Spring 2.0.2. Me dispongo a arreglarlo, pero al no tener contrato de mantenimiento no tengo acceso a la versión corregida 2.0.3, sino que tendría que actualizarme a Spring 2.5.2. Obviamente, si tengo esta aplicación en producción, me hará muy poca gracia cambiar de versión “major” del framework sobre el que he desarrollado mi aplicación.
Los “mantenimientos” tienen sentido en algunas cosas… pero en el framework de inversión de control de tu aplicación? es rizar el rizo… y qué hay de las aplicaciones que usan spring y tienen su propio modelo de licencias? ahora debes incluir también a spring en el stack a licenciar y mantener por el cliente (oracle + sistema operativo + cluster + servidor de aplicaciones + mi aplicación + el framework de inversión de control) ? No se si es muy lógico…
Imagino que interface21 está intentando “capitalizar” la ubiquidad de su framework y rentabilizar la inversión (enorme) que ha hecho en él, pero no sé si es la mejor manera. Ahora, muchos de los que usabamos Spring extensivamente, y que lo hemos hecho tan popular, vamos a pensarnoslo muy mucho antes de volver a elegir la pastilla roja y volver creer en una empresa que hasta ahora había sido un bálsamo para la comunidad de desarrolladores Java. Spring seguirá teniendo una calidad técnica excelente y una cantidad enorme de seguidores, pero esto va a allanar el camino a otros frameworks, como los EJB 3.X estándar, Seam, o Guice.
Yo voy a ser conservador, y si tengo que acometer nuevos desarrollos en Java seguiré confiando en Spring, pero lo haré como se debe hacer: sin casarme con él, utilizando sus funcionalidades transversales y “de contenedor”, pero sin permitir que contamine mi código; o si lo permito, me preocuparé de encapsularlo bien y acotarlo defensivamente para que aparezcan “imports” de org.springframework sólo en sitios concretos.
Lo hare así porque las alternativas no están al nivel adecuado, en mi opinión. Con EJB 3 tienes mucho pero no “todo”… EJB 3.1, cuando venga, será una gran mejora e igual sí permite plantearse confiar únicamente en estándares (ya veremos)… Seam aporta mucho (los scopes conversacionales son una gran idea) pero no me convence del todo su modelo, y además, al usarlo, uno se casa con él más que con Spring… y por último Google Guice es demasiado sencillo, no tiene todo lo que uno necesita, “contaminas” el código con montones de imports para las anotaciones y además tiene carencias importantes en el modelo de componentes basado en clases en vez de en objetos con “id” o “nombre”.
En fin, veremos como se suceden los acontecimientos
Ago 9
Aixó mateix!
Esta semana he decidido retomar mi blog.
No vale la pena adentrarse en los motivos del parón, dado que esto no lo lee nadie y por tanto sería perder el tiempo; tan sólo diré que hay que saber poner límites al trabajo y no dejar que se “coma” el espacio personal no-profesional que todos deberíamos tener.
El caso es que vuelvo, en breve empezaré a escribir de nuevo sobre las frikadas y rayadas que se me ocurran. Podría empezar por ejemplo pelando de nuevo a Velneo, pero todavía no ha salido la V7 esa famosa, así que no hay mucho nuevo que decir… tan sólo que tengo sinceros e inocentes deseos de probar su nuevo engendro.
También podría empezar a hablar contando mi opinión acerca de las empresas cárnicas-serrano-bodyshopping, con las que tanta relación he tenido en los últimos meses, pero me canso solo de pensar en mi ex-trabajo… si, ex-trabajo! Hace 2 jueves acabé en mi trabajo de los últimos 4 años… y estoy más agusto que un arbusto!
Pues eso, que ya veré de qué hablo
Oct 22
Si alguna vez necesitas importar/exportar archivos en .NET, un tío muy majo llamado Marco y sus amigos te hacen la vida mas fácil con una librería llamada FileHelpers (http://www.filehelpers.com).
Esta librería permite importar y exportar registros, que se definen como clases .NET (VB.NET o C#) con anotaciones. Importa/exporta a ficheros de texto delimitados por comas, por tabulaciones, ficheros excel, bases de datos SQL Server, OleDB genéricas, Access…
Es una gozada. La importación/exportación Excel requiere tener instalado el Excel en el servidor, pero la próxima versión no tendrá esta necesidad, lo que hará todavía mas útil este pedazo de software.
Sólo le veo una pega de diseño… no te permite definir “mapeos” complejos, con lo que las clases que definas deberías usarlas solamente como DTOs entre la capa de importación/exportación y el resto de tus capas (bueno, sólo si eres un quisquilloso de las arquitecturas de software como lo soy yo).
Por lo demás, un gran trabajo. Lo usamos a base de bien en uno de nuestros proyectos, y seguro que más adelante seguimos usándolo… se ha convertido en una herramienta básica para mi y para mi equipo.
Ah, es gratis y de código abierto