<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>PabRod</title><link href="https://pabrod.github.io/" rel="alternate"></link><link href="https://pabrod.github.io/feeds/all.atom.xml" rel="self"></link><id>https://pabrod.github.io/</id><updated>2026-04-04T00:00:00+02:00</updated><subtitle>Applied mathematician. Science storyteller</subtitle><entry><title>Cómo reventar una reunión</title><link href="https://pabrod.github.io/reventar-reunion-es.html" rel="alternate"></link><published>2026-04-04T00:00:00+02:00</published><updated>2026-04-04T00:00:00+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2026-04-04:/reventar-reunion-es.html</id><summary type="html">&lt;p&gt;Sobre reuniones eficaces y otros animales míticos.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Hace poco me invitaron a dar una charla sobre cómo planificar y moderar reuniones de trabajo. Sucede que las reuniones que convoco acaban siempre a su hora (o antes), y al parecer esto es algo tan extremadamente inusual que me ha granjeado una buena reputación.&lt;/p&gt;
&lt;p&gt;En parte me pilló por sorpresa. Mis ideas sobre cómo organizar una reunión siempre me han parecido sentido común elemental. El caso es que, mientras preparaba mi charla, empecé a poner mucha atención a las reuniones a las que me invitaban. Algunas dejan mucho que desear &lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt;. Tanto, que me veo capacitado para dar aquí unos anti-consejos, ideas para reventar cualquier reunión.&lt;/p&gt;
&lt;h2&gt;Como organizador&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Convoca las reuniones por el mero hecho de tenerlas. Sin agenda, sin propósito, sin dos dedos de frente.&lt;ul&gt;
&lt;li&gt;Olvida indicar la fecha, la hora, el lugar, o las tres cosas.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Convoca una reunión de treinta minutos para comunicar algo que cabe en dos líneas de correo. Asegúrate de que los primeros diez minutos se dediquen a esperar a los rezagados&lt;/li&gt;
&lt;li&gt;Programa tus reuniones en bloques de media, una u hora y media. Nada de 25, 55 u 80 minutos. A Platón le gusta esto. Nadie necesita desplazarse entre una y otra, ni ir a mear, ni ponerse un café.&lt;/li&gt;
&lt;li&gt;Sé optimista con la estimación de tiempo. La experiencia te dice que jamás has logrado cuadrar la reunión en menos de una hora, pero esta vez, esta vez quizá sí. Convócala para media.&lt;/li&gt;
&lt;li&gt;Si es necesario discutir sobre algún material, no lo compartas con antelación. No renuncies al elemento sorpresa.&lt;ul&gt;
&lt;li&gt;Mejor aún, anuncia que lo compartirás después, que no es necesario que nadie tome notas, pero no lo compartas jamás.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Ignora olímpicamente tus responsabilidades como moderador.&lt;ul&gt;
&lt;li&gt;Si todo es una sesión de brainstorming, ¡no necesitas agenda!&lt;/li&gt;
&lt;li&gt;Recurre a esta frase cuando alguna prima donna se coma todo el tiempo: &lt;em&gt;"sé que esto no estaba en la agenda, y que muchos os habéis quedado sin hablar, pero es que este asunto me ha parecido muy interesante"&lt;/em&gt;. Pon énfasis en el "me"&lt;sup id="fnref:2"&gt;&lt;a class="footnote-ref" href="#fn:2"&gt;2&lt;/a&gt;&lt;/sup&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;La reunión se termina cuando todo el mundo ha hablado y se produce un silencio incómodo, no cuando se han asignado tareas ni tomado decisiones.&lt;ul&gt;
&lt;li&gt;Cuidado, algunas reuniones necesitan dos o tres silencios incómodos antes de acabar. Suelen ser interrumpidos por la &lt;em&gt;prima donna&lt;/em&gt; antes mencionada.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Como asistente&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Llega tarde.&lt;ul&gt;
&lt;li&gt;Puntos extra si llegas tarde porque estabas en otra reunión que ha acabado tarde.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Si no vas a llegar, avisa cinco minutos después de la hora (justo cuando van a empezar sin ti).&lt;ul&gt;
&lt;li&gt;Pide que paren todo y que te conecten por videoconferencia. Di que, aunque estés conduciendo, puedes mirar las diapositivas "por el rabillo del ojo" (basado en hechos reales). Deja claro que la interrupción y todo el despliegue técnico sólo valdrán para que escuches un ruido de fondo o, peor aún, para que acabes en el arcén.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Si tienes que compartir la pantalla, muéstranos tu escritorio en toda su crudeza. Con su caos de carpetas, las notificaciones de tu chat personal entrando, y hasta las pestañas de pornhub claramente visibles (sí, también basado en hechos reales). El mundo moderno necesita más autenticidad.&lt;/li&gt;
&lt;li&gt;Usa la fecha y la hora de la reunión como plazo para enterarte de qué va. Si te han enviado material previo, léelo ahí mismo, sobre el terreno.&lt;ul&gt;
&lt;li&gt;Puntos extra si pides 5 minutos de silencio para hacerlo.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Regresa una y otra vez a cualquier tema que ya haya quedado cerrado.&lt;/li&gt;
&lt;li&gt;Formula tus preguntas en grupos de al menos 3. Mucho mejor si no están relacionadas ni con la agenda ni entre ellas. No dediques menos de 45 segundos a enunciar cada una.&lt;/li&gt;
&lt;li&gt;Si alguien anuncia que es momento de acabar, toma la palabra y pon un nuevo tema sobre la mesa. Tarda cinco minutos en formularlo.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Más&lt;/h2&gt;
&lt;p&gt;Se admiten contribuciones. Si te han gustado estos anti-consejos para reuniones de trabajo, también tengo &lt;a href="https://fuga.naukas.com/2016/10/14/anti-consejos-para-una-presentacion-cientifica/"&gt;anti-consejos para presentaciones científicas&lt;/a&gt;.&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;Mi récord personal: en cierta ocasión tuvimos a un colaborador que reventaba cada reunión en la que aparecía. No dejaba hablar absolutamente a nadie. Hasta el punto de que el jefe del proyecto decidió duplicar todas las reuniones, de modo que la segunda convocatoria le excluyera (!).&amp;#160;&lt;a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;A un compañero mío le hicieron esto con su turno de palabra después de hacerle desplazarse 1000 km para asistir a la reunión en cuestión.&amp;#160;&lt;a class="footnote-backref" href="#fnref:2" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="Blog"></category><category term="opinion"></category></entry><entry><title>Así nace un artículo tedioso</title><link href="https://pabrod.github.io/articulo-tedioso-es.html" rel="alternate"></link><published>2026-03-04T00:00:00+01:00</published><updated>2026-03-04T00:00:00+01:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2026-03-04:/articulo-tedioso-es.html</id><summary type="html">&lt;p&gt;Prosistas científicos haciendo parecer elocuente a chatGPT.&lt;/p&gt;</summary><content type="html">&lt;h2&gt;La concepción&lt;/h2&gt;
&lt;p&gt;Suele suceder en un congreso. Alguien se te acerca, expresa una admiración más o menos sincera por tu blog o el blog de tu institución, y te sugiere hacer &lt;em&gt;crossposting&lt;/em&gt;. Lo menciona con tal extraña reverencia, que por un momento te hace pensar si el  &lt;em&gt;crossposting&lt;/em&gt; no será algún tipo de práctica sexual.&lt;/p&gt;
&lt;p&gt;El caso es que aceptas. Al fin y al cabo, aquí se viene a hacer &lt;em&gt;networking&lt;/em&gt;. Intercambiáis emails, y a esperar.&lt;/p&gt;
&lt;h2&gt;El embrión&lt;/h2&gt;
&lt;p&gt;En esta fase empieza a quedar patente que algo no va bien. El email que prometieron enviar ese mismo día llega varias semanas después. Contiene no menos de 4 personas en el &lt;em&gt;cc&lt;/em&gt;. Prometen enviar un borrador esa misma semana.&lt;/p&gt;
&lt;p&gt;Meses más tarde llega el borrador. Te piden que lo revises, pero te lo proporcionan en un formato no editable, ni mucho menos sincronizado. La lista de personas en el &lt;em&gt;cc&lt;/em&gt; ya llega a las 10.&lt;/p&gt;
&lt;p&gt;Pinchas el enlace preparándote para encajar la hostia. Ahí está: un título de 3 líneas, con &lt;strong&gt;todos&lt;/strong&gt; los sustantivos convertidos en acrónimos. El artículo es corto en palabras, pero tan generoso en dolor que cuesta un buen rato leerlo&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt;. Autores como estos son los que hacen parecer elocuente a chatGPT. Suele tratarse de una crónica del propio congreso, aunque los hechos que se relaten resulten irreconocibles incluso para un asistente.&lt;/p&gt;
&lt;p&gt;Por cierto, uno de los tipos en el &lt;em&gt;cc&lt;/em&gt; es el director de algo, se ha pensado que es tu jefe, y lo quiere publicado para mañana.&lt;/p&gt;
&lt;h2&gt;El nacimiento&lt;/h2&gt;
&lt;p&gt;Llegados a este punto haces de tripas corazón y decides publicar el engendro por quedar bien con una institución amiga y de paso quitarte el marrón de encima. Al fin y al cabo, firman ellos. Lo publico, y se acabó. ¿No?&lt;/p&gt;
&lt;p&gt;¡Nada más lejos! Resulta que alguien quiere hacer una edición de última hora. Otros quieren darle vidilla en Bluesky, o LinkedIn, pero al parecer necesitan unos 30 emails para decidir cómo hacerlo exactamente.&lt;/p&gt;
&lt;p&gt;Pasan los días y tú, que tienes acceso a las estadísticas, ves que es el artículo menos popular del año. Acumula menos visitas que emails se han intercambiado planeándolo.&lt;/p&gt;
&lt;p&gt;Con lo bonito que es escribir con ganas...&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;el caso más loco que he sufrido fue un texto en el que cada coautor se turnaba para escribir una línea. Auténtica vanguardia literaria que haría las delicias de los surrealistas franceses. Lo leímos tres editores, tres, y aún no sabemos de qué iba.&amp;#160;&lt;a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="Blog"></category><category term="opinion"></category></entry><entry><title>Aurora boreal</title><link href="https://pabrod.github.io/aurora-boreal-es.html" rel="alternate"></link><published>2026-02-06T00:00:00+01:00</published><updated>2026-02-06T00:00:00+01:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2026-02-06:/aurora-boreal-es.html</id><summary type="html">&lt;p&gt;Mi primera aurora boreal&lt;/p&gt;</summary><content type="html">&lt;p&gt;Hace unos días, el 19 de Enero de 2026, vi mi primera &lt;a href="https://nos.nl/artikel/2598905-noorderlicht-op-veel-plekken-in-nederland-te-zien"&gt;aurora boreal&lt;/a&gt;. Y ni siquiera tuve que salir de mi casa. Alguien me avisó de que las estaban viendo desde Zwolle, tan sólo a 100 km al norte de donde vivo, así que corrí a la ventana... y allí estaba.&lt;/p&gt;
&lt;p&gt;El 99% del tiempo no era más que un tenue resplandor verdoso, a ratos rojizo, en el horizonte en dirección norte. Aunque quedaban espectaculares en las fotos, con el ojo desnudo eran casi invisibles.&lt;/p&gt;
&lt;p&gt;Algunas veces, eso sí, se vieron olas verdes muy intensas en nuestro cénit. Colgando como una inmensa cortina. Más que moverse aparecían y desaparecían.&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="images/2026/aurora.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Me acordé de una historia que contaba mi abuela. Trataba de una aurora que vio desde Guadalajara. Fue el 25 de Enero de 1938, en plena guerra civil española. No era un recuerdo feliz: muchos vieron en esas luces en el cielo una amenaza, probablemente gas lanzado por los alemanes. El recuerdo de la primera guerra mundial, aún llamada Gran Guerra, aún estaba fresco. &lt;/p&gt;
&lt;p&gt;Ayer, al menos, nadie se asustó. Al contrario, hubo fascinación generalizada. El mundo está peor que hace unos años, sí, pero no tan mal como en 1938.&lt;/p&gt;</content><category term="Blog"></category><category term="opinion"></category></entry><entry><title>Contenido privado</title><link href="https://pabrod.github.io/contenido-privado-es.html" rel="alternate"></link><published>2026-01-31T00:00:00+01:00</published><updated>2026-01-31T00:00:00+01:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2026-01-31:/contenido-privado-es.html</id><summary type="html">&lt;p&gt;Lo siento, querido lector. Si quieres enterarte de mis lecturas tendremos que tomarnos un café juntos.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Me gusta mucho leer. Desde hace un par de años, además, lo hago tomando abundantes notas. Algunas de estas notas las trabajo bastante, incluyendo diagramas, parafraseos o reflexiones propias. De algún libro he llegado a escribir más de 50 páginas de las mismas, que además guardo (y revisito) como oro en paño&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;Muchos de los blogs que sigo publican un sumario de los libros leídos por el autor, a menudo coincidiendo con el cambio de año. Suelo leerlos con muchísimo interés y, sí, tomando notas (estas mucho más breves) de aquellas reseñas que han despertado mi atención. Así he descubierto muchos libros interesantes que me han hecho disfrutar durante horas.&lt;/p&gt;
&lt;p&gt;Llegados a este punto se produce una asimetría, quizás, un tanto egoísta por mi parte: nunca, jamás, he sentido el más mínimo interés por hacer públicas mis reseñas. Ni tan siquiera mis listas de libros leídos&lt;sup id="fnref:2"&gt;&lt;a class="footnote-ref" href="#fn:2"&gt;2&lt;/a&gt;&lt;/sup&gt;. No sabría decir por qué, pero se me antoja casi de mal gusto. Y no porque pueda interpretarse como un alarde de intelectualidad (ojalá más alardes de esos y menos alardes de chorradas), sino porque leer me parece la actividad solitaria por excelencia&lt;sup id="fnref:3"&gt;&lt;a class="footnote-ref" href="#fn:3"&gt;3&lt;/a&gt;&lt;/sup&gt;. Compartir mis reflexiones privadas es algo que prefiero reservar para personas cercanas, y ni siquiera para todas&lt;sup id="fnref:4"&gt;&lt;a class="footnote-ref" href="#fn:4"&gt;4&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;Además, si tomase mis notas con intención de publicarlas, probablemente serían mucho menos sinceras y útiles.&lt;/p&gt;
&lt;p&gt;Así que, lo siento, querido lector. Si quieres enterarte de mis lecturas tendremos que tomarnos un café juntos.&lt;/p&gt;
&lt;p&gt;Y sí, en efecto. Empiezo a tener manías de viejo.&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;En gran medida gracias a esa maravilla del minimalismo tecnológico que es Obsidian.&amp;#160;&lt;a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;He llegado al extremo de cubrir las tapas de algún que otro libro, porque no me gusta que los desconocidos que me acompañan en el tren sepan qué estoy leyendo.&amp;#160;&lt;a class="footnote-backref" href="#fnref:2" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;Como efecto secundario me declaro no apto para los clubs de lectura.&amp;#160;&lt;a class="footnote-backref" href="#fnref:3" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:4"&gt;
&lt;p&gt;Uno de los fenómenos más desconcertantes con el que me he encontrado es el de la gente que usa LinkedIn, esa red social para buscar trabajo, para plasmar en negro sobre blanco sus más profundas filias y fobias políticas. Por supuesto, siempre extremas. Me produce verdadero vértigo.&amp;#160;&lt;a class="footnote-backref" href="#fnref:4" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="Blog"></category><category term="opinion"></category></entry><entry><title>Correr</title><link href="https://pabrod.github.io/correr-es.html" rel="alternate"></link><published>2025-12-02T00:00:00+01:00</published><updated>2025-12-02T00:00:00+01:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2025-12-02:/correr-es.html</id><summary type="html">&lt;p&gt;Me ha dado por correr. No, no me estoy divorciando.&lt;/p&gt;</summary><content type="html">&lt;p&gt;He empezado a correr.&lt;/p&gt;
&lt;p&gt;Sé lo que estás pensando. No, no me estoy divorciando. No, tampoco me estoy quedando calvo. Ni siquiera estoy pasando por un mal momento. ¿Que si acabo de pasar de los 40?, mira, con esa sí has acertado.&lt;/p&gt;
&lt;p&gt;Para mi sorpresa, estoy corriendo tres veces por semana. Sin perdonar una sola, llueva o nieve&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt;, desde hace ya seis. Y para mayor sorpresa aún: por primera vez en mi vida lo estoy disfrutando. ¿La razón?, que estoy siguiendo un método; un entrenamiento por intervalos que se puede seguir en forma de &lt;a href="https://www.listennotes.com/podcasts/virtual-running-mate-david-olima-0VoN6w1Wqcs/"&gt;podcast&lt;/a&gt;. Es de una sencillez que me da vergüenza no haberlo descubierto antes, y el progreso es sorprendentemente rápido.&lt;/p&gt;
&lt;p&gt;Lo que me tiene cabreado y fascinado a partes iguales es que he pasado horas y horas corriendo, bajo la "supervisión" de profesores de educación física, cuya &lt;strong&gt;única&lt;/strong&gt; directriz era &lt;em&gt;"corre"&lt;/em&gt;. Uno de ellos, el que sufrí más tiempo, nos ponía o bien a correr o bien a jugar al fútbol toda la hora. Todo ello mientras fumaba en cadena, encendiéndose un pitillo con la colilla del anterior, e incluso yéndose a tomar un café en alguna ocasión.&lt;/p&gt;
&lt;p&gt;La madre que lo parió.&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;Vivo a 52 grados de latitud... &lt;strong&gt;ambas&lt;/strong&gt; cosas han pasado ya, y más de una vez.&amp;#160;&lt;a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="Blog"></category><category term="opinion"></category></entry><entry><title>La caja de tesis</title><link href="https://pabrod.github.io/caja-es.html" rel="alternate"></link><published>2025-10-13T00:00:00+02:00</published><updated>2025-10-13T00:00:00+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2025-10-13:/caja-es.html</id><summary type="html">&lt;p&gt;Flashbacks de mis tiempos de doctorando.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Hace poco tuve un flashback. Me vino a la mente el pasillo del departamento en el que me doctoré. Más concretamente, me asaltó la imagen de la caja de cartón con la que mantenían abierta una puerta para que circulara el aire. &lt;/p&gt;
&lt;p&gt;Lo interesante es que la caja estaba llena de tesis de años anteriores. No habría menos de cincuenta, y casi ninguna repetida. Unos doscientos años-persona de trabajo intenso, usados para calzar una puerta.&lt;/p&gt;
&lt;p&gt;Ignoro de quién fue la idea de poner semejante monumento a la desmotivación en un lugar de paso diario de decenas de doctorandos. Eso sí, me inclino a pensar que quienquiera que fuese lo hizo sin maldad. Tras todos estos años me ha quedado claro que la torpeza en lo social y la ceguera emocional campan a sus anchas por la academia. Causando estragos, sí, pero (casi) siempre sin maldad.&lt;/p&gt;
&lt;p&gt;¿Y a quién quiero engañar?, tampoco es que yo le diese a aquellas tesis un uso más honorable. Para entonces ya había aceptado la desconcertante realidad de que la mayoría de tesis no invitan precisamente a ser leídas.&lt;/p&gt;
&lt;p&gt;Y es que ya empezamos mal con la costumbre de convertirlas en un conjunto de papers encuadernados juntos. Así es muy difícil crear una historia coherente. Del horrible estilo literario del paper promedio ya hablaremos en otra ocasión, porque lo realmente raro es todo lo demás: la introducción, conclusiones, agradecimientos, ... en fin, todo lo que sí puede uno escribir como le apetezca. Ahí es dónde se manifiesta el tedio de un modo más gratuito e inexplicable: &lt;/p&gt;
&lt;p&gt;Introducciones que empiezan por el final, emplazan al lector a publicaciones de hace dos semanas, y, en fin, no introducen un carajo. Peña tardando meses (¡meses!) en escribir las conclusiones de su propio trabajo (y pasándolo fatal en el proceso). Agradecimientos desganaos, a menudo meras listas de nombres (con la garantía de que se te va a olvidar alguno y vas a quedar como el culo).&lt;/p&gt;
&lt;p&gt;En fin, que se nota, sobretodo, tedio y dolor en el proceso.&lt;/p&gt;
&lt;p&gt;Por mi parte, tengo la rara suerte de que me cuesta más trabajo escribir mal que hacerlo (más o menos) bien. Esto me costó alguna que otra discusión con mis directores, que consideraban que mi estilo "excesivamente claro" (sic) podría no agradar a algún revisor o a mi comité de tesis. Lo cierto es que sucedió todo lo contrario: los lectores aprecian una prosa legible&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt;. No se podía saber.&lt;/p&gt;
&lt;p&gt;Supongo que mi tesis estará en la caja, contribuyendo a con sus ~100g a la estabilidad de la puerta.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Pensaba acabar el artículo aquí, pero he reparado en que me estoy pasando de pesimista. De hecho, algunas de las partes bonitas de mi tesis&lt;sup id="fnref:2"&gt;&lt;a class="footnote-ref" href="#fn:2"&gt;2&lt;/a&gt;&lt;/sup&gt; tomaron vuelo propio y fueron traducidas y adaptadas en otros sitios, por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://theconversation.com/los-modelos-matematicos-no-predicen-el-futuro-pero-ayudan-a-entenderlo-147299"&gt;Los modelos matemáticos no predicen el futuro, pero ayudan a entenderlo&lt;/a&gt;, en The Conversation.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://culturacientifica.com/2020/11/02/como-mejorar-la-comunicacion-entre-las-matematicas-y-las-ciencias-de-la-vida/"&gt;¿Cómo mejorar la comunicación entre las matemáticas y las ciencias de la vida?&lt;/a&gt;, en el blog de la Cátedra de Cultura Científica.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://culturacientifica.com/2018/05/18/algunas-cosas-que-los-cientificos-pueden-aprender-de-los-programadores/"&gt;Algunas cosas que los científicos pueden aprender de los programadores&lt;/a&gt;, en el blog de la Cátedra de Cultura Científica.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Y también algunas historias directamente inspiradas en la tesis, si bien no al pie de la letra:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://fuga.naukas.com/2019/12/02/resumen-de-un-doctorado/"&gt;Resumen de un doctorado (sin las partes aburridas)&lt;/a&gt;, en Naukas.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://fuga.naukas.com/2021/03/03/un-doctorado-en-cinco-pizarras/"&gt;Un doctorado en cinco pizarras&lt;/a&gt;, en Naukas.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://culturacientifica.com/2021/03/07/el-dia-que-el-arte-me-ayudo-a-escribir-un-articulo-de-matematicas/?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+CuadernoDeCulturaCientfica+%28Cuaderno+de+Cultura+Cient%C3%ADfica%29"&gt;El día que el arte me ayudó a escribir un artículo de matemáticas&lt;/a&gt;, en el blog de la Cátedra de Cultura Científica.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;Si bien es cierto que podríamos haber topado con algún revisor avinagrado.&amp;#160;&lt;a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;Bonitas para una tesis, tampoco nos flipemos.&amp;#160;&lt;a class="footnote-backref" href="#fnref:2" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="Blog"></category><category term="opinion"></category></entry><entry><title>El moribundo arte de enseñar al novato</title><link href="https://pabrod.github.io/novato-es.html" rel="alternate"></link><published>2025-07-10T00:00:00+02:00</published><updated>2025-07-10T00:00:00+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2025-07-10:/novato-es.html</id><summary type="html">&lt;p&gt;En defensa del libro de texto.&lt;/p&gt;</summary><content type="html">&lt;h2&gt;Los libros y la carrera&lt;/h2&gt;
&lt;p&gt;Uno de los recuerdos que con más cariño atesoro de mis tiempos como estudiante de física tiene que ver con libros. Aquellos maravillosos días en los que mi principal responsabilidad consistía en encerrarme en la biblioteca y digerir un par de capítulos del &lt;em&gt;Classical Electrodynamics&lt;/em&gt; de Jackson, del &lt;em&gt;Calculus and Analytic Geometry&lt;/em&gt; de Simmons&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt;, del &lt;em&gt;Modern Quantum Mechanics&lt;/em&gt; de Sakurai o del &lt;em&gt;Basic Complex Analysis&lt;/em&gt; de Marsden.&lt;/p&gt;
&lt;p&gt;Las casi dos horas de transporte público que separaban Guadalajara, dónde vivía y trabajaba, de mi facultad en Madrid, hacían que un buen libro fuese un muy bienvenido sustituto de la asistencia a clase.&lt;/p&gt;
&lt;p&gt;Me atrevo a decir que me volví adicto a esa sensación de estudio pausado e intenso. Tanto que inicié mi doctorado con el propósito de perseguirla.&lt;/p&gt;
&lt;p&gt;Para mi sorpresa, cuánto más avancé en el mundo investigador, menos peso parecían tener los libros.&lt;/p&gt;
&lt;h2&gt;Los libros y la investigación&lt;/h2&gt;
&lt;p&gt;Mi doctorado lo empecé en un tema significativamente alejado de la física (matemáticas aplicadas a la biología), en un país extranjero y, para rematar, tras una pausa de tres años que dediqué a trabajar en la industria óptica.&lt;/p&gt;
&lt;p&gt;En resumen, tenía que ponerme al día. Y rápido.&lt;/p&gt;
&lt;p&gt;En lo referente al tema de mi doctorado, pregunté, naturalmente, a compañeros y supervisores. Y aquí empezó lo raro: si pides materiales básicos a cualquier investigador, es muy, pero que muy probable que te recomienden leer un artículo científico reciente. Si tienes mucha suerte, ese artículo será un &lt;em&gt;review&lt;/em&gt;. Es rarísimo que te recomienden un libro&lt;sup id="fnref:2"&gt;&lt;a class="footnote-ref" href="#fn:2"&gt;2&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Recomendar un artículo reciente a un novato es una pésima idea&lt;/strong&gt;. Como regla general, un artículo de investigación nunca, jamás, es una buena introducción. Por definición, son contribuciones en el límite del conocimiento, es decir, lo opuesto a básico&lt;sup id="fnref:3"&gt;&lt;a class="footnote-ref" href="#fn:3"&gt;3&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;La recomendación más desconcertante que jamás he recibido fue la siguiente: tras pedir a un amigo, experto en &lt;em&gt;machine learning&lt;/em&gt; (un campo particularmente saturado de materiales malísimos) que me recomendase un buen libro introductorio para alguien a quien lo le asustan las matemáticas... recibí un link a un artículo de un blog titulado algo así como &lt;em&gt;"Afinado de GPUs (parte 2)"&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Soy incapaz de intuir siquiera qué lleva a alguien a asumir que la segunda parte de algo puede ser una buena introducción a... cualquier cosa. Pero es que además el afinado de &lt;em&gt;GPUs&lt;/em&gt; es un conjunto de técnicas para hacer tus cálculos más rápidos, vaya, la guinda del pastel, el &lt;strong&gt;último&lt;/strong&gt; asunto del que deberías preocuparte&lt;sup id="fnref:4"&gt;&lt;a class="footnote-ref" href="#fn:4"&gt;4&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;h2&gt;¿Empatía o memoria?&lt;/h2&gt;
&lt;p&gt;Estoy seguro de que mi amigo me recomendó esa segunda parte sobre &lt;em&gt;GPUs&lt;/em&gt; con la mejor intención. Probablemente porque había disfrutado leyéndola, y extrapoló que a mí me sucedería lo mismo; pero, detalle importante, olvidando que yo carezco de las bases para entenderlo.&lt;/p&gt;
&lt;p&gt;Lo curioso es que no hace falta un ejercicio de empatía para evitar este tipo de malentendidos. Basta con tener memoria. Me explico: incluso mi amigo careció de dichas bases en algún momento. Hubiese bastado con que conservase un recuerdo fresco de sí mismo en sus tiempos de estudiante para darme una respuesta más satisfactoria&lt;sup id="fnref:5"&gt;&lt;a class="footnote-ref" href="#fn:5"&gt;5&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;Sospecho que la cultura de hiperespecialización y &lt;em&gt;publish or perish&lt;/em&gt; tiene algo que ver con todo esto, pero ya hablaremos de ello en otra ocasión.&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;Este libro me convirtió en el matemático que soy hoy. Lo conté &lt;a href="https://culturacientifica.com/2017/06/04/calculo-geometria-analitica-george-f-simmons/"&gt;aquí&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;Hace falta algo menos de suerte para que te recomienden un vídeo de &lt;em&gt;Youtube&lt;/em&gt;. Y ojo, no caigamos en prejuicios generacionales: en Youtube hay algunos materiales de una calidad extraordinaria. Y muchos de ellos además en un formato, literalmente, milenario: el de clase magistral.&amp;#160;&lt;a class="footnote-backref" href="#fnref:2" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;Al final logré encontrar los ladrillos fundamentales de mi tesis. Fueron el enciclopédico &lt;em&gt;Mathematical Biology&lt;/em&gt;, de Murray, el &lt;em&gt;Nonlinear Dynamics and Chaos&lt;/em&gt;, de Strogatz, y curiosamente un libro de divulgación, &lt;em&gt;Sync&lt;/em&gt;, también de Strogatz.&amp;#160;&lt;a class="footnote-backref" href="#fnref:3" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:4"&gt;
&lt;p&gt;Al final encontré lo que buscaba: &lt;em&gt;Pattern Recognition and Machine Learning&lt;/em&gt;, de Bishop. Por si alguien siente curiosidad.&amp;#160;&lt;a class="footnote-backref" href="#fnref:4" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:5"&gt;
&lt;p&gt;En lo que a mí respecta, tengo la suerte, por lo visto inusual, de conservar un &lt;strong&gt;intenso recuerdo de mi propia ignorancia&lt;/strong&gt;. De las frustraciones y, sobretodo, de los &lt;em&gt;"momentos Eureka"&lt;/em&gt;. Hasta el punto de que recuerdo perfectamente en qué libro, y a veces incluso en qué capítulo, aprendí e interioricé tal o cuál concepto.&amp;#160;&lt;a class="footnote-backref" href="#fnref:5" title="Jump back to footnote 5 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="Blog"></category><category term="opinion"></category></entry><entry><title>Sobre los símbolos</title><link href="https://pabrod.github.io/simbolos-es.html" rel="alternate"></link><published>2025-06-16T00:00:00+02:00</published><updated>2025-06-16T00:00:00+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2025-06-16:/simbolos-es.html</id><summary type="html">&lt;p&gt;El triste destino de los símbolos.&lt;/p&gt;</summary><content type="html">&lt;h2&gt;Una anécdota&lt;/h2&gt;
&lt;p&gt;Sucedió en un congreso de arte y ciencia, hace ya más de una década. Uno de los ponentes lanzó al aire la siguiente pregunta, desprovista de contexto:&lt;/p&gt;
&lt;p&gt;- &lt;em&gt;¿Alguno de ustedes sabe quién fue Rosa Parker?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Nadie respondió. El ponente, tras afearnos la conducta sobre nuestra ignorancia, nos iluminó:&lt;/p&gt;
&lt;p&gt;- &lt;em&gt;Rosa Parker fue una pionera de los derechos de los negros en EEUU, y debería darles vergüenza no conocer su historia.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Procedió, pues, a explicar su historia. Cómo Rosa, una joven negra, se sentó en un asiento de autobús destinado para blancos en los últimos años de la segregación.&lt;/p&gt;
&lt;p&gt;Sólo había un problema. No se llamaba Rosa Parker, sino &lt;a href="https://en.wikipedia.org/wiki/Rosa_Parks"&gt;Rosa Parks&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;Y es que Rosa, para este señor, era poco más que una anécdota, una nota al pie. Rosa Parker, Rosa Parks, Rosa-la-del-bus. Fuimos lo suficientemente corteses de no corregirle, pero es fácil imaginar que su respuesta hubiese sido algo del tipo:&lt;/p&gt;
&lt;p&gt;- &lt;em&gt;Parks o Parker, ¿qué más da?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;La bronca por desconocer su no-nombre, nos la comimos igual.&lt;/p&gt;
&lt;h2&gt;Aprovecho para recomendar&lt;/h2&gt;
&lt;p&gt;Esta anécdota me ha venido a la cabeza, en formato &lt;em&gt;flashback&lt;/em&gt;, mientras escuchaba la temporada 3 del magnífico podcast "&lt;a href="https://www.deesonosehabla.com/"&gt;De eso no se habla&lt;/a&gt;".&lt;/p&gt;
&lt;p&gt;Trata, precisamente, sobre cómo se construye un símbolo histórico... y lo poco o nada que importa la realidad una vez que el símbolo cobra entidad propia.&lt;/p&gt;</content><category term="Blog"></category><category term="opinion"></category></entry><entry><title>Días de la selectividad</title><link href="https://pabrod.github.io/selectividad-es.html" rel="alternate"></link><published>2025-06-04T00:00:00+02:00</published><updated>2025-06-04T00:00:00+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2025-06-04:/selectividad-es.html</id><summary type="html">&lt;p&gt;La selectividad como trauma compartido.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Otro año más, llegan las fechas de las pruebas de acceso a la universidad, todavía conocidas popularmente como selectividad.&lt;/p&gt;
&lt;p&gt;Para mucha gente, la selectividad fue su primer encuentro con el lado más tedioso y obsesivo de la vida adulta. Conozco a muchos que se quedaron pillados en aquella experiencia; gente que sigue recordando, décadas después, la nota que obtuvo.&lt;/p&gt;
&lt;p&gt;A mí esto se me antoja tan raro como recordar exactamente con qué monedas pagué una compra de hace 20 años. Olvidé mi nota unos tres segundos después de comprobar que me había servido para entrar en la facultad que quería. Al fin y al cabo, es para lo que sirve.&lt;/p&gt;
&lt;h2&gt;El éxito como castigo&lt;/h2&gt;
&lt;p&gt;Estos días proliferan también los artículos y noticias sobre el tema. Hay uno al que siempre me acerco con precaución, con la certeza de que me va a dejar con mal cuerpo: la tradicional entrevista a los estudiantes con las mejores notas del año. &lt;/p&gt;
&lt;p&gt;Hay una historia que se repite a menudo: &lt;em&gt;"yo quería estudiar X, pero cómo he sacado muy buena nota, ahora &lt;/em&gt;&lt;em&gt;tengo&lt;/em&gt;&lt;em&gt; que estudiar medicina"&lt;/em&gt;. Me deja sin palabras. Una buena nota como desgracia. Además como desgracia de las de verdad, de las que te acompañan toda la vida.&lt;/p&gt;
&lt;p&gt;También hay otras historias tristes por motivos más sutiles, como aquellas en las que se adivinan malos consejos familiares. Bienintencionados, seguro, pero tan errados que dan ganas de gritar. &lt;em&gt;"Me gustaría ser investigadora científica. Voy a estudiar ingeniería de caminos"&lt;/em&gt; (no sé ni qué decir). &lt;em&gt;"No me interesa mucho la arquitectura, pero mi abuelo fue aparejador (en los sesenta) y le fue muy bien."&lt;/em&gt; (declaraciones de un estudiante en 2009, con la burbuja del ladrillo ya visiblemente explotada). &lt;em&gt;"Yo quisiera estudiar física, pero la única salida es ser profesor de secundaria"&lt;/em&gt; (esta la he oído mil veces, y tengo una enorme curiosidad por saber de dónde sale. ¿Ha sido esto verdad &lt;strong&gt;alguna&lt;/strong&gt; vez en la historia reciente?).&lt;/p&gt;
&lt;p&gt;Casi todas las historias de los estudiantes de éxito tienen un tono parecido. A menudo incluso resulta difícil distinguir unas de otras, al menos de memoria. Dicho esto, hay una que nunca olvidaré: aquella entrevista a un chaval cuyo sueño era tocar el clarinete y, contra el consejo de su familia, "desperdició" su nota entrando a una escuela de música. La leí hacia 2010. Algo me dice que, a día de hoy, seguro que le va mejor que a muchos.&lt;/p&gt;
&lt;p&gt;Me tomaría una cerveza con él sin dudarlo.&lt;/p&gt;</content><category term="Blog"></category><category term="opinion"></category></entry><entry><title>No des tu altavoz a los idiotas</title><link href="https://pabrod.github.io/altavoz-idiotas-es.html" rel="alternate"></link><published>2025-05-26T00:00:00+02:00</published><updated>2025-05-26T00:00:00+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2025-05-26:/altavoz-idiotas-es.html</id><summary type="html">&lt;p&gt;Una breve invitación a la indignación silenciosa.&lt;/p&gt;</summary><content type="html">&lt;p&gt;En el fondo te entiendo. &lt;/p&gt;
&lt;p&gt;Lo sé, crees que estás ayudando. La batalla cultural y todo eso. Pero alguien tiene que decírtelo: la estás cagando. Hay una razón para que la intolerancia y los extremismos estén creciendo desde la irrupción de las redes sociales: se benefician de nuestras reacciones naturales.&lt;/p&gt;
&lt;p&gt;Hoy tus oídos se extienden hasta lo más recóndito del planeta. No tiene &lt;a href="https://fuga.naukas.com/2022/04/27/parece-un-dialogo-pero-lo-es/"&gt;nada de extraordinario&lt;/a&gt; que escuches los comentarios más necios. Hace 30 años, los exabruptos de un obispo ultra, de un hooligan futbolero o de un senador senil por Alabama quedaban restringidos a un ámbito local. Hoy no, y &lt;strong&gt;en parte es culpa tuya&lt;/strong&gt;. Al menos, a mi timeline llegaron a través de ti.&lt;/p&gt;
&lt;p&gt;No sólo me llegan a mí, sino también a la gente a la que le molan esos exabruptos. Tanto el exabrupto en sí como tu indignación &lt;strong&gt;son su gasolina&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;No seré yo quién corte las alas a tu libertad de expresión, pero quiero decirte algo: si te sigo en redes sociales es por que &lt;strong&gt;ya sé que tú eres mejor que ellos&lt;/strong&gt;. No hace falta que des señas de tus virtudes morales cada cinco minutos. Tus enemigos no las aprecian y tus amigos no las necesitamos.&lt;/p&gt;
&lt;p&gt;Lo peor, tal vez, es que ni siquiera tú estás quedando bien. Siento decírtelo, pero cada vez que me llega uno de tus retuits indignados, me doy cuenta de que has vuelto a picar. &lt;strong&gt;Y te pierdo un poquito el respeto&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Son ya muchos años cayendo en el mismo truco y empieza a resultar embarazoso.&lt;/p&gt;
&lt;p&gt;No des tu altavoz a los idiotas. Eres mejor que eso.&lt;/p&gt;</content><category term="Blog"></category><category term="opinion"></category></entry><entry><title>Talk announcement: Coding Café Tilburg</title><link href="https://pabrod.github.io/coding-cafe.html" rel="alternate"></link><published>2025-05-15T00:00:00+02:00</published><updated>2025-05-15T00:00:00+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2025-05-15:/coding-cafe.html</id><summary type="html">&lt;p&gt;On best programming practices for researchers, and why they matter.&lt;/p&gt;</summary><content type="html">&lt;hr&gt;
&lt;h2&gt;Title&lt;/h2&gt;
&lt;p&gt;Best practices for scientific programming, with a focus in testing&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.dropbox.com/scl/fi/6iq1cgosxu8p302p3trkn/2025-05-Tilburg-Testing.pptx?rlkey=xqq4zae2o3tlfzlg6ymjgfd4p&amp;amp;st=c2qhn2vq&amp;amp;dl=0"&gt;&lt;img alt="slides" src="images/2025-05/coding-cafe.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Abstract&lt;/h2&gt;
&lt;p&gt;Software projects, big or small, have a lot of complexity.
Not only they perform complex tasks, but often they have thousands of lines and multiple authors.
To make things even more complicated, software projects are rarely static, but keep evolving in time.
How is all this complexity managed?
The answer is: by using best practices.&lt;/p&gt;
&lt;p&gt;Chances are you've heard about best practices for researchers.
But did you know their primary purpose is to make &lt;strong&gt;your&lt;/strong&gt; life easier?
Furthermore, did you know they are rooted at the very core of the scientific method?&lt;/p&gt;
&lt;p&gt;We'll talk about these and other topics, and will focus our attention on a particularly useful practice: unit testing.&lt;/p&gt;
&lt;p&gt;Join us if you want to know more.
And bring your laptop!
We'll cover the mechanics of &lt;strong&gt;unit testing in both R and Python&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;And last but not least, there will be pizza! 🍕&lt;/p&gt;
&lt;h2&gt;Slides&lt;/h2&gt;
&lt;p&gt;The slides of this talk are temporarily available &lt;a href="https://www.dropbox.com/scl/fi/6iq1cgosxu8p302p3trkn/2025-05-Tilburg-Testing.pptx?rlkey=xqq4zae2o3tlfzlg6ymjgfd4p&amp;amp;st=c2qhn2vq&amp;amp;dl=0"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Spacetime coordinates&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://tilburguniversity.libcal.com/event/4367167"&gt;Registration link&lt;/a&gt; (only for members of Tilburg University)&lt;/li&gt;
&lt;li&gt;May 22nd 2025&lt;/li&gt;
&lt;li&gt;11:00 - 13:00&lt;/li&gt;
&lt;li&gt;Tilburg University. &lt;a href="https://www.tilburguniversity.edu/contact/campus-map-and-buildings/simon" title="https://www.tilburguniversity.edu/contact/campus-map-and-buildings/simon"&gt;Simon building&lt;/a&gt; , room S8 (ground floor)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;h2&gt;Requirements&lt;/h2&gt;
&lt;p&gt;To get the most out of this talk, we encourage you to bring a laptop. Please make sure you have installed and updated at least one of these:&lt;/p&gt;
&lt;h3&gt;For R users&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;R&lt;/li&gt;
&lt;li&gt;With the &lt;code&gt;testthat&lt;/code&gt; and &lt;code&gt;usethis&lt;/code&gt; CRAN packages&lt;/li&gt;
&lt;li&gt;R studio (recommended)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;For Python users&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;With the &lt;a href="https://docs.pytest.org/en/stable/getting-started.html"&gt;&lt;code&gt;pytest&lt;/code&gt;&lt;/a&gt; package&lt;/li&gt;
&lt;li&gt;An environment manager such as conda or poetry (recommended)&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2&gt;Materials and references&lt;/h2&gt;
&lt;h3&gt;Slides&lt;/h3&gt;
&lt;p&gt;The slides of this talk are temporarily available &lt;a href="https://www.dropbox.com/scl/fi/6iq1cgosxu8p302p3trkn/2025-05-Tilburg-Testing.pptx?rlkey=xqq4zae2o3tlfzlg6ymjgfd4p&amp;amp;st=c2qhn2vq&amp;amp;dl=0"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Testing with Python&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://swcarpentry.github.io/python-novice-gapminder/16-writing-functions/index.html"&gt;Writing functions in Python&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.pytest.org/en/6.2.x/"&gt;Tests in Python&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Testing with R&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://swcarpentry.github.io/r-novice-gapminder/10-functions/index.html"&gt;Writing functions in R&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://testthat.r-lib.org/"&gt;Tests in R&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Extended best practices&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://dx.plos.org/10.1371/journal.pbio.1001745"&gt;Best Practices for Scientific Computing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1005510"&gt;Good enough Practices in Scientific Computing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.oreilly.com/library/view/effective-computation-in/9781491901564/"&gt;Effective computation in physics&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="Blog"></category><category term="announcement"></category></entry><entry><title>La concentración</title><link href="https://pabrod.github.io/concentracion-es.html" rel="alternate"></link><published>2025-05-12T00:00:00+02:00</published><updated>2025-05-12T00:00:00+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2025-05-12:/concentracion-es.html</id><summary type="html">&lt;p&gt;Cuando ni está ni se la espera.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Mi principal herramienta de trabajo es un ordenador. Después de mi cabeza, claro.&lt;/p&gt;
&lt;p&gt;Steve Jobs decía que un ordenador es a tu cerebro lo que una bicicleta a tus piernas (probablemente la única idea que me gusta de este flipado). Lo es, o debería serlo. &lt;/p&gt;
&lt;h2&gt;Herramientas anti-concentración&lt;/h2&gt;
&lt;p&gt;Si trabajas con un ordenador (cosa estadísticamente muy probable), habrás notado que cada vez es más difícil esquivar las apps llenas de lucecitas, notificaciones y otras gilipolleces.&lt;/p&gt;
&lt;p&gt;Atrás quedan los tiempos en los que nos irritaba el clip de Microsoft Word y su invariable pregunta: &lt;em&gt;"parece que estás escribiendo una carta, ¿te ayudo?"&lt;/em&gt;. Hoy en día el puto clip nos parecería un ejemplo de discreción y elegancia.&lt;/p&gt;
&lt;p&gt;Tengo la enorme suerte de trabajar en un centro en el que se nos permite usar las herramientas de nuestra elección&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt;. Lo primero que hice con mi ordenador institucional fue instalar Ubuntu y relegar el Windows que traía de fábrica a una máquina virtual. Lo abro de cuándo en cuándo, tan sólo para horrorizarme con cómo, cuál mal compañero de piso, va llenando mi escritorio con su basura. Ahora también con inteligencia artificial, claro.&lt;/p&gt;
&lt;p&gt;Aún así, para temas de gestión nos han comprado licencias de Microsoft Office. Lo único bueno que puedo decir es que gracias a la versión web no necesito instalarlo. Ah, y algo bastante inusual: tras todos estos años por fin he conocido a &lt;strong&gt;una&lt;/strong&gt; persona que sabe usar Word como es debido.&lt;/p&gt;
&lt;h2&gt;Los fanboys&lt;/h2&gt;
&lt;p&gt;Hace poco tuve una revelación. Toda esa gente a la que le parece normal, o incluso deseable, que tu editor de texto te pegue la chapa mientras estás escribiendo, seguramente no ha estado concentrada jamás. No sé cómo se las han apañado, pero tengo cero dudas. &lt;strong&gt;La concentración no la conocen y, por lo tanto, no la echan de menos&lt;/strong&gt;. &lt;/p&gt;
&lt;p&gt;Son los mismos que consideran que convocarte para una reunión de media hora te va a tomar media hora y ni un minuto más, pues es lo que les toma a ellos (que ni van a preparar una agenda ni van a hacer absolutamente nada con lo que se trate en la reunión una vez esta acabe).&lt;/p&gt;
&lt;h2&gt;El súperpoder del siglo XXI&lt;/h2&gt;
&lt;p&gt;Se dice que concentración será el súperpoder del siglo XXI. No sé si será cierto o no. Los &lt;a href="https://www.theguardian.com/books/2018/may/25/bullshit-jobs-a-theory-by-david-graeber-review"&gt;&lt;em&gt;bullshit jobs&lt;/em&gt;&lt;/a&gt; (David Graeber &lt;em&gt;dixit&lt;/em&gt;) siguen al alza y con mejor salud que nunca.&lt;/p&gt;
&lt;p&gt;Espérate que la capacidad de concentración no acabe convirtiéndose en un estigma. En una "virtud" que sólo sirva para que te endilguen marrones.&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;También he pasado, de refilón, por instituciones de investigación que obligaban a sus empleados a utilizar una versión de Windows personalizada &lt;em&gt;ad hoc&lt;/em&gt;, y además tan mal que: 1. no funcionaba fuera del edificio, ni siquiera conectándose con una VPN y 2. Microsoft se negaba a hacer valer la garantía aduciendo que esa chapuza no la habían perpetrado ellos. Instituciones que priorizan tanto la ciberseguridad que están a sólo un paso de no dejarte encender el ordenador.&amp;#160;&lt;a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="Blog"></category><category term="opinion"></category></entry><entry><title>Confesiones de un multilingüe tardío</title><link href="https://pabrod.github.io/multilinguismo-es.html" rel="alternate"></link><published>2025-04-28T00:00:00+02:00</published><updated>2025-04-28T00:00:00+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2025-04-28:/multilinguismo-es.html</id><summary type="html">&lt;p&gt;Lo que nadie me contó y me hubiera venido bien saber.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Aunque tengo la suerte de hablar cuatro idiomas con fluidez, soy un ejemplo de multilingüismo tardío.&lt;/p&gt;
&lt;p&gt;Nací y crecí en la muy castellana ciudad de Guadalajara.
No recibí clases de inglés hasta muy tarde, y no llegué a hablarlo bien hasta mucho más tarde, ya de (joven) adulto, gracias a una pareja norteamericana que tuve.
Más adelante, estudié portugués por vergüenza torera: tuve unos clientes brasileños, y me fastidiaba hablar inglés con los hablantes de una lengua hermana.
Finalmente, hace 10 años emigré a los Países Bajos, y a día de hoy el neerlandés es mi lengua habitual en el día a día.
&lt;a href="https://www.cenetherlands.nl/por-que-aprendi-neerlandes/"&gt;Aquí&lt;/a&gt; cuento largo y tendido por qué me decidí aprender esta lengua endiablada.&lt;/p&gt;
&lt;p&gt;El multilingüismo tardío tiene una enorme desventaja: mi aprendizaje ha distado mucho de ser automático.
Y una ventaja algo menor: mi aprendizaje ha sido consciente, tengo una memoria clara de cuándo no hablaba tal o cuál lengua, y de cómo fue el proceso.&lt;/p&gt;
&lt;p&gt;Dejo por aquí algunas reflexiones sueltas sobre lo que he aprendido durante el mismo.
Muchas son genéricas.
Otras son más específicas de la lengua holandesa o neerlandesa (sí, ambos nombres son correctos).&lt;/p&gt;
&lt;h2&gt;No hay dos lenguas que se experimenten igual&lt;/h2&gt;
&lt;p&gt;No hay dos lenguas que hable con la misma fluidez.
Comparadas con mi lengua materna, todas se me quedan un poco cortas.&lt;/p&gt;
&lt;p&gt;Más allá del dominio técnico de una lengua, está el aspecto emocional.
Tengo la sensación de tener una personalidad diferente en cada lengua que hablo.
Incluso me escucho una voz distinta.&lt;/p&gt;
&lt;p&gt;Aún más, tengo una fortísima asociación entre lenguaje y persona.
Me explico, tengo amigos holandeses con los que comencé hablando en inglés.
Una vez que mi holandés mejoró lo suficiente, he sido incapaz de hablar con ellos en su lengua de manera natural.
Nos resultamos desconocidos&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;Y es que &lt;strong&gt;la lengua es mucho más que intercambio de información&lt;/strong&gt;.&lt;/p&gt;
&lt;h2&gt;De sofisticado expat a otro inmigrante más&lt;/h2&gt;
&lt;p&gt;Una de las paradojas del multilingüismo es que hablar la lengua de tu país de acogida te puede traer un tipo muy concreto de problema: el de que se piensen que eres idiota.&lt;/p&gt;
&lt;p&gt;Si te presentas en inglés, el mensaje de fondo es que tienes cosas mejores que hacer que aprender el idioma local.
No tardarán en preguntarte a qué te dedicas, en interesarse un poco más allá de la primera impresión.
Si, en cambio, te presentas en un holandés flojo, pierdes esta ventaja.&lt;/p&gt;
&lt;h2&gt;No todos los extranjeros sonamos igual&lt;/h2&gt;
&lt;p&gt;Alguien me dijo una vez algo muy triste, pero cierto: &lt;em&gt;"mientras tu acento no sea marroquí ni polaco, no tienes por qué preocuparte"&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Resulta que las comunidades marroquí y polaca son las minorías no-neerlandófonas más grandes de los Países Bajos.
Españoles que hablen neerlandés, en cambio, hay pocos.
Esto tiene un curioso efecto secundario: no somos masa crítica suficiente como para habernos creado una reputación, ni buena ni mala.&lt;/p&gt;
&lt;p&gt;El hecho de que la reina de los Países Bajos, de origen argentino, hable con un acento parecido al mío, también me ha abierto alguna puerta.&lt;/p&gt;
&lt;p&gt;Y es que la irracionalidad y la xenofobia son malas, pero también reales.&lt;/p&gt;
&lt;h3&gt;Nota: sobre hispanohablantes y acentos&lt;/h3&gt;
&lt;p&gt;Los hispanohablantes tenemos un complejo enorme con nuestro acento.
Es cierto que solemos tener un acento particularmente fuerte y reconocible (hay razones lingüísticas para esto, siendo la principal la pobreza de sonidos vocálicos propia de nuestro idioma). También es cierto que, al contrario de lo que creemos, a casi nadie le molesta.
Es más, a mucha gente incluso le agrada, y consideran nuestro acento (y el de otros) una marca distintiva y de carácter.&lt;/p&gt;
&lt;h2&gt;¿Conoce usted el gradiente dialectal?&lt;/h2&gt;
&lt;p&gt;Si, al igual que yo, tiene usted al español como primera lengua, esto le va a resultar alucinante: hay países en los que el dialecto cambia cada pocos kilómetros.
Basta un paseo en bici para atravesar varias fronteras dialectales.&lt;/p&gt;
&lt;p&gt;Imagine el lector que sale de Madrid, y ya a la altura de Getafe hablasen con acento de Cádiz.
Así va la cosa.&lt;/p&gt;
&lt;p&gt;El neerlandés de Gante, por ejemplo, es tremendamente claro.
Una auténtica bendición para cualquier estudiante de idiomas.
Sin embargo, el de Ostende, a menos de 40 kilómetros, es tan extraño que aún hoy, cuando voy allí, dudo si me están hablando en neerlandés, en francés o en inglés.&lt;/p&gt;
&lt;p&gt;Este gradiente se produce no sólo en el espacio, sino también en el tiempo.
El neerlandés de los programas de televisión de la década de 1970 suena distinto al actual.
Pero &lt;strong&gt;muy distinto&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Y es que el gradiente dialectal del español es muchísimo más suave.
Según tengo entendido, la principal causa de esta bendición es la pobreza de sonidos vocálicos que mencionaba antes&lt;sup id="fnref:2"&gt;&lt;a class="footnote-ref" href="#fn:2"&gt;2&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;h2&gt;Humor intraducible&lt;/h2&gt;
&lt;p&gt;Entender el humor requiere un manejo muy profundo del idioma.
Durante años, creí ser el único culpable de que el humor holandés no me hiciera la más mínima gracia.
Ahora que lo entiendo, creo que me he ganado el derecho a decirlo en voz alta: el humor holandés es bastante mediocre.
Y pasado de moda.
Baste decir que los aforismos y el humor de cabaret siguen vivos y coleando, cuando en España ya estaban de capa caída en tiempos de Gómez de la Serna.&lt;/p&gt;
&lt;p&gt;La literatura holandesa de ficción, en general, me deja bastante frío.
Quizás me falta experiencia, pero tengo la sensación de que la tradición narrativa es diferente.
Casualidad o no, mi &lt;a href="https://es.wikipedia.org/wiki/Kader_Abdolah"&gt;autor holandés favorito&lt;/a&gt; es... de origen iraní.&lt;/p&gt;
&lt;p&gt;En cuánto a ensayo, sí que hay cosas muy buenas.
Y merece una mención la gran cantidad (y calidad) de libros sobre lingüística que se ven por estas tierras.&lt;/p&gt;
&lt;h2&gt;Verlas venir&lt;/h2&gt;
&lt;p&gt;Cuando uno habla su lengua materna, percibe montones de trozos de información implícita.
Una referencia cultural, la elección de una frase hecha, e incluso un cierto acento, nos proporcionan valiosas pistas sobre la persona con la que estamos hablando.&lt;/p&gt;
&lt;p&gt;Cuando hablamos una lengua que dominamos menos, no sólo percibimos menos, sino que también dejamos ver menos.
Esto tiene un corolario bastante bestia, pero muy expresivo: &lt;strong&gt;es más difícil identificar a un tonto cuando habla en un idioma que no es el suyo&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;No jodas con la jota&lt;/h3&gt;
&lt;p&gt;Hablando de verlas venir, si eres hispanohablante no digas que el sonido &lt;em&gt;[x]&lt;/em&gt; (asociado en neerlandés a la letra &lt;em&gt;g&lt;/em&gt;) se te atraganta.
Es un sonido que existe en tu lengua materna, asociado normalmente a la letra &lt;em&gt;j&lt;/em&gt;, y que dominas a la perfección.
Es probablemente el único fonema neerlandés para el que traes una ventaja de casa.&lt;/p&gt;
&lt;p&gt;Cuando dices lo contrario, dejas ver que tus ideas son de segunda mano.
Probablemente tomadas prestadas de algún angloparlante.&lt;/p&gt;
&lt;h2&gt;El lujo de ser monolingüe&lt;/h2&gt;
&lt;p&gt;Si bien es cierto que hablar varias lenguas tiene ciertas ventajas y proporciona alguna que otra satisfacción, reconozco que echo de menos hablar más mi lengua materna.&lt;/p&gt;
&lt;p&gt;Llevo dos décadas seguidas resolviendo puzzles en mi cabeza (estudiando físicas primero, ingeniería y doctorado después, y ahora trabajando como investigador multidisciplinar) y empiezo a necesitar un descanso de vez en cuando.&lt;/p&gt;
&lt;p&gt;Volver a la lengua materna, en su dialecto concreto (pues &lt;strong&gt;todos hablamos dialectos&lt;/strong&gt;), es como volver a casa.
Encuentro un placer especial, por ejemplo, en las novelas de mi paisano Miguel Delibes.
Y tiene gracia, porque de pequeño me obligaron a leerlas, y me parecían tediosísimas.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;"Este tío habla igual que mi abuela. ¡Qué murga!"&lt;/em&gt;, pensaba.&lt;/p&gt;
&lt;p&gt;Ahora pienso lo mismo, pero con un matiz importante:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;"Este tío habla igual que mi abuela. ¡Me encanta!"&lt;/em&gt;&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;Con la notable excepción de mi pareja. Con ella sí que logré sustituir el inglés por el neerlandés, con enorme esfuerzo eso sí.&amp;#160;&lt;a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;Hay quién lo atribuye a la labor de la Real Academia Española, pero tengo serias dudas de que una institución que se reúne los jueves después del trabajo tenga tanto poder sobre cientos de millones de hablantes.&amp;#160;&lt;a class="footnote-backref" href="#fnref:2" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="Blog"></category><category term="opinion"></category></entry><entry><title>El Ratilla</title><link href="https://pabrod.github.io/ratilla-es.html" rel="alternate"></link><published>2025-04-24T00:00:00+02:00</published><updated>2025-04-24T00:00:00+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2025-04-24:/ratilla-es.html</id><summary type="html">&lt;p&gt;Un relato breve.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Se hacía llamar &lt;em&gt;Ratilla&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Decían que era huérfano, que vivía en un internado.&lt;/p&gt;
&lt;p&gt;Presumía, ante cualquiera que quisiera escucharle, de haber &lt;em&gt;"tumbado de un puñetazo a un padre agustino"&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Concedía gran importancia a la afiliación religiosa de la víctima.
Como si para él pegar a un agustino fuese más meritorio que pegar a un franciscano o a un jesuita.&lt;/p&gt;
&lt;p&gt;Han pasado muchos años.
Supongo que, a estas alturas, ya le habrá dado una patada en los huevos a un monje Shaolín.&lt;/p&gt;
&lt;p&gt;¡Qué menos!&lt;/p&gt;</content><category term="Blog"></category><category term="narrative"></category></entry><entry><title>Es hora de quitarse el pasmo</title><link href="https://pabrod.github.io/dato-es.html" rel="alternate"></link><published>2025-03-09T00:00:00+01:00</published><updated>2025-03-09T00:00:00+01:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2025-03-09:/dato-es.html</id><summary type="html">&lt;p&gt;El literalismo como problema académico.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Tengo la mala suerte de haber estudiado física durante el apogeo de &lt;em&gt;The big bang theory&lt;/em&gt;, esa serie protagonizada por estudiantes de física&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt;, cada cual más inadaptado que el anterior&lt;sup id="fnref:2"&gt;&lt;a class="footnote-ref" href="#fn:2"&gt;2&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;Durante muchos años fui muy beligerante contra el estereotipo del estudiante de ciencias absorto en su mundo, rayano en el autismo y, ante todo, incompetente social.
Luego empecé el doctorado, visité varias facultades de matemáticas de Europa y... en fin... dejé de ser beligerante.&lt;/p&gt;
&lt;p&gt;Me da rabia reconocerlo, pero el estereotipo tiene mucho de verdad: hay mucho pasmao en la universidad.&lt;/p&gt;
&lt;p&gt;Espero que no se me ofenda nadie.
Lo digo con cierto cariño.
Yo mismo tengo comportamientos de pasmao en ciertas situaciones.
Pero es bueno ser consciente, porque el pasmo, amigos puede ser dañino.&lt;/p&gt;
&lt;h2&gt;Asignatura troncal: literalidad en los billares&lt;/h2&gt;
&lt;p&gt;Para solucionar esto propongo, medio en serio medio en broma, la siguiente asignatura troncal en todas las carreras, especialmente en las de ciencias.
El aula es una sala de billar, con cuatro o cinco actores con pinta de macarras jugando.
Los estudiantes entran de dos en dos, y deben echar una partida en la única mesa libre.
Pero la partida no es lo importante, sino la interacción con el resto del elenco.
En un momento dado, llega el examen: uno de los actores pregunta a los estudiantes algo como:&lt;/p&gt;
&lt;p&gt;- &lt;em&gt;"Eh, ¿te gusta mi gorra?"&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;o alguna impertinencia similar.&lt;/p&gt;
&lt;p&gt;Hay dos formas de &lt;strong&gt;aprobar&lt;/strong&gt;: salir corriendo o soltar la primera hostia.&lt;/p&gt;
&lt;p&gt;Hay una forma de &lt;strong&gt;suspender&lt;/strong&gt; por todo lo alto: empezar a hablar sobre la gorra, evaluando sus pros y contras. Buscando referencias recientes incluso.&lt;/p&gt;
&lt;p&gt;Lo sé, lo sé.
Sueno como uno de esos alcohólicos que afirman conocer la &lt;em&gt;"universidad de la vida"&lt;/em&gt;.
Pero de verdad creo que algo así enseñaría una valiosa lección:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;La mayoría de la gente no siempre dice lo que piensa.
Y aún así, la mayoría de la gente se entiende a base de sobreentendidos.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Dato mata relato (y otras falacias)&lt;/h2&gt;
&lt;p&gt;El análisis racional es una forma (de muchas) de entender el mundo.
Y ni siquiera tengo claro que sea mayoritaria.&lt;/p&gt;
&lt;p&gt;Tenemos un ejemplo excelente en las recientes elecciones en los Estados Unidos de América.
La campaña de los demócratas fue impecable desde el punto de vista del contenido.
Tanto es así, que los republicanos llegaron a protestar públicamente porque los periodistas descubrían sus mentiras.
Si el juego consistiese en ser fiel a la realidad, los demócratas hubieran arrasado.
Pero sigamos hablando de la realidad: han perdido.&lt;/p&gt;
&lt;p&gt;¿Será, quizás, que los republicanos se han comunicado con sus votantes a base de sobreentendidos?
¿Y cuáles podrían ser?&lt;/p&gt;
&lt;p&gt;Desde mi prescindible opinión de sociólogo de taberna, sus resultados se explican no tanto desde la sociología como desde la primatología.
Y no, no es un insulto.
Al contrario, por desgracia es un halago enorme para los que han diseñado la campaña, pues saben algo que se les escapa a casi todos los doctores que conozco:
&lt;strong&gt;somos primeramente un animal social, y luego, si y sólo si quedan energías, racionales&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Los éxitos de personajes como Trump o Milei, que nos parecen un fenómeno típicamente del siglo XXI, casi futurista, descansan sobre una realidad antiquísima.
Tanto Trump como Milei responden al arquetipo del iluminado, del profeta antiguo, del líder por derecho divino.
El mono Alfa.&lt;/p&gt;
&lt;p&gt;Si son un fenómeno viejo, ¿por qué hay tantos ahora?
Mi hipótesis es la siguiente:
La principal desventaja del iluminado es que sólo convence en las distancias cortas, y que nunca ha gozado de buena prensa en los medios tradicionales.
Sin embargo, esto ha cambiado con la explosión de las redes sociales como principal fuente de información para una mayoría de ciudadanos.
Estos iluminados nos hablan, con extraordinaria eficacia, desde el par de palmos de distancia que separan el smartphone de nuestra cara.&lt;/p&gt;
&lt;p&gt;Para un iluminado el histrionismo, la arrogancia, e incluso la fealdad resultan ser una ventaja.
El iluminado desmonta los datos a través del relato, con mayor eficacia cuánto más grosero y falaz es este último.
El dato, la realidad, importa poco o nada.&lt;/p&gt;
&lt;p&gt;Vienen curvas.&lt;/p&gt;
&lt;p&gt;Elegimos mal siglo para ser platónicos.&lt;/p&gt;
&lt;p&gt;Es hora de quitarse el pasmo.&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;Al menos por aquel entonces los actores aún tenían edad de ir a la universidad y daban un poquito menos de grima que en las últimas temporadas.&amp;#160;&lt;a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;Se habla a menudo de la histórica falta de referentes femeninos entre los científicos de ficción y su posible impacto en la elección de una carrera profesional entre las estudiantes. Se debería hablar también de los referentes masculinos... porque tela. ¿O acaso conocéis a algún chaval que diga: &lt;em&gt;"Yo de mayor quiero ser gilipollas como Sheldon Cooper"&lt;/em&gt;?&amp;#160;&lt;a class="footnote-backref" href="#fnref:2" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="Blog"></category><category term="opinion"></category></entry><entry><title>Lo que delata una pizarra</title><link href="https://pabrod.github.io/pizarra-es.html" rel="alternate"></link><published>2025-03-05T00:00:00+01:00</published><updated>2025-03-05T00:00:00+01:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2025-03-05:/pizarra-es.html</id><summary type="html">&lt;p&gt;La pizarra es una ventana a tu cerebro. Úsala con cariño.&lt;/p&gt;</summary><content type="html">&lt;h2&gt;Claridad y precisión&lt;/h2&gt;
&lt;p&gt;Decía el matemático Steven Strogatz que uno de los mejores indicadores del rendimiento futuro de un alumno es la claridad de sus apuntes (cito de memoria).&lt;/p&gt;
&lt;p&gt;Yo no soy Strogatz, pero hace ya muchos años que presto mucha atención a las estrategias expositivas, el formato e incluso la estética de las comunicaciones científicas.
Es una afición dolorosa, pues &lt;strong&gt;las publicaciones científicas son notorias por la baja calidad de su prosa&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Muchos achacan esta falta de claridad a la necesidad de utilizar un lenguaje extremadamente preciso.
Aunque hay algo de cierto en esto, no puedo estar de acuerdo.
He visto en demasiadas ocasiones como &lt;strong&gt;la necesidad de precisión se desvanece completamente a la hora de proporcionar el código fuente o, incluso, las ecuaciones utilizadas&lt;/strong&gt; para sostener las conclusiones de un artículo.
También he conocido autores que abogan abiertamente por una prosa deliberadamente oscura con el objetivo desquiciado de &lt;em&gt;"no ponérselo demasiado fácil al lector"&lt;/em&gt; (!).
Ustedes me dirán qué tiene que ver esto con la precisión del lenguaje.&lt;/p&gt;
&lt;p&gt;Precisamente en las ecuaciones se nota mucho el esfuerzo que ha puesto el autor o autora en explicarse con claridad.
Y es que las ecuaciones tienen una flexibilidad enorme a la hora de ser escritas.
Por ejemplo, las ecuaciones contienen variables.
Las variables son como cajas que pueden contener cualquier cosa, de modo que el nombre de la caja es lo de menos: tenemos total libertad para llamarlas &lt;span class="math"&gt;\(x\)&lt;/span&gt; o &lt;span class="math"&gt;\(Alberto\)&lt;/span&gt;.
Esta libertad las convierte en un ejemplo excelente de cuestiones de estilo en comunicación científica.&lt;/p&gt;
&lt;p&gt;Por ejemplo, podemos usar siempre mayúsculas para los estados de un sistema, y reservar las minúsculas para las constantes.
Quién dice mayúsculas y minúsculas dice letras latinas y griegas.
También podemos usar subíndices para representar estados relacionados, o crear una notación más compacta convirtiéndolos en un vector.
Otro interesante ejemplo es el de cómo diferentes notaciones para las derivadas pueden simplificar (o complicar) el aprendizaje de las mismas, como conté &lt;a href="https://fuga.naukas.com/2016/03/10/derivadas-con-primas-o-diferenciales/"&gt;aquí&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;En cuánto a lo de ser críptico a propósito, creo que es un error enorme.
No sólo estás poniéndole la vida más difícil a tus posibles lectores, sino que además &lt;strong&gt;invitas a pensar que tus pensamientos son tan desorganizados y crípticos como tus textos&lt;/strong&gt;.
Vamos, que además quedas como un patán.&lt;/p&gt;
&lt;h2&gt;Historias de pizarras&lt;/h2&gt;
&lt;p&gt;Si puedo elegir, prefiero no quedar como un patán.
Así que cuando escribo mis publicaciones procuro ponerle mucho mimo al tema de la claridad.&lt;/p&gt;
&lt;p&gt;Véase por ejemplo la imagen de abajo.
Ahí muestro los tres tipos de notaciones diferentes que evalué utilizar en uno de &lt;a href="https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1007788"&gt;mis artículos&lt;/a&gt;.
Le presenté esta pizarra a varios compañeros, ajenos a mi investigación y procedentes de disciplinas diferentes, para decidir cuál de ellas les resultaba más clara.
Escribí sobre ello en &lt;a href="https://fuga.naukas.com/2021/03/03/un-doctorado-en-cinco-pizarras/"&gt;Un doctorado en cinco pizarras&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Una pizarra de mi doctorado" src="images/2025-02/pizarra-pablo.jpg"&gt;&lt;/p&gt;
&lt;h3&gt;Pizarras bien&lt;/h3&gt;
&lt;p&gt;El otro día me topé en LinkedIn con algo inusual en esa red: una foto que me gustó de veras.
Era esta (más información &lt;a href="https://www.um.es/web/sala-prensa/-/el-profesor-%C3%B3scar-del-barco-desarrolla-una-nueva-ecuaci%C3%B3n-que-permitir%C3%A1-localizar-con-mayor-precisi%C3%B3n-astros-en-el-universo?utm_source=acortador&amp;amp;utm_medium=referral&amp;amp;utm_campaign=acortador_url&amp;amp;utm_id=ecuacion-oscarbarco"&gt;aquí&lt;/a&gt;):&lt;/p&gt;
&lt;p&gt;&lt;img alt="Una pizarra particularmente clara de un investigador de Murcia" src="images/2025-02/pizarra-bien.jpeg"&gt;
Fuente &lt;a href="https://www.um.es/web/sala-prensa/-/el-profesor-%C3%B3scar-del-barco-desarrolla-una-nueva-ecuaci%C3%B3n-que-permitir%C3%A1-localizar-con-mayor-precisi%C3%B3n-astros-en-el-universo"&gt;aquí&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Me llamó enormemente la atención la claridad de lo escrito en esa pizarra.
No me refiero tan sólo a la ortografía, sino más bien al conjunto:
los renglones rectos y el espacio entre ecuaciones dejan claro el orden de lectura,
el uso de llaves une visualmente conceptos relacionados,
el diagrama define las variables más importantes,
y al estar aislado en un recuadro queda claro que es un material de referencia independiente del orden de lectura.&lt;/p&gt;
&lt;p&gt;El autor ha utilizado esa pizarra para desarrollar y exponer una idea de por sí compleja... sin embarullarla aún más.&lt;/p&gt;
&lt;p&gt;Esa pizarra es reflejo y &lt;strong&gt;prueba fehaciente de la estructuración mental del autor&lt;/strong&gt;.
Una buena carta de presentación para cualquier científico.&lt;/p&gt;
&lt;h3&gt;Pizarras mal&lt;/h3&gt;
&lt;p&gt;Por motivos de trabajo, paso muy a menudo por el campus de ciencias de la universidad de Ámsterdam.
En su exterior lucen con orgullo varias fotografías de residentes ilustres, tamaño mural.
Una de ellas&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt; me llama especialmente la atención.
Es esta:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Una pizarra particularmente caótica de un investigador de prestigio internacional" src="images/2025-02/pizarra-mal.jpg"&gt;
Foto del propio autor.&lt;/p&gt;
&lt;p&gt;Antes de seguir leyendo, te recomiendo que maximices la imagen y prestes atención a la pizarra y trates de adivinar qué es lo que me llama la atención aquí.&lt;/p&gt;
&lt;p&gt;¿Lo has hecho?, pues sigamos.&lt;/p&gt;
&lt;p&gt;No sé qué te habrá parecido, pero a mí esta pizarra me pone los pelos de punta.&lt;/p&gt;
&lt;p&gt;Al contrario que en el ejemplo anterior, esta pizarra evoca todo menos claridad.
Todos los elementos están desconectados entre sí.
Muchos ni siquiera tienen sentido por sí solos.
El creciente embarullado según desplazamos la vista de izquierda a derecha invita a pensar, más que en la progresión de una narrativa, en la progresión de una crisis psicótica.&lt;/p&gt;
&lt;p&gt;Lo sé, lo sé, tan sólo es una foto.
No sería raro que el fotógrafo haya pedido al autor que escribiese cualquier cosa deprisa y corriendo.
Pero es que la pizarra ocupa un lugar central en la historia que quiere contar la fotografía (nótese la tiza flotando entre las manos).
Si la pizarra anterior era prueba de la estructuración mental del autor, esta, en el mejor de los casos, no prueba nada.&lt;/p&gt;
&lt;p&gt;¡Lástima de oportunidad perdida!&lt;/p&gt;
&lt;h2&gt;Coda&lt;/h2&gt;
&lt;p&gt;Si quieres cabrearme, no borres la pizarra al acabar.&lt;/p&gt;
&lt;p&gt;Si quieres cabrearme de veras, enfádate porque te la han borrado.&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;correspondiente a un prestigioso investigador cuyo nombre no mencionaré por no meter el dedo en la llaga.&amp;#160;&lt;a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;script type="text/javascript"&gt;if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) {
    var align = "center",
        indent = "0em",
        linebreak = "false";

    if (false) {
        align = (screen.width &lt; 768) ? "left" : align;
        indent = (screen.width &lt; 768) ? "0em" : indent;
        linebreak = (screen.width &lt; 768) ? 'true' : linebreak;
    }

    var mathjaxscript = document.createElement('script');
    mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#';
    mathjaxscript.type = 'text/javascript';
    mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=TeX-AMS-MML_HTMLorMML';

    var configscript = document.createElement('script');
    configscript.type = 'text/x-mathjax-config';
    configscript[(window.opera ? "innerHTML" : "text")] =
        "MathJax.Hub.Config({" +
        "    config: ['MMLorHTML.js']," +
        "    TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," +
        "    jax: ['input/TeX','input/MathML','output/HTML-CSS']," +
        "    extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," +
        "    displayAlign: '"+ align +"'," +
        "    displayIndent: '"+ indent +"'," +
        "    showMathMenu: true," +
        "    messageStyle: 'normal'," +
        "    tex2jax: { " +
        "        inlineMath: [ ['\\\\(','\\\\)'] ], " +
        "        displayMath: [ ['$$','$$'] ]," +
        "        processEscapes: true," +
        "        preview: 'TeX'," +
        "    }, " +
        "    'HTML-CSS': { " +
        "        availableFonts: ['STIX', 'TeX']," +
        "        preferredFont: 'STIX'," +
        "        styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'inherit ! important'} }," +
        "        linebreaks: { automatic: "+ linebreak +", width: '90% container' }," +
        "    }, " +
        "}); " +
        "if ('default' !== 'default') {" +
            "MathJax.Hub.Register.StartupHook('HTML-CSS Jax Ready',function () {" +
                "var VARIANT = MathJax.OutputJax['HTML-CSS'].FONTDATA.VARIANT;" +
                "VARIANT['normal'].fonts.unshift('MathJax_default');" +
                "VARIANT['bold'].fonts.unshift('MathJax_default-bold');" +
                "VARIANT['italic'].fonts.unshift('MathJax_default-italic');" +
                "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" +
            "});" +
            "MathJax.Hub.Register.StartupHook('SVG Jax Ready',function () {" +
                "var VARIANT = MathJax.OutputJax.SVG.FONTDATA.VARIANT;" +
                "VARIANT['normal'].fonts.unshift('MathJax_default');" +
                "VARIANT['bold'].fonts.unshift('MathJax_default-bold');" +
                "VARIANT['italic'].fonts.unshift('MathJax_default-italic');" +
                "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" +
            "});" +
        "}";

    (document.body || document.getElementsByTagName('head')[0]).appendChild(configscript);
    (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript);
}
&lt;/script&gt;</content><category term="Blog"></category><category term="opinion"></category></entry><entry><title>Demasiados detalles</title><link href="https://pabrod.github.io/detalles.html" rel="alternate"></link><published>2024-12-05T00:00:00+01:00</published><updated>2024-12-05T00:00:00+01:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2024-12-05:/detalles.html</id><summary type="html">&lt;p&gt;Cuando pensar demasiado nos hace pensar peor.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Como suele suceder, mi entrada de hoy comienza con una historia de viejo gruñón desde la primera frase, que es la siguiente:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Hace unos años decidí poner en orden mi biblioteca digital. &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Me propuse clasificar todos mis libros por temáticas y, en un &lt;strong&gt;alarde de cortitud de miras&lt;/strong&gt;, decidí hacerlo al detalle: entre mis etiquetas había cosas como &lt;em&gt;"geometría euclídea"&lt;/em&gt; y &lt;em&gt;"geometría diferencial"&lt;/em&gt;  (sí, dos etiquetas diferentes), &lt;em&gt;"ficción histórica"&lt;/em&gt; y &lt;em&gt;"ficción"&lt;/em&gt; a secas, etcétera. &lt;/p&gt;
&lt;p&gt;En un momento dado, como si de un gólem se tratase, toda esa complejidad se volvió contra su creador. Las etiquetas eran tantas que tenía que pensarme mucho cuál usar. Como resultado, dejé de clasificar mis nuevos libros. El extremo detalle de mis etiquetas volvió inútil mi base de datos.&lt;/p&gt;
&lt;h2&gt;El arte de hacer menos&lt;/h2&gt;
&lt;p&gt;Algunos de nuestros momentos más lúcidos se definen no por lo que hacemos, sino por lo que dejamos de hacer. Hablo de gestos invisibles pero salutíferos, como cerrar un proyecto que a nadie interesa, abstenerse de dar el coñazo en la sesión de preguntas de un congreso, o no retwittear basura. &lt;/p&gt;
&lt;p&gt;Pues bien, un buen día decidí que aquel sistema de etiquetas en el que había puesto tanto pensamiento y tanto esfuerzo era una soberana estupidez, y que lo mejor que podía hacer era cargármelo sin miramientos. Así, las varias etiquetas de geometría, cálculo, álgebra y otras tantas decenas (me da vergüenza recordar cuántas) acabaron convertidas todas ellas en &lt;em&gt;"matemáticas"&lt;/em&gt;. Las novelas cayeron en dos sub-categorías, &lt;em&gt;"ficción"&lt;/em&gt; y &lt;em&gt;"no-ficción"&lt;/em&gt;. Y a correr. Sin más historias. Desde entonces, añadir nuevas entradas no supone apenas esfuerzo, y mi sistema vuelve a ser útil.&lt;/p&gt;
&lt;h2&gt;Taxonomías de la realidad&lt;/h2&gt;
&lt;p&gt;Si algo caracteriza a los tiempos que corren, es su pretensión de ser trepidantes. Basta encender la televisión. Siempre está sucediendo algo sin parangón en la historia de la humanidad. Hasta a los telediarios les han puesto sintonías de peli de acción.&lt;/p&gt;
&lt;p&gt;En esta carrera por ver qué evento es más rompedor, el exceso de detalles también tiene su papel. Resulta que ya no hay pobreza, sino pobreza energética, pobreza habitacional, y un largo etcétera de pobrezas con apellido. Si una riada te impide ir a trabajar tienes derecho a una baja climática, mientras que si el obstáculo es un infarto, la baja será médica. Si eres mujer, corres riesgo de sufrir violencia de género, pero también violencia vicaria y hasta violencia obstétrica. Entenderán que me venga a la cabeza aquel relato de Borges sobre el Atlas a escala 1:1 que se volvía inmediatamente inútil.&lt;/p&gt;
&lt;p&gt;Hay quién sostendrá que lo que no tiene nombre no existe. Pero es que la existencia de estas lacras ya era conocida desde mucho antes. En mi opinión, darles un nombre nuevo, una vez pasado el chispazo inicial de lo (aparentemente) novedoso, no hace sino acentuar la confusión, dificultar el análisis y generar la sensación de que el mundo es más incomprensible que nunca. Y por tanto, más difícil de arreglar.&lt;/p&gt;
&lt;p&gt;Me encantaría estar equivocado. Déjenme un mensaje por aquí si piensan que pueden convencerme.&lt;/p&gt;
&lt;h2&gt;Detalles y académicos&lt;/h2&gt;
&lt;p&gt;Esto de pasarse de frenada intentando clasificar, detallar y evitar ambigüedades es un pecado muy común en mi sector: el de los académicos.&lt;/p&gt;
&lt;p&gt;Las sesiones de &lt;em&gt;brainstorming&lt;/em&gt; pueden acabar siendo una auténtica invitación a la locura a causa de esta fijación. Cuando me dediqué al modelado matemático de problemas biológicos, nunca faltaba en la sala alguien intentando meter más y más detalles al modelo. Vean por ejemplo el siguiente diálogo, un tanto ficcionalizado (aunque mucho menos de lo que se imagina el lector):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;- &lt;em&gt;En esta simulación tenemos 50 especies de peces que son consumidos por 15 especies diferentes de depredadores.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;- &lt;em&gt;¿Y si hay pescadores?, ¿podrías simular una pequeña economía en un país costero?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;- &lt;em&gt;Pero esta es una investigación sobre caos en modelos teóricos predador-presa...&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;- &lt;em&gt;¿Y si además hay piratas?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;- &lt;em&gt;¡Suélteme el brazo!&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;El pasote con los detalles se nota especialmente en la lectura de artículos científicos, con su estilo rayano en lo ilegible. O en las presentaciones que preparan algunos científicos, con más texto que el Ramayana aunque la presentación dure tres minutos. Alcanza su máximo esplendor en los protocolos de gestión de proyectos. Conozco algunos que, de tenerlos en mi biblioteca, me vería obligado a clasificar como "vanguardia literaria". No es raro que el documento comience describiéndose a sí mismo. Incluso una vez vi uno que &lt;strong&gt;comenzaba&lt;/strong&gt; enumerando la larga lista de cosas que el documento &lt;strong&gt;no&lt;/strong&gt; era. Estoy seguro de que muchos de ellos harían las delicias de Tristan Tzara y los surrealistas.&lt;/p&gt;
&lt;h2&gt;Rehacer lo ya hecho&lt;/h2&gt;
&lt;p&gt;Pareja a todo esto va la tendencia a reinventar la rueda. Pensemos por ejemplo en los protocolos de uso de la Inteligencia Artificial que han proliferado como setas. Muchas universidades tienen uno. Lo curioso, es que cada una tiene uno &lt;strong&gt;diferente&lt;/strong&gt;. Es más, me consta que hay hasta comunidades de vecinos (!) en las que alguien se ha tomado la molestia de establecer un protocolo sobre uso de la  IA (y sí, el protocolo de Mayor 23 es diferente del de Mayor 25). ¿Soy el único que alucina con esto?&lt;/p&gt;
&lt;p&gt;Quizás uno de los problemas sea, como decíamos antes, que el trabajo que se decide no hacer es invisible por naturaleza. Y es una pena, porque &lt;strong&gt;nada hay más eficiente que meterle exactamente 0 horas a algo superfluo&lt;/strong&gt; o redundante.&lt;/p&gt;</content><category term="Blog"></category><category term="opinion"></category></entry><entry><title>La escasa épica de mi abandono de Twitter</title><link href="https://pabrod.github.io/abandono-twitter-es.html" rel="alternate"></link><published>2024-11-17T00:00:00+01:00</published><updated>2024-11-17T00:00:00+01:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2024-11-17:/abandono-twitter-es.html</id><summary type="html">&lt;p&gt;He abandonado Twitter, aunque sin cambiar el mundo.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Hace tiempo que &lt;a href="http://twitter.com/DonMostrenco"&gt;mi cuenta de Twitter&lt;/a&gt; apenas tenía actividad.
Empecé eliminando el acceso directo en mi teléfono móvil.
Después, desinstalando la app.
Finalmente, hoy he solicitado el archivo de mis datos.&lt;/p&gt;
&lt;p&gt;Más o menos desde entonces, empecé a estar más activo en mis cuentas de &lt;a href="https://bsky.app/profile/pabrod.bsky.social"&gt;Bluesky&lt;/a&gt; y &lt;a href="https://paquita.masto.host/@DonMostrenco"&gt;Mastodon&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Mi única queja, hasta el momento, era que en ambas redes había poca actividad.
Sin embargo, muy recientemente, Bluesky ha recibido una avalancha de usuarios.
Siguiendo la estela the &lt;a href="https://www.theguardian.com/media/2024/nov/13/the-guardian-no-longer-post-on-x-twitter-elon-musk"&gt;The Guardian&lt;/a&gt;, se ha producido un éxodo masivo de X, antes Twitter.&lt;/p&gt;
&lt;p&gt;Durante este fin de semana, me han llegado más de 1000 seguidores nuevos, y el ambiente en Bluesky es cada vez más agradable.&lt;/p&gt;
&lt;p&gt;Pero volvamos al principio.&lt;/p&gt;
&lt;h2&gt;¿Por qué abandoné Twitter?&lt;/h2&gt;
&lt;p&gt;Como usuario de redes sociales, mis aspiraciones son más bien sencillas.
De mis textos, no espero más que disfrutar escribiéndolos, que no es poco.
Que haya personas que los encuentren interesantes, por el motivo que sea, es una sorpresa muy bienvenida.&lt;/p&gt;
&lt;p&gt;Como carambola, a algunas personas resulta que les gustan mis textos.
Algunas incluso se han convertido en amigas mías.
Que algunos de mis textos me hayan abierto puertas profesionales me parece simplemente increíble.&lt;/p&gt;
&lt;p&gt;En resumen, escribir en redes sociales es una parte significativa de mi vida social.El Twitter de los últimos años se había convertido en un lugar tóxico, sí, pero ante todo &lt;strong&gt;inútil&lt;/strong&gt;.
Sus oscuros algoritmos me estaban sirviendo bazofia no solicitada, y el alcance de mis tuits no llegaba.
Ya no me servía para conectar con gente interesante.&lt;/p&gt;
&lt;p&gt;Twitter me aburría.
Y en mi personal e intransferible escala de valores, eso es peor que una bofetada.
Así que, adiós.&lt;/p&gt;
&lt;h2&gt;Una historia poco épica&lt;/h2&gt;
&lt;p&gt;Habrán ustedes notado, queridos lectores, que mi abandono de Twitter no obedece a elevadas disquisiciones filosófico-políticas.
Ni siquiera he utilizado la palabra fascismo.
Quizás me equivoque, pero sospecho que la ausencia de mi cuenta de Twitter en &lt;em&gt;"la batalla cultural"&lt;/em&gt; no es el principal obstáculo a la paz mundial.
Es posible que, ahora que no estoy activo allí, el usuario &lt;em&gt;@waffenSS88&lt;/em&gt; haya perdido su última oportunidad de leerme, ver la luz, y descubrir que apalear extranjeros es éticamente reprobable.
Pero correré el riesgo.&lt;/p&gt;
&lt;p&gt;Además, mis tuits nunca pretendieron proponer sistemas de pensamiento completos y sin fisuras en 140 caracteres.
Yo era más de chascarrillos y de enlaces a curiosidades.
Nunca hice temblar a un gobierno (probablemente usted tampoco).
Para cosas medianamente serias prefiero usar este blog.
Raro que es uno.
Quizás nunca entendí esa red.&lt;/p&gt;
&lt;p&gt;Lo repito, me he ido porque me aburría.
Y por motivos prácticos aún más prosaicos, como que las publicaciones sean de acceso libre o que se puedan seguir por RSS.&lt;/p&gt;
&lt;h2&gt;Mastodon, mi querido Mastodon&lt;/h2&gt;
&lt;p&gt;A muchos de nosotros nos hubiese gustado que el éxodo hubiera tenido a Mastodon como destino.
Sigo pensando que esa red tiene un potencial brutal.
Por lo pronto ya me ha proporcionado &lt;a href="https://pabrod.github.io/documentos-rne-es.html"&gt;alguna alegría&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Pero nos hemos tenido que conformar con Bluesky.
El pueblo ha hablado.
Y francamente, no me parece mala opción del todo.&lt;/p&gt;
&lt;p&gt;Que sí, que ya sé que Bluesky no es una red cooperativa.
Que detrás hay un negocio cuyos inversores no son precisamente unos adorables cachorritos de &lt;em&gt;Golden retriever&lt;/em&gt;.
Pero tiene buen rollo, RSS y, al fin, una masa crítica de usuarios.
Vaya, que &lt;strong&gt;funciona&lt;/strong&gt;.
Disfrutémoslo mientras dure.
Y no olvidemos lo fácil que fue cambiarse... por si vuelve a tocar hacerlo.&lt;/p&gt;
&lt;p&gt;Y ante todo, no caigamos en volvernos unos cenizos.
Lo que es a mí, me veréis en ambas redes, &lt;a href="https://bsky.app/profile/pabrod.bsky.social"&gt;aquí&lt;/a&gt; y &lt;a href="https://paquita.masto.host/@DonMostrenco"&gt;aquí&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Lo siento, tenía que hacerlo" src="images/2024-11/bluesky.jpg"&gt;
&lt;em&gt;Lo siento, tenía que hacerlo&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Nos leemos.
En unas redes cada vez más limpias.
Espero.&lt;/p&gt;</content><category term="Blog"></category><category term="opinion"></category></entry><entry><title>Documentos RNE, buscable otra vez</title><link href="https://pabrod.github.io/documentos-rne-es.html" rel="alternate"></link><published>2024-10-30T00:00:00+01:00</published><updated>2024-10-30T00:00:00+01:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2024-10-30:/documentos-rne-es.html</id><summary type="html">&lt;p&gt;La nueva interfaz de RTVE que hizo llorar al que esto escribe, y una solución improvisada.&lt;/p&gt;</summary><content type="html">&lt;h2&gt;TL;DR&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/PabRod/tabla_documentos_rne"&gt;Aquí&lt;/a&gt; tienes la lista de episodios.&lt;/p&gt;
&lt;p&gt;Pero sigue leyendo si quieres saber más.&lt;/p&gt;
&lt;h2&gt;Obsesiones mías...&lt;/h2&gt;
&lt;p&gt;Documentos RNE (Radio Nacional de España) es uno de mis programas de radio favoritos.
Cada episodio se centra en un asunto, en el que profundiza durante cerca de una hora.&lt;/p&gt;
&lt;p&gt;Hasta hace poco, el archivo de RNE tenía una interfaz minimalista y eficaz que permitía hacer búsquedas de manera sencilla.
Desde hace un par de años, ya no es el caso.
Siguiendo la moda de la &lt;a href="https://en.wikipedia.org/wiki/Enshittification"&gt;mierdificación&lt;/a&gt; de Internet, la nueva interfaz obliga literalmente a pulsar "atrás" hasta llegar al año deseado.
Documentos RNE comenzó a emitirse en 2001, a razón de aproximadamente un episodio por semana, de modo que existen un montón de ellos disponibles en los extensísimos archivos de RNE.
Esto supone clicar "atrás" muchas, muchas veces.&lt;/p&gt;
&lt;p&gt;Los audios, además, se guardan en formato &lt;code&gt;.mp3&lt;/code&gt; con un nombre numérico único que nada tiene que ver con el título del programa ni del episodio, y que parece ser aleatorio (con la única restricción de que no se repitan números).&lt;/p&gt;
&lt;p&gt;En resumen, que RNE tiene un archivo enorme y de una calidad inmensa... sin manera realmente decente de buscar y listar resultados.&lt;/p&gt;
&lt;p&gt;No les sorprenderá saber que el que esto escribe se puso en contacto con ellos para hacerles ver este problema, pero no logró respuesta satisfactoria.
Y no diré que no lo entiendo, tienen cosas mejores que hacer, como producir el programa.&lt;/p&gt;
&lt;h2&gt;Un anónimo benefactor&lt;/h2&gt;
&lt;p&gt;El caso es que, de pura casualidad, me he topado con alguien que se tomó la molestia de pulsar "atrás" decenas de veces, guardar artesanalmente los resultados, y compartirlos.
Casualidad, o no, este encuentro ha sucedido &lt;a href="https://mapstodon.space/@jorgesanz/113362099721007397"&gt;en Mastodon&lt;/a&gt;, una red en la que parece que 2010 nunca ha acabado.&lt;/p&gt;
&lt;p&gt;Su archivo, fruto de un trabajo heroico, no tiene un aspecto demasiado legible.
Dejo aquí una muestra del aspecto que tenía:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;ffmpeg&lt;span class="w"&gt; &lt;/span&gt;-i&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;31872&lt;/span&gt;.mp3&lt;span class="w"&gt; &lt;/span&gt;-i&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;31872&lt;/span&gt;.jpg&lt;span class="w"&gt; &lt;/span&gt;-c&lt;span class="w"&gt; &lt;/span&gt;copy&lt;span class="w"&gt; &lt;/span&gt;-map&lt;span class="w"&gt; &lt;/span&gt;0a&lt;span class="w"&gt; &lt;/span&gt;-map&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-metadata&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;title&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Mirada joven a la Generación del 27&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-metadata&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;album&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Documentos RNE&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-metadata&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;date&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;2008&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-metadata&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;genre&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Documentary&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-metadata&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;language&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;esp&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;2008-04-13 Mirada joven a la Generación del 27.mp3&amp;#39;&lt;/span&gt;
ffmpeg&lt;span class="w"&gt; &lt;/span&gt;-i&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1345146&lt;/span&gt;.mp3&lt;span class="w"&gt; &lt;/span&gt;-i&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1345146&lt;/span&gt;.jpg&lt;span class="w"&gt; &lt;/span&gt;-c&lt;span class="w"&gt; &lt;/span&gt;copy&lt;span class="w"&gt; &lt;/span&gt;-map&lt;span class="w"&gt; &lt;/span&gt;0a&lt;span class="w"&gt; &lt;/span&gt;-map&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-metadata&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;title&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;80 años de Radio Exterior&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-metadata&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;album&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Documentos RNE&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-metadata&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;date&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;2022&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-metadata&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;genre&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Documentary&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-metadata&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;language&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;esp&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;2022-03-17 80 años de Radio Exterior.mp3&amp;#39;&lt;/span&gt;
...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Y así hasta casi 800 líneas.&lt;/p&gt;
&lt;h2&gt;Las buenas acciones merecen una recompensa&lt;/h2&gt;
&lt;p&gt;El caso es que me ha dado tanta alegría poder recuperar mi costumbre (de abuelete, lo sé), de escucharme un episodio durante mis paseos, o en el tren, o en el gimnasio, que me he propuesto republicar esto de una manera más práctica.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/PabRod/tabla_documentos_rne"&gt;Aquí&lt;/a&gt; pueden acceder a la lista completa&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt;, incluyendo el código que he utilizado para limpiarla.
Ojalá lo disfruten tanto como yo.&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;a falta de los 12 audios listados &lt;a href="https://github.com/PabRod/tabla_documentos_rne/blob/main/data/fallos.txt"&gt;aquí&lt;/a&gt;, que ya meteré a mano cuando tenga un rato. 12 de 784, añado.&amp;#160;&lt;a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="Blog"></category><category term="hacks"></category></entry><entry><title>Talk announcement: A peek under the hood of automatic differentiation</title><link href="https://pabrod.github.io/seminar-rse-autodiff.html" rel="alternate"></link><published>2024-10-28T00:00:00+01:00</published><updated>2024-10-28T00:00:00+01:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2024-10-28:/seminar-rse-autodiff.html</id><summary type="html">&lt;p&gt;Automatic differentiation is one of those things I wish someone had told me about much earlier. On Nov 5th 2024 I'll be sharing my enthousiasm about it at the Vrije Universiteit Amsterdam.&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a href="https://blog.esciencecenter.nl/automatic-differentiation-from-scratch-23d50c699555"&gt;Automatic differentiation&lt;/a&gt; is one of those things I wish someone had told me about much earlier. On Nov 5th 2024 I'll be sharing my enthousiasm about it at the Vrije Universiteit Amsterdam.&lt;/p&gt;
&lt;p&gt;Want &lt;a href="(https://www.eventbrite.nl/e/nl-rse-meetup-differentiable-simulation-in-practice-tickets-1037663047107)"&gt;to join&lt;/a&gt;?&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Title&lt;/h2&gt;
&lt;p&gt;A peek under the hood of automatic differentiation&lt;/p&gt;
&lt;h2&gt;Abstract&lt;/h2&gt;
&lt;p&gt;There are many packages implementing automatic differentiation available for free. This is good news because, as an engineer, it saves me time and keeps me away from reinventing the wheel. But as a researcher, I'm curiosity driven. I want to know, at least partially, what the packages I use do. I want to share some basic pen-an-paper concepts that, I hope, will satisfy your curiosity, and even enable you to write a basic automatic differentiation engine from scratch.&lt;/p&gt;
&lt;h2&gt;Spacetime coordinates&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Vrije Universiteit Amsterdam, HG-09A16, &lt;a href="https://assets-us-01.kc-usercontent.com/d8b6f1f5-816c-005b-1dc1-e363dd7ce9a5/41e9b682-215c-424c-8df8-e0d07d4dc622/2023-12%20Campus%20plattegrond%20ENG.jpg"&gt;Main building&lt;/a&gt;, Floor 9, Wing A&lt;/li&gt;
&lt;li&gt;Tue, 5 Nov 2024 13:00 - 17:00 CET&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.eventbrite.nl/e/nl-rse-meetup-differentiable-simulation-in-practice-tickets-1037663047107"&gt;Registration link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nl-rse.org/events/2024-11-05-meetup"&gt;Event link&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Materials&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Introductory&lt;ul&gt;
&lt;li&gt;&lt;a href="https://pabrod.github.io/autodiff-slides/#/"&gt;My talk's slides&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.esciencecenter.nl/automatic-differentiation-from-scratch-23d50c699555"&gt;Automatic differentiation from scratch&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Runnable examples&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/PabRod/DualDiff.jl"&gt;In Julia&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/PabRod/dualdiff"&gt;In Python&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Advanced&lt;ul&gt;
&lt;li&gt;&lt;a href="https://book.sciml.ai/"&gt;Chris Rackauckas' book on SciML&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Miscelaneous&lt;ul&gt;
&lt;li&gt;&lt;a href="https://blog.esciencecenter.nl/differentiation-without-subtraction-e21b4975f1cf"&gt;Differentiation without subtraction&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><category term="Blog"></category><category term="announcement"></category></entry><entry><title>Cumbres de la comunicación ineficaz</title><link href="https://pabrod.github.io/cumbres-comunicacion-es.html" rel="alternate"></link><published>2024-10-23T00:00:00+02:00</published><updated>2024-10-23T00:00:00+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2024-10-23:/cumbres-comunicacion-es.html</id><summary type="html">&lt;p&gt;La comunicación de escasa calidad es uno de los grandes problemas de cualquier institución. Hace perder tiempo, energía, dinero, ... y de propina puede resultar desmotivadora. Las instituciones científicas, que son las que mejor conozco, no se libran. Aquí dejo una lista con algunos de los pecados más frecuentes.&lt;/p&gt;</summary><content type="html">&lt;p&gt;La comunicación de escasa calidad es uno de los grandes problemas de cualquier institución.
Hace perder tiempo, energía, dinero, ... y de propina puede resultar desmotivadora.
Las instituciones científicas, que son las que mejor conozco, no se libran.&lt;/p&gt;
&lt;p&gt;Aquí dejo una lista con algunas de las situaciones más absurdas, a la par que habituales, con las que me he encontrado.&lt;/p&gt;
&lt;h2&gt;Emails que degeneran en una sala de chat&lt;/h2&gt;
&lt;p&gt;¿Has visto ese campo en tu cliente de correo electrónico en el que pone &lt;em&gt;asunto&lt;/em&gt;?
Tengo una idea loca: ¿y si lo usamos para indicar el asunto a tratar, y nos ceñimos a él?&lt;/p&gt;
&lt;p&gt;Tengo además una sugerencia de mente cósmica: si tienes tres asuntos a tratar, te invito a enviar... ¡tres emails diferentes!
Sí, cada uno con su asunto.
Para que todos los destinatarios podamos procesarlos eficaz y cómodamente.
A lo mejor resulta que el asunto A y el asunto C te los puedo resolver hoy mismo, pero el B me va a llevar una semana.
No me hagas tener tu email en "no leído" todo ese tiempo.&lt;/p&gt;
&lt;p&gt;¿Te hace sentir incómodo?
No creas que no entiendo por qué.
Sería muy raro, por ejemplo, que hicieramos lo mismo en una conversación de pasillo (te cuento una cosa, me voy, vuelvo, te cuento otra, ... repetir hasta terminar).
Pero es que &lt;strong&gt;un email no es una conversación de pasillo&lt;/strong&gt;.
Para empezar, no vas a obtener una respuesta tan inmediata como si estuviésemos hablando.
Además, va a llegar a una bandeja de entrada que no sabes cómo gestiono.
Por último, seguramente lo lea a solas, puede incluso que te lea desde mi cuarto de baño.
No, definitivamente no se parece a una conversación de pasillo.&lt;/p&gt;
&lt;p&gt;De propina, dejo otro par de consejos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Haz que el formato se adapte al mensaje. Utiliza párrafos, negrita para los puntos de acción, enlaces a los contenidos que menciones, ...&lt;/li&gt;
&lt;li&gt;Si me vas a encargar algo, procura atomizarlo en tareas autónomas. Si añades cosas como "esperar a que alguien apruebe no se qué" como parte de &lt;strong&gt;mi&lt;/strong&gt; tarea, estás consumiendo recursos y manteniéndome a la expectativa sin necesidad. Parece una gilipollez, pero cada tarea pendiente es un lastre para la concentración.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Reuniones que merecían ser un email&lt;/h2&gt;
&lt;p&gt;Uno de los grandes espectáculos de la naturaleza a los que he asistido fue el vuelo de 20 investigadores.
Despegamos simultáneamente, desde varios países europeos, con rumbo a Londres.
Nos habían convocado para una reunión de urgencia.
Ignorábamos el contenido, pero sonaba importante.
Dejamos todo lo que estábamos haciendo, reservamos tres días en nuestra agenda, organizamos viajes y hoteles.&lt;/p&gt;
&lt;p&gt;Nuestra sorpresa fue mayúscula cuando descubrimos que el propósito de la reunión era... ¡informarnos de otra reunión que iba a tener lugar un par de meses más tarde!&lt;/p&gt;
&lt;p&gt;¿&lt;strong&gt;De verdad hacía falta&lt;/strong&gt; semejante movilización internacional para darnos una notificación? 
Obviamente no&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;Este tipo de disparates suceden a diario, y suponen un desperdicio enorme de recursos (monetarios, energéticos, mentales, ...).
Para evitarlos, propongo una regla:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Si tu reunión no tiene agenda ni propósito, lo más probable es que no deba tener lugar.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Y un corolario para promoverla y hacer del mundo un lugar mejor:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Si te invitan a una reunión sin agenda, no vayas.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Reuniones de actualización&lt;/h2&gt;
&lt;p&gt;Una posible excepción son las reuniones de "actualización".
Me refiero a esas en las que los miembros de una institución ponen al día a sus compañeros de aquellos asuntos &lt;strong&gt;que sean de interés común&lt;/strong&gt;.
Son un formato delicado, y tienden a degenerar en un tedioso y larguísimo festival de autojustificación en el que se mencionan hasta los más ínfimos detalles... no vaya nadie a pensarse que hemos estado ociosos.&lt;/p&gt;
&lt;p&gt;Las mejores reuniones de este estilo a las que he asistido tenían las siguientes dos reglas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No se puede hablar más de 30 segundos&lt;ul&gt;
&lt;li&gt;Y no es una recomendación, sino una regla. Cuando salta la alarma del cronómetro, se acabó, aunque estés a punto de enunciar la solución a uno de los problemas del milenio&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Se puede (y debe) saltar turno si uno juzga no tener nada que contar que sea relevante para el grupo&lt;ul&gt;
&lt;li&gt;Esto es así independientemente de cuántos hayan saltado su turno antes que tú. Así se acabe la reunión entera al minuto de empezar.&lt;/li&gt;
&lt;li&gt;Es más, una reunión de un minuto debe considerarse un éxito&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sobre los efectos salutíferos de limitar despiadadamente el tiempo de intervención, hablé largo y tendido &lt;a href="https://blog.esciencecenter.nl/a-single-rule-for-better-talks-816bb3d422ae"&gt;aquí&lt;/a&gt; (en inglés).&lt;/p&gt;
&lt;h2&gt;Charlas de pesadilla&lt;/h2&gt;
&lt;p&gt;Cuando viajé a mis primeros congresos científicos, salí asustado.
Yo, que me tenía por un buen estudiante, no me estaba enterando de nada.
Me sentaba en primera fila, pero no importaba cuánta atención pusiera.
Nada, &lt;em&gt;niente&lt;/em&gt;, &lt;em&gt;niks&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Todo cambió cuando empecé a sentarme en la parte de atrás.
Observé que la inmensa mayoría de los asistentes no estaban haciendo ni puto caso (!).
Según empezaba la charla, abrían sus portátiles, y desde mi privilegiada atalaya podía ver lo que estaban haciendo.
Alguno había que estaba tomando notas, pero eran los menos.
La mayoría, en cambio, estaban trabajando en sus propias publicaciones.
E incluso una cantidad nada despreciable estaba directamente en Facebook o leyendo la prensa digital.&lt;/p&gt;
&lt;p&gt;Al acabar, me acerqué a alguno de los que estuvo en Facebook la mayor parte del congreso.
Inicié la siguiente conversación, que se repitió a lo largo de estas líneas:&lt;/p&gt;
&lt;p&gt;- &lt;em&gt;¿Qué te ha parecido?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;- &lt;em&gt;Muy bien, he aprendido un montón.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;- &lt;em&gt;¿Cuál ha sido tu charla favorita?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;- &lt;em&gt;¡Todas!, no podría elegir, ¡todas han sido excelentes!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;No les culpo.
Es más, acabé rindiéndome y haciendo más o menos lo mismo.
La mayoría de las charlas eran de un tedioso que rayaba en la agresión.
Recuerdo incluso una en la que, tras veinte minutos, ni mis acompañantes ni yo mismo llegamos a entender de qué trataba.
Si tenías suerte, alguna de las mejores charlas se podía desentrañar con &lt;strong&gt;mucho&lt;/strong&gt; trabajo posterior, pero tardé años en dar con una sola que fuese posible digerir en el acto &lt;sup id="fnref:2"&gt;&lt;a class="footnote-ref" href="#fn:2"&gt;2&lt;/a&gt;&lt;/sup&gt;.
En demasiadas ocasiones, &lt;strong&gt;los congresos tienen menos de intercambio que de ritual social&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;¿Crees que exagero?
Busca fotos de una sesión durante cualquier congreso científico, y fíjate en los caretos de los asistentes.&lt;/p&gt;
&lt;p&gt;El error más común de los ponentes académicos es el de intentar contar demasiado, todo a ser posible, independientemente de su importancia relativa o de la audiencia a la que la charla va dirigida.
Esto tiene un nombre: integrismo.
Y si tiene connotaciones negativas es por algo.&lt;/p&gt;
&lt;p&gt;Quizás sea mi subconsciente pidiendo venganza por tantas horas de dolor intelectual, pero lo de las malas charlas se ha convertido en una de mis obsesiones personales.
Tanto, que he dado una charla, en dos entregas, al respecto: &lt;a href="https://www.eitb.eus/es/divulgacion/videos/detalle/9307656/video-pablo-rodriguez-las-charlas-de-mis-pesadillas-naukas-bilbao-2023/"&gt;las charlas de mis pesadillas&lt;/a&gt; y &lt;a href="https://youtu.be/tzxlw14Z8wU?si=eHbOFkh54kHa0eHV"&gt;un payaso en un congreso&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Despedida y cierre&lt;/h2&gt;
&lt;p&gt;¿Y ustedes?
Seguro que tienen más ejemplos.
Déjenlos en los comentarios, o en &lt;a href="https://paquita.masto.host/@DonMostrenco"&gt;Mastodon&lt;/a&gt;, o donde les plazca.&lt;/p&gt;
&lt;p&gt;Sé que también necesitan desfogarse 😛&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;dejo aquí la demostración empírica para mis lectores más rigoristas: algunos de los invitados no pudieron obtener sus visas a tiempo para asistir y sin embargo se enteraron igual que el resto.&amp;#160;&lt;a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;con la honrosa excepción de las  excelentes charlas a las que asisto cada año en Naukas, pero es que ese es un evento de divulgación y comunicación científica. ¡Tendría delito lo contrario! Dicho esto... no es raro que cada año se cuelen un ladrillo o dos.&amp;#160;&lt;a class="footnote-backref" href="#fnref:2" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="Blog"></category><category term="scicomm"></category></entry><entry><title>15 años de divulgación</title><link href="https://pabrod.github.io/quince-anos-es.html" rel="alternate"></link><published>2024-10-18T00:00:00+02:00</published><updated>2024-10-18T00:00:00+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2024-10-18:/quince-anos-es.html</id><summary type="html"></summary><content type="html">&lt;p&gt;Hace exactamente quince años, el 18 de Octubre de 2011, publiqué mi primer artículo de divulgación en &lt;a href="https://naukas.com"&gt;Naukas&lt;/a&gt;.
Se trataba de un manual para observar satélites artificiales a simple vista.
Si te interesa, puedes verlo &lt;a href="https://naukas.com/2011/10/18/observando-satelites-artificiales/"&gt;aquí&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Sería el primero de &lt;a href="https://pabrod.github.io/pages/sci-comm-es.html"&gt;una lista&lt;/a&gt; que ya rebasa los 130.&lt;/p&gt;
&lt;p&gt;La divulgación científica ha sido el hobby más duradero que he tenido nunca.
Con el paso de los años me cansé de los malabares, de la radioafición, de los videojuegos, ..., pero sigo escribiendo y dando al menos una charla al año.&lt;/p&gt;
&lt;p&gt;Es fácil mantener la motivación en algo que me ha proporcionado enormes satisfacciones en cantidades industriales.
A la divulgación, y a las personas extraordinarias que he ido conociendo por el camino, les debo mucho.
Desde mi decisión de dedicarme a la carrera científica en el extranjero hasta, quizás más importante, una innumerable cantidad de buenos ratos.
Gracias a todos y todas, sabéis quienes sois.&lt;/p&gt;
&lt;p&gt;Que siga así.
¡Por otros quince años!&lt;/p&gt;</content><category term="Blog"></category><category term="scicomm"></category></entry><entry><title>Mis manías sobre comunicación científica</title><link href="https://pabrod.github.io/manias-es.html" rel="alternate"></link><published>2024-10-11T00:00:00+02:00</published><updated>2024-10-11T00:00:00+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2024-10-11:/manias-es.html</id><summary type="html">&lt;p&gt;Opiniones apasionadas tras más de 10 años dando charlas de divulgación.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Mi primera charla de divulgación científica la di ante mi colegio entero, en el curso 1996-1997.
Trataba sobre monos.
No sé de dónde saqué el valor, pero no me quedé tranquilo hasta que los estudiantes de último año me felicitaron por haberles &lt;em&gt;"hecho perder clase"&lt;/em&gt; (en lugar de crujirme a collejas, posibilidad también realista).&lt;/p&gt;
&lt;p&gt;En la universidad no sólo di alguna más, sino que empecé a desarrollar un gusto propio, una opinión sobre qué tipo de charlas me gustaban.
Curiosamente, muchas de las mejores puestas en escena que he visto jamás fueron clases de pizarra y tiza.&lt;/p&gt;
&lt;p&gt;En 2011 empecé a colaborar con &lt;a href="https://naukas.com"&gt;Naukas&lt;/a&gt;, y desde entonces no ha habido año que no haya dado al menos una charla grande y asistido a muchas charlas brillantes.&lt;/p&gt;
&lt;p&gt;Durante muchos años fui muy beligerante contra a aquella afirmación sobre que tal o cuál profesor &lt;em&gt;"sabe mucho, pero no sabe comunicarlo"&lt;/em&gt;.
Algo parecido me pasaba con el estereotipo de que &lt;em&gt;"los de ciencias duras son malos comunicadores"&lt;/em&gt;.
Cuando comencé mi doctorado en matemáticas en 2015, tuve que tragarme mis palabras.
En ninguna época de mi vida he asistido a tal densidad charlas desastrosas.
De estas aprendí todo lo que uno no debe hacer.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Alt" src="/images/2024-10/old-man.png"&gt;&lt;/p&gt;
&lt;p&gt;El caso es que en unos días cumplo 40 años, edad propicia para empezar a hacer activismo de las manías propias (en corto: gruñir y quejarse).
Y qué mejor lugar para publicarlas que mi blog personal minimalista y sin apenas seguidores.
Al fin y al cabo, el formato es parte del mensaje.&lt;/p&gt;
&lt;p&gt;Como uno nació en 1984, de modo que no es del todo &lt;em&gt;boomer&lt;/em&gt; ni del todo &lt;em&gt;millenial&lt;/em&gt;, mis manías sobre comunicación científica han quedado registradas en vídeos de Youtube.
Aquí se las dejo, por si les gustasen.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Las charlas de mis pesadillas&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=oYG-uMwy9HQ"&gt;&lt;img alt="alt text" src="https://img.youtube.com/vi/oYG-uMwy9HQ/0.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Un payaso en un congreso&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=tzxlw14Z8wU"&gt;&lt;img alt="alt text" src="https://img.youtube.com/vi/tzxlw14Z8wU/0.jpg"&gt;&lt;/a&gt;&lt;/p&gt;</content><category term="Blog"></category><category term="teaching"></category><category term="scicomm"></category></entry><entry><title>Queda inaugurado este jardín digital</title><link href="https://pabrod.github.io/digital-garden-es.html" rel="alternate"></link><published>2024-10-08T00:00:00+02:00</published><updated>2024-10-08T00:00:00+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2024-10-08:/digital-garden-es.html</id><summary type="html">&lt;p&gt;Si queréis, nos vemos por aquí.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Me apetece escribir sin demasiado follón.
Ya tengo bastantes menús, lucecitas y monsergas en mi trabajo.&lt;/p&gt;
&lt;p&gt;También me apetece tener mis contenidos a mano.
Guardados en archivos de texto plano que pueda editar fácilmente, sin conexión incluso.
Y que pueda publicar sin gastar 50 megas de datos como cada vez que abro el Outlook.&lt;/p&gt;
&lt;p&gt;Este minimalismo me va a venir de perlas en mis numerosos viajes en tren.&lt;/p&gt;
&lt;p&gt;Por otra parte, quiero ser dueño de mis viejos y acartonados archivos markdown.
Será que me estoy haciendo viejo, o quizá que el riesgo de que un &lt;strong&gt;billonario pasado de ketamina&lt;/strong&gt; compre Wordpress y me borre 16 años de artículos (véase &lt;a href="https://empollonintegrista.wordpress.com"&gt;aquí&lt;/a&gt; o &lt;a href="https://fuga.naukas.com"&gt;aquí&lt;/a&gt;) es más real que nunca.&lt;/p&gt;
&lt;p&gt;Seguiré escribiendo, como suelo, en diferentes medios, pero mi idea es centralizar todo aquí.&lt;/p&gt;
&lt;p&gt;Si me sigues por RSS (cosa que puedes hacer &lt;a href="pages/feeds-list.html"&gt;aquí&lt;/a&gt;), es posible que el feed te dé algún falso positivo estos días.
Te ruego paciencia.
Por cierto, te agradezco un silbidito si lo haces, que no tengo la más remota idea de si me lee &lt;strong&gt;alguien&lt;/strong&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;¡Blogueemos como si fuera 2008!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;En los próximos días contaré por qué he elegido Pelican y cómo lo he configurado.
¡Más que nada para que no se me olvide!
Y si resulta que le interesa a alguien más... pues genial.&lt;/p&gt;
&lt;p&gt;Recuperemos el espíritu de la edad dorada de Internet.
¡Blogueemos como si fuera 2008!, aunque no nos lea nadie más que las inteligencias artificiales.&lt;/p&gt;</content><category term="Blog"></category><category term="about"></category></entry><entry><title>Notas de traducción del Canon van Nederland</title><link href="https://pabrod.github.io/vertaling-canon-es.html" rel="alternate"></link><published>2022-08-08T00:00:00+02:00</published><updated>2022-08-08T00:00:00+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2022-08-08:/vertaling-canon-es.html</id><summary type="html">&lt;p&gt;Notas a la traducción del canon neerlandés&lt;/p&gt;</summary><content type="html">&lt;p&gt;Acaban de publicar &lt;a href="https://www.canonvannederland.nl/es/"&gt;mi traducción al castellano del &lt;em&gt;Canon van Nederland&lt;/em&gt;&lt;/a&gt;.
Se trata del libro de historia de los Países Bajos usado en la mayoría de escuelas, cursos de idiomas y exámenes de ciudadanía.&lt;/p&gt;
&lt;p&gt;La tarea de traducir el Canon me la autoimpuse por varios motivos.
Tuvo siempre una componente práctica: mejorar mi nivel de neerlandés.
Pero la principal motivación ha sido &lt;strong&gt;puramente emocional&lt;/strong&gt;: soy un emigrante desde hace 7 años, y considero de vital importancia conocer la historia, la cultura y el lenguaje de la tierra en la que vivo.
Por último, pero no menos importante, mis traducciones tal vez ayuden a otros emigrantes procedentes de la hispanosfera a conocer un poco mejor este pequeño pero hermoso país.&lt;/p&gt;
&lt;p&gt;Dicho esto, es quizá buena idea añadir algunas notas técnicas:&lt;/p&gt;
&lt;h2&gt;Notas de traducción&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;No soy un traductor profesional. Si una frase resume mi traducción, es la siguiente: &lt;em&gt;"lo he hecho lo mejor que he podido"&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Es posible que mi traducción esté sesgada, como yo lo estoy, hacia el español europeo. Pido disculpas a mis lectores americanos.&lt;/li&gt;
&lt;li&gt;He intentado mantener la forma más habitual de los nombres de figuras históricas, títulos de obras y topónimos en español. Así &lt;em&gt;Karel de Grote&lt;/em&gt; es Carlomagno, y no Carlos el Grande. Fue El Bosco quien pintó El Jardín de las Delicias. Ámsterdam lleva tilde, Róterdam también (y pierde una t), y &lt;em&gt;'s-Hertogenbosch&lt;/em&gt; se convierte, para alivio de nuestras cuerdas vocales, en Bolduque.&lt;/li&gt;
&lt;li&gt;He preferido el gentilicio genérico "neerlandés" sobre el de "holandés". La razón es que este último, si bien no es incorrecto para referirse a la totalidad de los Países Bajos, puede dar lugar a confusión cuando se habla de las provincias de Holanda Meridional y Septentrional. Por este mismo motivo he preferido usar "Países Bajos" y no "Holanda". Ni confirmo ni desmiento que el hecho de que yo viva en Brabante Septentrional y, por tanto, fuera de las provincias holandesas, haya tenido que ver en mi decisión.&lt;/li&gt;
&lt;li&gt;El mayor desafío de esta traducción ha sido la enorme disparidad entre las síntaxis neerlandesa y la castellana. He intentado, en lo posible, mantener la estructura original siempre y cuando no sonase totalmente antinatural en castellano. Muchas frases han requerido una restructuración casi completa, lo que a menudo obliga a una reinterpretación considerable. Pido disculpas si en me he pasado de listo en algún caso.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por último, cualquier sugerencia es bienvenida.
Háganmelas llegar contactándome directamente a pablo.rodriguez.sanchez@gmail.com.&lt;/p&gt;
&lt;p&gt;Si están ustedes familiarizados con GitHub, les gustará saber que pueden contribuir directamente a través &lt;a href="https://github.com/PabRod/vertaling-canon"&gt;del repositorio&lt;/a&gt;.&lt;/p&gt;</content><category term="Blog"></category><category term="languages"></category><category term="Spanish"></category><category term="Dutch"></category></entry><entry><title>Vertaling notities van de Canon van Nederland</title><link href="https://pabrod.github.io/vertaling-canon-nl.html" rel="alternate"></link><published>2022-08-08T00:00:00+02:00</published><updated>2022-08-08T00:00:00+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2022-08-08:/vertaling-canon-nl.html</id><summary type="html">&lt;p&gt;Sommige vertaling notities&lt;/p&gt;</summary><content type="html">&lt;p&gt;Mijn &lt;a href="https://www.canonvannederland.nl/es/"&gt;Spaanse vertaling van de Canon van Nederland&lt;/a&gt; is nu online.&lt;/p&gt;
&lt;p&gt;Deze zelfopgelegde taak had een praktisch deel: om mijn Nederlands te verbeteren. Maar mijn belangrijkste motivatie was &lt;strong&gt;juist emotioneel&lt;/strong&gt;: sinds 7 jaar geleden ben ik een immigrant, en het kennen van de geschiedenis, de cultuur en de taal van mijn nieuwe land is voor mij heel belangrijk. 
Tenslotte, maar niet minder belangrijk, misschien helpen mijn vertalingen andere immigranten uit de brede Spaansprekende wereld om dit kleine maar mooie land te leren kennen.&lt;/p&gt;
&lt;p&gt;Dat gezegd, is het misschien een goed idee om sommige technische notities te delen:&lt;/p&gt;
&lt;h2&gt;Vertaling notities&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Ik moet toegeven dat ik geen professionele vertaler ben. Als ik in een zin mijn vertalingen zou moeten samenvatten: &lt;em&gt;“Ik heb mijn best gedaan”&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Het Spaans in mijn vertaling mag klinken, zoals ik, een beetje te Europees. Mijn excuses voor mijn latijn-amerikaanse lezers.&lt;/li&gt;
&lt;li&gt;Ik probeerde om de meest gebruikelijke vorm van de namen voor historische figuren, titels van werken en plaatsnamen in het Spaans te houden. Karel de Grote wordt dus &lt;em&gt;Carlomagno&lt;/em&gt;. Het was &lt;em&gt;El Bosco&lt;/em&gt; wie &lt;em&gt;El jardín de las delicias&lt;/em&gt; schilderde, en niet De tuin der lusten. &lt;em&gt;Ámsterdam&lt;/em&gt; krijgt een tilde, en ook &lt;em&gt;Róterdam&lt;/em&gt; (en verlies ie een t). ’s-Hertogenbosch wordt, tot opluchting van onze Spaanssprekende stembanden, &lt;em&gt;Bolduque&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;In het Spaans is het niet incorrect om de demonym Hollander (&lt;em&gt;holandés&lt;/em&gt;) te gebruiken in plaats van Nederlander (&lt;em&gt;neerlandés&lt;/em&gt;). In deze vertaling, gebruik ik altijd &lt;em&gt;neerlandés&lt;/em&gt;. Ik bevestig noch ontken dat het feit dat ik in Noord-Brabant woon, en dus buiten de Hollandse provincies, er iets mee te maken heeft.&lt;/li&gt;
&lt;li&gt;De grootste uitdaging van deze vertaling was het enorme verschil tussen de Nederlandse en de Spaanse syntaxis. Ik probeerde, zolang het niet helemaal onnatuurlijk klonk, om de originele structuur te behouden. Veel zinnen hebben een bijna volledige herstructurering nodig gehad, waarbij vaak een creatieve herinterpretatie nodig was. Sorry als ik te ver ben gegaan in sommige gevallen.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tenslotte, elke suggestie is welkom.
Mijn adres is: pablo.rodriguez.sanchez@gmail.com&lt;/p&gt;
&lt;p&gt;Als u bekend bent met GitHub, u kan ook direct opmerkingen toevoegen via het project zijn &lt;a href="https://github.com/PabRod/vertaling-canon"&gt;&lt;em&gt;GitHub repository&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;</content><category term="Blog"></category><category term="languages"></category><category term="Spanish"></category><category term="Dutch"></category></entry><entry><title>Translation notes for de Canon van Nederland</title><link href="https://pabrod.github.io/vertaling-canon.html" rel="alternate"></link><published>2022-08-08T00:00:00+02:00</published><updated>2022-08-08T00:00:00+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2022-08-08:/vertaling-canon.html</id><summary type="html">&lt;p&gt;Translation notes for de Canon van Nederland&lt;/p&gt;</summary><content type="html">&lt;p&gt;My &lt;a href="https://www.canonvannederland.nl/es/"&gt;translation to Spanish of the &lt;em&gt;Canon van Nederland&lt;/em&gt;&lt;/a&gt; has just been published.
The Canon is a book about the history of the Netherlands, commonly used in schools, language lessons and citizenship exams.&lt;/p&gt;
&lt;p&gt;The self-imposed task of translating the Canon had several goals for me.
One of them was quite practical: to improve my Dutch proficiency.
But the most important motivation has been &lt;strong&gt;purely emotional&lt;/strong&gt;: I'm an immigrant since 7 years ago, and I find it quite important to get to know the history, culture and language of the place where I live.
Last but not least, perhaps my translations could help other members of the Spanish speaking world interested in knowing more about this tiny but beautiful country.&lt;/p&gt;
&lt;p&gt;Said this, I leave here some technical notes:&lt;/p&gt;
&lt;h2&gt;Translation notes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;I am not a professional translator. If I had to summarize my translation on a single sentence, it'db be: &lt;em&gt;"I did it the best I could"&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;My translation my be biased, just as its author is, to European Spanish. I apologize beforehand to my readers from Latin America.&lt;/li&gt;
&lt;li&gt;I tried to respect the most common Spanish form for historical figures, artwork and places. This way &lt;em&gt;Karel de Grote&lt;/em&gt; becomes &lt;em&gt;Carlomagno&lt;/em&gt;. &lt;em&gt;El Bosco&lt;/em&gt; painted &lt;em&gt;El jardín de las delicias&lt;/em&gt;, and not &lt;em&gt;De tuin der lusten&lt;/em&gt;. &lt;em&gt;Ámsterdam&lt;/em&gt; gets a tilde, and &lt;em&gt;Róterdam&lt;/em&gt; too (and also loses a t). &lt;em&gt;'s-Hertogenbosch&lt;/em&gt; becomes, for the sake of our Spanish speaking vocal chords, &lt;em&gt;Bolduque&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Regarding the Holland (&lt;em&gt;Holanda&lt;/em&gt;) versus Netherlands (&lt;em&gt;Países Bajos&lt;/em&gt;) controversy, I've chosen for the latter. This way we avoid possible misunderstandings when talking about the provices of North and South Holland. I cannot confirm nor deny that the fact that I live in &lt;em&gt;Noord Brabant&lt;/em&gt; had something to do with my decision.&lt;/li&gt;
&lt;li&gt;The most challenging aspect of this translation was the huge difference between the Spanish and Dutch syntaxes. I've tried to keep the original structure of most sentences, as long as it didn't sound too unnatural. A number of sentences required an almost complete restructuring, and often a creative reinterpretation. My apologies if any of those went a bit too far.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Suggestions are welcome.
Please contact me at pablo.rodriguez.sanchez@gmail.com.&lt;/p&gt;
&lt;p&gt;The project is also hosted in GitHub. This is the &lt;a href="https://github.com/PabRod/vertaling-canon"&gt;repository link&lt;/a&gt;.&lt;/p&gt;</content><category term="Blog"></category><category term="languages"></category><category term="Spanish"></category><category term="Dutch"></category></entry><entry><title>Talk announcement: How software development shaped the way I do science</title><link href="https://pabrod.github.io/softwarewur.html" rel="alternate"></link><published>2021-11-06T14:40:28+01:00</published><updated>2021-11-06T14:40:28+01:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2021-11-06:/softwarewur.html</id><summary type="html">&lt;p&gt;Lessons I've taken from Industry to Academia (yes, in that direction).&lt;/p&gt;</summary><content type="html">&lt;h2&gt;Poster&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.dropbox.com/s/2kwk82cie1t3gba/Talk-at-Wageningen.pptx?dl=0"&gt;&lt;img alt="slides" src="images/2019-11/cover.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Abstract&lt;/h2&gt;
&lt;p&gt;My scientific career had a break. In 2012, I left academia to work as an engineer for an optical technology company. When I returned to research in 2015 I noticed how extremely useful some engineering skills can be for everyday science. I want to share what I learned with you.&lt;/p&gt;
&lt;h2&gt;Spacetime coordinates&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;16 June 2021, 13:00 CEST. Online. Organized by the Modelling &amp;amp; Simulation Discussion Group of Wageningen University.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Registration&lt;/h2&gt;
&lt;p&gt;Want to join? Please contact the organizer (patrick.steinmann@wur.nl) and join for free.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Materials and references&lt;/h2&gt;
&lt;h3&gt;Slides&lt;/h3&gt;
&lt;p&gt;The slides of this talk are temporarily available &lt;a href="https://www.dropbox.com/s/2kwk82cie1t3gba/Talk-at-Wageningen.pptx?dl=0"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Recommended literature&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://dx.plos.org/10.1371/journal.pbio.1001745"&gt;Best Practices for Scientific Computing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1005510"&gt;Good enough Practices in Scientific Computing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.oreilly.com/library/view/effective-computation-in/9781491901564/"&gt;Effective computation in physics&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Generic&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://swcarpentry.github.io/r-novice-gapminder/15-knitr-markdown/index.html"&gt;Literate programming with knitr&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.dropbox.com/s/2kwk82cie1t3gba/Talk-at-Wageningen.pptx?dl=0"&gt;Version control with git&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://zenodo.org/"&gt;Zenodo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Python specific&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://swcarpentry.github.io/python-novice-gapminder/16-writing-functions/index.html"&gt;Writing functions in Python&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.pytest.org/en/6.2.x/"&gt;Tests in Python&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;R specific&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://swcarpentry.github.io/r-novice-gapminder/10-functions/index.html"&gt;Writing functions in R&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://testthat.r-lib.org/"&gt;Tests in R&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://carpentries-incubator.github.io/git-Rstudio-course/"&gt;Version control with git in RStudio&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Our courses&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;See list &lt;a href="https://escience-academy.github.io/"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Learning materials&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://software-carpentry.org/lessons/"&gt;Software Carpentry courses&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="Blog"></category><category term="announcement"></category></entry><entry><title>Talk announcement: Science story-tellers</title><link href="https://pabrod.github.io/storytelling.html" rel="alternate"></link><published>2021-05-26T01:41:28+02:00</published><updated>2021-05-26T01:41:28+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2021-05-26:/storytelling.html</id><summary type="html">&lt;p&gt;Science story-tellers and some things I've learned from them&lt;/p&gt;</summary><content type="html">&lt;h2&gt;Poster&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.dropbox.com/s/z0v3oohod1ue7wh/Science%20storytelling.pptx?dl=0"&gt;&lt;img alt="poster" src="images/2021-05/storytelling.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Spacetime coordinates&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;27 October 2021, 13:00 CEST. Online. For members of the Netherlands eScience Center only.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Slides&lt;/h2&gt;
&lt;p&gt;The slides are temporarily available &lt;a href="https://www.dropbox.com/s/z0v3oohod1ue7wh/Science%20storytelling.pptx?dl=0"&gt;here&lt;/a&gt;.&lt;/p&gt;</content><category term="Blog"></category><category term="announcement"></category></entry><entry><title>Daylight charts with R</title><link href="https://pabrod.github.io/clock.html" rel="alternate"></link><published>2020-10-24T11:17:17+02:00</published><updated>2020-10-24T11:17:17+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2020-10-24:/clock.html</id><summary type="html">&lt;p&gt;This weekend most of Europe says goodbye to summertime. Visualize the consequences using R.&lt;/p&gt;</summary><content type="html">&lt;p&gt;It happens every year. Twice. And it can be pretty annoying. I am talking about the clock shift to re-adapt our schedules to wintertime or summertime. But did you know that this October 25 may be the last time this happens? Well… at least if you are reading these lines from Europe.&lt;/p&gt;
&lt;p&gt;But, why do we do it? Changing the clocks reduces the undesirable effects of an astronomical phenomenon: that of the variability of sunlight hours during the year. To make it even more difficult, this variability depends not only on the day of the year but also on the location on Earth.&lt;/p&gt;
&lt;p&gt;Luckily, the study of the relationship between daylight duration, position, and date is one of the oldest objects of study. There are some early references in the Babylonian time, the topic was already covered in Ptolemy’s &lt;em&gt;Almagest&lt;/em&gt;, and it is part of the everyday life of sailors since, at least, the publication of the first nautical almanacs in the 1700s.&lt;/p&gt;
&lt;p&gt;We can summarize all we need in charts like this:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/PabRod/daylight-charts"&gt;&lt;img alt="Bacelona" src="images/2020-10/Barcelona.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The figure above is a daylight chart corresponding to the city of Barcelona, Spain, in the year 2020. The abrupt changes correspond with the spring and autumn clock shifts. Notice how the clock shift keeps the sunrise around 8:00 AM.&lt;/p&gt;
&lt;p&gt;I've generated the chart in &lt;em&gt;R&lt;/em&gt;. Nowadays, quick and simple access to astronomical and geographical databases makes it easier than ever to simulate daylight charts at any point in the world. In particular, I wrote &lt;a href="https://github.com/PabRod/daylight-charts"&gt;this code in R&lt;/a&gt; to generate such diagrams. It relies on the CRAN packages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;maps&lt;/code&gt;: for converting the name of a city into its geographical coordinates.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lutz&lt;/code&gt;: for extracting the official timezone from the coordinates.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;suncalc&lt;/code&gt;: for deriving the sunset and sunrise times at the selected location.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It can be run as an interactive applet, either in &lt;a href="https://pabrod.shinyapps.io/cambio-de-hora/"&gt;Shinyapps&lt;/a&gt; or &lt;a href="https://github.com/PabRod/daylight-charts"&gt;locally&lt;/a&gt;, to query for any city in the EU with a population over 100k. Additionally, I precalculated a collection of daylight charts for &lt;a href="https://github.com/PabRod/daylight-charts/tree/master/figs/nl"&gt;Dutch&lt;/a&gt;, &lt;a href="https://github.com/PabRod/daylight-charts/tree/master/figs/es"&gt;Spanish&lt;/a&gt;, and other &lt;a href="https://github.com/PabRod/daylight-charts/tree/master/figs/eu"&gt;European&lt;/a&gt; towns with a population over 100k.&lt;/p&gt;
&lt;p&gt;This entry appears in &lt;a href="https://www.r-bloggers.com"&gt;R-bloggers.com&lt;/a&gt;&lt;/p&gt;</content><category term="Blog"></category><category term="math"></category><category term="R"></category></entry><entry><title>Los modelos matemáticos no predicen el futuro, pero ayudan a entenderlo</title><link href="https://pabrod.github.io/modelos-es.html" rel="alternate"></link><published>2020-10-20T16:38:15+02:00</published><updated>2020-10-20T16:38:15+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2020-10-20:/modelos-es.html</id><summary type="html">&lt;p&gt;¿Para qué sirven (y para qué no sirven) los modelos matemáticos?&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;span&gt;&lt;a href="https://theconversation.com/profiles/pablo-rodriguez-sanchez-1150140"&gt;Pablo Rodríguez-Sánchez&lt;/a&gt;, &lt;em&gt;&lt;a href="https://theconversation.com/institutions/netherlands-escience-center-4836"&gt; Netherlands eScience Center&lt;/a&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Permítanme comenzar con una pregunta a bocajarro: ¿piensa usted que es posible predecir el futuro? Esta pregunta, así formulada, evoca bolas de cristal y lectura de manos y nos invita a responder con un rotundo “no”.&lt;/p&gt;

