Fantastic Four: Rise of the Silver Surfer

Haciendo caso omiso a todo mi sentido común (que me decía/dice que tengo que trabajar sin pausa porque se me acaba el tiempo en California), fui a ver Fantastic Four: Rise of the Silver Surfer.

Se aplican las advertencias de spoilers de siempre.

Fantastic Four: Rise of the Silver Surfer

Fantastic Four: Rise of the Silver Surfer

Creo que es la mejor adaptación de un comic que he visto en mucho tiempo. No le llega a Spider-Man 2 o Sin City, pero es sin duda alguna fiel, honesta, y además no se toma terriblemente en serio; lo cual es difícil de encontrar en los estrenos de verano, y más aún si se toma en cuenta de que al fin y al cabo es Galactus con quien se enfrentan los Cuatro Fantásticos.

La historia es un reflejo sorprendentemente fiel de las primeras apariciones de El Devorador de Mundos y del Silver Surfer; y de la saga cuando Doom le roba al segundo su deslizador cósmico… o como sea que se traduzca. Michael Chiklis y Chris Evans de nuevo hacen muy bien sus papeles, y en particular me gusta que Evans consiga darle a Johnny Storm un estilo más maduro que en el comic, y al mismo tiempo uno más inmaduro. Chiklis yo sigo diciendo que podría hacerle de The Ting sin maquillaje.

Ioan Gruffud (A.K.A. Lancelot) me convenció más en esta película como Mr. Fantastic, y Jessica Alba (de nuevo) me sorprendió como Sue Storm. Lo único que no entiendo es por qué siguen empeñados en la idiotez de pintarla de rubio y ponerle pupilentes azules: se ve artificial (y algo vulgar), y no veo porqué no cambiar el canon y decir que ahora la Mujer Invisible es latina. Digo: Alicia Masters es negra aquí, y Pete Ross es negro en la serie Smallville; no creo que tenga nada de malo algo cambiarle razas a los personajes: no es algo fundamental en ellos (en este caso al menos; si alguien tratara de cambiarle la raza a Luke Cage entonces sí creo que habría problemas).

Beau Garret como Frankie Raye está bien; muy guapa al menos, pero no tiene nada que ver con su contraparte en los comics. En los comics ella termina convirtiéndose en el heraldo de Galactus; tengo esos ejemplares, en español, de cuando los publicaba Novedades. O Novaro. O alguien. Creo que era John Byrne el dibujante en ese momento de los FF.

El Doom de la película es más fiel al de los comics que el de la primera (lo cual no era muy difícil), pero no terminó gustándome mucho su aparición. Creo que la película pudo haber sido exclusivamente de Galactus y el Silver Surfer.

Lo que más me gustó (después de la fidelidad a los comics) fue el tono ligero de la película. Algunos chistes tal vez sí son medio mensos; pero no se ven forzados (creo yo), y de verdad parece que los actores se estaban divirtiendo. Toda la escena de la despedida de soltero de Reed es bastante divertida.

Y como pilón, Reed usa un Nokia 770 como PDA… que por supuesto corre Linux. (Creo que es el 770, porque el 800 está más gordito).

Cuando salió la primera película de los Cuatro Fantásticos, yo (como muchos más) estaba bastante seguro de que sería pésima. En gran medida era por Jessica Alba, debo admitir, pero el punto es que entré al cine con muy bajas expectativas. A eso atribuí que me hubiera gustado tanto la primera parte: tenía tan bajas expectativas (razoné) que casi cualquier cosa no pésima me hubiera contentado. Ahora veo que me equivoqué: la primera película y esta comparten algo que es indispensable en cualquier adaptación de un comic a la pantalla grande; están hechas con cariño por gente que es obvio que de verdad disfrutan de leer comics.

Está padre la película; y ciertamente vale la pena verla en el cine tan solo por los efectos especiales. Me gustó más que Spider-Man 3.

Trac

Ahora que liberé la versión 0.0.7 de Geom, me harté del pequeño sitio en PHP que había escrito cuando trac comenzó a asesinar mi servidor. Además, de verdad me gustaría comenzar a usar un bug tracker, y evidentemente bugzilla es demasiado para Geom.

Así que decidí darle una segunda oportunidad a trac. El nuevo sitio de Geom está aquí, y el anterior redirecciona automáticamente a él. Los paquetes (.tar.gz, .rpm y .deb) siguen en el mismo lugar, así como los screenshots y los screencasts.

