lunes, mayo 14, 2012

Work for fun

Hay mucha gente que vive a disgusto con su carrera o con su trabajo. Y me imagino que ha de ser una hueva inconmensurable tener que levantarse todos los días para ir a un trabajo que detestamos. Digo que me lo imagino porque yo disfruto mi trabajo — no porque sea uno de esos ñoñetes que encuentran gusto auténtico en cualquier pendejada, sino porque he convencido a gente para que me pague por hacer una de mis actividades favoritas. Y además soy muy bueno en ello, literalmente soy un pro.

No me puedo jactar de que todo haya sido mi mérito, simplemente fue mi destino, verán...

Desde que tenía unos 3 años me gustan los videojuegos, jugaba al buen Atari 2600. No era tanto lo divertido como la fascinación que me causaba su funcionamiento. Antes de los 7 años sucedieron dos eventos notables en mi vida: vi un cassette de Atari desarmado y vi la película de Tron. Ambas experiencias están tan desprendidas de la lógica abstracta del software que me dejaron muchísimas más preguntas que respuestas.

El siguiente hit fue a finales de 1993, cuando intercambié mi Super NES por una Atari XL y un libro de Basic. Fue ahí cuando entendí los verdaderos ladrillos detrás de los videojuegos. Y fue ahí también cuando supe que a la gente le pagaban por ello, y supe que no quería ser bombero ni policía (ni político ni narcomenudista), sino programador de computadoras.

Y quizás nunca habría pasado de un sueño guajiro si no hubiera tomado un año sabático al terminar la secundaria, o si no hubiera tenido acceso a internet ese mismo año. Aprendí tanto en ese año como aprenden los recién salidos de ISC en sus primeros cuatro años como programadores de verdad.

No pretendo exagerar ni ser jactancioso pero a los 16 años ya estaba versado en temas tan densos como DirectX, Unicode, comunicación entre procesos, entre lenguajes, TCP/IP y ensamblador.

Para cuando llegué a Escom estaba aprendiendo a programar drivers para el núcleo de FreeBSD, y en la escuela tenía que pelearme con los profesores y sus erróneas comprensiones del teorema de DeMorgan, encontrar demostraciones en ensamblador para demostrar que x86 realmente ocupa complemento a 2 para números negativos (lo dudaban), o tener que explicar en un examen cómo mi código IEEE754 era correcto y el de ellos no.

Cuando conseguí mi primer trabajo de programador me di cuenta (con gran pena) que Escom es la mejor escuela para estudiar ISC. Pero que ni Escom le llega a los talones a agarrar tu compu y programar usando internet como guía.

Y entonces la actividad que tanto me apasiona y a la que he dedicado miles de horas de mi vida es ahora el medio por el cual me gano la vida. En la segunda actividad en la que soy bueno es para tocar la guitarra, y es un segundo lugar tan distante que creo que mi destino será siempre ser un programador.

Ahora sólo espero que el apocalipsis zombi inminente no implique la destrucción de todas las computadoras del mundo... eso me jodería bastante...

martes, febrero 21, 2012

Time lapse

Ha pasado un rato, ¿eh?
Han sido varios años desde que comencé con este blog, nunca lo actualicé con frecuencia (ni planeo hacerlo) y no todo lo escrito aquí vale la pena leerlo. La mitad de los posts son tan crípticos que luego ni yo me acuerdo qué quise decir.
Nah, miento: siempre recuerdo todo lo que sentía al escribir. Es una muleta de mi memoria. Un bastón para mi corazón.
Si a nadie le parece relevante este blog, supongo que no importa.
He just wrote it like that.

jueves, junio 09, 2011

All the colors in the rainbow

Estaba en la vocacional, sexto semestre, primer parcial. La clase creo que se llamaba Aplicaciones de software, y la impartía el prof. Ceciliano. Era programación en Borland Turbo C++, con la cualidad de que algo leyó y en lugar de hacer los ejemplos del Turbo C++, estuvimos todo el semestre haciendo llamadas directas al sistema. Bastante más divertido en mi opinión.

Para el examen práctico teníamos que graficar la función seno o coseno en pantalla, usando una mini librería gráfica que hicimos en el parcial (básicamente una función put_pixel(x,y)). Estaba el prof. Wilberto cuidando el examen que a mí me tocó, y también fue Ceciliano, pues ya sabían que yo rifaba.

