PodcastsTecnologíaPython en español

Python en español

Jesús Cea
Python en español
Último episodio

29 episodios

  • Python en español

    Python en español #29: Tertulia 2021-04-20

    12/7/2021 | 2 h
    Plataformas centralizadas, GIL, aprendizaje automático, Pydantic y Python 3.10, y hemos renunciado a llevar la cuenta de los gazapos que metemos en cada tertulia https://podcast.jcea.es/python/29
    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.

    Felipem, conectando desde Cantabria.

    Juan José, Nekmo, https://nekmo.com/,
    https://github.com/Nekmo/. Madrileño conectando desde Málaga.

    Jesús, conectando desde Ferrol.

    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.

    [00:52] "Vamos a ir cortando" es la entrada de Jesús Cea para
    que alguien proponga temas durante media hora más.

    [02:27] ¡Ha salido el primer podcast!: Python en español #7:
    ¡Metapodcast de relanzamiento!
    https://podcast.jcea.es/python/7.

    Plataformas de podcasting.

    No necesitas ninguna plataforma, puedes usar directamente el
    feed RSS https://es.wikipedia.org/wiki/Rss.

    Funkwhale https://funkwhale.audio/.

    toc2audio https://docs.jcea.es/toc2audio/.

    Jesús Cea tiene su propia plataforma de podcasting,
    herramientas, etc. Quiere evitar la centralización a toda
    costa.

    [07:37] Mercurial https://es.wikipedia.org/wiki/Mercurial y
    Git https://es.wikipedia.org/wiki/Git.

    En Mercurial https://es.wikipedia.org/wiki/Mercurial es
    imposible modificar la historia.

    Es imposible hacer nada sofisticado en Git
    https://es.wikipedia.org/wiki/Git sin recurrir a Google.

    Mercurial - Filosofía y visión de alto nivel:
    https://www.jcea.es/artic/mercurial_madrid/.

    Bitbucket https://bitbucket.org/ ya no soporta Mercurial.

    Hay alternativas pequeñitas. Por ejemplo, Heptapod
    https://heptapod.net/.

    Más referencias en
    https://www.mercurial-scm.org/wiki/MercurialHosting.

    ¡Evita la centralización!

    Al final, el 99.9% de los proyectos de código abierto los
    mantienen los autores originales en exclusiva.

    Microsoft to acquire GitHub for $7.5 billion
    https://news.microsoft.com/2018/06/04/microsoft-to-acquire-github-for-7-5-billion/.

    ¿Trabajar por visibilidad? Eso se cura con la edad.

    Mantener infraestructura propia tiene su coste, pero puedes
    pagar a alguien para que lo haga, promoviendo multitud de
    plataformas federadas en vez de centralizar internet más y
    más.

    En cada campo de internet, hay uno o dos ganadores y nadie
    más pinta nada. Jesús Cea se queja mucho de eso.

    [21:54] Herramientas de aprendizaje automático (Machine
    Learning)
    https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico:

    Diferencia entre aprendizaje automático "de toda la vida" y
    el aprendizaje con refuerzo
    https://es.wikipedia.org/wiki/Aprendizaje_por_refuerzo.

    Redes neuronales: TensorFlow
    https://es.wikipedia.org/wiki/TensorFlow y Keras
    https://es.wikipedia.org/wiki/Keras.

    Procesado de texto: NLTK
    https://es.wikipedia.org/wiki/NLTK.

    scikit-learn https://scikit-learn.org/stable/index.html.

    Algunos libros:

    Python Machine Learning - Second Edition: Machine
    Learning and Deep Learning with Python, scikit-learn,
    and TensorFlow
    https://www.amazon.es/Python-Machine-Learning-Sebastian-Raschka/dp/1787125939/.
    Hay versión en castellano.

    "TensorFlow en un dia"
    https://www.amazon.es/TensorFlow-Day-Neural-Network-English-ebook/dp/B07H474R7Q/.
    Hay versión en castellano.

    Packt publica un libro gratis al día, muchos de
    aprendizaje automático:
    https://www.packtpub.com/free-learning.

    "Towards Data Science" https://towardsdatascience.com/.

    Medium https://medium.com/. Otra plataforma
    centralizada de las que tanto molestan a Jesús Cea.

    Vídeos:

    Dot CSV:
    https://www.youtube.com/channel/UCy5znSnfMsDwaLlROnZ7Qbg.

    La IMPRESIONANTE Cancelación de Ruido de NVIDIA |
    Data Coffee #13
    https://www.youtube.com/watch?v=d0g1EviDyWM.

    Slack https://slack.com/. ¡Arggg, otra plataforma privada
    centralizada!:

    ML-Hispano https://machinelearninghispano.com/.

    [30:32] PyConES 2021 https://2021.es.pycon.org/. Llamada a
    ponencias.

    [31:11] Incompatibilidad entre pydantic
    https://pypi.org/project/pydantic/ y Python
    3.10: IMPORTANT: PEP 563, PEP 649 and the future of pydantic
    #2678 https://github.com/samuelcolvin/pydantic/issues/2678.

    PEP 563 -- Postponed Evaluation of Annotations
    https://www.python.org/dev/peps/pep-0563/.

    Aún quedan meses para que se publique Python 3.10, se puede
    dar marcha atrás.

    Spoiler: Se dio marcha atrás temporalmente. Python 3.10
    se publicará sin ese cambio polémico. En principio,
    Python 3.11 (octubre de 2022) sí incluirá ese cambio.
    Detalles: PEP 563 and Python 3.10
    https://mail.python.org/archives/list/[email protected]/thread/CLVXXPQ2T2LQ5MP2Y53VVQFCXYWQJHKZ/.

    [37:02] ¿Qué pensais del comportamiento actual, que ejecuta la
    anotación de tipos al importar un módulo?

    >>> def pepe():
    ... print('hola')
    ...
    >>> def perico(x:pepe()):
    ... pass
    ...
    hola

    [38:47] Más aclaraciones sobre Flit
    https://pypi.org/project/flit/ y PEP 621 -- Storing project
    metadata in pyproject.toml
    https://www.python.org/dev/peps/pep-0621/.

    [40:14] Muchas erratas en las tertulias. Hay que fiarse más de
    las notas de los podcasts, que se elaboran con posterioridad.

    ¡Son charlas de bar! Conversaciones informales, sin
    investigación detallada.

    ¿Publicar audios de fé de erratas?

    [45:07] Truquillo que puede ser útil a alguien, sobre todo al
    serializar objetos con ciertos protocolos que no soportan
    True/False:

    >>> int(True)
    1
    >>> int(False)
    0
    >>> bool(0)
    False
    >>> bool(1)
    True

    [46:15] Extraer parámetros "keyword" de "**keywords", de forma
    automática.

    >>> def a(pepe=5, **kwargs):
    ... print(pepe, kwargs)
    ...
    >>> a(5, siete=5)
    5 {'siete': 5}

    Se explican algunos casos de uso.

    toc2audio https://docs.jcea.es/toc2audio/.

    [49:42] Dataclasses
    https://docs.python.org/3/library/dataclasses.html.

    PEP 557 -- Data Classes
    https://www.python.org/dev/peps/pep-0557/.

    Decoradores de clases: PEP 3129 -- Class Decorators
    https://www.python.org/dev/peps/pep-3129/.

    attrs https://pypi.org/project/attrs/.

    pydantic https://pypi.org/project/pydantic/. Validación de
    tipos en tiempo de ejecución. Esta biblioteca se nombra en
    casi todas las tertulias.

    Mypy http://mypy-lang.org/. Validación de tipos en tiempo
    de "testing" o integración continua.

    [01:01:12] Truco: "dar por cerrada la sesión" siempre abre temas
    nuevos:

    Libro: Python avanzado en un fin de semana
    https://www.amazon.es/Python-avanzado-fin-semana-Aprende-ebook/dp/B08XLYC38D.

    Libro de iniciación: Aprende Python en un fin de semana
    https://www.amazon.es/Aprende-Python-en-fin-semana-ebook/dp/B07GXDXLYC/.

    [01:03:50] GIL
    https://en.wikipedia.org/wiki/Global_interpreter_lock.

    Aunque solo se pueda ejecutar un hilo simultaneamente, es
    ventajoso cuando hay hilos dominados por la entrada/salida.

    Multihilo
    https://es.wikipedia.org/wiki/Hilo_(inform%C3%A1tica).

    Ha habido muchos intentos de cargarse el GIL de Python, con
    poco éxito.

    PEP 554 -- Multiple Interpreters in the Stdlib
    https://www.python.org/dev/peps/pep-0554/.

    Ejemplos de beneficios de multihilo y de tener varias CPUs
    https://es.wikipedia.org/wiki/Unidad_central_de_procesamiento
    en Python, aún con el GIL actual.

    Charla de Jesús Cea en la PyConES 2018: GIL: Todo lo que
    quisiste saber y no te atreviste a preguntar
    https://www.youtube.com/watch?v=50eOwz9lek4.

    [01:22:27] Truco: "dar por cerrada la sesión" siempre abre temas
    nuevos (segunda parte):

    ¿Ponerse deberes para que todos podamos aportar temas cada
    semana?

    [01:24:32] Uso de IDEs
    https://es.wikipedia.org/wiki/Entorno_de_desarrollo_integrado.

    Vim https://es.wikipedia.org/wiki/Vim.

    Autocompletado: Languaje Server Protocol
    https://en.wikipedia.org/wiki/Language_Server_Protocol.

    Sublime Text https://www.sublimetext.com/.

    PyCharm https://www.jetbrains.com/pycharm/.

    Eclipse https://www.eclipse.org/ide/.

    Automatizar cosas implica que puedes perder la capacidad de
    hacerlo "a mano", cuando lo necesites.

    [01:34:42] Eduardo "no tiene casa" :-). Eduardo nos presenta
    a la "jefa".

    Se emplaza un futuro debate sobre IDEs
    https://es.wikipedia.org/wiki/Entorno_de_desarrollo_integrado.

    Inercia para cambiar. El coste de cambiar el evidente, y lo
    que puede no ser evidente es el beneficio de cambiar.

    Hace falta un mentor "al lado". Ver un caso de uso.

    "Intentar salir de vim". Fuente inagotable de memes
    https://es.wikipedia.org/wiki/Meme.

    Módulo Mercurial que interactúa con GIT: hg-git
    https://pypi.org/project/hg-git/.

    FTP https://es.wikipedia.org/wiki/Ftp.

    WebDAV: https://es.wikipedia.org/wiki/WebDAV.

    Wing Python IDE: https://wingware.com/.

    El tiempo se va en pensar, no en picar código.

    También importa el perfil de código o proyecto concreto. Por
    ejemplo, puede haber mucha plantilla fácil de automatizar.

    [01:47:42] Truco: "dar por cerrada la sesión" siempre abre temas
    nuevos (tercera parte).

    [01:48:00] Cierre:

    Apuntarnos temas para traer a lo largo de la semana.

    Canal de Telegram https://t.me/joinchat/y__YXXQM6bg1MTQ0.

    [01:49:27] Mejorar el sistema de grabación de la tertulia. Jitsi
    https://es.wikipedia.org/wiki/Jitsi.

    Jesús Cea explica cómo graba. Algo bizarro y que
    funciona casi de casualidad.

    Cuando Jesús Cea grababa podcasts
    https://es.wikipedia.org/wiki/P%C3%B3dcast con un
    grupo cerrado de gente, la grabación era local cada uno
    en su máquina. Cada uno grababa su micrófono local y la
    suma de todos los demás en dos canales distintos. Eso
    permite tener separación de canales para editar el
    sonido y, si alguien se olvida de ponerlo, su voz ha
    quedado grabada en remoto en todos los demás.

    ALSA
    https://en.wikipedia.org/wiki/Advanced_Linux_Sound_Architecture.

    PulseAudio https://es.wikipedia.org/wiki/PulseAudio.

    PipeWire https://en.wikipedia.org/wiki/PipeWire.

    Jesús Cea explica por qué no está usando esa tecnología
    en las tertulias.

    Jibri: Jitsi BRoadcast Infraestructure
    https://github.com/jitsi/jibri.

    aiortc https://pypi.org/project/aiortc/.

    ICE (Interactive Connectivity Establishment):
    https://en.wikipedia.org/wiki/Interactive_Connectivity_Establishment.

    Hay un montón de plataformas de grabación online, de pago.
    El problema habitual es el soporte de conexiones desde
    distintos dispositivos.

    [01:58:35] Despedida.

    [01:59:15] Final.
  • Python en español

    Python en español #28: Tertulia 2021-04-13

    29/6/2021 | 1 h 16 min
    Tener varias versiones de Python en el mismo ordenador, estado de Durus, su licencia y cómo funciona la persistencia de datos https://podcast.jcea.es/python/28
    Participantes:

    Jesús Cea, email: [email protected], twitter:
    @jcea, https://blog.jcea.es/,
    https://www.jcea.es/. Conectando desde Madrid.

    Jesús, conectando desde Ferrol.

    Felipem, conectando desde Cantabria.

    Eduardo Castro, email:
    [email protected]. Conectando desde A
    Guarda.

    Víctor Ramírez, twitter: @virako,
    programador python y amante de
    vim, conectando desde
    Huelva.

    Sergio, conectando desde Vigo.

    Juan José, Nekmo, https://nekmo.com/,
    https://github.com/Nekmo/. Madrileño conectando desde Málaga.

    Miguel Sánchez, email:
    [email protected], conectando desde
    Las Palmas.

    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] Presentaciones.

    [03:47] Utilizar diferentes versiones de Python en el mismo
    ordenador.

    Cada paquete instalado está vinculado a una instancia
    concreta de Python instalada en el sistema.

    Nunca hacer pip install, sino indicar la versión: pip3.9
    install.

    A la hora de instalar paquetes Python en la versión nativa
    del sistema operativo, se puede usar pip o bien el gestor
    de paquetes del sistema operativo. Mezclar ambas es una
    receta para el desastre.

    [16:37] Un problema de los paquetes precompilados ("wheels"
    https://www.python.org/dev/peps/pep-0427/) es que no se suelen
    precompilar de forma retroactiva para la última versión de
    Python que acaba de salir.

    No suelen estar disponibles hasta que sale una versión nueva
    del paquete, lo que puede tardar meses.

    [19:52] ¿Bibliotecas para manejar imágenes, compatibles con PyPy
    https://www.pypy.org/?

    Numpy https://numpy.org/ aún no funciona en PyPy
    https://www.pypy.org/.

    [21:17] ¿Qué es PyPy https://www.pypy.org/ exactamente?

    Jit: Compilación al vuelo
    https://es.wikipedia.org/wiki/Compilaci%C3%B3n_en_tiempo_de_ejecuci%C3%B3n.

    Barrera de entrada muy grande para entrar en el proyecto.
    Curva de aprendizaje.

    Problemas con los módulos en C. No valoraron la
    importancia del ecosistema.

    HPy https://hpyproject.org/.

    [27:27] Experiencia de un par de semanas con Flit
    https://pypi.org/project/flit/.

    Jesús Cea lo está utilizando para publicar su biblioteca
    toc2audio https://docs.jcea.es/toc2audio/.

    Herramienta propuesta en la charla "Python Packaging: Lo
    estás haciendo mal"
    https://www.youtube.com/watch?v=OeOtIEDFr4Y, de Juan Luis
    Cano.

    https://github.com/astrojuanlu/charla-python-packaging.

    https://nbviewer.jupyter.org/format/slides/github/astrojuanlu/charla-python-packaging/blob/main/Charla%20Python%20packaging.ipynb#/

    PEP 621 -- Storing project metadata in pyproject.toml
    https://www.python.org/dev/peps/pep-0621/.

    Lo importante que es tener enlaces directos al "changelog" o
    a la documentación en PyPI https://pypi.org/.

    [31:32] Módulos de documentación. Carencias.

    Docstrings.

    doctest
    https://docs.python.org/3/library/doctest.html.

    Sphinx https://pypi.org/project/Sphinx/.

    make html.

    Tema eterno: Incluir una biblioteca en la biblioteca
    estándar o como biblioteca estándar.

    ReST: reStructuredText
    https://docutils.sourceforge.io/rst.html.

    PEP 287 -- reStructuredText Docstring Format
    https://www.python.org/dev/peps/pep-0287/.

    docutils: https://pypi.org/project/docutils/.

    [40:02] ¿Formato tertulia o preguntas y respuestas?

    [41:22] Estado actual de Durus
    https://www.mems-exchange.org/software/DurusWorks/ y
    comentarios variados sobre el sistema de persistencia.

    Jesús Cea ha estado intentando conectar con los autores, con
    poco éxito.

    Jesús Cea tiene problemas con la licencia.

    ¿Abandonar el proyecto y pasarse a ZODB
    https://zodb.org/en/latest/?

    La gente está haciendo "forks"
    https://en.wikipedia.org/wiki/Fork_(software_development)
    pasando olímpicamente de las licencias.

    Jesús Cea se está currando varios cambios de licencia en
    ciertos proyectos que le interesan, con muy poco éxito.

    ZOPE https://zopefoundation.github.io/Zope/.

    COPYRIGHT ASSIGNMENT
    https://www.copylaw.com/forms/copyassn.html.

    [50:32] ¿Cómo funciona un sistema de persistencia?

    Modelo completamente diferente a un ORM
    https://en.wikipedia.org/wiki/Object%E2%80%93relational_mapping.

    SQL: https://en.wikipedia.org/wiki/SQL.

    Working set: https://en.wikipedia.org/wiki/Working_set.

    [58:17] Volvemos al tema de licencias.

    [59:52] Explícame esto:
    https://lists.es.python.org/pipermail/general/2021-April/003476.html.

    Creamos un fichero "a.py" con el contenido:

    def x():
    print('X')

    Creamos otro fichero "b.py" con el contenido:

    import a

    class clase:
    x = a.x

    def p(self):
    print(self.x)
    self.x()

    if __name__ == '__main__':
    a.x()
    b = clase()
    b.p()

    Ejecutas "b.py" y me explicas por qué sale lo que sale :-).

    [01:03:42] A la gente le encanta que le "piquen".

    [01:03:52] Las versiones actuales de Python ya han integrado el
    parche del "memory leak" que se habló en navidades.

    bpo-35930: Raising an exception raised in a "future"
    instance will create reference cycles #24995
    https://github.com/python/cpython/pull/24995.

    [01:04:22] Llamada a ponencias de la PyConES
    https://2021.es.pycon.org/.

    [01:05:22] Volvemos al reto en
    https://lists.es.python.org/pipermail/general/2021-April/003476.html.

    Pista: los métodos son descriptores:
    https://docs.python.org/3/howto/descriptor.html.

    Bound method:
    https://www.geeksforgeeks.org/bound-methods-python/.

    Métodos estáticos:
    https://pythonbasics.org/static-method/.

    No se ha entendido nada porque ha habido numerosos cortes de
    sonido. El tema está bastante mejor explicado y se entiende
    en, por ejemplo, From Function to Method
    https://wiki.python.org/moin/FromFunctionToMethod.

    [01:10:02] Atributos de función. PEP 232 -- Function Attributes
    https://www.python.org/dev/peps/pep-0232/.

    Se pueden meter atributos a un método, pero se hace a nivel
    de clase, no de instancia, porque los métodos pertenecen a
    la clase, no a la instancia:class clase:
    def p(self):
    clase.p.hola = 78

    >>> x=clase()
    >>> x.p()
    >>> x.p.hola
    78
    >>> y=clase()
    >>> a.p.hola
    78
    >>> clase.p.hola
    78

    [01:14:42] Notas de las grabaciones, temas futuros y enviar
    temas con algún tiempo previo a la tertulia si requieren pensar.

    [01:16:06] Final.
  • Python en español

    Python en español #27: Tertulia 2021-04-06

    19/6/2021 | 1 h 27 min
    Flit, estilos de código, reducir no es optimizar, muchas opiniones sobre cómo documentar software y minutos sobre el audio de las tertulias y su inminente publicación https://podcast.jcea.es/python/27
    Participantes:

    Jesús Cea, email: [email protected], twitter:
    @jcea, https://blog.jcea.es/,
    https://www.jcea.es/. Conectando desde Madrid.

    Eduardo Castro, email:
    [email protected]. Conectando desde A
    Guarda.

    Víctor Ramírez, twitter: @virako,
    programador python y amante de
    vim, conectando desde
    Huelva.

    Javier, conectando desde Madrid.

    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 y comentarios sobre la calidad del audio en las
    grabaciones.

    Auriculares para evitar pedir demasiado al sistema de
    cancelación de eco, sobre todo si la sala tiene
    reverberación.

    ¡Manos fuera del teclado!

    [03:32] Consejos que ha dado Pablo Gómez para mejorar nuestras
    grabaciones.

    [04:52] Cómo conecta y graba las tertulias Jesús Cea.

    [06:22] Publicación inminente de las tertulias.

    toc2audio https://docs.jcea.es/toc2audio/.

    [07:22] Revisamos el micro de Jesús Cea y sus roces con la ropa
    en tiempo real. Fue muy entretenido.

    [09:32] Repaso de la tertulia pasada.

    toc2audio https://docs.jcea.es/toc2audio/ usa Flit
    https://pypi.org/project/flit/.

    Erratas de lo que se dijo la tertulia pasada sobre Flit
    https://pypi.org/project/flit/.

    [11:20] ¿Cómo se añaden comandos nuevos al sistema en MS
    Windows (en Python, claro)?

    [17:52] La nota legal de rigor y presentación de los tertulianos.

    [19:27] Revisión estética de "Python en Español"
    https://podcast.jcea.es/python/. ¿Algún voluntario?

    [20:52] Más sobre Flit https://pypi.org/project/flit/

    Problemas con los namespaces (PEP 420 -- Implicit Namespace
    Packages https://www.python.org/dev/peps/pep-0420/).

    [21:42] Estilo de código. La mayor parte del código abierto lo
    mantiene una sola persona. Tener una cultura común de código
    abierto ayuda. PEP 8 https://pep8.org/.

    [24:44] Mejor explícito que implícito.

    "from X import Y as Z".

    Cuidado con las microoptimizaciones.

    Reducir no es optimizar, necesariamente.

    Comentarios obvios sin utilidad.

    Los comentarios deben explicar el contexto, no lo que puedes
    ver directamente en el código.

    Ejemplos de comentarios inútiles.

    Metacomentarios:

    Linter https://es.wikipedia.org/wiki/Lint.

    Vim https://es.wikipedia.org/wiki/Vim.

    [55:32] Temas de actualidad.

    Nuevas versiones (fallidas) de Python 3.8 y 3.9.

    Última alpha de Python 3.10.

    Caída de PyPI https://pypi.org/: PyPI Unavailable :
    https://status.python.org/incidents/rw171ylf8jw3.

    [57:27] Rarezas Python.

    What does this print, #1:
    https://blog.kevmod.com/2014/06/what-does-this-print-1/.

    Depende de la implementación.

    Da pistas de cómo funciona la implementación Python por
    dentro.

    Hay muchas ambigüedades en las implementaciones de Python.
    Hay muchas reglas implícitas no documentadas.

    [01:00:52] Uso de variables globales.

    Condiciones de carrera:
    https://es.wikipedia.org/wiki/Condici%C3%B3n_de_carrera.

    Conflictos entre múltiples instancias o múltiples hilos.

    Patrón de diseño "singleton"
    https://es.wikipedia.org/wiki/Singleton.

    ¿Qué es una variable global?

    "Contextvars":
    https://docs.python.org/3/library/contextvars.html.

    Jesús Cea amenaza con usar "Contextvars"
    https://docs.python.org/3/library/contextvars.html en
    su proyecto "toc2audio"
    https://docs.jcea.es/toc2audio/ por pura chulería.

    "Closures":
    https://es.wikipedia.org/wiki/Clausura_(inform%C3%A1tica).

    [01:08:02] ¿Cómo se hacen pruebas con "closures"
    https://es.wikipedia.org/wiki/Clausura_(inform%C3%A1tica) o
    decoradores sofisticados?

    ¿Los tests unitarios están sobrevalorados?

    ¿Concentrarse en tests funcionales?

    Mock: unittest.mock
    https://docs.python.org/3/library/unittest.mock.html.

    Tests unitarios cuando se solucionan bugs, para evitar
    regresiones.

    Al refactorizar https://es.wikipedia.org/wiki/Refactorizar
    el código, hay que refractorizar tanto el código como los
    tests unitarios.

    Inyección de dependencias
    https://es.wikipedia.org/wiki/Inyecci%C3%B3n_de_dependencias.

    [01:13:07] Algunos comentarios sobre "Machete Mode":
    https://nedbatchelder.com/blog/202103/machete_mode_tagging_frames.html.

    [01:14:54] Detalles de la grabación e ideas de mejora.

    Jesús Cea se ha pasado la tertulia sujetando el micro con la
    mano y Eduardo no ha metido ruido de teclado.

    Jesús Cea tiene "ideas" de cómo grabar mejor. ¡Peligro!

    Plataformas de grabación online.

    El problema del cocktail:
    https://en.wikipedia.org/wiki/Signal_separation?wprov=srpw1_4#Cocktail_party_problem.

    Supresión de ruido: rnnoise
    https://jmvalin.ca/demo/rnnoise/.

    Cancelación de ruido espectacular de NVIDIA:
    https://www.youtube.com/watch?v=d0g1EviDyWM.

    Pablo Gómez utiliza Ardour https://ardour.org/ para editar
    los audios.

    [01:22:52] PÉRDIDA DE SONIDO.

    [01:23:07] Enlace al canal de Telegram de la tertulia:
    https://t.me/joinchat/y__YXXQM6bg1MTQ0.

    A Jesús Cea no le gusta nada utilizar mensajería instantanea
    para cosas que se quieran conservar.

    [01:24:02] PÉRDIDA DE SONIDO.

    [01:24:47] "Lo que se ha perdido ha sido la mejor conversación
    de la historia; lástima que no se haya grabado. La gente debería
    conectarse en directo a la tertulia para no perderse estas
    joyas". Es broma, ¿o no?. Muahahahaha :-).

    [01:26:35] Final.
  • Python en español

    Python en español #26: Tertulia 2021-03-30

    17/6/2021 | 1 h 49 min
    Diseccionamos la charla de Juan Luis Cano "Python Packaging: Lo estás haciendo mal" y mucho DevOps https://podcast.jcea.es/python/26
    Este audio tiene mucho ruido producido por el roce del micrófono
    de Jesús Cea en la ropa.

    Participantes:

    Jesús Cea, email: [email protected], twitter:
    @jcea, https://blog.jcea.es/,
    https://www.jcea.es/. Conectando desde Madrid.

    Felipem, conectando desde Cantabria.

    Víctor Ramírez, twitter: @virako,
    programador python y amante de
    vim, conectando desde
    Huelva.

    Javier, conectando desde Madrid.

    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:50] Preludio.

    Hay que automatizarlo todo, y lo que no se puede
    automatizar, se documenta.

    Detalles de calidad de grabación.

    Lo que falta para publicar los audios.

    toc2audio https://docs.jcea.es/toc2audio/.

    La publicación de audios es inminente.

    Diversas plataformas de podcast
    https://es.wikipedia.org/wiki/Podcasting.

    Spotify https://es.wikipedia.org/wiki/Spotify.

    ¿Y publicar en Youtube?

    Estadísticas de descarga.

    [08:20] Autonomía digital.

    ¡Muerte al MP3! https://es.wikipedia.org/wiki/MP3

    [10:20] Jesús Cea se queja de que la encuesta de programadores
    de Python no es sobre Python.

    Python Developers Survey 2020 Results
    https://www.jetbrains.com/lp/python-developers-survey-2020/

    [11:55] Python Packaging: Lo estás haciendo mal
    https://www.youtube.com/watch?v=OeOtIEDFr4Y.

    https://github.com/astrojuanlu/charla-python-packaging.

    https://nbviewer.jupyter.org/format/slides/github/astrojuanlu/charla-python-packaging/blob/main/Charla%20Python%20packaging.ipynb#/

    La charla ha gustado bastante en general.

    Flit https://pypi.org/project/flit/.

    Mucha documentación online está anticuada. Viene bien una
    lista de "buenas prácticas" actualizadas.

    El peso del "legado" anticuado.

    El ecosistema se está moviendo muy rápido.

    Buenas prácticas: https://packaging.python.org/. Esperemos
    que alguien mantenga eso actualizado.

    PEP 621 -- Storing project metadata in pyproject.toml
    https://www.python.org/dev/peps/pep-0621/.

    Pecado que Jesús Cea comete constantemente: ¡instalar
    paquetes a nivel de sistema operativo!. No le da problemas
    porque hace tantas barbaridades que se cancelan unas a
    otras. ¡Tú mejor que sigas las recomendaciones de Juan Luis
    Cano https://twitter.com/juanluisback!

    pipenv es el mal https://pypi.org/project/pipenv/.

    pip-tools https://pypi.org/project/pip-tools/.

    pip-compile.

    pipdeptree https://pypi.org/project/pipdeptree/.

    [35:28] A la hora de fijar dependencias, no es lo mismo
    bibliotecas que aplicaciones.

    [40:58] ¿Estar a la última o actualizar cuando no hay más
    remedio?

    ¡Tests de integración!
    https://es.wikipedia.org/wiki/Prueba_de_integraci%C3%B3n

    [45:15] Un 100% de cobertura de código no garantiza que se
    ejecuten todos los estados del código.

    [49:10] Tests de mutaciones
    https://es.wikipedia.org/wiki/Prueba_de_mutaci%C3%B3n.

    hypothesis https://pypi.org/project/hypothesis/.

    mutant https://pypi.org/project/mutant/.

    [50:50] Flit https://pypi.org/project/flit/.

    PEP 420 -- Implicit Namespace Packages
    https://www.python.org/dev/peps/pep-0420/.

    PEP 621 -- Storing project metadata in pyproject.toml
    https://www.python.org/dev/peps/pep-0621/.

    [55:35] PEP 427 -- The Wheel Binary Package Format 1.0
    https://www.python.org/dev/peps/pep-0427/.

    Conda: https://docs.conda.io/en/latest/.

    Problemas para que los Wheel soporten las nuevas versiones
    de Python.

    Cuando sale una nueva versión de Python, suele ser
    necesario esperar para tener soporte Wheels de los
    paquetes que nos interesan.

    ELF (Executable and Linkable Format):
    https://en.wikipedia.org/wiki/Executable_and_Linkable_Format.

    [01:03:10] ¿Alguien usando un sistema operativo viejo va a
    instalar una versión moderna de Python?

    Si puedes instalar Python desde código fuente, seguro
    que puedes compilar mi librería desde código fuente
    también.

    Ojo con los paquetes binarios avanzados en CPUs
    antiguas.

    SSE:
    https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions.

    cmov:
    https://en.wikipedia.org/wiki/Predication_(computer_architecture)#History.

    [01:10:48] Docker
    https://es.wikipedia.org/wiki/Docker_(software).

    [01:11:20] Réplicas locales de PyPI https://pypi.org/ y
    PyPI privados.

    [01:14:45] ccache https://ccache.dev/.

    Ansible: https://es.wikipedia.org/wiki/Ansible_(software).

    [01:18:58] HPy https://hpyproject.org/.

    [01:20:10] ¿Proponer temas esotéricos? ¿Mandar deberes?

    [01:21:05] Más sobre HPy https://hpyproject.org/.

    API alternativa para módulos Python en C.
    https://es.wikipedia.org/wiki/Interfaz_de_programaci%C3%B3n_de_aplicaciones.

    Permite generar un Wheel
    https://www.python.org/dev/peps/pep-0427/ que funciona en
    varias versiones de Python.

    Buen rendimiento tanto en CPython como en PyPy
    https://www.pypy.org/.

    Posible API
    https://es.wikipedia.org/wiki/Interfaz_de_programaci%C3%B3n_de_aplicaciones
    futuro para CPython.

    [01:29:02] Ayuda para adecentar la página web de los podcasts:
    https://podcast.jcea.es/python/.

    La publicación de los audios es inminente.

    Reusaremos el podcast "Python en español"
    https://podcast.jcea.es/python/. He pedido permiso a mis
    antiguos compañeros.

    CSS:
    https://es.wikipedia.org/wiki/Hoja_de_estilos_en_cascada.

    Hay tanto retraso en la publicación que cualquier
    "feedback" tardará en salir y en notarse sus efectos.

    [01:35:10] Canal de Telegram de coordinación:
    https://t.me/joinchat/y__YXXQM6bg1MTQ0.

    [01:36:10] Machete Mode
    https://nedbatchelder.com/blog/202103/machete_mode_tagging_frames.html.

    Usarlo para depurar un bug.

    Pena de muerte en producción.

    Ideas locas: James Powell https://twitter.com/dontusethiscode.

    Conocimiento íntimo del lenguaje y de su implementación.

    Javier disfruta dando charlas de temas profundos y
    esotéricos.

    [01:42:30] El parche de Memory Leak ya se ha integrado el
    Python.

    bpo-35930: Raising an exception raised in a "future"
    instance will create reference cycles #24995
    https://github.com/python/cpython/pull/24995.

    [01:43:30] Despedida y deberes futuros.

    Security funding & NYU
    https://discuss.python.org/t/new-packaging-security-funding-nyu/7792.

    TUF (The Update Framework) https://theupdateframework.io/.

    PEP 458 -- Secure PyPI downloads with signed repository
    metadata https://www.python.org/dev/peps/pep-0458/.

    PEP 480 -- Surviving a Compromise of PyPI: End-to-end
    signing of packages
    https://www.python.org/dev/peps/pep-0480/.

    En honor a Eduardo, que no se ha conectado hoy, metemos
    ruido de teclado para que nuestro editor Pablo no lo eche de
    menos.

    [01:48:20] Final.
  • Python en español

    Python en español #25: Tertulia 2021-03-23

    09/6/2021 | 1 h 31 min
    Pattern Matching en Python 3.10, Sans IO y Encuesta mundial de programadores Python https://podcast.jcea.es/python/25
    Participantes:

    Jesús Cea, email: [email protected], twitter:
    @jcea, https://blog.jcea.es/,
    https://www.jcea.es/. Conectando desde Madrid.

    Felipem, conectando desde Cantabria.

    Jesús, conectando desde Ferrol.

    Víctor Ramírez, twitter: @virako,
    programador python y amante de
    vim, conectando desde
    Huelva.

    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.

    [00:52] Advertencia de que el audio tiene lagunas y puede ser
    difícil seguir el hilo.

    [01:07] Conecta gente nueva y cambio de horario.

    ¡Queremos que las tertulias sean más cortas!

    [04:57] Python 3.10: ¿Mandar y cómo mandar deberes?

    ¿Probar las novedades cuando se anuncian o esperar a que
    entren en producción?

    [08:19] Presentaciones.

    [10:32] Jesús Cea ha enviado ya el parche para el bug que se
    discutió en navidades: Issue35930: Raising an exception raised
    in a "future" instance will create reference cycles
    https://bugs.python.org/issue35930.

    [11:12] Los que se autodenominan novatos también tienen mucho
    que aportar.

    [12:21] Unpacking en bucles for: PEP 3132 -- Extended Iterable
    Unpacking: https://www.python.org/dev/peps/pep-3132/.

    Busca en Internet: "Python tuple unpacking".

    PEP 448 -- Additional Unpacking Generalizations:
    https://www.python.org/dev/peps/pep-0448/.

    [15:57] Python Packaging: Lo estás haciendo mal
    https://www.youtube.com/watch?v=OeOtIEDFr4Y.

    https://github.com/astrojuanlu/charla-python-packaging.

    https://nbviewer.jupyter.org/format/slides/github/astrojuanlu/charla-python-packaging/blob/main/Charla%20Python%20packaging.ipynb#/

    [18:07] Machete Mode:
    https://nedbatchelder.com/blog/202103/machete_mode_tagging_frames.html.

    [18:42] Pattern Matching en Python 3.10:

    PEP 622 -- Structural Pattern Matching
    https://www.python.org/dev/peps/pep-0622/.

    PEP 634 -- Structural Pattern Matching: Specification
    https://www.python.org/dev/peps/pep-0634/.

    PEP 635 -- Structural Pattern Matching: Motivation and
    Rationale https://www.python.org/dev/peps/pep-0635/.

    PEP 636 -- Structural Pattern Matching: Tutorial
    https://www.python.org/dev/peps/pep-0636/.

    Tema recurrente: ¿Compensa complicar la sintaxis del
    lenguaje?

    [22:27] ¡Combina todo eso con el Walrus operator (operador
    morsa)!: PEP 572 -- Assignment Expressions
    https://www.python.org/dev/peps/pep-0572/.

    Presentación en vídeo: Pattern Matching in Python 3.10:
    https://morioh.com/p/aa1e6d5352c3, minuto 8:47.

    [24:32] Temas recurrentes de Jesús Cea: complejidad accidental
    del lenguaje. ¿Python ha perdido el rumbo?

    Guido van Rossum
    https://es.wikipedia.org/wiki/Guido_van_Rossum está
    apoyando muchos cambios polémicos en Python.

    El principio del fin fue la implementación de
    async/await y dividir Python en dos mundos: síncrono y
    asíncrono.

    [27:02] Código que puede funcionar tanto en el mundo síncrono y
    asíncrono.

    Biblioteca asyncio:
    https://docs.python.org/3/library/asyncio.html.

    Biblioteca unsync: https://pypi.org/project/unsync/.

    inspect.iscoroutinefunction(object):
    https://docs.python.org/3/library/inspect.html#inspect.iscoroutinefunction.

    inspect.iscoroutine(object):
    https://docs.python.org/3/library/inspect.html#inspect.iscoroutine.

    inspect.isawaitable(object):
    https://docs.python.org/3/library/inspect.html#inspect.isawaitable.

    inspect.isasyncgenfunction(object):
    https://docs.python.org/3/library/inspect.html#inspect.isasyncgenfunction.

    inspect.isasyncgen(object):
    https://docs.python.org/3/library/inspect.html.

    [29:12] Lo bueno de tener dificultad para mezclar el mundo
    síncrono y el mundo asíncrono es que ha surgido un movimiento
    para desvincular los protocolos del propio medio de
    comunicación.

    Sans IO: https://sans-io.readthedocs.io/.

    Máquina de estados:
    https://es.wikipedia.org/wiki/M%C3%A1quina_de_estados.

    [33:15] How to write obfuscated python
    https://archive.org/details/pyvideo_398___how-to-write-obfuscated-python.

    [33:52] Seguridad en PyPI https://pypi.org/: New packaging
    security funding & NYU
    https://discuss.python.org/t/new-packaging-security-funding-nyu/7792.

    PEP 458 -- Secure PyPI downloads with signed repository
    metadata https://www.python.org/dev/peps/pep-0458/.

    Permite meter espejos de PyPI https://pypi.org/ sin tener
    que confiar en ellos.

    [36:27] Encuesta mundial de programadores Python: Python
    Developers Survey 2020 Results
    https://www.jetbrains.com/lp/python-developers-survey-2020/.

    Aquí no vamos a describir cada respuesta de la encuesta en las
    notas de la tertulia, pero listamos puntos y enlaces que
    pueden ser de interés.

    [40:32] Usar Python en el navegador web: Brython
    http://www.brython.info/.

    [44:42] ¿No molaría poder mezclar código Python y
    Javascript y poder llamarse mutuamente?

    [45:42] Precendente: Python y Java: Jython
    https://www.jython.org/.

    WAR:
    https://en.wikipedia.org/wiki/WAR_(file_format).

    [47:42] Python soportado en los navegadores.

    PyXPCOM:
    https://developer.mozilla.org/pl/docs/PyXPCOM.

    WebAssembly:
    https://es.wikipedia.org/wiki/WebAssembly.

    asm.js: https://en.wikipedia.org/wiki/Asm.js.

    Emscripten: https://emscripten.org/.

    Javascript en javascript: Polyfill
    https://en.wikipedia.org/wiki/Polyfill_(programming).

    Pyodide https://pyodide.org/en/stable/index.html.

    [59:37] Aún hay mucha documentación online sin actualizar,
    con ejemplos en Python 2.

    [01:00:42] Corte de conexión. Se supone que había un más
    gente grabando la tertulia, pero luego resultó que no.

    [01:04:12] pipenv https://pypi.org/project/pipenv/.

    [01:09:22] Las características deseadas de Python chocan
    con lo que más se valora en él...

    [01:11:32] La documentación de FastAPI
    https://fastapi.tiangolo.com/ es fantástica y puedes
    aprender muchísimos conceptos web.

    REST:
    https://en.wikipedia.org/wiki/Representational_state_transfer.

    [01:18:07] Libro "Modern Tkinter for Busy Python Developers"
    https://tkdocs.com/book.html.

    [01:19:12] En la escuesta no salen librerías de generación
    de PDFs https://es.wikipedia.org/wiki/PDF. Se sugieren
    algunas:

    Reportlab https://pypi.org/project/reportlab/.

    PyPDF3 https://pypi.org/project/PyPDF3/.

    weasyprint https://pypi.org/project/weasyprint/.

    [01:21:52] No hay representación de tecnologías de
    persistencia de datos en los resultados de la encuesta.

    [01:22:22] Tortoise ORM
    https://tortoise-orm.readthedocs.io/en/latest/index.html
    es asíncrona.

    [01:22:47] SQLite https://sqlite.org/ es perfecta si
    quieres SQL https://es.wikipedia.org/wiki/SQL, pero solo
    hay un programa usando la base de datos.

    [01:26:42] Map/Reduce
    https://es.wikipedia.org/wiki/MapReduce.

    Manta: Triton's object storage and converged analytics
    solution https://apidocs.joyent.com/manta/.

    [01:27:32] Lo dejamos en la mitad de la encuesta:
    Technologies and Cloud.

    [01:28:22] Intentamos coordinar el acceso a la segunda captura
    de audio de la tertulia. Lamentablemente la cosa no
    funcionó.

    [01:29:22] Queda pendiente comentar cómo va la publicación de
    las tertulias en formato podcast.

    [01:30:17] ¡Nuevo horario!

    [01:31:05] Final.

Más podcasts de Tecnología

Acerca de Python en español

'Feed' de Python en español.
Sitio web del podcast

Escucha Python en español, The Vergecast y muchos más podcasts de todo el mundo con la aplicación de radio.net

Descarga la app gratuita: radio.net

  • Añadir radios y podcasts a favoritos
  • Transmisión por Wi-Fi y Bluetooth
  • Carplay & Android Auto compatible
  • Muchas otras funciones de la app

Python en español: Podcasts del grupo

Aplicaciones
Redes sociales
v8.3.1 | © 2007-2026 radio.de GmbH
Generated: 1/28/2026 - 4:47:18 PM