[bofhers] Re: Ejemplo de bash script y Beamer

  • From: José Carlos Cuevas <reset.reboot@xxxxxxxxx>
  • To: bofhers@xxxxxxxxxxxxx
  • Date: Mon, 18 Mar 2013 13:21:58 +0100

A mi sólo me queda preguntar si las jocosas conclusiones también las genera
el script y cómo se configura eso. XD

Fuera coñas ya, estas son las típicas cosas que molan mirárselas, que la
automatización que podemos conseguir en entornos *NIX es MUY potente.

Gracias!


El 18 de marzo de 2013 12:43, Jordi Burguet Castell <
jordi.burguet.castell@xxxxxxxxx> escribió:

> 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++
> >
>

Other related posts: