Descargando trailers de Filmtrailer

Filmtrailer era uno de los podcasts de iTunes a los que estuve suscrito. La teoría es que iTunes descarga los podcasts automáticamente y los tiene listos para sincronizarlos al iPhone.

En la práctica me topé con varios detalles. No puedes decirle a iTunes una hora específica cuándo descargar y lo hacía en horario de trabajo, mi iPhone de 8Gb se llenaba rápidamente, la sincronización era lenta, iTunes es lento, etc.

Recientemente recordé Filmtrailer y como ya no quiero usar iTunes, hice un script de Ruby que descarga nuevos trailers de la misma fuente. Una tarea de cron lo ejecuta a las cuatro de la mañana.

Pueden descargar el script aquí. Requiere wget y las gemas Mechanize y Nokogiri. En realidad podría reemplazarse Mechanize con open-uri, pero lo programé sobre la base de un script anterior más complicado y quedó así.

A single line of code sends readers into a labyrinth

A single line of code sends readers into a labyrinth:

10 PRINT CHR$ (205.5 + RND (1)); : GOTO 10, a new book collaboratively written by 10 authors, takes a single line of code—inscribed in the book’s mouthful of a title—and explodes it.

That one line, a seemingly clumsy scrap of BASIC, generates a fascinatingly complicated maze on a Commodore 64. Run the little program on an emulator—or on an actual Commodore 64, if you happen to have one collecting dust in your basement—and a work of art unfolds before your very eyes, as the screen slowly fills up in a mesmerizing fashion.

Puedes descargar el libro en formato PDF gratuitamente en 10print.org

RubyMotion: Ruby for iOS

¡Qué noticia tan emocionante! RubyMotion te permite crear aplicaciones para iOS (iPhone, iPad) usando Ruby. Tienes acceso a todas las APIs, es compilado (el ejecutable es veloz, veloz), hay una REPL alucinante y todo sobre la línea de comandos. Esto es del mismo desarrollador de MacRuby, garantía de un producto sólido.

Por el momento miro de lejos la posibilidad de hacer desarrollos para iOS, pero si algún día me animo, de hecho incluyo en el presupuesto una licencia.

Diciembre 27, 2010

Me desperté a las 7:11. Nestor ya me había escrito antes de las 7:00, vuelta al trabajo.

Detesto Smarty. Como tiene su propio parser no es posible usar una variable como índice de un hash, tuve que crear una variable extra, lo cual es horrible y feo. Hacer algo sencillo me tomó más tiempo del necesario por ese pequeño detalle. Paciencia. La labor de limpieza y reingeniería de todo el código me va a tomar tiempo, pues paralelamente hay que ir avanzando con los pedidos.

Quiero ver Tron: Legacy; ya está en cartelera, pero sólo el UVK lo tiene subtitulado en la sala 3D (en Cinerama todas sus funciones son dobladas). No tengo interés en verla en 3D y encima es más caro. Grr. De todos modos no me la voy a perder.

Acabo de descubrir el tag {php} de Smarty, hah. Ok, eso va a hacer el desarrollo más tolerable mientras desaparezco Smarty de aquí. Estoy pensando si hay alguna manera de automatizar los cambios. Por lo pronto mi poderoso aliado es siempre bufdo de Vim.

No recordaba qué tan inconsistente es PHP. Para escapar las variables SQL con MySQL, la función se llama mysql_real_escape_string. Con PostgreSQL es pg_escape_string. mysql_real_escape_string toma la conexión como primer parámetro, mientras que pg_escape_string lo toma como segundo.
A la primera oportunidad migro todo esto a Ruby on Rails. Es inhumano programar así. :)

Estuve de pasada por Zeta Bookstore ¡y no había la sección de Phantom Music! ¿Ahora dónde puedo comprar CDs originales? :(

Aprendiendo Ruby con Ruby Koans

Ruby Koans es un método muy original para aprender a programar en Ruby.

The Koans walk you along the path to enlightenment in order to learn Ruby. The goal is to learn the Ruby language, syntax, structure, and some common functions and libraries. We also teach you culture. Testing is not just something we pay lip service to, but something we live. It is essential in your quest to learn and do great things in the language.

A Scripter at Heart

My mom was throwing some kind of party downstairs, and one of the guests tried to draw me out of my room and be social. She was a very nice lady, with the best of intentions. I brandished my K&R book as a shield, holding it up and explaining to her: «No. You don’t understand. This is important. I need to learn what’s in this book.»
(Link)

Dynamic Programming Day 2008

Dynamic Programming Day 2008

Este Sábado 16 de Agosto se llevará a cabo el Dynamic Programming Day, organizado por el PLUG. Se tratarán diversos lenguajes de programación dinámicos. La entrada es gratis, el evento se llevará a cabo en Cibertec. Más información y el programa completo en la web del PLUG.

Participaré como ponente hablando sobre Ruby.

Ayúdanos a difundir el evento con el afiche y banner provisto en la web del evento. ¡Allí los espero!