jueves, septiembre 04, 2008

Curiosidades varias

Me encantaron estos productos que descubrí en Boing Boing.

Este, un contacto eléctrico con una pequeñísima modificación, es genial:
http://www.oboiler.com/plugs/cleat.html

-- o --
Hay cientos de radios/minicomponentes/bocinas especiales para el iPod, pero ninguno como este:
http://www.jr.com/atech-icarta-bathroom-ipod-dock/pe/AFL_ICARTA_hy_BS/

-- o --
Este otro producto sí va en serio: un brazo biónico, desarrollado por el mismo que inventó el Segway (ese cochecito de dos ruedas que han visto en los centros comerciales). Vale la pena ver el video completo, por lo asombroso del producto y por las implicaciones: tengo la impresión de que Dean Kamen en un par de ocasiones está a punto de llorar de la emoción. "Dean... Chuck no se ha alimentado por sí mismo en 13 años..."
Liga hacia página de Microsiervos con más detalles, en español.


-- o --
Y por último, un reloj analógico no-tan-fácil de leer:
http://www.dcigift.com/product.cfm?catID=1;14&productID=833
Me encantaron el 1, el 7, el 10. El 9 está redondeado, supongo...

miércoles, septiembre 03, 2008

La más lista

Venía por la calle, y leí de prisa el anuncio de una revista que en la portada mostraba a una modelo guapa acompañada del título "La más lista de las HOT". ¿Qué?, me dijo mi mente. Una serie interesante de posibilidades empezaron a desarrollarse en mi cabeza, cuando me dí cuenta de que en realidad el título era "La lista de las más HOT". Bu. Habría sido una excelente idea, ¿no? "En el puesto número cinco encontramos a Lupita Juárez, quien es guapa, sí, pero además es gerente de investigación de la firma Smith & Smith, y en sus tiempos libres escribe reseñas de libros para The New Yorker..."

Esta lista, creo, me resultaría mucho más emocionante que la que seguramente adornará las páginas de la revista en cuestión, con fotos y fotos de señoritas de sociedad o actrices que muy poco o nada tienen que ver con el mundo real. Al menos mi mundo real.

PD. Ya existen en internet enumeraciones como la que imaginé:

domingo, agosto 31, 2008

Los mexicanos somos extraños

Los mexicanos somos extraños. Me imagino que esto lo han de decir también todos los habitantes de un país sobre sus paisanos, pero realmente somos raros los mexicanos, caray. Las Olimpiadas terminaron hace dos semanas y durante ese tiempo no dejaron de llover críticas a los atletas, a los dirigentes, a nuestra mentalidad perdedora, y hasta a los españoles por conquistarnos. Nos sentimos miserables cada vez que un mexicano llegaba en el lugar 75 de 78, y sin embargo los únicos deportes que nos transmitían por la tele eran los que tenían mexicanos en ellos, con o sin posibilidades de lo que fuera, y algunos otros eventos que de tan importantes era imposible no transmitir.
Yo creo que tal frustración era tan grande porque todos los días ocurría una, tres, cinco, o hasta diez veces: por la noche -en nuestro horario- en caminata, más tardecito en tiro con arco, mientras dormíamos continuaban los fracasos en levantamiento de pesas, canotaje y remo, y ya tempranito nos levantábamos para confirmar que todos los mexicanos habían sido eliminados ignominiosamente. O peor, como el caso de una paisana que a pesar de ganar en su heat eliminatorio en natación, el tiempo no le alcanzó ni para quedar entre las 16 mejores.

De modo que mi teoría es que la repetición de ver a nuestras "esperanzas" quejarse por haber comido mal el día anterior, decir que un vigésimo quinto lugar no era nada malo dado que eran apenas "sus primeras Olimpiadas", argumentar que le "habían agarrado los pies" o de plano decir que nunca se prometió un buen papel, crisparon nuestros nervios como sólo ocurre cada cuatro años.

Y sin embargo, estos fracasos ocurren todo el tiempo, pero aislados, escondidos en la sección inferior de la página 26 de la sección deportiva: "la atleta mexicana Lucero Luz quedó en el lugar 196 de 200 competidoras en el Triatlón Anual de Sydney. Lucero declaró estar muy contenta por haber terminado la prueba dado que las demás competidoras son superhumanas." Y como, claro, el lector ocasional ya está agotado después de haber recorrido hojas y hojas de información sobre las declaraciones del técnico del Atlas acerca de las declaraciones del aguador derecho del América sobre lo que la semana pasada declaró Eriksson, se dice a sí mismo "mi única duda es: ¿esta Lucero Luz qué tal estará? No viene foto... Mmhhh... ¡Ah, por poco olvido leer las declaraciones del nuevo prospecto salvadoreño del San Luis!" y procede a distraerse con más y más futbol.