No recuerdo exactamente cuál fue el problema que tuve la última vez con trac; creo que dejaba abiertos un montón de archivos y entonces Apache ya no podía abrir (y por lo tanto servir) más páginas, pero la verdad no me queda claro. Lo que sí me queda claro es que desinstalé trac y moví todo el negocio a abulafia con un sitio escrito en 20 minutos con PHP, que sirvió más o menos para lo que quería hasta que el sábado me harté de cómo actualizaba las páginas (básicamente con XEmacs o Jed corriendo en una sesión SSH a abulafia).

Trac me sorprendió mucho; no sólo está más bonito de lo que recordaba, sino que está jalando de maravilla. Especialmente considerando que abulafia no es la máquina más poderosa (pero ni de lejos) del universo. Pero además está muy chido de configurar, y el wiki es extensible con pequeños archivitos de Python (lo cual jala sorprendentemente bien).

No me llevó mucho pasar todo lo que tenía al wiki; y además está la ventaja de que la interfaz con Subversion está bien bonita: puedo ver desde el navegador el código con sintaxis coloreada (como aquí), puedo ver las diferencias entre versiones (como aquí), y un montón de cosas más.

Y además es un wiki; hacer modificaciones a las páginas es facilísimo (cualquiera puede de hecho). Y me gusta cómo se ve, aunque igual y le hago más modificaciones luego.

Es como crack, les digo

Programar en Geom es como crack; altamente adictivo.

Ahora que terminé el primer capítulo de mi tesis (que debo aclarar que no es el primer capítulo de mi tesis, es el primer capítulo que escribí; terminará siendo el tercer o cuarto capítulo, dependiendo), utilicé mucho Geom para hacer varias de las figuras que en él aparecen.

Eso hizo que fuera arreglando ciertas cosas en el programa (la primera arreglar el script g2p.py; ni siquiera me di cuenta en qué momento dejó de funcionar), y poco después platicando con Omar me dio algunas ideas para mejorar el desempeño del algoritmo que calcula cómo redibujar construcciones dependientes a otra construcción. La idea fundamental es tan obvia que me da vergüenza no haberla pensado antes: utilizar un caché para sólo calcular una vez la lista de construcciones que se están moviendo.

Después de hacer eso hice algunas mediciones, y vi que estaba perdiendo mucho tiempo dibujando la pantalla cuando no era necesario. Así que ahora el programa sólo redibuja la pantalla cada 10,000 microsegundos, y se nota bastante (creo yo) en el desempeño.

Pero además llegué a la conclusión de que tal vez mucha gente no esté bajando Geom un poco intimidados por el hecho de tener que instalar CCC directamente del repositorio de git, así que bajé unas imágenes de VMware, instalé VMware Player, y me puse a hacer paquetes de Geom y CCC para Ubuntu 7.04 y Fedora 7.

Geom corriendo en Ubuntu 7.04 en VMware Player

Geom corriendo en Ubuntu 7.04 en VMware Player

Geom corriendo en Fedora 7 en VMware Player

Geom corriendo en Fedora 7 en VMware Player

Está muy chido el VMware Player, si bien es algo doloroso correrlo en mi laptop (que no es muy poderosa). Pero fue utilísimo para crear los paquetes… que por cierto; había olvidado lo horrible que es hacer RPMs. Y los paquetes de Debian (ergo Ubuntu) no están mucho mejor; de hecho creo que me gustan más los RPMs: al menos uno hace un archivo (el famoso spec). En Debian es un directorio, con mínimo como cinco archivos.

Ya entrado en calor, también hice un overlay chiquito para Gentoo, para poder instalar CCC y Geom. Y sin duda alguna creo que los ebuilds son infinitamente superiores a los packetes binarios de Fedora y Ubuntu.

Como sea, todo esto está en la sección de downloads en la página de Geom, y pueden ver instrucciones para instalar los paquetes en distintas distribuciones en la sección de install.

Ahora sí no hay pretexto: ya ni siquiera tienen que compilar nada para instalar Geom.

Y bueno, con su permiso me voy a dormir, que tengo una semana para demostrar el teorema que será el resultado central de mi tesis.

“Eks-oh-shay-milco?”

El lunes en la mañana terminé el primer capítulo de mi tesis. Ya Bernardo y Silvia tuvieron bien a hacer correcciones, que debo seguirlas y además terminar de sacar un teorema que será el resultado principal de mi tesis… si lo demuestro, claro. Pero yo creo que sí.

Como sea, ya que falta menos de un mes para regresar, cancelé por adelantado los servicios de luz y agua, para que nos regresen el depósito que dimos, necesario dado que no tenemos número de seguro social. Resulta que el famoso depósito nos lo envían a cualquier lugar en el mundo, así que les di la dirección de mi casa en Xochimilco letra por letra, para asegurarme de que la apuntaran bien.

