Migración, v. 2.0: Nos vamos a Amazon!

Estaba yo bien tranquilo el fin de semana, trabajando, como dios Yopas manda… Ok, ok, me estaba rascando la panza, cuando jusafing me comentó que el servicio de EC2 (Elastic Cloud Computing) de Amazon, por alguna extraña razón, estaba siendo gratuito (con sus respectivas limitantes) para clientes nuevos. Interesado, traté de activarlo con mi cuenta existente, pero – oh sorpresa – me comenzaron a cobrar. $1.04 USD después, me desanimé (no queriendo crear otra cuenta en Amazon) y dejé las cosas hasta ahí, en parte porque había mucha chamba que sacar.

Pero hace un par de días se me ocurrió darle otro intento. Y esta vez… voilá! Sin problemas. Así que decidí empacar el itacate de sergiob.org y migrarlo a este nuevo servidor. Debo decir… funciona bastante bien. Al menos tan rápido (en procesamiento) como sergiob 2.0, y ciertamente con mucho mejor enlace de red (digo… mínimo, no? Está en la fucking cloud!) Así que… nos mudamos!

Beneficios inmediatos: mejor conexión de red, disponible en puerto 80 (y el puerto 800 todavía, por cuestiones de compatibilidad), mejor seguridad, menor costo (nulo, de hecho).

Beneficios a futuro: … déjenme pensarlo…

Desventajas: Pues nada, en realidad. Todavía conservo el viejo servidor, y lo tengo ruteado para usos (más) personales.

Algo que me preocupa es la privacidad de mis datos. Pero bueno, sergiob nunca ha tenido información confidencial, y no pienso comenzar ahora. Posiblemente mude este blog a un subdominio dentro de poco, pero no hay nada seguro aún.

od, y la importancia de los saltos de línea

Cuando uno se dedica al negocio de la computación, a veces se nos olvida que lo que nosotros vemos no es exactamente lo que las computadoras procesan. Lo que para nosotros son frases, imágenes o sonido, las computadoras interpretan como señales: análogas (como cuando hablamos por micrófono) y digitales (casi todo lo demás), también llamadas discretas.

Este punto salió a colación hace apenas unos minutos, mientras trabajaba en una rutina de firmado. Para quienes no lo conozcan, el proceso de firmado digital funciona de la siguiente manera:

– Obtener los datos a firmar
– Calcular una suma (también conocido como hash) de los datos — un valor único y (supuestamente) irrepetible que identifica dichos datos.
– Cifrar esta suma obtenida, con alguna llave privada.

El proceso es probablemente mejor explicado por Wikipedia, pero el concepto es sencillo. Particularmente para aquellos que entienden criptografía de llave pública… pero creo que me desvío del tema. Ligeramente.

El problema de este tipo de firmados es que las sumas son extremadamente sensibles a cambios en los datos. Para ejemplo, vean los resultados de dos cadenas ligeramente diferentes. La cadena “hola”, calculando su MD5 (un tipo de suma), nos entrega:

916f4c31aaa35d6b867dae9a7f54270d

La cadena “hola.” (nótese: idéntica, excepto por el punto al final) nos entrega un MD5 completamente diferente:

296366cea89e11cdc7999e42463575fe

De hecho, esta es la (supuesta y desde hace años demostrativamente falsa, en algunos casos) fortaleza de las sumas de seguridad. La idea que una combinación de datos diferente nos entregue, siempre, necesariamente, resultados diferentes, es la raison d’être de las sumas de seguridad.

Bueno, pues todo suena fabuloso, excepto cuando no te sale. Resulta que el proceso de firmado que estabamos realizando (un proyecto del cual hablaré más después) no estaba funcionando como debe. Y después de varios días de estarme peleando mentalmente con el problema (‘debe ser un problema con el algoritmo’, pensaba) me decidí a adentrarme en el problema a fondo.

Revisé el RFC respectivo; busqué soluciones alternativas; visité blogs extraños en busca de respuestas. Nadie supo darme razón de lo ocurrido, aunque para ser franco no *consulté* con nadie, más bien busqué y no encontré. De pronto, y por pura suerte, encontré una alusión al estándar de codificación (UTF-8, en caso de que alguien esté interesado), y eso me hizo pensar — los estándares de codificación solo son diferentes representaciones binarias de lo mismo. Binarias… binarias…