&lt;p&gt;Sin embargo, enunciados como “la temperatura media global subirá 0,5 ⁰C en la próxima década” o “la curva de contagios por el coronavirus empezará a aplanarse dentro de tres días” nos resultan mucho más fiables. Estas frases, enunciadas de esta manera, evocan conceptos como ciencia, conocimiento experto y rigor. Sin embargo, también son predicciones sobre el futuro.&lt;/p&gt;

&lt;p&gt;Si buceamos en los fundamentos de este tipo de predicciones, es muy probable que hayan sido obtenidas utilizando modelos matemáticos. Además, vendrán acompañadas de “barras de error” que aporten numerosos matices al enunciado y, en cierto modo, le resten contundencia.&lt;/p&gt;

&lt;p&gt;Los modelos matemáticos están viviendo su momento de fama. Por culpa de la pandemia de la COVID-19 han saltado de las páginas de las revistas especializadas a las de la prensa generalista. Por obvios motivos de formato, los detalles necesarios para comprender su alcance y limitaciones rara vez se mencionan. Esto puede generar una impresión equivocada sobre la utilidad de los mismos.&lt;/p&gt;

&lt;h2&gt;¿Qué es un modelo matemático?&lt;/h2&gt;

&lt;p&gt;Un modelo es una descripción más o menos detallada de un fenómeno que se desea investigar. Un modelo matemático usa el lenguaje matemático en su descripción. &lt;/p&gt;

