CP2102 UART Bridge

(Esta entrada es la tercera parte de una serie que cubre un proyecto personal que realicé en el verano de 2014; pueden ver todas las partes aquí).

La familia de adaptadores USB ↔ serial cp210x es bastante común para la gente que quiere comunicarse con hardware de forma serial. Hace unos años (tal vez habría que decir décadas) no era necesario utilizar este tipo de adaptadores: todas las computadoras tenían al menos un conector de este estilo incluido, llamado (imaginativamente) el puerto serial (serial port); en el mundo de DOS se le conocía como COM1 (y si había más eran COM2, etc.), y yo todavía llegué a conectar algún módem de esta manera a una computadora.

Como decía en la entrada anterior de esta serie, el estándar USB ha reemplazado a casi todos los conectores de la antigüedad; los conectores PS1, paralelo, y serial incluidos. Por lo tanto, si alguien quiere (como yo quería) comunicarse de forma serial usando una computadora moderna, uno necesita un adaptador USB ↔ serial.

Leyendo en Internet, rápidamente me decidí por un CP2102 UART Bridge, que encontré a precio de ganga en Amazon; el que ligo cuesta casi 7 dólares, pero el que de hecho compré me salió en menos de 3, con envío incluido. Lamentablemente, no sé dónde conseguir este tipo de cosas en México, así que lo pedí por Amazon y lo envié a la dirección de Omar en Boston (Amazon generalmente no envía electrónicos fuera del gabacho), donde lo recogí cuando pasé a verlo a finales de mayo.

CP2102

CP2102

(Siendo 100% honesto, sí lo encontré en MercadoLibre; pero el precio era más del doble).

Me decidí por el CP2102 básicamente porque es muy barato, y porque está muy bien soportado en Linux (niguna de esas razones me sorprende; no hace nada terriblemente interesante). En Gentoo, sencillamente tuve que habilitar el módulo del kernel cp210x (funciona para el CP2101 y el CP2103 también), con la opción USB_SERIAL_CP210X, y después sencillamente lo conecté a mi computadora. Inmediatamente el adaptador queda registrado con el dispositivo /dev/ttyUSB0, y uno puede comenzar a usarlo sin problemas.

Bueno, casi; el dispositivo por omisión tiene permisos de escritura únicamente para root, así que usando la siguiente regla de udev:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE:="0666"
KERNEL=="ttyUSB*", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE:="0666"

puedo darle permisos a todo mundo de forma automática, lo que me permite que mis aplicaciones corran para cualquier usuario.

Como sea; el CP2102 es bastante sencillo de usar (si es que acaso el hardware está bien conectado), uno únicamente abre el dispositivo, y puede empezar a escribir y leer información de él sin muchos problemas:

#include <termios.h>
#include <unistd.h>
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>

#define TTY_BAUDRATE   B38400

int
main(int argc, char* argv[])
{
        struct termios options;
        int fd;

        if ((fd = open("/dev/ttyUSB0", O_RDWR | O_NOCTTY | O_NONBLOCK)) < 0) {
                return -1;
        } else {
                tcgetattr(fd, &options);
                cfsetispeed(&options, TTY_BAUDRATE);
                cfsetospeed(&options, TTY_BAUDRATE);
                cfmakeraw(&options);
                if (tcsetattr(fd, TCSANOW, &options) < 0) {
                        close(fd);
                        return -1;
                }
                tcflush(fd, TCIFLUSH);
        }

        uint8_t byte = 0xff;

        /* Envía byte. */
        int r = write(fd, &byte, 1);
        tcflush(fd, TCIFLUSH);

        /* Recibe byte. */
        fd_set readfds;

        struct timeval timeout = {
                .tv_sec = 1,
                .tv_usec = 0
        };

        FD_ZERO(&readfds);
        FD_SET(fd, &readfds);

        int status = select(fd+1, &readfds, NULL, NULL, &timeout);
        if (!status)
                return -1;
        
        if (FD_ISSET(fd, &readfds)) {
                r = read(fd, &byte, 1);
        } else if(status == EINTR) {
                return -1;
        }

        return (int)byte;
}

Obviamente se pueden transmitir secuencias de bytes más largas que 1, pero para lo que quería hacer 1 bastaba… o al menos no he necesitado más.

Por supuesto, el chiste de todo esto es, ¿a dónde van esos bytes que estoy enviando? El adaptador CP2120 únicamente me permite comunicarme de forma serial vía USB; es sólo una pieza más del rompecabezas que estuve armando para mi proyecto. Y, en retrospectiva, de hecho fue la pieza más sencilla; casi no tuve que hacer nada para que funcionara.

Del resto de las piezas escribiré más adelante.

Imprimir entrada Imprimir entrada

El Juego de Ender

Poco después de ver The Wolf of Wall Street, vimos Ender’s Game.

Se aplican las de siempre, aunque como esta película llegó y se fue sin dejar mucha huella, no creo que importe demasiado.

Ender's Game

Ender’s Game

Leí la novela sobre la cual se basa la película por recomendación de mi hermano. Me gustó, pero nada del otro mundo; la película la puedo calificar igual, me parece.

La idea central, sobre la cual gira el clímax de la novela y la película, es que a Ender (el geniecillo militar al que le encargan la armada terrestre) le hacen creer que está jugando una simulación, cuando realmente está comandando a seres humanos reales para que vayan y maten a seres bichosos también reales. Es una idea interesante en ciencia ficción, que plantea dudas y conflictos morales y éticos bastante profundos. Como idea, es mucho mejor que los bichos de Starship Troopers de Heinlein, a los cuales la única opción que existe es exterminarlos a todos y cada uno de ellos.

La ejecución deja que desear, sin embargo; en ambas la película y la novela. La ejecución es mucho mejor en Starship Troopers; en particular las escenas de acción son mucho mejores porque ocurren donde de hecho acaece la acción, no en un centro de comandos escondido en una roca a millones de kilómetros de las batallas.

El protagonista, Ender, además es un chilletas. Sí, sé que es parte de la premisa central de la historia: un niño inocente y en el fondo pacifista que, por eso justamente, es capaz de pensar en estrategias para ganarles a los bichos. Eso no hace al personaje más agradable; todo lo contrario, es insoportable.

Como sea, y como dije al inicio, la película me gustó; sólo no dejó ninguna huella en mí… ni en nadie más, me parece; por lo que se ve no habrá ninguna otra película basada en las novelas que continúan la historia de Ender. Lo cual no me molesta demasiado; de hecho, al terminar la novela, no me dieron nada de ganas de leer ninguna de sus secuelas.

Así que si quieren véanla; pero no se pierden mucho si no lo hacen.

Imprimir entrada Imprimir entrada

HID class

(Esta entrada es la segunda parte de una serie que cubre un proyecto personal que realicé en el verano de 2014; pueden ver todas las partes aquí).

USB ha tenido a bien reemplazar casi todos los conectores de una computadora; en el caso de los teléfonos celulares inteligentes modernos (que son realmente computadoras), de hecho reemplaza todos los conectores, excepto el conector para audífonos. Bueno; hablo de teléfonos celulares civilizados: obviamente el iPhone tiene que tener su conector propietario, porque si no cómo le van a cobrar millones de dólares a sus usuarios cuando quieran reemplazarlo.

El bus serial universal (que es lo que USB significa) ha tenido este éxito por muchos motivos, de los cuales no voy a mencionar ni uno solo. Yo de lo que quiero escribir hoy aquí es de la clase USB para dispositivos con interfaz humana, o USB human interface device class en inglés.

