Lo que he aprendido: AUCTeX

Me he hartado de usar más de un programa y he decidido que las pocas veces que escriba en LaTeX a pelo lo haré también en Emacs. Así soy, cada día más simple. Para ello estoy usando AUCTeX, un modo hiperpotente que tiene una manual de solo 130 páginas y que se autodefine como un sofisticado entorno TeX para Emacs.

Lo curioso del tema es que instalé AUCTeX hace más de un año porque fue la única manera de hacer funcionar CDLaTeX, el modo menor que ayuda a crear entornos y movidas matemáticas y que uso con Org. En todo este año no he configurado AUCTeX y he seguido usando Texmaker y Kile por pura inercia. Ahora que lo he puesto a mi gusto y que llevo usándolo una semana, he desinstalado el resto de editores de LaTeX y no creo que vuelva atrás, ¡me encanta!

Unas órdenes básicas

Como siempre, para usar AUCTeX hay que instalarlo y activarlo, a mí se me activa solo al abrir un archivo con extensión .tex, pero si no fuera el caso, M-x LaTeX-mode y adelante. Cuidado con confundirlo con latex-mode, el modo para LaTeX que viene con Emacs. Sí, lo hacemos aposta para liar.

Usar AUCTeX es bastante sencillo, hay un par de atajos de teclado que valen para casi todo y que os listo aquí. La palabreja que pongo en cursiva es con lo que yo relaciono la combinación de teclas para acordarme (que puede o no ser la  idea del autor original).

  • C-c C-c (compile) ejecuta una orden, dando a TAB podemos ver las opciones, hay opciones molonas como Clean all y Clean que eliminan respectivamente todo lo creado por la compilación y solo los archivos auxiliares.
  • C-c C-v (view) muestra el resultado.
  • C-c C-e (environment) introduce un entorno y te va pidiendo los datos que necesite.
  • Si tenemos el activado el parser automático, con C-c C-a (all) deduce qué tiene que usar y compila las veces que haga falta. No viene activado por defecto porque tarda un poco. Esta historieta nos fabrica una carpeta `auto` con cosas dentro, no os asustéis como hice yo. En el archivo de configuración que he puesto más abajo podéis ver cómo se activa.

Como hereje del Emacs que soy os voy a decir algo: no hace falta aprenderse todo esto. Utilizad la GUI y los menús desplegables sin pudor alguno (yo lo hago, un botón tiene un leoncito muy cuqui).

Sigue leyendo

En qué ando: enero

¡Ya se ha pasado el primer mes del 2019! Siendo fiel a mis propósitos, escribí menos y le dediqué más tiempo a los artículos, por lo que publiqué solo un par de ellos-

Por una parte, me puse densa hablando de elementos finitos y problemas que suelen tener. Trataré de escribir sobre este tipo de cosas para que cuando me larguen del curro pueda engañar a otra institución para que me pague por mis conocimientos.

También jugué con Inkscape y averigüé cómo pasar de SVG a TikZ. Aproveché esta entrada del blog para establecer un nuevo principio en el blog: como quiero quitarme de las pocas tecnologías privativas que uso, reduciré la referencia a ellas. De esta manera, solo allano el camino hacia la libertad.

Sigo cuando buenamente puedo aprendiendo Julia, (¡espero que se vea reflejado por aquí pronto!) practicando con la mandolina y fabricando ropajes desde cero. Ahora además tengo una compostera urbana y además de reducir mis residuos voy a conseguir que mis plantas crezcan hermosas ¡ja!

Y por último dos noticias. La primera es que el podcast al que me invitó Ángel de uGeek ha aparecido en las Emacs news de Sacha Chuan. ¡Fama internacional conseguida! La segunda es que por fin (¡por fin!) he conocido a la gente de Ingeniería sin Fronteras Euskadi. Estuve en un taller impartido por Sorkin sobre género y ciencia dentro de la Escuela de activistas, un tema que me toca de cerca y del que cada vez se habla más. Tuve, además, que volver a mi antigua facultad, lo que fue una experiencia curiosa.