Así que me apliqué y, en tres minutos ¡bam!, dos ciclos y medio de sinusoidal en pantalla.

—A ver, que llene toda la pantalla a lo alto—dijo Wilberto.

—Ok—, y en un par de teclazos ya lo teníamos así.

—Y que sólo sea un ciclo a lo ancho

—Ok—, y en unas cuantas teclas más lo vimos.

—A ver... que muestre todos los colores del arco-iris.

—Ok—, y recordando que la paleta del modo de 256 colores trae por default varios gradientes de colores, sólo tuve que poner un contador para que la curva graficada en pantalla se viera multicolorida.

—¡No, si tú sí estás cabrón!

Como me late apantallar. Lástima que sólo para las máquinas soy bueno.

domingo, marzo 27, 2011

Pegasus, I choose you

En sexto de primaria Luis Humberto y su hermano Miguel me invitaron a participar en un juego que tenían que consistía en masacrar a sus alter-egos de monito de palitos. Para esto se dibujaba al monito en la silla eléctrica, siendo atacado por motosierras o cualquier otra muestra de ultraviolencia.

Pero fue con otro compañero, José Becerril, con quien comenzamos una idea más ambiciosa al abandonar los dibujos de palitos y adoptar personajes, principalmente de Saint Seiya — los meros meros Caballeros del Zodiaco. Esto fue porque me vio haciendo un 'estudio' del daño de la armadura sobre mis intentos de dibujar a Saga de Gemini.

Hicimos algunos ensayos de combate sobre una regla sencilla: en una cantidad limitada de cuadros había que dañar al personaje del oponente. El resultado era hilarante.

Entonces Oscar nos propuso hacer un cuaderno completo y vendérselo por 20 pesos. Para asegurarnos de tener contenido cada quién eligió tres personajes y algunas reglas que impedían matar personajes o resucitarlos con extrema frecuencia. Al final dejaban de combatir para unirse en contra de un enemigo común pero no recuerdo si dibujamos o no esa batalla. El caso es que fue un éxito.

En la secundaria le presenté esa tradición milenaria a Christian y a Picaso. No usábamos un cuaderno, sólo nos pasábamos una hoja, y teníamos que declarar una cantidad limitada de personajes desde el principio. Yo recuerdo haber participado en no menos de 40 de estas que llamamos Guerras de Historietas. Después César se unió.

Cuando pasamos a segundo grado estuvimos en grupos separados, pero eso no era impedimento: nos pasábamos las hojas entre clases.

Un día estuvimos César, Picaso y yo juntos en una hora sin maestro, y les conté de la hazaña de sexto de primaria. Así que tomamos un cuaderno en blanco y decidimos usarlo para una guerra súpermasiva. Como necesitaríamos muchos personajes decidimos hacer una lista maestra. Empezamos con los clásicos caballeros del zodiaco y superhéroes de moda, pero Picaso fue de la idea de usar al maestro Sapo (peor conocido como Virgilio), y de ahí fue un debraye que nos provocó muchas carcajadas.

Les dije que no era buena idea usar a esos personajes y los convencí de sólo tomar a 10. Aún creo que agarramos maestros y prefectos, pero la historieta empezó sin broncas. Cada quién tenía derecho a usar 5 cuadros, o en algunos casos podría usar menos para luego gastarlos. Los personajes no debían ser exterminados sin oportunidad de sobrevivir una página y no podía usarse la misma justificación de resurrección más de una vez.

Todo comenzó más o menos bien hasta que le decomisaron el cuaderno a César. En la página de atrás estaban nuestros nombres y nuestra lista de personajes (más de 40 incluyendo profesores), todos con apodo y algunos hasta con ilustración. Yo no vi cuando lo decomisaron, y cuando me llamaron a comparecer a orientación ya estaban ahí César y Picaso.

La verdad no recuerdo que haya sido muy extremo el regaño. De hecho lo más difícil fue confesar qué maestros correspondían a los apodos. Y también explicar un golpe que Hyoga le aplicó a Seiya en los gumaros y del cual supuestamente se salvó porque traía el suspensorio de bronce — que se sacó para mostrarlo y recibió una segunda dósis de la cual ya no se salvó.