&lt;p&gt;Suena casi como un trabalenguas, pero en el fondo no tiene nada de exótico. Es más, es muy posible que el lector haya trabajado con modelos matemáticos antes. Concretamente, en la escuela. ¿Recuerdan aquellos problemas sobre interés compuesto? ¿O los del tiro parabólico y la caída libre? ¿Acaso no les pedían usar las matemáticas para calcular cómo evolucionaba una cuenta bancaria o cómo se movía un proyectil?&lt;/p&gt;

&lt;p&gt;Al contrario de lo que a menudo se piensa, los modelos matemáticos no responden a la pregunta “¿qué va a pasar?”, sino a la pregunta “¿qué pasaría si?”. Esto constituye, a la vez, su mayor debilidad y su mayor fortaleza.&lt;/p&gt;

&lt;p&gt;Permítanme ilustrarlo con el ejemplo de la caída libre. Es posible que en la escuela les hablaran de aquella “demostración matemática” de que una pluma y una bala de cañón que caen libremente desde la misma altura llegan al suelo al mismo tiempo. &lt;/p&gt;

&lt;p&gt;Suena raro, pero es rigurosamente cierto… siempre que la caída sea de verdad libre (esto es, en ausencia de atmósfera). &lt;/p&gt;

&lt;figure&gt;
            &lt;iframe width="440" height="260" src="https://www.youtube.com/embed/E43-CfukEgs?wmode=transparent&amp;amp;start=0" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt;

          &lt;/figure&gt;

