Cómo crear un vídeo de tu SVN con CodeSwarm

Seguro que habéis visto vídeos por ahí donde se ve la evolución del código fuente de un proyecto de una forma visual bastante atractiva. Salen los nombres de los usuarios del SVN que hacen cambios y se ven los ficheros como “bolitas” de colores que se van juntando alrededor del usuario… cómo es un poco dificil de explicar os dejo el vídeo que he generado de la práctica de PL en la que estoy trabajando:


Mola, eh? No es que sea demasiado útil (aunque se puedan sacar ciertos datos “a ojo”) pero queda bonito para ponerlo en el blog del proyecto o en la página de presentación del proyecto. Muy 2.0, como dirían algunos. Siguiendo el link encontraréis las instrucciones para generar vuestros vídeos a partir de cualquier repositorio SVN.

Fuente: Documentación de CodeSwarm

Los vídeos se generan usando la aplicación CodeSwarm, lo primero que vamos a hacer es obtener una copia de ésta aplicación a través de su SVN con el siguiente comando:

svn checkout http://codeswarm.googlecode.com/svn/trunk/ codeswarm-read-only

Ahora que ya tenemos el CodeSwarm tenemos que obtener una copia de trabajo del SVN del que queremos hacer el vídeo. Lo podemos hacer con una orden muy simple, pero acordaros de hacerlo en otro directorio (o un subdirectorio nuevo dentro del de code_swarm) para no liar las cosas y evitar posibles sobreescrituras no deseadas. La sintaxis es sencilla:

svn co direccion_del_SVN .

Ahora, nos introducimos dentro del directorio con la copia de trabajo y pillamos el log, que es lo que usa code_swarm para generar los vídeos:

svn log -v > mylog.log

Una vez tengamos el log no necesitamos más la copia de trabajo, así que podemos borrarla si no la necesitamos para nada más.

Ahora vamos a mover ese fichero mylog.log al directorio convert_logs dentro del directorio de code_swarm y después a convertirlo al formato XML que usa code_swarm con el siguiente comando:

python convert_logs.py -s mylog.log -o activity.xml

Una vez convertido el fichero, lo siguiente es volver al directorio de code_swarm (salir del subdirectorio convert_logs) para ejecutarlo, pero antes, vamos a evitar un error tonto que me he encontrado al usar la última versión. Necesitamos el subdirectorio frames que, por defecto, no viene creado y code_swarm no lo crea en caso de no existir, soltándonos un montón de errores. El subdirectorio frames debe estar dentro del directorio del code_swarm, es decir, al mismo nivel que el subdirectorio convert_logs. Una vez creado podemos ejecutar el fichero run.sh con un simple:

./run.sh

Os preguntará si queréis usar un fichero de configuración distinto al que viene por defecto, en éste caso, para probarlo simplemente pulsad intro y utilizada el que ya existe. La primera vez que lo ejecutéis tendrá que compilar el code_swarm, para ello necesita java y ant, en caso de que os suelte algún error relacionado con no encontrar java (a mi me pasó) es posible que tengáis que utilizar el comando update-alternatives para reconfigurar el ejecutable de java que utiliza el sistema (si estáis en sistemas de 64bits tiene marcado por defecto el java de ia32 y no es capaz de encontrarlo, marcad el que busca code_swarm que lo indica en el mensaje de error).

Después de que se haya ejecutado el code_swarm veréis que tenemos en frames un montón de imágenes en formato PNG. Esas imágenes son los frames que formarán nuestro vídeo, para crear un vídeo a partir de ellos usaremos el mencoder de la siguiente forma (ejecutándolo dentro del subdirectorio frames):

mencoder mf://*.png -mf fps=24:type=png -ovc lavc -oac copy -o video.avi

Hecho ésto tendremos ya el vídeo de nuestro proyecto, ahora sólo os queda subirlo a youtube y compartirlo ;)

Advertisement
  1. Aún no hay trackbacks

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.