Home
Categories
EXPLORE
True Crime
Comedy
Society & Culture
Business
News
Sports
TV & Film
About Us
Contact Us
Copyright
© 2024 PodJoint
Podjoint Logo
US
00:00 / 00:00
Sign in

or

Don't have an account?
Sign up
Forgot password
https://is1-ssl.mzstatic.com/image/thumb/Podcasts123/v4/cc/07/74/cc077484-6d72-61e7-45dc-a069342cd791/mza_6031280398553671187.png/600x600bb.jpg
Python en español
Jesús Cea
29 episodes
9 months ago
Python en español.
Show more...
Technology
RSS
All content for Python en español is the property of Jesús Cea and is served directly from their servers with no modification, redirects, or rehosting. The podcast is not affiliated with or endorsed by Podjoint in any way.
Python en español.
Show more...
Technology
https://is1-ssl.mzstatic.com/image/thumb/Podcasts123/v4/cc/07/74/cc077484-6d72-61e7-45dc-a069342cd791/mza_6031280398553671187.png/600x600bb.jpg
Python en español #19: Tertulia 2021-02-09
Python en español
2 hours 6 minutes 40 seconds
4 years ago
Python en español #19: Tertulia 2021-02-09
¿Se pueden usar diferentes versiones de una misma librería en un proyecto? (resumen: ¡No vayas por ahí!). MultiVersion Concurrent Control https://podcast.jcea.es/python/19

