El noticiero de Juanlu

Archivo

El noticiero de Juanlu

Archivo

Es hora de que la "IA" haga un fork

Unos días atrás Ariel Guersenzvaig me compartió el nuevo artículo que ha co-escrito con Dagmar Monett, titulado "Resisting Enchantment and Determinism: How to critically engage with AI university guidelines". Creo que es de obligada lectura para toda persona que esté trabajando en educación o que le interese mínimamente el impacto de la "IA" en las nuevas generaciones. Y si, como yo, pasáis demasiado tiempo en LinkedIn, estáis tardando en seguirle.

Prometí a Ariel escribir una reflexión sobre el texto, pero en ese momento me costaba elegir mi parte favorita, más allá de "me ha gustado de arriba a abajo". Pasados unos días, creo que ya tengo la respuesta.

Pero primero hablemos del tema que realmente me interesa en este blog: el código abierto.

La semana pasada sucedió algo bastante notable. Una "IA" mandó un pull request a matplotlib para resolver una tarea que había sido marcada como "Good first issue", esto es, de dificultad relativamente baja como para que una persona pueda iniciarse en los flujos de trabajo de los proyectos de código abierto.

#73
febrero 16, 2026
Leer más

Mi resumen del FOSDEM 2026

"Estáis en el centro del Open Source, de Bélgica, de Europa, y del mundo libre"

"El Open Source siempre ha sido político"

"Si perdemos nuestras democracias, el Open Source será irrelevante y desaparecerá"

Nunca había venido al FOSDEM, a pesar de que mucha gente me animó a lo largo de los años. Por eso, cuando Richard "RichiH" Hartmann pronunció estas palabras durante la apertura del FOSDEM 2026, pensé dos cosas: (a) este es mi evento y (b) qué rabia no haberlo descubierto antes.

Acaba de terminar FOSDEM 2026 y solo puedo decir que me ha encantado. Hacía mucho tiempo que no lo gozaba así en un evento tecnológico. Tengo mucho en lo que pensar.

Pero no quería dejar pasar el tiempo sin escribir unas notas rápidas sobre algunos de los temas que he observado este fin de semana.

#72
febrero 1, 2026
Leer más

La IA mató al open source corporativo

¡Hola!

I’m back! Or so I hope. The rest of the email is in Spanish, and if I stick to sending newsletters again, they will be in Spanish. Either use your favourite translator or feel free to unsubscribe. Thank you!

Llevo varias semanas rumiando sobre volver a mandar “niusletters”. El tema, realmente, lo tengo claro hace tiempo: el aspecto humano del código abierto.

Lo que todavía no tengo claro es el formato, la cadencia, qué servicio voy a usar… (más sobre eso al final).

#71
enero 10, 2026
Leer más

El noticiero no vuelve, pero Juanlu sí

¡Hola!

Recibes este correo porque eras una de las personas que leía el Noticiero de Python y Datos. Lo primero de todo, c̶ó̶m̶o̶ ̶e̶s̶t̶á̶n̶ ̶l̶o̶s̶ ̶m̶á̶q̶u̶i̶n̶a̶s̶ muchas gracias.

El año pasado se me juntaron demasiadas cosas. El cambio de trabajo me supone ya un esfuerzo mental constante - estoy creciendo mucho a nivel personal y profesional, a costa de más altibajos y desgaste.

Por otro lado, la desaparición de Twitter (ahora X) me robó una fuente de información que utilizaba con frecuencia. Estoy feliz en Mastodon y muchos de mis pythonistas favoritos han dado el salto, pero no todos. No estaba dispuesto a sacrificar mi salud mental por seguir en la red de Musk, si bien encontrar cosas interesantes para el noticiero se me hizo más difícil.

#70
febrero 17, 2024
Leer más

El noticiero vuelve pronto ❤️

Estoy teniendo unas semanas un poco intensas de trabajo y además hay un pequeño problema técnico que tengo que resolver antes de seguir mandando emails, así que la siguiente edición del noticiero se va a demorar un poco. Gracias por la paciencia ❤️

Mientras tanto, que sepas que voy a estar dando un Kedro Tour a partir de la semana que viene. ¿Nos vemos en la PyData de Barcelona, en Python Girona, o en Big Data Mallorca? https://www.linkedin.com/posts/juanluiscanor_kedro-python-datascience-activity-7069967726085046272-a1c9?utm_source=share&utm_medium=member_desktop

Un saludo,

Juanlu

#69
junio 2, 2023
Leer más

Episodio 77 🐍⚙️

