Hablemos de open source

Pero el de verdad, no este open source adulterado al que nos vienen acostumbrando muchas empresas últimamente. El open source de verdad tiene un origen que me merece mi máxima admiración: las ganas de aprender y de desarrollar. Este open source está lleno de desarrolladores anónimos que después de su trabajo (normalmente aburrido) o después de las clases (siempre aburridas) se ponen a escribir código sobre cosas que jamás podrían aplicar en su trabajo. Son auténticos tiburones (cuidado, no los malos sino los de mi post anterior), los grandes amantes de esta profesión.

Asociar estos desarrolladores con empresas, tecnologías y lo que me resulta más hiriente, creencias políticas me parece un insulto para ellos y una falta de respeto por su trabajo. Son muchas las empresas que se aprovechan del trabajo de estos anónimos desarrolladores. Algunas sólo para apuntarse un tanto y quedar bien delante de la institución de turno, llenándose la boca de palabras bonitas. Otras para directamente aprovechar estos desarrollos y sacar un buen pellizco de margen de paso.

Lo de asociarlo a una creencia política ya me parece de chiste. Si alguien piensa que detrás de un desarrollador de open source están sus creencias y su voluntad de que la humanidad no tenga fronteras y frases vacías por el estilo es que nunca ha conocido a uno de estos desarrolladores. Lo que les motiva para desarrollar es el puro placer de hacerlo. ¿Quién no se lo ha pasado chicha alguna vez escribiendo un buen algoritmo, una aplicación gráfica o un jueguecillo? ¿Quién no ha sido desarrollador de open source alguna vez en su vida? Yo tengo decenas de aplicaciones en mi portátil que he escrito por darme el gusto de hacerlo, por saber si se podía hacer, por ponerme un reto o simplemente por aprender mientras las hacía.

Y todo este post viene de que el gran tiburón Luis Molina acaba de publicar en CodePlex un framework de desarrollo open source:

http://www.codeplex.com/Wiki/View.aspx?ProjectName=uleule

Este proyecto no es mérito ni de Microsoft, ni de.NET, ni de las ideas políticas. Este proyecto es fruto de nuestro gran oso de la casa azul, por si eres nuevo en el blog te lo recuerdo: la pasión por la tecnología.

Gracias, Luis.

¿Eres rape o tiburón?

El otro día veía un apasionante nuevo capítulo de los Lunnis con mi peque y de repente vi la luz. Allí estaba Lupita explicando cómo vivían los tiburones y me recordó muchísimo a la vida de un desarrollador. No penséis mal, no es porque devoremos a nadie ni porque seamos temibles… El tiburón tiene que estar continuamente en movimiento o moriría ahogado por no entrar agua en sus branquias. Ésa es nuestra vida, no podemos relajarnos ni un momento. Una temporadita fuera del mundillo y te encuentras a la vuelta desactualizado y pensando «con lo fácil que era XX /YY / ZZ…». A partir de ese momento eres oficialmente un rape. Los rapes se ocultan en el fondo, pasan desapercibidos y no se mueven un pelo.

La siguiente pregunta es obligada, ¿el rape nace o se hace? Sinceramente creo que todos los desarrolladores son tiburones y el mundo de la empresa nos convierte en rapes. La mayoría de los que nos dedicamos a esto nos gusta lo que hacemos y disfrutamos aprendiendo algo nuevo. No se me ocurre ninguna profesión donde el propio trabajador empuje a la empresa a usar nuevas tecnologías, a aprender cosas nuevas y a apostar por la calidad. Sin embargo, y también es mala suerte, las reglas del juego son distintas a otros gremios y los márgenes bajos, las prisas y en muchos casos el desconocimiento nos obliga a convertirnos en auténticos rapes, haciendo software en tecnologías obsoletas, menos productivas y de menor calidad que las actuales.

La buena noticia es que el tiburón que llevamos dentro está siempre listo para salir. Leyendo el comentario de Unai en el post del oso azul me he acordado de su caso. Unai era un rape en potencia pero el tiburón que llevaba dentro le ha llevado a convertirse en MVP de Compact Framework y uno de los referentes en España en desarrollo .NET. Y eso viniendo de alguien que trabajaba en una pequeña empresa de software y que invertía su tiempo libre en aprender lo que no necesitaba para su trabajo.