&lt;p&gt;Si tratamos de aplicar el modelo de caída libre para estudiar la caída de un objeto cotidiano, y por tanto rodeado de aire, veremos que sus predicciones fracasan miserablemente. Hemos usado un modelo poco adecuado, pues responde a la pregunta: ¿qué pasaría si dejo caer este objeto &lt;em&gt;si no hubiera atmósfera&lt;/em&gt;?&lt;/p&gt;

&lt;p&gt;Cuando los matemáticos construimos modelos, a menudo empezamos con un modelo sencillo, al que vamos añadiendo nuevas características según van resultando necesarias. ¿Cuándo paramos? Cuando el modelo es lo suficientemente adecuado. Es decir, cuando estamos satisfechos con la luz que arroja sobre el fenómeno que deseamos estudiar.&lt;/p&gt;

&lt;p&gt;Si queremos estudiar la caída de una pluma, el modelo anterior nos dejará claramente insatisfechos. Si al modelo de caída libre le añadimos un término de rozamiento con el aire, los resultados serán mucho mejores, pero aún existirán pequeñas discrepancias con el experimento.&lt;/p&gt;

&lt;p&gt;Cualquier modelo, sin excepción, es una aproximación más o menos sofisticada de la realidad, pero nunca perfecta. Por desgracia, cuantificar cómo de preciso es un modelo matemático no siempre es una tarea sencilla. Por lo tanto, tampoco lo es comunicarlo al público general.&lt;/p&gt;

