Bloqueo aurículo-ventricu... ¿qué?

Fue un fin de semana atípico. No todos los viernes por la noche tu vieja te llama para contarte que está camino a una clínica a internarse.

Está todo bien, pero sí, mi vieja está internada hasta que en los próximos días le coloquen un marcapasos. La internación es digamos que meramente preventiva, para que pueda estar continuamente monitoreada.

No voy a dar demasiados detalles por acá... pero digamos que bien podría no haber contado el cuento. El diagnóstico que tiene es un bloqueo aurículo-ventricular completo. No es joda, para nada, pero una vez diagnosticado, y una vez colocado un marcapasos que reestablezca el "sincronismo" del bobo, todo se arregla.

Lo que a todos nos consternó más, y nos preocupó más... es que la forma en que se descubrió esto fue absolutamente casual. Te deja pensando mucho...

  • Que importante es darle bola, PERO EN SERIO, a ciertas molestias;
  • Que importante es vivir y disfrutar el momento;

Brazil

La nieve me detuvo de seguir descontando películas pendientes en el cine, así que aproveché para ver Brazil, en DVD. La tenía pendiente hace bastante tiempo, recomendada por varias personas como una película "que hay que ver".

Me encantó. Rara. Bizarra. Ocurrente. Con una temática que dejando de lado espacio y tiempo, en el fondo, es muy actual. Tiene una estética sumamente ocurrente y original, y algunas actuaciones que sorprenden. Hay que considerar que es de 1985... y así y todo, sorprende.

Definitivamente es una de esas películas "de culto" que hay que ver. No me extraña que en su momento haya tenido problemas de taquilla en los cines, y que el reconocimiento haya sido en cierta forma "póstumo", a partir de su re-edición en VHS (y luego, en DVD). Para la época de su estreno, quizás fue demasiado original / rara. Hoy, ha corrido mucha más agua bajo el puente... y como decía antes, es más fácil dejar la estética, el simbolismo y los delirios de lado, y ver que el argumento de fondo... es para pensar.

El final fue completamente inesperado. Y me sorprende que en otro contexto, me hubiera desilusionado... pero en este caso, va de la mano con la película. 100%.

¡Nieve en Buenos Aires!

Son esos fenómenos tan tan tan raros, que nunca pensé que llegaría a verlo.  Empecé a escuchar expresiones de asombro en el edificio, me asomé a la ventana... ¡y estaba nevando! Y los diarios en internet y la tele lo confirmaban... así que NO, no estaba alucianando.

Ok, fue una nive finiiiiiiita, que no llegó a acumularse en el suelo. Y que quizás algún meteorólogo discuta si técnicamente hablando es nieve... pero da igual. Nevó :)

La vez anterior, fue el 22 de junio de 1918, hace casi un siglo. Son esas cosas que cuentan mis abuelos, y ni siquiera porque las recuerden (mi abuelo Roberto, por ejemplo, apenas tenía 2 añitos en ese entonces), sino porque mis bisabuelos lo vivieron/contaron.

Me emponché con todo lo que tenía, y me fuí a dar una vuelta por el barrio, para sacar algunas fotos. Mi cámara y mis conocimientos de fotografía, sumados a la poca luminosidad no ayudan al resultado... pero son mis fotos. Las saqué yo. Un 9 de julio de 2007, en que... ¡nevó en Buenos Aires! Y yo estuve ahí :)

Algunas fotos, acá.

Actualización: Y son casi las 21.00, y sigue nevando. Y más que esta tarde. Ahora sí, al mirar por la ventana ya se ven algunos tejados blancos. Impresionante. Lástima que está muy oscuro como para sacar fotos, y que salga algo medianamente decente. Quien sabe... a lo mejor... mañana a la mañana, cuando me levante, el fenómeno persiste, y puedo fotografiar algo.

Cena con amigos y Shrek Tercero

El sábado finalmente se dió la reunión postergada un par de veces en casa de Dani y Cande. Además de los anfitriones, estuvimos Seba, Caro, Darío, Aby, Marisol, Martin, Diego, Mariana y yo. Lo pasamos muy bien, y la verdad que podríamos reunirnos más seguido. A pesar del compromiso de no hablar de laburo... digamos que el laburo es un común denominador, así que fue inevitable... aunque para el lado de recordar anécdotas :). Me divertí mucho; algunas ya las conocía, otras no. Gracias Cande y Dani por la invitación. Y ojalá podamos repetir estas cosas con más frecuencia.