Un dispositivo de clase USB-HID tiene la capacidad de decirle a la computadora a la cual se conecta ciertos datos; si es un teclado, por ejemplo, cuántas teclas tiene; si es un ratón, que resolución tiene el sistema de coordenadas que puede manejar; si es un joystick o gamepad, cuántos ejes y botones tiene, etc. Como USB-HID es un estándar abierto, en general esto permite que no haya necesidad de escribir controladores (drivers) para estos dispositivos: todos los sistemas operativos en existencia los soportan de manera nativa. Uno sólo conecta el dispositivo USB-HID a la computadora, y el mismo dispositivo le dice qué es, y qué características tiene. La computadora puede entonces comenzar a usar el dispositivo de inmediato, porque éste ya le dijo qué le puede pedir.

Voy a hacer la historia corta: le pide bytes. Lo único que debe hacer el dispositivo es explicarle a la computadora qué significa el bit número X del byte Y en el reporte que cada determinado número de milisegundos la computadora le pide. Es a la vez primitivo y elegante el asunto.

Cuando el dispositivo USB-HID se conecta a la computadora, ésta le pide un descriptor de dispositivo (device descriptor), el cual tiene información como qué protocolo utiliza, cuántas configuraciones maneja, y lo más visible para todo mundo, dos llaves de diccionario para el identificador de fabricante y el identificador de producto. Estas dos llaves son en Linux muy fáciles de revisar (me imagino que en otros sistemas operativos también; pero como no los uso, no tengo idea); usando el comando lsusb en mi laptop produce el siguiente resultado:

canek@acero ~ $ lsusb
Bus 004 Device 004: ID 8086:0189 Intel Corp. 
Bus 004 Device 003: ID 1bcf:288e Sunplus Innovation Technology Inc. 
Bus 004 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 031: ID 18d1:4ee1 Google Inc. Nexus 4 / 10
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 008: ID 0461:0010 Primax Electronics, Ltd HP Keyboard
Bus 001 Device 009: ID 0461:4d0f Primax Electronics, Ltd HP Optical Mouse
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Las primeras columnas vienen de Linux; especifican el puerto USB físico donde están conectados los dispositivos. La últimas columnas, que son humanamente legibles ("Primax Electronics, Ltd HP Keyboard") son entradas de un diccionario que Linux y todos los sistemas operativos modernos mantienen; es una base de datos que especifica qué información corresponde a las llaves que se muestran en la columna central ("0461:0010"), y que de hecho es la única información que viene del dispositivo USB. El primer número hexadecimal (0x0461) es el identificador de fabricante (VendorId), y el segundo (0x0010) es el identificador de producto (ProductId).

Además del identificador de dispositivo, un dispositivo USB-HID le envía a la computadora un reporte descriptivo (report descriptor) que es donde se (valga la rebuznancia) describe lo que el dispositivo puede o no puede hacer. Usando algunas opciones extras de lsusb, podemos ver esta información:

canek@acero ~ $ lsusb -vvv -d 0461:0010
...
          Report Descriptor: (length is 65)
            Item(Global): Usage Page, data= [ 0x01 ] 1
                            Generic Desktop Controls
            Item(Local ): Usage, data= [ 0x06 ] 6
                            Keyboard
            Item(Main  ): Collection, data= [ 0x01 ] 1
                            Application
            Item(Global): Usage Page, data= [ 0x07 ] 7
                            Keyboard
            Item(Local ): Usage Minimum, data= [ 0xe0 ] 224
                            Control Left
            Item(Local ): Usage Maximum, data= [ 0xe7 ] 231
                            GUI Right
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Global): Report Count, data= [ 0x08 ] 8
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Input, data= [ 0x01 ] 1
                            Constant Array Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report Count, data= [ 0x03 ] 3
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Global): Usage Page, data= [ 0x08 ] 8
                            LEDs
            Item(Local ): Usage Minimum, data= [ 0x01 ] 1
                            NumLock
            Item(Local ): Usage Maximum, data= [ 0x03 ] 3
                            Scroll Lock
            Item(Main  ): Output, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report Count, data= [ 0x05 ] 5
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Main  ): Output, data= [ 0x01 ] 1
                            Constant Array Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report Count, data= [ 0x06 ] 6
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
            Item(Global): Usage Page, data= [ 0x07 ] 7
                            Keyboard
            Item(Local ): Usage Minimum, data= [ 0x00 ] 0
                            No Event
            Item(Local ): Usage Maximum, data= [ 0xff 0x00 ] 255
                            (null)
            Item(Main  ): Input, data= [ 0x00 ] 0
                            Data Array Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): End Collection, data=none
...

(Estoy aquí usando un truco en el que no quiero entrar en detalle; pero básicamente así podemos obtener el reporte descriptivo).

Esa información que está allá arriba es bastante legible para un humano; de nuevo, Linux es el que está haciendo esa chamba por nosotros. El dispositivo lo que envía son una serie de bytes codificados para expresar lo de arriba; por ejemplo, el primer elemento especifica un “Usage Page: Generic Desktop”: esto está codificado por los bytes 0x05 (Usage Page), y 0x01 (Generic Desktop). El segundo elemento es un “Usage: Keyboard”, que está codificado por los bytes 0x09 (Usage) y 0x06 (Keyboard). En todos los tutoriales en línea esto se suele representar así (usando C, pero cualquier lenguaje funciona):

0x05, 0x01, /* Usage Page (Generic Desktop) */
0x09, 0x06, /* Usage (Keyboard) */
...

Pero obviamente lo que la computadora recibe es 0x05 0x01 0x09 0x06 ...

Con esta información, la computadora sabe cuántos bytes pedirle a un dispositivo USB-HID, y qué codifica cada uno de estos bytes; el estándar es (paradójicamente) muy flexible e increíblemente rígido al respecto. Muy flexible porque uno puede enviar vía USB básicamente lo que a uno se le dé la regalada gana; pero los reportes descriptivos sólo codifican información para un puñado de cosas: ejes, botones/teclas apretados o no apretados, y cosas de este estilo. Sin embargo, como todo esto son únicamente bytes, uno puede darle la vuelta sencillamente describiéndolo como un “eje”, cuando en realidad está enviando un número que representa la temperatura en grados centígrados. O lo que sea; la verdad no leí el estándar completo (lo pueden bajar aquí), sólo lo hojeé hasta que me salí con la mía.

Y con la mía me salí; aunque no al 100%: aún hay un detalle que necesito resolver, pero es secundario a mis principales objetivos, y lo que quería hacer ya lo hice casi absolutamente todo. Pero si quisiera resolver absolutamente todo, debería leer con cuidado el estándar y ver si le puedo dar la vuelta al último obstáculo que me he encontrado.

De eso escribiré más adelante.

Imprimir entrada Imprimir entrada

El Lobo de Wall Street

Hace seis meses fui con Mina a ver The Wolf of Wall Street.

Me pregunto si tiene mucho sentido que escriba acerca de las películas que he visto en los últimos seis meses, dado que probablemente ya todo mundo las vio, y varias de ellas de hecho ya las olvidaron. Pero dado que he reseñado todas las películas que he visto (estoy casi seguro) en el cine (no en DVD o Blu-ray) en mi blog durante su existencia, no veo por qué dejar de hacerlo.

Así que ahí va. Diría que se aplican las de siempre, pero a estas alturas no importa en lo más mínimo si menciono o no puntos importantes de la trama de la película.