Pero después de apuntarla, me la leyeron. Bue Dios, eso fue cagado:

Operadora: Del-e-gacion Eks-oh-shay-milco?

¡Dos veces!

Dos a la cinco es treinta y dos

¿Cómo le hace uno para correr un algoritmo exponencial y que haya esperanzas de obtener un resultado en lo que dura el universo (o en lo que me regreso a México, que desde mi punto de vista es lo mismo)?

Pues uno agarra las treinta y dos máquinas en el laboratorio de cómputo de una universidad, que por ser verano casi no se usan, y las pone a trabajar en paralelo iniciándolas con un LiveCD de Gentoo y automatizando el proceso con un mini servidor escrito en Java corriendo en CU en México. Los procesos paralelos corren en C, por supuesto; no lo escribí en ensamblador nada más porque confío en gcc -O3.

Por supuesto, el problema es intratable (es lo malo con las cosas NP completas); pero esta instancia podemos atacarla mientras aún estoy aquí. De hecho, tal vez acabe esta semana.

Y eso es bueno.

Pirates of the Caribbean: At World’s End

Tan agobiado en chamba estuve esta semana, que no escribí que el domingo pasado fuimos a ver Pirates of the Caribbean: At World’s End. Se aplican etc.

Pirates of the Caribbean: At World's End

Pirates of the Caribbean: At World’s End

Comenzaré diciendo lo que creo que es obvio: Pirates of the Caribbean: At World’s End, es una mala película.

No digo que sea la más mala de la triología (que lo es, obviamente), digo que es mala. No sólo es mala; es bastante mala. El Ronquillo lo resumió bastante bien “es como porno“. Y sí es cierto, sólo que en lugar de chisguetazos hay cañonazos.

Ahora bien, casi todos los que me conocen saben que a mí me encanta la pornografía, así que tal vez no sea de extrañar que me haya gustado mucho la película.

Tiene que ver, por supuesto, que es yo creo la mala película mejor hecha que he visto. De hecho, creo que es la peor película mejor hecha que he visto; el Ronquillo lo resumió también bastante bien “vamos a ver cómo nos gastamos 200,000,000 (doscientos millones) de dólares”. Y además, los indudablemente buenos actores como Johnny Depp o Geoffrey Rush se ve que se divirtieron como enanos todo el tiempo.

Yo sí estuve muerto de la risa las tres cuartas partes de la extremadamente larga función, y disfruté particularmente toda la escena de la boda (ciertamente creo que es la boda más divertida que he visto en cine; al menos le gana al intento de boda del Sheriff of Nottingham y Marian Dubois en Robin Hood: Prince of Thieves… y esa incluía a Alan Rickman).

Pero a pesar de que me la estaba pasando muy bien, y de que de hecho salí muy contento de haber visto la película (en el cine, claro), lo cierto es que es imposible dejar de notar lo mala que es. Es una orgía de efectos especiales, bromas rápidas (y muchas veces estúpidas… pero eso sí, divertidas), personajes secundarios que mueren a puños, escenas de acción espectacularmente sin sentido, y un montón de personajes con la profundidad de una hoja de papel celofán. Es, literalmente, una película porno de doscientos millones de dólares (o más, me da miedo pensar), donde lo que más alcanzamos a ver de Keira Knightley es medio muslo.

Sin duda alguna hay que verla; y en el cine (de hecho no creo que tenga mucho sentido no verla en el cine), pero es como esos tacos de suadero de afuera del metro Pino Suárez que uno se come crudo (o todavía borracho) a las dos de la mañana porque no hay otra cosa abierta: sí, saben a gloria, y sí, uno puede disfrutarlos de forma casi orgásmica. Pero no deja de ser verdad que, desde cualquier punto de vista que uno lo quiera ver, no son buenos. De hecho, son terribles. Deliciosamente malos, pero malos al fin y al cabo.

Así es esta película. Con la diferencia que los tacos de suadero cuestan cuatro pesos cada uno, y esta película costó doscientos millones de dólares.

Geom 0.0.6

Una semana después, Geom 0.0.6 ha sido liberado.

De hecho no me tardé tanto con esta versión; un par de días en la tarde nada más. Pero lo que le incluí es, creo, fabuloso: extensiones en Python. Con ellas de verdad se vuelve extensible el programa (valga la rebuznancia).

La cosa es que, una vez logré ver cómo llamár los métodos de Python desde C para los plugins, me di cuenta que era exactamente lo que necesitaba para las restricciones de las construcciones (que por cierto, el llamar métodos de Python desde C es relativamente sencillo, si bien no lo he visto documentado en ningún lado… tal vez debería hacerlo yo… si no tuviera cosas que hacer).