El domingo aproveché un día sandwich tranquilo para empezar a descontar películas. Se me están acumulando, mal. Arrancamos con Shrek Tercero. A pesar de algunas críticas no-muy-buenas que había escuchado respecto a la originalidad, a mi me gustó mucho, y no se si podría decir que está mejor o peor que la dos. Obviamente no sorprende tanto como la primera, que fue una revelación. Pero no me parece que los autores hayan perdido (tanto) la inspiración como se comenta. Es Shrek... ¿qué esperaban? Para mi, vale la pena.

No más dual-boot en mi laptop (chau Windows!)

Hace unas semanas atrás comentaba que estaba experimentando con herramientas de virtualización, y que si todo iba bien probablemente eliminaría la partición física de Windows XP Home, para usarlo solamente en una máquina virtual. Hoy completé esa movida.

Finalmente, me decidí por VirtualBox. Está andando muy bien; probé varias herramientas pesadas (SQL Server Express, Visual Studio Express, ...) y no tuve ningún problema. Alguna que otra vez la VM abortó, por ejemplo, luego de mirar algún trailer en formato QuickTime de los del sitio de Apple usando Firefox. Pero han sido casos aislados... si bien la VM no debería abortar así de feo, me ha pasado colgar Windows "nativo" esporádicamente también, así que no se hasta que punto la falla es en la VM, o Windows se va al cuerno, y la VM no llega ni a dar un mensaje de error y aborta. Anyway, no fue motivo suficiente para no migrar.

Realmente esta configuración es más útil. De hecho, desde que estoy usando Windows así, lo booteo un poquitín más seguido. Es como que la barrera de dejar mi entorno de trabajo para iniciar otro OS desaparece... puedo curiosear algo en Windows, y mientras tanto sigo usando Ubuntu. E incluso los puedo tener en red, como si fueran dos equipos. Así que incluso es más fácil compartir recursos entre ambos. ¿Qué pierdo? La aceleración 3D dentro de Windows. Pero como no uso aplicaciones 3D en Windows, no me afecta. Y es algo en lo que todos los productos de virtualización están trabajando (de hecho, algunas versiones de VMWare y Parallels la soportan en ciertas condiciones/plataformas), así que quien sabe... de acá a que lo necesite (si es que llego a necesitarlo), quizás esté resuelto y todo. Por lo que veo, es la única cosa que impide que el tema de la virtualización despegue del todo fuera del mundo server, sobretodo por los gamers. Porque por todo lo demás, es mucho más conveniente que un esquema de dual-boot.

La movida terminó implicando comprar más RAM para la laptop. Si bien no era imprescindible (con la RAM que tenía las cosas andaban), se notaba que le estaba robando 512M de memoria al OS para correr otro... y como la inversión en más RAM es algo que había quedado pendiente, y de todos modos pensaba hacerla tarde o temprano, aproveché la "excusa". Después de pedir un presupuesto a Dell (que básicamente me pasó un precio absolutamente traído de los pelos), evaluar la posibilidad de comprar a través de internet en el exterior, averiguar un poco en MercadoLibre, y googlear otro tanto, dí con Vulcano (aka "Notebook Outlet"). La experiencia de compra con esta gente resultó EXCELENTE: todo por internet/e-mail, rápido, automatizado... un lujo. Recomendable. Y (dentro de Argentina) resultó la alternativa con mejor precio.

Hoy dí el último paso, que fue borrar Windows, y reorganizar las particiones en disco para que queden más prolijas. Ya había quedado "rara", producto de que el esquema de particionado de Dell es raro, y yo lo "manosié" para instalar Ubuntu. Además, con el agregado de RAM me había quedado corto con la swap (y si bien con 2GB de RAM no swapeo nunca, es importante para suspender el equipo). Así que me puse a reorganizar.

El esquema que tenía, es este:

  • Partición primaria de DellUtility (47M)
  • Partición primaria de Windows XP (20G)
  • Partición Extendida (~55G)
    • Partición boot de Ubuntu (100M)
    • Swap de Ubuntu (1G)
    • Volúmen LVM, conteniendo mis filesystems "/", "/home" y "/opt" (54G)

