Python en español #22: Tertulia 2021-03-02
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.
<timestamp compact="1" offset="53" ts="53">[00:53 ]<topic> Vamos progresando en la publicación de las grabaciones.</topic></timestamp>
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.
<timestamp compact="1" offset="53" ts="405">[06:45 ]<topic> El aviso legal de rigor para grabar los audios y
publicarlos luego.</topic></timestamp><timestamp compact="1" offset="53" ts="418">[06:58 ]<topic> Presentaciones.</topic></timestamp>
<timestamp compact="1" offset="53" ts="598">[09:58 ]<topic> Jesús Cea habla mucho.</topic></timestamp>
<timestamp compact="1" offset="53" ts="653">[10:53 ]<topic> Interacción entre clases abstractas
https://docs.python.org/3/library/abc.html y MYPY
http://mypy-lang.org/.</topic></timestamp><timestamp compact="1" offset="53" ts="1108">[18:28 ]<topic> Expansión explosiva del tamaño del bytecode
https://es.wikipedia.org/wiki/Bytecode generado por un
programa trivial Python.</topic></timestamp>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**7Build 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/.
<timestamp compact="1" offset="53" ts="1668">[27:48 ]<topic> GitHub actions: https://github.com/features/actions.</topic></timestamp>
<timestamp compact="1" offset="53" ts="1723">[28:43 ]<topic> PEP 637 -- Support for indexing with keyword arguments
https://www.python.org/dev/peps/pep-0637/.</topic></timestamp>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.
<timestamp compact="1" offset="53" ts="2666">[44:26 ]<topic> Metaconversacion sobre temas recurrentes en la tertulia.</topic></timestamp>
- ¿Puesta al día anual sobre temas recurrentes?
<timestamp compact="1" offset="53" ts="2708">[45:08 ]<topic> ¿Cómo se numeran los PEP
https://www.python.org/dev/peps/?</topic></timestamp>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/.
<timestamp compact="1" offset="53" ts="3068">[51:08 ]<topic> 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.</topic></timestamp><timestamp compact="1" offset="53" ts="3208">[53:28 ]<topic> El valor de los DeprecationWarning:
https://docs.python.org/3/library/exceptions.html#DeprecationWarning.
¿Cuándo los arreglas?</topic></timestamp>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.
<timestamp compact="1" offset="53" ts="3493">[58:13 ]<topic> Los problemas de bloquear dependencias de forma
transitiva.</topic></timestamp>pip freeze
https://pip.pypa.io/en/stable/cli/pip_freeze/.virtualenv
: https://pypi.org/project/virtualenv/.
<timestamp compact="0" offset="53" ts="3776">[01:02:56 ]<topic> 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.</topic></timestamp><timestamp compact="0" offset="53" ts="3943">[01:05:43 ]<topic> Paquete "safety" https://pypi.org/project/safety/.</topic></timestamp>
<timestamp compact="0" offset="53" ts="4058">[01:07:38 ]<topic> Salto de fe al hacer
pip install
. Paquetes
maliciosos.</topic></timestamp>- Ataque a cadena de suministro
<a href="http
- Ataque a cadena de suministro