&lt;h2&gt;¿Por qué los usamos entonces?&lt;/h2&gt;

&lt;p&gt;Si todos los modelos son aproximados, ¿por qué los usamos? Por una sencilla razón: porque son útiles. La capacidad de los modelos matemáticos de responder a la pregunta “¿qué pasaría si?” los convierte en interesantes sustitutos de los experimentos científicos. &lt;/p&gt;

&lt;p&gt;Si bien en ciencia el experimento es el rey, a veces no queda más remedio que conformarse con un modelo matemático o computacional.&lt;/p&gt;

&lt;p&gt;Ejemplos de estas situaciones: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Experimentos irrealizables: el estudio &lt;em&gt;in situ&lt;/em&gt; de un agujero negro.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Costosos o difíciles: el estudio de la evolución de las poblaciones de plancton, cuya escala en el espacio y el tiempo es del orden de océanos y décadas.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Destructivos o peligrosos: el análisis de los efectos de un terremoto en determinada ciudad. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Los modelos también son de gran utilidad para obtener visualizaciones difíciles o imposibles de lograr experimentalmente (cómo se mueve el viento alrededor de una turbina).&lt;/p&gt;

&lt;p&gt;Por si fuera poco, incluso modelos matemáticos con muy poco poder predictivo pueden ser de gran utilidad para entender problemas complejos. &lt;/p&gt;

&lt;p&gt;Gracias, por ejemplo, a un &lt;a href="https://fuga.naukas.com/2020/03/18/un-matematico-en-cuarentena/"&gt;sencillísimo modelo de propagación de epidemias&lt;/a&gt; de los años 20 sabemos que existen umbrales (el famoso &lt;a href="https://theconversation.com/coronavirus-sigue-siendo-util-el-numero-r-139044#:%7E:text=El%20n%C3%BAmero%20R%20es%20el,algo%20por%20encima%20del%203."&gt;número R&lt;/a&gt;) a partir de los cuales el contagio se dispara. El modelo no permite saber con exactitud cuál es el umbral, pero aporta la idea misma de que existe.&lt;/p&gt;

&lt;h2&gt;Los matemáticos no pueden predecir el futuro&lt;/h2&gt;

&lt;p&gt;Recuerde nuestra pregunta inicial. ¿El futuro se puede predecir? Ninguna persona razonable respondería con un rotundo “sí, siempre y sin matices”. Espero haberles convencido de que los matemáticos, por lo general también personas razonables, tampoco.&lt;/p&gt;