Así que si durante cuatro años no nos interesa qué ocurre con nuestras clavadistas y taekowndoístas, que son bastante prominentes, mucho menos le prestamos atención a las de 400m, natación, salto de altura, judo, ping-pong, etc. ¿Alguien sabe si México tiene algún buen lanzador de disco? ¿Habrá en el país una excelente waterpolista? Nadie lo sabe.

Entonces como que no hay mucho espacio para la queja, ¿no creen? Obtenemos lo que pedimos. Al menos ahora sí hay compatriotas haciendo buenos papeles en el fútbol internacional, tanto jugando como dirigiendo, y supongo que eso significa un avance con respecto a hace 10, 20, 30 años. Pero de la Conade aún no se escucha nada bueno o interesante. Quizás si nos quitáramos los tapones de los oídos...

Sí, en definitiva somos extraños. Hoy corrí en los 10km de Nike, y diez, quince veces durante el trayecto los participantes estuvieron gritando "México, México, México". Creo que no nos escuchaban en los demás países participantes, pero sí se sentía bonito. Y ahora, en una noticia absurdamente no relacionada, me vengo enterando en un blog extranjero que se hizo un espectacular descubrimiento en Yucatán: una ciudad subterránea, encontrada por investigadores que bucearon hasta encontrar unas cámaras secas, donde hallaron huesos humanos y las ruinas de 11 templos. Parece que se trata de la mítica ciudad de Xibalba, "lugar del miedo", mencionada en el Popol Vuh. Este descubrimiento tan importante seguro no habría pasado desapercibido en periódicos, noticieros, reportajes en el país. ¿Y alguien me puede decir si había escuchado algo sobre este evento importantísimo? ¿Por qué tendremos que venir a enterarnos en medios extranjeros de estos temas? ¿Pasa lo mismo que con el fut y los deportes olímpicos?

En fin. Aquí les dejo links a la página de Reuters donde se informa del descubrimiento hecho por arqueólogos mexicanos (incluye un par de fotos), y el artículo en Wikipedia sobre Xibalba.

Se fue Randy Pausch


Tanto tiempo pasó, tanta fue la cobertura de los medios, tan vívida seguía siendo su imagen en los videos, que hasta parecía que el desenlace fatal no ocurriría, que alguna cura mágica sería descubierta, que en realidad no era de seis meses la condena sino de seis años. Y sin embargo, ocurrió: Randy Pausch finalmente falleció.

Para quien no sepa quién era Pausch, aquí hay una breve explicación. En resumen, era un importante profesor en Carnegie Mellon, famoso dentro de los círculos académicos, de la inteligencia artificial y de la realidad virtual. Sin embargo, su salto a la fama mundial vino cuando presentó lo que en Carnegie Mellon llaman "Last Lecture", una conferencia en la que profesores de la universidad presentan lo que dirían si estuvieran cerca de morir. Dos diferencias grandes tenía Randy Pausch: que él en realidad estaba muriendo de cáncer pancreático, y que decidió darle un giro alegre, divertido y optimista a su plática.

El tema central fue "cómo hacer realidad tus sueños", y durante su exposición recorrió su vida, su familia, las dificultades que enfrentó, sus ideas sobre tomar la vida por los cuernos y obligarla a ser divertida, y las razones que tuvo para planear de ese modo su Last Lecture. En el camino, y de modo muy convincente, habló de su desencanto por las pertenencias físicas, de divertirse y dejar divertir, de perseguir los sueños de la infancia pero también entender cuándo dejarlos ir, de utilizar los obstáculos como una forma de saber qué tanto deseamos una cosa, y muchas lecciones prácticas utilizándose a sí mismo de modelo. Habló con gran desenfado acerca de su vida y sus logros: se burló de que cuando por fin consiguió su Ph.D. su madre le decía a sus conocidos: "mi hijo es doctor, pero no de los que ayudan a la gente". Al inicio de la plática, avisó que no trataría temas religiosos, dado que él nunca había sido creyente, pero que a nivel personal sí había experimentado una conversión ante el lecho de muerte. Ante el silencio del auditorio, aclaró: "¡Es que me compré una Macintosh!", y todavía agregó, mientras la gente reía, "(con este comentario me garantizo la simpatía del 5% del público)". Incluso aprovechó para presumir de su buen estado físico haciendo ejercicios sencillos enfrente de la audiencia.