¿Cuántos tiburones habrá en España esperando a salir? Si piensas que tu vida de rape tiene que acabar sólo te recomiendo una cosa: únete a los tiburones!! Los grupos de usuarios INETA son un ejemplo para conocer a más como tú. Ya son 10 y creciendo en España, puedes consultarlos aquí. Si no tienes ninguno en tu ciudad te animo a embarcarte en crear uno nuevo, el resto de grupos estará encantado de ayudarte (doy fe, son una pasada). Si los grupos de usuarios no son lo tuyo ponte en contacto directamente con algún tiburón. Los MVPs son un buen ejemplo de tiburones, envíale un email a uno de ellos y cuéntale lo que estés haciendo y lo que te interesa. Geeks.ms o clearscreen.com está lleno también de tiburones, únete a ellos. Y por supuesto cuenta con nosotros. Apúntate a algún evento «alternativo» de Microsoft o de los grupos de usuarios, como los CodeCamps que organizamos en fin de semana o las noches de pizza y cerveza de MAD.NUG. No garantizamos que salgas hecho un tiburón, pero por lo menos podrás pasar un buen rato haciendo lo que más nos gusta… comernos a los surfistas!

¿Eres rape o tiburón?

El otro día veía un apasionante nuevo capítulo de los Lunnis con mi peque y de repente vi la luz. Allí estaba Lupita explicando cómo vivían los tiburones y me recordó muchísimo a la vida de un desarrollador. No penséis mal, no es porque devoremos a nadie ni porque seamos temibles… El tiburón tiene que estar continuamente en movimiento o moriría ahogado por no entrar agua en sus branquias. Ésa es nuestra vida, no podemos relajarnos ni un momento. Una temporadita fuera del mundillo y te encuentras a la vuelta desactualizado y pensando «con lo fácil que era XX /YY / ZZ…». A partir de ese momento eres oficialmente un rape. Los rapes se ocultan en el fondo, pasan desapercibidos y no se mueven un pelo.

La siguiente pregunta es obligada, ¿el rape nace o se hace? Sinceramente creo que todos los desarrolladores son tiburones y el mundo de la empresa nos convierte en rapes. La mayoría de los que nos dedicamos a esto nos gusta lo que hacemos y disfrutamos aprendiendo algo nuevo. No se me ocurre ninguna profesión donde el propio trabajador empuje a la empresa a usar nuevas tecnologías, a aprender cosas nuevas y a apostar por la calidad. Sin embargo, y también es mala suerte, las reglas del juego son distintas a otros gremios y los márgenes bajos, las prisas y en muchos casos el desconocimiento nos obliga a convertirnos en auténticos rapes, haciendo software en tecnologías obsoletas, menos productivas y de menor calidad que las actuales.

La buena noticia es que el tiburón que llevamos dentro está siempre listo para salir. Leyendo el comentario de Unai en el post del oso azul me he acordado de su caso. Unai era un rape en potencia pero el tiburón que llevaba dentro le ha llevado a convertirse en MVP de Compact Framework y uno de los referentes en España en desarrollo .NET. Y eso viniendo de alguien que trabajaba en una pequeña empresa de software y que invertía su tiempo libre en aprender lo que no necesitaba para su trabajo.

¿Cuántos tiburones habrá en España esperando a salir? Si piensas que tu vida de rape tiene que acabar sólo te recomiendo una cosa: únete a los tiburones!! Los grupos de usuarios INETA son un ejemplo para conocer a más como tú. Ya son 10 y creciendo en España, puedes consultarlos aquí. Si no tienes ninguno en tu ciudad te animo a embarcarte en crear uno nuevo, el resto de grupos estará encantado de ayudarte (doy fe, son una pasada). Si los grupos de usuarios no son lo tuyo ponte en contacto directamente con algún tiburón. Los MVPs son un buen ejemplo de tiburones, envíale un email a uno de ellos y cuéntale lo que estés haciendo y lo que te interesa. Geeks.ms o clearscreen.com está lleno también de tiburones, únete a ellos. Y por supuesto cuenta con nosotros. Apúntate a algún evento «alternativo» de Microsoft o de los grupos de usuarios, como los CodeCamps que organizamos en fin de semana o las noches de pizza y cerveza de MAD.NUG. No garantizamos que salgas hecho un tiburón, pero por lo menos podrás pasar un buen rato haciendo lo que más nos gusta… comernos a los surfistas!

Mi oso de la casa azul

La verdad es que viendo algunos comentarios mi oso va a quedar un tanto cutre, pero lo contaré de todas formas…