Seguramente algún problema había con la representación binaria. Si cambiamos una letra, las sumas cambias – es evidente, porque cambiamos el bloque de bits. Una codificación diferente seguramente causaría un efecto desastroso en las sumas. Y me dí a la tarea de investigar como buscar la representación binaria de algo, en linux (siendo este mi plataforma de preferencia para lo que estamos haciendo).

Me topé con un viejo amigo: hexdump. Este comando permite la salida hexadecimal de información. Nada del otro mundo, y aparentemente no encontré nada. Pero persistió la búsqueda. Me fuí a topar con este post (casualmente, una mezcla de problemas con MD5 y visualización binaria). Y discuten un punto sencillo: la salida de una función de cálculo MD5 y la salida del comando clásico de linux, md5sum, no son las mismas. Pero… ¿porque?

Un vistazo con od (un comando de salida octal, así como de otros formatos – según su manpage) dió la respuesta:

io@maquina:~$ echo “hola” | od -c
0000000 h o l a n
0000005

Nótese el molesto, maligno y nada bien recibido salto de línea, al final de “hola”. Yo no lo puse. ¿Quién diablos se atreve a modificar mi cadena?

El sistema, aparentemente. Linux es muy servicial, y se dispone a agregar saltos de línea a cualquier “echo” que yo realice. De hecho, debo especificar explícitamente que no se den estos saltos. Y eso hace, por supuesto, toda la diferencia a la hora de calcular una suma – esos bits adicionales para señalizar el salto de línea son tomados en cuenta para el cálculo.

Basta comparar las salidas:

io@maquina:~$ echo “hola” | md5sum
916f4c31aaa35d6b867dae9a7f54270d –
io@maquina:~$ echo -n “hola” | md5sum
4d186321c1a7f0f354b297e8914ab240 –

Donde, por supuesto, “echo -n” especifica a echo que NO incluya un salto de línea al final.

Regreso a mis actividades, por el momento. Pero el día de hoy no se me olvida… y en el futuro, tendré más cuidado con estas salidas. Detalles que uno va aprendiendo poco a poco… 😉

Iusacell y el monopolio ‘by default’

A dos meses de que Iusacell presentara su más poderosa oferta en teléfonos inteligentes, el Motorola Droid (renombrado MotoRoi en nuestro humilde país, aunque no debe confundirse con el más poderoso MotoRoi coreano), me entero en la semana que Verizon (que lleva un año comercializando el Droid en los Estados Unidos) retira el (y cito) “veterano teléfono” por el nuevo y mejor modelo, el Droid 2.

Ahora, no sé los demás, pero… ¿qué demonios, Iusacell? Por fin llegas a ofrecer una alternativa contra el monopolio del iPhone de Telcel (y es que… de verdad, si creen que un Blackberry es un smartphone, les ofrezco que experimenten con un iPhone o dispositivo de Android un día de estos) y… qué demonios?! Nos entregas un dispositivo de penúltima tecnología (lo cual, el iPhone, no es), y esperas que paguemos igual o más que por un iPhone? Así no vas a atraer muchos clientes, al menos no aquellos quequieran el mejor valor por su dinero…

En fin, me entristece observar esto. En un mes, Telcel va a sacar al mercado mexicano el iPhone 4 (a solo 2 meses de su liberación en E.U.) y Iusacell… sigue con su teléfono de un año de antigüedad. Lástima que se cree un monopolio así nada más…

Corrigiendo el error de empathy con MSN en Ubuntu 10.04

Hace como tres semanas se me ocurrió la loca idea de migrar de Debian Lenny a Ubuntu, con eso de que había ya salido la versión 10.04 (Lucid Lynx) y que esta es una versión LTS (Long Term Support, o bien de Soporte de Largo Plazo… tres años en particular). Me dije: Porqué no ahora?

Todo marcha de maravilla, con la notable de excepción de su cliente por defecto para mensajerías, llamado Empathy. Empathy es un proyecto de GNOME que está bastante apoyado – es decir, tiene apoyo de muchos frentes – y se ha convertido en el cliente por defecto del tal Ubuntu. Nada mal, excepto por el hecho de que su soporte para características del protocolo de MSN apesta. Y apesta feo.

La bronca con el tal Empathy es que, de vez en vez, se pasma la conexión. Ya no actualiza los contactos, ya no recibo (ni puedo enviar) mensajes, y lo peor… no me puedo desconectar. Bueno, al menos no con la interfaz que me proporciona Empathy. Según él, se desconecta (y luego vuelve a conectarse), pero son notablemente patrañas.