Versiones nuevas de Altair, plotnine, y pandera, codificando variables categóricas de manera sencilla en scikit-learn, trabajando con datasets particionados en Kedro, nos vemos en la PyCon Lituania, y fotitos de la JupyterCon de París.

🚀 ¡Muchas versiones nuevas esta semana!

Se ha publicado Vega-Altair 5.0 (Altair para los amigos), una biblioteca Python para visualización estadística basada en la gramática Vega-Lite, con muchas novedades: soporte para parámetros dinámicos, soporte experimental para el protocolo de intercambio de dataframes `dataframe, y mucho más.

De hecho, en el blog de Liam Brannigan, uno de los divulgadores de Polars más activos, puedes leer cómo utilizar dataframes de Polars con Altair 5.

También tenemos plotnine 0.12.1, una implementación del "Grammar of Graphics" en Python (en otras palabras: "ggplot2 en Python"). Esta versión trae un nuevo gestor de composición (es más fácil evitar que se solapen los objetos), un nuevo método save_helper() que devuelve la figura de matplotlib subyacente, y mucho más.

Y por último, pandera 0.15, que permite definir esquemas de datos para dataframes, trae soporte para pandas 2.0, sintaxis más breve para el tipado de los esquemas, valores por defecto, y mucho más.

💡 Esta semana he descubierto category_encoders, una extensión de scikit-learn para codificar variables categóricas. Creo que era el problema más frecuente entre mis alumnos, ¡y de mucha gente! Los hay supervisados y no supervisados.

También he descubierto kedro-partitioned, una extensión de Kedro para trabajar con datasets compuestos de muchos archivos.

📚 Esta semana no he leído ningún artículo notable, ¡mucha faena!

🛫 La semana que viene estaré en la PyCon Lituania hablando de cómo convertir tus notebooks de Jupyter en código mantenible usando Kedro. ¿Alguien más por allí?

🗼 Esta semana me perdí la JupyterCon en París, ¡por las fotos parece que estuvo espectacular! Mi sueño sería poder tener a Fernando Pérez dando una charla en la PyConES, ojalá se cumpla algún día.


Algunas de estas actualizaciones las he ido publicando en inglés en mi cuenta de Mastodon. ¡Sígueme en el Fediverso!

#68
mayo 12, 2023
Leer más

Episodio 76 🐍⚙️

Edición ultrarrápida de domingo por la tarde: versiones nuevas de numba, statsmodels y geopandas, por qué no usar leyendas en matplotlib, y primeras pruebas con StarCoder.

🚀 Tenemos numba 0.57 (y llvmlite 0.48) con esperadísimo soporte para Python 3.11, soporte para cadenas dinámicas en excepciones, mejor soporte para aritmética de media precisión en CUDA, ¡y mucho más!

También ha salido statsmodels 0.14, con esperadísimo soporte para descomposición multiestacional y más cosas.

Y por último, geopandas 0.13 recién salida del horno (hace apenas unos minutos) incluyendo soporte para reproyectar a WGS-84 al guardar a GeoJSON (como dice el estándar), preparación para Shapely 2.0, y mucho más.

Y como cada primer noticiero de mes, novedades sobre Polars: entre las versiones 0.17.0 y 0.17.12 ha habido unos cuantos nombres de parámetros cambiados, soporte para crear un DataFrame desde un modelo de Pydantic, y muchas mejoras de rendimiento. ¡Esto va a toda velocidad!

📚 Me ha gustado mucho este artículo de Cameron Riddell sobre por qué no usar las leyendas de matplotlib.

#67
mayo 7, 2023
Leer más

Episodio 75 🐍⚙️

Versiones nuevas de CausalNex, Pillow, Ray, y Prefect, dashboards sin backend con stlite y voici, cruzando el antimeridiano sin dramas, y malos tiempos para Binder.

🚀 ¡Fiesta de versiones nuevas esta semana!

Mis compañeros de QuantumBlack han publicado CausalNex 0.12, con nuevas visualizaciones de grafos interactivas basadas en Pyvis.

También ha salido Pillow 9.5, con posibilidad de especificar la resolución en DPI al guardar PDFs, nuevo parámetro corners para redondear las esquinas de las imágenes, modo RGBA para PDFs, y más.

#66
abril 29, 2023
Leer más

Episodio 74 🐍⚙️

Nuevo modelo masivo de lenguaje abierto, magia prohibida para depurar procesos Python, Shiny para Python, versiones nuevas de MLFlow, PyMC, y neuralforecast, topics de Kafka para series temporales, y estilos cyberpunk para matplotlib.

🦜 Esta semana Stability AI ha lanzado StableLM, un modelo masivo de lenguaje bajo licencia Creative Commons Atribución - Compartir Igual. No es el primer modelo masivo de lenguaje abierto (Alpaca, Dolly, y otros) y tampoco quiero dedicar mucho espacio a estos temas en el noticiero porque los peligros de los loros estocásticos son reales no soy un especialista, pero me ha parecido reseñable por venir de la empresa que creó Stable Diffusion. El modelo está disponible en Hugging Face.

Como ya señaló André Staltz, el "tiempo hasta la alternativa open source" se acorta cada vez más.

🚀 Esta semana ha habido numerosos anuncios y versiones nuevas, ¡intentaré resumir!

Bloomberg ha publicado PyStack, una herramienta que usa "magia prohibida" para inspeccionar la pila de un proceso Python. Puede servir para depurar procesos de larga duración o analizar volcados de memoria (core dumps). Por supuesto, el gran Pablo Galindo está en el ajo. Tienes más información en el anuncio oficial.

El soporte de Shiny para Python ya está disponible de manera general. No faltan las soluciones para crear cuadros de mando (dashboards) en Python, ¡por suerte hay para todos los gustos!

Y finalmente, tenemos versiones nuevas de:

  • MLFlow 2.3, con soporte mejorado para modelos de lenguaje (transformers, langchain, openai).

  • PyMC 5.3, con un nuevo método Model.debug() para ayudar a depurar modelos.

  • neuralforecast 1.5, con métodos jerárquicos y muchos modelos nuevos.

💡 Esta semana he descubierto, gracias a la charla de Javier Blanco en PyData Madrid, quix-streams, una biblioteca Python para facilitar el trabajo con series temporales utilizando Apache Kafka.

#65
abril 23, 2023
Leer más

Episodio 73 🐍⚙️

🚀 ¡Festival de versiones nuevas esta semana! Empezamos:

La gente maja de Ploomber ha sacado JupySQL 7.0, que incluye una API tipo ggplot para visualizaciones sobre tablas, soporte para MySQL y MariaDB, mejores mensajes de error, y mucho más. Además, Eduardo se lió la manta a la cabeza e implementó resaltado de sintaxis SQL en Jupyter, ¡por fin!

syntax

Por otro lado, Modin 0.20 trae implementaciones de algunas funciones para Dask que ya estaban disponibles con otros motores, y Prefect 2.10 por su parte trae “workers” (que van a sustituir a los “agents”), proyectos para agrupar flujos con sus dependencias, mejoras en la observabilidad a través de eventos, y mucho más.

#64
abril 14, 2023
Leer más

Episodio 72 🐍⚙️🐼 pandas 2.0

🐼 ¡Tenemos pandas 2.0! Claramente la noticia de la semana y de lo que llevamos de año.

Marc García, el release manager para esta versión, escribió un excelente artículo desgranando el cambio clave de esta versión, que es el cambio de motor de NumPy a Arrow. Estas ideas al final nacen del ya clásico “Apache Arrow y las 10 cosas que odio de pandas”, escrito hace casi 6 años por Wes McKinney, creador de ambos. Haber llegado por fin a empezar a ejecutar esa visión es un hito de la comunidad y todos los usuarios de pandas nos vamos a beneficiar de ese duro trabajo.

Para mayor entretenimiento, Marc contó todo el proceso, que duró varias horas, en su Twitter:

(¿Parece que Substack ya no puede incrustar tweets? ¡Gracias, Elon!)

#63
abril 6, 2023
Leer más

Episodio 71 🐍⚙️

💖 Como cada mes, tenemos el boletín de NumFOCUS con jugosas novedades, ¡recomiendo encarecidamente su lectura! Además, han publicado también su informe anual de impacto. Muy feliz de ver lo que han conseguido este año, y de haber podido contribuir nuestro granito de arena desde PyData Madrid.

Screenshot displaying "Virtual Meetups and Collaborations - NumFOCUS is a key supporter of PyData’s volunteer-led global Meetups now on every continent but Antarctica." and some numbers:  175598 RSVPs to 3024 total events, 216 groups, 73 countries, 203817 members.

🚀 Aparte de las versiones nuevas recogidas por NumFOCUS, esta semana hemos sacado Kedro-Viz 6.0, con previsualización de tablas, mejoras en el área de seguimiento de experimentos (experiment tracking), y más cosas. Y de paso, ¡nuevo blog!

#62
abril 1, 2023
Leer más

Episodio 70 🐍⚙️

¿Publicar en domingo o dejarlo ya para la semana que viene? He preferido optar por lo primero, sobre todo teniendo en cuenta que aún va a costar que vuelva el noticiero los viernes por la mañana. ¡Que lo disfrutes!

🚀 Esta semana ha salido nueva versión de la Anaconda Distribution, la 2023.03, que incluye la última y más nueva versión de conda, nueva versión de Anaconda Navigator (la interfaz gráfica para lanzar aplicaciones y gestionar entornos), soporte para Python 3.11, e inclusión de transformers y otros paquetes nuevos.

Hablando de conda, ha salido también mamba 1.4, con errores mejorados en caso de conflicto de dependencias y otras pequeñas novedades. Si te animas a probarlo por fin, ojo con acabar como esta persona (mejor usa micromamba):

#61
marzo 26, 2023
Leer más

Episodio 69 🐍⚙️

🔥 ¡El lunes arranca la segunda edición del mayor hackathon open-source de Procesamiento del Lenguaje Natural en español! El evento se desarrollará entre el 20 y el 31 de marzo, y los equipos que desarrollen un proyecto enfocado a uno de los Objetivos de Desarrollo Sostenible tendrán un punto extra. Si participas, ¡recuerda difundir con el hashtag #HackathonSomosNLP!

Hackathon Somos NLP 2023: Los LLMs hablan Español

🚀 ¡Fiesta de versiones nuevas importantes esta semana!

En primer lugar, PyTorch 2.0 trae una nueva API torch.compile, una nueva biblioteca llamada functorch inspirada en JAX, mejoras sustanciales de rendimiento, nuevas versiones de muchos componentes del ecosistema (TorchAudio, TorchVision…) y muchísimo más. Amplía información leyendo el anuncio oficial.

#60
marzo 18, 2023
Leer más

Episodio 68 🐍⚙️

🚀 Me perdí hace unos días scikit-image 0.20, con nuevos ejemplos en la galería (incluyendo algunos interactivos muy chulos), soporte para imágenes anisótropas, nuevo parámetro channel_axis para imágenes multicanal, y mucho más.

También ha salido matplotlib 3.7.0, con soporte para barras de error en coordenadas polares, un nuevo método get_tick_params para ver la configuración de las marcas y rejilla, posibilidad de importar estilos de paquetes externos (esta petición la abrí yo en 2015, ¡más vale tarde que nunca!), y control de la leyenda fuera de los ejes entre otras cosas.

legend guide
#59
marzo 11, 2023
Leer más

Episodio 67 🐍⚙️

🚀 Primera newsletter de mes, resumen de cambios en Polars (y hasta el mes que viene nada, ¡que si no, no hablo de otra cosa!): este mes han añadido salida a Excel y a bases de datos con nuevos métodos write_excel y write_database, ordenación de datos más grandes que la RAM (out-of-core) para varias columnas, y muchas mejoras tanto de ergonomía como de rendimiento.

Twitter avatar for @braaannigan
Liam Brannigan @braaannigan
Couple of nice changes to @DataPolars syntax in recent releases that make code look a bit cleaner

First - assigning columns with kwargs is no longer experimental so you can column_name = instead of using .alias

Image
9:09 AM ∙ Feb 21, 2023
40Likes2Retweets

⚠️ Es posible que hayas escuchado que está a punto de salir pandas 2.0. En este noticiero no suelo hablar de nada que no sean versiones ya estables, pero vale la pena avisar en este caso porque es más que posible que tu código o tus sistemas de integración continua se rompa ese día. Recuerda ajustar tus dependencias en tu requirements.txt o pyproject.toml:

(Y si todavía estás usando setup.py, estás tardando en migrar)

¡Cuando salga la versión estable dedicaremos el noticiero a ello!

💡 Esta semana he descubierto gator (antes Mamba Navigator), un gestor de entornos al estilo Anaconda Navigator pero de código abierto e integrado en JupyterLab.

https://raw.githubusercontent.com/mamba-org/gator/master/packages/labextension/jupyterlab_conda.gif

También he descubierto ydata-profiling, una versión actualizada del mítico pandas-profiling que también soporta Spark.

../../_images/widgets.gif

Y finalmente, también he descubierto Prefix.dev, un servicio online de creación de entornos conda/mamba. ¡Muy interesante!

Twitter avatar for @prefix_dev
prefix.dev @prefix_dev
Check out our latest feature: cloud environments on @prefix_dev . Create your own virtual environments within seconds, install locally and share them with whomever you like. See the announcement blog post by @tldejager here:
prefix.devIntroducing Online Environment SolvingWe’ve released our first version of online environment solving
4:39 PM ∙ Feb 21, 2023
35Likes12Retweets

📚 Me ha gustado mucho leer este informe de Quansight Labs sobre el impacto de la empresa en el ecosistema open-source.

Twitter avatar for @quansightai
Quansight @quansightai
At Quansight Labs, the open source projects we contribute to reach over 20 million people worldwide!

In our annual report, we highlight several project and community achievements we’re especially proud of. 🙌

#58
marzo 4, 2023
Leer más

Episodio 66 🐍⚙️

🔥 Hace poco se anunció el nuevo JupyterLab Desktop, una forma diferente de utilizar este famoso editor. Para mí siempre ha sido un poco tedioso tener que instalar JupyterLab en cada entorno virtual de cada proyecto, y la opción de tener una instalación global y seleccionar el kernel adecuado siempre me pareció complicada comparada con lo sencillo que es elegir un intérprete en PyCharm o VS Code. Parece que JLab Desktop viene a solucionar este y otros problemas, así que estaré muy pendiente del proyecto.

Tengo que decir, eso sí, que mi primera impresión no ha sido satisfactoria. Estoy seguro que dentro de unas semanas o meses la experiencia mejorará notablemente.

🚀 Esta semana mi equipo ha publicado Kedro 0.18.5, incluyendo integración con OmegaConf, mejoras en el comando kedro run para hacerlo más consistente, soporte para usar generadores como nodos, y mucho más.

#57
febrero 25, 2023
Leer más

Episodio 65 🐍⚙️

En algún momento volverá el noticiero a los viernes, están siendo semanas intensas. ¡Vamos allá!

🔥 ¡Tenemos dos anuncios jugosos de dos empresas muy importantes en el ecosistema esta semana!

Por un lado Anaconda Notebooks estrena un nivel gratuito. Esto nos da un JupyterLab en la nube, con la distribución completa de Anaconda instalada. Hay ciertas limitaciones: 100 MB de espacio en disco (así que no hay espacio para entornos extra) y 500 segundos de CPU al día, pero aun así creo que puede ser un entorno usable para experimentos y docencia.

Twitter avatar for @anacondainc
Anaconda @anacondainc
We’re excited to announce that Anaconda Notebooks is now completely FREE !! 💫🐍
#56
febrero 11, 2023
Leer más

Episodio 64 🐍⚙️

🔥 Ha salido JupyterLab 3.6.0 con muchísimas novedades, y entre ellas el muy esperado modo colaborativo. Si llevas un tiempo siguiendo el proyecto tal vez esto te suene de algo, y no te faltaría razón: lo cierto es que ya hubo una versión de JupyterLab con colaboración en tiempo real, la 3.1 ¡en julio de 2021! Pero esta versión tenía graves problemas, y varios usuarios observaron cómo les desaparecían o se les corrompían completamente los notebooks. Casi dos años después la arquitectura de Jupyter ha cambiado completamente, y ahora sí que sí podemos confiar en que esta nueva funcionalidad será robusta.

Otros cambios interesantes incluyen un nuevo sistema de usuarios y notificaciones (posiblemente en preparación a lo que se viene para JupyterLab 4.0), mejoras de rendimiento, y algunas cosas más. Para más información, recomiendo leer el anuncio oficial.

He notado a mi alrededor que hay una brecha bastante grande entre data scientists, que utilizan JupyterLab o editores más minoritarios como Spyder, y data engineers, que suelen preferir VS Code o PyCharm. ¿Tú qué opinas? ¡Deja un comentario!

#55
febrero 4, 2023
Leer más

Episodio 63 🐍⚙️

Semana intensa de trabajo con muchas formaciones, pero aunque sea tarde no quería dejar el noticiero sin mandar. Además, por aclamación popular, cambia de nombre a “Noticiero Python y Datos”. ¡Gracias por leer!

🚀 Las últimas versiones de Polars, hasta la 0.15.8, incluyen varias obsolescencias importantes: desaparece with_column en favor de with_columns (por consistencia), y se renombra iterrows a iter_rows. Además, varios métodos de transformación de texto ahora aceptan expresiones, por ejemplo str.starts_with, str.ends_with, y str.contains. Y finalmente, ¡parece que pronto vamos a tener soporte para seaborn!

Twitter avatar for @braaannigan
Liam Brannigan @braaannigan
Seaborn native support for @DataPolars looks really promising.

Quick example below of sns.jointplot

#54
enero 27, 2023
Leer más
Archivos más antiguos  
GitHub
social.juanlu.space
LinkedIn
Este correo electrónico te lo ha traído Buttondown, la forma más fácil de iniciar y hacer crecer tu boletín.