Justo antes de mis vacaciones, allá por julio, estuve en un evento que organizamos en Microsoft de formación interna en Redmond. La formación estuvo genial, pero tampoco es ése mi oso. Mi manager me dejó ir a Seattle unos días antes, para poder hacer lo que llamamos “shadowing” dentro de un grupo de producto. El shadowing es básicamente convertirte en la sombra de algún equipo dentro de Microsoft y formar parte de su trabajo diario. El grupo con el que tengo más contacto y que elegí para el shadowing fue… WPF!


Sin palabras… Estuve tentado varias veces de romper el pasaporte y quedarme allí para siempre 🙂 Tuve la oportunidad de mezclarme en todos los aspectos de WPF como el desarrollo, la gestión del proyecto, las pruebas, el marketing o la relación con clientes.


La primera impresión por supuesto es “vaya pandilla de máquinas que hay aquí”. Llevan 5 años con este producto y su nivel de conocimiento de las tecnologías UI es impresionante. Cada detalle de WPF está pensado hasta el milímetro y pueden hablarte durante horas de por qué este método es así o esta clase deriva de ésta y no de otra.


Después del primer shock de ver el nivelazo de los amigos, la segunda sorpresa es su cercanía. Tenía bajo el brazo muchas peticiones y preocupaciones de clientes y las atendieron como si la vida se les fuera en ello. Me llevaban de un sitio a otro, buscando a la persona más adecuada para las preguntas y siempre me recibían con una sonrisa y con toda la voluntad de ayudar al cliente. Realmente disfrutan con lo que hacen y para ellos la mayor satisfacción es que se utilice su producto y sea lo mejor para el cliente.


Estoy convencido de que WPF es una de las mejores y más complejas tecnologías que ha desarrollado Microsoft en toda su historia. Es ambiciosa y rompedora con el pasado pero además encaja en las tecnologías actuales de Microsoft y se apoyan sobre lo existente, principalmente sobre Windows y .NET. Viene de la unión de dos grupos completamente distintos (IE / Windows UI) y además están en la complicada situación de ser a la vez parte del core de Windows (Shell de Windows Vista) y tecnología de desarrollo (librería de WPF), con las grandes diferencias de requerimientos que tiene cada una. No me meteré en si la metodología, los recursos o la gestión tuvieron algo que ver en que el producto no acabara en fracaso, pero creo que algo muy importante sí ayudó a que lo sacaran adelante: todos tenían el mismo oso de la casa azul… la tecnología.


Desde el mes pasado yo lo comparto con ellos y mis amigos pueden dar fe, estuve tres semanas hablando de lo mismo. Da igual que seamos vendedores o desarrolladores, españoles o americanos, javeros o neteros, pro Windows o linuxeros. Lo que no se nos debe olvidar es que nos une la misma pasión: la tecnología.

Todos tenemos un oso de la casa azul

Mi peque Marcos alucina con el oso de la casa azul. Si no conocéis a este oso seguramente no seáis padres aún o vuestros hijos serán ya adolescentes. Es un programa que emiten en varias cadenas con una trama muy complicada: un oso que vive en una casa azul. Lo cierto es que es te acaba gustando y recuerdas con él los momentos que vivimos en mi generación con Espinete o Caponata.


Este verano el oso de la casa azul estaba de gira en un musical y mira por donde fue a actuar justo donde veraneo todos los años, en mi tierra Cádiz. Evidentemente allí que fui con Marcos para que conociera a su ídolo y al final casi disfruté yo más que él. El musical no fue nada del otro mundo, de hecho en mitad de la actuación se les fue la luz y se quedaron sin música un buen rato (nunca más me quejaré de problemas técnicos en nuestros eventos, 400 niños gritando es mucho peor que 1000 desarrolladores). Disfruté por ver la cara de mi hijo. Nunca le había visto quieto durante una hora, ni siquiera dormido. Estaba flipando, no podía cerrar la boca de admiración ni decir una palabra. Al final del espectáculo se hizo una foto con el oso (la incluyo debajo) y no podía creerse que estaba con él, su ídolo.


Después de ese día estuvo hablando en su lenguaje sobre el oso varios días. Todavía ahora, 3 semanas después, se acuerda y llama a la amiga de oso, luna, para decirle adiós.


Ejercicio al lector… ¿cuál es tu oso de la casa azul? ¿Qué te emociona tanto que no eres capaz de hablar de otra cosa durante 3 semanas después de haberlo visto? Si encontráis a ese oso y os apetece contarlo, aquí tenéis los comentarios para que lo escribáis. Yo tengo varios osos, y uno lo viví justo antes de irme de vacaciones. Mañana lo cuento…


 


Código fuente del Fútbol Chapa