Amenazados de expulsión (porque, finalmente, la hoja final hablaba de 'matar' a los 'maestros', duh) y bajo promesa de no reincidir, fundamos otro cuaderno. Este tenía la cualidad de que sólo nos lo llevábamos el fin de semana para reducir nuestra exposición a más problemas. A diferencia de todos los otros dibujos, ese cuaderno aún lo tengo en mi poder.

Ya no pude convencer ni a César ni a Picaso, pero sí a Carlos, un amigo con el que jugábamos Pro-Action Football. Hicimos nuestra propia guerra de historietas basada en fútbol extremo entre el Cruz Azul y el Guadalajara. Era como una fusión de Supercampeones y Mortal Kombat.

Y ahí fueron las últimas guerras de historietas.

miércoles, marzo 16, 2011

Sold-out

En tercero de primaria sucedió que hice un dibujo de una figura del pato Plucky. Y sucedió que un compañero, creo que fue Chiquito, me ofreció 500 pesos por él.

Vendí dos o tres copias antes de que me propusieran hacer dibujos en grande de los entonces populares Tazos. Al ver mis capacidades el negocio simplemente floreció.

Después me pedían diferentes escenas con diferentes personajes, dibujaba copias de posters de la Club Nintendo, dibujaba cualquier cosa que podía imaginar y que podía interesarle a un niño de primaria. Todo lo vendía, desde luego. Tenía mi carpeta y ahí guardaba mis creaciones.

No siempre fue fácil, a veces hubo competencia.

Tuve que enfrentar a la "Fábrica de Dibujos La KenyRyu", entre otros, que copiaban con papel carbón mis diseños originales. Y otros que de plano vendían copias fotostáticas.

También había problemas con el cobro de los dibujos. Yo mismo tuve que aplicar el largo brazo de mi ley para evitar la morosidad, recurriendo a embargos y cosas similares.

Un buen día me enfermé y falté a la escuela. Y me salvé de una "redada" que hubo ese día, donde decomisaron el stock de todos mis competidores. Fui llamado a comparecer ante la justicia en la oficina de la direc pero como yo no guardaba ningún stock (dibujaba on demand), no se me pudo levantar ningún cargo.

En quinto grado se terminó el negocio. Es más fácil quitarle el dinero del lunch a un niño de 8 años que a un niño de 10 vendiendo dibujos mal hechos y sin color.

jueves, febrero 17, 2011

Draw, pilgrim

Una las muchas aficiones que he tenido en mi vida es dibujar. No soy muy bueno en mis trazos, pero he desarrollado la capacidad de plasmar en papel mi percepción espacial, que es bastante buena.

Cuando iba en la prepri era común tener que ilustrar las palabras de vocabulario en inglés. Se supone que debía de ser con recortes de revistas, pero eso es una pachanga para los padres. Así que en ocasiones mi papá prefería ilustrarlos él mismo. Ahí comenzó mi idea de que algún día podría dibujar igual de bien.

En la primaria siempre me calificaron de distraído por mi capacidad de escuchar palabras clave de una plática ajena mientras hago otra cosa — no me funciona con pláticas propias. Sumado a mi hábito de ponerme a leer los capítulos avanzados del libro en lugar de resolver los ejercicios, pues siempre sabía de qué se estaba hablando en la clase.

Como sea, por esta costumbre me movieron de lugar junto con un colega llamado Ricardo Cadena. Y en la clase de dibujo de los viernes me di cuenta que su cuaderno tenía muchísimas más hojas ocupadas — todos sus cuadernos tenían más dibujos que apuntes. Estaba dibujando una especie de juego de fútbol americano, y declaré que quería participar. El resultado fue una especie de juego interactivo en el que uno dibujaba al receptor, y si el otro era suficientemente rápido pondría al esquinero antes de que el lápiz, trazando la trayectoria del balón, llegara a su destino.

Ahí fue el principio del fin.

Pronto me acabé mi cuaderno de dibujo que estaba lleno de pequeñas secuencias de acción con Batman, Super Mario, Bart Simpson y las mismísimas Tortugas Ninja. Las primeras 20 veces fue difícil explicarle a mi mamá a qué hora dibujaba tanto. Ya después se acostumbró.

