Internet Archive, no acabamos de hablar del nuevo "pattern matching", complejidad creciente de la sintaxis de Python https://podcast.jcea.es/python/20\n
Participantes:
\nEduardo Castro, email:\n info@ecdesign.es. Conectando desde A\n Guarda.
\nJes\xfas Cea, email: jcea@jcea.es, twitter:\n @jcea, https://blog.jcea.es/,\n https://www.jcea.es/. Conectando desde Madrid.
\nV\xedctor Ram\xedrez, twitter: @virako,\n programador python y amante de\n vim, conectando desde Huelva.
\nJavier, conectando desde Madrid.
\nAudio editado por Pablo G\xf3mez, twitter:\n@julebek.
\nLa m\xfasica de la entrada y la salida es "Lightning Bugs", de Jason\nShaw. Publicada en https://audionautix.com/ con licencia\n- Creative Commons Attribution 4.0 International\nLicense.
\n[01:33] C\xf3mo documentar en Python.
\nGoogle docs: https://docs.google.com.
\nWikis en GitHub:\n https://docs.github.com/en/communities/documenting-your-project-with-wikis/about-wikis.
\nVentajas de tener la documentaci\xf3n en el control de\n versiones del proyecto.
\nVentajas de ir escribiendo la documentaci\xf3n mientras\n escribes el propio c\xf3digo: Realimentaci\xf3n.
\nSphinx: https://www.sphinx-doc.org/en/master/.
\nsphinx.ext.autodoc:\n https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html.
\nplantuml: https://github.com/sphinx-contrib/plantuml.
\nMarkdown: https://www.markdownguide.org/.
\n[03:48] La vieja guardia es esc\xe9ptica con las novedades de\n la semana.
\nLa documentaci\xf3n gu\xeda el desarrollo.
\nParalelismo con los tests.
\n[08:38] Open source y la verg\xfcenza: tests y documentaci\xf3n.
\n[09:28] CPython Internals Book\n https://realpython.com/products/cpython-internals-book/.
\n[11:13] HPy https://hpyproject.org/. Nuevo API\n https://es.wikipedia.org/wiki/Api para programar extensiones C\n para Python, independiz\xe1ndote de la versi\xf3n del int\xe9rprete y\n compatible con cosas como PyPy: https://www.pypy.org/.
\n[13:18] Internet Archive como biblioteca de libros modernos:\n https://archive.org/details/inlibrary.
\nFunciona como una biblioteca tradicional.
\nPr\xe9stamo de libros.
\nEst\xe1n escaneando a toda velocidad: 2.5 millones de libros en\n el momento de escribir estas notas (mayo de 2021).
\nInternet Archive: https://archive.org/.
\nWayback Machine: https://web.archive.org/.
\nPreservaci\xf3n de videojuegos, p\xe1ginas en flash, discos de\n m\xfasica...
\n[17:03] Web de Python en Internet Archive.
\n1997:\n https://web.archive.org/web/19970606181701/http://www.python.org/.
\n1998:\n https://web.archive.org/web/19981212032130/http://www.python.org/.
\nUn ejemplo de "batteries included":\n https://commons.wikimedia.org/wiki/File:Python_batteries_included.jpg.
\n[17:53] Jes\xfas Cea echa de menos la internet distribuida.
\n[18:23] Pattern Matching en Python 3.10. PEP 622 -- Structural\n Pattern Matching https://www.python.org/dev/peps/pep-0622/.
\n\xbf"match" y "case" ser\xe1n palabras reservadas?
\nPEP 617 -- New PEG parser for CPython\n https://www.python.org/dev/peps/pep-0617/.
\nSe repasa la funcionalidad un poco por encima.
\n[27:48] Logs f\xe1ciles de configurar y decorados con colorines:
\nDaiquiri: https://daiquiri.readthedocs.io/en/latest/.
\nColorama: https://pypi.org/project/colorama/. Compatible\n con Windows.
\n[29:28] Truco: Python -i
: Ejecuta un script y pasa a modo\n interactivo.
Comentado hace unas semanas.
\nTambi\xe9n se puede hacer desde el propio c\xf3digo con\ncode.InteractiveConsole(locals=globals()).interact()
.
Jes\xfas Cea se queja de que usando la invocaci\xf3n desde c\xf3digo\nno funciona la edici\xf3n de l\xedneas. Javier da la pista correcta:\npara que funcione, basta con hacer import readline
antes de\nlanzar el modo interactivo.
[30:48] Manhole: https://pypi.org/project/manhole/.
\n[31:53] Breakpoints condicionales\n https://docs.python.org/3/library/pdb.html#pdbcommand-condition.
\nbreakpoint()
como funci\xf3n nativa: PEP 553 -- Built-in\n breakpoint() https://www.python.org/dev/peps/pep-0553/.
import pdb; pdb.set_trace()
.
[33:28] Scraping a mano:
\nscrapy shell:\n https://docs.scrapy.org/en/latest/topics/shell.html.
\nJes\xfas Cea no echa de menos Scrapy\n https://docs.scrapy.org/en/latest/.
\n[36:03] Indexador y buscador de documentos: Whoosh \n https://whoosh.readthedocs.io/en/latest/intro.html.
\nJes\xfas necesitaba ignorar tildes, lo que impacta en la\n extracci\xf3n del lexema.
\nEl backend est\xe1 documentado, para que te lo puedas currar t\xfa\n si lo necesitas.
\n[38:23] \xbfC\xf3mo hacer copia de seguridad de un fichero de 600\n gigabytes con pocos cambios internos?
\n[40:58] Eduardo Castro ha ganado un hackathon en Pontevedra.
\nSoftware para Django: https://www.djangoproject.com/.
\n[46:38] Experiencias agridulces con los hackathones\n https://en.wikipedia.org/wiki/Hackathon.
\n[50:38] Una URL puede no estar no disponible ya cuando escuchas\n el podcast:
\n[52:28] Jamii https://jamii.es/.
\n[55:38] GraphQL https://es.wikipedia.org/wiki/GraphQL.
\nREST:\n https://es.wikipedia.org/wiki/Transferencia_de_Estado_Representacional.
\nPermisos de usuario.
\nNo hay cacheo.
\nVulcain: https://github.com/dunglas/vulcain.
\n[01:02:53] HTTP/2 https://en.wikipedia.org/wiki/HTTP/2.
\nHTTP/2 Server Push:\n https://en.wikipedia.org/wiki/HTTP/2_Server_Push.
\nNo se tiene que responder por orden. Multiplexaci\xf3n.
\n[01:08:53] La explosi\xf3n de la complejidad innecesaria ocultada\n por bibliotecas:
\nOpenID: https://en.wikipedia.org/wiki/OpenID.
\n[01:10:33] Complejidad creciente de la sintaxis de Python.
\nVolvemos a Structural Pattern Matching\n https://www.python.org/dev/peps/pep-0622/.
\nComplejidad de la sintaxis.
\nUn lenguaje peque\xf1o y capaz reemplaza a lenguajes\n dinosaurio. Python reemplaz\xf3 a otros lenguajes dinosaurio.\n Ahora Python es un dinosaurio. \xbfCu\xe1ndo saldr\xe1 un lenguaje\n que reemplace a Python?
\n[01:12:13] Metaclases\n https://realpython.com/python-metaclasses/.
\nClosures:\n https://es.wikipedia.org/wiki/Clausura_(inform%C3%A1tica).
\n[01:15:08] Empiezan a aparecer sublenguajes, tribus,\n subculturas de Python.
\nCiertos cambios de sintaxis pueden unificar subculturas: "la\n forma oficial de hacerlo".
\nEl operador ternario de Python v = VALOR1 if CONDICI\xd3N\n else VALOR2
: PEP 308 -- Conditional Expressions\n https://www.python.org/dev/peps/pep-0308/.
List comprehension: [f(i) for i in ITER if\n CONDICI\xd3N(i)]
: PEP 202 -- List Comprehensions\n https://www.python.org/dev/peps/pep-0202/.
[01:20:18] En los viejos tiempos, pod\xedas hacer barbaridades\n como True = 0
. Esto funciona en Pythonn 2.7. Es algo que\n se cambi\xf3 en Python 3.0:\n https://docs.python.org/3.0/whatsnew/3.0.html#changed-syntax.
[01:21:53] Jes\xfas Cea echa de menos que se eliminen cosas.\n Est\xe1 obsesionado con el tama\xf1o del lenguaje.
\n[01:25:23] El lenguaje C incluye solo lo m\xednimo imprescindible.
\n[01:26:48] Curiosidades: What the f*ck Python!\n https://github.com/satwikkansal/wtfpython:
\n>>> all([])\nTrue\n>>> all([[]])\nFalse\n>>> all([[[]]])\nTrue\n
\n[01:28:03] Algunos avances en la investigaci\xf3n del bug descrito\n por Virako en las \xfaltimas semanas: Ejemplo de c\xf3digo:\n https://pastebin.com/vGM1sh8r.
\nIssue24676: Error in pickle using cProfile\n https://bugs.python.org/issue24676.
\nIssue9914: trace/profile conflict with the use of\n sys.modules[__name__]
https://bugs.python.org/issue9914.
Issue9325: Add an option to pdb/trace/profile to run library\n module as a script https://bugs.python.org/issue9325.
\nRequiere mejorar el m\xf3dulo runpy
\nhttps://docs.python.org/3/library/runpy.html.
A nadie le ha dolido lo suficiente el bug como para\nsolucionarlo. No es que sea realmente dif\xedcil. Tal vez s\xed.
\n[01:35:53] Nuitka https://nuitka.net/.
\nEjecutables Python independientes de lo que tengas instalado\n en el sistema. Por ejemplo, para poder usar una versi\xf3n de\n Python "moderna".
\nTambi\xe9n funciona en MS Windows.
\n[01:39:43] Tertulia previa: Fuentes de caracteres con ligaduras.
\nCombinaci\xf3n de caracteres unicode.
\nLas banderas de los pa\xedses, por ejemplo, son un c\xf3digo\n "bandera" seguido del c\xf3digo del pa\xeds:\n https://en.wikipedia.org/wiki/Regional_indicator_symbol.
\nLa bandera de Taiwan se ve distinta en China que en el resto\n del mundo: https://emojipedia.org/flag-taiwan/.
\n"Collation"\n https://en.wikipedia.org/wiki/Unicode_collation_algorithm,\n para ordenar y comparar correctamente\n caracteres unicode: PyICU: https://pypi.org/project/PyICU/.
\n[01:50:23] Cuando el Steering Council\n https://www.python.org/dev/peps/pep-0013/ vota un tema\n pol\xe9mico, la decisi\xf3n es final. Ya no se busca el consenso a\n toda costa.
\n[01:52:53] Despedida.
\n[01:53:55] Final.
\n