Python en español

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

05.09.2021 - By Jesús CeaPlay

Download our free app to listen on your phone

Download on the App StoreGet it on Google Play

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.

More episodes from Python en español