Lo padre de esto es que cualquiera puede extender Geom sin necesidad de saber nada de C, y realmente muy poquito de Python (yo mismo no sé mucho). Y lo puede hacer aventando un par de archivos en un directorio de su $HOME, sin necesidad de recompilar nada.

Sólo para probar qué cosas se podían hacer, escribí tres extensiones que están incluidas en esta versión. La primera genera Kn (esto es, la gráfica completa de n vértices) poniendo los vértices sobre un círculo. No tiene nada de especial; de hecho ya se podía hacer (fácilmente además) desde la consola de Python. Lo bonito es que diseñé un método para que el usuario le pueda pasar información a una extensión (n en este caso); en este momento sólo se pueden pasar enteros y flotantes (y cadenas, que no tengo idea si tenga sentido), pero ya con eso se pueden hacer bastantes cosas. Vean el screencast para darse una idea.

Extensión Kn

Extensión Kn

Hay versiones en AVI en la sección de screencasts del sitio de Geom.

Después hice polígonos regulares. Este tampoco tiene nada de interesante (aunque también le pide al usuario el número de lados); lo interesante es que el polígono regular se puede guardar y volver a abrir, y la restricción sigue funcionando.

Extensión polígono regular

Extensión polígono regular

Después, y entusiasmado por una discusión que tuve con Omar, escribí una extensión que permite calcular el casco convexo de un conjunto de puntos. Esta extensión no pide entrada al usuario; pero sí deben estar seleccionados los puntos a los cuales se les quiere calcular el casco convexo (igual que en el polígono regular, por cierto).

Extensión casco convexo

Extensión casco convexo

Lo bonito es que por supuesto el casco convexo se conserva aunque movamos los puntos. Es bastante rápido, de hecho, me sorprendió que corriera tan bien en mi laptop (no se ve muy ágil en el video, pero es que ya calcular el casco convexo todo el tiempo y además estár encodeando a Ogg/Theora sí le pesa a mi maquinita).

Y ya teniendo el algoritmo de Graham Scan implementado, pues de una vez hice un plugin que explica cómo funciona con palos y bolitas.

Graham Scan plugin

Graham Scan plugin

Lo cual está padre, porque usando Geom se pueden explicar muy bien muchos algoritmos de Geometría Computacional. (Y también ayuda programarlos, por cierto).

Pero ahora sí considero agotado el tiempo que le podía haber dado a Geom mientras estoy en California; la cantidad de chamba ha crecido a pasos agigantados (razón por la cual no he escrito casi nada en el blog), y mi escritura de la tesis va bastante bien, creo yo. A lo más le haré pequeñas correcciones al programa cuando las necesite (sigo pensando usarlo para la mayor parte de mis gráficas), pero no creo volver a sacar una nueva versión hasta que vuelva a México.

Eso sí, se aceptan parches. O plugins. O extensiones.

O un API de Python bonito.

Geom 0.0.5

Después de un par de semanas de dedicarle mi tiempo libre, aquí está la nueva versión de Geom.

El número de características nuevas es bastante alto, pero lo más importante sin duda alguna es que por fin tiene plugins en Python. El tener que escribir los bindings para Python me hizo volver a pensar el diseño de casi todo el programa (además de entender porqué ciertas cosas funcionan de cierta manera en GObject), pero creo que el resultado es bastante bueno.

Geom 0.0.5

Geom 0.0.5

Además, dejé de hacer screencasts con Flash y estoy utilizando Istanbul, y debo decir que es fabuloso. Los videos resultantes son bastante bonitos, si bien el único problema es que mi laptop no es muy rápida y algunas cosas (como plugins que hacen animaciones) se ven como dando saltos. Que la verdad no sé de qué me quejo: son videos con resolución de 1280×800.

Quitando que algunas cosas se ven lentas, quedaron bastante bien: dense una vuelta por la sección de screencasts de Geom; hay disponibles en Ogg/Theora (que en mi laptop con Gentoo puede reproducir con Totem, MPlayer, Xine e incluso dentro de Firefox con el Totem Browser Plugin), y en AVI, aunque la verdad no sé qué tan fáciles sean de ver en Windows.

Screencasts de Geom

Screencasts en Geom

Con la funcionalidad que dan los plugins, ahora sí se puede usar Geom para cosas “serias”; el programa viene con dos plugins de ejemplo, y ambos hacen animaciones. Pueden verlas también en este screencast.

Estoy bastante orgulloso de esta lección; espero que ahora sí mi número de usuarios aumente de “1”.