Por fin me decido a dar el paso… Para los que no conozcáis la historia este año hicimos una gira de sesiones técnicas de Visual Studio 2005 por varias ciudades en España. Fue divertido porque intentamos que no fuera un evento de marketing sino algo muy práctico donde se pudiera aprender a desarrollar una aplicación real. En cada sesión desarrollábamos una pieza de una aplicación de ejemplo, todo gestionado con Team System y utilizando casi todas las tecnologías de desarrollo: SQL Server 2005, ADO.NET, Windows Forms, ASP.NET, Compact Framework, Servicios Web…


La temática de la gira fue el mundial de fútbol así que la aplicación que elegimos para desarrollar fue un juego de Fútbol Chapa, aquí tenéis una captura:



Hay que reconocer que tuvo mérito usar todas estas tecnologías con un juego y no con una aplicación de gestión tradicional (gracias a Luis, Aurelio y al resto que lo hicieron posible!). Desde entonces muchos os habéis interesado por la aplicación, sobre todo para ver en detalle el código fuente que hicimos deprisa y corriendo durante el evento. Llevo todo este tiempo intentando paquetizarla y colgarla en la web oficial del lanzamiento, pero mañana me voy de vacaciones y sigo sin sacar ese rato para hacerlo… En resumen, aquí tenéis todo el código fuente en bruto, sin paquete de instalación. La solución está compuesta por 8 proyectos:




  • AccesoDatos: Capa de acceso a datos, con las entidades de la aplicación y los TableAdapters de acceso.


  • CapaNegocio: Lógica de negocio, con la física de las chapas, la lógica del juego, la seguridad y la transaccionalidad.


  • FutbolChapaSql: Proyecto de SQL Server 2005 con un procedimiento almacenado en .NET que calcula las distancias recorridas por los jugadores.


  • FutbolChapaWin: Aplicación WinForms de mantenimiento de jugadores e informes.


  • FutbolChapaWinControl: Tablero de juego en GDI+ incrustado en un control, para poder reaprovecharlo en otra aplicación o en una página web.


  • FutbolChapaWeb: Frontal web con webparts que muestran información de las ligas, los jugadores y un informe. Incluye un proveedor de seguridad Membership y una página web donde jugar online al Fútbol Chapa.


  • FutbolChapaWS: Fachada de servicios web de la capa de negocio, para acceder desde otros sistemas o desde los clientes ricos.


  • JuegoWin: Sencilla aplicación Windows Forms que hospeda el control de tablero para echar una partidita.

Si queréis poner a funcionar este código es necesario efectuar algunas operaciones de instalación manualmente (lo siento, no tendremos instalador de momento):




  • Adjuntar la base de datos (carpeta DB) a una instancia de SQL Server 2005.


  • Configurar la seguridad de la base de datos. Por defecto utiliza autenticación integrada así que es necesario añadir el usuario ASPNET (WinXP) o NETWORK SERVICE (Win 2003) con permiso lectura / escritura en la base de datos adjuntada. Es posible también crear un usuario de SQL específico y cambiar la cadena de conexión en el archivo de configuración.


  • Crear dos directorios virtuales para el frontal web y los servicios web (carpetas FutbolChapaWeb y FutbolChapaWS).


  • La capa de negocio utiliza transacciones distribuidas, por lo que es necesario tener arrancado el DTC (servicio Distributed Transaction Coordinator)


  • Habilitar el CLR en SQL Server (sólo para el proyecto FutbolChapaSql). Más info aquí.

No me suelen gustar los disclaimers pero esta vez sí tengo que hacer uno: si queréis una aplicación didáctica, soportada, con instalación automática y tutoriales de su implementación os recomiendo MSDN Video. Tenéis la versión 2003 en el enlace y estamos trabajando en una versión 2005 que colgaremos en el mismo sitio.


Si aún así quieres seguir adelante, aquí tienes el código fuente completo del Fútbol Chapa.


Ea, a echar unas partiditas!

Código fuente del Fútbol Chapa

Por fin me decido a dar el paso… Para los que no conozcáis la historia este año hicimos una gira de sesiones técnicas de Visual Studio 2005 por varias ciudades en España. Fue divertido porque intentamos que no fuera un evento de marketing sino algo muy práctico donde se pudiera aprender a desarrollar una aplicación real. En cada sesión desarrollábamos una pieza de una aplicación de ejemplo, todo gestionado con Team System y utilizando casi todas las tecnologías de desarrollo: SQL Server 2005, ADO.NET, Windows Forms, ASP.NET, Compact Framework, Servicios Web…


La temática de la gira fue el mundial de fútbol así que la aplicación que elegimos para desarrollar fue un juego de Fútbol Chapa, aquí tenéis una captura:



