Volver al blog

Síguenos y suscríbete

Promovemos el uso de nbviewer.org de Jupyter: conversación con Yuvi Panda sobre los valores (y el valor) del internet abierto

Hannah Aubry

Senior Community Manager, Fastly

Nos entusiasmó que nuestro amigo Yuvi Panda se pusiese en contacto con nosotros para conocer mejor Fast Forward y la labor de Fastly para crear un internet bueno con la ayuda de la comunidad de código abierto.

Yuvi estaba interesado en saber cómo podíamos ayudarle a cubrir mejor las necesidades de CDN para nbviewer.org del proyecto Jupyter. Por si no lo sabes, el proyecto Jupyter es una comunidad que trabaja con tecnologías de computación interactiva como Jupyter Notebook, Jupyter Lab o JupyterHub. Los cuadernos, que han calado bastante entre investigadores, científicos, docentes y desarrolladores, te permiten reunir texto, código activo, ecuaciones, etc., y visualizarlo todo en el mismo lugar. Así, es posible compartir información o investigar de manera sencilla y eficaz con un formato fácil de entender y explicar. Además, los cuadernos de Jupyter resultan más útiles gracias al proyecto nbviewer, que facilita el proceso de compartir y visualizar archivos .ipynb en el navegador web sin la necesidad de instalar un software.

Sin embargo, quizás nos entusiasma más que Yuvi, MinRK y otros miembros de la comunidad de Jupyter contactaran con nosotros por los valores que compartimos. En Jupyter creen en la apertura y la inclusividad al igual que en Fastly y, para ellos, es un compromiso fomentar un entorno productivo para todos donde no exista el acoso. De hecho, incluso sus miembros tienen la responsabilidad de preservar estos valores en los espacios comunes. En definitiva, Jupyter se encuentra en el lado bueno de internet.

Como queríamos saber más sobre el proyecto Jupyter y nbviewer, además de conocer mejor a Yuvi, nos hemos sentado a conversar con él:

Hannah (Fastly): Yuvi, estamos muy contentos de colaborar con la comunidad de Jupyter para ayudaros a sacar adelante nbviewer.org. ¿Nos puedes hablar un poco sobre este proyecto? ¿Qué características interesantes tiene que quizás no sean muy evidentes para la gente?

Yuvi: nbviewer era la manera original (y en muchos casos la forma más completa) de compartir un cuaderno de Jupyter para que alguien lo visualizara. Al asignar una URL a un cuaderno de Jupyter, esta se visualizará por completo, incluido el código JavaScript para representar características interactivas si fuera necesario. El enlace que asignes puede ser, por ejemplo, de GitHub o tu propio sitio web. También puede servir un enlace público de un servicio para compartir archivos. Siempre que el archivo sea recuperable, podrá visualizarse. Además, el archivo se ejecutará como un servicio sin autenticar, así que nbviewer te permitirá visualizar más componentes interactivos en comparación con otras alternativas como GitHub, donde se pierde mucha interactividad por motivos de seguridad. Al final, GitHub ha incorporado también una opción, que ha gustado a muchos, para visualizar cuadernos de Jupyter. Sin embargo, nbviewer siempre será la opción más completa, ya que permite visualizar desde cualquier sitio y presenta gran interactividad.

Con todo, lo más interesante es que se trata de un proyecto de código abierto con un grupo de personas increíbles que se encargan de mantenerlo. De hecho, tú también puedes formar parte de él. :) 

Hannah: ¡Vaya, qué funcionalidades tan impresionantes! Me pregunto cuánto habrá costado sacar adelante el proyecto. ¿A qué retos habéis tenido que enfrentaros y qué fue lo primero que tuvisteis en cuenta a la hora de abordar un proyecto como este?

Yuvi: Al igual que sucede en todo el ecosistema de Jupyter, nbviewer es un paquete de código abierto donde cualquiera puede colaborar o incluso ejecutar su propia versión interna. El proveedor de nube europeo OVH accedió a hospedar con gran generosidad la instancia pública de nbviewer.org, que se desplegó en Kubernetes mediante este chart de Helm.

La primera dificultad del proyecto es la misma que presentan en la actualidad todos los proyectos de código abierto: los usuarios finales esperan recibir un servicio, no un paquete. No existe ninguna entidad que pague tal cantidad de dinero por mantener y preservar nbviewer.org, así que en gran parte todo depende del trabajo desinteresado de los voluntarios encargados del mantenimiento, que son todos estupendos. Por tanto, lo primero que tuvimos en cuenta para crear una infraestructura de código abierto (no solo paquetes) fue cómo debíamos ponerla en funcionamiento y cómo podíamos diseñarla para que luego necesitara una supervisión mínima. También nos planteamos qué tecnología y funcionalidades debíamos elegir para aportar valor a los usuarios sin que supusiera un sacrificio para las personas que mantendrían el proyecto.