Participantes:

  • Jesús Cea, email: jcea@jcea.es, 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.

  • Javier, conectando desde Madrid.

  • Miguel Sánchez, email: msanchez@uninet.edu, conectando desde Canarias.

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.

  • [00:52] Prólogo:

    • FOSDEM https://fosdem.org/.

    • Escuchar audios previos para ver errores y comentar "erratas".

    • [03:07] ¡Tenemos un voluntario para editar el podcast!

      • Detalles de cómo grabamos las tertulias.

      • Todo se graba en una sola pista :-(.

      • RNNoise: https://people.xiph.org/~jm/demo/rnnoise/.

      • Ideas para automatizar el proceso.

  • [09:17] Aviso legal de que se está grabando el sonido y que se va a publicar online.

    • El audio publicado tendrá un índice en texto, para poder hacer búsquedas y poder moverse con facilidad entre temas.
  • [11:22] Errata de la tertulia anterior: No, pipenv https://pypi.org/project/pipenv/ no puede instalar dos versiones diferentes de la misma librería.

  • [13:07] Tormenta de ideas https://es.wikipedia.org/wiki/Lluvia_de_ideas sobre cómo usar diferentes versiones de la misma librería en el mismo proyecto. Conclusión: ¡No vayas por ahí!

    • Las bibliotecas solo se cargan una vez en el programa, aunque se hagan muchos import en el código.

    • sys.modules https://docs.python.org/3/library/sys.html#sys.modules.

    • Dependencias transitivas.

    • Subintérpretes Python. PEP 554: https://www.python.org/dev/peps/pep-0554/.

    • Módulos en C: PEP 489 -- Multi-phase extension module initialization https://www.python.org/dev/peps/pep-0489/.

  • [22:17] Python 3.10a5. PEP 636 -- Structural Pattern Matching: Tutorial https://www.python.org/dev/peps/pep-0636/.

    • ¡Más sintaxis nueva!

    • PEP 617 -- New PEG parser for CPython https://www.python.org/dev/peps/pep-0617/.

  • [23:57] Nuitka https://nuitka.net/.

    • Puede generar un binario que no depende de tener nada instalado.
  • [26:02] Volvemos a "Structural Pattern Matching" https://www.python.org/dev/peps/pep-0636/.

    • "Switch" con esteroides.
  • [27:32] Lo importante que fue la modernización de los tutoriales y ejemplos para ayudar a la migración de Python 2 a Python 3.

    • PEP 414 -- Explicit Unicode Literal for Python 3.3 https://www.python.org/dev/peps/pep-0414/.

    • Jesús Cea opina que la migración de Python 2 a Python 3 se hizo mal y ha sido muy traumática.

  • [30:22] PEP 8 https://www.python.org/dev/peps/pep-0008/.

    • ¿Ajustarse estrictamente a 80 columnas?

    • Flake8: https://pypi.org/project/flake8/.

  • [33:22] Mucho cuidado con "python-ideas" https://mail.python.org/mailman3/lists/python-ideas.python.org/.

    • Tabulación de código.

    • La anotación de tipos puede gustar o no, pero de momento es opcional.

    • Tema recurrente: ¿Qué es ser pythonico?

  • [35:12] Ventajas de anotar tipos.

    • Origen de MYPY: http://mypy-lang.org/.

    • Aportar información al IDE https://en.wikipedia.org/wiki/Integrated_development_environment.

    • Valor a la hora de documentar los tipos en los API https://en.wikipedia.org/wiki/API.

  • [39:52] Cryptography https://cryptography.io/en/latest/ y polémica al integrar módulos en Rust https://en.wikipedia.org/wiki/Rust_(programming_language)

    • Comunidad tóxica.
  • [41:27] Digresión sobre systemd https://en.wikipedia.org/wiki/Systemd y otras cosas de sistemas.

    • ¿El cambio por el cambio?
  • [45:07] El peso de la web está moviéndose otra vez al backend. ¿Qué opciones tiene Python en este area?

    • El cliente web solo envía eventos al servidor y recibe cambios al DOM https://es.wikipedia.org/wiki/Document_Object_Model enviadas por el servidor.

    • Abre la posibilidad olvidarnos de JavaScript: https://es.wikipedia.org/wiki/JavaScript.

    • ItsNat: https://en.wikipedia.org/wiki/ItsNat.

  • [51:02] splash https://pypi.org/project/splash/. Servicio de dibujado de javascript en Python.

    • AJAX: https://es.wikipedia.org/wiki/AJAX.
  • [56:07] Integrar Python en otros programas y demonios.

    • LUA: https://es.wikipedia.org/wiki/Lua.
  • [57:07] PyOxidizer https://pyoxidizer.readthedocs.io/en/stable/ y PyO3 https://pyo3.rs/.

    • Interactuar con otros lenguajes.

    • Python en Java, interactuando sin dolor: Jython https://www.jython.org/.

  • [59:52] ¿Cómo empezamos en Python?

    • Valor de Python como lenguaje fácil de entender y pseudocódigo.

      • SpamBayes: http://spambayes.sourceforge.net/.
    • Tutorial de Python: https://docs.python.org/es/3/tutorial/index.html.

    • bc -l https://linux.die.net/man/1/bc.

  • [01:05:07] Modificación atómica de ficheros.

    • En Unix se suele hacer: write + flush + rename.

      • rename: https://www.man7.org/linux/man-pages/man2/rename.2.html.
    • MS Windows eso no funciona.

    • Python 3.3 añadió os.replace() https://docs.python.org/3.8/library/os.html#os.replace.

    • En MS Windows es atómico... casi siempre: Issue8828: Atomic function to rename a file https://bugs.python.org/issue8828.

  • [01:10:02] Combinar fork e hilos en Python es una receta para el desastre.

    • fork: https://www.man7.org/linux/man-pages/man2/fork.2.html.

    • multiprocessing: https://docs.python.org/3/library/multiprocessing.html.

  • [01:11:37] Decorador @overload https://docs.python.org/3/library/typing.html#typing.overload.

    • @functools.singledispatch https://docs.python.org/3/library/functools.html.

    • ¿Qué se ve cuando salta una excepción?

    • Especializaciones.

    • Cython https://cython.org/.

  • [01:17:00] AnyIO https://anyio.readthedocs.io/en/stable/basics.html. Unificación de reactores asíncronos.

  • [01:18:12] "lxml soporta xpath".

    • Hilo en la lista de correo: "[Python-es] Biblioteca XPATH" https://mail.python.org/pipermail/python-es/2021-February/037931.html.

    • lxml: https://lxml.de/.

    • beautifulsoup4: https://pypi.org/project/beautifulsoup4/.

    • XPath: https://es.wikipedia.org/wiki/XPath.

    • Scrapy: https://scrapy.org/.

    • El buscador de PyPI https://pypi.org/ funciona fatal a la hora de ordenar por relevancia.

  • [01:20:02] El valor de estudiar el código fuente ajeno no solo para aprender de él sino también para descubrir qué bibliotecas útiles utilizan para añadirlas a tu cajón de herramientas.

    • Es la documentación última.

    • Los tests son muy útiles para saber cómo se usa el producto.

  • [01:22:02] ¿Cómo gestionáis la paginación cuando los datos del backend cambian? ¿Cómo evitáis repetir resultados o saltaros datos?

    • Brainstorming de diversas estrategias.

    • Berkeley DB: https://pypi.org/project/berkeleydb/.

    • lmdb: https://pypi.org/project/lmdb/.

    • Multiversion concurrency control: https://es.wikipedia.org/wiki/Multiversion_concurrency_control.

    • Copy on Write: https://es.wikipedia.org/wiki/Copy_on_write.

    • Snapshot: https://es.wikipedia.org/wiki/Copia_instant%C3%A1nea_de_volumen.

    • BTree: https://es.wikipedia.org/wiki/%C3%81rbol-B.

    • PostgreSQL: https://www.postgresql.org/.

    • ZFS: https://es.wikipedia.org/wiki/ZFS_(sistema_de_archivos).

    • Normalización y formas normales: https://es.wikipedia.org/wiki/Forma_normal_(base_de_datos).

  • [01:48:42] FOSDEM https://fosdem.org/:

    Virako recomienda las siguientes:

    • Some SQL Tricks of an Application DBA - Non-trivial tips for database development https://fosdem.org/2021/schedule/event/postgresql_some_sql_tricks_of_an_application_dba/.

    • Database Disasters and How to Find Them https://fosdem.org/2021/schedule/event/postgresql_database_disasters_and_how_to_find_them/.

    • Practical advice for using Mypy - Hidden gems in the typing system! https://fosdem.org/2021/schedule/event/python_mypy/.

    • Escaping the Cargo Cult - How to structure your project without losing your mind. https://fosdem.org/2021/schedule/event/python_escaping_cargo_cult/.

  • [01:52:02] Charla Python Madrid https://www.python-madrid.es/.

    • TDD - ¿panacea del desarrollo o pérdida de tiempo? https://www.python-madrid.es/meetings/reunion-febrero-2021-python-madrid/.
  • [01:54:27] Comentado en la tertulia de la semana pasada: Bugs sobre "pickle" https://docs.python.org/3/library/pickle.html en el módulo __main__.

    Se trata de un problema conocido.

    • Ejemplo de código: https://pastebin.com/vGM1sh8r.

    • Issue24676: Error in pickle using cProfile https://bugs.python.org/issue24676.

    • Issue9914: trace/profile conflict with the use of sys.modules[__name__] https://bugs.python.org/issue9914.

    • Issue9325: Add an option to pdb/trace/profile to run library module as a script https://bugs.python.org/issue9325.

  • [02:00:42] Que te cuenten lo que no funciona es mucho más interesante.

    • Postmortem.
  • [02:02:52] Whoosh: https://whoosh.readthedocs.io/en/latest/intro.html. ¿Cómo normalizar las palabras para español?

    • La palabra "real" Whoosh: https://www.wordreference.com/es/translation.asp?tranword=whoosh. Dificultades para buscar el proyecto Python Whoosh https://whoosh.readthedocs.io/en/latest/intro.html en internet.
  • [02:05:48] Final.

Python en español
Python en español.