Python para Ciencia y Tecnología, el libro

En junio del 2020, bien dentro de la pandemia, se me ocurrió tirarle la idea a Manu Carlevaro de que escribamos un libro.

Al desubicado no se le ocurrió otra cosa que aceptar.

A Manu yo lo conozco desde el 2009, cuando fui a dar una charla de Python en su postgrado de Herramientas Computacionales para Científicos, así que ya nos conocíamos un poquito y podíamos entender qué podía aportar cada uno al proyecto.

En el HCC, 2016, foto sacada por Manu

El arranque

El concepto base que le tiré era simple pero bien definido: Python para científiques, en castellano. Obviamente, empezamos a tirar ideas, y fuimos empezando a redondear más o menos qué queríamos armar.

En algún momento formalizamos la forma de trabajar: una reunión virtual de una hora por semana para sincronizarnos y charlar sobre lo hecho y lo próximo a hacer. Esta forma de trabajo sigue activa, después de cinco años (obviamente con semanas donde por h o por b no nos pudimos juntar).

Fuimos analizando libros ya escritos sobre Python en particular, y sobre cualquier lenguaje de programación (o informática en general) que estuviese relacionado con ciencia en alguna forma. Fuimos definiendo qué temas queríamos encarar, cómo los queríamos ordenar. Por qué, para qué, para quienes.

La idea primaria del libro es entonces acercar Python al mundo científico. Un texto pensado para quienes se desempeñan en el ámbito científico o tecnológico, a partir de nuestro recorrido conjunto en el dictado del curso que mencioné arriba más todas las experiencias acumuladas por separado durante los últimos veinte años.

La elección del castellano como idioma de escritura es un factor crítico, porque aunque sabemos que el inglés es una herramienta fundamental tanto para programar como para hacer ciencia, estamos convencidos que no debería ser una barrera de entrada.

Las tecnologías

En algún punto nos pusimos a escribir, claro.

Armamos el libro en LaTeX, tecnología que me hizo sacar canas verdes, pero que creo que es la mejor para un proyecto de la magnitud que encaramos. En otras palabras, tiene varias limitaciones y nos tuvimos que pelear en un montón de rincones para lograr lo que queríamos, pero estoy seguro que con cualquier otra tecnología el resultado hubiese sido peor o más trabajoso.

Integrar imágenes, secciones de código desde archivos, o incluso agregar secuencias de comandos en una terminal, eran cosas que LaTeX ya soportaba de una manera u otra. Pero nos enfrentamos a algo que no estaba resuelto: insertar en el texto contenido desde Jupyter Notebooks, que es un soporte esencial para la mayoría de los códigos que usamos en el libro.

Entonces, como no había nada, tuve que armarlo yo, y así nació Jupynotex, el traductor de Jupyter Notebook a LaTeX para incluir notebooks completos o parciales en papers o cualquier tipo de documento. Resulta que le sirve a bastante gente, cada tanto tengo algún issue marcando un bug, o pidiendo alguna funcionalidaad, y ya esta incorporado en la distribución estándar de texlive-science, un conjunto de paquetes de TeX Live para matemáticas, ciencias naturales, ciencia de la computación, etc.

Para compartirnos textos, códigos, y el proyecto en general, usamos git, contra Github, en un repo privado, con la obvia ventaja de tener todo versionado.

El resultado

Luego de cinco años llegamos a la primer versión completa del libro.

La portada del libro

La primera está dedicada completamente al lenguaje propiamente dicho, abordando los temas fundamentales para la comprensión de Python y los elementos básicos que permiten escribir programas. Introducción a Python, tipos de datos, controles de flujo, encapsulando código. Un popurrí de Python más avanzado, clases más en detalle. Entornos de ejecución de Python. Un capítulo sobre la velocidad de procesamiento y cómo mejorarla. También procesamiento en paralelo, y finalmente interfaces gráficas.

En la segunda parte tratamos temas que constituyen herramientas básicas en la práctica de la programación en el ámbito científico y tecnológico. El infaltable Numpy. Aritmética de punto flotante. Matemática simbólica. Versionado de código. Y manipulación de datos para cerrar.

La tercera parte comprende capítulos en los que abordamos algunas tareas de uso frecuente entre los miembros de la comunidad académica y tecnológica. Esta es la parte con menos cohesión entre los temas en sí, pensados para que vayan a la parte que les interesa, aunque quizás no toquen nunca el tema de otro capítulo: Elementos de estadística, modelado estadístico, ecuaciones algebraicas, integración numérica, ecuaciones diferenciales ordinarias, ecuaciones en derivadas parciales, optimización, aprendizaje automático, e incluso procesamiento en GPU.

El resto son las secciones estándares, bibliografía, índice, agradecimientos, info de los autores, un prefacio explicando la razón del libro, una sección que explica cómo mejor aprovechar su lectura, y un destacable prólogo de Pablo Galindo Salgado, que era la única persona del mundo que podía prologar este libro: no hay nadie más en el planeta que junte estas características: científico (físico), desarrollador core de Python, e hispanoparlante.

