IPython: Una excelente herramienta para enseñar y aprender.

Hace varios días descubrí IPython y me encantó.

Es un ambiente de trabajo interactivo basado en la web en el que puedes echar código, añadir explicaciones con Markdown e incluir gráficos. Todo en un mismo documento. La página oficial incluye un video que demuestra todas sus características:

Como herramienta educativa está genial. A través de cuadernos como estos es posible asignar tareas y hacer presentaciones de una forma mucho más dinámica, con la posibilidad de ver resultados inmediatos y poder compartirlos fácilmente.

Para que funcione, debes tener Python en tu máquina (espero que esto resulte obvio), debes instalar IPython y por último arrancar su servidor web. El servidor automáticamente te ofrece una página web a través de la cual puedes empezar a gestionar tus cuadernos. Cada cuaderno se guarda en tu computadora como un archivo JSON, así que es fácil mantenerlos con un software de control de versiones como Git.

Instalarlo en mi máquina fue sencillo. Tengo una MacBook con OSX Yosemite y utilizo Homebrew como mi gestor de paquetes. A través de Homebrew instalé Python 3 y luego instalé IPython y sus dependencias. El proceso fue el siguiente:


    # instal python y su gestor de paquetes pip
    brew install python3

    pip-3.3 install "ipython[all]"

    # dependencias de ipython
    brew install pandoc

Ese es el resumen. También tienes la documentación oficial de instalación (en inglés). Aunque el código que te mostré antes es el resultado directo de leerla e instalar todo sin errores.

Para arrancar el servidor, crea un directorio de trabajo, entra allí y luego inicia el servidor. Automáticamente se abrirá una navegador con IPython y ya estarás listo para empezar. Los cuadernos que crees se guardarán en ese directorio. Si luego deseas exportar tus cuadernos a PDF, necesitarás LaTeX en tu máquina. Puedes instalarlo en tu Mac usando MacTeX.


    mkdir cuadernos
    cd cuadernos
    ipython notebook
    # se abrirá un navegador en http://localhost:8888/

IRuby también es posible

Otra de las ventajas de IPython es que su plataforma fue pensada para ser independiente al lenguaje de programación del cuaderno y ya existen adaptaciones para crear cuadernos en otros lenguajes. Uno de ellos es Ruby. El proyecto, como no podía ser de otra manera, se llama IRuby.

Una vez instalado IPython, debes instalar IRuby y asociar el lenguaje a la plataforma IPython. Empecemos instalando IRuby:


    # dependencia de iruby
    brew install zmq

    # asumo que ya tienes ruby en tu máquina
    gem install iruby

Actualización del 3/3/2015

A día de hoy (3/3/2015) iruby incluye un comando para lanzar el servidor antiguo de IPython 2.x con el kernel de Ruby. Sin embargo, la versión 3.0 de IPython ha cambiado la forma en que carga sus kernels. Por lo tanto, tendremos que crear un archivo de configuración que se ajuste a esta nueva especificación.

Supongo que en el futuro, el equipo de IRuby actualizará su paquete para ajustarse a esta nueva norma. Mientras tanto, te ofrezco la solución manual, basada en las instrucciones sobre cómo crear un kernel para IPython :)


    # primero debemos saber dónde está instalado iruby
    export TMP_IRUBY_PATH=`which iruby`

    mkdir -p $HOME/.ipython/kernels/ruby
    cd !!:$
    echo "{
      \"argv\": [
        \"$TMP_IRUBY_PATH\",
        \"kernel\",
        \"{connection_file}\"
      ],
      \"display_name\": \"ruby\",
      \"language\": \"ruby\"
    }" > kernel.json

Ahora, cuando lances IPython con ipython notebook podrás crear un cuaderno nuevo y cambiar el kernel a ruby a través del menú “Kernel/Change kernel”.

En los próximos días compartiré con ustedes mis primeros cuadernos para enseñarles cómo empezar a utilizar AWS con Ruby.

Un saludo.

Deja un comentario