Python en español #15: Tertulia 2021-01-12

Python aprieta, pero no ahoga https://podcast.jcea.es/python/15 Participantes: Jesús Cea, email: [email protected], twitter: @jcea, https://blog.jcea.es/, https://www.jcea.es/. Conectando desde Madrid. Víctor Ramírez, twitter: @virako, programador python y amante de vim, conectando desde Huelva. Miguel Sánchez, email: [email protected], conectando desde Canarias. José Luis, conectando desde Madrid. Eduardo Castro, email: [email protected]. Conectando desde A Guarda. Audio editado por Pablo Gómez, twitter: @julebek. La música de la entrada y la salida es "Lightning Bugs", de Jason Shaw. Publicada en https://audionautix.com/ con licencia - Creative Commons Attribution 4.0 International License. [01:37] Reducir dependencias en los proyectos. Las listas de Numpy https://numpy.scipy.org/ no son como las listas de Python. statistics: https://docs.python.org/3/library/statistics.html Hacer scraping web sin usar Scrapy https://scrapy.org/. Beautiful Soup: https://www.crummy.com/software/BeautifulSoup/bs4/doc/. [05:52] Usar librerías hace que no sepas cómo funcionan las cosas. ¿Cuánto ocupa ese objeto en memoria? Se oculta la complejidad, se trabaja a más alto nivel. Ineficiencia. [09:52] La "nube" te factura toda esa ineficiencia. Ventajas de tener servidores dedicados. ¿Y los backups? ZFS https://es.wikipedia.org/wiki/ZFS_(sistema_de_archivos). rsync: https://es.wikipedia.org/wiki/Rsync. Contenedores Solaris: https://en.wikipedia.org/wiki/Solaris_Containers. Docker: https://es.wikipedia.org/wiki/Docker_(software). Hipervisor: https://es.wikipedia.org/wiki/Hipervisor. SmartOS: https://es.wikipedia.org/wiki/SmartOS. Ansible: https://es.wikipedia.org/wiki/Ansible_(software). Evitar las configuraciones manuales a toda costa. [16:22] Delegar en la magia hace que no sepas cómo funcionan las cosas, pero también te permite ocuparte de problemas de más alto nivel. Entender los pros y contras. Decisión informada. [18:47] doctest https://docs.python.org/3/library/doctest.html. Una utilidad de los tests es enseñarte cómo usar un proyecto. A veces la documentación formal es muy mala. Tutoriales. unittest: https://docs.python.org/3/library/unittest.html. pytest: https://docs.pytest.org/en/6.2.x/. [22:42] ZODB https://zodb.org/en/latest/. [23:20] Jesús Cea se plantea mantener Durus https://www.mems-exchange.org/software/DurusWorks/ por su cuenta. Problemas con la licencia. Imposible ponerse en contacto con sus autores originales. ¿Hacer un fork hostil? https://es.wikipedia.org/wiki/Bifurcaci%C3%B3n_(desarrollo_de_software). [25:57] Problemas para conectar la persistencia tradicional con el nuevo paradigma asíncrono. [26:57] La persistencia tiene un sistema de almacenamiento concreto configurable: Por defecto, almacenamiento "cutre" en un fichero. RelStorage: https://pypi.org/project/RelStorage/. Jesús Cea: Berkeley DB Backend Storage Engine for DURUS: https://www.jcea.es/programacion/durus-berkeleydbstorage.htm. Berkeley DB: https://es.wikipedia.org/wiki/Berkeley_DB. Durabilidad regulable. Group Committing. [29:52] Más de lo que nunca quisiste saber sobre Group Committing. [32:52] Persistencia y Durus. Jesús Cea: Berkeley DB Backend Storage Engine for DURUS: https://www.jcea.es/programacion/durus-berkeleydbstorage.htm. Tal vez portarlo a ZODB https://zodb.org/en/latest/. [34:52] Persistencia y versionado de objetos. Versionado objeto por objeto. Se actualiza al ir cargando objetos durante el funcionamiento normal. Versión de la base de datos. Migración de todos los objetos al arrancar el programa. Rompe el encapsulamiento de objetos. La migración es algo que no se explica nunca lo suficiente en la documentación. [47:52] La mayoría de los tutoriales son demasiado simples. Tutorial de Python en español: https://docs.python.org/es/3/tutorial/index.html. Tutoriales progresivos. La mayoría de las charlas son "introducción a ...". No aportan mucho. Las mejores charlas son los postmortem. Pegas, pero desde un punto de vista constructivo y realista. Es más interesante conocer los puntos débiles. [51:57] Un motivo para no tener temáticas cerradas en las tertulias es que es difícil que los intereses de dos expertos se solapen. [55:42] El tema legal habitual sobre grabar los audios de las tertulias. [57:37] Python Madrid. Kaleidos: https://kaleidos.net/. Meetup Python Madrid: https://www.meetup.com/python-madrid/. Nostalgia de los "buenos tiempos". Networking entre personas. [01:09:52] super() https://docs.python.org/3/library/functions.html#super. [01:11:17] Operador Morsa. PEP 572: https://www.python.org/dev/peps/pep-0572/. Tema recurrente. [01:13:42] La sintaxis de Python cada vez se complica más. [01:15:57] Guido van Rossum sigue muy activo como "core developer": https://es.wikipedia.org/wiki/Guido_van_Rossum. [01:16:22] Funciones lambda. Closures: https://es.wikipedia.org/wiki/Clausura_(inform%C3%A1tica). [01:21:12] Función universal que se comporta de forma diferente dependiendo de si se llama de forma síncrona o asíncrona. What Color is Your Function? https://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function/. Go: https://golang.org/. Corrutina: https://es.wikipedia.org/wiki/Corrutina. CSP: https://en.wikipedia.org/wiki/Communicating_sequential_processes. La implementación actual en Python no es transparente, "colorea" todo el programa. [01:30:17] Stackless Python: https://en.wikipedia.org/wiki/Stackless_Python. Documentación: https://github.com/stackless-dev/stackless/wiki. ¿Por qué no se integró en CPython? Portabilidad. [01:37:07] Licencia del logotipo de Python. Logotipo de Python Madrid: https://www.python-madrid.es/. Condiciones de uso del logo de Python: https://www.python.org/community/logos/. [01:40:44] Repesca de temas de tertulias anteriores: "Closures". Respuestas "de nivel" en las listas de correo cuando la pregunta es interesante. Versionado de diccionarios. Cacheo de "lookups" en la implementación actual de Python. [01:46:12] Nuestra relación con PEP 8 https://www.python.org/dev/peps/pep-0008/. Jesús Cea: Problemas por ser un dinosaurio y por programar en varios lenguajes diferentes. [01:47:12] Jesús Cea y código abierto: Mercurial de Jesús Cea: http://hg.jcea.es/. https://blog.jcea.es. El código publicado no es bueno. Personal. Hago lo mínimo para que funcione. No hay test, por practicidad. El código pagado no se puede enseñar. Solo puede enseñar código el que tiene tiempo para programar código abierto, por ejemplo, gente joven sin cargas familiares. Ideas interesantes, código regulero. [01:52:02] Equilibrio entre practicidad y perfección. Tener claros los "puntos de dolor". Hacer lo mínimo imprescindible. Máquinas limitadas como la Raspberry PI: https://es.wikipedia.org/wiki/Raspberry_Pi. Recibir notificaciones de cambios en el disco duro: Watchman: https://github.com/facebook/watchman. Entrega de valor constante e incremental. [01:57:32] Los clientes son muy vagos y no quieren hacer los deberes. Metodologías ágiles. El cliente nunca tiene tiempo para probar las entregas. [02:01:32] Compartir archivos en la tertulia, para cositas pequeñas. Algo pendiente para el futuro. [02:03:32] El valor de leerse la documentación de Python como si fuera un libro, de principio a fin. Aparte de aprender en profundidad, el valor de colaborar puliendo la documentación. [02:05:42] Cambio de licencia de Python 1.x a Python 2.x. Python 2.0 License: https://www.python.org/download/releases/2.0/license/. [02:06:37] Estudiar el código fuente de las propias librerías de Python. [02:07:02] El bug 35930 sigue coleando. Estado de la cuestión. Issue35930: Raising an exception raised in a "future" instance will create reference cycles https://bugs.python.org/issue35930. Temas de estilo. [02:11:27] Despedida. [02:13:10] Los riesgos de caerse con nieve en polvo. [02:14:29] Final.

Om Podcasten

Python en español.