Polémica Frameworks, compilación al vuelo, compiladores y rendimiento Python, scraping web y la persistencia vuelve a la carga
Autor: Jesús Cea & Otros - Contacto: python2021@podcast.jcea.es
Fecha de grabación: 2021/01/19 - Duración: 02:23:23
Fecha de publicación: 2021/05/13
Palabras clave: Tertulia
Descarga el audio: M4A (33919478 bytes) - OPUS (19229891 bytes)
Participantes:
Jesús Cea, email: jcea@jcea.es, twitter: @jcea, https://blog.jcea.es/, https://www.jcea.es/. Conectando desde Madrid.
Eduardo Castro, email: info@ecdesign.es. Conectando desde A Guarda.
Javier, conectando desde Madrid.
Víctor Ramírez, twitter: @virako, programador python y amante de vim, conectando desde Huelva.
Dani, conectando desde Málaga, invitado por Virako.
Javier, conectando desde Sevilla, también invitado por Virako.
Antonio, conectado desde Albacete.
Jorge Rúa, conectando desde Vigo.
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.
Mucha tela que cortar.
Diferencia semántica entre verbos HTTP: GET y POST https://en.wikipedia.org/wiki/POST_(HTTP).
Algunos recursos de seguridad web (no exhaustivo, la lista es infinita):
CSRF: https://es.wikipedia.org/wiki/Cross-site_request_forgery.
Cross-Origin Resource Sharing (CORS) https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS.
Content Security Policy Reference https://content-security-policy.com/.
La documentación de FastAPI https://fastapi.tiangolo.com/ tiene mucho de seguridad:
CORS (Cross-Origin Resource Sharing): https://fastapi.tiangolo.com/tutorial/cors/.
OAuth2 with Password (and hashing), Bearer with JWT tokens https://fastapi.tiangolo.com/tutorial/security/oauth2-jwt/.
About HTTPS https://fastapi.tiangolo.com/deployment/https/.
Se está moviendo otra vez la inteligencia del navegador al servidor.
Brython: https://brython.info/.
Pyjs (antiguo Pyjamas): https://en.wikipedia.org/wiki/Pyjs.
Emscripten: https://emscripten.org/.
Versionado de diccionarios. PEP 509 Add a private version to dict: https://www.python.org/dev/peps/pep-0509/.
Compilación al vuelo: Pyjion: https://pyjion.readthedocs.io/en/latest/index.html.
Conflicto con la portabilidad del intérprete.
numba: https://numba.pydata.org/.
Hay pocos "core developers" y heredar código avanzado que luego hay que mantener es un problema.
Cython: https://cython.org/. Rendimiento y ofuscación.
nuitka: https://nuitka.net/.
numba: https://numba.pydata.org/.
PyPy: https://www.pypy.org/.
Issue 26647: ceval: use Wordcode, 16-bit bytecode: https://bugs.python.org/issue26647.
Issue 9203: Use computed gotos by default: https://bugs.python.org/issue9203.
Cython: https://cython.org/.
MYPY: http://mypy-lang.org/.
Especialización.
Implementaciones en Python: Sistemas de persistencia como Durus https://www.mems-exchange.org/software/DurusWorks/ o ZODB http://www.zodb.org/.
Mucha discusión sobre el GIL: https://en.wikipedia.org/wiki/Global_interpreter_lock.
La atomicidad de operaciones no está documentada en ningún sitio.
>>> def rutina(n):
... n += 1
... n = n + 1
...
>>> dis.dis(rutina)
2 0 LOAD_FAST 0 (n)
2 LOAD_CONST 1 (1)
4 INPLACE_ADD
6 STORE_FAST 0 (n)
3 8 LOAD_FAST 0 (n)
10 LOAD_CONST 1 (1)
12 BINARY_ADD
14 STORE_FAST 0 (n)
16 LOAD_CONST 0 (None)
18 RETURN_VALUE
¿Por qué Jesús Cea se ha hecho su propio scraper web?
"Maldades".
scrapy: https://scrapy.org/.
Event sourcing: https://dev.to/barryosull/event-sourcing-what-it-is-and-why-its-awesome.
Logs de modificaciones.
Concurrencia.
tarpit.
Problemas habituales:
Normalización de URLs.
Webs mal formadas.