El éxito de The Last Lecture fue tal que terminó convirtiéndose en un libro, incluyendo los videos e imágenes que había utilizado durante la conferencia. Siguió informando de sus avances en su sitio personal, donde contó cómo aún más sueños de la infancia se le habían realizado: recibir pases de uno de sus jugadores favoritos de la NFL, cantar con Sting en un concierto, aparecer en una película de Star Trek, y dar muchas entrevistas y mini-réplicas de su conferencia inicial.

El pasado 25 de julio falleció, después de una súbita desmejora de su estado de salud y descubrir que el cáncer había invadido ya órganos vitales. Dejó a su esposa Jai, y tres hijos, de 6, 4 y 2 años: Dylan, Logan y Chloe.

Randy Pausch siempre tomó muy en serio la labor de enfrentar a los últimos meses de la vida. Decía que tuvo que decidir entre hacerse una bolita y llorar, y levantarse y hacer algo al respecto. Su mayor preocupación era su familia, así que consultó con psicólogos para decidir cuándo le daría la noticia de su próxima muerte a sus hijos, y pidió a todos sus familiares y amigos que respetaran esa decisión. Se entrevistó con un número de personas que habían perdido a alguno de sus padres de pequeños para preguntarles qué les habría gustado que les dijeran. Y sobre todo, siempre afirmó que su Last Lecture era un "mensaje en la botella", y que la verdad era que estaba dirigido solamente a tres personitas. Cuando decía esto era el único momento en que se podía notar que perdía la compostura y estaba cerca de desmoronarse.

De Randy Pausch se quedan en mí muchas frases sabias, muchas ideas interesantes, pero sobre todo la muestra de una postura de vida congruente, valiente, siempre práctica aún a la orilla de la tragedia, y brutalmente íntegra. Fue honesto en su presentación del caso de un hombre desahuciado pero decidido a no causar compasión: "Cuando haya un elefante en el cuarto, por lo menos preséntalo", decía al inicio de su conferencia mientras mostraba las radiografías de su cáncer. Me gustó su respuesta en una entrevista, cuando le preguntaron si habría dicho las mismas cosas de no haber estado cerca de la muerte: "No, no me habría atrevido a decir nada de esto, no habría tenido la autoridad moral. Y sin embargo no habría pensado que eran menos ciertas las cosas que dije". Me pareció enormemente congruente, puesto que es absurdo vivir como si te quedaran tres meses de vida, y sin embargo es una pena que sólo la indudable cercanía de la muerte le conceda a un hombre la posición moral para ser escuchado con otros oídos y otra disposición.

Descanse en paz Randy Pausch. El mensaje que dejó a sus tres hijos ha hecho eco en millones de personas, y aunque eso no es lo que importa en realidad, sí sirve de consuelo y aprendizaje.

Referencias:

jueves, junio 28, 2007

Publicitando SOA

En el sitio de Tibco, en la imagen central, hay una pestaña que dice "SOA". Al seleccionarla, aparece un recuadro con una serie de declaraciones graciosas sobre SOA: primero, una serie de personas anónimas pelean por la atención del usuario, y en el portafolio de uno de ellos se lee: "Muchos vendors ofrecen una solución SOA". Luego, explican: SOA --> Same Old Approach. Aparece a continuación una persona y a su lado pasan rápidamente gabinetes que dicen SOA, al estilo de Matrix. "Hay mucho SOA allá afuera". "Necesitas alguien que tenga blood, sweat and years".
Hay tres o cuatro pequeños episodios similares en corriendo uno tras de otro, en el que ofrecen entre otras cosas varias acepciones de SOA: Sell Old Applications, Sad Opportunistic Attempt, Seriously Over-Advertised, Shovel On Adjectives,.. Cuando muestran imágenes que representan las soluciones SOA de la competencia, le ponen siempre un asterisco; el asterisco lleva a una letra pequeña que empieza corriendo lentamente y acaba a toda velocidad, y que dice algo como "Aplican restricciones. No se garantiza la interoperabilidad con productos que no cumplen con las especificaciones de ..."

Me pareció muy buena propaganda, y conociendo a Tibco, seguramente tienen un producto bueno para respaldar su marketing.

