Episode Description
Participantes:
-
Jesús Cea, email: jcea@jcea.es, twitter: @jcea, https://blog.jcea.es/, https://www.jcea.es/. Conectando desde Madrid.
-
Javier, conectando desde Madrid.
-
Miguel Sánchez, email: msanchez@uninet.edu, conectando desde Las Palmas.
-
Eduardo Castro, email: info@ecdesign.es. 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.
-
-
[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 freezehttps://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.