¿Cómo grabo la terminal ANSI en Ubuntu? Juan Perón explica la necesidad del proselitismo y enseña cómo utilizar el grabador de terminal y plataforma de difusión ASCIInema en Ubuntu. ¡Trabajadores! Nuestro Movimiento no puede quedarse inexpresivo, y eso lo entendemos todos. Desde aquel diáfano 17 de octubre, supimos que todo movimiento popular ha de contar no solo con banderas, divisas y sanas consignas, sino liturgia y la parafarnalia que puede proveer un bombo y una manguera. El sentido no es simplemente hacer bochinche, sino propalar en todo el alcance territorial que ocupan nuestros cuerpos, el sentir de nuestras ideas. En un sistema informático también ha de hacerse lo mismo. Muchas veces me han preguntado cómo podremos hacer ello utilizando la terminal, cuando esta puede parecer - a primera vista - un elemento poco expresivo y para nada gráfico. Indudablemente que quien así piense no está más que confundido por un mensaje tan contumaz como el Libro Azul de ese tondo de Braden. A ese opusimos el Libro Celeste y Blanco de Perón, y en los sistemas GNU con Linux bien podremos emplear un grabador de terminal, como ASCIInema. Este nos permite contar con un grabador que capture lo que reproduce nuestra terminal, a la vez que nos provee una plataforma en internet capaz de reproducirla y compartirla, localizada en https://asciinema.org. Bien podremos darnos de alta allí únicamente requiriendo un correo electrónico, lo que avala gran pseudoanonimato. Contaremos con varias maneras de instalar el grabador ASCIInema en nuestro sistema. La manera más simple consiste en instalarlo a través del repositorio de Ubuntu. Para ello abrimos una terminal con Ctrl+Alt+t e ingresamos el siguiente comando de organización: sudo apt install asciinema Opcionalmente, podríamos querer instalarlo a través del repositorio de terceros (PPA) de ASCIInema. Este cuenta con la última versión empaquetada, y podríamos realizarlo con: sudo apt-add-repository ppa:zanchey/asciinema sudo apt-get update sudo apt-get install asciinema Finalmente, si somos programadores bien podríamos querer instarlo ejecutando su código fuente escrito en Python 3. cd ~ git clone https://github.com/asciinema/asciinema.git mv ~/asciinema/ ~/.asciinema/ cd ~/.asciinema/ python3 -m asciinema --version Pues bien señores, como todo programa Unix que se precie, ASCIInema consta de de múltiples opciones par sus comandos. Si en la terminal ingresamos asciinema a secas, recibiremos las opciones posibles para el mismo. Las opciones del comando son: Para grabar el contenido de la terminal y subirlo automáticamente a la plataforma asciinema.org: asciinema rec La grabación comenzará inmediatamente. Una vez concluida la sesión del intérprete de comandos, podremos detener la grabación de la salida de terminal medioante Ctrl+d. Si deseamos grabar la salida de la terminal en un fichero local podremos usar: asciinema rec archivo.cast También podríamos guardar la salida de terminal y una vez concluida su grabación, subirla a asciinema.org, especificándole un título. Esto se hará con: asciinema rec -t "Sesión de terminal Peronista" Si iniciamos una subida de una captura de terminal a la plataforma y no hemos registrado el dispositivo, se nos proveerá un URL que podremos introducir en un navegador. Esto nos permitirá o bien asociar la grabación a un usuario previamente existente (si lo tuviésemos), o bien a un correo electrónico que deseemos asignar al usuario de asciinema e iniciar el proceso de registro. En caso de ser la primerqa vez haremos esto, pues consiste en aceptar el enlace que nos llegue por correo electrónico, lo cual adosará un token a nuestro usuario y subirá la captura de terminal asociándolo al mismo. Podríamos asociar o revocar tokens (útil en caso de tener varios dispositivos). Una opción muy interesante que tiene ASCIInema es la de limitar el tiempo inactivo de la terminal, evitándolo si supera un período determinado. Por ejemplo, para limitar el tiempo máximo inactivo a 1,5 segundos, podríamos utilizar asciinema rec -i 1.5 archivo.cast Reproducción de la captura de terminal Indidablemente contaremos con las opciones de reproducción de lo capturado por asciinema. Por ejemplo, podríamos reproducir el fichero archivo.cast con: asciinema play archivo.cast En tanto, si quisiéramos reproducir un fichero almacenado en la plataforma asciinema.org, podríamos ingresar: asciinema play https://asciinema.org/a/difqlgx86ym6emrmd8u62yqu8 También es posible presentar concatenado en pantalla todo el archivo.cast, podríamos hacerlo con: asciinema cat archivo.cast Siempre podrá detener la reproducción con Ctrl+z. Compartir un enlace Podremos obtener un enlace para compartir para la tarnsmisión ASCII específica haciendo clic en el enlace "Share" en la página de la transmisión ASCII.. Cualquiera de las opciones listadas en la sección “Personalizando la reproducción” puede agregarse a la URL de la transmsión ASCII como los parámetros de la misma. Por ejemplo: https://asciinema.org/a/14?t=25&speed=2&theme=solarized-dark De esta manera, al visitar este enlace se comenzará la reproducción a los 25 segundos y se reproducirá al doble de velocidad, utilizando el tema de terminal Solarized Dark. Pegar enlace de imagen En los lugares donde no se permiten los guiones, podremos pegar en enlace como si se tratara de un enlace de imágen. Por ejemplo, en un fichero README. Podremos incluso incrustar fracciones de un asciicast específico presionando el botón "Share" en la página de ASCIIcast. Esto es como aparecerán para asciicast 14: HTML: <a href="https://asciinema.org/a/14"><img src="https://asciinema.org/a/14.png" width="836"/></a> Markdown: [![asciicast](https://asciinema.org/a/14.png)](https://asciinema.org/a/14) A su vez, podremos pasar opciones extra (listadas en la sección "personalizar el reproductor") a la URL enlazada como parámetros agregados. Por ejemplo, para iniciar la reproducción automáticamente al abrir el enlace de asciicast, hemos de agregando la cadena ?autoplay=1 a la URL dentro del atributo href indicado, de esta forma: <a href="https://asciinema.org/a/14?autoplay=1"><img src="https://asciinema.org/a/14.png" width="836"/></a> Incrustar el Enlace de Reproductor Si deseamos incrustar el widget del reproductor en nuestra propia página o en un sitio que permite el etiquetado de guiones, podremos hacer clic en el enlace "Embbed" de la página del asciicast. Se nos presentará un código con una apariencia similar a la siguiente: <script src="https://asciinema.org/a/14.js" id="asciicast-14" async></script> Como vemos, el widget del reproductor Java (.js) aparecerá justo en el lugar donde se pegó el guión. Por ejemplo, consideremos el siguiente código markup: <p>Este es un texto.</p> <script src="https://asciinema.org/a/14.js" id="asciicast-14" async></script> <p>Este es otro texto.</p> En este caso, el reproductor aparecerá entre los dos párrafos de texto, tal como un elemento div con clase “asciicast”. El guión adosado podrá recibir varias personalizaciones. Cualquiera de estas personalizaciones se puede agregar simplemente incorporándolas como atributo data-option-name=”valor” a la etiqueta del guion. Un ejemplo suele aclararlo como decía Napoleón. Por ejemplo, para hacer que un reproductor comience automáticamente su reproducción al cargarse, y a la vez utilizar una fuente de gran tamaño, hemos de usar un guión similar al siguiente: <script src="https://asciinema.org/a/14.js" id="asciicast-14" async data-autoplay="true" data-size="big"></script> Personalizar el reproductor El reproductor soporta varias opciones que controlar su comportamiento y apariencia. Estas pueden agregarse a la URL (?speed=2&theme=tango) o configurados como atributos de datos en el guión adosado (data-speed="2" data-theme="tango"). t La opción ?t nos permite especificar el tiempo en el cual dará inicio la reproducción. Indudablemente, por defecto será t=0 (o sea, se arrancará desde el comienzo). Formatos aceptados: ss, mm:ss, hh:mm:ss. Han de saber que cuando se especifica t, se asume un autoplay=1. Para impedir que el reproductor arranque automáticamente al configurar un valor t es que debe establecerse explícitamente un autoplay=0. Autoreproducir La opción ?autoplay en tanto controla si el reproductor debe arrancar automáticamente cuando se carga el widget. Los valores aceptados son: 0 / false - No inicia la autorreproducción (por defecto) 1 / true - Inicia la autorreproducción automáticamente. Precargar La opción ?preload controla si el reproductor debe comenzar a realizar la captura y grabación inmediatamente. 0 / false - No precarga la grabación, y espera que el usuario haga algo para iniciarla. 1 / true -Precarga la grabación. Por defecto se usa 1 para las URLs de asciinema.org y 0 en los guiones incrustados. Bucle La opción ?loop permite hacer un bucle de reproducción para repetirla constantemente. Esta opción normalmente se combina con la opción autoplay para lograr el efecto incesante e imposible de evitar de la propaganda justicialista. Los valores aceptados son: 0 / false - desactiva el bucle de repetición (default) 1 / true - activa el bucle Velocidad La opción ?speed altera la velocidad de reproducción. Por defecto la velocidad es 1, lo que significa que se reproduce en tiempo real. Tamaño La opción size altera el tamaño de la tipografía de la terminal. Existen 3 tamaños disponibles: small (por defecto) medium big Tema La opción ?theme permite desconocer un tema provisto por la terminal. Por defecto, el tema de colores es el provisto por la terminal. Los temas disponibles son: asciinema tango solarized-dark solarized-light monokai cols La opción ?cols permite desconocer el ancho de caracteres de la terminal emulada. Por defecto se usa el ancho de la terminal grabada (por ejemplo, 80 columnas), pero con esto se lo puede cambiar. rows La opción ?rows permite desconocer las filas (en líneas) de altura de la terminal emulada. Por defecto se usa la altura en líneas de la terminal emulada, por ejemplo, 25 columnas.