Sigue leyendo

Lo que he aprendido: de SVG a TikZ con Inkscape

Amo Inskape. A pesar de estar en la versión 0.92, funciona maravillosamente, tiene montones de funcionalidades y, por si fuera poco, al más puro estilo software libre, se pueden escribir extensiones que hagan lo que nos apetezca.

Como yo no soy tan hábil como para escribir mis propias extensiones, me aprovecho de la sabiduría de la comunidad para hacer cosas como la que os venía a contar hoy: exportar un svg a TikZ.

Un poco de contexto

Inkscape carrula con imágenes en formato SVG (Scalable Vector Graphics), un formato de gráficos vectoriales definidos en un XML. Que son texto plano, vamos, y podemos abrir una imagen SVG con un editor de texto y ver su definición. La ventaja de usar gráficos vectoriales es que no perdemos calidad al ampliar las imágenes porque los elementos se definen en función de su posición en el dibujo, si el dibujo es más grande las posiciones cambian y los elementos se dibujan de acuerdo a ellas.

TikZ, por su parte, es un paquete de TeX para crear gráficos vectoriales programáticamente1 (qué palabra más maravillosa). De esta manera, los gráficos nos quedan perfectamente integrados en nuestro documento y podemos cambiar el tipo de fuente, tamaño o lo que sea de ambas cosas simultáneamente.

Bien, la cuestión aquí es que usar TikZ es tremendamente difícil y usar Inkscape tremendamente sencillo y ¡LaTeX no tiene soporte para SVG! En general, suelo exportar las imágenes de Inkscape como EPS, manteniendo el texto como LaTeX, pero hay veces que me resulta más práctico tener la definición de la imagen en el propio archivo con el texto.

La extensión svg2tikz

Para esos casos en los que por lo que sea queremos que nuestra imagen esté definida en TikZ, tenemos la extensión de Inkscape svg2tikz. Son tres archivos, dos de extensión de Inkscape y uno de Python que están en la carpeta extensions del repositorio y que tenemos que copiar en la carpeta de extensiones de Inkscape, tal y como indican en las instrucciones. Será o bien /usr/share/inkscape/extensions o ~/.config/inkscape/extensions/2.

Cuidado aquí que yo guardé los archivos directamente del GitHub con Guardar destino como… y luego no me reconocía la extensión. Descargando todo el repo y copiando los archivos correspondientes en cambio sí que me funcionó.

Ahora en el menú Extensiones > Exportar tendremos una nueva opción Export to TikZ path que nos permitirá guardar la imagen como TikZ. Vigilad la ruta porque por defecto no la guarda en la carpeta donde estaba la imagen original sino en la carpeta de las extensiones.

Y ale, ya podemos chulear diciendo que nosotros hacemos todo directamente en LaTeX como hacían los profesores de mecánica de mi universidad que calculaban la base y la ruleta con la fórmula y luego decían que se veían directamente en el dibujo.

Referencias

Chapter 22. Extensions en el manual de Inkscape

svg2tikz

Galería de extensiones de Inkscape

inkscapeMadeEasy


Suena:


  1. Lo usé de tapadillo para pintar estructuras y que me quedaran cuquis lo apuntes, no sé si recordáis. 
  2. Como uno de mis propósitos del 2019 es ir abandonando las tecnologías privativas, voy a intentar hablar lo menos posible de Windows. 

Lo que he aprendido: hourglassing

No sé si os lo he contado alguna vez, pero mi investigación actual implica escribir código de elementos finitos. No, no son elementos muy delgaditos, sino finitos en contraposición a infinitos, es decir que su tamaño es limitado.

Otro día si eso me detengo un poco más en la explicación de los cacharros, que son movidas locas matemáticas, hoy lo que quería es hablar de un problema que se da a menudo en los cálculos de elementos finitos: el hourglassing. Es importante saber a qué se debe y cómo solucionarlo si queremos que nuestra simulación se parezca a la realidad.

Hourglassing: modos sin energía