Un par de veces me desesperé y acabé reiniciando (sin comentarios), y todo volvía a la normalidad. Pero evidentemente esta no es forma de vivir… así que me puse a investigar. Primero, instalé el aMSN en un acto de desesperación, bajo el razonamiento de “si la conexión está trabada, el conectarse/desconectarse con otro cliente lo va a hacer funcionar”. Y no resultó como esperaba; efectivamente, aMSN pudo exitosamente conectarse y desconectarse, y sacó al Empathy de su estupor. Pero ahora se quejaba de que no podía conectarse por un (bien explicativo): “Network Error”. Hmmm….

Resulta que Empathy trabaja con un framework llamado “Telepathy” para el manejo de sus conexiones. Se ve bonito, platicado te lo pintan muy completo, pero esa cosa es la que acaba trabándose. La razón por la cual lo digo es que en este viejo bug report de GNOME hablan de un post que describe una posible solución; específicamente:

ok try this remove telepathy-butterfly an you should just have telepathy-haze installed try connecting with that

Lo cual me hizo investigar los fulanos módulos telepathy-*. Esto fue lo que dijo Debian:

||/ Name Version Description
+++-=================================-=================================-==================================================================================
ii telepathy-butterfly 0.5.9-0ubuntu1 MSN connection manager for Telepathy
un telepathy-connection-manager (no description available)
ii telepathy-gabble 0.8.12-0ubuntu1 Jabber/XMPP connection manager
ii telepathy-haze 0.3.4-1 A telepathy connection manager that use libpurple
ii telepathy-idle 0.1.6-1 IRC connection manager for Telepathy
un telepathy-mission-control (no description available)
ii telepathy-mission-control-5 5.3.2-3 management daemon for Telepathy real-time communication framework
un telepathy-python (no description available)
ii telepathy-salut 0.3.11-1 Link-local XMPP connection manager for the Telepathy framework
un telepathy-sofiasip (no description available)

Hmmm… entonces me fuí a ver el proceso y…

sbecerril@dolphins:~$ ps -e | grep telepathy
5320 ? 00:00:04 telepathy-butterfly

Ok… so… este debería ser el proceso trabado. Un simple kill (cortés, sin llamar a -2 ni a -9 por supuesto)…

y voilà! Empathy revivió.

Ahora… a escribir un script que haga eso recursivamente… 😛

Cybersquatter a la vista!

Cuando tenía mi viejo dominio (sergiobecerril.homelinux.com) me justificaba diciendo que era un dominio largo, pero explícito: soy yo (sergiobecerril) en casa, usando linux (homelinux) y pues… pues el .com es el más reconocido, nooo? Además, tenía la ventaja más grande de todas: era gratuito. Y es que el prospecto de pagar $30 USD por año no se me hacía muy apetecible, con mi salario de $2,000 MXN y todo.

Pasaron dos años… y gracias a jusafing, decidí por fin apretarme el cinturón y comprarme el dominio. No me salió tan caro (alrededor de $80 USD), y me permitió hacer un secret registration, DNS dinámico, y toda la cosa. Por un año, por supuesto, pero aún así estuvo muy bien según yo.

El punto es que a la hora de comprarlo, decidí conseguir un .org. Había dos razones: el precio (.org es más barato) y el propósito del sitio. Como saben, tengo yo diferentes prospectos de negocio (aquí es donde irían mis diferentes links, pero ya vendrá el tiempo después), y cada uno tiene su sitio particular. Me pregunto… ¿qué necesidad habría de que registrara un .com a mi nombre, si lo pienso utilizar para propósitos personales? Ninguno, supuse. Y entonces me quedé con el .org. Ya no había sergio.org, pero sí un sergiob.org.

100 posts después, me entero que mi noble y humilde sitio tiene ya un cybersquatter (vayanse al cuerno con su término latinizado, eso no existe). Y pues… es una mezcla curiosa de orgullo paternal y horror personal. Digo, que orgullo que alguien me quiera imitar, pero… en serio? Ya no hay respeto por nada en este mundo?

Para no hacerles el cuento (más) largo, sergiob.com ya es de alguien. Y tiene una horripilante plantilla “ya está” tipo José Luis (y aquellos que no entiendan, créanme, les conviene no saber. Oh por Dios, el horror…) La cosa es que nunca me imaginé que a alguien le interesaría ese tipo de cosas con mi dominio. Google no me muestra entre los resultados más populares (cosa que, curiosamente, sí ocurría con M&N, pero nunca supe porqué). Sigh…

