[bofhers] Re: Ejemplo de bash script y Beamer

  • From: Jordi Burguet Castell <jordi.burguet.castell@xxxxxxxxx>
  • To: bofhers@xxxxxxxxxxxxx
  • Date: Mon, 18 Mar 2013 12:43:16 +0100

Buenas!

De poner a parir nada, qué forma más chula de sacar presentaciones
resultonas y semiautomáticas!

Como he visto aparecer a gnuplot, al que he sufrido muchos años, no me
he podido resistir a hacer una alternativa con matplotlib, de quien
estoy enamorado...

Requisitos:
  apt-get install latex-beamer python-matplotlib

De paso hay cambios mínimos, como usar tildes y ñ directamente, que
hace tiempo que se puede. Y he metido todo en presentacion.tex para no
ir con here-documents o similares. Así se edita con sintax
highlighting más mona, hay menos ficheros intermedios y nimiedades así
(que van según gustos!). Pero sobre todo, matplotlib hace plots muy
monos en dos patadas, mucho más configurables y con una calidad que ya
le gustaría al gnuplot.

Ahí va compartida mi versionilla, con lo que he podido aprender de
Mia++ más los bugs que yo haya metido.

J.



2013/3/18 Mia++ <mhiper3+list.bofhers@xxxxxxxxx>:
> Greetings, Earthlings!!
>
> TL;DR: Adjunto va un script ejemplo de llamadas a gnuplot y uso de Beamer
>
> Hace unos días hablando por twitter de los maravillosos poderes de awk y
> grep se me ocurrió mencionar (nunca aprenderé) que yo tengo scripts que me
> generan presentaciones automáticamente. En aproximadamente 2.1 segundos
> alguien me tomó la palabra y exigió pruebas.
>
> Así que, con retraso para buscar un ejemplo sencillito, aquí va un ejemplo.
> En el tgz adjunto están  los ficheros "de usuario" necesarios para el
> ejemplo:
>   - Un access_log de apache "limpio" de IPs y contenido real (sólo vamos a
> user el código HTTP y el tamaño de la respuesta).
>   - Dos ficheros de latex que usaremos de cabecera y como contenido de la
> presentación generado fuera del script.
>   - Un fichero logo.png que usaremos como logo corporativo (obtenido de
> http://meta.serverfault.com/questions/3368/bofh-gravatar-week-lets-keep-going).
>   - Un script the bash que nos generará la presentación.
>
> El script está hecho y probado en CentOS 6.3. Aunque no lo he probado en
> otras distros, los scripts "reales" que uso funcionan en Fedoras, Debians,
> Archs y cygwins con ajustes mínimos.
>
> DISCLAIMER: Esto es un ejemplo. Hay muchas cosas hechas de forma ineficiente
> y sucia, y probablemente un mono borracho lo haría mejor. El problema es que
> el último mono borracho que tuve me dejó por otro.
>
> VERSIÓN CORTA (para impacientes)
> ===========================
>   - Necesitaréis latex, Beamer y pdflatex
>   - Ejecutando el script
>     - Se crearán gráficas a partir del log de apache usando gnuplot.
>     - Se generarán dos ficheros "dinámicos" de latex para incluir esas
> gráficas en la presentación
>     - Se creará la presentación final en PDF con el nombre main.pdf
>
> VERSIÓN LARGA:
> ==============
>   - Necesitaréis latex, Beamer y pdflatex
>   - Ejecutando el script
>     - Se crearán gráficas a partir del log de apache usando gnuplot.
>     - Se generarán dos ficheros "dinámicos" de latex para incluir esas
> gráficas en la presentación
>     - Se creará la presentación final en PDF con el nombre main.pdf
>
> No, en serio. El script no es complicado. Lo que hace es:
>   - Parsear el log de apache para generar los ficheros de datos para
> gnuplot.
>   - Generar el fichero con los comandos de gnuplot de forma dinámica. Para
> cosas rutinarias es más fácil crear el fichero a mano y simplemente
> invocarlo. Si se van a tener rangos de ejes, etiquetas, títulos,etc...
> dinámicos, aquí va un ejemplo de cómo hacerlo.
>   - Genera un fichero de latex para cada imagen generada.
>   - Genera un fichero de latex que invoca a los ficheros .tex estáticos que
> van en el adjunto y los dinámicos que hemos generado.
>   - Invoca a "pdflatex" para generar la presentación.
>
>
> PREGUNTAS MÁS FRECUENTES
> =========================
>   "He visto que al final de script....."
>       No, no es un error. Hay que llamar a pdflatex dos veces. Si usas latex
> ya sabes por qué. Si no, te da igual.
>
>   "Esto es una mierda y no funciona en la realidad"
>       A lo primero no lo puedo poner remedio. En cuanto a lo de usarlo en la
> realidad, totalmente de acuerdo. Para hacer un ejemplo autocontenido ha
> habido que haber varias pirulas (como lo de generar los ficheros de gnuplot
> dinámicamente (éso sólo lo uso cuando no sé cuántas imágenes voy a generar;
> por ejemplo, cuando volcamos logs de aplicaciones a un servidor para generar
> las gráficas y no sé de antemano cuántas hay).
>       La otra cosa que cambia mucho del ejemplo a la realidad es cómo
> generar el contenido "texto" de la presentación. El objetivo del script no
> es evitarme poner el texto, sino el generar los ficheros de datos (csv o lo
> que sean), pasarlos a un windows, generar las gráficas, pegarlas en
> powerpoint, pegarme 2 horas con powerpoint porque las está colocando como le
> da la gana y luego volver a pasar el ppt al servidor web y mandar el correo
> a todo el mundo.
>       Con eso claro, antes de lanzar el script edito a mano un fichero .tex
> con el contenido de texto de cada sección y los pongo en un directorio.
> También creo en otro directorio un fichero de texto por cada imagen con el
> texto que irá en la diapositiva de la imagen correspondiente. El script lo
> que realmente hace es generar un main.tex que carga la cabecera (siempre la
> misma), carga todos los .tex que ya he creado, y pone las diapositivas con
> las imágenes (y el texto correspondiente) en la sección que les toca.
> Jugando con la nomenclatura de los ficheros (pista: el nombre del fichero es
> la sección en la que va) es muy fácil.
>       De esta forma una vez creo los .tex con el texto, sólo con ejecutar el
> script me genera el PDF, lo sube al servidor y manda el correo de aviso a
> todo el mundo.
>
>   "Esta presentación es una basura. No tiene efectos, ni animaciones ni
> sonidos..."
>       Lo siento, Mario, pero tu princesa está en otro Sistema Operativo.
>
>
>   "Podías haber hecho todo el primer comando en el mismo awk" / "Con Latex
> es mejor usar eps, no png" / "Tienes faltas de ortografía" / "Se escribe
> LaTeX"
>       Sí, ¿y?
>
>   "Me da un error al ejecutar el script, con el comando XXX"
>       Es posible. Si dices qué error, se mirará a ver qué se puede hacer.
>
>   "Me da un error al ejecutar pdflatex"
>       La vida es dura. Y con Latex, aún más. Prueba  usando "latex" en vez
> de pdflatex y mira a ver si el dvi resultante se ve bien. Si no, que $DEITY
> tenga piedad de ti.
>
> Hala, ya podéis ponerme a parir.
>
>
> MIA++
>

Attachment: script_beamer_alt.tar
Description: Unix tar archive

Other related posts: