Python en español

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


Listen Later

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.

                                                      ...more
                                                      View all episodesView all episodes
                                                      Download on the App Store

                                                      Python en españolBy Jesús Cea


                                                      More shows like Python en español

                                                      View all
                                                      Libros para Emprendedores by Luis Ramos

                                                      Libros para Emprendedores

                                                      1,115 Listeners