Hannah: Precisamente esos son los problemas que sabemos que tienen muchos proyectos y nosotros estamos buscando una solución con Fast Forward. Además, siempre intentamos que Fastly resulte más fácil de usar para las personas a cargo del mantenimiento. Entonces, mientras os lanzabais a resolver todos esos interrogantes para crear nbviewer, ¿cómo os ayudó Fastly? ¿Por qué nos elegisteis?

Yuvi: nbviewer es único porque actúa como un convertidor en toda regla, ya que convierte archivos de cuadernos estáticos, como JSON, en un buen HTML. En este caso, una CDN con almacenamiento en caché resulta ideal para reducir considerablemente la carga en nuestros servidores de origen, lo cual se traduce en menos problemas e interrupciones del servicio. Y es que nadie va por ahí con un localizador que le avise cuando nbviewer.org se caiga. Según MinRK (uno de nuestros principales colaboradores en nbviewer), Fastly es la razón principal por la que ya no alcanzamos el límite de la API de GitHub cuando se recuperan cuadernos de GitHub para visualizarlos. Además, Fastly comparte nuestros valores de código abierto y neutralidad con los proveedores, por lo que nuestra base de código de nbviewer no tiene ningún código específico de Fastly. Me alegra contar con todas estas posibilidades y poder aprovechar nuestras ventajas mediante directivas de almacenamiento en caché HTTP generales. También soy muy fan de Varnish por una etapa profesional anterior. En definitiva, estoy muy contento de haber elegido a Fastly porque ejecuta software de código abierto.

Personalmente, considero que el mundo puede llegar a ser bastante cruel y, por eso, es muy importante que hagamos todo lo posible para hacer de él un lugar mejor. Así que, por poco que sea, todo cuenta. Hasta donde sé, me parece que Fastly es un proveedor más afín a estos ideales en comparación con otros, lo cual fue determinante para que defendiera nuestra actual configuración en el edge con Fastly. Todas las comunicaciones que he tenido con vosotros durante el proceso han sido positivas y estoy agradecido de que apoyéis a comunidades que son importantes para mí.

Hannah: Yuvi, muchas gracias por dedicarnos esas palabras tan bonitas. Estamos orgullosos de la comunidad de clientes que hemos construido. Nos damos cuenta de que vamos por buen camino cuando vemos que los proyectos y desarrolladores nos eligen por haber tomado todas esas decisiones difíciles. Cambiando de tema, me gustaría preguntarte por tu trayectoria profesional. Desde que empezaste con la programación, has estado involucrado en proyectos de infraestructura educativa y de internet abierto. Aparte de tu contribución a nbviewer, también fundaste 2i2c, trabajaste en Wikimedia Labs de la Fundación Wikimedia y actualmente eres arquitecto de infraestructura en la Facultad de Informática, Ciencia de Datos y Sociedad de la Universidad de Berkeley de California. ¿Cuáles son los problemas más complicados a los que se enfrenta internet hoy en día y cómo podemos solucionarlos? ¿Nos puedes dar algunos consejos para los que quieran participar en nbviewer, el proyecto Jupyter o la infraestructura del internet abierto?

Yuvi: He crecido en una familia de clase media baja perteneciente a una casta no muy alta del sur de India, así que siempre me había considerado como un usuario de software propietario y nada más. Sin embargo, por una serie de privilegios y circunstancias específicos, terminé convirtiéndome en algo más que un simple usuario de software de código abierto. Fue muy alentador darme cuenta de que no soy tan distinto de las personas que creaban software de código abierto, así que me vi capaz de formar parte de ese mundillo.

En cuanto a los problemas actuales, la infraestructura del internet abierto se encuentra en una encrucijada. Nuestras acciones y decisiones son más importantes que nunca hoy en día. Los usuarios se han cansado de descargar e instalar software. Ahora buscan usar servicios y, por este motivo, el movimiento del código abierto debe avanzar al mismo ritmo o corre el riesgo de ceder terreno frente a alternativas de software propietario.

Hay una pregunta difícil de resolver que todos nos hacemos y a la que intentamos encontrar respuesta: ¿cómo podemos seguir fortaleciendo este movimiento mientras el mundo entero está pasándose a los servicios? Creo que esta situación no solo definirá los próximos diez años del desarrollo de software, sino también nuestra manera de definir el concepto de «abierto». 

Hannah: ¡Yuvi, muchas gracias por dedicarnos tu tiempo! 


Si quieres saber más, participar en nbviewer o simplemente pasarte a saludar, puedes dejar un comentario en el foro de Discourse de Jupyter. Para hablar con Yuvi, puedes dirigirte a su sitio web personal o Mastodon y, si te interesa conocer mejor Fast Forward o enviar una solicitud, visita nuestro sitio web.

Desarrolla con nosotros el lado bueno de internet. ⏩