Python en español

Python en español #20: Tertulia 2021-02-16


Listen Later

Internet Archive, no acabamos de hablar del nuevo "pattern matching", complejidad creciente de la sintaxis de Python https://podcast.jcea.es/python/20

Participantes:

  • Eduardo Castro, email:

    [email protected]. Conectando desde A
    Guarda.

  • 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.

  • 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.

    • [01:33] Cómo documentar en Python.

      • Google docs: https://docs.google.com.

      • Wikis en GitHub:

        https://docs.github.com/en/communities/documenting-your-project-with-wikis/about-wikis.

      • Ventajas de tener la documentación en el control de

        versiones del proyecto.

      • Ventajas de ir escribiendo la documentación mientras

        escribes el propio código: Realimentación.

      • Sphinx: https://www.sphinx-doc.org/en/master/.

        • sphinx.ext.autodoc:

          https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html.

        • plantuml: https://github.com/sphinx-contrib/plantuml.

        • Markdown: https://www.markdownguide.org/.

        • [03:48] La vieja guardia es escéptica con las novedades de

          la semana.

          • No hay balas de plata.
          • La documentación guía el desarrollo.

          • Paralelismo con los tests.

          • [08:38] Open source y la vergüenza: tests y documentación.

          • [09:28] CPython Internals Book

            https://realpython.com/products/cpython-internals-book/.

          • [11:13] HPy https://hpyproject.org/. Nuevo API

            https://es.wikipedia.org/wiki/Api para programar extensiones C
            para Python, independizándote de la versión del intérprete y
            compatible con cosas como PyPy: https://www.pypy.org/.

          • [13:18] Internet Archive como biblioteca de libros modernos:

            https://archive.org/details/inlibrary.

            • Funciona como una biblioteca tradicional.

            • Préstamo de libros.

            • Están escaneando a toda velocidad: 2.5 millones de libros en

              el momento de escribir estas notas (mayo de 2021).

            • Internet Archive: https://archive.org/.

            • Wayback Machine: https://web.archive.org/.

            • Preservación de videojuegos, páginas en flash, discos de

              música...

            • [17:03] Web de Python en Internet Archive.

              • 1997:

                https://web.archive.org/web/19970606181701/http://www.python.org/.

              • 1998:

                https://web.archive.org/web/19981212032130/http://www.python.org/.

              • Un ejemplo de "batteries included":

                https://commons.wikimedia.org/wiki/File:Python_batteries_included.jpg.

              • [17:53] Jesús Cea echa de menos la internet distribuida.

              • [18:23] Pattern Matching en Python 3.10. PEP 622 -- Structural

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

                • ¿"match" y "case" serán palabras reservadas?

                • PEP 617 -- New PEG parser for CPython

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

                • Se repasa la funcionalidad un poco por encima.

                • [27:48] Logs fáciles de configurar y decorados con colorines:

                  • Daiquiri: https://daiquiri.readthedocs.io/en/latest/.

                  • Colorama: https://pypi.org/project/colorama/. Compatible

                    con Windows.

                  • [29:28] Truco: Python -i: Ejecuta un script y pasa a modo

                    interactivo.

                    Comentado hace unas semanas.

                    También se puede hacer desde el propio código con

                    code.InteractiveConsole(locals=globals()).interact().

                    Jesús Cea se queja de que usando la invocación desde código

                    no funciona la edición de líneas. Javier da la pista correcta:
                    para que funcione, basta con hacer import readline antes de
                    lanzar el modo interactivo.

                  • [30:48] Manhole: https://pypi.org/project/manhole/.

                  • [31:53] Breakpoints condicionales

                    https://docs.python.org/3/library/pdb.html#pdbcommand-condition.

                    • breakpoint() como función nativa: PEP 553 -- Built-in

                      breakpoint() https://www.python.org/dev/peps/pep-0553/.

                    • import pdb; pdb.set_trace().

                    • [33:28] Scraping a mano:

                      • scrapy shell:

                        https://docs.scrapy.org/en/latest/topics/shell.html.

                      • Jesús Cea no echa de menos Scrapy

                        https://docs.scrapy.org/en/latest/.

                      • [36:03] Indexador y buscador de documentos: Whoosh

                        https://whoosh.readthedocs.io/en/latest/intro.html.

                        • Jesús necesitaba ignorar tildes, lo que impacta en la

                          extracción del lexema.

                        • El backend está documentado, para que te lo puedas currar tú

                          si lo necesitas.

                        • [38:23] ¿Cómo hacer copia de seguridad de un fichero de 600

                          gigabytes con pocos cambios internos?

                        • [40:58] Eduardo Castro ha ganado un hackathon en Pontevedra.

                          • Software para Django: https://www.djangoproject.com/.

                          • [46:38] Experiencias agridulces con los hackathones

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

                            • Netflix Prize https://en.wikipedia.org/wiki/Netflix_Prize.
                            • [50:38] Una URL puede no estar no disponible ya cuando escuchas

                              el podcast:

                              • Podcast: Programar es una mierda:
                              • https://www.programaresunamierda.com/.
                              • [52:28] Jamii https://jamii.es/.

                              • API https://es.wikipedia.org/wiki/Api

                              • [55:38] GraphQL https://es.wikipedia.org/wiki/GraphQL.

                                • REST:

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

                                • Permisos de usuario.

                                • No hay cacheo.

                                • Vulcain: https://github.com/dunglas/vulcain.

                                • [01:02:53] HTTP/2 https://en.wikipedia.org/wiki/HTTP/2.

                                  • HTTP/2 Server Push:

                                    https://en.wikipedia.org/wiki/HTTP/2_Server_Push.

                                  • No se tiene que responder por orden. Multiplexación.

                                  • [01:08:53] La explosión de la complejidad innecesaria ocultada

                                    por bibliotecas:

                                    • OAuth2

                                      https://en.wikipedia.org/wiki/OAuth#OAuth_2.0.

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

                                    • [01:10:33] Complejidad creciente de la sintaxis de Python.

                                      • Volvemos a Structural Pattern Matching

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

                                      • Complejidad de la sintaxis.

                                      • Un lenguaje pequeño y capaz reemplaza a lenguajes

                                        dinosaurio. Python reemplazó a otros lenguajes dinosaurio.
                                        Ahora Python es un dinosaurio. ¿Cuándo saldrá un lenguaje
                                        que reemplace a Python?

                                      • [01:12:13] Metaclases

                                        https://realpython.com/python-metaclasses/.

                                      • Closures:

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

                                      • [01:15:08] Empiezan a aparecer sublenguajes, tribus,

                                        subculturas de Python.

                                      • Ciertos cambios de sintaxis pueden unificar subculturas: "la

                                        forma oficial de hacerlo".

                                        • El operador ternario de Python v = VALOR1 if CONDICIÓN

                                          else VALOR2: PEP 308 -- Conditional Expressions
                                          https://www.python.org/dev/peps/pep-0308/.

                                        • List comprehension: [f(i) for i in ITER if

                                          CONDICIÓN(i)]: PEP 202 -- List Comprehensions
                                          https://www.python.org/dev/peps/pep-0202/.

                                        • [01:20:18] En los viejos tiempos, podías hacer barbaridades

                                          como True = 0. Esto funciona en Pythonn 2.7. Es algo que
                                          se cambió en Python 3.0:
                                          https://docs.python.org/3.0/whatsnew/3.0.html#changed-syntax.

                                        • [01:21:53] Jesús Cea echa de menos que se eliminen cosas.

                                          Está obsesionado con el tamaño del lenguaje.

                                          • ¿Qué eliminaríamos?
                                          • [01:25:23] El lenguaje C incluye solo lo mínimo imprescindible.

                                          • [01:26:48] Curiosidades: What the f*ck Python!

                                            https://github.com/satwikkansal/wtfpython:

                                            >>> all([])
                                            True
                                            >>> all([[]])
                                            False
                                            >>> all([[[]]])
                                            True
                                          • [01:28:03] Algunos avances en la investigación del bug descrito

                                            por Virako en las últimas semanas: 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.

                                              Requiere mejorar el módulo runpy

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

                                              A nadie le ha dolido lo suficiente el bug como para

                                              solucionarlo. No es que sea realmente difícil. Tal vez sí.

                                            • [01:35:53] Nuitka https://nuitka.net/.

                                              • Ejecutables Python independientes de lo que tengas instalado

                                                en el sistema. Por ejemplo, para poder usar una versión de
                                                Python "moderna".

                                              • También funciona en MS Windows.

                                              • [01:39:43] Tertulia previa: Fuentes de caracteres con ligaduras.

                                                • Combinación de caracteres unicode.

                                                • Las banderas de los países, por ejemplo, son un código

                                                  "bandera" seguido del código del país:
                                                  https://en.wikipedia.org/wiki/Regional_indicator_symbol.

                                                • La bandera de Taiwan se ve distinta en China que en el resto

                                                  del mundo: https://emojipedia.org/flag-taiwan/.

                                                • "Collation"

                                                  https://en.wikipedia.org/wiki/Unicode_collation_algorithm,
                                                  para ordenar y comparar correctamente
                                                  caracteres unicode: PyICU: https://pypi.org/project/PyICU/.

                                                • [01:50:23] Cuando el Steering Council

                                                  https://www.python.org/dev/peps/pep-0013/ vota un tema
                                                  polémico, la decisión es final. Ya no se busca el consenso a
                                                  toda costa.

                                                • [01:52:53] Despedida.

                                                • [01:53: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