Sin embargo, no creo que el quid del SOA esté en
la interoperabilidad. Desde siempre me ha parecido que SOA es una gran idea pero que no puede ser aplicada como panacea: hay muchos puntos todavía "asterisqueables" en las especificaciones de web services, como transacciones, orquestación, autenticación, incluso attachments. Creo que el verdadero problema es crear fácilmente clientes genéricos que consuman los servicios, y que sepan descubrirlos y utilizarlos de una forma sencilla. Creo que antes de comprar una solución SOA se debe averiguar si es SOA-Server o SOA-Client o ambas, y qué tipo de generación de código utiliza. En mi mente, el SOA-Server siempre tiene que venir acompañado de un Application Server o de un motor de BPM (Business Process Management), de lo contrario básicamente te están dejando a ti la tarea de hacer deploy manual de los servicios generados. Supongo que existirán herramientas que sepan hacer este deploy en multitud de servidores, pero me parece que, a menos que siempre utilices el servidor preferido por tu vendor, corres el riesgo de que, cuando las cosas no funcionen o se caigan, te encuentres con dos compañías apuntándose con el dedo entre sí y tú enmedio sintiéndote miserable.

He visto muchas soluciones que convierten en web service una clase cualquiera de Java (un POJO) y me parece que es suficientemente sencillo hacer esto, pero en cuanto a la generación de clientes de web services, es decir, de programas que sepan consumir esos web services, tienen demasiadas deficiencias: generan código repetitivo e ininteligible, crean clases "helpers" al por mayor, no utilizan soluciones genéricas y se parecen demasiado a un EJB (en el mal sentido). En un proyecto en particular en que estuve, dos equipos tuvimos que hacer la integración con una nueva interfase (web services, por supuesto) hacia el sistema central. El otro equipo utilizó la generación de código del WebSphere Developer Studio, y yo me limité a programar un cliente genérico basado en Axis. La interfase consistía en ocho o nueve servicios, y mi solución quedó implementada con tres clases y un archivo de configuración (además de las librerías necesarias); la otra solución la vi en su forma final y utilizaba unas 100 clases, más o menos 10 por cada servicio. Cada vez que creaban un cliente para algún servicio en particular, echaban a andar el wizard y ¡voilá! quedaba mágicamente funcionando el código. Claro que todavía hacía falta integrarlo con sus propias clases, pero eso es irrelevante; lo interesante es que conforme se fueron agregando servicios al sistema central, me llamaban para preguntarme "¿Cuándo puedes venir para que nos crees el código que hace falta? Es que ya hay tres nuevos servicios..." Yo les decía que no hacía falta, que simplemente abrieran el archivo de configuración, agregaran una línea que apuntara al WSDL, otra en la que especificaran el nombre del método a utilizar, y cambiaran el JSP que enviaba los datos (lo hice como JSP porque no tenían idea de qué era Ant y no estaba dispuesto a "migrar" mi proyecto al Developer Studio aquél). Para el otro equipo, siempre hacía falta que fuera un consultor un par de días a hacer los cambios en las clases y echar a andar nuevamente el wizard. Al cabo de un par de iteraciones, el cliente les pidió que cambiaran su código para utilizar clases parametrizables, porque ya estaba harto de que le cobraran cada vez que hubiera cambiecitos. Y eso, a mi entender, es el valor principal de una solución SOA: poder generar fácilmente la infraestructura para consumir servicios con nada o poco de código, sin tener que ensuciarse las manos con el parser de XML ni la especificación de SOAP, o preocuparse por las versiones de las librerías.

Claro que siempre es útil saber someramente cómo funciona la solución, porque siempre sale un pelo en la sopa: la librería que utiliza tu solución es incompatible con tu app server, la versión de Java es distinta, o la versión de SOAP es la que te ocasiona problemas, el WSDL no es visible desde internet (o sí es visible pero el servicio no), etc...
(Y por cierto, para hacer debugging de web services no hay como el TCPMon de Axis - org.apache.axis.utils.tcpmon- ).

Así que ya quedamos en que no hay sustituto para estar informado y saber más o menos cómo "trabaja" la solución, pero el ideal es por supuesto llegar a un nivel de abstracción y estabilidad que no tengamos que preocuparnos por detalles, así como ocurre mientras escribo esto, y no estoy pensando en si mi Centrino Dual Core 2 estará dividiendo correctamente las tareas en procesos simultáneos virtuales, o si el Firefox no tendrá algún problema con cajas te texto de más de 1,500 caracteres...

Y por cierto, ya le corto aquí, para no hacer corajes si en efecto alguna de estas cosas está funcionando mal. Uno nunca sabe.