domingo, diciembre 31, 2006

Cinco minutos antes de la cuenta atrás

Este es el segundo año que cierro con el blog. Me sigue sorprendiendo lo útil que es esta memoria electrónica. En primera, por la certeza de voltear atrás en el tiempo y ver como voy cambiando con el paso del tiempo, cosas que dije, pensé y también en las que cambié de parecer. Si bien este blog está muy orientado a tecnología, en algunos momentos se han entremezclado cosas de mi.

¿Cuál es este resumen de este año? Me cuesta trabajo decirlo ahorita mismo. Generalmente no pongo mucha atención a lo que ya se hizo. Vivo constantemente pensando en las cosas que quiero hacer. Por eso me es útil esto del blog. Puedo volver unos meses atrás y verme desde fuera.

En las cosas que quiero hacer el próximo año, solamente tengo grandes esbozos. No soy del tipo de Mitch Deny que hace una planeación muy precisa, pero interesante de sus planes del siguiente año.

Lo que quiero hacer el año que viene es lo siguiente:
  • Evangelizar sobre Mono a quien quiera y a quien se deje :D.
  • Aportar algo al proyecto Mono, sobre todo en la parte de colas de mensajes y la implementación de Olive.
  • Ganar experiencia con Ruby
  • Sacar adelante y promocionar el concepto de SOA a la Mexicana
  • Producir un podcast.
  • Crear un grupo de usuarios de Mono.
Me faltan incluir aspectos personales, de trabajo, familiares y demás. Todavía no están del todo definidos.

Solo me resta agradecer a aquellos que se han tomado el tiempo de leer mis oblicuos pensamientos y doblemente agradecer sus comentarios. Les deseo un año 2007 con mucho trabajo, con retos, algunos fracasos y muchos triunfos y que al final se sientan satisfechos con lo que consiguieron.

¡Féliz Año 2007!

Finito.

miércoles, diciembre 20, 2006

Fin de Temporada

Ayer se llevó a cabo la última reunión de la Comunidad .NET de la Cd. de México. Atendiendo a la convocatoria y por lo significativo de la reunión asistí con mucho gusto. Me parece muy importante resaltar y agradecer el trabajo que han venido haciendo Héctor Obregón, Octavio Télis, Raúl Guerrero y varios más que tomaron como suyo el compromiso de mantener viva la comunidad. No puedo decir más que ¡gracias!

Vi varias caras nuevas, espero que les interese participar en las siguientes reuniones y que se sumen a este espacio de colaboración. Lo importante es que la comunidad crezca y se vaya alimentando con otros puntos de vista, otras necesidades y nuevas ideas que compartir.

Raúl anda clavadísimo en el tema de Serialización y ayer dió una excelente presentación del tema. Yo anduve medio oyendo ya que me preguntó que si podía aventarme la presentación de Mono que compartí la vez anterior en petit comite. Con todo gusto le dije que sí y me pasé repasando la presentación durante su exposición.

A continuación estuvo Octavio Télis platicándonos acerca de los delegados. Algo que me llama la atención de Octavio es su casi enciclopédico conocimiento de .NET.

Finalmente, fue mi oportunidad de pararme al frente y hablar de Mono. Me fuí más o menos rápido ya que los conceptos son idénticos a pesar que los conocemos con distintos nombres (CLI vs. CLR, MSIL vs. CIL, etc) y la presentación simultánea de ejemplos .NET y Mono creo que siempre es de interés para la audiencia (hasta la fecha no se han quejado). A los lectores del post anterior no les caera de extraño cuando mencione que pasó al hacer el cambio a Ubuntu para hacer las demos sobre Linux. Simplemente no funcionaron :@ Resulta que no instalé todos los paquetes necesarios y puras fallas. Simplemente no arrancaron.

Raúl, como el tipazo que es siempre, me dijo que no me estresara, que es normal que pase en medio de cualquier presentación. Alguien que también me brindo su apoyo fue Akin0, que llegó casi desde el inicio de la reunión. Con el gusto de dar a conocer Mono y estas muestras de solidaridad ¿qué más puedo pedir? :D

Un punto interesante fue la pregunta de uno de los asistentes de primera vez (creo que de ¿tacsa? o algo así...) fue de como hacer que dos aplicaciones se comunicaran entre sí. Esto fue como una chispa que se anidó en mi cabeza y en algún momento de la madrugada y después de la charla que nos reventamos de regreso a casa Akin0 y yo dió como resultado la idea de SOA a la Mexicana.

Si, si, si. Ya se que no van a faltar las incontables comparaciones con el famosísimo podcast de Carlos Madrigal Proyectos a la Mexicana, pero buscaremos que tenga su propio sabor. El punto es dar a conocer como hemos ido entendiendo los conceptos de integración, SOA, ESB y demás con las experiencias en el trabajo durante los últimos dos años. Hablo en plural (hemos) por que para realizar esta idea voy a tener la ayuda de dos excelentes amigos y compañeros de trabajo: Gustavo de la Cruz Tovar y Javier "El Tuzo" Cortes López.