&lt;p&gt;La ciencia es una empresa, por naturaleza, incompleta, se escriba esta con letras o con fórmulas. Los modelos matemáticos han de leerse con, por lo menos, el mismo sano escepticismo que la predicción meteorológica.&lt;!-- Below is The Conversation's page counter tag. Please DO NOT REMOVE. --&gt;&lt;img src="https://counter.theconversation.com/content/147299/count.gif?distributor=republish-lightbox-basic" alt="The Conversation" width="1" height="1" style="border: none !important; box-shadow: none !important; margin: 0 !important; max-height: 1px !important; max-width: 1px !important; min-height: 1px !important; min-width: 1px !important; opacity: 0 !important; outline: none !important; padding: 0 !important; text-shadow: none !important" /&gt;&lt;!-- Fin del código. Si no ve ningún código arriba, por favor, obtenga el nuevo código de la pestaña Avanzado después de hacer clic en el botón de republicar. El contador de páginas no recoge ningún dato personal. Más información: http://theconversation.com/es/republishing-guidelines --&gt;&lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;a href="https://theconversation.com/profiles/pablo-rodriguez-sanchez-1150140"&gt;Pablo Rodríguez-Sánchez&lt;/a&gt;, Especialista en computación científica, &lt;em&gt;&lt;a href="https://theconversation.com/institutions/netherlands-escience-center-4836"&gt; Netherlands eScience Center&lt;/a&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Este artículo fue publicado originalmente en  &lt;a href="https://theconversation.com"&gt;The Conversation&lt;/a&gt;. Lea el &lt;a href="https://theconversation.com/los-modelos-matematicos-no-predicen-el-futuro-pero-ayudan-a-entenderlo-147299"&gt;original&lt;/a&gt;.&lt;/p&gt;</content><category term="Blog"></category><category term="math"></category></entry><entry><title>Talk announcement: CENL CVs</title><link href="https://pabrod.github.io/cenl.html" rel="alternate"></link><published>2020-10-15T09:41:28+02:00</published><updated>2020-10-15T09:41:28+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2020-10-15:/cenl.html</id><summary type="html">&lt;p&gt;Science and Experiences of Spanish Scientists in the Netherlands&lt;/p&gt;</summary><content type="html">&lt;h2&gt;Poster&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.eventbrite.com/e/cvs-cenl-2020-tickets-120247600811"&gt;&lt;img alt="poster" src="images/2020-10/poster.jpeg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Spacetime coordinates&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;16 October 2020, 17:30 CEST. Online, free &lt;a href="https://www.eventbrite.com/e/cvs-cenl-2020-tickets-120247600811"&gt;registration&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Slides&lt;/h2&gt;
&lt;p&gt;The slides are temporarily available &lt;a href="https://www.dropbox.com/s/yos2hu1m1za90lx/CENL.pptx?dl=0"&gt;here&lt;/a&gt;.&lt;/p&gt;</content><category term="Blog"></category><category term="announcement"></category></entry><entry><title>Talk announcement: Complex numbers for research software engineers</title><link href="https://pabrod.github.io/complex-sig.html" rel="alternate"></link><published>2020-10-12T09:07:06+02:00</published><updated>2020-10-12T09:07:06+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2020-10-12:/complex-sig.html</id><summary type="html">&lt;p&gt;A talk about applications of complex numbers in computational sciences&lt;/p&gt;</summary><content type="html">&lt;h2&gt;Title&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Complex numbers for research software engineers&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Abstract&lt;/h2&gt;
&lt;p&gt;If you are reading this, most likely you are working on a computer-science related field.
Why would you care about the square root of minus one (also known as i)? Let me give you a few reasons:&lt;/p&gt;
&lt;p&gt;The mysterious number i:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;is the NaN of the Renaissance.&lt;/li&gt;
&lt;li&gt;appears in the Euler's identity, acclaimed as the most beautiful equation ever.&lt;/li&gt;
&lt;li&gt;allowed for difficult computations in aerodynamics before the computer was invented.&lt;/li&gt;
&lt;li&gt;can improve your numerical differentiation algorithms with minimal effort.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The slides are temporarily available &lt;a href="https://www.dropbox.com/s/18dmbov56d5vfm2/Complex%20numbers.pptx?dl=0"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Spacetime coordinates&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;12 October 2020, 11:00 CEST. Online, for eScience Center members only.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="slides" src="images/2020-10/wing.gif"&gt;&lt;/p&gt;</content><category term="Blog"></category><category term="announcement"></category></entry><entry><title>Talk announcement: Thesis defense</title><link href="https://pabrod.github.io/defense.html" rel="alternate"></link><published>2020-06-08T16:22:24+02:00</published><updated>2020-06-08T16:22:24+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2020-06-08:/defense.html</id><summary type="html">&lt;p&gt;The day finally arrived!&lt;/p&gt;</summary><content type="html">&lt;h2&gt;Invitation&lt;/h2&gt;
&lt;p&gt;I am happy to inform you that next week I'll be publicly defending my PhD thesis entitled:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Cycles and interactions: a mathematician among biologists&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The defense will be conducted in English language.&lt;/p&gt;
&lt;h2&gt;Spacetime coordinates&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;15 June 2020, 13:30 CEST. The ceremony will take place exclusivelly &lt;a href="https://weblectures.wur.nl/P2G/Player/Player.aspx?id=C217"&gt;online&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="slides" src="images/2020-06/defense.png"&gt;&lt;/p&gt;
&lt;h2&gt;Abstract&lt;/h2&gt;
&lt;p&gt;The backbone of this thesis is the interdisciplinary interaction between dynamic systems theory and a selection of biological problems. Each chapter focuses in one problem, namely plankton dynamics, cell development paths and sleep-wake dynamics. Despite these topics may seem disconnected, they share an important feature: all of them show cyclic behaviour under certain circumstances.&lt;/p&gt;
&lt;p&gt;In the present thesis we show that cyclic (or chaotic) behaviour is deeply related with plankton biodiversity. We also use cycles to show, in an intuitive way, that Waddington’s epigenetic landscapes (a common visual tool in stem cell research) are poorly defined, and we provide a practical solution to this. Lastly, we provide an algorithm to forecast a transition between synchronized and non-synchronized cyclic systems (such as normal sleep – insomnia, or normal hearth functioning – arrhythmia), with potential applications in medical sciences.&lt;/p&gt;
&lt;p&gt;The thesis is temporarily available &lt;a href="https://www.dropbox.com/sh/kg147e5x0o09ddl/AABvsbPApgMXJhBSQNnfqa1Ja?dl=0"&gt;here&lt;/a&gt;.&lt;/p&gt;</content><category term="Blog"></category><category term="announcement"></category></entry><entry><title>Notificación: Defensa de tesis</title><link href="https://pabrod.github.io/defense-es.html" rel="alternate"></link><published>2020-06-08T16:22:24+02:00</published><updated>2020-06-08T16:22:24+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2020-06-08:/defense-es.html</id><summary type="html">&lt;p&gt;¡Por fin ha llegado el día!&lt;/p&gt;</summary><content type="html">&lt;h2&gt;Invitación&lt;/h2&gt;
&lt;p&gt;Me complace informar de que la próxima semana defenderé publicamente mi tesis doctoral, que lleva por título:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Ciclos e interacciones: un matemático entre biólogos&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;La defensa tendrá lugar en idioma inglés.&lt;/p&gt;
&lt;h2&gt;Coordenadas espaciotemporales&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;15 de Junio de 2020, 13:30 CEST. La ceremonia será exclusivamente &lt;a href="https://weblectures.wur.nl/P2G/Player/Player.aspx?id=C217"&gt;online&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="slides" src="images/2020-06/defense.png"&gt;&lt;/p&gt;
&lt;h2&gt;Resumen&lt;/h2&gt;
&lt;p&gt;La columna vertebral de esta tesis es la interacción entre la teoría de sistemas dinámicos y una selección de problemas biológicos. Cada capítulo se centra en uno de estos problemas, particularmente dinámica de poblaciones de plankton, desarrollo celular y ciclos sueño-vigilia. A pesar de que estos temas pueden parecer desconectados, todos comparten una característica común: presentan un comportamiento cíclico bajo determinadas circunstancias.&lt;/p&gt;
&lt;p&gt;En la tesis que nos ocupa mostramos que el comportamiento cíclico (o caótico) está íntimamente relacionado con la biodiversidad del plankton. También usamos ciclos para mostrar, de forma intuitiva, que los mapas epigenéticos de Waddington (una herramienta visual muy habitual en investigaciones sobre desarrollo celular) presentan problemas de definición, y aportamos una solución práctica a estos problemas. Finalmente, presentamos un algoritmo para predecir transciones entre estados sincronizados y desincronizados (por ejemplo, las transiciones entre sueño normal e insomnio, o entre funcionamiento cardiaco normal y un episodio de arritmia), con posibles aplicaciones en las ciencias médicas.&lt;/p&gt;
&lt;p&gt;La tesis está disponible, temporalmente &lt;a href="https://www.dropbox.com/sh/kg147e5x0o09ddl/AABvsbPApgMXJhBSQNnfqa1Ja?dl=0"&gt;aquí&lt;/a&gt;.&lt;/p&gt;</content><category term="Blog"></category><category term="announcement"></category></entry><entry><title>Talk announcement: Ciencia y arte, enemigos íntimos (Festival Arte y Ciencia)</title><link href="https://pabrod.github.io/arte_y_ciencia.html" rel="alternate"></link><published>2020-03-09T10:25:40+01:00</published><updated>2020-03-09T10:25:40+01:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2020-03-09:/arte_y_ciencia.html</id><summary type="html">&lt;p&gt;Science and arts are often presented as opposite to each other, but are they? 10-11 March 2020, Planetario de Pamplona, Navarre, Spain.&lt;/p&gt;</summary><content type="html">&lt;h2&gt;Title&lt;/h2&gt;
&lt;p&gt;Arte y ciencia, enemigos íntimos&lt;/p&gt;
&lt;p&gt;This talk will be given in Spanish.&lt;/p&gt;
&lt;h2&gt;Abstract&lt;/h2&gt;
&lt;p&gt;Science and arts are often presented as opposite to each other, but are they?&lt;/p&gt;
&lt;p&gt;&lt;img alt="slides" src="images/2020-03/arte-y-ciencia.png"&gt;&lt;/p&gt;
&lt;p&gt;This talk will be part of the &lt;a href="https://www.unavarra.es/unidadculturacientifica/ciclo-arte-ciencia-y-tecnologia?opcion=1"&gt;Festival arte y ciencia&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Spacetime coordinates&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;10-11 March. &lt;a href="https://www.pamplonetario.org/"&gt;Planetario de Pamplona&lt;/a&gt;, Navarra, Spain. Free access&lt;/li&gt;
&lt;/ul&gt;</content><category term="Blog"></category><category term="announcement"></category></entry><entry><title>Visualization of a 3D Levi-Civita symbol</title><link href="https://pabrod.github.io/levi-civita.html" rel="alternate"></link><published>2019-12-08T16:37:24+01:00</published><updated>2019-12-08T16:37:24+01:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2019-12-08:/levi-civita.html</id><summary type="html">&lt;p&gt;Simple way of visualizing the structure of the Levi-Civita symbol&lt;/p&gt;</summary><content type="html">&lt;script type="text/x-mathjax-config"&gt;
  MathJax.Hub.Config({
    tex2jax: {
      inlineMath: [ ['$','$'], ["\\(","\\)"] ],
      processEscapes: true
    }
  });
&lt;/script&gt;

&lt;script type="text/javascript"
    src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"&gt;
&lt;/script&gt;

&lt;p&gt;The &lt;a href="https://en.wikipedia.org/wiki/Levi-Civita_symbol"&gt;Levi-Civita symbol&lt;/a&gt; is that puzzling &lt;span class="math"&gt;\(\epsilon_{ijk}\)&lt;/span&gt; term that appears in the calculation of determinants and vector products. It has, thus, lots of applications in algebra, geometry, mechanics, electromagnetism, ... A (boring) definition is given in the textbox below.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;The value of &lt;span class="math"&gt;\(\epsilon_{ijk}\)&lt;/span&gt; goes as follows:&lt;/p&gt;
&lt;p&gt;It is &lt;span class="math"&gt;\(0\)&lt;/span&gt; if the value of &lt;strong&gt;any&lt;/strong&gt; index is repeated, such as in &lt;span class="math"&gt;\(ijk = 112\)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;It is &lt;span class="math"&gt;\(1\)&lt;/span&gt; if the indices are &lt;span class="math"&gt;\(ijk \in123, 312, 231\)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;It is &lt;span class="math"&gt;\(-1\)&lt;/span&gt; if the indices are &lt;span class="math"&gt;\(ijk \in 321, 132, 213\)&lt;/span&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;I am interested in visualization. Unfortunately, the Levi-Civita symbol has three indices, &lt;span class="math"&gt;\(i\)&lt;/span&gt;, &lt;span class="math"&gt;\(j\)&lt;/span&gt; and &lt;span class="math"&gt;\(k\)&lt;/span&gt;, so we cannot represent it as a matrix or a vector. But, taking advantage of its discrete nature (it can only take 3 different values) we can create a "cubic matrix" to visualize it. This matrix contains &lt;span class="math"&gt;\(3 \times 3 \times 3\)&lt;/span&gt; cubes, each of them univocally identified by a triplet &lt;span class="math"&gt;\(ijk\)&lt;/span&gt;, and the color tells us its value (grey for &lt;span class="math"&gt;\(0\)&lt;/span&gt;, green for &lt;span class="math"&gt;\(1\)&lt;/span&gt;, red for &lt;span class="math"&gt;\(-1\)&lt;/span&gt;).&lt;/p&gt;
&lt;p&gt;That's what I did in a GeoGebra applet. I leave it here, just in case anyone finds it interesting. Click on the image to open an interactive version where the cube can be rotated.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.geogebra.org/m/fbtgkakj"&gt;&lt;img alt="Levi-Civita" src="images/2019-12/LeviCivita.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;script type="text/javascript"&gt;if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) {
    var align = "center",
        indent = "0em",
        linebreak = "false";

    if (false) {
        align = (screen.width &lt; 768) ? "left" : align;
        indent = (screen.width &lt; 768) ? "0em" : indent;
        linebreak = (screen.width &lt; 768) ? 'true' : linebreak;
    }

    var mathjaxscript = document.createElement('script');
    mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#';
    mathjaxscript.type = 'text/javascript';
    mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=TeX-AMS-MML_HTMLorMML';

    var configscript = document.createElement('script');
    configscript.type = 'text/x-mathjax-config';
    configscript[(window.opera ? "innerHTML" : "text")] =
        "MathJax.Hub.Config({" +
        "    config: ['MMLorHTML.js']," +
        "    TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," +
        "    jax: ['input/TeX','input/MathML','output/HTML-CSS']," +
        "    extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," +
        "    displayAlign: '"+ align +"'," +
        "    displayIndent: '"+ indent +"'," +
        "    showMathMenu: true," +
        "    messageStyle: 'normal'," +
        "    tex2jax: { " +
        "        inlineMath: [ ['\\\\(','\\\\)'] ], " +
        "        displayMath: [ ['$$','$$'] ]," +
        "        processEscapes: true," +
        "        preview: 'TeX'," +
        "    }, " +
        "    'HTML-CSS': { " +
        "        availableFonts: ['STIX', 'TeX']," +
        "        preferredFont: 'STIX'," +
        "        styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'inherit ! important'} }," +
        "        linebreaks: { automatic: "+ linebreak +", width: '90% container' }," +
        "    }, " +
        "}); " +
        "if ('default' !== 'default') {" +
            "MathJax.Hub.Register.StartupHook('HTML-CSS Jax Ready',function () {" +
                "var VARIANT = MathJax.OutputJax['HTML-CSS'].FONTDATA.VARIANT;" +
                "VARIANT['normal'].fonts.unshift('MathJax_default');" +
                "VARIANT['bold'].fonts.unshift('MathJax_default-bold');" +
                "VARIANT['italic'].fonts.unshift('MathJax_default-italic');" +
                "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" +
            "});" +
            "MathJax.Hub.Register.StartupHook('SVG Jax Ready',function () {" +
                "var VARIANT = MathJax.OutputJax.SVG.FONTDATA.VARIANT;" +
                "VARIANT['normal'].fonts.unshift('MathJax_default');" +
                "VARIANT['bold'].fonts.unshift('MathJax_default-bold');" +
                "VARIANT['italic'].fonts.unshift('MathJax_default-italic');" +
                "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" +
            "});" +
        "}";

    (document.body || document.getElementsByTagName('head')[0]).appendChild(configscript);
    (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript);
}
&lt;/script&gt;</content><category term="Blog"></category><category term="math"></category><category term="GeoGebra"></category></entry><entry><title>Talk announcement: How software development shaped the way I write science (National eScience Symposium)</title><link href="https://pabrod.github.io/NLeSC_symp19.html" rel="alternate"></link><published>2019-11-17T16:28:38+01:00</published><updated>2019-11-17T16:28:38+01:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2019-11-17:/NLeSC_symp19.html</id><summary type="html">&lt;p&gt;How software development shaped the way I write science, 21 November 2019, National eScience Symposium 2019. Amsterdam&lt;/p&gt;</summary><content type="html">&lt;p&gt;A few months ago, I informally presented an earlier version of this talk at the &lt;a href="https://www.esciencecenter.nl/"&gt;Netherlands eScience Center&lt;/a&gt; (NLeSC). Two remarkable things happened after that:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Now I am an &lt;em&gt;eScience Engineer&lt;/em&gt; at NLeSC.&lt;/li&gt;
&lt;li&gt;They invited me to give the talk again. This time in a less informal setting: the &lt;a href="https://www.esciencesymposium2019.nl"&gt;National eScience Symposium&lt;/a&gt;, and in a less informal venue: the Ajax stadium&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Title&lt;/h2&gt;
&lt;p&gt;How software development shaped the way I write science&lt;/p&gt;
&lt;h2&gt;Abstract&lt;/h2&gt;
&lt;p&gt;When we say that scientific papers are complex, we tend to think that their contents are complex. While this is true, there is much more: a paper itself is a complex form of communication. In this short talk I'll explain how my years in the industry of software development dramatically changed the way I write scientific publications.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.dropbox.com/s/97w42albhmujow9/Talk%20at%20Johan%20Cruijff%20-%20public.pptx?dl=0"&gt;&lt;img alt="slides" src="images/2019-11/cover.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Spacetime coordinates&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;21 November. Johan Cruijff Arena, Amsterdam. &lt;a href="https://www.esciencesymposium2019.nl/page/608898"&gt;FAIR software session&lt;/a&gt;. Registration required&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Slides temporarily available &lt;a href="https://www.dropbox.com/s/97w42albhmujow9/Talk%20at%20Johan%20Cruijff%20-%20public.pptx?dl=0"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Key references&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;My research workflow, based on GitHub. Carl Boettiger. Available &lt;a href="https://www.carlboettiger.info/2012/05/06/research-workflow.html"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Wilson G, Aruliah DA, Brown CT, Chue Hong NP, Davis M, Guy RT, et al. Best Practices for Scientific Computing. Eisen JA, editor. PLoS Biol [Internet]. 2014 Jan 7. Available &lt;a href="http://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.1001745"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Galileo's instruments of credit. Telescopes, images, secrecy. Mario Biagioli.&lt;/li&gt;
&lt;li&gt;Rodríguez-Sánchez P. PabRod/rolldown. 2019. Available from: &lt;a href="https://doi.org/10.5281/zenodo.2591550"&gt;https://doi.org/10.5281/zenodo.2591550&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Rodríguez-Sánchez P, van Nes EH, Scheffer M. Climbing Escher’s stairs: a simple quasi-potential algorithm for weakly non-gradient systems. 2019 Mar 13. Available from: &lt;a href="http://arxiv.org/abs/1903.05615"&gt;http://arxiv.org/abs/1903.05615&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</content><category term="Blog"></category><category term="announcement"></category></entry><entry><title>Seminar announcement: How software development shaped the way I write science (Netherlands eScience Center)</title><link href="https://pabrod.github.io/seminar-nesc.html" rel="alternate"></link><published>2019-08-19T15:30:00+02:00</published><updated>2019-08-19T15:30:00+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2019-08-19:/seminar-nesc.html</id><summary type="html">&lt;p&gt;How software development shaped the way I write science, 20 August 2019, Netherlands eScience Center. Amsterdam&lt;/p&gt;</summary><content type="html">&lt;h2&gt;Title&lt;/h2&gt;
&lt;p&gt;How software development shaped the way I write science&lt;/p&gt;
&lt;h2&gt;Abstract&lt;/h2&gt;
&lt;p&gt;When we say that scientific papers are complex, we tend to think that their contents are complex. While this is true, there is much more: a paper itself is a complex form of communication. In this short talk I'll explain how my years in the industry of software development dramatically changed the way I write scientific publications.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.dropbox.com/s/ngu2pb343fqd4mz/Talk%20at%20eScience%20-%20public.pptx?dl=0"&gt;&lt;img alt="slides" src="images/2019-08/cover.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Spacetime coordinates&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;20 August 2019, 11:30-12:00 (local timezone)&lt;/li&gt;
&lt;li&gt;Netherlands eScience Center. Amsterdam. This is going to be a private meeting&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Slides temporarily available &lt;a href="https://www.dropbox.com/s/ngu2pb343fqd4mz/Talk%20at%20eScience%20-%20public.pptx?dl=0"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Key references&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;My research workflow, based on GitHub. Carl Boettiger. Available &lt;a href="https://www.carlboettiger.info/2012/05/06/research-workflow.html"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Wilson G, Aruliah DA, Brown CT, Chue Hong NP, Davis M, Guy RT, et al. Best Practices for Scientific Computing. Eisen JA, editor. PLoS Biol [Internet]. 2014 Jan 7. Available &lt;a href="http://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.1001745"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Galileo's instruments of credit. Telescopes, images, secrecy. Mario Biagioli.&lt;/li&gt;
&lt;li&gt;Rodríguez-Sánchez P. PabRod/rolldown. 2019. Available from: &lt;a href="https://doi.org/10.5281/zenodo.2591550"&gt;https://doi.org/10.5281/zenodo.2591550&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Rodríguez-Sánchez P, van Nes EH, Scheffer M. Climbing Escher’s stairs: a simple quasi-potential algorithm for weakly non-gradient systems. 2019 Mar 13. Available from: &lt;a href="http://arxiv.org/abs/1903.05615"&gt;http://arxiv.org/abs/1903.05615&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</content><category term="Blog"></category><category term="announcement"></category></entry><entry><title>Preprint: Climbing Escher's ladder</title><link href="https://pabrod.github.io/quasipotentials.html" rel="alternate"></link><published>2019-04-19T09:50:08+02:00</published><updated>2019-04-19T09:50:08+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2019-04-19:/quasipotentials.html</id><summary type="html">&lt;p&gt;Announcement of the preprint of my second paper&lt;/p&gt;</summary><content type="html">&lt;p&gt;Contrary to the popular opinion, biological models are harder than physical ones. The latter tend to be linear, have conserved quantities, hamiltonians, and that kind of nice features. One of this nice features I particularly miss is scalar potentials. And apparently biologists miss them too.&lt;/p&gt;
&lt;p&gt;Potentials are often used in biology (often referred to as stability landscapes or ball-in-a-cup diagrams) as visual analogies to understand the properties of dynamical systems. Those diagrams have proven to be particularly useful to communicate complicated concepts from dynamical systems theory to non-expert audiences, such as bifurcation, basin of attraction or hysteresis. Unfortunately, when we try to use these pictures for multidimensional systems we find a subtle, albeit critical limitation: unless very restrictive conditions are met, potentials fail to exist.&lt;/p&gt;
&lt;p&gt;&lt;img alt="aew" src="images/2019-04/aew.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Our first challenge was to address the subtle reason a potential may fail to exist without using heavy mathematical weaponry. We found a surprisingly accurate analogy in the world of art, particularly in M.C. Escher's paintings of impossible objects. The second challenge was to provide, at least, a partial solution to the problem. We introduced a simple and efficient algorithm that takes into account the abovementioned limitations, providing the best quasi-potential candidate plus an error map indicating the regions of the phase space where it is safe to use it.&lt;/p&gt;
&lt;p&gt;The title of this preprint is &lt;a href="https://arxiv.org/abs/1903.05615"&gt;&lt;em&gt;Climbing Escher's stairs: a way to approximate stability landscapes in multidimensional systems&lt;/em&gt;&lt;/a&gt;. The document is freely available in &lt;a href="https://arxiv.org/abs/1903.05615"&gt;arXiv&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Together with the article, and fueling my personal obsession with collaboration and reproducibility, I wrote and published an R package called &lt;a href="https://github.com/PabRod/rolldown"&gt;rolldown&lt;/a&gt; (my first one!) implementing the described algorithm.&lt;/p&gt;
&lt;h2&gt;Abstract&lt;/h2&gt;
&lt;p&gt;Stability landscapes are useful for understanding the properties of dynamical systems. These landscapes can be calculated from the system's dynamical equations using the physical concept of scalar potential. Unfortunately, for most biological systems with two or more state variables such potentials do not exist. Here we use an analogy with art to provide an accessible explanation of why this happens. Additionally, we introduce a numerical method for decomposing differential equations into two terms: the gradient term that has an associated potential, and the non-gradient term that lacks it. In regions of the state space where the magnitude of the non-gradient term is small compared to the gradient part, we use the gradient term to approximate  the potential as quasi-potential. The non-gradient to gradient ratio can be used to estimate the local error introduced by our approximation. Both the algorithm and a ready-to-use implementation in the form of an R package are provided.&lt;/p&gt;
&lt;h2&gt;Authors&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.sparcs-center.org/about-us/staff-contacts/pablo-rodriguez.html"&gt;Pablo Rodríguez-Sánchez&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.sparcs-center.org/about-us/staff-contacts/egbert-van-nes.html"&gt;Egbert H. van Nes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.sparcs-center.org/about-us/staff-contacts/marten-scheffer.html"&gt;Marten Scheffer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All from Wageningen University and Research.&lt;/p&gt;</content><category term="Blog"></category><category term="announcement"></category></entry><entry><title>Python or R? Why not both?</title><link href="https://pabrod.github.io/PyR.html" rel="alternate"></link><published>2019-03-22T10:50:31+01:00</published><updated>2019-03-22T10:50:31+01:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2019-03-22:/PyR.html</id><summary type="html">&lt;p&gt;How to use Python code inside R&lt;/p&gt;</summary><content type="html">&lt;script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML' async&gt;&lt;/script&gt;

&lt;p&gt;&lt;em&gt;Python&lt;/em&gt; and &lt;em&gt;R&lt;/em&gt;. They are two of the most popular programming languages
for science. They are both free, both of them have a strong user
community and both of them work pretty well.&lt;/p&gt;
&lt;p&gt;Personally, I find &lt;em&gt;Python&lt;/em&gt; way more intuitive than &lt;em&gt;R&lt;/em&gt; (at least for
people who, like me, have a classical mathematics background). Thinking
in terms of data frames is great when you work with statistical data,
but it gets a bit annoying when you are more interested in analysis. To
uneven the score even more, &lt;em&gt;Python's&lt;/em&gt; libraries like &lt;em&gt;NumPy&lt;/em&gt;, &lt;em&gt;SciPy&lt;/em&gt;,
&lt;em&gt;SimPy&lt;/em&gt; and &lt;em&gt;Matplotlib&lt;/em&gt; are the perfect toolbox for anyone doing
mathematical research of any kind.&lt;/p&gt;
&lt;p&gt;But... I chose &lt;em&gt;R&lt;/em&gt;. Why?&lt;/p&gt;
&lt;p&gt;There is only one reason for doing so: &lt;em&gt;knitr&lt;/em&gt;[1]. &lt;em&gt;knitr&lt;/em&gt; is a package
that turns a combination of text &lt;strong&gt;and code&lt;/strong&gt; (the &lt;em&gt;RMarkdown&lt;/em&gt; file)
into almost any format of human readable text, including a &lt;em&gt;pdf&lt;/em&gt; report,
slides, or a blog page like &lt;a href="https://github.com/PabRod/pabrod.github.io-src/blob/master/auxs/Rmd/2019-03-22%20PyR.Rmd"&gt;the one you are reading now&lt;/a&gt;. The interesting
point is the integration of the code with the text. This means that an
&lt;em&gt;RMarkdown&lt;/em&gt; document is not passive. This allows one to write papers
that, quite literally, recalculate themselves any time needed. &lt;em&gt;knitr&lt;/em&gt;,
combined with research code structured as an &lt;em&gt;R&lt;/em&gt; package, is clearly my
favourite way of writing research. The package structure keeps my code
tidy and tested, and &lt;em&gt;knitr&lt;/em&gt; allows me to do all and the figures the
writing in a single file. The result is a rock-solid, reproducible
output. Let me put it like this: &lt;em&gt;knitr&lt;/em&gt; is like &lt;em&gt;LaTeX&lt;/em&gt; on steroids![2]&lt;/p&gt;
&lt;p&gt;But... I keep finding &lt;em&gt;R&lt;/em&gt; annoying. A few days ago, after looking for
hours for a nice way of ploting phase planes, I gave up. All the
possibilities I found were terribly ugly. I had to go back to &lt;em&gt;Python's&lt;/em&gt;
&lt;em&gt;Matplotlib&lt;/em&gt; and its function &lt;em&gt;streamplot&lt;/em&gt;. See for yourself:&lt;/p&gt;
&lt;p&gt;With &lt;em&gt;R&lt;/em&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="with-r" src="images/2019-03/phase-plot-1.png"&gt;&lt;/p&gt;
&lt;p&gt;With &lt;em&gt;Python&lt;/em&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="with-py" src="images/2019-03/phase-plotPy-1.png"&gt;&lt;/p&gt;
&lt;p&gt;After a bit of googling, I found an &lt;em&gt;R&lt;/em&gt; library called &lt;em&gt;reticulate&lt;/em&gt; that
allows to run &lt;em&gt;Python&lt;/em&gt; code from inside &lt;em&gt;R&lt;/em&gt;. If this works (I thought) I
can keep the best of both approaches! And, so far, it works flawlessly!&lt;/p&gt;
&lt;h2&gt;How to do it&lt;/h2&gt;
&lt;p&gt;First of all, &lt;em&gt;R&lt;/em&gt; and &lt;em&gt;Python&lt;/em&gt; are obviously reequired. &lt;em&gt;reticulate&lt;/em&gt; can
be installed and loaded as usual in &lt;em&gt;R&lt;/em&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nx"&gt;install&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;packages&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;reticulate&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kn"&gt;library&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;reticulate&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;For &lt;a href="https://community.rstudio.com/t/matplotlib-inline-plots-with-reticulate-on-rstudio-server/16357"&gt;some
reason&lt;/a&gt;
I still don't fully understand, I had to add these two lines to make
&lt;em&gt;Matplotlib&lt;/em&gt; work properly.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;matplotlib&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;import&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;matplotlib&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;convert&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;matplotlib&lt;/span&gt;&lt;span class="o"&gt;$&lt;/span&gt;&lt;span class="nf"&gt;use&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Agg&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Now, we can insert python chunks in &lt;em&gt;Rmarkdown&lt;/em&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="err"&gt;```&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;python&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;eval&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;numpy&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;np&lt;/span&gt;
&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt;
&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="err"&gt;```&lt;/span&gt;

&lt;span class="c1"&gt;## 0.707106781187&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;Interaction&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;reticulate&lt;/em&gt; works creating two different sessions, one of &lt;em&gt;R&lt;/em&gt; and
another of &lt;em&gt;Python&lt;/em&gt;. In order to unleash all the power of this
combination, we need a way of passing variables between both sessions.
This is done via the dataframe &lt;code&gt;py&lt;/code&gt;. See examples below:&lt;/p&gt;
&lt;h3&gt;From &lt;em&gt;R&lt;/em&gt; to &lt;em&gt;Python&lt;/em&gt;&lt;/h3&gt;
&lt;p&gt;Create a variable and store it as a field of &lt;code&gt;py&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;```{r}&lt;/span&gt;
&lt;span class="n"&gt;py$foo &amp;lt;- &amp;quot;Hi!&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;```&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;The variable will be available in the &lt;em&gt;Python&lt;/em&gt; session:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;```{python}
print(foo)
```

## Hi!
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3&gt;From &lt;em&gt;Python&lt;/em&gt; to &lt;em&gt;R&lt;/em&gt;&lt;/h3&gt;
&lt;p&gt;Create a variable inside the &lt;em&gt;Python&lt;/em&gt; session:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;```{python}
bar = &amp;quot;How are you?&amp;quot;
```
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;The variable will be available as a field of the dataframe &lt;code&gt;py&lt;/code&gt; in the
&lt;em&gt;R&lt;/em&gt; session:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;```{r}
py$bar
```