The Wolf of Wall Street

The Wolf of Wall Street

La película me gustó bastante, excepto por un punto que mencionaré más adelante. Primero quiero comentar acerca de lo que mucha gente dijo de la película, criticándola por “alentar” o “aplaudir” el comportamiento idiota y desmedido del protagonista interpretado por Leonardo DiCaprio. Me parece que todo el mundo que dijo algo del estilo, no entendió el punto que Scorcese y DiCaprio querían hacer (y que, a mi parecer, lo consiguen).

La idea no es “admirar” o “envidiar” a Jordan Belfort. La idea es apiadarse de él; el tipo era (o es, como quieran verlo) un patético perdedor. Y obviamente esto no sólo a pesar de los millones de dólares que llegó a “tener” (me parece que el “dinero” en la bolsa de valores siempre debería escribirse entre comillas); es justamente por esos millones que se refleja lo pendejo, triste y fracasado del tipo.

Cualquier persona con un poquito más de inteligencia o de madurez hubiera sabido cuándo detenerse, cuándo convertir todos sus fraudes en dinero legítimo, y cuándo medirse en su estilo de vida; no por ninguna razón moral o de principios: sencillamente para poder seguir disfrutando su dinero. Y de hecho, parte del punto de la película me parece que es que este pobre lumpen idiota jamás llegó a disfrutar las ganancias de estar estafando gente honesta: todo el alcohol, drogas y prostitutas que utilizó sólo lo embrutecían (aún más) en lugar de poder realmente disfrutarlo.

Que es justo el punto que no me gustó de la película; dura como cuatrocientas horas, y una tercera parte de ellas se van en mostrar los excesos idiotas de estos ídems. Con una fiesta desenfrenada hubiera bastado; a la tercera la verdad ya me daba mucha hueva. Me recordó a alguien de mi adolescencia, que siempre me contaba sus chocoaventuras, y que éstas siempre podían resumirse (usando los términos que él usaba) así: “estábamos bien pedos, y fuimos por unas putas”. La primera vez que uno escucha una historia de este estilo, hasta divertido es; la segunda ya es cansado, y todas las subsecuentes son completamente prescindibles.

La película hubiera podido durar menos de dos horas, contar su historia, y transmitir su mensaje mejor, evitándonos el estar viendo el siguiente desenfreno de este pobre niño que descubrió cómo estafar gente, y lo aprovechó para robarse dinero, hasta que (como el imbécil que sin duda fue) lo agarraron.

Fuera de eso, la película es muy buena, y las actuaciones de DiCaprio y Jonah Hill nada más bastarían para que valiera la pena. Así que vayan y véanla… de nuevo, porque probablemente ya se les olvidó.

Imprimir entrada Imprimir entrada

El formato MIDI

(Esta entrada es la primera parte de una serie que cubre un proyecto personal que realicé en el verano de 2014; pueden ver todas las partes aquí).

Clásico: digo que no debería dejar de escribir, y prontamente decido dejar de escribir durante tres semanas. El motivo por el cual no he escrito estas semanas, es porque durante estas vacaciones (además de meditar y tomar decisiones Muy Importantes™) me he estado divirtiendo como pocas veces en mi vida, trabajando en un proyecto personal que está básicamente terminado, ya que sólo falta una pequeña pieza del rompecabezas.

Esta entrada es acerca de otra de las piezas: el formato MIDI.

Durante mis dos últimos años en el CCH Sur, llevé a la escuela una guitarra todos los días. El resultado de esto fue que puedo tocar (mal) un puñado de canciones, y algunas de ellas hasta las puedo cantar (peor todavía). Tomé un cursito de guitarra bastante malo, que además no terminé, y el resto de mi educación musical fue juntarme con los chavos que tocaban la guitarra y tratar de robarles los acordes y/o requintos.

Además de eso, y al igual que (me imagino) casi todos los estudiantes de secundaria pública en el país, tuve una flauta dulce donde alguna vez (recuerdo vagamente) llegué a tocar la Oda a la Alegría de Beethoven.

Y ya: esa es toda la “educación” musical que he tenido; no sé nada de teoría musical, soy incapaz de leer una partitura, y mientras que creo que soy capaz de dibujar o esculpir algo que al menos se parezca un poco a lo que tuviera en mi mente antes de empezar, me sentiría completamente inhabilitado para poder reproducir en ningún instrumento una tonadita que yo me inventara… y de hecho no estoy seguro de poder inventarme una tonadita.

Todo lo anterior es para explicar por qué yo, asiduo como soy a casi todo relacionado con la computadora, jamás utilicé ni me interesó mucho el formato MIDI.

Para finales de los setentas del siglo pasado la música electrónica había evolucionado de ser un curioso experimento a ser parte fundamental del acto de varios artistas, y los instrumentos electrónicos tenían la enorme ventaja de poder guardar y reproducir las actuaciones de los artistas que los utilizaban, usando una fracción minúscula del ancho de banda que usan los instrumentos analógicos.

Me explico: si yo con mi guitarra de Paracho, Michoacán, quiero grabar Wendolyne, no tengo de otra sino poner un micrófono enfrente de la misma y grabar las vibraciones del aire en formato WAVE, que es del orden (más o menos) de diez megabytes por cada minuto de audio. Claro, ahora en el siglo XXI podemos utilizar MP3, que mejora en un orden de magnitud las cosas a (más o menos) un megabyte por minuto; pero las computadoras personales de finales de los setentas no tenían suficiente procesador para poder reproducir MP3 (básicamente no existían, además), a nadie en su sano juicio se le había ocurrido inventar MP3, e incluso si hubiera habido suficiente procesador, un megabyte por minuto era una fortuna en ese entonces.

Los instrumentos electrónicos pueden superar esto por mucho, porque en lugar de guardar vibraciones del aire, sencillamente pueden guardar la información musical: en el segundo 0, se tocó la nota Do a tal volumen y velocidad; en el segundo 0.024 se tocó la nota Mi a tal volumen y velocidad; en el segundo 0.57 se tocó la nota Ra a tal volumen y velocidad (si no entienden el chiste yo no se los voy a explicar). En casi todos los instrumentos electrónicos, las notas son sencillamente cerrar un circuito, así que guardando el tiempo en que el circuito se cierra y cuando se abre de nuevo, uno puede guardar casi perfectamente la información interesante de un acto.

A finales de los setentas casi todos los fabricantes de instrumentos electrónicos tenían formatos propietarios, que hacía que los músicos se jalaran las greñas porque era muy común que les gustara usar el teclado electrónico de un fabricante, y la batería electrónica de otro; lo que ocasionaba que combinar las distintas grabaciones fuera un infierno porque utilizaban formatos distintos.

Para inicios de los ochentas los fabricantes decidieron ponerse de acuerdo, y se creó el formato MIDI, que especifica en doloroso detalle no sólo el formato digital (unos y ceros) de MIDI, sino también cosas como conectores, voltajes, y otras cosas que únicamente a músicos podrían interesarles.

A mí no me importa nada fuera de los unos y los ceros; conectores, voltajes, y cosas de músicos me tienen sin cuidado. El formato de los archivos MIDI (generalmente con extensión .mid) es lo que tuve que estudiar y programar.