Ya vendrán más detalles de SOA a la Mexicana. No se desconecten.

Finito.

lunes, diciembre 18, 2006

Mudanzas y encuentros

A veces me desespera ser tan desesperado. Siempre busco la ruta del mínimo esfuerzo aún y cuando sea más esfuerzo hacer el cambio. El último cambio fue de distro.

Por enésima vez cambié la distro que tenía instalada en mi laptop. Ahora fue de Ubuntu a Fedora. ¿La razón? Tener acceso más fácil a las últimas versiones de Mono. Sin embargo después de unos meses de trabajar con Ubuntu el cambio no fue tan fácil como pensé de inicio.

Ya tenía a la mano el DVD para instalar Fedora en su versión 5, sin embargo, por ganas de desperdiciar ancho de banda descargué la imagen para FC6 solo para ver en la página de descargas de Mono que solamente soportan hasta la versión 5. Pus bueno, agarré mi DVD y ¡órales! a instalar. La siguiente actividad fue la consabida actualización de los paquetes instalados, cosa que en mi caso significaban cerca de 600 MB de descarga.... ¡qué onda w!

Pus aún y así colgué mi noble yegua a la pichurrienta red de la ofi para ver con asombrosa impaciencia el goteo de bits de la red. Y pasó un día, dos, tres, cuatro y me cargó la tiznada. Mi transparente paciencia se pegó un tiro y al querer buscar el modo de acelerar descargas, me encontré un plugin para yum que segúnesto es para seleccionar los mirrors más rápidos. Si pero no. Como fuí descargando por grupos ya que me fue imposible dejarla más de 4-6 hrs conectada, iba seleccionando que si por letra, por tamaño, por paquete, por hora, por lo que fuera tratando de desmenuzar el mazacote de descargas que tenía en las manos.

Entre todo ese malabar de paquetes, sitios, versiones y conexiones se batieron los datos de los repositorios. Varios curiosos mensajes aparecieron al momento de hacer el famosísimo "yum update" para que al final resultara que ningún mirror podía validarse contra las firmas que tenía registradas. Aplique la mentada formula de "yum clean all; yum makecache" y conseguí hacerlo funcionar un par de veces más pero fue todo. De ahí se me ocurrió quitar el maravilloso-plugin-acelera-mirrors y mejoro un tantito la cosa pero con un par de descargas llegó al mismo final.

'Tons que agarró y que instalo de nuevo FC5 (que ganas de perder el tiempo ¿no?) y ahora no me hice del maravillosos-plugin-acelera-mirrors para las actualizaciones. Y pasaron uno, dos, tres, cuatro días y yo sin terminar. Siempre los mismos mirrors, siempre la misma lentitud, siempre un buen de tiempo perdido. 'uta madre. :@

Y además, no me encontraba del todo cómodo. FF 1.5, Evolution 2.6, usuario root para instalar (aprendí a configurar sudo pero por ahí algo me late que también influyo en la revoltura de repositorios). No, no, no.

