Adiós Thin White Duke - un tributo a David Bowie en Vala
Posted on Mon 11 January 2016 in Vala
Estaba mirando el asteroide 131 Vala, lo que dio su nombre al lenguaje de programación, en el JPL Small Object Database cuando me llego la noticia triste del fallecimiento de el David Bowie. Como muchos de mi edad, crecía sin saber nada de un mundo sin viaje espacial, el amenazo de guerra nuclear o el Thin White Duke. No había otro artista capaz de captar aquel sentido de asombro y miedo de una especie caminando en la cuerda floja hacia su destino. Podríamos tropezar y caer en el olvido o alcanzaremos las estrellas? Eran todos los héroes como el Major Tom? Frágil y imperfecto, sin embargo con coraje cautivador.
Estuve pensando en esas cosas cuando estaba mirando el website de JPL y me di cuenta que el venerable Orbit Viewer applet ya no estaba funcionando. Yo querría ver unos cuerpos celestes moverse esa mañana con una banda sonora de David Bowie así que descargue el código fuente del applet y lo porte a Vala. Para la musica, agregue un pequeño reproductor de gstreamer que carga y toca un archivo Midi de midiworld.com.
Portear código de Java a Vala es relativamente fácil, especialmente cuando el código es más viejo y no tiene muchos de los trucos raros que se han introducido en el lenguaje tras tantos años. La parte más rápida de portear fue la biblioteca de funciones para calcular las orbitas, ya que esto es mas o menos pura matemática. La parte mas complicada fue la interfaz, la que creé de nuevo en Glade y las rutinas de dibujar para animar todo. Estaba trabajando en un port del motor de física Box2D, así que he resuelto muchos de esos problemas antes. El resultado final se ve arriba.
Todavía le falta un poquito de trabajo antes de ser completo - solamente el buton de reproducción funcionar y aun no hay forma de ajustar el puerto de vista - pero esos son fáciles de implementar. Si le interesa a alguien, pondré todo en un repositorio de Github - tanto las rutinas de la física y la animación son bien interesante para principiantes aún con la falta de comentarios.
Pues bien, gracias por mirar y gracias a ti Starman, por todos los años dorados...