Un archivo MIDI tiene un simple encabezado de 12 bytes donde se especifica el número de pistas que tendrá; es común (pero no obligatorio) que cada pista represente las notas de un instrumento distinto. Cada una de las pistas consiste en “eventos”, donde se especifica el tiempo del evento, el evento mismo, y uno o dos parámetros del mismo. En el caso de las notas, los eventos son generalmente “nota prendida” y “nota apagada”, un canal (cada pista puede tener hasta 16 canales), el número de la nota, y la duración (o velocidad) de la misma. Estos son los eventos que a mí me interesaban; y más aún, me interesaban los eventos de un único instrumento.

Todo el formato MIDI está pensado para poder utilizar el mínimo número de bits posible; y lo consigue de forma magistral: todo el Carmina Burana debe utilizar menos de un megabyte de memoria, incluyendo todos los instrumentos de la orquesta. El precio que se paga es que esta información es inútil si uno no tiene lo necesario para reproducirlo; para reproducir un archivo MIDI propiamente, uno necesita “fuentes de sonido” (sound fonts), que es básicamente los sonidos de las notas de todos los posibles instrumentos que el archivo MIDI necesita. Sin una buena fuente de sonido, cualquier archivo MIDI suena básicamente como la musiquita de Super Mario Bros.

Cuando comencé a usar la computadora a inicios de los noventas, y cuando compré mi primea SoundBlaster, todavía llegué a toparme con archivos MIDI; pero justamente como nunca me molesté en buscar fuentes de sonido, nunca le vi mucho sentido, porque todo sonaba como la musiquita de Super Mario Bros. Con una buena fuente de sonido, hacer música con MIDI debe ser bastante chido, y de hecho casi todos los músicos profesionales en la actualidad lo utilizan de alguna u otra forma.

Como sea, y volviendo al formato de los archivos MIDI, cuando digo que los eventos tienen un “tiempo”, este tiempo no está representado en segundos, ni milisegundos, ni microsegundos. De hecho, olvídense de segundos; el tiempo está representado en… ¿saben qué? Aún ahora no sé en qué chingados está representado el tiempo; tiene que ver con pulsaciones por segundo, pulsos por cuartos de nota, submarcos, pulsos por minutos, y no sé qué madres más. No me interesa en lo más mínimo; pero lo necesitaba porque necesitaba el tiempo preciso en que cada nota se prendía y se apagaba. Y para acabarla de amolar, el tiempo no es absoluto; es relativo a la nota anterior: es un formato acumulativo, donde el tiempo de cada nota es una delta que se le suma al tiempo de la nota anterior.

Después de muchos quebraderos de cabeza, conseguí la fórmula que me permitía convertir el tiempo de cada nota (después de obtenerlo a partir del tiempo de la nota anterior y de la delta) a milisegundos, y me puse a sacar los tiempos de las notas del instrumento (o sea la pista) que me interesaba. Y por supuesto todo se desincronizaba; pero esto ocurría únicamente de vez en cuando, y únicamente en algunas canciones.

Estuve días golpeándome la cabeza contra un muro hasta que por fin encontré el problema: estaba calculando el tiempo utilizando las notas de la pista que me interesaba; y hay que usar todas las pistas. En otras palabras, si hay una pausa en las notas de la guitarra, pero en esa pausa la batería sí reproduce notas, la siguiente delta de la guitarra no se aplica a la última nota de la guitarra, sino a la última nota de cualquier instrumento (en este ejemplo, la batería). Lo cual tiene sentido cuando uno ve lo ridículamente pequeño que es un archivo MIDI; no hay problema en preprocesarlo todo de antemano para poder tener la información de todas las pistas disponible.

Y aún así, todavía tengo unas cuantas canciones donde de cualquier forma se me desincronizan las cosas. No tengo idea de qué pueda estar pasando; como el formato MIDI acepta cualquier cantidad de madres (por ejemplo, las letras de las canciones pueden incluirse en el archivo, para hacer cosas como karaokes), no sé si a algunas de ellas les esté tomando en cuenta el tiempo cuando no debería, o qué carajo: pero como sólo ocurre con dos o tres canciones, decidí esas arreglarlas a pie, y olvidarme del asunto para siempre. Con lo que tenía era más que suficiente para hacer lo que quería hacer, y de hecho ya lo hice; supongo que sí descubriera cuál era el problema estaría chido, pero a estas alturas ya es un extra. Lo que quería conseguir ya lo conseguí.

Para conseguirlo, escribí un programa que convertía la información de un archivo MIDI a un formato que me inventé donde dice en que nanosegundo ocurre que se prende o apaga una nota; primero lo hice en Python, pero he estado convirtiendo todo a Vala, porque es 10 veces más rapido, aunque como los archivos son todos chiquititos realemente no sería tan grave dejarlo en Python. También utilicé un programa que convertía el MIDI a un formato CSV (tipo hoja de cálculo), pero como no me salían las cosas terminé escribiendo yo uno igual, porque no me quedaba claro si había un error en el programa o cómo interpretaba yo las cosas (el error era mío, pero pues ya tengo mi programa que lee MIDIs directamente).

El medio entender el formato MIDI fue sólo una de las partes del proyecto en el que estuve trabajando; tengo todavía la duda de porqué un par de canciones se me desincronizan, pero fuera de eso creo que tengo dominada esta parte. Y de hecho, medio entender el formato MIDI me resultó de utilidad en otra de las partes del proyecto que encontré más adelante; pero de eso escribiré luego.

Imprimir entrada Imprimir entrada

No estuvo tan mal

Debería quedarme claro que no debo dejar de escribir en mi blog, porque me hace bien hacerlo; pero regresando de gabacholandia tuve que realizar una mudanza temporal repentina y en lo que me acomodaba sencillamente dejé de escribir.

Intentaré escribir seguido de nuevo, especialmente de cosas que he hecho con un par de juguetitos que compré en el gabacho; pero en esta entrada sólo quiero comentar acerca del mundial.

Una de las ventajas de ser un pésimo fan, es que realmente no sufro mucho cuando la selección pierde. Y de hecho me parece que el Tri jugó bastante bien en este mundial (bajo el entendido de que mis únicos conocimientos acerca del futbol son que se juega con las patas, y una rudimentaria comprensión de lo que es estar “fuera de lugar”); así que no me sentí decepcionado de que Holanda le ganara en el último partido.

Por supuesto me hubiera gustado que México pasara a cuartos de final; con tantas desgracias que le pasan a los habitantes de este país, una pequeña alegría como ver a la selección ganar no nos vendría mal. Pero ya que fue eliminada la selección, yo me quedo con lo bueno; que jugaron bien, que no se hicieron menos ante ningún rival, y que está muy cagado el Piojo Herrera.

Ahora ya podemos regresar a la realidad y encarar la bola de desgracias que nos aquejan como nación.

Imprimir entrada Imprimir entrada

De regreso a México

Ahora estoy en el aeropuerto de Boston, esperando abordar mi vuelo a Houston, Texas, de donde por fin volaré a la Majestuosa. Comentaba ayer con Omar y Paola que es la primera vez que hago un viaje fuera de México con el propósito exclusivo de pasear, sin ningún compromiso académico antes, durante o después del paseo.

Estuvo bastante padre; Chicago es impresionante, y Cambridge/Boston están simpáticas… aunque por supuesto, hizo un frío endemoniado los dos días que de hecho paseé ahí, y hoy que ya me voy por fin se le ocurre salir al sol. Traigo una tos espantosa desde Chicago, y voy a llegar a mi casa a tomar cantidades industriales de té a ver si así se me quita.

(Por cierto, debo especificar que “un frío endemoniado“, para mí, siendo mariquita de la Ciudad de México, es alrededor de 10 grados centígrados; realmente no es nada del otro mundo, pero no es algo que yo esperaba ver en junio).