De vuelta a Ubuntu. Lo primero que noté (bueno, ya lo había notado antes pero no le di importancia) es el hecho de que existe un repositorio Ubuntu para México (http.//mx.archive.ubuntu.com) que si bien no sé si se encuentra físicamente aquí en México, al menos atiende las peticiones de volada. Y además como Ubuntu viene con las versiones más recientes de sw, me siento más a gusto. Y menos tiempo perdido. La única desventaja es la lentitud respecto a las actualizaciones de Mono ¿qué tan difícil es hacer paquetes para Ubuntu? :S

La otra cosa interesante de la semana pasada son libros. Un bonche de libros. Gustavo decidió que era tiempo de comprar libros y pus le encargue mi lista (que no son muchos) y ya llegaron.

En mi breve selección se encuentran Software Factories por Greenfield et alias, Microsoft Windows Comunication Foundation: Hands on! por McMurty et alias, Practical Software Factories with .NET por Lenz y Enterprise Integration with Ruby por Schmidt, éstos último en versión electrónica, amén de otro bonche de libros que encargó Gus.

Entre los otros libros, encontré Ruby on Rails: Up and running por Tate, el cual de una manera sencilla te va introduciendo al mentadísimo mundo de Rails: metaprogramming, scaffolding, ActiveRecord, etc. Mucho de lo que he visto de inicio me hace un deja vù con las software factories. No tengo muy definida la idea, voy a tener que amarrar más conceptos.

En la parte de Ruby, me encontré con algundos feeds y lo más sorprendente con un incipiente grupo de usuarios Ruby en la Cd. de México. El breve perfil del organizador lo presenta como un ingeniero de soporte Rational de IBM ¿? El grupo lo viene anunciando en dos lugares Google Groups y Yahoo! Groups así que si les interesa apúntense.

Por último, mañana se realiza la última reunión de la Comunidad .NET de la Cd. de México en el lugar acostumbrado (WTC, piso 35, Intersoftware).

Finito.

martes, diciembre 12, 2006

Más voces sobre Open Source y .NET

Algunos bloggers, MVP's y desarrolladores han empezado a comentar acerca del pobre avance del movimiento Open Source en relación a la tecnología .NET.

Entre los que han comentado se encuentran Ayende (NHibernate), David Hayden (MVP C#), Jeremy D. Miller (Agile advocate) y como abogado del diablo Frans Boume (MVP ASP.NET).

El punto es la siempre infaltable comparación con la comunidad Java que ha producido hartos proyectos OS, ya sea bajo la tutela de IBM, Sun, Red Hat o whoever. Se comenta la actitud que ha la fecha ha tenido Microsoft (ni te veo ni te oigo) respecto a los pocos proyectos que existen en .NET y como al final lo único que han demostrado es que le gustan las ideas, pero no compartir.
  • NDoc -> Sandcastle
  • Spring.NET -> ObjectBuilder (bueno, más o menos)
  • NUnit -> MS Test
  • Log4net -> Logging Application Blog
Mi punto es que es seguro, un axioma de hecho, que Microsoft no va a fomentar proyectos Open Source. Por eso mi apuesta por Mono. De no ser así, jamás hubieran visto la luz implementaciones No Windows. Entonces, se debe arrancar como se ha hecho hasta ahora, aunque sea "copiando" proyectos Java exitosos (Ant, JUnit, Spring, Hibernate, IBatis) para poco a poco ir madurando ideas "propias" , esto último suena medio limitado y egoísta. Al fin y al cabo estamos resolviendo los mismos problemas con los mismos conceptos (los patrones son independientes de la plataforma ¿cierto?

Una vez más regresamos a la gente, a la confianza, al compromiso, a los intereses comunes. Más que una empresa, estos valores e ideales deben ser el motor de cualquier comunidad. Incluso esta potencial comunidad tecnológica.

Finito.

Google entra al juego de las patentes

Por medio del blog de NeCuDeCo me entero que Google ha conseguido una patente sobre la interfaz gráfica de usuario :S ¡que onda!

Las patentes no son buenas, hacen daño, dan pena y se acaba por llorar....

Finito.

lunes, diciembre 04, 2006

Una API para comunicar a todos

Windows Communication Foundation (WCF) es una interesante plataforma de integración. Consolida varias de las tecnologías disponibles en Windows de MOM (Message Oriented Middleware) en una sola API.

En el proyecto Mono existe el subproyecto Olive cuyo objetivo es conseguir una implementación de las API's de WinFX/.NET3 entre las que se incluyen WCF. Sin embargo considerando la no dependencia de plataforma inherente a Mono, se ha dejado fuera el soporte a MSMQ. La razón es obvia: no existe fuera de Windows.

Sin embargo, el soporte de colas (queueing) es uno de los factores que consiguen soportar grandes volumenes de transacciones en ambientes empresariales. En lo particular creo que MSMQ ha sido desgraciadamente desaprovechado y prácticamente ignorado por varios arquitectos. Con WCF, se presenta de nuevo como una herramienta más a nuestro alcance y creo que también debe formar parte de Olive pero ¿cómo resolver la ausencia de MSMQ en otras plataformas?

De inicio pienso en ActiveMQ. Un proyecto Apache que también ha sido utilizado en algunos proyectos ESB Open Source. Una ventaja que recientemente ví es que funciona (al menos en la doc) en Windows y en Unixes. Igual y se puede pensar en IBM WSMQ que tiene el mismo soporte multiplataforma. La idea es entonces, construir una implementación abstracta de queueing para WCF y construir implementaciones especificas para diferentes productos. Y después integrar esto en Mono de manera que se complete el alcance de Olive.

Existe un pequeño inconveniente. Estoy en el proceso de aprender WCF :D. Esto implica que paso mucho tiempo en Windows para estar consultando la documentación en línea. Si bien también está disponible en MSDN, estoy limitado por la disponibilidad de una conexión a internet. El punto final es que voy a trabajar más tiempo en Windows y de ahí se deriva otro pequeño reto, la facilidad de compilar Mono en Windows.

La documentación que existe hace referencia a cygwin como "plataforma" para construir Mono en Windows. En el sitio de Paul Johnson existe una detallada guía para preparar el ambiente ya que requiere una combinación muy específica de versiones de las herramientas de construcción que realmente no he conseguido armar.

Pero bueno, los puntos a conseguir son los siguientes:

- Aprender WCF, particularmente los puntos de soporte a queueing.
- Aprender ActiveMQ y su binding con .NET
- Descubrir o crear el API para una integración genérica de WCF con productos de queueing.
- Llevar este código a Mono.
- Aprender a configurar un ambiente para compilar Mono en Windows.

Voy a abrir otro backpackit para darle seguimiento a este asunto.

Finito.