El hourglassing (relojdearenización) consiste en que aparezcan modos de energía cero al utilizar integración reducida en un elemento. O, dicho en otras palabras, que el elemento sea más blando de la cuenta y se deforme sin que nadie lo toque. De esta manera, cuando calculemos los modos de nuestra estructura, nos aparecerán un montón de modos con un frecuencia cercana a cero. Dependiendo del orden del elemento, habrá más o menos modos de este tipo porque podrá deformarse de diferentes maneras.

Hay que tener cuidado aquí y no pensar que siempre que tenemos muchos modos de frecuencia cero hay hourglassing, ya que puede ser que hayamos metido la pata definiendo las condiciones de contorno, tengamos alguna pieza suelta y sean modos de sólido rígido perfectamente correctos.

Integrando en el elemento

Cuando digo integración reducida, me refiero a usar menos puntos de integración de Gauss de los que nos darían el resultado exacto. Por ejemplo, para un hexaedro lineal, necesitamos dos puntos de integración en cada dirección para obtener una matriz de rigidez exacta, a esto lo llamamos integración completa. Si decidimos usar solo un punto de integración en cada dirección, nuestro cálculo será menos exacto pero más rápido y corremos el riesgo de tener hourglassing. Ocurre lo mismo en el caso cuadrático, con tres puntos en cada dirección tendríamos integración completa y con dos integración reducida.

Podría pensarse que si la integración reducida da esos problemas es absurdo usarla, pero no es así, ya que nos evita un problema que padecen los elementos lineales: el shear locking. Esta otra palabra raruna hace referencia a la aparición de una fuerza cortante de mentira al intentar deformar a flexión un cuadrado o cubo lineal. Como es lineal, sus aristas no pueden curvarse, se comporta como un elemento mucho más rígido y nos da resultados absurdos. Aquí el bailoteo que permite la integración reducida juega a nuestro favor.

Visualizando el hourglassing

Aprovechando mi propio programita, os voy a enseñar la pinta que tienen los resultados de una simulación cuando ha habido hourglassing. En este ejemplo concreto es fácil de ver, ya que la superficie queda como arrugada. También se entiende mejor de dónde viene el nombre.

hourglass

Eso sí, cuidado, ya que no siempre es tan evidente. Lo infalible es calcular los modos: aparecerán los modos reales de la estructura y los espurios de energía cero que no tienen contrapartida física.

Conclusiones

Visto lo visto, os dejo con unos consejos para cuando simuléis, igualmente válidos para los que estéis escribiendo código desde cero y los que uséis software comercial:

  • Si salen modos con valores raros, después de verificar que las condiciones de contorno están bien, yo miraría qué tipo de integración estamos usando.

  • Si cambiando a integración completa los valores siguen sin tener sentido, yo comprobaría el orden del elemento. Si estamos usando elementos lineales con integración completa en un caso de flexión, son demasiado rígidos y van a dar valores de frecuencias naturales muy por encima de los correctos o deformaciones mucho más pequeñas (¡shear locking!). Una opción es pasarse a elementos cuadráticos, aumentando considerablemente el tiempo de cálculo, o considerar los elementos de modos incompatibles, que evitan el shear locking añadiendo restricciones adicionales.

  • Siempre verificaría que los problemas no se deben al tamaño de la malla, no cuesta (casi) nada reducir el mallado y nos quita muchos quebraderos de cabeza. Los elementos chiquiticos son más rígidos y menos propensos al hourglassing.

  • Si todo lo anterior falla, si estuviera en un programa comercial hurgaría en los controles del hourglass o metería amortiguamiento (si estoy en un caso que aplique). Solo como último recurso, todas las mierdas artificiales que le metamos a nuestra simulación tienen tendencia a explotarnos en la cara.

Espero que os resulte útil y poder algún día compartir el código para que juguéis.

Referencias

Why worry about hourglassing in explicit dynamics. Part 1

Why worry about hourglassing in explicit dynamics. Part 2

FEM: Rank deficiency and hourglassing

What is shear locking in FEA?

Mis propósitos para el 2019