Además de conocer nueva ciudades, estuvo padre andarme paseando con mi mamá en Chicago (nunca habíamos viajado juntos fuera del país), y ver de nuevo a Omar, Paola y Lalo, y chismear con ellos. También conocí Hardvard y el Emaití, que estaban casi vacíos por ser ya técnicamente vacaciones, pero que de cualquier manera están interesantes. Ah, y fui por primera vez a ver stand up comedy; estuvo bastante divertido (aunque sí hubo un par de comediantes francamente bizarros).

Ahora sólo quiero llegar a mi casa, terminar de calificar lo que me falta de mis cursos, y descansar propiamente durante varias semanas.

Imprimir entrada Imprimir entrada

Rumbo a Boston

Ahora estoy de nuevo en el aeropuerto de Chicago esperando abordar mi vuelo a Boston (que ya se retrasó, por supuesto). Sí es la neta Chicago, y espero volver a visitarla en algún momento en el futuro; pero también quiero conocer Boston, y volver a ver a Omar y Paola.

Si todo sale bien, estaré por allá alrededor de las 10, hora local.

Imprimir entrada Imprimir entrada

Gimme power

Mi teléfono celular tiene el mismo problema que tienen muchos dispositivos modernos: la batería le dura alrededor de 24 horas en circunstancias normales.

Ahorita no estoy en circunstancias normales; estoy utilizando la aplicación que guarda mis coordenadas para después poder ponerle información GPS a las fotos que estoy tomando.

Mi batería entonces dura como la mitad de lo normal; ayer pude conectarlo en el restaurante donde comimos, si no hubiera muerto. Mi teléfono tiene un modo de ahorro de energía, pero entonces detiene casi todas las aplicaciones para ahorrar energía cuando la pantalla se apaga, lo que incluye mi rastreador GPS.

Sólo hasta hoy descubrí que uno puede seleccionar aplicaciones que el modo de ahorro de energía no detendrá. Mi teléfono dice ahora que le va a durar dos días la batería; no le creo nada, pero si aguanta el día me daré por bien servido.

Imprimir entrada Imprimir entrada

Los datos

Voy a estar una semana en el gabacho en total; como ya me he acostumbrado a tener datos en mi teléfono celular todo el tiempo, decidí que no quería pasar esta semana como ciego dando tumbos en la oscuridad electrónica.

Eso me parece que fue razonable de mi parte; lo que fue increíblemente estúpido, fue creer que podía confiar en Telcel para solucionar mi problema.

Me metí a la página de Telcel, y contraté 250 megabytes para usar en el gabacho. Fue relativamente sencillo, y el cobro de hecho se realizará hasta quién sabe cuándo, en mi estado de cuenta mensual. El problema fue que llegué a gabacholandia, y por supuesto no funcionó.

Les llamé para reclamarles, y después de probar varias cosas, los muy inútiles me dijeron que no podían hacer nada. Estoy usando un teléfono que no es de Telcel, porque cuando me robaron mi celular en diciembre, compré uno independientemente, justamente porque me desesperó la inutilidad de la gente de Telcel para poder sencillamente venderme un teléfono al que le pudiera poner mi chip.

Por supuesto ellos se agarraron de esto para decir que no podían hacer nada. Me dio mucho coraje, porque cuando me hartaron en diciembre con su incapacidad para simplemente venderme un teléfono, me aseguraron que no había problema conque yo comprara un teléfono por afuera y le pusiera mi chip. Y significa que lo que gasté por mis 250 megabytes básicamente se tira a la basura.

Perdí unas dos horas de mi vida ya aquí en Chicago viendo qué podía hacer al respecto, hasta que al final me resigné a haber perdido mi dinero, y salí a al menos a conocer la ciudad, aunque fuera como ciego dando tumbos en la oscuridad electrónica.

Y entonces vi un local de T Mobile.

Me metí y pregunté si podía tener 7 días de datos. “Claro”, me dijeron (sólo que en inglés). Quince minutos después, salí del local con datos en mi celular, un número básicamente ilimitado de megabytes al día (tendría que pasármela todo el tiempo viendo videos en YouTube para acabármelos), y a la mitad del precio de Telcel.

Lo que es mejor; mi teléfono (que también compré independientemente de Telcel) tiene dos ranuras para tarjetas SIM, así que puedo recibir llamadas y mandar mensajes por mi número de México, mientras recibo datos con mi número T Mobile (que sólo usaré para ello), todo al mismo tiempo.

Así que sí perdí dinero con Telcel; pero es la última vez en la vida que lo haré. Si vienen al gabacho, ni se molesten en tratar de comprar los planes de Telcel; es probable que no funcione, y es demasiado caro para una cantidad de megabytes tan pequeña. Compren una tarjeta SIM; si tienen un teléfono con dos ranuras, tienen lo mejor de los dos mundos; si tienen sólo una, usen el SIM gringo para correo, Google Maps, redes sociales, etc., y sólo pongan el SIM de Telcel cuando quieran revisar sus mensajes o correo de voz, o hacer llamadas.

Estoy considerando seriamente dejar a Telcel por otra compañía celular; se han portado de manera criminalmente incompetente las últimas veces que he tenido que lidiar con ellos.

Pero al menos tengo datos aquí, y funciona muy bien, aunque tuve que perder dinero para aprender mi lección de que no debo utilizar los servicios que provee Telcel, porque de verdad son unos inútiles.

Imprimir entrada Imprimir entrada

Chicago

Y ahora estoy en el aeropuerto esperando abordar mi vuelo a Chicago, ciudad que no conozco, pero que todo mundo me dice que es la neta.

Voy a estar ahí cuatro días, y después voy a pasar a ver a Omar en Boston otros tres. Lo cual está chido no sólo porque veré a Omar, que no veo hace más de un año; además conoceré Boston, que tampoco conozco.

Son más o menos dos años y medio desde la última vez que salí del país, cuando hice mi viaje de seis meses por Europa, Canadá y gringolandia. Esta vez, sin embargo, no voy a trabajar nada durante el viaje (excepto calificar unas cosas de mis cursos, si me da tiempo); voy a conocer y a divertirme ada más.

Nos vemos del otro lado.

Imprimir entrada Imprimir entrada

Formas PDF

En la academia, al parecer, hay que llenar catorce millones de formas cada quince minutos, más o menos. Formas para plazas, formas para becas, formas para estímulos, formas para calificaciones, formas para viajes, formas para viáticos, formas para que nos paguen viáticos ya gastados, formas para votos, formas para pedir otras formas que entonces hay que llenar para poder hacernos acreedores a nuevas formas…

La única vez que he trabajado (fuera de la academia) en el sector público, cuando estuve en el IFE (que ya ni siquiera existe), no tuve que llenar tantas formas; pero estaba por obra determinada, así que no sé cómo sea si uno tiene un puesto “fijo”. En la industria privada jamás tuve que hacer nada por el estilo, pero tampoco creo que se pueda considerar “fijo” lo que hacía en ese entonces.

Como sea, hasta hace no mucho uno tenía que ir por sus formas a algún lado, pedirlas por favor, y llenarlas con pluma o máquina de escribir. Siempre odié eso, porque involucraba escribir a mano, lo cual nunca se me ha dado mucho (mi caligrafía de caquitas de mosca embarradas en el papel no ha tenido el éxito que yo hubiera esperado), así que fue con alegría cuando descubrí que por fin todo mundo empezó a poner formas en línea.