Hay que reconocer que tuvo mérito usar todas estas tecnologías con un juego y no con una aplicación de gestión tradicional (gracias a Luis, Aurelio y al resto que lo hicieron posible!). Desde entonces muchos os habéis interesado por la aplicación, sobre todo para ver en detalle el código fuente que hicimos deprisa y corriendo durante el evento. Llevo todo este tiempo intentando paquetizarla y colgarla en la web oficial del lanzamiento, pero mañana me voy de vacaciones y sigo sin sacar ese rato para hacerlo… En resumen, aquí tenéis todo el código fuente en bruto, sin paquete de instalación. La solución está compuesta por 8 proyectos:




  • AccesoDatos: Capa de acceso a datos, con las entidades de la aplicación y los TableAdapters de acceso.


  • CapaNegocio: Lógica de negocio, con la física de las chapas, la lógica del juego, la seguridad y la transaccionalidad.


  • FutbolChapaSql: Proyecto de SQL Server 2005 con un procedimiento almacenado en .NET que calcula las distancias recorridas por los jugadores.


  • FutbolChapaWin: Aplicación WinForms de mantenimiento de jugadores e informes.


  • FutbolChapaWinControl: Tablero de juego en GDI+ incrustado en un control, para poder reaprovecharlo en otra aplicación o en una página web.


  • FutbolChapaWeb: Frontal web con webparts que muestran información de las ligas, los jugadores y un informe. Incluye un proveedor de seguridad Membership y una página web donde jugar online al Fútbol Chapa.


  • FutbolChapaWS: Fachada de servicios web de la capa de negocio, para acceder desde otros sistemas o desde los clientes ricos.


  • JuegoWin: Sencilla aplicación Windows Forms que hospeda el control de tablero para echar una partidita.

Si queréis poner a funcionar este código es necesario efectuar algunas operaciones de instalación manualmente (lo siento, no tendremos instalador de momento):




  • Adjuntar la base de datos (carpeta DB) a una instancia de SQL Server 2005.


  • Configurar la seguridad de la base de datos. Por defecto utiliza autenticación integrada así que es necesario añadir el usuario ASPNET (WinXP) o NETWORK SERVICE (Win 2003) con permiso lectura / escritura en la base de datos adjuntada. Es posible también crear un usuario de SQL específico y cambiar la cadena de conexión en el archivo de configuración.


  • Crear dos directorios virtuales para el frontal web y los servicios web (carpetas FutbolChapaWeb y FutbolChapaWS).


  • La capa de negocio utiliza transacciones distribuidas, por lo que es necesario tener arrancado el DTC (servicio Distributed Transaction Coordinator)


  • Habilitar el CLR en SQL Server (sólo para el proyecto FutbolChapaSql). Más info aquí.

No me suelen gustar los disclaimers pero esta vez sí tengo que hacer uno: si queréis una aplicación didáctica, soportada, con instalación automática y tutoriales de su implementación os recomiendo MSDN Video. Tenéis la versión 2003 en el enlace y estamos trabajando en una versión 2005 que colgaremos en el mismo sitio.


Si aún así quieres seguir adelante, aquí tienes el código fuente completo del Fútbol Chapa.


Ea, a echar unas partiditas!

De obras…

He tenido que hacer unos pequeños ajustes en el blog. Mi nombre de usuario incluía la dirección completa de mi email y todos los robots del mundo se han tirado a mi cuello. La parte buena es que si alguien quiere invertir con el jefe de estado de Gambia, cobrar mi premio de 150.000 dólares en un casino o agrandar alguna parte de su cuerpo puedo pasarle los contactos apropiados…

En fin, ya tengo cambiado mi nombre de usuario pero he tenido que borrar los mensajes antiguos con lo que se han perdido los comentarios, como diría el personal de tierra del Prat “perdón por las molestias que haya podido ocasionar”.

De obras…

He tenido que hacer unos pequeños ajustes en el blog. Mi nombre de usuario incluía la dirección completa de mi email y todos los robots del mundo se han tirado a mi cuello. La parte buena es que si alguien quiere invertir con el jefe de estado de Gambia, cobrar mi premio de 150.000 dólares en un casino o agrandar alguna parte de su cuerpo puedo pasarle los contactos apropiados…

En fin, ya tengo cambiado mi nombre de usuario pero he tenido que borrar los mensajes antiguos con lo que se han perdido los comentarios, como diría el personal de tierra del Prat “perdón por las molestias que haya podido ocasionar”.