... y lo llevé a este:

  • Partición primaria de DellUtility (47M)
  • Partición primaria de boot de Ubuntu (200M)
  • Partición Extendida (~74G)
    • Swap de Ubuntu (2G)
    • Volúmen LVM, conteniendo mis filesystems "/", "/home y "/opt" (57G)
    • Algo de espacio libre no asignado...  para pruebas y demás (15G)

A veces hay gente que me dice que tener LVM en un desktop o laptop es demasiado... bueno, no. En situaciones como ésta, se paga solo el haber transitado la (pequeña) curva de aprendizaje de saber manejarlo, y tener mis datos en volúmenes LVM. Mover el boot y el swap de un Linux es relativamente sencillo: Solo basta arrancar con algún LiveCD, reacomodar, reconfigurar el gestor de arranque y listo. Pero mover de acá-para-allá particiones con datos NO es tan trivial... salvo cuando usás LVM :)

Si bien el cambio lo tuve que hacer en 4 o 5 etapas, moví TODO sin perder los datos, sin tener que reinstalar, y sin tener que pasar los datos transitoriamente a otro disco mientras "reacomodaba" las particiones.

Corolario: No más dual-boot, mi Windows XP Home corre virtualizado dentro de Ubuntu, y ahora tengo suficiente RAM para jugar más cómodo con esto de la virtualización. Por ejemplo, para cumplir el proyecto largamente postergado de empezar a probar más temprano en el ciclo de desarrollo las versiones alfa de Ubuntu, e involucrarme más en la comunidad.

A veces no hay nada mejor que un editor "de verdad", como Vim

(Emacs fans: ya sé que Emacs es también un editor de verdad... pero el punto de este post no es Vim vs Emacs)

Desarrollar en ASP.NET con C# sin Visual Studio .NET es complicado. O al menos Microsoft se esfuerza bastante en que así sea. Y cuando uno tiene que trabajar en equipo, es complicado si cada uno usa su propia herramienta... así que en el laburo todos usamos VS. Como todo super IDE, tiene cosas buenísimas, cosas más o menos, y cosas malas. Como editor de texto... está bastante bien mientras uno hace cosas estándares. Pero no es la primera vez que me pasa que para hacer una edición "de verdad", no queda otra que recurrir al viejo y querido Vim (que es mi editor de elección en otras plataformas / proyectos personales / lenguajes).

Imagínense que tienen una clase que expone unas 200 propiedades de este estilo:

///
/// Kms Extendidos para Traslados
///
public int KmsExtendidosTraslados
{
    get
    {
        return ((int)_sesionInfraestructura.ValorParametro("KmsExtendidosTraslados", "Cantidad de Kms a partir de la cual se considera Extendido", "GEN", "E", "50"));
    }
}

... y tienen que transformarlas a TODAS, siguiendo este estilo:

///
/// Kms Extendidos para Traslados
///
private int? _kmsExtendidosTraslados = null;
public int KmsExtendidosTraslados
{
    get
        {
            if (!_kmsExtendidosTraslados.HasValue)
                _kmsExtendidosTraslados = (int)_sesionInfraestructura.ValorParametro("KmsExtendidosTraslados", "Cantidad de Kms a partir de la cual se considera Extendido", "GEN", "E", "50");
            return _kmsExtendidosTraslados.Value;
        }
}

En este momento, no importa demasiado que hace ese código, ni el por qué del cambio (aunque creo que para más de uno puede ser bastante obvio, aún fuera de todo contexto...).Lo imporante, es que hay unos cuantos "desafíos":

  • hay que declarar una variable privada del mismo tipo, pero nullable, e inicializada en null;
  • la variable se llama igual que la property, pero en minúscula, y con un "_" delante;
  • la invocación al recupero del parámetro queda dentro de un if, que controla si el nullable tiene o no valor;
  • la invocación al recupero del parámetro no es más parte del return, sino que se asigna a la variable privada;
  • el return devuelve el valor del nullable;

Y todo esto, teniendo en cuenta que:

  • no todas las properties son del mismo tipo de datos;
  • obviamente todas se llaman diferente;

Digamos que no era un trabajo para "copy & paste". Se puede perder buena parte de un día de trabajo haciendo eso (y lo triste, es que a veces, se hace!)

¿Solución?

Enter Vim