Al inicio muchas veces la forma era el escaneo de la forma original, si bien le iba a uno como un PDF, si no como un vil JPG. A veces daban las formas en el formato .doc de Microsoft Office, pero creo que ya casi nadie hace eso. Desde hace algunos años esto se ha ido estandarizando en utilizar PDFs editables, o formas PDF. Esto para mí es la gloria, porque entonces ya no tengo que hacer ningún truco sucio; sólo lleno la forma, salvo el documento PDF, y soy feliz.

Cuando no es editable el PDF, soy bastante menos feliz. Lo que he hecho desde hace algunos años, es recrear la forma en SVG con Inkscape, y entonces llenarla con la herramienta de texto que tiene. En general funciona bastante bien, y tengo ya una biblioteca considerablemente amplia de formitas en SVG que sólo abro para editar de vez en cuando. Dado que SVG es XML, en algunos casos simplemente pongo texto como un marcador de posición (por ejemplo, NOMBRE), y hago un script que reemplaza esa cadena por la que realmente quiera usar. Jala muy bien; el único problema es que a veces es un desmadre recrear la forma completa en SVG, pero incluso esto es evitable si la forma no es una imagen, sino que la información vectorial de la misma viene en el PDF: para esos casos sencillamente utilizo pdf2svg, o abro el PDF directamente con Inkscape.

El otro problema es cuando la forma son múltiples páginas. SVG no tiene realmente una manera de modelar documentos con múltiples páginas, entonces tengo que crear una serie de documentos (forma1.svg, forma2.svg, etc.), y hacer un Makefile o algo así para compilarlos a un único PDF. Que es la situación en la que me encuentro ahorita.

Por supuesto, clavado como soy, ya ando pensando en cómo mejorar mi flujo de trabajo. Lo obvio por supuesto sería escribir un programa que recibiera las entradas de la forma (o las leyera de una base de datos), y generara los SVG, o incluso el PDF ya directamente. Lo único que me detiene para hacer esto (además del hecho de que tengo que terminar de llenar mis estúpidas formas), es que no sé cómo obtener la dimensión que ocupa un texto determinado en SVG, y que aún teniendo esto tendría que implementar un algoritmo para partir líneas muy largas en párrafos, de preferencia tratando de que las distintas líneas todas tengan más o menos el mismo ancho. Este algoritmo ya existe, por supuesto; es el que Knuth y un estudiante suyo de doctorado diseñaron e implementaron para \LaTeX, pero tengo entendido que es suficientemente complejo como para que lo implemente yo durante un fin de semana.

Así que por mientras sigo peleándome con mis SVG separados.

Imprimir entrada Imprimir entrada

Frozen

En diciembre o enero (la verdad ya no recuerdo) Mina y yo fuimos a ver Frozen.

Ya todo la mundo la vio, probablemente varias veces, así que sólo sigan leyendo.

Frozen

Frozen

Me moría de ganas por ver esta película. Literalmente.

Tangled es probablemente mi película favorita de Disney, y Wreck-It Ralph una de las que más me han gustado; y lamento muchísimo no haberlas visto en el cine. Así que no quería perderme por ningún motivo Frozen.

Fue un desmadre, pero por fin pudimos ir al cine a verla… y la verdad salí algo decepcionado.

Antes de que me persigan con horcas y antorchas, déjenme elaborar. La película me encantó… sólo me gustó muchísimo más Tangled. Y obviamente esto es resultado de que soy insufriblemente cursi y romántico, y Tangled es indudablemente una comedia/aventura romántica.

Frozen aspira a más (y lo consigue, me parece), lo cual es muy bueno. Sólo que los temas que persigue no son exactamente mis favoritos; el amor filial en ficción nunca ha despertado mucho en mí, y toda la idea de una muchacha decidiendo dejar de ser “buena”, aunque me parece mucho mejor que la bola de pendejadas que suelen enseñar las princesas de Disney a las chavitas, tampoco resuena mucho conmigo.

Pero hay otra cosa: Tangled y Wreck-It Ralph sólo las he visto en inglés. Nunca las he visto en español, y Frozen sí la fuimos a ver doblada (dudo que la hayan pasado en idioma original en ningún lado). Después la volví a ver ya en inglés, y me parece que la diferencia es abismal; especialmente por el número musical de Let It Go.

Lejos han quedado ya las épocas cuando Evangelina Elizondo y Tin-Tan doblaban las películas de Disney. Ahora lo hacen actores de tercera (o peor: de Televisa), y tengo entendido que es en gran medida resultado de un conflicto laboral que tuvieron los que doblaban a Los Simpsons hace algunos años. No lo sé; sólo sé que no afecta nada más a las películas de Disney.

El doblaje de Robotech me sigue gustando más que la versión en inglés; el de Cardcaptor Sakura es extraordinario también. Pero ahora sencillamente no puedo ver animé doblado al español. Son pésimos doblajes.

El doblaje de Frozen es de hecho bastante bueno; Carmen Sarahí hace un papel más que pasable haciendo la voz de Elsa… pero es que es imposible competir con Idina Menzel; esa vieja probablemente vendió su alma y sus dos primeros hijos a cambio de poder cantar como lo hace.

Así que la película sí me gustó, sólo no tanto como Tangled. Y ya sé que soy minoría, y que el resto del universo prefiere Frozen, pero pues qué quieren que haga, me gustan las películas donde al final hay boda.

Diría que la recomiendo, pero es inútil, dado que ya la vieron.

Imprimir entrada Imprimir entrada

La presentación

Una vez oí a alguien comparar el hacer un examen de grado de la UNAM con participar en un encuentro de lucha libre, en el sentido de que el resultado está decidido de antemano, pero eso no evita que le vayan a poner a uno una santa madriza.

Para prepararme para dicha madriza, me puse a hacer mi presentación casi desde que me dieron la fecha del examen.

Yo me considero bastante bueno dando presentaciones, y a lo largo de mi vida académica he utilizado varios programas para hacerlas (aunque obviamente jamás Power Point, dado que no uso Windows). Para la presentación de mi examen de doctorado quise hacer algo nuevo, así que primero intenté utilizar PinPoint.

El programa está simpático, pero me resultó inútil: no acepta fórmulas matemáticas, y a pesar de que tiene transiciones muy bonitas, éstas sólo funcionan entre transparencias, no objetos de las mismas. Además, no puede cargar nativamente SVGs, y como que más bien está pensado para presentaciones “corporativas” (dícese, texto con imágenes lindas de fondo). Ni siquiera encontré cómo poner dos figuras en la misma transparencia (que no involucrara combinarlas en una misma imagen de fondo).

Después intenté JessyInk (viene integrado con Inkscape). Yo soy fan rabioso de Inkscape; lo uso para todo, y aunque la mayor parte de las figuras de mi tesis son resultado de programas que yo escribí que escupían SVG, casi todas fueron retocadas con Inkscape, en muchos casos al menos para agregarle etiquetas. Sin embargo, de nuevo me decepcionó lo que hace JessyInk; las presentaciones que crea son muy apantalladoras, pero además de marear al espectador (pueden ver un ejemplo aquí), no vi nada que me ayudara a mí en lo que quería hacer: poder manipular objetos individuales dentro de cada transparencia.

Mi tesis consiste en problemas de geometría computacional que lidian con cositos dando de vueltas en el plano. Lo que yo quería era que dichos giros pudiera implementarlos dentro de la presentación misma, girando realmente los objetos en ella, en logar de girar a pie las imágenes de cada transparencia.

Un último intento fue utilizar Impress, el paquete de presentaciones de LibreOffice; pero nada más estar baboseando cinco minutos con él fueron suficientes para que me percatara de que no iba a poder usarlo para lo que quería.

Así que como durante dos horas estuve coqueteando seriamente con la idea de yo escribir un programa, donde las presentaciones fueran programas mismos que cargaran los objetos de SVG, los interpretaran como códigos de dibujo para Cairo, y yo pudiera animar cada parte de ellos de forma individual. Suena un proyecto interesante, y en Vala incluso podría salir relativamente rápido; pero ciertamente no hubiera acabado a tiempo para mi examen.

Así que me puse a girar las imágenes a pie antes de ponerlas en transparencias. Estuve a punto de usar sólo un montón de SVGs que compilara a un PDF usando un Makefile, pero al final decidí utilizar el viejo y confiable Beamer, a pesar de que no lo había usado en años.

La presentación me quedó padre, me parece; el único problema fue que la hice como si no tuviera restricciones de tiempo para exponerla, así que como dos terceras partes de la misma las di medio corriendo.

Pero eso será una historia para otro día.

Imprimir entrada Imprimir entrada

Sólo Dios Perdona

Inocentemente creí que doctorarme iba a significar que tendría más tiempo libre. Ahora veo que de hecho tengo menos, porque tengo que buscar trabajo ya que no puedo seguir usando mi eterna excusa de que “estoy escribiendo la tesis”. Sólo para explicar por qué dejé de escribir un par de días.

El año pasado (creo; bien pudo ser a inicios de éste), fui a ver Only God Forgives, con Víctor y Marco aprovechando que el primero andaba en el país.

Les diría que se aplican ya saben qué, pero la película dejó de estar en cartelera hace meses, así que no creo que importe demasiado.

Only God Forgives

Only God Forgives

Vámonos a la chingada. Esta película es o bien la cosa más extraordinaria que vi en el cine el año pasado, o bien una completa mamada. Es posible que sea ambas.

Ryan papi Gosling interpreta a un criminal de pocas palabras (su personaje tiene 17 líneas en toda la película), que es la mano derecha de su hermano en su negocio de drogas en Bangkok, y en un gimnasio/ring que sirve como frente a la parte criminal. Un día su hermano de buenas a primeras decide violar y asesinar violentamente a una niña menor de edad, y el policía que lo agarra (el endemoniadamente intenso Vithaya Pansringarm) decide un método salomónico de justicia: permite al padre de la niña matar al hermano de Gosling (a madrazos), aunque después de cualquier forma le corta la mano por andar rentando a sus hijas como prostitutas.

Nada más enterarse, Gosling va y agarra al asesino de su hermano, pero cuando se entera de que éste había violado y matado a su niña, no es capaz de asesinarlo. Lo cual causa que su madre (una espectacularmente diabólica Kristin Scott Thomas) vuele de Londres para hacerse cargo de las cosas y regañar a su hijo chiquito.

La película es intensamente violenta, sin necesariamente caer en el gore; las actuaciones son espectaculares, principalmente por Kristin Scott Thomas y Vithaya Pansringarm (papi Gosling en general sólo se ve serio y atormentado); y la fotografía y ambiente de la película son a la vez terribles, hermosos y surreales.

A mí me encantó, pero realmente no sé si sea una buena película, o una farolada del director Nicolas Winding Refn, que también dirigió la similar (aunque más “normal”) Drive. No importa: yo creo que vale la pena verse, si no es por otra que las actuaciones de Kristin Scott Thomas y Vithaya Pansringarm. El segundo, a pesar de ser un desconocido, nos ofrece un personaje interesantísimo, y que me parece hacía mucho no veíamos así en el cine. Es de alguna manera similar al Anton Chigurh de Javier Bardem en No Country for Old Men; más que un ser humano una fuerza de la naturaleza: terrible, impersonal, imparable. La principal diferencia radica en que Vithaya Pansringarm interpreta a un personaje del lado de la justicia, y se podría discutir que es realmente el héroe de la película.

Yo la recomiendo ampliamente; pero que quede claro: la película es muy violenta, y sí he oído de mucha gente opinar que la detestaron, así que véanla bajo su propio riesgo.

Imprimir entrada Imprimir entrada

Dos litros de spray

No lo había comentado en el blog, pero debe ser obvio de las fotos que he publicado aquí y en Google Plus; me corté el pelo después de casi 20 años de básicamente no haberlo hecho.

Así que de los tres títulos que tengo (dos de ellos ya en mis manos, el tercero en camino), el de doctorado será el único donde aparezca con el pelo corto.

Una semana antes de semana santa, que ya sabía que mi examen de titulación sería a finales de abril, fui por cuarta vez al Estudio Violeta a sacarme las fotos del título. La primera vez que fui, fue para que me tomaran las fotos del título de licenciatura. La segunda llevé a Juan a que se sacara sus fotos del título de licenciatura. La tercera vez fue para la maestría.

Pensé que teniendo esta vez el pelo corto, sería más sencillo que me peinaran. Estaba terriblemente equivocado: el muchacho que suele peinar ahí (que creo es el mismo que me peinó para las fotos de licenciatura y maestría), se tardó unos diez minutos echándome spray y pasándome una secadora de pelo al mismo tiempo, hasta que estuvo satisfecho de cómo se veía mi pelo. Se ha de haber gastado como dos litros de spray.

Todo para que sólo me viera bien de frente; de lado parecía tener una bola de pegostes a los lados de mi cabeza, y al otro día me tuve que lavar el pelo dos veces para poder quitarme toda la mierda que quedó haya arriba.

Como sea, terminado el peinado, el tipo que me peinó me pasó al estudio donde me sentó, me acomodó, y tardó una eternidad en tomarme las fotos mientras me decía que así estaba perfecto (obvio), y que no me moviera.

El Estudio Violeta se fundó en los veintes por un japonés que emigró a México. La cámara que usan es de 1945, y la película la tienen que pedir a Hungría sabiendo que se tardan como seis meses en entregarles. La calidad de las fotos es estúpidamente buena, y después de haberme sacado las fotos del título de licenciatura ahí, comprendí por qué la gente de la Facultad de Ciencias piden que sea ahí, y casi nada más ahí, donde se saquen las fotos los estudiantes.

Dicho todo eso, detesto cómo salí en las fotos; parezco gángster, y como Pedro Picapiedra parece que no tengo cuello. Me veo arrebatadoramente guapo, porque esa es mi cruz; pero hubiera preferido no salir tan acartonado.

Claro que es para la foto del título, que probablemente nadie jamás me vaya a pedir, pero de cualquier forma.

Imprimir entrada Imprimir entrada

El Hobbit: La desolación de Smaug

El año pasado fui a ver The Hobbit: The Desolation of Smaug con Mina, y nada más me tardé seis meses en escribir al respecto.

Se aplican… ¿saben qué? Olvídenlo; ya todo mundo y su hermano vio esta película.

The Hobbit: The Desolation of Smaug

The Hobbit: The Desolation of Smaug

En la primera parte de esta triología, Peter Jackson y la bola de güeyes que la crearon decidieron invertarse como un cuarto de la historia: se la sacaron completamente del trasero. Como a la banda eso no le importa con tal de tener moar Señor de los Anillos, en la segunda entrega ahora se inventaron como tres cuartas partes.

