Compartiendo código en vivo con el mundo, desde RStudio.

El COVID19 ha cambiado planes, generado preocupación, y alterado hábitos a escala planetaria. Entre tantas actividades afectadas por el mandato del aislamiento social, la educación universitaria intenta continuar por medio de la enseñanza a distancia. Con la velocidad de los cambios que vivimos entre febrero y marzo de 2020, la suspensión de clases presenciales y la obligación de buscar métodos alternativos nos ha tomado a muchos por sorpresa.

A continuación voy a explicar la solución que he encontrado para facilitar la enseñanza de clases de R y Ciencia de Datos a Distancia. En particular, como compartir con cualquier persona, donde quiera que esté, el script que el o la docente está escribiendo en su RStudio. Así es posible que la audiencia, en tiempo real, pueda ver en su propia pantalla la actividad de la/el docente, copiar y pegar el código en su propia sesión, y observar “en vivo” como el código explicado se va desplegando.

Necesitaremos tres ingredientes:

Allá vamos:

Instalar los requisitos

livecode

Podemos instalar livecode directo desde el repositorio de su autor, Colin Rundel.

En una sesión de R, ejecutamos:

install.packages("remotes")

y luego

remotes::install_github("rundel/livecode")

Eso es todo.

ngrok

Primero ingresamos en el sitio web ngrok.com, y cliqueamos en “SIGN UP” para dar de alta una cuenta.

Para el alta, podemos utilizar nuestra dirección de correo, o una cuenta ya existente (por ejemplo, en github). Elegimos usuario y contraseña, y una vez habilitados accedemos al panel de control.

En el paso 1, vemos el link de descarga de la aplicación de ngrok para nuestro sistema (Linux, Windows o Mac). Lo descargamos e instalamos. Si estamos usando Ubuntu, se puede hacer todo en un solo paso, tipeando en una terminal de sistema snap install ngrok.

En el paso 3, vemos nuestro “token de autorización”, un código que debemos registrar en nuestro sistema una sola vez.

Se puede copiar y pegar el comando listo para usar. En mi caso, no fue necesario comenzar con ./. Fue suficiente:

ngrok authtoken XXXXXXXXXXXXXXX

donde “XXXXXXXXXXX” es el código de autorización copiado del panel de control.

Listo! Ya debería estar preparado para usar.

Compartiendo el código en vivo con livecode

La cosa es así: abrimos RStudio, y abrimos o creamos el archivo que vamos a compartir (que puede ser un simple script o un documento RMarkdown, da igual). Si es nuevo lo guardamos en disco, (“save”) y listos para compartir. Sólo es cuestión de correr una línea:

s <- livecode::serve_file()

AL hacerlo, veremos abrirse una ventana de navegador con nuestro código, que se actualizará automáticamente ¡mientras escribimos!.

Por ejemplo, si nuestra sesión de RStudio luce así…

en la página web se verá ésto:

El sitio con el código en vivo se comparte en la red local de nuestra computadora. O sea, las personas en la misma red -por ejemplo, en la misma aula y conectadas a la misma red WiFi- ya pueden acceder, abriendo la dirección que se ve en el navegador. En mi ejemplo es 192.168.1.3:14806, pero variará según el caso. Lo importante es que con esa dirección ya podemos compartir nuestro código… a las personas en la misma habitación. Eso es muy útil en situaciones típicas de clase, pero ¿Qué pasa cuando cada persona esta en su casa, accediendo de forma remota?

Ahí es donde ngrok entra en acción.

Publicando a internet con ngrok

Tomamos nota de la dirección en la que aparece publicado nuestro código, resaltada en rojo en la captura de pantalla anterior. En nuestro caso es 192.168.1.3:14806, y eso es lo que pedimos a ngrok que publique online. Sólo necesitamos ejecutar, en la línea de comandos de nuestro sistema:

ngrok http http://x.x.x.x:yyyy donde “x.x.x.x:yyyy” es la dirección que mencionamos.

Al ejecutar esa línea, deberíamos ver una pantalla como la siguiente, que indica que ngrok ha tomado la página web generada por livecode y la ha publicado en internet:

Último paso: tomar nota de la dirección que termina en “ngrok.io”, resaltada en rojo en el ejemplo. En cada ocasión se genera una distinta al azar, a no ser que tengamos una cuenta paga de ngrok, que permite publicar con direcciones permanentes. Por el momento eso no nos preocupa. Sólo compartimos la dirección… y voilà! Desde cualquier parte del mundo, cualquier persona con una conexión a internet puede vernos programando en acción.

Combinando el código con cualquier plataforma de conferencia, que nos permita hablar a la audiencia, tenemos un sistema bastante completo de enseñanza de programación a distancia. ¡Suerte, y a seguir enseñando!

comments powered by Disqus