Me llevó unos 15' minutos, haciendo un par de pruebas, grabar una macro tal que parado en la línea donde arranca la property (el "public int ..."), se re-escribía automagicamente la property al nuevo formato. Y hacía rato que no hacía estas cosas en Vim, así que no menos de la mitad de ese tiempo se fué googleando para recordar ciertos comandos de selección y movimiento relativo.

Una vez escrita la macro, el refactoring de toda esta clase con sus aproximadamente 200 propiedades no llevó más de 5 minutos (solo había que hacer un search de las líneas que arrancan con "public", y ejecutar la macro en cada una).

¿Vim es la única herramienta para hacer cosas así? No, imagino que no. Nobleza obliga, hay que reconocer que Ezequiel estuvo a un pelito de hacer algo parecido con Notepad++ (un editor "de verdad" para Windows, MUY recomendable si no quieren aprender Vim...)

Pero ciertamente es la clase de cosas para las cuales Visual Studio (y para el caso Sharp Develop, Eclipse, Mono Develop, y cualquier otro mega-IDE) sencillamente NO SIRVE.

Quizás podría haberse encarado esto mediante algún search&replace usando expresiones regulares... pero realmente hay que tenerla bastante clara en expresiones regulares para escribir una que realice ese laburo (y así y todo tengo mis reparos: hay casos en los que el parámetro es un string, y su valor por defecto (el último argumento del método ValorParametro) puede ser por ejemplo una URL, con sus correspondientes caracteres extraños). No es mi caso. Y si bien Vim tiene su barrera de entrada para los que no saben usarlo... me parece que es más fácil (y útil en muchos más escenarios) aprender a usar Vim, que hacer una maestría en expresiones regulares.

Me parece que en el toolbox de TODO programador que se precie, debería encontrarse el uso medianamente "avanzado" de algún editor de verdad. Si nunca te topás con este tipo de refactorings, es que nunca participaste de un proyecto de desarrollo grande. Y si te topaste y lo resolviste reescribiendo el código a mano durante todo un día... estás perdiendo tu preciado tiempo haciendo un laburo repetitivo, aburrido y horrible, con el correspondiente riesgo a introducir bugs en el camino, solo por no usar la herramienta correcta.

Más fotos en Flickr

Listo, migré a Flickr las fotos de la travesía combinada Lolog/Laguna Verde - Lacar/Lolog del 2005. Están acá y acá respectivamente.

Estuve dandole vueltas al asunto, y no voy a migrar las fotos de Valdes '03 y Azul/Raquel '04. ¿Por qué? Porque son fotos escaneadas. Pésimamente escaneadas. Después de mucho revolver en mi casa hasta dar con los CDs originales que me habían dado cuando las revelé (sí, son de esa época en que uno revelaba fotos...!), me dí cuenta que aunque las suba en la máxima resolución, están sumamente pixeladas, y no se aprecian bien. Me da pena porque esos dos álbumes constituyen en cierta forma el único relato que tengo de aquellos viajes... ya que en aquel momento tampoco tenía un blog propiamente dicho. Así que después de meditarlo un poco, hice lo siguiente:

  • El botón "ALBUMS" de la cabecera del blog, ahora apunta a mi página de sets en Flickr.

Nota

Las galerías de fotos de Valdes y Azul/Raquel no están más acá. En este momento no están disponibles on-line en ningún lado.

  • Para referencia futura mía, y/o por algún memorioso que recuerde que existen, las fotos de Valdes y Azul/Raquel forman los únicos dos álbumes que quedaron hosteados acá, y la URL sigue siendo http://chaghi.com.ar/albums/, solo que ese link no figura ni en la cabecera ni en la barra de navegación del blog... así que tenés que llegar ahí porque sabés que existe, o porque pasaste primero por este post ;) (ok, o porque Google te ayudó... aunque ahora que lo pienso, me parece que esa página no se indexa).

Esto pseudo-termina la migración de historia a Flickr. Si bien tengo muchísimas más fotos, en general corresponden a cumpleaños, reuniones familiares y/o con amigos, y ese tipo de cosas, que no creo que nunca me tome el trabajo de subir. Algunas de esas fotos están subidas en forma aislada para ilustrar algún post en el blog... pero nada más. No vale la pena subirlas todas, clasificarlas, taggearlas y demás.