El soso (si bien magistralmente escrito) librito para niños de Tolkien entonces se ve expandido con diálogo, escenas, personajes, y en algunos casos cambios fundamentales en la historia, con tal de poder llenar otra triología, porque entonces van a poder ganar muncho más dinero.

A mí no me importa; yo soy de los tarados que va a pagar por ir a verla al cine, y luego va a comprar el blu-ray, probablemente varias veces.

La película me gustó bastante; me valen madre los cambios realizados al libro, el cual siempre me dio más bien güeva. Me gusta ver de nuevo a Legolas, me gusta que salga Evangeline Lilly matando orcos como si fuera kermés, y me resulta simpatiquísimo que le pongan un galán enano, que como todo mundo sabe el racista de Tolkien inventó a los enanos como un equivalente de los judíos, porque para los ingleses de la primera mitad del siglo XX, obviamente los judíos no eran humanos, y sus esposas probablemente tendrían barba.

Como sea, la película es divertida (tiene una ridícula escena que a mí me encantó donde un enano girando dentro de un barril mata como catorce millones de orcos), tiene harta acción… que qué bueno, porque el libro básicamente no, y está lleno del legendarium de Tolkien… aunque los realizadores le agregan de su cosecha, porque por qué no.

Me interesa ver la Batalla de los Cinco Ejércitos, y cuánto dura Smaug en la tercera película. Tomando en consideración las primeras dos, probablemente Bard tardará como cuatro horas y media en disparar la flecha negra (?) y matar a Benedict Cumberbatch.

Así que les diría que fueran y la vieran, pero probablemente ya lo hicieron varias veces.

Imprimir entrada Imprimir entrada

Treinta y siete

Hoy cumplí treinta y siete años.

Generalmente escribo acerca de lo que hice durante el año, pero esta vez lo resumiré en cuatro palabras:

Este año me doctoré.

Ahora estoy oficialmente desempleado. Soy profesor de asignatura en la UNAM, pero pagan tan mal, que creo que todavía califica como desempleo.

Espero que el año que venga pueda decir que conseguí trabajo.

Y ya andando en esas: feliz día de la Guerra de las Galaxias. O como dicen los tarados gringos botándose de la risa, May the fourth be with you. Que por supuesto ocurrió que yo nací tres semanas antes de que estrenaran Star Wars.

Vamos a ver cómo nos va este año.

Imprimir entrada Imprimir entrada

Carrie

El año pasado fui a ver Carrie. No escribí al respecto por la misma razón que no escribí de un montón de películas; estaba enclaustrado con la tesis y las últimas correcciones.

Se aplican las de siempre.

Carrie

Carrie

Cuando era adolescente vi la versión original con Sissy Spacek. Exceptuando la escena inicial con un montón de “adolescentes” de treinta años completamente desnudas, y el guagüis que recibe John Travolta, la verdad la película no me causó mayor impacto. Hey, dije que era adolescente.

Esta nueva versión a mí me gustó mucho más; me parece una muy buena crítica al cristianismo fundamentalista, y Julian Moore y Chloë Grace Moretz actúan, me parece, mucho mejor que Piper Laurie y Sissy Spacek. Aunque debo admitir que a lo mejor estoy prejuiciado, dado que las primeras dos me caen mucho mejor.

Además en esta película de verdad da miedo Carrie; el control que muestra sobre sus poderes es espectacular. En la versión de antes de que yo naciera, creo que hasta los cables se podían ver cuando Carrie atraía cosas con su “telequinesis”.

A mí me gustó mucho; pero es tan similar a la primera versión, que creo que sí es apropiado preguntarse si valía la pena hacerla de nuevo.

Como sea, yo sí la recomiendo, así que vayan y véanla. A un Blockbuster. A la sección de “películas que se estrenaron hace meses”.

Imprimir entrada Imprimir entrada

Wicked

El sábado pasado Mina y yo fuimos a ver Wicked en el Teatro Telcel. Teníamos ganas de verla casi desde que se estrenó, pero fuimos hasta cierto punto para celebrar que ya por fin me hubiera doctorado.

Antes de hablar de la obra, quiero comentar el teatro. Similarmente al Museo Soumaya, el teatro me da la impresión de que es la forma de Slim de hacernos saber cuánto dinero tiene, cuánto se puede gastar en cosas culturales, y cuánto dinero sigue teniendo después de haberlo hecho. Lo cual por supuesto está bien; que se gaste su lana en cosas que en el peor de los casos no dañan al país, y en el mejor hasta lo ayudan. Sólo me da un poco de risa, y no puedo dejar de recordar las inmortales palabras de Jorge Ibargüengoitia en Estas ruinas que ves:

-Los de Pedrones -dicen en Cuévano- confunden lo grandioso con lo grandote.

En fin. Se aplican las de siempre.

Wicked

Wicked

La historia narra la juventud, enemistad, luego amistad, y luego enemistad de nuevo, de la Bruja Malvada del Oeste, antes de que fuera la Bruja Malvada del Oeste cuando se llamaba Elphaba, y de la Bruja Buena del Norte, antes de que fuera la Bruja Buena del Norte cuando se llamaba Galinda.

La trama trata de cambiar un poco los papeles de El Mago de Oz; Elphaba realmente era buena, Galinda (después Glinda) era un hígado híper fresa, y el Mago era un gobernante corrupto.

Debo aquí hacer un paréntesis y explicar que jamás leí ninguno de los libros del Mago de Oz, y que jamás lo haré porque no me interesan en lo más mínimo. También debo mencionar que, aunque por supuesto vi la ridícula (y sutilmente racista) película de Judy Garland, la verdad no tengo un particularmente emotivo recuerdo de la misma.

Dicho eso, la historia de Wicked está simpática (sin ser nada del otro mundo), y me parece que hace más interesante la ridícula historia original.

Pero nada de eso importa porque uno no va a ver musicales para ver historias particularmente profundas.

La puesta de escena de Wicked en el Teatro Telcel es espectacular; me parece que es el musical mejor puesto que he visto en México, y por mucho. El aspecto técnico de la misma (la escenografía, la iluminación, el sonido, el vestuario, todo) es impecable.

Y aún así eso se ve disminuido ante el espectacular papel que hacen Ana Cecilia Anzaldúa y Cecilia de la Cueva como Elphaba y G(a)linda respectivamente. La primera sin duda alguna tiene los números musicales más espectaculares, incluyendo el ya ahora incluso machacado Defying Gravity, que tiene una traducción más que pasable en En Contra De La Gravedad. La segunda es posible que cante mejor, pero una vez más eso ve disminuido ante la encantadoramente insoportable interpretación que hace de Galinda, que incorpora todos los estereotipos mexicanos de lo que es ser niña fresa.

(“¡Pelo, pelo!“, je).

Ahora voy a tener que ver la puesta en escena en inglés, porque si no no voy a saber nunca qué tanto mejora la versión en español a la original.

Es una delicia la obra, y me parece que es un crimen que se la pierdan. Especialmente en los lugares que mi novia se rifó, bastante adelante y casi perfectamente centrados. Lo único es que cuestan como medio riñón; pero por suerte (o desgracia) no es algo que uno haga cada fin de semana.

Así que, si pueden, vayan y véanla; al salir se encontrarán con la mágica visión del Museo Soumaya iluminado de noche:

Museo Soumaya

Museo Soumaya

(Y la verdad lo de afuera es lo más chido; por dentro me parece que no está muy bien curado que digamos).

Imprimir entrada Imprimir entrada