Python en español

Python en español #22: Tertulia 2021-03-02


Listen Later

Os dejamos con la miel en los labios, pero hasta ese momento hablamos de la interacción entre las clases abstractas y MYPY, más complejidad en la sintaxis de Python con el PEP 637, PIP, dependencias varias y seguridad, y los tipos de PEP que hay. ¿Bokeh o Plotly? Haberte conectado en directo... https://podcast.jcea.es/python/22

Participantes:

  • Jesús Cea, email: [email protected], twitter:

    @jcea, https://blog.jcea.es/,
    https://www.jcea.es/. Conectando desde Madrid.

  • Javier, conectando desde Madrid.

  • Miguel Sánchez, email:

    [email protected], conectando desde
    Las Palmas.

  • Eduardo Castro, email:

    [email protected]. Conectando desde A
    Guarda.

  • Víctor Ramírez, twitter: @virako,

    programador python y amante de
    vim, conectando desde
    Huelva.

  • José Juan.

    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:53] Vamos progresando en la publicación de las grabaciones.

      • Pablo Gómez, twitter:

        @julebek, nuestro sufrido
        editor de audio, está enviando a Jesús Cea ya algunos audios
        procesados.

        • La calidad de los audios originales es bastante mala.
        • Capítulos en audios: Biblioteca toc2audio

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

        • Jesús Cea quiere notas exhaustivas de cada grabación. El

          audio es casi redundante. Lo que estás leyendo ahora mismo,
          vaya.

        • [06:45] El aviso legal de rigor para grabar los audios y

          publicarlos luego.

        • [06:58] Presentaciones.

        • [09:58] Jesús Cea habla mucho.

        • [10:53] Interacción entre clases abstractas

          https://docs.python.org/3/library/abc.html y MYPY
          http://mypy-lang.org/.

        • [18:28] Expansión explosiva del tamaño del bytecode

          https://es.wikipedia.org/wiki/Bytecode generado por un
          programa trivial Python.

          Ojo, teclear este código tal cual puede tumbar tu máquina y

          puedes necesitar reiniciar, perdiendo lo que estés haciendo
          con el ordenador.

          (1<<19**8,)*2
          (1<<19**8,)*4**7
          • Build a Compiler Bomb: Python 3, 13 byte source,

            9,057,900,463 byte (8.5GiB) .pyc-file / Python 3, 16 byte
            source, >32TB .pyc-file (if you have enough memory, disk
            space and patience)
            https://codegolf.stackexchange.com/questions/69189/build-a-compiler-bomb/69415#69415.

          • 16 bytes of Python code compiles to 32 terabytes of bytecode

            https://www.reddit.com/r/Python/comments/llccey/16_bytes_of_python_code_compiles_to_32_terabytes/.

          • [27:48] GitHub actions: https://github.com/features/actions.

          • [28:43] PEP 637 -- Support for indexing with keyword arguments

            https://www.python.org/dev/peps/pep-0637/.

            • La sintaxis de Python es cada vez más compleja.

            • Jesús Cea se sorprende de que Guido van Rossum

              https://es.wikipedia.org/wiki/Guido_van_Rossum esté
              "pervertiendo" tanto Python.

            • Muchos cambios de sintaxis se justifican para ciertos

              usuarios (cálculo numérico) y resulta que a esos usuarios no
              les está preguntando nadie.

            • Los lenguajes empiezan simples y se van complicando...

              siendo reemplazados por otros lenguajes que empiezan
              simples.

            • Estos temas se han tratado con frecuencia y profundidad en

              tertulias anteriores.

            • El lenguaje se particiona en "sublenguajes" y "subculturas".

            • BNF (Backus–Naur form):

              https://es.wikipedia.org/wiki/Notaci%C3%B3n_de_Backus-Naur.

            • JavaScript: The Good Parts:

              https://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742.

            • ¿Cómo aprende Python la gente novata?

            • Grupos de excepciones: PEP 654

              https://www.python.org/dev/peps/pep-0654/.

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

              contamina todo tu código.

              • Trio: https://pypi.org/project/trio/.
              • [44:26] Metaconversacion sobre temas recurrentes en la tertulia.

                • ¿Puesta al día anual sobre temas recurrentes?
                • [45:08] ¿Cómo se numeran los PEP

                  https://www.python.org/dev/peps/?

                  • Cuando se actualiza un PEP, no cambia de numeración.

                  • Black: https://pypi.org/project/black/.

                  • Los PEP incluyen una sección de cambios, historia del PEP.

                  • PEP 494 -- Python 3.6 Release Schedule

                    https://www.python.org/dev/peps/pep-0494/.

                  • PEP 373 -- Python 2.7 Release Schedule

                    https://www.python.org/dev/peps/pep-0373/.

                  • [51:08] A veces para ver los cambios de un proyecto, a veces no

                    hay más remedio que examinar el propio sustema de control de
                    versiones. Documentar los cambios debería ser obligatorio, pero
                    no todos los proyectos lo usan
                    https://es.wikipedia.org/wiki/Changelog.

                  • [53:28] El valor de los DeprecationWarning:

                    https://docs.python.org/3/library/exceptions.html#DeprecationWarning.
                    ¿Cuándo los arreglas?

                    • Deuda técnica.

                    • Estrategia: Bloquear dependencias.

                    • Acumular actualizaciones tampoco es buena idea.

                    • Que tus tests comprueben tus dependencias suele ser una mala

                      práctica, pero para los tests de integración puede ser buena
                      idea para asegurarse la estabilidad del ecosistema del
                      proyecto.

                    • [58:13] Los problemas de bloquear dependencias de forma

                      transitiva.

                      • pip freeze https://pip.pypa.io/en/stable/cli/pip_freeze/.

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

                      • [01:02:56] pip https://pypi.org/project/pip/ no tiene "hooks"

                        https://es.wikipedia.org/wiki/Hooking, pero las versiones
                        recientes tienen un proceso de resolución de dependencias
                        bastante sofisticado.

                      • [01:05:43] Paquete "safety" https://pypi.org/project/safety/.

                      • [01:07:38] Salto de fe al hacer pip install. Paquetes

                        maliciosos.

                        • Ataque a cadena de suministro
                        • https://es.wikipedia.org/wiki/Ataque_a_cadena_de_suministro.
                        • [01:09:23] Motivación económica para secuestrar el DNS

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

                        • [01:10:58] Nombres inexplicables de paquetes en PIP.

                        • [01:11:28] RFC 2606: Reserved Top Level DNS Names

                          https://datatracker.ietf.org/doc/html/rfc2606.

                          • Por ejemplo, http://example.org/ .
                          • [01:13:53] Recursos en español de Python:

                            • Pybonacci: https://pybonacci.org/.

                            • Chema Cortés: https://blog.ch3m4.org/.

                            • AlgoriSoft: https://algorisoft.com/. Cursos de Django

                              https://www.djangoproject.com/.

                            • [01:16:28] Comparativa entre Bokeh https://bokeh.org/ y Plotly

                              https://plotly.com/python/.

                              • Gráficos dinámicos en JavaScript para el navegador web, pero
                              • alimentado desde Python en el servidor.
                              • [01:19:46] La grabación se cortó aquí debido a "un problema

                                técnico" (entre la silla y el teclado de Jesús Cea). Se ha
                                perdido más o menos la última media hora.

                              • [01:19:55] 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