Más sobre persistencia de datos https://podcast.jcea.es/python/10
En esta ocasión grabamos un miércoles porque ayer fue festivo enEspaña.
Participantes:
Eduardo Castro, email:info@ecdesign.es. Conectando desde AGuarda.
Jesús Cea, email: jcea@jcea.es, twitter:@jcea, https://blog.jcea.es/,https://www.jcea.es/. Conectando desde Madrid.
Miguel Sánchez, email:msanchez@uninet.edu, conectando desdeCanarias.
Víctor Ramírez, twitter: @virako,programador python y amante de vim, conectando desde Huelva.
Artur, conectando desde Vigo.
Audio editado por Pablo Gómez, twitter:@julebek.
La música de la entrada y la salida es "Lightning Bugs", de JasonShaw. Publicada en https://audionautix.com/ con licencia- Creative Commons Attribution 4.0 InternationalLicense.
[00:52] Problemas de sonido.
[01:57] "Duda/problema con mod_wsgi-express"
Referencia a unmensajeenviado a la lista de correo.
Los módulos se importan una sola vez.
mod_wsgi: https://pypi.org/project/mod-wsgi/.
matplotlib: https://matplotlib.org/.
Damos con la solución: Ojo con los objetos globales ymúltiples hilos.
[07:52] Python 3.9.1.
Py_FileSystemDefaultEncodeErrors and Py_UTF8Mode are notavailable with limited API:https://bugs.python.org/issue41986.
[09:07] Estado de persistencia en Python.
[10:07] ¿Cómo conectar la tecnología de persistencia con elmundo de Python asíncrono?
[11:47] Según la opinión de Jesús Cea, la implementación actualde async/await en Python es... fea.
La idea es buena, pero la implementación es chapucera y pocotransparente.
Es muy difícil combinar los mundos síncronos y asíncronos.Las librerías tienen que tomar partido.
El código asíncrono "contamina" todo el programa.
[15:52] Moderación en la lista de correo.
[18:47] Reconducimos la tertulia. ¿Estáis usando Python 3.9?
Las distribuciones no están a la última. Cada cliente tieneinstalado algo distinto.
Utilizar cosas como Dockerhttps://es.wikipedia.org/wiki/Docker, para independizartede la versión orifial del Sistema Operativo.
Los tests te salvan el día a la hora de actualizar deversión.
[25:22] Sistemas de tests avanzados.
Hypothesis: https://pypi.org/project/hypothesis/.
Prueba de mutación:https://es.wikipedia.org/wiki/Prueba_de_mutaci%C3%B3n.
[27:37] Podcasts en inglés que escucha Jesús:
Python Bytes https://pythonbytes.fm/.
Seis temas, media hora. Semanal.
Opinión con criterio.
Podcast de testing: Test & Code https://testandcode.com/.
[30:52] Justificar actualizar a versiones modernas de Python.
No suele haber problemas de compatibilidad actualizando aversiones más modernas de Python 3, y los cambios necesarios-si los hay- son menores.
Problema: Los paquetes precompilados de librerías complejaspueden tardar en estar disponible para la nueva versión dePython.
Muchas librerías complejas no publican versionesprecompiladas de forma retroactiva para las versionesnuevas de Python cuando salen, hay que esperar a quesaquen una nueva versión de la librería, a veces mesesdespués.
Si tardas en actualizar, actualizar múltiples versiones degolpe puede ser muy costoso.
[34:32] El nuevo "resolver" de dependencias de PIPhttps://pyfound.blogspot.com/2020/11/pip-20-3-new-resolver.html.
Se puede usar la opción -use-deprecated=legacy-resolver.
Librerías compatibles con versiones nuevas de Python, peroque PIP no quiere instalar porque en los descriptores delproyecto no dice que sea compatible. Esto es un problemacuando sale una versión nueva de Python.
[38:24] ¿Desde dónde conectamos cada uno?
Spam de Jesús en las listas de correo.
¿Qué pasa con la gente de hispanoamérica?
Mucha gente conectando desde Vigo y alrededores.
Comunidades técnicas en el entorno de Vigo.
Vigo Tech Alliance https://vigotech.org/.
A Industriosa https://aindustriosa.org/.
[43:42] Aviso de que las tertulias se graban.
[44:42] Las ideas de Jesús Cea sobre las tertulias.
[46:37] Bases de datos.
SQLAlchemy https://www.sqlalchemy.org/.
Modelos de datos.
Diversas bases de datos.
PostgreSQL: https://www.postgresql.org/.
MySQL: https://www.mysql.com/.
MongoDB: https://www.mongodb.com/.
Jesús Cea usa sistemas de persistencia. Se ha hablado muchode esto en una tertulia anterior.
[51:42] Persistencia en Python.
Tema abordado de forma extensa en la tertulia anterior:https://podcast.jcea.es/python/9. Revisa el audio y/o lasnotas de esa grabación.
[01:02:52] La persistencia no usa teoría relacional.
Trabajando con persistencia, no puedes traerte tus ideas deteoría relacional. Se trabaja de otra manera.
Acceso al sistema de persistencia a través de un API.
[01:09:27] Nuevas incorporaciones a la tertulia.
[01:10:12] ¿ORM de Django https://www.djangoproject.com/ oSQLAlchemy https://www.sqlalchemy.org/?
[01:14:32] Jesús insiste en sus sistemas de persistencia.
¿Cómo se actualiza la definición de objetos? Jesús describelas dos técnicas que usa:
Versión global de la base de datos con actualización enel arranque.
Cada objeto tiene su versión y se actualiza al cargarloen memoria.
Los objetos son objetos nativos de Python. Para que otroslenguajes puedan acceder a los datos hay que proporcionarlesun API.
[01:26:32] Tecnología "publicar & suscribir"https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern.
Event Sourcinghttps://dev.to/barryosull/event-sourcing-what-it-is-and-why-its-awesome.
Lenguaje Lindahttps://en.wikipedia.org/wiki/Linda_(coordination_language).
RabbitMQ: https://www.rabbitmq.com/.
ZeroMQ: https://zeromq.org/.
Redis: https://redis.io/.
Colas persistentes.
BerkeleyDB: https://en.wikipedia.org/wiki/BerkeleyDB.
[01:40:37] Open Source y mantenedores quemados.
Github: https://github.com/.
[01:49:54] Final.
Podchaser is the ultimate destination for podcast data, search, and discovery. Learn More