Lo único que me queda pendiente, es subir más fotos del viaje a Europa. De las 800-y-pico que tengo, solo publiqué unas 80. Y tal vez, con tiempo, complete también un poco los otros álbumes. En promedio tienen unas 20-y-pico de fotos cada uno, mientras que en mi disco rígido debe haber cerca de 100 fotos (a veces más) por cada una de esas vacaciones.

La verdad tengo una disyuntiva con eso... la fácil es subir todo y listo. Pero no me gusta, porque hay muchísimas fotos que no dicen nada, que no valen la pena, son repetitivas, o lo que fuere. Hacer una selección lleva su tiempo, y más aún agregar descripciones. Y creo que los viajes están muy bien ilustrados por las fotos que ya están publicadas. Así y todo, no termino de decidir.

Sion, una mala (o avivando giles...)

Yo dije que a veces era una de cal y otra de arena...

Mi abono de ADSL de Sion era de los primeros que salieron al mercado. 256 Kbps. Para los estándares de hoy, modesto. Mucho.

Cada tanto (muy cada tanto) miraba los precios de los abonos con mayor ancho de banda, y las ofertas para clientes "nuevos", y me preguntaba que sentido tenía serle fiel a una empresa durante años, si tratan mejor (léase, con mejores precios) a la gente que recién se suscribe. Más de una vez estuve tentado de cambiar de empresa, solo para disfrutar los 3 a 6 meses cuasi regalados de otras compañías. Y más de una vez, analizando fríamente los números, analizando cuando terminaría pagando una vez pasado el período "durante XX meses somos re-buenos", llegaba a la conclusión que mejor me quedaba en Sion, y con mi modesto abono de 256 Kbps, porque:

  • la diferencia de precio por 512 Kbps no era mucha, pero tampoco es un ancho de banda suficiente para el volumen de datos que uno sube/baja de la red hoy en día;
  • para un abono de 1024 Kbps ya era demasiada guita;
  • y encima muchos planes tenían "trampa": XX horas de navegación plana, y después, te cobraban por hora;

... así que me decía a mi mismo, "ok, me quedo con mi abono "256 Premium" (que entre paréntesis, hace rato que no existe más, en el sentido que si un cliente nuevo quiere contratarlo, el plan mínimo de hoy día es de 512 Kbps)

Hasta hace 20 días. Un fin de semana, en Bella Vista, envidiando el plan de Speedy de mi hermano de 1024 Kbps, una vez más entré en la página de Sion y me puse a mirar precios. Y... ¡oh, sorpresa! Resulta que habían cambiado. Habían BAJADO los precios. Y el abono "Professional" (sin limitaciones, 100% plano) de 1024 Kbps estaba incluso unos pesos MÁS BARATO que mi plan de 256 Kbps. ¿A Uds. les avisaron? A mí tampoco.

Al día siguiente llamé a Sion, les plantié la situación, les pregunté si me estaban estafando, tomando el pelo, o que, y muy amablemente me ofrecieron cambiar de plan. El argumento fue algo así como "es que hace muy muy poquito que cambiamos los planes, imagínese que no podemos nosotros unilateralmente cambiar todos los contratos". Claro. Eso no pueden. Pero cobrar si pueden. Interesante.

Fin de la historia: Hoy a mediodía (luego de 15 días de espera, y un par de idas-y-vueltas técnicas), ya tengo 1024 Kbps.

Así que, estimado lector: Si sos cliente de Sion, te recomiendo que entres en su página, y compares los precios de los planes nuevos con lo que estás pagando actualmente... no vaya a ser que alguien te esté tomando el pelo.

Pizzeada en lo de Romi

¡Al fin! Después de más de un año de estar amenazando, y postergándolo por múltiples razones, Romi se puso las pilas y ayer nos invitó a comer unas pizzas caseras.

El evento en realidad iba a ser el sábado pasado, pero hubo que postergarlo por una bronquiolitis de Sofía. Y cuando parecía que iba a quedar otra vez en el olvido... a pesar de la lumbalgia de Romi y la gripe galopante de Diego (¡estamos hechos mierda!), nos juntamos igual este sábado.

Además de la pizzeada y la mateada, hubo tiempo de sobra para que Cristian y Romi se babeen con su ahijada, para que Luca y Josefina corran atrás de Bruno (el perro), y para que la pasemos muy bien. Como siempre, bah! :)

Algunas fotos del evento:

Romi, Sofi y Diana Sofi, Romi, Luca, Cristian y Josefina Todos juntos