## [1] &amp;quot;How are you?&amp;quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;This entry appears in &lt;a href="https://www.r-bloggers.com"&gt;R-bloggers.com&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;[1] Actually, there is a second (and less important) reason: &lt;em&gt;Shiny&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;[2] It is true that &lt;em&gt;Python&lt;/em&gt; also has &lt;em&gt;Jupyter&lt;/em&gt; for reproducible
research, but the results are just not as neat as with &lt;em&gt;R&lt;/em&gt;.&lt;/p&gt;</content><category term="Blog"></category><category term="math"></category><category term="R"></category><category term="Python"></category></entry><entry><title>Animations in R</title><link href="https://pabrod.github.io/animations-r.html" rel="alternate"></link><published>2018-12-02T14:22:33+01:00</published><updated>2018-12-02T14:22:33+01:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2018-12-02:/animations-r.html</id><summary type="html">&lt;p&gt;How to make animations in R using ggplot2 and gganimate&lt;/p&gt;</summary><content type="html">&lt;script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML' async&gt;&lt;/script&gt;

&lt;p&gt;I've recently discovered the package &lt;em&gt;gganimate&lt;/em&gt; thanks to this
&lt;a href="http://blog.schochastics.net/post/beautiful-chaos-the-double-pendulum/"&gt;brilliant
example&lt;/a&gt;.
I've been playing with the package during this weekend, and I created
some examples that I spread through
&lt;a href="https://twitter.com/DonMostrenco/status/1068791278173908992"&gt;Twitter&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Some Twitter users showed interest in knowing more. I hope this short
tutorial can satisfy them.&lt;/p&gt;
&lt;h2&gt;Libraries used&lt;/h2&gt;
&lt;p&gt;We're going to need the following libraries:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c1"&gt;# Numerical&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;library&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pracma&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;# To calculate the Taylor polynomials&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;library&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;reshape&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;# For using melt&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c1"&gt;# Display&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;library&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ggplot2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;# For plotting&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;library&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ggthemes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;# Also for plotting&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;library&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;gganimate&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;# For animating. Install using devtools::install_github(&amp;#39;thomasp85/gganimate&amp;#39;)&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;library&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;kableExtra&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;# To display nice tables&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;Animating a moving particle&lt;/h2&gt;
&lt;p&gt;Here we'll generate a moving particle. First, we need the positions in
time. In our case, the dynamical equations will be given by:&lt;/p&gt;
&lt;div class="math"&gt;$$ \\begin{cases} x(t) = cos(t) \\\\ y(t) = sin(2t) \\end{cases}$$&lt;/div&gt;
&lt;p&gt;So we generate the series and store them in a dataframe:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;ts&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;seq&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="kc"&gt;pi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;length.out&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;xs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;cos&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ts&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;ys&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;sin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;ts&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;particle&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;data.frame&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ts&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ts&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;xs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;xs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ys&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ys&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;The code for generating the animation follows a very similar syntax to
&lt;em&gt;ggplot&lt;/em&gt;. In this case, we indicate that the values of &lt;em&gt;ts&lt;/em&gt; should be
used as the transition time.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;    ggplot(data = particle) +
      geom_point(aes(x = xs, y = ys), col = &amp;#39;red&amp;#39;) + # Generate the plot
      theme_tufte() + # Make ...
      labs(x = &amp;#39;x&amp;#39;, y = &amp;#39;y&amp;#39;) + # ... it ...
      scale_y_continuous(limits = c(-2, 2)) + # ... look ...
      guides(col = FALSE) + # ... pretty.
      transition_time(ts) + # And animate!
      ease_aes(&amp;#39;linear&amp;#39;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;img alt="a" src="images/2018-12/Movement-1.gif"&gt;&lt;/p&gt;
&lt;h2&gt;Animating a Taylor series&lt;/h2&gt;
&lt;p&gt;Let's see now a more complex example. Our purpose is to explore Taylor
polynomials of different degrees approximating the function&lt;/p&gt;
&lt;div class="math"&gt;$$f(x) = cos(\\frac{3x}{2}) e^{-x} $$&lt;/div&gt;
&lt;p&gt;around a given point.&lt;/p&gt;
&lt;p&gt;Thus, we begin creating the function:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nf"&gt;cos&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;1.5&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nf"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;In this case, we want to compare how good is the performance of Taylor
polynomials of different orders. The data we have to generate is a bit
more complex than before.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;xs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;seq&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1500&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;# Values of x&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;x0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;# Value of x where the Taylor series will be centered&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;ys&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;matrix&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;nrow&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;xs&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ncol&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;# Extract Taylor polynomials of orders 0 to 8&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="n"&gt;order&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;# Indexes have to be positive, but first order is 0&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;order&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;# A Taylor polynomial of order zero is just...&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;ys&lt;/span&gt;&lt;span class="p"&gt;[,&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;# ... a constant function&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;taylor_coefs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;taylor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;order&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;# Get polynomial&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;ys&lt;/span&gt;&lt;span class="p"&gt;[,&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;polyval&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;taylor_coefs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;xs&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;# Evaluate polynomial&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c1"&gt;# Rewrite as dataframe&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ys&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;colnames&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;seq&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;melt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cbind&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;xs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;rep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;xs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;xs&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;colnames&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;order&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;ys&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;xs&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;f&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;The resulting dataframe is a collection of polynomials of different
orders evaluated at each point in &lt;em&gt;xs&lt;/em&gt;. Additionally, we added the
values of the original function &lt;em&gt;f(x)&lt;/em&gt;, also at each point:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th align="left"&gt;order&lt;/th&gt;
&lt;th align="right"&gt;ys&lt;/th&gt;
&lt;th align="right"&gt;xs&lt;/th&gt;
&lt;th align="right"&gt;f&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class="odd"&gt;
&lt;td align="left"&gt;0&lt;/td&gt;
&lt;td align="right"&gt;0.0260228&lt;/td&gt;
&lt;td align="right"&gt;-2.000000&lt;/td&gt;
&lt;td align="right"&gt;-7.315110&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="even"&gt;
&lt;td align="left"&gt;0&lt;/td&gt;
&lt;td align="right"&gt;0.0260228&lt;/td&gt;
&lt;td align="right"&gt;-1.994474&lt;/td&gt;
&lt;td align="right"&gt;-7.265955&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="odd"&gt;
&lt;td align="left"&gt;0&lt;/td&gt;
&lt;td align="right"&gt;0.0260228&lt;/td&gt;
&lt;td align="right"&gt;-1.988948&lt;/td&gt;
&lt;td align="right"&gt;-7.216622&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="even"&gt;
&lt;td align="left"&gt;0&lt;/td&gt;
&lt;td align="right"&gt;0.0260228&lt;/td&gt;
&lt;td align="right"&gt;-1.983423&lt;/td&gt;
&lt;td align="right"&gt;-7.167120&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="odd"&gt;
&lt;td align="left"&gt;0&lt;/td&gt;
&lt;td align="right"&gt;0.0260228&lt;/td&gt;
&lt;td align="right"&gt;-1.977897&lt;/td&gt;
&lt;td align="right"&gt;-7.117454&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="even"&gt;
&lt;td align="left"&gt;0&lt;/td&gt;
&lt;td align="right"&gt;0.0260228&lt;/td&gt;
&lt;td align="right"&gt;-1.972371&lt;/td&gt;
&lt;td align="right"&gt;-7.067632&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;A static plot will look like:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;    ggplot(data = df) +
      geom_point(aes(x = xs, y = ys, col = order)) + # Generate basic plot
      geom_point(aes(x = xs, y = f)) + # Plot also original function
      geom_point(aes(x = x0, y = f(x0)), col = &amp;#39;black&amp;#39;, size = 5) + # Remark initial point
      theme_tufte() + # Make it ...
      labs(x = &amp;#39;x&amp;#39;, y = &amp;#39;y&amp;#39;) + # ... look ...
      scale_y_continuous(limits = c(-2, 2)) # ... pretty.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;img alt="a" src="images/2018-12/Plot-static-1.png"&gt;&lt;/p&gt;
&lt;p&gt;In order to animate it, now we will use the command
&lt;em&gt;transition_states&lt;/em&gt;, using &lt;em&gt;order&lt;/em&gt; (the order of the Taylor polynomial)
as the animation parameter. The parameters &lt;em&gt;transition_length&lt;/em&gt; and
&lt;em&gt;state_length&lt;/em&gt; control how much time each state stays in screen, and
how long the transition between states should look.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;    ggplot(data = df) +
      geom_point(aes(x = xs, y = ys), col = &amp;#39;red&amp;#39;) + # Add basic plot
      geom_point(aes(x = xs, y = f)) + # Plot also original function
      geom_point(aes(x = x0, y = f(x0)), col = &amp;#39;red&amp;#39;, size = 5) + # Remark initial point
      theme_tufte() + # Make ...
      labs(x = &amp;#39;x&amp;#39;, y = &amp;#39;y&amp;#39;) + # ... it ...
      scale_y_continuous(limits = c(-2, 2)) + # ... look ...
      guides(col = FALSE) + # ... pretty.
      transition_states(order, transition_length = 1, state_length = 0.5) + # And animate!
      ease_aes(&amp;#39;linear&amp;#39;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;img alt="a" src="images/2018-12/Plot-animated-1.gif"&gt;&lt;/p&gt;
&lt;p&gt;The result could not look nicer!&lt;/p&gt;
&lt;p&gt;This entry appears in &lt;a href="https://www.r-bloggers.com"&gt;R-bloggers.com&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;PS: If you liked this post, &lt;a href="https://www.geogebra.org/m/CeW2gCzH"&gt;this
visualization&lt;/a&gt; I made in &lt;em&gt;GeoGebra&lt;/em&gt;
some time ago may also be of your interest.&lt;/p&gt;
&lt;script type="text/javascript"&gt;if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) {
    var align = "center",
        indent = "0em",
        linebreak = "false";

    if (false) {
        align = (screen.width &lt; 768) ? "left" : align;
        indent = (screen.width &lt; 768) ? "0em" : indent;
        linebreak = (screen.width &lt; 768) ? 'true' : linebreak;
    }

    var mathjaxscript = document.createElement('script');
    mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#';
    mathjaxscript.type = 'text/javascript';
    mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=TeX-AMS-MML_HTMLorMML';

    var configscript = document.createElement('script');
    configscript.type = 'text/x-mathjax-config';
    configscript[(window.opera ? "innerHTML" : "text")] =
        "MathJax.Hub.Config({" +
        "    config: ['MMLorHTML.js']," +
        "    TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," +
        "    jax: ['input/TeX','input/MathML','output/HTML-CSS']," +
        "    extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," +
        "    displayAlign: '"+ align +"'," +
        "    displayIndent: '"+ indent +"'," +
        "    showMathMenu: true," +
        "    messageStyle: 'normal'," +
        "    tex2jax: { " +
        "        inlineMath: [ ['\\\\(','\\\\)'] ], " +
        "        displayMath: [ ['$$','$$'] ]," +
        "        processEscapes: true," +
        "        preview: 'TeX'," +
        "    }, " +
        "    'HTML-CSS': { " +
        "        availableFonts: ['STIX', 'TeX']," +
        "        preferredFont: 'STIX'," +
        "        styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'inherit ! important'} }," +
        "        linebreaks: { automatic: "+ linebreak +", width: '90% container' }," +
        "    }, " +
        "}); " +
        "if ('default' !== 'default') {" +
            "MathJax.Hub.Register.StartupHook('HTML-CSS Jax Ready',function () {" +
                "var VARIANT = MathJax.OutputJax['HTML-CSS'].FONTDATA.VARIANT;" +
                "VARIANT['normal'].fonts.unshift('MathJax_default');" +
                "VARIANT['bold'].fonts.unshift('MathJax_default-bold');" +
                "VARIANT['italic'].fonts.unshift('MathJax_default-italic');" +
                "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" +
            "});" +
            "MathJax.Hub.Register.StartupHook('SVG Jax Ready',function () {" +
                "var VARIANT = MathJax.OutputJax.SVG.FONTDATA.VARIANT;" +
                "VARIANT['normal'].fonts.unshift('MathJax_default');" +
                "VARIANT['bold'].fonts.unshift('MathJax_default-bold');" +
                "VARIANT['italic'].fonts.unshift('MathJax_default-italic');" +
                "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" +
            "});" +
        "}";

    (document.body || document.getElementsByTagName('head')[0]).appendChild(configscript);
    (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript);
}
&lt;/script&gt;</content><category term="Blog"></category><category term="math"></category><category term="R"></category></entry><entry><title>The spectrum of my personal accountancy</title><link href="https://pabrod.github.io/spectrum-accountancy.html" rel="alternate"></link><published>2018-11-28T13:54:29+01:00</published><updated>2018-11-28T13:54:29+01:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2018-11-28:/spectrum-accountancy.html</id><summary type="html">&lt;p&gt;Application of Fourier analysis to a personal accountancy timeseries&lt;/p&gt;</summary><content type="html">&lt;script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML' async&gt;&lt;/script&gt;

&lt;p&gt;Since year 2012, I keep and maintain a &lt;em&gt;.csv&lt;/em&gt; file containing
information about my bank accounts. The most relevant data is the time
series of the total amount of money vs. date. The table below shows a
small subset of this data:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr class="header"&gt;
&lt;th align="left"&gt;Date&lt;/th&gt;
&lt;th align="right"&gt;Total&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class="odd"&gt;
&lt;td align="left"&gt;2012-09-26&lt;/td&gt;
&lt;td align="right"&gt;641.52&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="even"&gt;
&lt;td align="left"&gt;2012-09-24&lt;/td&gt;
&lt;td align="right"&gt;703.52&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="odd"&gt;
&lt;td align="left"&gt;2012-09-22&lt;/td&gt;
&lt;td align="right"&gt;723.52&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="even"&gt;
&lt;td align="left"&gt;2012-09-19&lt;/td&gt;
&lt;td align="right"&gt;755.52&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="odd"&gt;
&lt;td align="left"&gt;2012-09-18&lt;/td&gt;
&lt;td align="right"&gt;765.52&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;When plotted, the data looks as noisy as the example on the figure below. The most noticeable regularity is the periodic increment at the end of each month, corresponding with the &lt;strong&gt;pay day&lt;/strong&gt;... followed by a big expenditure corresponding to paying the &lt;strong&gt;rent&lt;/strong&gt;. Notice also the higher pay in late June, corresponding to the summer extra salary that is customarily applied in several countries. The timeseries looks irregular, but there is some clear periodical component on it.&lt;/p&gt;
&lt;p&gt;&lt;img alt="a" src="images/2018-11/Plot-data-1.png"&gt;&lt;/p&gt;
&lt;p&gt;I know that the Fourier transform of a continuous timeseries is the perfect tool for spotting underlying periodicities. But my timeseries is uneven and discontinous. How can we fix this?&lt;/p&gt;
&lt;h2&gt;First step: Interpolation&lt;/h2&gt;
&lt;p&gt;The first problem, unevenness of data, can be solved by good old interpolation methods. The only tricky part here is that our &lt;em&gt;x&lt;/em&gt; coordinates are dates, so it is advisable to use &lt;em&gt;lubridate&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I used the following:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nf"&gt;library&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dplyr&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;library&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lubridate&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;first_day&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;min&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="o"&gt;$&lt;/span&gt;&lt;span class="n"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;last_day&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="o"&gt;$&lt;/span&gt;&lt;span class="n"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Add a column with relative day as an integer&lt;/span&gt;
&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;mutate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Day_index&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;as.numeric&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="o"&gt;$&lt;/span&gt;&lt;span class="n"&gt;Date&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;first_day&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="c1"&gt;# Create the time vector used for interpolation&lt;/span&gt;
&lt;span class="n"&gt;all_days&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;seq&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;first_day&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;last_day&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;by&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;all_indices&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;seq&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;length&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;all_days&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;by&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;daily_total&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;approx&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="o"&gt;$&lt;/span&gt;&lt;span class="n"&gt;Day_index&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="o"&gt;$&lt;/span&gt;&lt;span class="n"&gt;Total&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;xout&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;all_indices&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;yright&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;head&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="o"&gt;$&lt;/span&gt;&lt;span class="n"&gt;Total&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;Second step: Fourier transform&lt;/h2&gt;
&lt;p&gt;For discrete, evenly spaced timeseries as the one we have after interpolation, fast Fourier transform can be used to estimate dominant frequencies. The fast Fourier transform or &lt;em&gt;FFT&lt;/em&gt; is defined as a function of an integer parameter &lt;em&gt;k&lt;/em&gt; and a set of &lt;em&gt;N&lt;/em&gt; complex numbers {&lt;em&gt;x&lt;/em&gt;&lt;sub&gt;0&lt;/sub&gt;, &lt;em&gt;x&lt;/em&gt;&lt;sub&gt;1&lt;/sub&gt;, ...&lt;em&gt;x&lt;/em&gt;&lt;sub&gt;&lt;em&gt;N&lt;/em&gt; − 1&lt;/sub&gt;}.&lt;/p&gt;
&lt;p&gt;The definition goes as follows:&lt;/p&gt;
&lt;div class="math"&gt;$$
X\_k = FFT \[ k; \\lbrace x\_n \\rbrace\] \\equiv  \\sum\_{n=0}^{N-1} x\_n\\cdot e^{-i 2 \\pi k \\frac{n}{N}}
$$&lt;/div&gt;
&lt;p&gt;and the inverse:&lt;/p&gt;
&lt;div class="math"&gt;$$
x\_n = FFT^{-1} \[ n; \\lbrace X\_k \\rbrace\] \\equiv  \\frac{1}{N}\\sum\_{k=0}^{N-1} X\_k \\cdot  e^{i 2 \\pi k \\frac{n}{N}}
$$&lt;/div&gt;
&lt;p&gt;The &lt;em&gt;FFT&lt;/em&gt; can be used to estimate the spectrum of a signal. While doing this, it is important to note that &lt;em&gt;n&lt;/em&gt; and &lt;em&gt;k&lt;/em&gt; are unit-less vector indices. In order to link those indices with physical quantities as time and frequency, we could notice that:&lt;/p&gt;
&lt;div class="math"&gt;$$
x_n = x(n \cdot \Delta t) \equiv x(t_n)
$$&lt;/div&gt;
&lt;p&gt;where &lt;em&gt;Δ&lt;/em&gt;&lt;em&gt;t&lt;/em&gt; is the sampling period. If we take a number &lt;em&gt;N&lt;/em&gt; of samples, the final sample time should be:&lt;/p&gt;
&lt;div class="math"&gt;$$
t_{end} = N \cdot \Delta t \equiv t_N
$$&lt;/div&gt;
&lt;p&gt;Going to our first equation with all this in mind, we have:&lt;/p&gt;
&lt;div class="math"&gt;$$
X\_k \\equiv \\\\
\\sum\_{n=0}^{N-1} x\_n \\cdot e^{-i 2 \\pi k \\frac{n}{N}} = \\\\
\\sum\_{n=0}^{N-1} x(n \\cdot \\Delta t) \\cdot e^{-i 2 \\pi k \\frac{n \\cdot \\Delta t}{t\_{end}}} = \\\\
\\sum\_{t\_n=0}^{t\_{end}-\\Delta t} x(t\_n) \\cdot e^{-i 2 \\pi k \\frac{t\_n}{t\_{end}}} = \\\\
\\sum\_{t\_n=0}^{t\_{end}-\\Delta t} x(t\_n) \\cdot e^{-i \\frac{2 \\pi k}{t\_{end}} t\_n} = \\\\
\\sum\_{t\_n=0}^{t\_{end}-\\Delta t} x(t\_n) \\cdot e^{-i \\omega\_k t\_n}
$$&lt;/div&gt;
&lt;p&gt;so, the link between the indices &lt;em&gt;k&lt;/em&gt; and the corresponding physical frequencies &lt;em&gt;ω&lt;/em&gt;&lt;sub&gt;&lt;em&gt;k&lt;/em&gt;&lt;/sub&gt; is given by:&lt;/p&gt;
&lt;div class="math"&gt;$$
\\omega\_k = \\frac{2 \\pi}{t\_{end}} k
$$&lt;/div&gt;
&lt;p&gt;We just added units (and thus, physical) significance to the indexes &lt;em&gt;k&lt;/em&gt; and &lt;em&gt;n&lt;/em&gt;!&lt;/p&gt;
&lt;p&gt;The (quite primitive) code I used for doing this is:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;fft_spectrum&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ts&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ys&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;as.freq&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="c1"&gt;# Translate k indices into frequencies&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="n"&gt;tEnd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;tail&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ts&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="n"&gt;fs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;seq&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;length&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ys&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="m"&gt;-1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;tEnd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;# In T^-1 units (typically Hz, if the time is in seconds)&lt;/span&gt;

&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="c1"&gt;#Perform fast Fourier transform&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="n"&gt;Xk&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;Mod&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;fft&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ys&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nf"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;as.freq&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;# Use frequencies&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nf"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Xk&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Xk&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;else&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;# Use periods&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nf"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;T&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Xk&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Xk&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;Results&lt;/h2&gt;
&lt;p&gt;After applying the two algorithms described above I find the following distribution of the relative lengths of each period:&lt;/p&gt;
&lt;p&gt;&lt;img alt="b" src="images/2018-11/Frequencies-1.png"&gt;&lt;/p&gt;
&lt;p&gt;Note that the strengths corresponding to periods of &lt;em&gt;30&lt;/em&gt; and &lt;em&gt;31&lt;/em&gt; days are higher than their neighbors, corresponding to pay-days and monthly payments. Even my very basic algorithm could see it!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;PS: I removed several details, plus trimmed both vertical and horizontal scales. I did this in order to keep my privacy. After all, the FFT is an invertible operation!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This entry appears in &lt;a href="https://www.r-bloggers.com"&gt;R-bloggers.com&lt;/a&gt; &lt;/p&gt;
&lt;script type="text/javascript"&gt;if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) {
    var align = "center",
        indent = "0em",
        linebreak = "false";

    if (false) {
        align = (screen.width &lt; 768) ? "left" : align;
        indent = (screen.width &lt; 768) ? "0em" : indent;
        linebreak = (screen.width &lt; 768) ? 'true' : linebreak;
    }

    var mathjaxscript = document.createElement('script');
    mathjaxscript.id = 'mathjaxscript_pelican_#%@#$@#';
    mathjaxscript.type = 'text/javascript';
    mathjaxscript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=TeX-AMS-MML_HTMLorMML';

    var configscript = document.createElement('script');
    configscript.type = 'text/x-mathjax-config';
    configscript[(window.opera ? "innerHTML" : "text")] =
        "MathJax.Hub.Config({" +
        "    config: ['MMLorHTML.js']," +
        "    TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'none' } }," +
        "    jax: ['input/TeX','input/MathML','output/HTML-CSS']," +
        "    extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']," +
        "    displayAlign: '"+ align +"'," +
        "    displayIndent: '"+ indent +"'," +
        "    showMathMenu: true," +
        "    messageStyle: 'normal'," +
        "    tex2jax: { " +
        "        inlineMath: [ ['\\\\(','\\\\)'] ], " +
        "        displayMath: [ ['$$','$$'] ]," +
        "        processEscapes: true," +
        "        preview: 'TeX'," +
        "    }, " +
        "    'HTML-CSS': { " +
        "        availableFonts: ['STIX', 'TeX']," +
        "        preferredFont: 'STIX'," +
        "        styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: 'inherit ! important'} }," +
        "        linebreaks: { automatic: "+ linebreak +", width: '90% container' }," +
        "    }, " +
        "}); " +
        "if ('default' !== 'default') {" +
            "MathJax.Hub.Register.StartupHook('HTML-CSS Jax Ready',function () {" +
                "var VARIANT = MathJax.OutputJax['HTML-CSS'].FONTDATA.VARIANT;" +
                "VARIANT['normal'].fonts.unshift('MathJax_default');" +
                "VARIANT['bold'].fonts.unshift('MathJax_default-bold');" +
                "VARIANT['italic'].fonts.unshift('MathJax_default-italic');" +
                "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" +
            "});" +
            "MathJax.Hub.Register.StartupHook('SVG Jax Ready',function () {" +
                "var VARIANT = MathJax.OutputJax.SVG.FONTDATA.VARIANT;" +
                "VARIANT['normal'].fonts.unshift('MathJax_default');" +
                "VARIANT['bold'].fonts.unshift('MathJax_default-bold');" +
                "VARIANT['italic'].fonts.unshift('MathJax_default-italic');" +
                "VARIANT['-tex-mathit'].fonts.unshift('MathJax_default-italic');" +
            "});" +
        "}";

    (document.body || document.getElementsByTagName('head')[0]).appendChild(configscript);
    (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript);
}
&lt;/script&gt;</content><category term="Blog"></category><category term="math"></category><category term="R"></category></entry><entry><title>Interactive applet: daylight saving time in Spain</title><link href="https://pabrod.github.io/daylight-saving.html" rel="alternate"></link><published>2018-09-03T13:51:47+02:00</published><updated>2018-09-03T13:51:47+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2018-09-03:/daylight-saving.html</id><summary type="html">&lt;p&gt;A visualization applet&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;em&gt;This is a translation of the essay "Interactivo: ¿Cómo me afecta el cambio de hora?", originally published &lt;a href="https://fuga.naukas.com/2018/09/02/interactivo-como-me-afecta-el-cambio-de-hora/"&gt;here&lt;/a&gt; in Spanish.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The possibility of cancelling daylight saving time in the European Union has been one of the highlights of the week.&lt;/p&gt;
&lt;p&gt;In order to shed some light over this (surprisingly) controversial topic, I made this interactive visualization. It allows to predict the daylight hours in several Spanish cities and towns, under the different possible scenarios.&lt;/p&gt;
&lt;p&gt;To play with it, follow &lt;a href="https://pabrod.shinyapps.io/cambio-de-hora/"&gt;this link&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The code is freely available &lt;a href="https://github.com/PabRod/cambio-de-hora"&gt;on GitHub&lt;/a&gt;.&lt;/p&gt;</content><category term="Blog"></category><category term="physics"></category></entry><entry><title>Seminar announcement: An example of reproducible research (University College Cork)</title><link href="https://pabrod.github.io/seminar-cork.html" rel="alternate"></link><published>2018-08-21T14:52:25+02:00</published><updated>2018-08-21T14:52:25+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2018-08-21:/seminar-cork.html</id><summary type="html">&lt;p&gt;An example of reproducible research, 29 August 2018, University College Cork&lt;/p&gt;</summary><content type="html">&lt;h2&gt;Title&lt;/h2&gt;
&lt;p&gt;Neutral competition and chaos. An example of reproducible research&lt;/p&gt;
&lt;h2&gt;Abstract&lt;/h2&gt;
&lt;p&gt;Have you ever thought of how many lines of scientific code are hidden in researcher's hard drives? Have you ever tried to reproduce a complicated algorithm described only with words on a scientific publication? In this talk, I will use my recently released paper as a case study to briefly review the technical possibilities and difficulties regarding publishing, citing and maintaining scientific code.&lt;/p&gt;
&lt;h2&gt;Spacetime coordinates&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;29 August 2018, 12:15-12:35 (local timezone)&lt;/li&gt;
&lt;li&gt;Aula Maxima. University College Cork. Ireland.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Key references&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Rodríguez-Sánchez P, van Nes EH, Scheffer M. Neutral competition boosts chaos in food webs. Preprint available in &lt;a href="http://arxiv.org/abs/1807.06901"&gt;arXiv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Rodríguez-Sánchez P. PabRod/Chaos-and-neutrality: Analysis script for “Neutral competition boosts chaos in food webs”. 2018. Available &lt;a href="https://doi.org/10.5281/zenodo.1319590"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Wilson G, Aruliah DA, Brown CT, Chue Hong NP, Davis M, Guy RT, et al. Best Practices for Scientific Computing. Eisen JA, editor. PLoS Biol [Internet]. 2014 Jan 7. Available &lt;a href="http://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.1001745"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Slides will be temporarily available &lt;a href="https://www.dropbox.com/s/rb90g1qky5v6ocx/An%20example%20of%20reproducible%20research.pptx?dl=0"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.criticsitn.eu/wp/?page_id=1813"&gt;Workshop's website&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="Blog"></category><category term="announcement"></category></entry><entry><title>Preprint: Neutral competition boosts chaos in food webs</title><link href="https://pabrod.github.io/chaos-neutrality.html" rel="alternate"></link><published>2018-07-19T21:10:16+02:00</published><updated>2018-07-19T21:10:16+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2018-07-19:/chaos-neutrality.html</id><summary type="html">&lt;p&gt;Announcement of the preprint of my first paper&lt;/p&gt;</summary><content type="html">&lt;p&gt;In the early days of quantum theory, all Nobel prizes awarded to researchers working on atomic structure fell under the category of chemistry. I think it was Ernest Rutherford who joked about his instantaneous transformation from a physicist into a chemist when he received the chemistry Nobel prize in 1908.&lt;/p&gt;
&lt;p&gt;I'm certainly not even comparable to the great New Zealander. But I'm also suffering a transformation, from a physicist into a biologist. Unfortunately, mine is not instantaneous. It took literally years of work to publish my first preprint. The title is &lt;a href="https://arxiv.org/abs/1807.06901"&gt;&lt;em&gt;Neutral competition boosts chaos in food webs&lt;/em&gt;&lt;/a&gt;, and it's about population dynamics.&lt;/p&gt;
&lt;p&gt;The document is available in &lt;a href="https://arxiv.org/abs/1807.06901"&gt;arXiv&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Those who, like me, are obsessed with reproducibility, will appreciate knowing that the code I wrote for my analysis is fully available in &lt;a href="https://github.com/PabRod/Chaos-and-neutrality"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Abstract&lt;/h2&gt;
&lt;p&gt;Near-neutrality of competition has been proposed to facilitate coexistence of species because it slows down competitive exclusion, thus making it easier for equalizing mechanisms to maintain diverse communities. An unrelated line of work has shown that chaos can promote coexistence of many species in super-saturated communities. By analyzing a set of numerically simulated food webs, here we link those previously unrelated findings. We show that near-neutrality of competition at the prey's trophic level, in the presence of interactions with natural enemies, increases the chances of developing chaotic dynamics. Our results suggest that near-neutrality may promote biodiversity in two ways: through reducing the rates of competitive displacement and through promoting non-equilibrium dynamics.&lt;/p&gt;
&lt;h2&gt;Authors&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.sparcs-center.org/about-us/staff-contacts/pablo-rodriguez.html"&gt;Pablo Rodríguez-Sánchez&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.sparcs-center.org/about-us/staff-contacts/egbert-van-nes.html"&gt;Egbert H. van Nes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.sparcs-center.org/about-us/staff-contacts/marten-scheffer.html"&gt;Marten Scheffer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All from Wageningen University and Research.&lt;/p&gt;</content><category term="Blog"></category><category term="announcement"></category></entry><entry><title>Seminar announcement: Competition, diversity and the benefits of chaos (Imperial College London)</title><link href="https://pabrod.github.io/seminar-macsim.html" rel="alternate"></link><published>2018-07-04T09:50:14+02:00</published><updated>2018-07-04T09:50:14+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2018-07-04:/seminar-macsim.html</id><summary type="html">&lt;p&gt;Invasive species: a mathematician among biologists, 12 July 2018, Imperial College London&lt;/p&gt;</summary><content type="html">&lt;h2&gt;Event&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://www.criticsitn.eu/wp/?page_id=2201"&gt;Critical transitions, stability and resilience in nature, technology and society: Innovations and Applications&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Title&lt;/h2&gt;
&lt;p&gt;Competition, diversity and the benefits of chaos&lt;/p&gt;
&lt;h2&gt;Abstract&lt;/h2&gt;
&lt;p&gt;In this talk we'll explore how chaos can be the driver not only of unpredictability and disorder, but also of diversity inside an ecosystem. The analysis performed can be easily adapted and generalized to different kinds of competition systems, both inside and outside biology.&lt;/p&gt;
&lt;h2&gt;Key references&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Huisman J, Weissing FJ. Biodiversity of plankton by species oscillations and chaos. Nature [Internet]. 1999 Nov 25;402(6760):407–10. Available &lt;a href="http://www.nature.com/articles/46540"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Dakos V, Beninca E, van Nes EH, Philippart CJM, Scheffer M, Huisman J. Interannual variability in species composition explained as seasonally entrained chaos. Proc R Soc B Biol Sci. 2009 Aug 22 ;276(1669):2871–80. Available &lt;a href="http://rspb.royalsocietypublishing.org/cgi/doi/10.1098/rspb.2009.0584"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Spacetime coordinates&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;12 July 2018, 9:30-17:00 (local timezone)&lt;/li&gt;
&lt;li&gt;Clore Lecture Theatre. Department of Mathematics, Imperial College London. South Kensington Campus, Huxley Building, 180 Queen's Gate, Kensington, London SW7 2AZ&lt;/li&gt;
&lt;/ul&gt;</content><category term="Blog"></category><category term="announcement"></category></entry><entry><title>Things I've learned working in a multidisciplinary group</title><link href="https://pabrod.github.io/multidisciplinary.html" rel="alternate"></link><published>2018-06-12T16:04:02+02:00</published><updated>2018-06-12T16:04:02+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2018-06-12:/multidisciplinary.html</id><summary type="html">&lt;p&gt;I work as a mathematician in an... aquatic ecology department!&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;em&gt;This is a translation of the essay "Cosas que he aprendido trabajando en un grupo multidisciplinar", originally published &lt;a href="http://fuga.naukas.com/2018/06/12/grupo-multidisciplinar"&gt;here&lt;/a&gt; in Spanish.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;As some of you already know, I'm a physicist. Despite that, I work as a mathematician in an... aquatic ecology department! This situation, apart from creating an identity crisis on me, makes me spend quite some time thinking about the diffuse and popular concept of "multidisciplinarity".&lt;/p&gt;
&lt;p&gt;The underlying idea behind multidisciplinarity is that it is not possible to bundle knowledge in fixed categories, mostly motivated by academical tradition. The borders between disciplines are diffuse. Two clear examples: no one can trace a solid line between physics and mathematics (where does mechanics end and analysis starts?), nor between physics and chemistry (is molecular structure chemistry or quantum mechanics?). An ideal multidisciplinary team contains experts from different fields, increasing thus the reach of the problems that can be addressed. In this kind of teams, some events of "epiphany", called "knowledge transfer" in this context, to happen. In those moments the whole group learns and adopts a new idea or method from another discipline.&lt;/p&gt;
&lt;p&gt;The idea sounds good, but the practical implementation has some difficulties worth mentioning. To begin with, this groups usually are created inside traditional departments. This makes one of the disciplines to be over-represented (in my case, biology), and this creates some inertia. Some people tell the joke that a multidisciplinary team is a traditional department that once hired a physicist for helping with the simulations.&lt;/p&gt;
&lt;p&gt;One may think (at least I did) that the bigger difficulty in order to adapt to a multidisciplinary group would be acquiring the required knowledge from the other disciplines. Curiously, my experience has been that this difficulty is secondary: precisely because being inside a multidisciplinary team, there's always some expert close who can help. Then, that is the main difficulty? No doubt: &lt;strong&gt;communication&lt;/strong&gt;, and on a very deep level. Different disciplines use not only different technical jargon (this is the less important problem), but also different tools and, more seriously, they have different academical cultures.&lt;/p&gt;
&lt;p&gt;And academical cultures are a more serious difficulty than it may seem. Nowadays, I can identify a physicist, engineer or mathematician just looking at his face when I say: &lt;em&gt;"I am the only one using LaTeX in my department"&lt;/em&gt;. These small details affect the way papers are written, and even the way problems are solved (and even posed!). In the next lines we'll see some examples.&lt;/p&gt;
&lt;p&gt;In my everyday life I collaborate with biologists and mathematicians in the posing, analysis and solving of mathematical models with biological interest. In both groups I've observed ways of working that I personally like... and some others that I like less.&lt;/p&gt;
&lt;p&gt;Among mathematicians, I find remarkable the exquisite care they put in notation, and their detail in the problem-posing phase. On the other hand, they tend to be reluctant to apply numerical methods, even when there is no other choice.&lt;/p&gt;
&lt;p&gt;About biologists, it is remarkable that they are never afraid of tackling any problem, regardless of how complex it is. They don't hesitate in using all the numerical artillery as soon as it is possible. To the contrary of mathematicians, they tend to pose the problems in a blurrier way and add more specifications on-the-go. Maybe what I like the less is that some biology journals follow strictly the rule &lt;em&gt;"each printed equation halves the number of readers"&lt;/em&gt;, and they rather write lengthy paragraphs than a single equation containing the same information (if you're lucky, maybe you can find the equation in the appendix).&lt;/p&gt;
&lt;p&gt;I'm pretty sure that some of the physicists' characteristics are strange for them. In fact, it is symptomatic that, from my point of view, mathematicians and biologists lie on both the extremes of a continuum (rigour vs. quick problem solving), in which center curiously and suspiciously lies physics.&lt;/p&gt;
&lt;p&gt;We should not forget that research groups are also human groups, with vices, virtues, interests, etc. In a multidisciplinary group, communication has to be fluid not only in the sense of information transfer but also in the sense of empathetic communication. Not only to understand other people motivations to do things "their way" (you can like it more or less, but there's always a motivation), but also to make the &lt;em&gt;"knowledge transfer"&lt;/em&gt; deserve its name, and not be a mere &lt;em&gt;"I can do it better"&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Maybe, the best abstract of the situation is that, after more than two years working in a multidisciplinary group, I still cannot decide if I love it or hate it. Anyway, I dare to leave here some advice, just in case someone finds it interesting:&lt;/p&gt;
&lt;h2&gt;Understand their methods&lt;/h2&gt;
&lt;p&gt;The first reaction when we face an unusual method tends to be rejection (look, for instance, the scholarly fights about notations for derivative (I wrote about this &lt;a href="http://fuga.naukas.com/2016/03/10/derivadas-con-primas-o-diferenciales/"&gt;here&lt;/a&gt;, in Spanish). My experience is that, even if at the end we decide that "our" method is better suited for the given problem, it is worth to stop and understand the motivations for using something different.&lt;/p&gt;
&lt;h2&gt;Explain your methods&lt;/h2&gt;
&lt;p&gt;Practical example: most people in my department, including my supervisors, use &lt;em&gt;Word&lt;/em&gt;, but I use &lt;em&gt;LaTeX&lt;/em&gt;. At the beginning of my project, I explained to them my reasons for doing so, and we reached minimum agreement about how to collaborate without forcing them to learn how to use  &lt;em&gt;LaTeX&lt;/em&gt;.&lt;/p&gt;
&lt;h2&gt;Learn your own way&lt;/h2&gt;
&lt;p&gt;It is very likely that the sources your colleagues use are not the ideal for you. In the case of mathematical biology, there are books and journals more or less bent towards biological or mathematical styles. When it comes to learning new ideas, I try to use the more mathematical ones. There's no need of not using the expertise you gained during your degree studies. When it comes to publishing, once again, an agreement should be required with your collaborators about the style and the target journal.&lt;/p&gt;
&lt;h2&gt;Make a reasonable partition of your schedule&lt;/h2&gt;
&lt;p&gt;Multidisciplinary groups are rarely evenly composed. Practical example: if you are the only statistician in a medicine department with physicians, chemists and biologists, it is very likely that everyone is interested in your help. Probably, to the contrary, only a couple of other people's projects will be meaningful for your research. This situation may escalate into a problem if you don't establish some reasonable limits for the time you spend helping others.&lt;/p&gt;
&lt;h2&gt;In the end, your thesis is yours&lt;/h2&gt;
&lt;p&gt;To be part of a multidisciplinary group doesn't mean to completely abandon your interests and previous training. At the end, you are the responsible of your publications. Your directors, so to say, occupy the co-pilot seat.&lt;/p&gt;
&lt;h2&gt;Don't apologize for being a physicist, a biologist, ...&lt;/h2&gt;
&lt;p&gt;If your discipline represents a minority inside the group or, even worse, if you are the only representative of it, you may feel that it is not worth giving your opinion. This is a mistake. It is exactly in these situations when you feel you have to say something that nobody before said, when it is most likely that something significant is communicated.&lt;/p&gt;
&lt;p&gt;After all, this why they hired you. Didn't they?&lt;/p&gt;</content><category term="Blog"></category><category term="math"></category><category term="biology"></category></entry><entry><title>Cosas que he aprendido trabajando en un grupo multidisciplinar</title><link href="https://pabrod.github.io/multidisciplinary-es.html" rel="alternate"></link><published>2018-06-12T16:04:02+02:00</published><updated>2018-06-12T16:04:02+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2018-06-12:/multidisciplinary-es.html</id><summary type="html">&lt;p&gt;Un físico que trabaja como matemático en un departamento de ecología acuática&lt;/p&gt;</summary><content type="html">&lt;p&gt;Como algunos de ustedes saben, yo soy físico. A pesar de ello, trabajo como matemático en un departamento de... ¡ecología acuática! Esta situación, además de generarme una considerable crisis de identidad, hace que dedique bastante tiempo a pensar sobre ese concepto tan difuso y tan de moda que es la "multidisciplinaridad".&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Sigue leyendo en &lt;a href="http://fuga.naukas.com/2018/06/12/grupo-multidisciplinar"&gt;Naukas&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</content><category term="Blog"></category><category term="math"></category><category term="biology"></category></entry><entry><title>Seminar announcement: A mathematician among biologists (Imperial College London)</title><link href="https://pabrod.github.io/seminar-imperial.html" rel="alternate"></link><published>2018-06-10T12:27:50+02:00</published><updated>2018-06-10T12:27:50+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2018-06-10:/seminar-imperial.html</id><summary type="html">&lt;p&gt;Invasive species: a mathematician among biologists, 19 June 2018, Imperial College London&lt;/p&gt;</summary><content type="html">&lt;h2&gt;Title&lt;/h2&gt;
&lt;p&gt;Invasive species: a mathematician among biologists&lt;/p&gt;
&lt;h2&gt;Abstract&lt;/h2&gt;
&lt;p&gt;This is a story about multidisciplinarity. It starts with a theoretical physicist being hired as a mathematician by a biology department. But what is the role of a mathematician in such a singular ecosystem? In this talk, we'll learn that the relation between biology and mathematics can be traced back to the XIII century. We'll also learn that the survival of plankton communities is strongly related with chaotic attractors, and how differential geometry had an unexpected role in a science communication problem.&lt;/p&gt;
&lt;h2&gt;Key references&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Huisman J, Weissing FJ. Biodiversity of plankton by species oscillations and chaos. Nature [Internet]. 1999 Nov 25;402(6760):407–10. Available &lt;a href="http://www.nature.com/articles/46540"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Gottwald GA, Melbourne I. On the Implementation of the 0-1 Test for Chaos. SIAM J Appl Dyn Syst [Internet]. 2009 Jan [cited 2017 May 9];8(1):129–45. Available &lt;a href="https://arxiv.org/pdf/0906.1418.pdf%22%3Ehttps://arxiv.org/pdf/0906.1418.pdf"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Zhou JX, Aliyu MDS, Aurell E, Huang S. Quasi-potential landscape in complex multi-stable systems. J R Soc Interface [Internet]. 2012 Dec 7 [cited 2017 Feb 28];9(77):3539–53. Available &lt;a href="http://rsif.royalsocietypublishing.org/cgi/doi/10.1098/rsif.2012.0434"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Bhattacharya S, Zhang Q, Andersen ME. A deterministic map of Waddington’s epigenetic landscape for cell fate specification. BMC Syst Biol [Internet]. 2011 [cited 2017 Feb 28];5. Available &lt;a href="http://www.biomedcentral.com/1752-0509/5/85"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Links&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://wwwf.imperial.ac.uk/~mrasmuss/DynamIC/index.php"&gt;Department's website&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Spacetime coordinates&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;19 June 2018, 14:00-15:00 (local timezone)&lt;/li&gt;
&lt;li&gt;Huxley Building, South Kensington Campus. Room 130. Imperial College London.&lt;/li&gt;
&lt;/ul&gt;
&lt;iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2483.8125522417527!2d-0.1791236342303548!3d51.49830722963361!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x4876055c7df7c537%3A0x2541470e75df5fe0!2sHuxley+Building!5e0!3m2!1ses!2snl!4v1528627031939" width="600" height="450" frameborder="0" style="border:0" allowfullscreen&gt;&lt;/iframe&gt;</content><category term="Blog"></category><category term="announcement"></category></entry><entry><title>Course announcement: Introduction to PDEs</title><link href="https://pabrod.github.io/intro-to-pdes.html" rel="alternate"></link><published>2018-06-06T13:13:30+02:00</published><updated>2018-06-06T13:13:30+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2018-06-06:/intro-to-pdes.html</id><summary type="html">&lt;p&gt;Quick introduction to Partial Differential Equations, 7 June 2018, Wageningen University&lt;/p&gt;</summary><content type="html">&lt;h2&gt;Quick introduction to Partial Differential Equations&lt;/h2&gt;
&lt;p&gt;On Thursday 7th, I'll give a crash course on partial differential equations at Wageningen University. Due to the diversity of backgrounds of the attendants, I'll try to focus in the key concepts, using graphical approaches as much as I can. Later on, we'll move forward to the numerical approach.&lt;/p&gt;
&lt;h2&gt;Outline&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;What's the difference between partial and ordinary differential equations?&lt;/li&gt;
&lt;li&gt;Vector calculus in a nutshell&lt;/li&gt;
&lt;li&gt;Classical PDEs&lt;/li&gt;
&lt;li&gt;Classical boundary conditions&lt;/li&gt;
&lt;li&gt;Hand-on examples with &lt;em&gt;Matlab&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Requirements&lt;/h2&gt;
&lt;p&gt;Please bring your laptop. The numerical examples will be solved using &lt;em&gt;Matlab's PDE Toolbox&lt;/em&gt;.&lt;/p&gt;
&lt;h2&gt;Materials&lt;/h2&gt;
&lt;p&gt;The slides and some code examples are available at &lt;a href="https://github.com/PabRod/intro-to-pdes"&gt;this link&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Spacetime coordinates&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;7 June 2018, 13:30-16:30.&lt;/li&gt;
&lt;li&gt;Room E.111, Lumen.&lt;/li&gt;
&lt;/ul&gt;</content><category term="Blog"></category><category term="math"></category><category term="teaching"></category></entry><entry><title>Embedding a Shiny app inside my blog</title><link href="https://pabrod.github.io/embed-shiny.html" rel="alternate"></link><published>2018-05-05T15:54:09+02:00</published><updated>2018-05-05T15:54:09+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2018-05-05:/embed-shiny.html</id><summary type="html">&lt;p&gt;Embedding shiny apps inside an html page&lt;/p&gt;</summary><content type="html">&lt;p&gt;Some years ago, I started experimenting with the computing language &lt;em&gt;R&lt;/em&gt;. I have to confess that I don't feel fully comfortable with its syntax, which I find particularly difficult. But I forced myself to get used to it. Why? My main reasons were two: &lt;a href="https://yihui.name/knitr/"&gt;knitr&lt;/a&gt; and &lt;a href="https://shiny.rstudio.com"&gt;shiny&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Knitr&lt;/strong&gt; is the perfect tool for literate computing. It allows the user to input a combination of code and markdown text providing a clean, human-readable document as output. Indeed, I'm using knitr for writing parts of this website (for example, the &lt;a href="https://pabrod.github.io/pages/sci-comm.html"&gt;dissemination section&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Shiny&lt;/strong&gt; is great for making interactive apps, and publishing them as easy-to-use webpages.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more (and certainly better) information... just google some tutorials. In this short entry, I only want to show an example of what shiny can do (and see how good it works with my new blog).&lt;/p&gt;
&lt;p&gt;Take a look at the following simulation I made some years ago to teach some basic ideas about statistical inference:&lt;/p&gt;
&lt;iframe src="https://pabrod.shinyapps.io/shiny/"
        style="border: 2px solid black; width: 100%; height: 1000px;"&gt;&lt;/iframe&gt;

&lt;p&gt;The steps followed were:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Write the app itself. Of course, this is the difficult part.&lt;/li&gt;
&lt;li&gt;Publish it. The easiest way is uploading it to &lt;a href="https://www.shinyapps.io"&gt;ShinyApps&lt;/a&gt;. The most popular &lt;em&gt;R&lt;/em&gt; editor, &lt;a href="https://www.rstudio.com"&gt;RStudio&lt;/a&gt;, can do this almost automatically.&lt;/li&gt;
&lt;li&gt;Once this two steps are made, the insertion code I've used is as simple as:&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;iframe src="https://pabrod.shinyapps.io/shiny/"
        style="border: 2px solid black; width: 100%; height: 1000px;"&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;I'm a big fan of simulation and interactive teaching. More apps will be published soon. Some of them can be previewed in &lt;a href="https://www.geogebra.org/u/pablorodriguez"&gt;GeoGebraTube&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This entry appears in &lt;a href="https://www.r-bloggers.com"&gt;R-bloggers.com&lt;/a&gt; &lt;/p&gt;</content><category term="Blog"></category><category term="r"></category><category term="simulation"></category><category term="how-to"></category></entry><entry><title>There's a nerd in my elevator!</title><link href="https://pabrod.github.io/elevator.html" rel="alternate"></link><published>2018-05-01T12:24:00+02:00</published><updated>2018-05-01T12:24:00+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2018-05-01:/elevator.html</id><summary type="html">&lt;p&gt;An elevator, a phone, ... and a nerd&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;em&gt;This text appeared first in &lt;a href="http://fuga.naukas.com/2018/02/06/un-empollon-en-mi-ascensor/"&gt;Naukas&lt;/a&gt;, where was originally written in Spanish.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Recently I started a secondment at the Friedrich Schiller University, in Jena, Germany. Surprisingly, my office during the next months is located in the 18th floor of a skyscraper. The Jentower in particular:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Jentower" src="http://fuga.naukas.com/files/2018/02/2018-01-30-16.34.25-360x640.jpg"&gt;&lt;/p&gt;
&lt;p&gt;But I'm not writing this to boast about the views of my new office. On the contrary, I'll destroy any possible idea of glamour related to work in a place like this. And I'll do it with a confession: I became the crazy guy who leaves his cell phone on the ground while he uses the elevator. Let me explain:&lt;/p&gt;
&lt;p&gt;A building of almost 150 meters high needs fast elevators. The ones in this building have a very powerful, scary acceleration. Then, I remembered that smartphones usually contain an accelerometer, so I tried to measure those accelerations.&lt;/p&gt;
&lt;p&gt;I used an app called &lt;a href="https://sciencejournal.withgoogle.com"&gt;Google Science Journal&lt;/a&gt;, that allows registering data from all sensors available in the phone (accelerometers, light, magnetic field, ...) and export them in a format (.csv) quite easy to analyze on a computer. If you like getting your hands dirty, install it now!&lt;/p&gt;
&lt;p&gt;In the figure below we can see the vertical acceleration profile during my trip to the 18th floor this morning, where we can clearly see the initial "kick" (seconds 9 to 14) and the braking (28 to 33)&lt;/p&gt;
&lt;p&gt;&lt;img alt="accel" src="http://fuga.naukas.com/files/2018/02/acel1-580x391.png"&gt;
Vertical acceleration (excluding gravity)&lt;/p&gt;
&lt;p&gt;Accelerations of 1 m/s^2 sustained during 4 seconds! You can feel that in your stomach!&lt;/p&gt;
&lt;p&gt;Using this data, we can explore a bit further. We can use a time series of the acceleration to compute speed and position. How? Maybe you remember from high school's physics that position, speed and acceleration are related through derivatives. More specifically.&lt;/p&gt;
&lt;p&gt;&lt;img alt="diff" src="http://fuga.naukas.com/files/2018/02/diff.png"&gt;&lt;/p&gt;
&lt;p&gt;With the previous recipe we can compute speed using the position, and then use speed to compute acceleration. Like in a production chain. Nevertheless, in our case we want to do the opposite process. Luckily, we can use indefinite integrals to "revert" our derivatives, and thus our whole "production chain".&lt;/p&gt;
&lt;p&gt;&lt;img alt="int" src="http://fuga.naukas.com/files/2018/02/int.png"&gt;&lt;/p&gt;
&lt;p&gt;So, by integrating the acceleration (to obtain the speed), and then integrating the speed (to obtain the position) we find results like this:&lt;/p&gt;
&lt;p&gt;&lt;img alt="results" src="http://fuga.naukas.com/files/2018/02/all-580x564.png"&gt;
Acceleration, speed and position&lt;/p&gt;
&lt;p&gt;So, using only a device that most of us carry everywhere and some elementary physical concepts we know that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Our elevator runs up at 4 m/s.&lt;/li&gt;
&lt;li&gt;My office is 74 meter above the ground.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Such a great time to be a nerd!&lt;/p&gt;
&lt;p&gt;If someone is interested in exploring a bit deeper into the details (for instance: how to filter out the effects of gravity, how to integrate a time series, ... ) or even experiment with his or her own elevator, &lt;a href="https://github.com/PabRod/elevator-tool"&gt;here is a link&lt;/a&gt; to the code I've used.&lt;/p&gt;</content><category term="Blog"></category><category term="physics"></category><category term="python"></category></entry><entry><title>Un empollón en mi ascensor</title><link href="https://pabrod.github.io/elevator-es.html" rel="alternate"></link><published>2018-05-01T12:24:00+02:00</published><updated>2018-05-01T12:24:00+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2018-05-01:/elevator-es.html</id><summary type="html">&lt;p&gt;Un ascensor, un teléfono móvil... y un empollón&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;em&gt;Este artículo se publicó originalmente en español en &lt;a href="http://fuga.naukas.com/2018/02/06/un-empollon-en-mi-ascensor/"&gt;Naukas&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</content><category term="Blog"></category><category term="physics"></category><category term="python"></category></entry><entry><title>Welcome</title><link href="https://pabrod.github.io/welcome.html" rel="alternate"></link><published>2018-04-23T12:24:00+02:00</published><updated>2018-04-23T12:24:00+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2018-04-23:/welcome.html</id><summary type="html">&lt;p&gt;Description of the motivations and topic of this blog&lt;/p&gt;</summary><content type="html">&lt;p&gt;Despite I have &lt;a href="https://sites.google.com/site/pablorodriguezsanchez/"&gt;a personal webpage&lt;/a&gt; in Google Sites since some years ago, I got tired of updating it. The main reason is that it was an extremely manual task, that forced me to copypaste the same pieces of information in several places. The virtue of lazyness, when well understood, is the mother of programming and automation, so I started exploring other possibilities. In particular, I wanted something that could be well integrated with &lt;a href="https://yihui.name/knitr/"&gt;knitr&lt;/a&gt;. Thanks to the blog &lt;a href="https://rinzewind.org/blog-en/"&gt;Will do stuff for stuff&lt;/a&gt; I discovered &lt;a href="https://blog.getpelican.com"&gt;Pelican&lt;/a&gt;, that allows to create websites from local files in a relatively easy way.&lt;/p&gt;
&lt;p&gt;The two main problems I face at the early days of this new website are:&lt;/p&gt;
&lt;h2&gt;Archiving&lt;/h2&gt;
&lt;p&gt;After some years working in science, I've produced a certain amount of materials that are now spread around at different webpages. Thanks to &lt;a href="https://yihui.name/knitr/"&gt;knitr&lt;/a&gt;, I can keep this registry updated while only keeping updated a Spreadsheet.&lt;/p&gt;
&lt;p&gt;For details, see &lt;a href="https://github.com/PabRod/academic-record"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Translating&lt;/h2&gt;
&lt;p&gt;Pelican gave me a nice surprise: it manages translations very well. This is specially relevant for me, because most of my work before my emigration to the Netherlands is written in Spanish. On the mid term, I hope to translate those materials whom I consider most relevant.&lt;/p&gt;
&lt;h1&gt;What will I find here?&lt;/h1&gt;
&lt;p&gt;The answer is easy: as in any other personal page, here you'll find anything the author considered worth being shared.&lt;/p&gt;
&lt;p&gt;Posts will be written in English, Spanish and/or, to a lesser extent, in Dutch.&lt;/p&gt;</content><category term="Blog"></category><category term="about"></category></entry><entry><title>Bienvenida</title><link href="https://pabrod.github.io/welcome-es.html" rel="alternate"></link><published>2018-04-23T12:24:00+02:00</published><updated>2018-04-23T12:24:00+02:00</updated><author><name>Pablo Rodríguez-Sánchez</name></author><id>tag:pabrod.github.io,2018-04-23:/welcome-es.html</id><summary type="html">&lt;p&gt;Motivación y temática del blog&lt;/p&gt;</summary><content type="html">&lt;p&gt;Aunque hace tiempo que tengo &lt;a href="https://sites.google.com/site/pablorodriguezsanchez/"&gt;una página personal&lt;/a&gt; en Google Sites, lo cierto es que me cansé de actualizarla. El principal motivo es que era una tarea demasiado manual, que me obligaba a actualizar la misma pieza de información en varios lugares distintos. La virtud de la pereza, que bien entendida es la madre de la programación y la automatización, me llevó a investigar otras posibilidades. En particular, buscaba algo que se integrase bien con &lt;a href="https://yihui.name/knitr/"&gt;knitr&lt;/a&gt;. Gracias al blog &lt;a href="https://rinzewind.org/blog-en/"&gt;Will do stuff for stuff&lt;/a&gt; descubrí &lt;a href="https://blog.getpelican.com"&gt;Pelican&lt;/a&gt;, que permite generar sitios web a partir de archivos locales con cierta agilidad.&lt;/p&gt;
&lt;p&gt;Los dos principales problemas a los que me enfrento al abrir esta web son:&lt;/p&gt;
&lt;h2&gt;Reunir&lt;/h2&gt;
&lt;p&gt;Tras varios años dedicándome a la ciencia, he producido una considerable cantidad de materiales que han acabado desperdigados por distintas webs. Soy un tipo ordenado y llevo un registro de todos ellos en una Spreadsheet de GoogleDrive. Usando &lt;a href="https://yihui.name/knitr/"&gt;knitr&lt;/a&gt;, puedo mantener este registro actualizado leyendo de una hoja de cálculo, ahorrándome así la humillación de copiar a mano.&lt;/p&gt;
&lt;p&gt;Detalles &lt;a href="https://github.com/PabRod/academic-record"&gt;aquí&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Traducir&lt;/h2&gt;
&lt;p&gt;Pelican me ha dado una grata sorpresa: gestiona de maravilla las traducciones. Esto es especialmente relevante para mí, pues la mayor parte de mi trabajo previo a mi emigración a los Países Bajos está escrito en lengua española. A medio plazo, me propongo traducir aquellos materiales que considero más relevantes al inglés.&lt;/p&gt;
&lt;h1&gt;¿Qué voy a encontrar aquí?&lt;/h1&gt;
&lt;p&gt;La respuesta es sencilla: como en cualquier blog personal, aquí encontrarás cualquier cosa que el autor considere digna de ser compartida.&lt;/p&gt;
&lt;p&gt;Los idiomas utilizados serán inglés, español y/o en menor medida neerlandés.&lt;/p&gt;</content><category term="Blog"></category><category term="about"></category></entry></feed>