sábado, enero 14, 2006

Investigando en el oceano

No me gusta escribir posts tecnológicos. No es que tenga nada en contra de ellos, simplemente es que no me considero con la suficiente autoridad en ningún tema como para ponerme a hablar de ello durante un post entero.

Además, siempre me gustó escribir posts que la gente para la que escribo pudiera entender.

Escribo esto porque lo importante de este post no es el aspecto meramente tecnológico, sino la sensación de desazón que produce estar a las puertas del mayor almacén de información del mundo y ser tan pequeño.

Todo empezó hace más o menos una semana, cuando el director de nuestro (mio y de A) Proyecto nos recomendó usar cierta tecnología para realizar las comunicaciones del mismo.

Era una nueva manera de verlo. Nosotros pensabamos en una manera un pelín más centralizada, y él nos sugirió una manera totalmente descentralizada. La idea sonaba algo así como un nuevo e interesante reto, así que aceptamos (además de que no es bueno andar diciéndole de primeras que no al Director, digo yo).

Así que aquí comienza la investigación. Todo a partir de un enlace. La información está muy bien, muy completa y explica bastante bien. Pero solo tiene un problema. Aunque esta tecnología no está pensada para ningún lenguaje/plataforma en general, parece que solo está hecho en serio para Java.

Y sí, es un problema. Nuestro Proyecto debería mirar bastante por el rendimiento (no obsesionarse, pero bah, mirar por él) y el rendimiento de Java es así como bastante malejo, así sería como empezar en desventaja.

Eso sin contar con el reto que me supondría hacer un Proyecto en un lenguaje del que no sé nada, como C#, sobre una tecnología de la que no sé nada y sobre un tema del que no controlo. Es algo así como una cruzada contra la necesidad de tener una solida base.

Así que toda esta semana de investigación ha sido simplemente producto de un empecinamiento por no tener que tirarnos a lo fácil. Así que había que encontrar un proyecto que estuviera implementando esta tecnología en C#.

De primeras todo genial, porque el primer enlace en Google era hacia un grupo de desarrollo que estaba haciendo lo que yo necesitaba. Maravilloso. Lo que no dice el enlace del Google, pero sí la página, era que aquello parecía abandonado.

Tras llorar 3 minutos entré en lo que parecía unalista de correo del grupo, en la que el único mensaje se titulaba "Attitude problems". Bien bien... seguro que se han matado entre todos y ya nadie lo desarrolla.

Buscando me encuentro un proyecto para portarlo a C. ¡Uy! Sé que se parece, pero C no es C#, y ponernos a estas alturas a programar un PFC en C, por mero orgullo, es toda una locura.

Pero yo creo recordar que esto de la plataforma .NET te permitía usar varios lenguajes distintos. Quizás pudiera usar el trozo escrito en C con el resto del proyecto.

Me descargo el proyecto de C. Tras algunos problemas logro bajarlo y descubro que su última versión es del 2002. Bien, dado que en las noticias de la web aparecen versiones para Java del 2005... algo no huele bien.

Así que llegados a este punto y herido en mi orgullo tecnológico, admito que tendremos que hacer el proyecto en Java. Se lo comentó a mi compañero, el cual se resigna y recuerda los cubos girando del año pasado en Informática Gráfica y se pregunta si nuestra aplicación se ejecutará.

Aún cabizbajo entro en el portal donde más información hay sobre el tema y... ¡Aleluya! En una esquina hay una noticia "C# wrapper for JXTA from Mono project team". Dios, eso parece ser algo interesante.

La noticia no lleva a un texto, sino a un fichero. lo descargo, lo descomprimo. Dios, parece lo que necesitaba. Entro en el directorio indicado... ejecuto el proyeco... ¡¡No!! ¡¡Un error!!

Mierda. pero si estoy al lado. Puedo tocar lo que quiero, pero no lo puedo tener... Abro el código a mano, errores por todas partes...

El proyecto en sí usa el anterior proyecto de C, así que miro a ver si compila. Este proceso no se puede alargar mucho literariamente hablando. Simplemente yo luchaba desde un pozo de impotencia contra los elementos.

Procuaraba inventarme nuevas excusas y manera de afrontar dichas excusas, de manera que cuando hacía algo ya tenía dos planes alternativos. "Que chico más listo" dirá alguno. Sí, claro... si alguno de esos planes hubiera funcionado ya habría sido la leche.

Y entonces unas 36 horas más tarde, mientras pensaba en irme a dormir, mi cerebro recordó que los auténticos genios de esto ya llevaban un tiempo usando la versión 2005 de .NET, mientras yo trabajaba con la 2003.

Una búsqueda por el Google me permitió darme cuenta de mi nivel de idiotez. Al día siguiente conseguí la susodicha herramienta. Todo se abrió. Ahora tras una semana, ya estoy en condiciones de comenzar a usar esa tecnología como yo quería. He conseguido, una hormiguita insignificante como yo, entrar en el oceano que es Internet y no morir ahogado.

Ahora solo tengo que aprender dicha tecnología. Dios, me encanta investigar.

---

P.D: Buceando en internet llegue a una lista de correo en la que un mensaje terminaba de la siguiente manera:

"One would think that there should be a module in the degree detailing how someone should go about asking for help in the forums which they shall be using quite an awful lot in the coming years!"

No puedo evitar recordar cierta asignatura.