El 2019 será un año de vuelta a la simplicidad: un año de consumir menos y conectar más. Como he dicho en otras ocasiones, creo que en un mundo tan rápido y superficial como este es lo más punk que podemos hacer. Por esto mismo, mis propósitos para el 2019 son una vuelta a las raíces:

  1. Publicar artículos de mayor calidad, aunque eso signifique publicar menos a menudo.
  2. Ir abandonando las herramientas privativas que todavía uso, por ejempo, migrando de Matlab a Julia poco a poco.
  3. Ser más consciente al consumir, reduciendo mi huella ecológica y apoyando proyectos que provoquen un cambio positivo en el mundo.
  4. Seguir viajando y participando en charlas y eventos.
  5. Reír, pintar, bailar.

¡Empezad bien el año!


Vi la imagen en el Fediverso sin ningún tipo de indicación de la fuente o la licencia, si alguien sabe a quién pertenece por fabor que me lo diga.

Compilación: los artículos del 2018

Como ya sabéis, a mí me corre el punk por las venas, paso de lo más leído y voy a resumir aquí lo acontecido en el blog en este 2018.

Empecemos por el tema académico, escribí dos artículos de los que me siento especialmente orgullosa, uno sobre unas reglas para que los que no sepamos programar creemos un mejor software científico y otro en el que puse a caldo el funcionamiento actual de la investigación y compartí algunas herramientas libres para demostrar que sí, que existen alternativas.

Este año LaTeX ha estado muy presente en el blog, ya que fabrico mi material de clase con Org y unos toques de LaTeX. He jugado un poquillo con TikZ creando estructuras molonas y gráficos de fuerzas para los apuntes; he aprendido a pintar ejemplos de código chulos; he descubierto que se pueden exportar las imágenes desde Inkscape con el texto en LaTeX y en mi afición a enamorar a todo el mundo del LaTeX, escribí una miniguía para configurar Texmaker

Por supuesto, Emacs sigue siendo mi editor principal y una de las primeras cosas que hice fue comentar mi entorno de trabajo. Además, descubrí el modo CDLaTeX que me hace escribir ecuaciones superrápido y magit que hace el control de versiones cosa de críos. También aprendí a cambiar la fuente y a que se pudiese usar el ratón en el modo org (¡blasfemia!). Hasta me puse a pintar diagramas de Gantt en Emacs! Así al menos no son tan detestables.

Una novedad de este año ha sido la aparición de Julia, harta de Matlab y sus licencias, me planteé migrar y hasta escribí sobre dos casos de uso: leer matrices MMF e integrar numéricamente con Gauss

Otro de los artículos que me ha creado inmensa satisfacción fue el que trata del movimiento Fuck off Google donde hablaba de un barrio de Berlín que se oponía a que Google abriese un campus allí. Los locos han vencido y Google ha cedido el edificio a un par de ONGs. No está todo el curro finiquitado pero esto demuestra que un barrio unido tiene mucho que decir ante un gigante.

Hablando de barrios que tienen mucho que decir, estuve con las Zorras Binarias en Errekaleor, el barrio okupado de Gasteiz, hablando de soberanía tecnológica y escribí sobre la experiencia. Por si a alguien le quedaba alguna duda de que yo fuera feminista.

Para acabar, hablemos de panes. Rendí homenaje a mis antepasados galegos con una empanada de masa madre, me dio por teñir todo de rosa e hice un pan y un brownie de remolacha (este último se lo di a probar a mis alumnos) y me negué a desperdiciar comida e hice pan con el bagazo de la fabricación de birra casera.

Hasta aquí el resumen del blog en este 2018, os dejo con una canción que representa el espíritu de esta casa muy bien. Amo el acento cockney.

El 2018

Se acaba otro año y, como siempre, voy a echar la vista atrás y mirar el camino recorrido. El 2018 ha sido un año intenso, marcado por mi vuelta a mi hábitat natural: el mundo académico. He investigado y me he estrenado como profesora, he encontrado un lugar en el que estoy a gusto y en el que la Ondiz actual encaja.