martes, enero 11, 2011

It only does everything

¿Por qué no había sido crackeada la PS3? La mayoría de los hackers están interesados en lograr cosas como instalar Linux (o NetBSD) en cualquier procesador. Por eso es que hay Linux para Wii, Gamecube, PS2 y PSX. Sony ejecutó un movimiento maestro al incluir la instalación de Linux oficialmente, manteniendo a los hackers alejados de las tripas de la consola.

Pero el año pasado olvidaron la maestría detrás de la función OtherOS y decidieron desactivarla. Entonces los hackers buscaron y encontraron un error totalmente absurdo y totalmente grave.

Básicamente un programador decidió meter en el proceso de firma de código una constante numérica en lugar de un número aleatorio. ¿Por qué? Quizá por flojera. Quizá el programa sí tiene un generador de números aleatorios pero pusieron la constante para hacer pruebas y se olvidaron de quitarla. Quizá se dieron cuenta cuando ya habían fabricado algo y creyeron que nadie lo notaría. Es un error que se habría arreglado con un par de líneas de código y la inclusión de una librería.

Si Sony tiene más firmas entonces es cuestión de descontinuar la que ha sido comprometida. Lo más seguro es que sólo hicieron una. Que está grabada "en piedra" dentro de la PS3. Tienen las siguientes opciones:

  1. llamar a reparación todas las consolas para actualizarles el ROM que tiene la firma
  2. crear un nuevo ROM con más firmas y firmar por duplicado todo el software a partir de ya: las consolas viejas correrán piratería, pero las nuevas requerirán una segunda firma, bien hecha
  3. ignorar a las consolas viejas y simplemente firmar con una firma nueva: si quieres jugar LBP2 tendrás que comprar una PS3 nueva
  4. sacar la nueva PlayStation 4 que sería una PS3 con todas las características que ha perdido: reproducción de SACD, OtherOS, compatibilidad con PS2, más puertos USB, lectora de tarjetas… y esta vez hacer bien el rollo de las firmas

Yo creo que optarán por la 2. Espero que Sony, Microsoft y Nintendo publiquen una firma para homebrew en sus próximas consolas, ahorrándose estos bochornosos ratos.

A continuación les dejo un texto que es mi traducción del regalo de reyes que presentó BBC News. Disfruten.

La seguridad de la PlayStation 3 ha sido penetrada por hackers, permitiendo que en potencia cualquiera corra cualquier software —incluyendo juegos piratas— en la consola.

Un colectivo hacker mostró recientemente un método que puede forzar al sistema a revelar claves secretas usadas para cargar software en la máquina.

Un hacker americano que ganó notoriedad por desbloquear el Apple iPhone ha usado un método similar para extraer la clave maestra de la PS3 y la ha publicado.

Sony no ofreció comentarios al respecto.

"La consola está totalmente expuesta – no hay marcha atrás de esto", dijo pytey, miembro del grupo hacker fail0verflow, quien reveló el ataque inicial en el Chaos Communication Congress en Berlin en diciembre.

"No puede ser peor – alguien está en serios problemas en Sony ahora mismo".

El grupo, que previamente hackeó el Nintendo Wii y se declara vehementemente en contra de la piratería, dijo que desarrolló este hack para poder instalar otros sistemas operativos y software original de la comunidad —llamado homebrew— en la poderosa máquina.

"Los detalles que dimos y la información y técnicas que revelamos serían suficientes para instalar Linux", dijo. "No nos interesa la piratería".

Luego de la presentación, el hacker americano George Hotz, quien previamente hackeó partes de la consola, usó una técnica afín para extraer la clave maestra. Ahora la ha publicado en su blog.

Following the presentation, US hacker George Hotz, who has previously hacked parts of the console, used a similar technique to extract the master key. He has now published it on his blog.

Este número antes secreto se usa para "firmar" todos los juegos y programas del sistema, certificando que son genuinos y aprobados por Sony.

Pero si la clave es pública, puede usarse para firmar cualquier cosa — incluyendo software y juegos no oficiales.

"Detesto que permita la piratería", dijo Hotz. "La publicación de la clave es principalmente académica".

El número también funciona para la portátil de Sony, PlayStation Portable, dijo Hotz.

