Coding as a Service: librería pypsdier, aprendizajes y metodología
Accepted
¿Cuál es la mejor manera para compartir un código, de manera que sea fácil de instalar, reproducible y fácilmente actualizable? En el desarrollo de la librería pypsdier (simulación numérica de ecuaciones de reacción difusión para catalizadores en medio poroso) hemos enfrentado estos desafíos y desarrollado una metodología que nos ha permitido iterar rápidamente y entregar “Coding as a Service” con facilidades tanto para el desarrollador como el usuario final.
Type: Charla estandard, 25 minutos
Level: Medium
Speakers: Sebastian Flores Benner
Speakers Bio: Mi gusto por la computación, matemática y educación me ha llevado a la empresa u-planner, donde actualmente dirijo la gerencia de Data Science. He participado en proyectos de ingeniería y de software con una fuerte componente de matemáticas aplicadas e implementaciones numéricas. He dictado asignaturas de Matemática e Informática en UTFSM, y en cursos en línea en Thinkful.com, con especial énfasis en la utilización de nuevas metodologías de aprendizaje como flipped classroom y problem based learning, y el uso de nuevas tecnologías como jupyter notebooks. Programando en python desde el 2008, y siempre buscando nuevas librerías: todavía prefiero matplotlib para los gráficos, pero pandas para la manipulación de datos, y por supuesto, jupyter notebooks para la colaboración y exploración.
Time: 20:00 - 20:30 - 11/24/2020
Room: Sala 1
Labels: numerical simulation reproducibility documentation jupyter notebook
Description
En 2008, un bioquímico y un ingeniero matemático comenzamos el desarrollo de la implementación numérica de ecuaciones de reacción-difusión para catalizadores inmovilizados en pequeñas partículas porosas (si, algo bastante técnico y para lo cual no existían referencias modelos teóricos ni numéricos). Después de un breve paso por matlab, Python fue el lenguaje elegido para la implementación, ya que proporcionaba un lenguaje que era simple para el usuario final y apropiado para el desarrollo numérico gracias a numpy. Sin embargo, la instalación de Python, el control de versiones y las actualizaciones de la biblioteca fueron complicadas y en aquel tiempo demandaron constante supervisión y trabajo codo a codo. Anhelábamos un método más simple. Ahora en el año 2020 se puede y se debe colaborar únicamente en línea. Hemos estado reflexionando sobre los elementos clave que se requieren en un marco de simulación que proporciona este tipo de "comportamiento SaaS". ¿Cómo podría hacer las cosas lo más fáciles posible para el usuario final mientras que para el desarrollador aún tenga control total sobre el código y garantizar la reproducibilidad de los resultados? La librería pypsdier fue construida para permitir la simulación específica de las ecuaciones de reacción difusión, pero adicionalmente, para proporcionar una respuesta funcional a las siguientes limitaciones: * Instalación y el control de versiones de python, jupyter y bibliotecas. * Simplificar el desarrollo y control de versiones de un código altamente específico. * Interfaz simple para el usuario final, para ocultar una implementación numérica (compleja). * Almacenar y compartir los resultados de la simulación, para que puedan ser reproducidos y analizados. * Permitir el uso de recursos computacionales externos (nube). * Proporcionar buena documentación para usuarios finales (sin demasiados conocimientos informáticos) y desarrolladores. A partir de los aprendizajes y el desarrollo realizado, se propone un framework de trabajo que puede ser aplicado para compartir código de manera simple pero con múltiples beneficios.