Supongo que solo queda esperar a que me llegue la oferta. O salga el blog de “…poco aprieta”

¬¬

Mejor no doy ideas.

Bye bye, Telmex!

El fin de semana pasado, se me ocurrió jugar Madden un ratito. Estaba yo feliz, masacrando a una pobre alma indefensa en un juego en línea, cuando de pronto, ya en el cuarto cuarto, me salió un horrible mensaje:

“You have lost the connection to your peer”.

Y así, sin más, perdí el partido. No fue, ni por mucho, la primera vez que me había pasado esto. Telmex, en su infinit(a?um?) sabiduría, sustituyó hace unos meses mi viejo y fiel modem 2Wire Home Portal (aquel que me duró desde mi contratación de infinitum en Diciembre de 2005) por un horripilante, buggeadísimo e inestable modelo Thomson (TG585V7, para los curiosos). Aquí va una foto:

Modem Thomson
Modem Thomson

Este pequeño bastardo me costó más de 20 partidos de Madden, reseteándose en los peores momentos. En dos ocasiones separadas, me dejó sin conexión por dos días completos… Y Telmex solo ofrecía sustituirlo por otro igual – poco sorprendente, considerando sus otras políticas de servicio. Para colmo, la señor(a?ita?) que me atendió pensaba, creo yo, que me estaba haciendo un favor al siquiera contestarme, y me trató básicamente como si le estuviera pidiendo caridad al pedirle que me solucionara mi problema. En suma con todos los demás problemitas que he tenido con Telmex a lo largo de los años, esto fue la gota que derramó el vaso.

Muy empresarialmente, el día siguiente me dí a la caza de proveedores de Internet. En realidad no fue una búsqueda a conciencia; me metí a Google y escribí algo así como “proveedores internet mexico”. Media hora después, andaba navegando en el sitio de Axtel… y cotizándome un enlace de 2 Mb + 200 llamadas locales (+ una serie de servicios, como llamada tripartita, etc, que realmente no creo utilizar) por la digerible cantidad de $389 al mes. Hasta el mes de Febrero, andaba yo pagando unos $700 al mes con Telmex… y eso por medio internet.

Hice click en una opción para que me llamaran, y hasta ahí quedó la cosa. Ya me había olvidado de ello cuando, el martes en la mañana, me contactó un representate de Axtel, me dijo que la instalación quedaría en $200 MXN, me pidió mis datos, y tras una sesión de ventas (recuerdo bien la frase: “qué necesita para contratar hoy mismo?”) durante la cual se me aseguró mi servidor sería bien recibido, contraté el servicio. El mismo martes les deposité, el viernes vinieron a instalarme la antena, y voilà! Internet a 2 Mb. De hecho, a 2.5… al menos a ratos. Viva la WiMAX.

Así es, estos chamacos locos están utilizando lo último en tecnología inalámbrica. Mi antenita desentona un poco con el entorno, considerando que mi humilde hogar es de un piso y la antena está justo a lado de una chozita que utilizamos como mini-bodega para triques viejos, pero funciona súper bien, y trate tanto la voz como los datos. Su router se ve sencillón pero es muy funcional, soporta todo lo que necesito incluyendo dyndns, wpa2 para la wireless, y un muy decente firewall. Y el servidor? Pues me tomó un par de días llegar a la configuración correcta, pero los de Axtel me ayudaron en cada paso y finalmente, ya estamos de vuelta en línea (después de 4 días offline, no es que nadie lo haya notado). sergiob no había estado tan feliz desde que le compré su ruteador 3com (ya retirado).

En fin, yo estoy feliz. Le digo adiós a mi linea de 10 años, la que me permitía colgarme al teléfono de Telmex cuando usabamos dial-up, y hacer llamadas largas con mi chica en la noche sin que mi mamá dijera “a ver a que hora cuelgas!” por la extensión.

Bye bye, Telmex. Y no es que me vaya con rencores, pero voy a recomendarle Axtel a TODOS mis amigos. Digo… están poniendo fibra de 10 Mb en sectores selectos de Monterrey! 10 Mb! Qué están haciendo ustedes??

Ah sí, y algo acerca de mi cumpleaños. Gracias a todos por todas las felicitaciones 🙂

Infraestructura sergiob.org
Infraestructura sergiob.org