En total 639 páginas que se pueden descargar como PDF del sitio oficial del libro de forma totalmente gratuita (aunque dejamos allí varias opciones para que nos donen dinero, como agradecimiento o algún tipo de retribución por el esfuerzo realizado).

Además del PDF compartimos en este repo público todos los códigos, de manera que si leés el libro y querés probar algo por tu lado, con clonar ese proyecto ya tenés todo. En ese mismo proyecto de Gihub se pueden dejar comentarios, sugerencias, o feedback en general.

Que lo disfruten.

Comentarios Imprimir

PyCon España 2025

Y pasó que volví a una PyCon, ¡y como exponente! Fue hace unos días en la PyCon España 2025; Sevilla, España.

No volé hasta Sevilla porque me parecía caro, así que saqué avión hasta Madrid, con la idea de ir hasta Sevilla en tren. Cómo tenía un par de días antes y medio día después, lo usé para ver si armaba algún plan en algún lado. Al final no salió nada así que maximicé el tiempo en Sevilla, que nunca había ido.

Llegué bastante entrada la noche del martes. El vuelo de vuelta era el otro martes, pero relativamente temprano, así que volví a Madrid en tren el lunes y pasé allí la noche (¡gracias Juanlu por hospedarme!).

Cuando llegué a Sevilla fui derechito al hostel, revoleé las cosas y me fui a cenar, ya que corría riesgo que no encontrara bar con la cocina abierta. El miércoles lo tuve completo para pasear, caminé para todos lados, saqué un montón de fotos. Es linda Sevilla.

Ya el jueves hice el checkout y me mudé al departamento que habíamos alquilado entre varios.

Las Setas de Sevilla

El resto de la estadía fue en ese departamento, que compartí con Manu y Johanna, Ezequiel, y Fabrizio. Estuvo bárbara la experiencia. Yo a Ezequiel y Fabrizio no los conocía, pero me cayeron bárbaro.

Más allá de la convivencia en sí (ir a comprar cosas, decidir qué cenar, en casa o salir a algún lado, etc) que fue impecable, como somos todos muy nerds fue casi casi como vivir un pseudo PyCamp... jugamos al truco, nos cruzamos info sobre cómo hacer determinadas cosas en la compu, tuvimos charlas muy profundas sobre física, química, domótica, política, situación laboral, etc, etc.

Ezequiel, Manu, Johanna, el que suscribe, y Fabrizio

La PyCon en sí también estuvo muy bien. El venue era un poco alejado del centro (que era donde estábamos nosotres) pero estaba muy bien.

Fui a varias charlas (pero también me quedé bastante charlando por los pasillos); las que más me gustaron fueron "Detrás de escena de FastAPI y amigos para desarrolladores y creadores" de Sebastián Ramírez, "Computación cuántica con Python" de Jara Juana Bermejo Vega, y "Como todo va a cambiar para los debuggers en Python 3.14" de Pablo Galindo Salgado. También estuvo copada la mesa redonda sobre mujeres en STEM e investigación.

A Pablo lo conocí personalmente en la primer noche, en un cóctel de bienvenida para exponentes y organizadores. Yo venía charlando con él por un tema que develaré en el próximo post (ah, se hace el misterioso el pibe), pero nunca nos habíamos cruzado.

Atendeme el "puntero": un abanico que venía en la bolsita de la conf

Mi ponencia fue "Gentil introducción al mundo asincrónico". Es una charla que había dado varias veces, pero siempre peleando contra el tiempo. Acá directamente la propuse como taller.

La extendí apenas para aclarar algunos puntos, y durante la presentación expliqué bien los códigos. Estuve apenas más de dos horas, y la gente se fue muy contenta. Me estuvieron felicitando por los pasillos el resto de los dos días.

Hermosísimo el hostel

Fue un viaje que disfruté montón. Vamos a tratar de ir volviendo al ruedo.

Comentarios Imprimir

Página principal

Luego de tantísimo años cambié la página de entrada a mi sitio. Ahora cuando van a taniquetil.com.ar, en vez de llevarles al blog como siempre, redirecciona a facundo.taniquetil.com.ar.

Esta es una página nueva que armé con motivo de la pronta liberación del libro Python en Ciencia y Tecnología (que estuvimos escribiendo durante cinco años con mi amigo personal Manuel Carlevaro).

En realidad ya venía con ganas de hacer algo así: una página default con links principales a mis otras actividades (para lo cual mucha gente usa Linktree), pero todavía no me había tomado el trabajo. Tener que apuntar la bio del libro a una "página base" me terminó de decidir, y ahí la armé.

Una cena con mil cositas ricas, del último viaje de laburo

Obviamente que desde esta página principal apunto a mi blog (el principal medio para registrar eventos de mi vida), pero también a Github (la principal plataforma que uso para compartir código y colaborar en otros proyectos), Bluesky (lo que uso hoy en día para microblogging, reemplazando a la cloaca nazi de Twitter), el historial de charlas dadas (a la cual le vendría bien una renovación estética), mi correo electrónico (por si alguien se quiere contactar), y mi Linkedin (por si hay un interés profesional o de contratación).

Quizás en el futuro agregue otros enlaces, o alguna otra data, pero este es un buen comienzo.

Comentarios Imprimir