Los desarrolladores ya están liberando herramientas para crear nuevo software para la PS3 usando estos hacks.

Blanco válido

La PS3 — otrora considerada la consola más segura, y la única sin ser permanentemente crackeada — ha estado bajo creciente escrutinio de los hackers en los últimos 12 meses.

En enero de 2010 Hotz dijo haber crackeado la consola.

Luego de este anuncio Sony liberó una actualización deshabilitando una función llamada OtherOS que permitía a los jugadores instalar una versión de Linux en sus máquinas, suponiendo que había sido atacada por Hotz.

Muchos lo vieron como un golpe preventivo para protegerse de la piratería.

Hotz nunca liberó la vulnerabilidad y declaró públicamente haber dejado de trabajar en la consola.

Pero la remoción de OtherOS de parte de Sony llamó a otros hackers a mirar más de cerca el sistema.

"Se convirtió en blanco válido" dijo pytey a BBC News. "Esa fue nuestra motivación para hackearla".

Dijo que el equipo pasó "meses" tratando de penetrar el sistema.

"No fue trivial lograrlo", dijo.

Al final el error que les permitió crackear el sistema fue un error criptográfico básico que les permitió calcular la clave privada que está en manos de Sony, dijo.

"Sony usa una clave privada, normalmente en una bóveda en las oficinas de la compañía, para marcar el firmware como válido e intacto, y la PS3 sólo necesita la clave pública para comprobar que la firma proviene de Sony.

"Si se usa correctamente, nos tomaría miles de millones de años derivar la clave privada a partir de la pública, o falsificar la firma sin saber la clave privada, aún teniendo todo el poder computacional en el mundo a la orden".

Pero el equipo descubrió que Sony cometió un "error crítico" en su implementación de la seguridad.

"La receta de la firma requiere un número aleatorio como parte del cálculo, con el detalle de que dicho número debe ser totalmente aleatorio, impredecible de cualquier forma", dijo el equipo.

"Sin embargo, Sony escribió su propio software para la firma, que usa una constante cada vez". (N. del T.: FAIL!!!!!!!)

Esto le permitió al equipo usar "simple álgebra" para revelar la clave secreta de Sony sin tener acceso a ella.

"Esto debería ser el secreto de los secretos — las joyas de la corona", dijo pytey.

El equipo decidió publicar el método pero no las claves.

Luego de que revelaron su hack, Hotz dijo que se renovó su deseo de trabajar en el sistema.

"¿Qué diversión hay en una carrera si nadie compite?", dijo. "fail0verflow hicieron un gran trabajo — un nivel más arriba".

Usando una técnica similar él fue capaz de extraer la clave maestra del sistema, que luego publicó online junto con una demostración en acción.

Sin embargo, no reveló su método para obtener la clave.

"No hay motivo para hacerlo", dijo.

A pesar de ello, dijo que podría liberar un software que permita a la gente firmar su propio software y juegos caseros —llamados también homebrew— en la consola.

"Tengo un programa que corre, pero pienso una buena forma de liberarlo", dijo.

Como fail0verflow, dijo que no condona la piratería de juegos.

"No quiero que pueda firmar programas oficiales de Sony. Quisiera que sólo pueda firmar homebrew".

fail0verflow dijo que "no concuerda" con la decisión de Hotz de liberar la clave, diciendo que "facilita la piratería sin cumplir algo intrínsecamente útil".

Preocupaciones legales

Sony tiene un mal concepto de la gente que hackea su sistema.

El año pasado un equipo liberó un conector USB llamado PSjailbreak que contenía software que permitía jugar juegos caseros y piratas en la PlayStation 3.

Sony actualizó sus consolas para bloquear el software y tomó acción legal contra sus distribuidores en varios países.

Pero, según pytey, no será tan fácil arreglar el problema esta vez.

"La única forma de corregir esto es liberar nuevo hardware", dijo. "Sony tendrá que aceptarlo".

Dijo que cree que su grupo está en terreno legal con su trabajo.

"No he robado nada", dijo. "Es mi propio hardware, corro lo que yo quiera en él".

Hotz también defiende sus acciones, aunque admite estár "asustado de que le caiga una demanda".

"Confío en que ganaría porque lo que liberé fue sólo un número obtenido corriendo software en la PS3 que compré".