Przejdź do trybu offline z Player FM !
Python en español #20: Tertulia 2021-02-16
Archiwalne serie ("Kanał nieaktywny" status)
When? This feed was archived on May 08, 2022 09:32 (). Last successful fetch was on July 13, 2021 01:05 ()
Why? Kanał nieaktywny status. Nasze serwery nie otrzymały odpowiedzi od kanału przez zbyt długi czas.
What now? You might be able to find a more up-to-date version using the search function. This series will no longer be checked for updates. If you believe this to be in error, please check if the publisher's feed link below is valid and contact support to request the feed be restored or if you have any other concerns about this.
Manage episode 293116909 series 2332301
Participantes:
Eduardo Castro, email: info@ecdesign.es. Conectando desde A Guarda.
Jesús Cea, email: jcea@jcea.es, 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/.
[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:
[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.
29 odcinków
Archiwalne serie ("Kanał nieaktywny" status)
When? This feed was archived on May 08, 2022 09:32 (). Last successful fetch was on July 13, 2021 01:05 ()
Why? Kanał nieaktywny status. Nasze serwery nie otrzymały odpowiedzi od kanału przez zbyt długi czas.
What now? You might be able to find a more up-to-date version using the search function. This series will no longer be checked for updates. If you believe this to be in error, please check if the publisher's feed link below is valid and contact support to request the feed be restored or if you have any other concerns about this.
Manage episode 293116909 series 2332301
Participantes:
Eduardo Castro, email: info@ecdesign.es. Conectando desde A Guarda.
Jesús Cea, email: jcea@jcea.es, 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/.
[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:
[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.
29 odcinków
Wszystkie odcinki
×Zapraszamy w Player FM
Odtwarzacz FM skanuje sieć w poszukiwaniu wysokiej jakości podcastów, abyś mógł się nią cieszyć już teraz. To najlepsza aplikacja do podcastów, działająca na Androidzie, iPhonie i Internecie. Zarejestruj się, aby zsynchronizować subskrypcje na różnych urządzeniach.