Por lo demás ha sido el año del Fediverso, he conocido a muchísimos de sus habitantes, tanto en digital como en carne y hueso. Todas ellas son personas maravillosas, os animo a que vengáis a las redes libres, redes que tienen como objetivo ayudar a conectar, no exprimir a sus usuarias.

En fin, recordemos cuáles eran mis propósitos para el año:

  1. Publicar el libro de LaTeX, ya sea en versión digital, física o ambas. Seguir desarrollando mis otros proyectos literarios.
  2. Aprender sobre diseño y tipografía, son el nexo entre varias de mis pasiones: la escritura, la pintura y la ingeniería.
  3. Aprender un poco de Lisp para entender lo que pongo en el archivo de configuración de Emacs.
  4. Acercarme más a la escena artística de mi ciudad, concretamente a la underground no a la del postureo.
  5. Ir a eventos y lugares interesantes de otras ciudades, empezando por Madrid y la Ingobernable.
  6. Invertir en algún proyecto alineado con mis ideas, ya sea con tiempo o con dinero.
  7. Elegir un instrumento musical y empezar por fin a aprender algo de música.

Veamos, pues, si mi vida ha estado alineada con mis intenciones. Lo primero es que no publiqué el curso de LaTeX pero he dado un curso en la universidad (que resultó ser lamentable, pero eso es otra historia) y he publicado las traspas para que cualquiera pueda usarlas. Espero poder publicarlo algún día, pero vistas mis circunstancias actuales no sé cuándo ocurrirá.

En el tema del diseño, me he acercado a él desde el punto de vista de la accesibilidad, pronto os hablaré de ello y de cómo un alumno con un problema con las letras me hizo replantearme cómo preparo mi material y lo que exijo en los exámenes. No sé si él habrá aprendido algo de mecánica, pero yo he aprendido algo de él.

Aunque he usado Emacs intensivamente ya que escribo las presentaciones de clase en org, no me ha hecho falta mucho Lisp últimamente así que me he centrado más en buscarle un sustituto a mi odiado Matlab del que dependo mucho más de lo que me gustaría. Creo que lo he encontrado en Julia, un novedosisímo lenguaje de programación que nos lo pone fácil a los que no sabemos programar.

¡En lo que he estado a tope ha sido en lo de visitar ciudades! Por fin estuve en la Ingobernable donde conocí a medio Fediverso, pero también visité Bristol, Granada e Italia. Incluso me acerqué a otras dos capitales vascas. Parte de estos viajes se debieron a eventos como nuestra charla de Zorras Binarias en Errekaleor, estas mujeres han sido el descubrimiento del año, mi curro está repleto de hombres y estar entre mujeres de vez en cuando se agradece, ¡espero que nos sigamos viendo a menudo, hermanas!

Siguiendo con el tema proyectos, este año también he sido mentora de Inspira y he conocido unas realidades muy duras, realidades que niñas de once años no deberían estar viviendo. Pero saldrán adelante y conseguirán ser lo que quieran, seguro. Aparte de con tiempo también he apoyado proyectos con panoja: he participado en el Goteo de Carro de combate. Espero apoyar el periodismo de calidad de alguna manera más en 2019. Algún asunto habrá en mi ciudad que pueda hacer, a ver si ahora que estoy un poco más al loro encuentro algo que me encaje.

En lo que respecta a mi propósito musical, ¡también lo he cumplido! Ahora tengo una mandolina y practico cuando puedo. Toco el cumpleaños feliz, el old McDonals y un par de canciones irlandesas. El objetivo para el 2019 es no ser tan rígida, que toco como si fuera Robocop.

Además de todo esto me he pasado por Colaboratorio una vez más para hablar del método científico, he visto por primera vez un membrillo (¡gracias, Javier!) y lo he convertido en dulce y he quitado los anuncios del blog.

Estoy muy satisfecha con mi año, tal vez no he hecho todo lo que pretendía pero se me han abierto nuevos caminos inesperados. ¿Qué sería de la vida si siempre hiciésemos lo planeado?

¡Por un 2019 tan bueno como el 2018!